Overview
Configurable forms for capturing extra details during registration, billing, bill update, and more
Lab Forms
Lab Forms are configurable forms that labs can customize to capture additional details during various workflows like registration, billing, bill update, and more.
Related JIRA Tickets
Prerequisites
The feature requires the lab_forms_management feature flag enabled for all lab form types except consent forms, which use the separate consent_management feature flag.
What is it for?
Lab Forms allow labs to configure custom forms for capturing extra information at different stages of their workflow:
- Registration — Capture additional patient demographics or clinical information
- Billing — Capture details related to the bill, specific tests, or the patient at the point of order entry
- Bill updates — Update captured information when modifying existing bills
- Accessioning — View and edit captured form values for a particular report as samples are received and accessioned
- Report entry — View and edit captured form values for a particular report while entering or reviewing results
- Home collection — Capture field-level details (collection notes, phlebotomist observations) during patient visits
- Patient consent — Collect legally compliant consent from patients for audit and compliance purposes
Form Types
There are currently 3 types of lab forms, each serving a different purpose:
1. AOE (Ask at Order Entry)
- Purpose: Captures extra details during billing related to the bill, tests in the bill, or the patient
- Rendered: On the Billing Modal as a "Complete AOE" button
- Behavior:
- Appears beside "Confirm & Bill" button during billing
- Billing cannot be completed until all mandatory AOE questions are answered
- For Test-level AOE: Related forms are added as tests are selected, with an "AOE Required" tag beside the test name
- For Profile-level AOE: AOE can be captured once for the profile, but values are saved per test report; if only some tests in the profile have AOE, values are saved only for those tests
- For Promotion-level AOE: Applicable AOE is resolved from mapped tests and values are saved against each applicable test report
- For Bill-level AOE: A single form applies to the entire bill
- Use cases: Clinical questions, sample collection details, test-specific requirements
2. Consent (Patient Consent)
- Purpose: Captures patient consent for legal compliance and audit purposes
- Rendered: In the patient portal after billing
- Behavior:
- Sent to patients via email with a QR code link
- Tracks communication preferences (email, SMS, WhatsApp, fax, mail)
- If the lab has configured a communication section, all outbound communication (bill confirmation, report ready, etc.) is hard-stopped for that patient until consent is explicitly provided
- Supports expiry duration for consent validity
- Can be revoked by the lab
- Use cases: HIPAA consent, report delivery preferences, communications opt-in/out
3. Additional Patient Info
- Purpose: Captures additional patient details during registration
- Rendered: Beside the registration form (in place of COVID history section)
- Behavior:
- Stored at patient level (not bill level) — persists across all patient bills
- Can be configured per page type (appointment, registration, home collection, CC registration)
- Use cases: Gender identity, sexual orientation, patient demographics for lab reporting (e.g., Labcorp integration)
Form Structure
A lab form follows a simple hierarchical structure:
- Form — The main container (e.g., "Patient History", "Sample Collection Details")
- Sections — Subdivisions within a form (e.g., "Personal Details", "Medical History")
- Questions — Individual fields within each section (e.g., "Date of Birth", "Preferred Contact Method")
- Sections — Subdivisions within a form (e.g., "Personal Details", "Medical History")
This mirrors traditional forms where you have a main form divided into logical sections, each containing specific questions.
Key Features
- Fully configurable — No code changes needed to add/modify forms
- 20+ field types — Text, number, date, select, checkbox, radio, signature, file upload, camera, barcode, address, and more
- Skip logic — Conditional branching based on answers
- Prefilling — Auto-populate from existing patient/bill/test data
- Validation — Min/max, required, format validation per field type
- File uploads — Signature, images, documents, camera capture
- Multi-level forms — Bill-level, test-level, profile-level, patient-level
- MIS export — Export captured data for reporting
- Audit trail — Full activity logging for config changes and value updates