Skip to content

URS-020 · Duplicate Delivered Order Form (DOF / Bill-Only) Detection

Title: Duplicate Delivered Order Form (DOF / Bill-Only) Detection Date: 2026-09-29T02:31:02.531Z Duration: 119.1s Overall Status: ✅ PASS

The system shall detect potential duplicate DOFs using account, PO, patient ID, and procedure date.

Source: User_Requirement_Specifications_Vantis_DeviceFlow.xlsx — the run below proves the system meets this requirement.

The run below validates what the merged implementation actually does. The following bullets call out every place where the implementation differs from the URS wording so a reviewer reading them side-by-side does not mistake the spec text for the system behaviour.

  • PO number is not a duplicate-detection input. (see DF-2598) URS-020 lists PO number as a detection signal, but the implementation ignores it. findDuplicateBillingOrderMatches (in modules/bill_only/src/services/duplicate_billing_orders.ts), which both the client warning and the submission gate call, selects candidates on sales_account_id + procedure_date scoped to the user’s organization, then flags a candidate when patient MRN, patient last name, or surgeon name also matches. PO number takes no part in either stage. This is intentional: sales reps typically submit bill-onlies before the PO has arrived, so requiring PO in the match would silently disable detection for the common case. The test below exercises the implemented behaviour rather than the URS wording.

Status: ✅ PASS

Each step below corresponds to one Playwright test that ran sequentially. Screenshots and video recordings provide visual evidence of the UI behaviour.

1. Step 1: Login and open bill-only form — ✅ PASS

Section titled “1. Step 1: Login and open bill-only form — ✅ PASS”

What this step proves:

Blair Bennett (Corveta admin, has billing:create) signs in and opens the bill-only creation wizard. Establishes the user + permission context for every subsequent step.

Screenshots:

step 01 logged in

step 01 billing form step2

Video recording:


2. Step 2: Submit reference order — ✅ PASS

Section titled “2. Step 2: Submit reference order — ✅ PASS”

What this step proves:

Submits a bill-only order with the canonical reference values — ROSS Surgical account, procedure date 2026-04-15, patient PAT-URS020-001 / URS020TestLastName. No warning appears because no prior duplicate exists. This order becomes the match target for Step 3–5 and is persisted with the “URS-020 validation test” notes marker.

Audit events generated by this step:

(Evidence scoped to step execution window: 2026-09-29T02:31:23.746Z → 2026-09-29T02:31:35.100Z)

TimeTypeActionUserOrgPerformed
2026-09-29 02:31:24Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:31:24Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:31:32Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:31:32Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:31:32Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:31:32Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:31:32Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:31:32Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:31:32Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:31:32Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:31:32Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantisyes
2026-09-29 02:31:32Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:31:32Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:31:32ZdecisionbasicErp.deriveSalesOrderblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:31:34Zdecisionbill_only.notifications.cc_incident_recipients—Vantisno

Emails triggered by this step:

(Evidence matched by declared name — step timing not available or no events fell in window)

Email 1: New Bill-Only Order - 7/31/2026 - Vantis BO-1

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-1

New Bill-Only Order - 7/31/2026 - Vantis BO-1

Email 2: New Bill-Only Order - 7/31/2026 - Vantis BO-2

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-2

New Bill-Only Order - 7/31/2026 - Vantis BO-2

Email 3: New Bill-Only Order - 7/31/2026 - Vantis BO-3

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-3

New Bill-Only Order - 7/31/2026 - Vantis BO-3

Email 4: New Bill-Only Order - 7/26/2026 - Vantis BO-4

Template: New_Bill-Only_Order_-_7_26_2026_-_Vantis_BO-4

New Bill-Only Order - 7/26/2026 - Vantis BO-4

Screenshots:

step 02 reference step2

step 02 reference review

step 02 reference submitted

Video recording:


3. Step 3: Duplicate warning with both badges — ✅ PASS

