Module 19, Catheterisation Laboratory

Cath
Laboratory

The Cath Lab module manages interventional cardiology procedures from order to verified report. It supports DICOM imaging, multi-step status workflow, service catalog pricing, and real-time cardiologist sign-off.

What is Cath Lab Management?

Cath Lab Management handles the complete interventional cardiology lifecycle: order creation (procedure type, access site, vessel region, priority), scheduling (date/time allocation), procedure execution (in-progress tracking), report generation (findings, impression, procedure notes, rich markdown), DICOM image upload (JPEG, PNG, DICOM, PDF, up to 20 files at 50MB each), cardiologist verification (digital sign-off with timestamp), and auto-invoicing (procedure-based billing with resolved unit pricing).

Each order follows a strict five-stage status: Ordered → Scheduled → In Progress → Completed → Cancelled, with validation guardrails preventing invalid transitions.

Why Does It Exist?

  • → Procedure integrity — Structured order-to-report tracking prevents misattributed findings and lost imaging
  • → Billing accuracy — Automatic invoice generation with resolved unit pricing eliminates manual charge capture errors
  • → Clinical accountability — Every report requires verified cardiologist sign-off with immutable audit trail
  • → Imaging governance — DICOM and medical image storage with presigned URL access and tiered security
Step by Step

The Cath Lab Workflow

1

Order Creation

A physician creates a Cath Lab order specifying the procedure type (e.g., Coronary Angiography, PTCA), access site (e.g., Femoral, Radial), vessel region, priority (Normal, Urgent, Emergency), and clinical context. Optional service catalog linkage enables automatic pricing.

Behind the scenes: Orders require a patient UUID and doctor UUID. The system validates patient access via canAccessPatient and checks the service catalog if a serviceCatalogId is provided. On creation, the system auto-generates an invoice with resolved unit pricing.
2

Schedule & Prepare

Orders in 'ordered' status are scheduled with a date and time. The scheduled order moves to 'scheduled' status, entering the procedure queue. Staff can view the scheduled list with patient and doctor details.

Behind the scenes: Status transitions are strictly validated: ordered → scheduled requires the order to be in 'ordered' status. Scheduled orders can be cancelled, but once in 'in_progress', cancellation requires clinical override.
3

Procedure & Imaging

The interventional cardiologist performs the procedure. During or after, they upload DICOM images, angiograms, or supporting media (JPEG, PNG, PDF) to the report. The order status moves to 'in_progress'.

Behind the scenes: Image upload supports up to 20 files at 50MB each via multer with strict MIME validation. Files are stored in S3 via uploadBuffer. Media attachments are linked to the report entity type. A PostgreSQL transaction prevents concurrent upload conflicts on imageUrls.
4

Report & Verification

The cardiologist documents findings, impression, and procedure notes. A designated verifier (usually a senior cardiologist) reviews and digitally signs the report with verifiedAt and verifiedById timestamps. The order is marked 'completed'.

Behind the scenes: Once verified (verifiedAt is set), the report becomes immutable, edits and deletions are blocked. A deep audit record captures the before/after state. The system broadcasts notifications to the cardiologist and cathlab:manage permission holders on completion.
Deep Dive

Every Feature Explained

Order Management

What it is

Create and manage cath lab procedure orders with full patient context.

Why it exists

Centralized order capture eliminates paper-based errors and lost referrals.

How it works

Orders capture patient, doctor, procedure type, access site, vessel region, priority, clinical info, reason, description. Date-range and status filters enable quick retrieval. The list view supports pagination and includes report counts per order.

DICOM & Medical Imaging

What it is

Upload and retrieve angiogram images in medical imaging formats.

Why it exists

Interventional cardiology relies on high-fidelity imaging for diagnosis and documentation.

How it works

Supports JPEG, PNG, GIF, WebP, BMP, TIFF, PDF, and DICOM (.dcm). Up to 20 files per upload, 50MB per file. Files stored in S3 with presigned URL access (1-hour expiry). Images are linked to reports via mediaAttachment records and the imageUrls JSON array.

Staged Status Workflow

What it is

Five-stage order lifecycle with validated transitions.

Why it exists

Prevents clinical errors from skipped or invalid status changes.

How it works

Ordered → Scheduled → In Progress → Completed → Cancelled. Each transition is validated against a whitelist map. Invalid transitions return 409 Conflict. Completed and Cancelled are terminal states with no further transitions.

Report writing

What it is

Generate structured reports with findings, impression, and rich markdown.

Why it exists

Comprehensive documentation supports clinical decision-making and medico-legal requirements.

How it works

Reports support free-text findings (10K chars), impression (5K chars), procedure notes (10K chars), and rich markdown reports (500K chars). Each report is linked to an order and optionally to a performing doctor.

Cardiologist Verification

What it is

Digital sign-off by a senior cardiologist with immutable audit trail.

Why it exists

Verification ensures clinical accuracy and provides medico-legal accountability.

How it works

A verifier sets verifiedAt timestamp and verifiedById references. Once verified, the report is locked, edits and deletions return 409 Conflict. Verification triggers high-priority notifications to the patient's doctor.

Auto-Invoicing & Pricing

What it is

Automatic invoice generation with resolved unit pricing per procedure.

Why it exists

Eliminates manual charge capture and ensures consistent pricing.

How it works

Unit price is resolved via resolveCathLabUnitPrice using doctor, procedure type, access site, and service catalog. An invoice is created via ensureCathLabOrderInvoice with the resolved amount. The invoice ID and price are returned with the order response.

CSV Export & Analytics

What it is

Export orders to CSV and view real-time analytics.

Why it exists

Enables institutional reporting and operational insights.

How it works

CSV export supports the same filters as the list view with a 5,000-row cap. Export includes patient name, MRN, procedure type, status, priority, dates. Analytics endpoint returns status distribution, procedure mix (top 8), 7-day weekly series, completion rate, and total counts.

Real-time Notifications

What it is

Broadcast alerts for procedure milestones.

Why it exists

Keeps the care team informed about critical state changes.

How it works

New order creation notifies cathlab:manage permission holders. In-progress status broadcasts to the same group. Completed procedures trigger high-priority notifications to the ordering doctor. Audit events are logged for every state change.

Technical Architecture

FieldTypeInstitutional Role
order_idUUIDUnique procedure order identifier.
patient_idUUIDReference to the patient undergoing procedure.
procedure_typeVarChar(100)Clinical procedure name (e.g., Coronary Angiography).
statusEnumOrdered, Scheduled, In Progress, Completed, Cancelled.
priorityEnumNormal, Urgent, Emergency.

Note: Sensitive fields use AES-256 field-level encryption where applicable.

Governance & Power

cathlab:view
cathlab:order
cathlab:report
cathlab:verify
cathlab:export
cathlab:manage-services
cathlab:manage
  • Immutable After Verification

    Once a report is verified (signed off), all editing and deletion is blocked. The only exception is re-opening the completed order first. This guarantees clinical record integrity.

  • Concurrent Upload Safety

    Image uploads use a PostgreSQL transaction with a read-then-merge pattern to prevent lost updates when multiple users upload images to the same report simultaneously.

  • Audit Trail Depth

    Every state change, report creation, image upload, and status transition is recorded with deep audit (before/after JSON snapshots). Exports log the filter criteria used for traceability.