Section titled “3. Step 3: Duplicate warning with both badges — ✅ PASS”

What this step proves:

Re-entering the reference account + procedure date + patient ID + last name triggers “Possible Duplicate Submission”. Both “(Same patient ID)” and “(Same last name)” badges render because the match row shares those annotation fields. Clicking “This is not a duplicate — continue” unlocks step advancement and the submission then completes end-to-end — proving duplicate detection is a soft block the user can acknowledge and override, and giving the DB a second row that shares the full (account, date, patient ID, last name) key with the reference order.

Audit events generated by this step:

(Evidence scoped to step execution window: 2026-09-29T02:31:45.775Z → 2026-09-29T02:31:56.781Z)

TimeTypeActionUserOrgPerformed
2026-09-29 02:31:49Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:31:49Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:31:56Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:31:56Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:31:56Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:31:56Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:31:56Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:31:56ZdecisionbasicErp.deriveSalesOrderblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:31:56Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:31:56Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:31:56Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantisyes
2026-09-29 02:31:56Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:31:56Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:31:56Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno

Emails triggered by this step:

(Evidence matched by declared name — step timing not available or no events fell in window)

Email 1: New Bill-Only Order - 7/31/2026 - Vantis BO-1

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-1

New Bill-Only Order - 7/31/2026 - Vantis BO-1

Email 2: New Bill-Only Order - 7/31/2026 - Vantis BO-2

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-2

New Bill-Only Order - 7/31/2026 - Vantis BO-2

Email 3: New Bill-Only Order - 7/31/2026 - Vantis BO-3

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-3

New Bill-Only Order - 7/31/2026 - Vantis BO-3

Email 4: New Bill-Only Order - 7/26/2026 - Vantis BO-4

Template: New_Bill-Only_Order_-_7_26_2026_-_Vantis_BO-4

New Bill-Only Order - 7/26/2026 - Vantis BO-4

Screenshots:

step 03 warning with both badges

step 03 duplicate submitted

Video recording:


4. Step 4: Change date — warning hides — ✅ PASS

Section titled “4. Step 4: Change date — warning hides — ✅ PASS”

What this step proves:

Switching procedure date from 2026-04-15 to 2026-04-10 dismisses the warning because the primary match key (sales_account_id, procedure_date) no longer matches. Reverting the date brings the warning back — confirms the check is live-driven by form state, not cached server-side.

Screenshots:

step 04 alternate date no warning

step 04 date restored warning

Video recording:


5. Step 5: Clear patient ID — badge hides, warning remains — ✅ PASS

Section titled “5. Step 5: Clear patient ID — badge hides, warning remains — ✅ PASS”

What this step proves:

Clearing the patient ID field while leaving account + procedure date intact keeps the “Possible Duplicate Submission” warning (primary key still hits) but drops the “(Same patient ID)” badge — proving patient_id is only an annotation, not part of the primary match, while last-name match still annotates.

Screenshots:

step 05 warning last name only

Video recording:


6. Step 6: Different account, same date — no warning — ✅ PASS

Section titled “6. Step 6: Different account, same date — no warning — ✅ PASS”

What this step proves:

Submits a bill-only for a DIFFERENT sales account (“Cedar Crest Hospital Account Request”) on the reference procedure date (2026-04-15) with the same patient ID + last name as the reference. No warning appears and the order submits cleanly — proving that changing sales_account_id alone is sufficient to escape detection, even when every other field matches the reference row. This is the symmetric negative counterpart to Step 4: Step 4 proves date-variation escapes detection; Step 6 proves account-variation does too.

Audit events generated by this step:

(Evidence scoped to step execution window: 2026-09-29T02:32:30.237Z → 2026-09-29T02:32:39.145Z)

TimeTypeActionUserOrgPerformed
2026-09-29 02:32:30Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:32:30Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:32:37Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:32:37Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:32:37Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:32:37Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:32:37Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:32:37Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantisyes
2026-09-29 02:32:37Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:32:37Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:32:37ZdecisionbasicErp.deriveSalesOrderblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:32:37Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:32:37Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:32:37Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:32:38Zdecisionbill_only.notifications.cc_incident_recipients—Vantisno

Emails triggered by this step:

(Evidence matched by declared name — step timing not available or no events fell in window)

Email 1: New Bill-Only Order - 7/31/2026 - Vantis BO-1

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-1

New Bill-Only Order - 7/31/2026 - Vantis BO-1

Email 2: New Bill-Only Order - 7/31/2026 - Vantis BO-2

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-2

New Bill-Only Order - 7/31/2026 - Vantis BO-2

Email 3: New Bill-Only Order - 7/31/2026 - Vantis BO-3

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-3

New Bill-Only Order - 7/31/2026 - Vantis BO-3

Email 4: New Bill-Only Order - 7/26/2026 - Vantis BO-4

Template: New_Bill-Only_Order_-_7_26_2026_-_Vantis_BO-4

New Bill-Only Order - 7/26/2026 - Vantis BO-4

Screenshots:

step 06 different account no warning

step 06 different account submitted

Video recording:


7. Step 7: Non-duplicate and verify billing list — ✅ PASS

Section titled “7. Step 7: Non-duplicate and verify billing list — ✅ PASS”

What this step proves:

Creates a fourth order with the SAME account + patient but the alternate procedure date (2026-04-10). No warning appears and the order submits without any acknowledgement. The billing list is then asserted to display every URS-020 PO number (reference, acknowledged duplicate, different-account negative, alternate-date non-duplicate) — proving every submission from this run landed in the shared view the next operator would see. (The list itself does not render a row-level duplicate indicator — the warning is a creation-time UX only; see README “Known Deviations”.)

Audit events generated by this step:

(Evidence scoped to step execution window: 2026-09-29T02:32:47.253Z → 2026-09-29T02:32:57.560Z)

TimeTypeActionUserOrgPerformed
2026-09-29 02:32:47Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:32:47Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:32:54Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:32:54Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:32:54Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:32:54Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantisyes
2026-09-29 02:32:54Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:32:54Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisno
2026-09-29 02:32:54Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:32:54Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:32:54Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:32:54ZdecisionbasicErp.deriveSalesOrderblair.bennett@corvetasurgical.comVantisno
2026-09-29 02:32:54Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis—
2026-09-29 02:32:54Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-09-29 02:32:55Zdecisionbill_only.notifications.cc_incident_recipients—Vantisno
2026-09-29 02:32:56Ztransactional_emailnew_bill_only—Corveta Surgical Group—

Emails triggered by this step:

(Evidence matched by declared name — step timing not available or no events fell in window)

Email 1: New Bill-Only Order - 7/31/2026 - Vantis BO-1

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-1

New Bill-Only Order - 7/31/2026 - Vantis BO-1

Email 2: New Bill-Only Order - 7/31/2026 - Vantis BO-2

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-2

New Bill-Only Order - 7/31/2026 - Vantis BO-2

Email 3: New Bill-Only Order - 7/31/2026 - Vantis BO-3

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-3

New Bill-Only Order - 7/31/2026 - Vantis BO-3

Email 4: New Bill-Only Order - 7/26/2026 - Vantis BO-4

Template: New_Bill-Only_Order_-_7_26_2026_-_Vantis_BO-4

New Bill-Only Order - 7/26/2026 - Vantis BO-4

Screenshots:

step 07 non duplicate step2

step 07 non duplicate submitted

step 07 billing list

Video recording:


The following SQL queries ran against the application database after the Playwright scenarios completed. Each query asserts a specific condition that proves the feature under test persisted its data correctly.

Four URS-020 billing orders created — ✅ PASS

Section titled “Four URS-020 billing orders created — ✅ PASS”

Assertion: Playwright submitted four bill-only orders — reference, acknowledged duplicate, different-account negative case, and alternate-date non-duplicate — all tagged with the URS-020 marker.

SELECT id, order_number, sales_account_id, procedure_date,
patient_id, patient_last_name, po_number, status, notes, created_at
FROM billing_orders
WHERE created_by_user_id = $1
AND notes LIKE $2
ORDER BY created_at ASC
idorder_numbersales_account_idprocedure_datepatient_idpatient_last_namepo_numberstatusnotescreated_at
01a0eb00-cc18-7893-a8a0-38472e67afffBO-1fea7b8c9-d0e1-2345-0123-4567890123452026-07-31T00:00:00.000ZPAT-URS020-001URS020TestLastNamePO-URS020-REFsubmittedURS-020 validation test — reference order2026-09-29T02:31:32.959Z
01a0eb01-2728-758e-a18a-663efc7745f3BO-2fea7b8c9-d0e1-2345-0123-4567890123452026-07-31T00:00:00.000ZPAT-URS020-001URS020TestLastNamePO-URS020-DUPsubmittedURS-020 validation test — acknowledged duplicate2026-09-29T02:31:56.379Z
01a0eb01-c7b3-7ae5-a049-f521d5195975BO-31fb8c9d0-e1f2-3456-1234-5678901234562026-07-31T00:00:00.000ZPAT-URS020-001URS020TestLastNamePO-URS020-ALTACCTsubmittedURS-020 validation test — different account negative case2026-09-29T02:32:37.492Z
01a0eb02-09fb-7756-828a-eec0475bf73fBO-4fea7b8c9-d0e1-2345-0123-4567890123452026-07-26T00:00:00.000ZPAT-URS020-001URS020TestLastNamePO-URS020-NONEsubmittedURS-020 validation test — non-duplicate (alternate procedure date)2026-09-29T02:32:54.472Z

Duplicate pair shares account + procedure date — ✅ PASS

Section titled “Duplicate pair shares account + procedure date — ✅ PASS”

Assertion: Two URS-020 orders must share the reference sales account and procedure date; that is exactly what checkDuplicateBillingOrders uses as its primary key.

SELECT id, order_number, po_number, patient_id, patient_last_name, created_at
FROM billing_orders
WHERE created_by_user_id = $1
AND notes LIKE $2
AND sales_account_id = $3
AND procedure_date = $4
ORDER BY created_at ASC
idorder_numberpo_numberpatient_idpatient_last_namecreated_at
01a0eb00-cc18-7893-a8a0-38472e67afffBO-1PO-URS020-REFPAT-URS020-001URS020TestLastName2026-09-29T02:31:32.959Z
01a0eb01-2728-758e-a18a-663efc7745f3BO-2PO-URS020-DUPPAT-URS020-001URS020TestLastName2026-09-29T02:31:56.379Z

Alternate-date order: same account, different date (no warning) — ✅ PASS

Section titled “Alternate-date order: same account, different date (no warning) — ✅ PASS”

Assertion: A URS-020 order must exist with the reference sales account but the alternate procedure date. The UI rendered no warning at submission time — evidence that changing procedure_date alone is sufficient to escape duplicate detection.

SELECT id, order_number, po_number, sales_account_id, procedure_date
FROM billing_orders
WHERE created_by_user_id = $1
AND notes LIKE $2
AND sales_account_id = $3
AND procedure_date = $4
idorder_numberpo_numbersales_account_idprocedure_date
01a0eb02-09fb-7756-828a-eec0475bf73fBO-4PO-URS020-NONEfea7b8c9-d0e1-2345-0123-4567890123452026-07-26T00:00:00.000Z

Different-account order: other account, same date (no warning) — ✅ PASS

Section titled “Different-account order: other account, same date (no warning) — ✅ PASS”

Assertion: A URS-020 order must exist with the alternate sales account (Cedar) on the reference procedure date. The UI rendered no warning at submission time — evidence that changing sales_account_id alone is sufficient to escape duplicate detection, proving account is a primary-key element and the detection key is symmetric in account and date.

SELECT id, order_number, po_number, sales_account_id, procedure_date
FROM billing_orders
WHERE created_by_user_id = $1
AND notes LIKE $2
AND sales_account_id = $3
AND procedure_date = $4
idorder_numberpo_numbersales_account_idprocedure_date
01a0eb01-c7b3-7ae5-a049-f521d5195975BO-3PO-URS020-ALTACCT1fb8c9d0-e1f2-3456-1234-5678901234562026-07-31T00:00:00.000Z

Duplicate pair also matches patient ID and last name — ✅ PASS

Section titled “Duplicate pair also matches patient ID and last name — ✅ PASS”

Assertion: Both duplicate-pair orders carry the reference patient ID and patient last name so the warning surfaced both “(Same patient ID)” and “(Same last name)” badges.

SELECT COUNT(*) AS n
FROM billing_orders
WHERE created_by_user_id = $1
AND notes LIKE $2
AND sales_account_id = $3
AND procedure_date = $4
AND patient_id = $5
AND patient_last_name = $6
n
2

Per-declaration outcome of every expectedAuditActions and expectedEmailTemplates entry written into the orchestrator. Missing evidence here is a real test failure, not a soft warning.

Each row asserts that a declared expectedAuditActions entry produced a matching row in audit_events. A ❌ flips overall status to FAIL — the declaration is real proof, not just an annotation.

StepExpected Audit ActionFound
Step 2: Submit reference orderdecision:bill_only_order.inventory_items_decrement✅
Step 3: Duplicate warning with both badgesdecision:bill_only_order.inventory_items_decrement✅
Step 6: Different account, same date — no warningdecision:bill_only_order.inventory_items_decrement✅
Step 7: Non-duplicate and verify billing listdecision:bill_only_order.inventory_items_decrement✅

Each row asserts that a declared expectedEmailTemplates entry was matched (case-insensitive substring) by a captured email subject or template. A ❌ flips overall status to FAIL.

StepExpected TemplateFound
Step 2: Submit reference orderbill-only✅
Step 3: Duplicate warning with both badgesbill-only✅
Step 6: Different account, same date — no warningbill-only✅
Step 7: Non-duplicate and verify billing listbill-only✅

Every row written to audit_events while this test was running (scoped to the demo organizations). Provides compliance evidence that user actions are traced end-to-end (URS-003).

Capture window start: 2026-09-29T02:31:00.676Z

SELECT
ae.created_at,
ae.event_type,
ae.action,
ae.user_id,
u.email AS user_email,
ae.organization_id,
o.name AS organization_name,
ae.object_id,
ae.secondary_object_id,
ae.payload,
ae.route,
ae.trace_id
FROM audit_events ae
LEFT JOIN users u ON u.id = ae.user_id
LEFT JOIN organizations o ON o.id = ae.organization_id
WHERE ae.created_at >= $1
AND ae.organization_id = ANY($2::uuid[])
ORDER BY ae.created_at ASC

71 event(s) captured:

TimeTypeActionUserOrgObject IDPerformedReason
2026-09-29 02:31:07Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:31:15Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:31:24Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupfea7b8c9-d0e1-2345-0123-456789012345nono_same_day_candidates
2026-09-29 02:31:24Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:31:32Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb00-cc81-7bdf-8af4-055e78eda870—
2026-09-29 02:31:32Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:31:32Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:31:32Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb00-cc18-7893-a8a0-38472e67afffnono_purchase_order_selected
2026-09-29 02:31:32Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb00-cc64-7136-87cb-fc4c80c0ce2c—
2026-09-29 02:31:32Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb00-cc8a-7bf3-9173-9af6c5f1ac0b—
2026-09-29 02:31:32Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupfea7b8c9-d0e1-2345-0123-456789012345nono_same_day_candidates
2026-09-29 02:31:32Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:31:32Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantis01a0eb00-cc18-7893-a8a0-38472e67afffyesinventory_items_decremented
2026-09-29 02:31:32Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantis01a0eb00-cc18-7893-a8a0-38472e67afffnoNo uploaded PO documents
2026-09-29 02:31:32Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis01a0eb00-cc18-7893-a8a0-38472e67afff—
2026-09-29 02:31:32ZdecisionbasicErp.deriveSalesOrderblair.bennett@corvetasurgical.comVantis01a0eb00-cc18-7893-a8a0-38472e67afffnoflag_disabled
2026-09-29 02:31:34Zdecisionbill_only.notifications.cc_incident_recipients—Vantis01a0eb00-cc18-7893-a8a0-38472e67afffnoorder has no no-charge item with an incident reason
2026-09-29 02:31:35Ztransactional_emailnew_bill_only—Corveta Surgical Group01a0eb00-cc18-7893-a8a0-38472e67afff—
2026-09-29 02:31:37Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:31:49Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:31:49Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupfea7b8c9-d0e1-2345-0123-456789012345noacknowledged_not_duplicate
2026-09-29 02:31:56Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupfea7b8c9-d0e1-2345-0123-456789012345noacknowledged_not_duplicate
2026-09-29 02:31:56Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb01-2728-758e-a18a-663efc7745f3nono_purchase_order_selected
2026-09-29 02:31:56Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb01-275e-79b0-90dd-bf1b5a84a7b0—
2026-09-29 02:31:56Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb01-275b-76d4-9bbf-8e4470334561—
2026-09-29 02:31:56Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb01-2756-7089-80a7-48ef460f53a5—
2026-09-29 02:31:56ZdecisionbasicErp.deriveSalesOrderblair.bennett@corvetasurgical.comVantis01a0eb01-2728-758e-a18a-663efc7745f3noflag_disabled
2026-09-29 02:31:56Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis01a0eb01-2728-758e-a18a-663efc7745f3—
2026-09-29 02:31:56Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantis01a0eb01-2728-758e-a18a-663efc7745f3noNo uploaded PO documents
2026-09-29 02:31:56Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantis01a0eb01-2728-758e-a18a-663efc7745f3yesinventory_items_decremented
2026-09-29 02:31:56Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:31:56Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:31:56Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:31:57Zdecisionbill_only.notifications.cc_incident_recipients—Vantis01a0eb01-2728-758e-a18a-663efc7745f3noorder has no no-charge item with an incident reason
2026-09-29 02:31:58Ztransactional_emailnew_bill_only—Corveta Surgical Group01a0eb01-2728-758e-a18a-663efc7745f3—
2026-09-29 02:31:58Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:32:10Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:32:22Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:32:30Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Group1fb8c9d0-e1f2-3456-1234-567890123456nono_same_day_candidates
2026-09-29 02:32:30Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:32:37Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb01-c7b3-7ae5-a049-f521d5195975nono_purchase_order_selected
2026-09-29 02:32:37Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:32:37Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:32:37Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Group1fb8c9d0-e1f2-3456-1234-567890123456nono_same_day_candidates
2026-09-29 02:32:37Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:32:37Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantis01a0eb01-c7b3-7ae5-a049-f521d5195975yesinventory_items_decremented
2026-09-29 02:32:37Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis01a0eb01-c7b3-7ae5-a049-f521d5195975—
2026-09-29 02:32:37Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantis01a0eb01-c7b3-7ae5-a049-f521d5195975noNo uploaded PO documents
2026-09-29 02:32:37ZdecisionbasicErp.deriveSalesOrderblair.bennett@corvetasurgical.comVantis01a0eb01-c7b3-7ae5-a049-f521d5195975noflag_disabled
2026-09-29 02:32:37Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb01-c7cd-7833-9321-0c25454df4e6—
2026-09-29 02:32:37Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb01-c7d1-710f-b73b-bcb1ea12923d—
2026-09-29 02:32:37Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb01-c7d4-741f-9fa7-22c7a5bc8af1—
2026-09-29 02:32:38Zdecisionbill_only.notifications.cc_incident_recipients—Vantis01a0eb01-c7b3-7ae5-a049-f521d5195975noorder has no no-charge item with an incident reason
2026-09-29 02:32:39Ztransactional_emailnew_bill_only—Corveta Surgical Group01a0eb01-c7b3-7ae5-a049-f521d5195975—
2026-09-29 02:32:40Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group——
2026-09-29 02:32:47Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:32:47Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupfea7b8c9-d0e1-2345-0123-456789012345nono_same_day_candidates
2026-09-29 02:32:54Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb02-0a1c-7003-8b7e-71c6a6a75c5b—
2026-09-29 02:32:54Zdecisionbill_only_order.duplicate_submission_blockblair.bennett@corvetasurgical.comCorveta Surgical Groupfea7b8c9-d0e1-2345-0123-456789012345nono_same_day_candidates
2026-09-29 02:32:54Zdecisionrepresentatives.gate_rep_actionblair.bennett@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:32:54Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantis01a0eb02-09fb-7756-828a-eec0475bf73fyesinventory_items_decremented
2026-09-29 02:32:54Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:32:54Zdecisionrepresentatives.gate_rep_actionrana.reyes@corvetasurgical.comVantisa1b2c3d4-e5f6-7890-abcd-ef1234567890nono_blocking_relationship
2026-09-29 02:32:54Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb02-0a1e-7d5c-bf45-dffcb93726ad—
2026-09-29 02:32:54Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantis01a0eb02-09fb-7756-828a-eec0475bf73fnoNo uploaded PO documents
2026-09-29 02:32:54Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis01a0eb02-09fb-7756-828a-eec0475bf73f—
2026-09-29 02:32:54ZdecisionbasicErp.deriveSalesOrderblair.bennett@corvetasurgical.comVantis01a0eb02-09fb-7756-828a-eec0475bf73fnoflag_disabled
2026-09-29 02:32:54Zscheduled_taskscheduled_task.scheduledblair.bennett@corvetasurgical.comVantis01a0eb02-0a18-7c44-98b7-8359808fd9d5—
2026-09-29 02:32:54Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Group01a0eb02-09fb-7756-828a-eec0475bf73fnono_purchase_order_selected
2026-09-29 02:32:55Zdecisionbill_only.notifications.cc_incident_recipients—Vantis01a0eb02-09fb-7756-828a-eec0475bf73fnoorder has no no-charge item with an incident reason
2026-09-29 02:32:56Ztransactional_emailnew_bill_only—Corveta Surgical Group01a0eb02-09fb-7756-828a-eec0475bf73f—

4 notification email(s) were captured during this test run. Each email is rendered as a screenshot for compliance review.

1. New Bill-Only Order - 7/31/2026 - Vantis BO-1

Section titled “1. New Bill-Only Order - 7/31/2026 - Vantis BO-1”

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-1

New Bill-Only Order - 7/31/2026 - Vantis BO-1

2. New Bill-Only Order - 7/31/2026 - Vantis BO-2

Section titled “2. New Bill-Only Order - 7/31/2026 - Vantis BO-2”

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-2

New Bill-Only Order - 7/31/2026 - Vantis BO-2

3. New Bill-Only Order - 7/31/2026 - Vantis BO-3

Section titled “3. New Bill-Only Order - 7/31/2026 - Vantis BO-3”

Template: New_Bill-Only_Order_-_7_31_2026_-_Vantis_BO-3

New Bill-Only Order - 7/31/2026 - Vantis BO-3

4. New Bill-Only Order - 7/26/2026 - Vantis BO-4

Section titled “4. New Bill-Only Order - 7/26/2026 - Vantis BO-4”

Template: New_Bill-Only_Order_-_7_26_2026_-_Vantis_BO-4

New Bill-Only Order - 7/26/2026 - Vantis BO-4