Patient Access Screen Requirements
Screen Inventory
| Screen ID | Screen Name | Primary Actor(s) | Workflow(s) | Access Level |
|---|---|---|---|---|
| SCR-PATIENTACCESS-001 | Eligibility Verification | Registration Clerk, Patient Access Supervisor, Patient Access Manager | WF-PAC-001, WF-PAC-006 | Registration & Patient Access roles |
| SCR-PATIENTACCESS-002 | Prior Authorization Worklist | Authorization Specialist, Patient Access Supervisor, Patient Access Manager | WF-PAC-002 | Authorization team |
| SCR-PATIENTACCESS-003 | Authorization Request Form | Authorization Specialist, Physician (supporting) | WF-PAC-002 | Authorization team, physicians (limited) |
| SCR-PATIENTACCESS-004 | Referral Management | Registration Clerk, Authorization Specialist, Physician, Specialist | WF-PAC-003 | Registration & Authorization roles, physicians (view/initiate) |
| SCR-PATIENTACCESS-005 | Cost Estimator | Financial Counselor, Registration Clerk, Patient Access Supervisor | WF-PAC-004, WF-PAC-006 | Financial counseling & registration |
| SCR-PATIENTACCESS-006 | Financial Counseling | Financial Counselor, Patient Access Manager | WF-PAC-005 | Financial counseling team |
| SCR-PATIENTACCESS-007 | Pre-Registration Dashboard | Registration Clerk, Patient Access Supervisor, Patient Access Manager | WF-PAC-001, WF-PAC-004, WF-PAC-006 | Patient access & registration leadership |
| SCR-PATIENTACCESS-008 | Patient Access Analytics | Patient Access Manager, Finance Director | All WF-PAC-001–006 | Management & analytics roles |
Navigation Flow
Screen Specifications
SCR-PATIENTACCESS-001: Eligibility Verification
Purpose
Single workspace for capturing/maintaining insurance details and performing real-time eligibility checks with UAE payers (eClaimLink, DOH eClaims, direct APIs). Supports WF-PAC-001 and auto-checks for WF-PAC-006.
Layout Description
- Header: Patient banner (see Common UI Patterns).
- Section 1 – Visit Context: Encounter/appointment selector, facility, visit type.
- Section 2 – Insurance Details: Payer, plan, member ID, Emirates ID, coverage dates.
- Section 3 – Eligibility Actions: Verify button, check type (real-time/batch), request source.
- Section 4 – Eligibility Result: Status, effective/termination dates, benefits summary, coverage details, raw response link.
- Section 5 – Next Steps: Buttons for “Create Cost Estimate”, “Refer to Financial Counseling”, “Create Auth Request”, “Create Referral”.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Patient Search | Autocomplete text + MRN/Emirates ID | Yes (if no context) | Min 2 chars; must match existing patient | Pre-filled when launched from encounter | Integrates with patients from ehr-patient-mgmt |
| Encounter / Appointment | Dropdown | Yes | Must be active/future encounter | Current encounter if available | FK to encounters / appointments |
| Facility | Read-only text | Yes | — | From encounter | FK to facilities |
| Payer | Dropdown (searchable) | Yes for insured | Must exist in payers |
— | From policy-contract-mgmt |
| Plan | Dropdown (dependent) | Yes for insured | Must exist in insurance_plans for payer |
— | Filters by payer |
| Member ID | Text | Conditional | Max 30 chars; no spaces at ends | — | Required if payer selected |
| Group ID | Text | No | Max 30 chars | — | Optional |
| Emirates ID | Text | Yes | Regex ^784-\d{4}-\d{7}-\d$ |
From patient record if present | Auto-format 784-YYYY-NNNNNNN-C |
| Coverage Start Date | Date picker | No | Valid date; not > Coverage End | — | Optional override |
| Coverage End Date | Date picker | No | Valid date; not < Coverage Start | — | Optional override |
| Check Type | Radio (Real-time / Batch) | Yes | Must select one | Real-time | Batch only for overnight jobs |
| Request Source | Dropdown | Yes | IN (Registration, Pre-Registration, Day-of-Service, Batch) | Based on entry point | Stored in eligibility_checks.request_source |
| Verify Button | Primary button | — | Enabled when required fields valid | — | Triggers INT-PAC-001/002 |
| Eligibility Status | Badge | Display | IN (Eligible, Ineligible, Limited, Error) | — | From eligibility_responses.is_eligible and codes |
| Effective Date | Read-only date | Display | Valid date | — | From response |
| Termination Date | Read-only date | Display | Valid date | — | From response |
| Benefits Summary | Read-only panel | Display | — | — | Co-pay %, deductible, OOP max |
| Coverage Details Table | Table | Display | — | — | Service categories, limits |
| Raw Response JSON | Link/button | No | — | Hidden | Opens modal with raw payer response |
| Notes / Comments | Textarea | No | Max 500 chars | — | Internal notes for registration |
| Next Steps Buttons | Button group | No | — | — | Launch Cost Estimator, Auth Form, Referral, Counseling |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Missing patient | "Select a patient before performing eligibility verification." | Error |
| Missing payer/plan for insured | "Payer and plan are required to verify eligibility." | Error |
| Invalid Emirates ID format | "Emirates ID must be in the format 784-YYYY-NNNNNNN-C." | Error |
| Real-time call timeout | "Eligibility service did not respond. Please retry or contact IT support." | Warning |
| Payer system error | "Payer returned an error: {payer_error_code}. Please try again or contact the payer." | Warning |
| Ineligible coverage | "Coverage is not active for the selected date of service." | Error |
| Coverage expiring soon | "Coverage will expire on {date}. Confirm with patient." | Info |
| Eligibility older than 72 hours | "Eligibility check is older than 72 hours. A new verification is recommended." | Warning |
Actions / Buttons
- Verify Eligibility:
- Validates required fields.
- Creates
eligibility_checksrecord with statuspending. - Calls appropriate integration (INT-PAC-001/002).
- On success: creates
eligibility_responses, updates status, refreshes UI. -
On failure: sets status
errorand shows message. -
Create Cost Estimate:
-
Opens SCR-PATIENTACCESS-005 with patient, encounter, payer, plan, and benefits pre-populated.
-
Refer to Financial Counseling:
-
Opens SCR-PATIENTACCESS-006 with context; flags patient in billing as needing counseling.
-
Create Auth Request:
-
Opens SCR-PATIENTACCESS-003 with patient, encounter, payer, plan, and coverage details.
-
Create Referral:
- Opens SCR-PATIENTACCESS-004 with patient and payer pre-filled.
HTML Wireframe Mockup
Show HTML code
<div style="font-family: Arial, sans-serif; max-width: 980px; margin: 0 auto; border: 1px solid #ccc; border-radius: 8px; overflow: hidden;">
<div style="background: #1a73e8; color: white; padding: 12px 20px;">
<h3 style="margin: 0;">Eligibility Verification</h3>
</div>
<div style="padding: 16px;">
<!-- Patient Banner -->
<section aria-label="Patient banner" style="background:#f5f5f5; padding:10px 12px; border-radius:4px; margin-bottom:16px; display:flex; justify-content:space-between; font-size:13px;">
<div>
<strong>Ahmed Al-Maktoum</strong> (MRN: 0012345)<br/>
DOB: 12-Mar-1985 • Emirates ID: 784-1985-1234567-1
</div>
<div style="text-align:right;">
Facility: Dubai General Hospital<br/>
Visit: OPD • 10-Feb-2026 09:30
</div>
</section>
<!-- Insurance Details -->
<section aria-label="Insurance details" style="margin-bottom:16px;">
<h4 style="margin:0 0 8px;">Insurance Information</h4>
<div style="display:flex; flex-wrap:wrap; gap:12px;">
<div style="flex:1 1 220px;">
<label for="payer" style="display:block; font-size:12px; margin-bottom:4px;">Payer</label>
<select id="payer" style="width:100%; padding:6px; font-size:13px;">
<option value="">Select payer</option>
<option>Dubai Health Insurance Corp (DHA)</option>
<option>Daman</option>
<option>Oman Insurance</option>
</select>
</div>
<div style="flex:1 1 220px;">
<label for="plan" style="display:block; font-size:12px; margin-bottom:4px;">Plan</label>
<select id="plan" style="width:100%; padding:6px; font-size:13px;">
<option value="">Select plan</option>
</select>
</div>
<div style="flex:1 1 180px;">
<label for="memberId" style="display:block; font-size:12px; margin-bottom:4px;">Member ID</label>
<input id="memberId" type="text" style="width:100%; padding:6px; font-size:13px;"/>
</div>
<div style="flex:1 1 220px;">
<label for="emiratesId" style="display:block; font-size:12px; margin-bottom:4px;">Emirates ID</label>
<input id="emiratesId" type="text" placeholder="784-YYYY-NNNNNNN-C" style="width:100%; padding:6px; font-size:13px;"/>
</div>
</div>
</section>
<!-- Actions -->
<section aria-label="Eligibility actions" style="margin-bottom:16px; display:flex; align-items:center; justify-content:space-between;">
<div>
<label style="font-size:12px; margin-right:8px;">Check Type:</label>
<label style="font-size:12px; margin-right:8px;"><input type="radio" name="checkType" checked/> Real-time</label>
<label style="font-size:12px;"><input type="radio" name="checkType"/> Batch</label>
</div>
<button style="background:#1a73e8; color:white; border:none; padding:8px 18px; border-radius:4px; font-size:13px; cursor:pointer;">
Verify Eligibility
</button>
</section>
<!-- Result -->
<section aria-label="Eligibility result" style="border-top:1px solid #eee; padding-top:12px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:8px;">
<div>
<span style="display:inline-block; padding:3px 8px; border-radius:12px; background:#e6f4ea; color:#137333; font-size:12px;">
Eligible
</span>
<span style="font-size:12px; margin-left:8px;">Effective: 01-Jan-2026 • Termination: 31-Dec-2026</span>
</div>
<button style="background:transparent; border:1px solid #ccc; padding:4px 10px; border-radius:4px; font-size:12px; cursor:pointer;">
View Raw Response
</button>
</div>
<div style="display:flex; flex-wrap:wrap; gap:12px; font-size:12px;">
<div style="flex:1 1 260px; background:#f8f9fa; padding:8px; border-radius:4px;">
<strong>Benefits Summary</strong><br/>
Co-pay: 20% OPD • Deductible: AED 1,000 (AED 400 met)<br/>
Annual Max Remaining: AED 45,000
</div>
<div style="flex:1 1 260px;">
<table style="width:100%; border-collapse:collapse; font-size:12px;">
<thead>
<tr>
<th style="text-align:left; border-bottom:1px solid #ddd; padding:4px;">Service</th>
<th style="text-align:left; border-bottom:1px solid #ddd; padding:4px;">Coverage</th>
<th style="text-align:left; border-bottom:1px solid #ddd; padding:4px;">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding:4px; border-bottom:1px solid #f0f0f0;">OPD Consultation</td>
<td style="padding:4px; border-bottom:1px solid #f0f0f0;">Covered 80%</td>
<td style="padding:4px; border-bottom:1px solid #f0f0f0;">Co-pay 20%</td>
</tr>
<tr>
<td style="padding:4px;">Imaging (MRI)</td>
<td style="padding:4px;">Pre-auth required</td>
<td style="padding:4px;">Refer to Auth team</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Next Steps -->
<div style="margin-top:12px; display:flex; flex-wrap:wrap; gap:8px;">
<button style="background:#fff; border:1px solid #1a73e8; color:#1a73e8; padding:6px 12px; border-radius:4px; font-size:12px; cursor:pointer;">
Create Cost Estimate
</button>
<button style="background:#fff; border:1px solid #1a73e8; color:#1a73e8; padding:6px 12px; border-radius:4px; font-size:12px; cursor:pointer;">
Refer to Financial Counseling
</button>
<button style="background:#fff; border:1px solid #1a73e8; color:#1a73e8; padding:6px 12px; border-radius:4px; font-size:12px; cursor:pointer;">
Create Auth Request
</button>
<button style="background:#fff; border:1px solid #1a73e8; color:#1a73e8; padding:6px 12px; border-radius:4px; font-size:12px; cursor:pointer;">
Create Referral
</button>
</div>
</section>
</div>
</div>
Accessibility (WCAG 2.1 AA)
- All inputs have
<label>elements; patient banner announced witharia-label. - Eligibility status badge includes text; not color-only.
- Error messages associated via
aria-describedbyand announced in anaria-live="polite"region. - Keyboard: Tab order follows form; Enter triggers Verify; buttons reachable via keyboard only.
- Supports right-to-left mirroring for Arabic labels; language attributes (
lang="ar") applied where needed.
Responsive / Mobile
- On screens < 768px:
- Layout becomes single-column; patient banner stacks.
- Buttons become full-width with increased height (≥44px).
- Coverage table scrolls horizontally inside container.
- On very small screens, “Next Steps” buttons collapse into a dropdown menu.
SCR-PATIENTACCESS-002: Prior Authorization Worklist
Purpose
Central queue for all pending and active prior authorization cases, prioritized by urgency and payer SLAs. Supports WF-PAC-002.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Date Range Filter | Date range picker | No | Start ≤ End | Last 7 days | Filters by requested_date |
| Payer Filter | Multi-select dropdown | No | — | All | Filter by payer_id |
| Status Filter | Multi-select dropdown | No | IN (New, Submitted, Under Review, Approved, Denied, Expiring Soon) | New + Submitted + Under Review | |
| Urgency Filter | Dropdown | No | IN (All, High, Medium, Low) | All | Based on days to DOS or SLA |
| Search | Text | No | Min 2 chars | — | Searches patient name, MRN, auth number |
| Worklist Table | Table | — | — | — | See columns below |
| Actions Column | Buttons | — | — | — | Open, Update Status, Log Call |
Worklist Table Columns
| Column | Description |
|---|---|
| Patient Name / MRN | Clickable to open auth details |
| Payer / Plan | Payer and plan name |
| Service | Key CPT/procedure description |
| Ordering Provider | Requesting provider |
| Status | Current auth_status with color-coded badge |
| Days Pending | Days since requested_date |
| DOS | Date of service (if known) |
| Auth Number | If approved |
| Priority | Derived from payer rules / DOS proximity |
| Actions | View / Update / Add Note |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| No results | "No authorization requests match your filters." | Info |
| Filter error | "Invalid date range. Start date must be before end date." | Error |
| Unauthorized access | "You do not have permission to view prior authorizations." | Error |
Actions / Buttons
- View / Open: Opens SCR-PATIENTACCESS-003 for selected auth.
- Update Status: Inline modal to change status, record payer communication.
- Add Note: Opens note textarea; saves to
prior_auth_requestsor related log. - Export: Exports current filtered list to CSV for management review.
Accessibility
- Table uses
<th scope="col">and row headers for patient name. - Status badges include text labels; icons have
aria-label. - Filters accessible via keyboard; focus visible.
Responsive / Mobile
- On small screens, table collapses to card layout (one card per auth).
- Columns prioritized: Patient, Payer, Status, Days Pending; others hidden behind “More” toggle.
SCR-PATIENTACCESS-003: Authorization Request Form
Purpose
Form to create or update a prior authorization request with all required clinical and administrative data. Supports WF-PAC-002.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Patient Banner | Read-only | Yes | — | From context | Standard banner |
| Payer | Read-only or dropdown | Yes | Must match existing coverage | From eligibility | |
| Auth ID | Read-only | No | — | Auto-generated | For existing records |
| Service Codes (CPT) | Multi-select autocomplete | Yes | Must be valid CPT codes | — | Stored in prior_authorizations.service_codes |
| Diagnosis (ICD-10-AM) | Multi-select autocomplete | Yes | Valid ICD-10-AM codes | From order if available | |
| Clinical Justification | Textarea | Yes | Max 2000 chars | Pre-filled from order notes if available | |
| Requested Dates (From/To) | Date pickers | Yes | From ≤ To | From scheduled DOS | |
| Requested Units / Visits | Numeric | Yes | > 0 | 1 | |
| Supporting Docs Upload | File upload (multi) | No | Types: PDF/JPEG/PNG; size ≤ 10MB each | — | Stored in document store, referenced by ID |
| Payer Submission Method | Dropdown | Yes | IN (eClaimLink, DOH eClaims, Direct Portal, Manual) | Based on payer | |
| Submission Channel | Dropdown | Yes | IN (API, Portal, Fax, Phone) | Based on method | |
| Requesting Provider | Dropdown | Yes | FK to providers |
From order | |
| Contact Details | Text | Yes | Max 100 chars | From provider profile | Phone/email |
| Internal Notes | Textarea | No | Max 1000 chars | — | Not sent to payer |
| Submit Button | Button | — | Enabled when required fields valid | — | Triggers INT-PAC-001/002 |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Missing service codes | "At least one service code is required." | Error |
| Missing diagnosis | "At least one diagnosis code is required." | Error |
| Invalid file type | "Only PDF, JPG, or PNG files are allowed." | Error |
| File too large | "Each file must be 10 MB or smaller." | Error |
| Missing payer submission method | "Select how this request will be submitted to the payer." | Error |
Actions / Buttons
- Submit to Payer:
- Validates form; creates/updates
prior_authorizationsandprior_auth_requests. - For API methods: sends structured request via INT-PAC-001/002.
-
Updates status to
submittedand logs submission_datetime. -
Save as Draft:
-
Saves incomplete record with status
draft; not sent to payer. -
Attach Additional Document:
- Adds more files to existing request; logs new
prior_auth_requestsentry.
HTML Wireframe Mockup
Show HTML code
<div style="font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; border: 1px solid #ccc; border-radius: 8px; overflow: hidden;">
<div style="background: #1a73e8; color: white; padding: 12px 20px;">
<h3 style="margin: 0;">Authorization Request</h3>
</div>
<div style="padding: 16px;">
<!-- Patient Banner -->
<section style="background:#f5f5f5; padding:10px 12px; border-radius:4px; margin-bottom:16px; font-size:13px;">
<strong>Fatima Al-Nahyan</strong> (MRN: 0098765) • DOB: 05-May-1990 • Emirates ID: 784-1990-7654321-3
</section>
<!-- Payer & Service -->
<section style="margin-bottom:16px;">
<div style="display:flex; flex-wrap:wrap; gap:12px;">
<div style="flex:1 1 260px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Payer</label>
<input type="text" value="Daman" disabled style="width:100%; padding:6px; font-size:13px; background:#eee;"/>
</div>
<div style="flex:1 1 260px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Plan</label>
<input type="text" value="THIQA Enhanced" disabled style="width:100%; padding:6px; font-size:13px; background:#eee;"/>
</div>
<div style="flex:1 1 160px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Requested Units</label>
<input type="number" value="1" style="width:100%; padding:6px; font-size:13px;"/>
</div>
</div>
</section>
<!-- Codes -->
<section style="margin-bottom:16px;">
<div style="display:flex; flex-wrap:wrap; gap:12px;">
<div style="flex:1 1 260px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Service Codes (CPT)</label>
<input type="text" placeholder="Search CPT codes..." style="width:100%; padding:6px; font-size:13px;"/>
<div style="font-size:11px; color:#666; margin-top:4px;">e.g., 73721 - MRI lower extremity</div>
</div>
<div style="flex:1 1 260px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Diagnosis (ICD-10-AM)</label>
<input type="text" placeholder="Search diagnosis..." style="width:100%; padding:6px; font-size:13px;"/>
</div>
</div>
</section>
<!-- Clinical Justification -->
<section style="margin-bottom:16px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Clinical Justification</label>
<textarea rows="4" style="width:100%; padding:6px; font-size:13px;"></textarea>
</section>
<!-- Submission -->
<section style="margin-bottom:16px; display:flex; flex-wrap:wrap; gap:12px;">
<div style="flex:1 1 220px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Payer Submission Method</label>
<select style="width:100%; padding:6px; font-size:13px;">
<option>eClaimLink (DHA)</option>
<option>DOH eClaims</option>
<option>Direct Payer Portal</option>
<option>Manual</option>
</select>
</div>
<div style="flex:1 1 220px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Submission Channel</label>
<select style="width:100%; padding:6px; font-size:13px;">
<option>API</option>
<option>Portal</option>
<option>Fax</option>
<option>Phone</option>
</select>
</div>
<div style="flex:1 1 220px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Requesting Provider</label>
<select style="width:100%; padding:6px; font-size:13px;">
<option>Dr. Ali Hassan</option>
</select>
</div>
</section>
<!-- Files -->
<section style="margin-bottom:16px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Supporting Documents</label>
<input type="file" multiple style="font-size:12px;"/>
<div style="font-size:11px; color:#666; margin-top:4px;">Upload clinical notes, imaging reports, lab results (PDF/JPG/PNG, max 10 MB each).</div>
</section>
<!-- Footer -->
<section style="display:flex; justify-content:flex-end; gap:8px;">
<button style="background:#fff; border:1px solid #ccc; padding:6px 12px; border-radius:4px; font-size:12px; cursor:pointer;">Save Draft</button>
<button style="background:#1a73e8; color:white; border:none; padding:8px 18px; border-radius:4px; font-size:13px; cursor:pointer;">Submit to Payer</button>
</section>
</div>
</div>
Accessibility
- All form fields labeled; file input has clear instructions.
- Error messages for uploads announced via
aria-live. - Supports keyboard-only navigation; no drag-and-drop required.
Responsive / Mobile
- Multi-column sections collapse into single column.
- File upload control uses native mobile file picker.
- Long textareas expand vertically; scrolling within page, not nested scrollbars.
SCR-PATIENTACCESS-004: Referral Management
Purpose
Create, view, and manage referrals, including visit counts and expiry alerts. Supports WF-PAC-003.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Referral Search | Text | No | Min 2 chars | — | Search by patient, referral number |
| Status Filter | Dropdown | No | IN (Active, Expired, Exhausted, Pending) | Active | |
| Patient Name | Column | — | — | — | From patients |
| Referring Provider | Column | — | — | — | From providers |
| Specialist | Column | — | — | — | From providers |
| Payer | Column | — | — | — | From payers |
| Visits Authorized | Column | — | — | — | authorized_visits |
| Visits Used | Column | — | — | — | used_visits |
| Status | Column | — | — | — | status |
| Create Referral Button | Button | — | — | — | Opens referral form |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| No referrals found | "No referrals found for the selected criteria." | Info |
Actions / Buttons
- Create Referral: Opens referral creation form (same screen, modal or side panel).
- Edit Referral: For active referrals; update validity dates, visits.
- Close Referral: Set status to
closedwith reason.
Accessibility
- Search and filters labeled; table headers accessible.
- Status icons accompanied by text.
Responsive / Mobile
- Table becomes stacked cards; key fields shown first (patient, specialist, visits remaining).
SCR-PATIENTACCESS-005: Cost Estimator
Purpose
Calculate and present patient-friendly cost estimates for planned services, using payer benefits and contracted rates. Supports WF-PAC-004 and WF-PAC-006.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Patient Banner | Read-only | Yes | — | From context | |
| Planned Services (CPT) | Multi-select autocomplete | Yes | Valid CPT codes | From order/schedule | |
| Payer / Plan | Read-only | Yes | — | From eligibility | |
| Estimated Charges | Read-only numeric | Yes | ≥ 0 | Calculated | Sum of contracted rates |
| Estimated Payer Payment | Read-only numeric | Yes | ≥ 0 | Calculated | Based on coverage rules |
| Estimated Patient Responsibility | Read-only numeric | Yes | ≥ 0 | Calculated | Deductible + co-pay + coinsurance |
| Deductible Applied | Read-only numeric | No | ≥ 0 | Calculated | |
| Co-pay Applied | Read-only numeric | No | ≥ 0 | Calculated | |
| Coinsurance Applied | Read-only numeric | No | ≥ 0 | Calculated | |
| Estimate Valid Until | Date | Yes | ≥ today | +7 days | |
| Language Toggle | Toggle (EN / AR) | Yes | IN (EN, AR) | EN | Switches labels and content |
| Print Estimate | Button | No | — | — | Generates PDF |
| Email Estimate | Button | No | Valid email | — | Sends to patient |
| Patient Acknowledgment | Checkbox + datetime | No | — | — | Stored in cost_estimates.acknowledged_by_patient |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Missing planned services | "Select at least one planned service to generate an estimate." | Error |
| Missing payer | "Eligibility information is required before cost estimation." | Error |
| Email invalid | "Enter a valid email address to send the estimate." | Error |
Actions / Buttons
- Generate Estimate:
- Calls internal pricing engine using fee schedules and benefits.
-
Creates
cost_estimatesrecord. -
Print Estimate:
-
Generates bilingual PDF with EN/AR sections.
-
Email Estimate:
-
Sends secure link or PDF to patient email (per UAE PDPL consent).
-
Send to Portal:
- Publishes estimate to patient portal via INT-PAC-008.
HTML Wireframe Mockup
Show HTML code
<div style="font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; border: 1px solid #ccc; border-radius: 8px; overflow: hidden;">
<div style="background: #1a73e8; color: white; padding: 12px 20px; display:flex; justify-content:space-between; align-items:center;">
<h3 style="margin: 0;">Cost Estimator</h3>
<div style="font-size:12px;">
<label><input type="radio" name="lang" checked/> EN</label>
<label style="margin-left:8px;"><input type="radio" name="lang"/> AR</label>
</div>
</div>
<div style="padding: 16px;">
<!-- Patient Banner -->
<section style="background:#f5f5f5; padding:10px 12px; border-radius:4px; margin-bottom:16px; font-size:13px;">
<strong>Ahmed Al-Maktoum</strong> • MRN: 0012345 • Payer: Oman Insurance (Gold)
</section>
<!-- Planned Services -->
<section style="margin-bottom:16px;">
<label style="display:block; font-size:12px; margin-bottom:4px;">Planned Services (CPT)</label>
<input type="text" placeholder="Search or add CPT codes..." style="width:100%; padding:6px; font-size:13px;"/>
<div style="font-size:11px; color:#666; margin-top:4px;">Example: 70450 - CT head without contrast</div>
</section>
<!-- Estimate Summary -->
<section style="display:flex; flex-wrap:wrap; gap:12px; margin-bottom:16px;">
<div style="flex:1 1 260px; background:#f8f9fa; padding:10px; border-radius:4px; font-size:13px;">
<strong>Total Estimated Charges</strong><br/>
<span style="font-size:18px; font-weight:bold;">AED 3,000</span>
</div>
<div style="flex:1 1 260px; background:#f8f9fa; padding:10px; border-radius:4px; font-size:13px;">
<strong>Estimated Payer Payment</strong><br/>
<span style="font-size:18px; font-weight:bold;">AED 2,400</span>
</div>
<div style="flex:1 1 260px; background:#fff3cd; padding:10px; border-radius:4px; font-size:13px;">
<strong>Estimated Patient Responsibility</strong><br/>
<span style="font-size:18px; font-weight:bold;">AED 600</span>
</div>
</section>
<!-- Breakdown -->
<section style="margin-bottom:16px;">
<table style="width:100%; border-collapse:collapse; font-size:12px;">
<thead>
<tr>
<th style="text-align:left; border-bottom:1px solid #ddd; padding:4px;">Component</th>
<th style="text-align:right; border-bottom:1px solid #ddd; padding:4px;">Amount (AED)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding:4px; border-bottom:1px solid #f0f0f0;">Deductible Applied</td>
<td style="padding:4px; text-align:right; border-bottom:1px solid #f0f0f0;">200</td>
</tr>
<tr>
<td style="padding:4px; border-bottom:1px solid #f0f0f0;">Co-pay</td>
<td style="padding:4px; text-align:right; border-bottom:1px solid #f0f0f0;">200</td>
</tr>
<tr>
<td style="padding:4px;">Coinsurance</td>
<td style="padding:4px; text-align:right;">200</td>
</tr>
</tbody>
</table>
</section>
<!-- Acknowledgment & Actions -->
<section style="display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:12px;">
<label style="font-size:12px;">
<input type="checkbox"/> Patient has reviewed and acknowledges this estimate.
</label>
<span style="font-size:11px; color:#666;">Valid until: 17-Feb-2026</span>
</section>
<section style="display:flex; flex-wrap:wrap; gap:8px;">
<button style="background:#fff; border:1px solid #ccc; padding:6px 12px; border-radius:4px; font-size:12px; cursor:pointer;">Print</button>
<button style="background:#fff; border:1px solid #ccc; padding:6px 12px; border-radius:4px; font-size:12px; cursor:pointer;">Email</button>
<button style="background:#1a73e8; color:white; border:none; padding:8px 18px; border-radius:4px; font-size:13px; cursor:pointer;">Send to Patient Portal</button>
</section>
</div>
</div>
Accessibility
- Monetary amounts formatted with clear labels; no reliance on color alone.
- Language toggle updates
langattribute and text direction for Arabic. - Acknowledgment checkbox accessible via keyboard and screen reader.
Responsive / Mobile
- Summary cards stack vertically.
- Breakdown table scrolls horizontally if needed.
- Buttons become full-width on very small screens.
SCR-PATIENTACCESS-006: Financial Counseling
Purpose
Document financial counseling sessions, set up payment plans, and manage charity/assistance applications. Supports WF-PAC-005.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Patient Banner | Read-only | Yes | — | From context | |
| Session Date/Time | Datetime picker | Yes | ≤ now | Now | |
| Counselor | Dropdown | Yes | FK to users with Financial Counselor role |
Current user | |
| Counseling Type | Dropdown | Yes | IN (Self-pay, High OOP, Uninsured, Underinsured, Other) | — | |
| Patient Situation | Textarea | Yes | Max 2000 chars | — | |
| Options Presented | Multi-select checkboxes | Yes | Must select ≥1 | — | Payment plan, discount, charity, gov program |
| Patient Decision | Dropdown | Yes | IN (Accepted Payment Plan, Applied for Charity, Declined Assistance, Pending) | — | |
| Payment Plan Setup | Embedded form | Conditional | Valid schedule if selected | — | Links to payment plan template |
| Charity Application | Embedded form / link | Conditional | Required fields per policy | — | |
| Notes | Textarea | No | Max 2000 chars | — | |
| Signature Capture | Canvas / signature pad | No (configurable) | — | — | For patient consent |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| Missing counseling type | "Select the counseling type." | Error |
| No options selected | "Select at least one option presented to the patient." | Error |
| Payment plan selected but not configured | "Configure payment plan details or deselect payment plan option." | Error |
Actions / Buttons
- Save Session: Creates
financial_counseling_recordsentry and links to billing account. - Generate Payment Plan Agreement: Produces PDF for signature.
- Submit Charity Application: Sends application to internal review queue.
Accessibility
- Signature pad has alternative text field for users unable to sign digitally.
- Checkboxes and dropdowns fully keyboard-accessible.
Responsive / Mobile
- Embedded payment plan form collapses into accordion sections.
- Signature pad adjusts to screen width.
SCR-PATIENTACCESS-007: Pre-Registration Dashboard
Purpose
Worklist of upcoming appointments with pre-registration status, enabling proactive outreach. Supports WF-PAC-006 and WF-PAC-001/004.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Date Range | Date range picker | Yes | Start ≤ End | Next 7 days | |
| Department / Clinic Filter | Dropdown | No | — | All | |
| Pre-reg Status Filter | Multi-select | No | IN (Not Started, In Progress, Complete, Failed) | Not Started + In Progress | |
| Completion Rate | KPI tile | Display | 0–100% | — | Derived from pre_registration_records |
| Upcoming Appointments Table | Table | — | — | — | Columns below |
Table Columns
| Column | Description |
|---|---|
| Patient Name / MRN | Clickable |
| Appointment Date/Time | From scheduling |
| Clinic / Provider | From scheduling |
| Pre-reg Status | Badge |
| Incomplete Items | Icons/text (Demographics, Insurance, Auth, Consent) |
| Last Contact | Date/time |
| Actions | Open Pre-reg, Send Reminder |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| No appointments | "No upcoming appointments match your filters." | Info |
Actions / Buttons
- Open Pre-registration: Opens SCR-PATIENTACCESS-001 and SCR-PATIENTACCESS-005 as needed for that appointment.
- Send Reminder: Sends SMS/email/portal notification via INT-PAC-008.
Accessibility
- KPI tiles include text and numeric values; not color-only.
- Incomplete items icons have
aria-labeland tooltips.
Responsive / Mobile
- Table becomes cards; key info at top; actions as buttons at bottom of card.
SCR-PATIENTACCESS-008: Patient Access Analytics
Purpose
Dashboard of KPIs: eligibility verification rate, auth approval rate, pre-reg completion, cost estimate accuracy, financial clearance rate.
Field Specifications
| Field | Type | Required | Validation | Default | Notes |
|---|---|---|---|---|---|
| Date Range | Date range picker | Yes | Start ≤ End | Last 30 days | |
| Facility / Department Filter | Multi-select | No | — | All | |
| KPI Tiles | Cards | Display | — | — | One per KPI from brief |
| Trend Charts | Line/bar charts | Display | — | — | Per KPI over time |
| Drill-down Links | Links | No | — | — | Open relevant worklists |
Validation Messages
| Condition | Message | Severity |
|---|---|---|
| No data | "No data available for the selected period." | Info |
Actions / Buttons
- Export: Export KPI data to CSV/PDF.
- Drill-down: Navigate to SCR-PATIENTACCESS-002/007/001 with filters applied.
Accessibility
- Charts accompanied by data tables for screen readers.
- Color palettes chosen for sufficient contrast and color-blind safety.
Responsive / Mobile
- KPI tiles stack; charts resize; some charts hidden behind “Show Details” toggles on small screens.
Common UI Patterns
Patient Banner
- Appears at top of all Patient Access screens with patient context.
- Fields:
- Name (EN + optional AR), MRN, DOB, age, gender.
- Emirates ID.
- Primary payer & plan.
- Encounter/appointment info (date/time, provider, clinic).
- Behavior:
- Clickable link to open full patient summary (read-only).
- When no patient selected, shows “Select a patient” prompt.
- Accessibility:
- Exposed as a landmark region with
aria-label="Patient information".
Search Components
- Patient Search:
- Autocomplete with MRN, Emirates ID, name.
- Minimum 2 characters; 300ms debounce.
- Results list keyboard-navigable; Enter selects.
- Worklist Search:
- Simple text search across key fields.
- Validation:
- Clear “no results” messaging.
- Input sanitization to prevent injection.
Alert / Notification Patterns
- Inline Validation:
- Red text under field; icon; associated via
aria-describedby. - Toast Notifications:
- For non-blocking success/info messages (e.g., “Estimate emailed to patient”).
- Modal Alerts:
- For critical actions (e.g., deleting referral, closing auth).
- Severity levels:
- Info (blue), Warning (amber), Error (red), Success (green) with text labels.
Loading States
- Use skeleton loaders for tables and cards.
- Show spinner with “Contacting payer via eClaimLink…” for real-time eligibility/auth calls.
- All spinners have
role="status"andaria-live="polite"text.
Arabic/English Bilingual UI Considerations
- Global language toggle (EN/AR) visible on all Patient Access screens.
- When Arabic selected:
dir="rtl"applied to main container.- Labels, headings, and static text translated; data values (names, codes) unchanged unless Arabic equivalents exist.
- Date/time formats:
- Use day-month-year; avoid ambiguous formats.
- Ensure text expansion space for Arabic strings.
Accessibility (WCAG 2.1 AA) – General
- Keyboard-only operation supported for all functions.
- Focus indicators clearly visible.
- Contrast ratio ≥ 4.5:1 for text and icons.
- Forms:
- Logical tab order.
- Grouped fields with
<fieldset>and<legend>where appropriate. - Screen reader support:
- Landmarks for header, main, navigation.
- Live regions for async events (eligibility responses, auth status updates).
Responsive / Mobile – General
- Mobile-first design; breakpoints at ~576px, 768px, 992px.
- Tables degrade to card layouts on small screens.
- Touch targets ≥ 44x44 px.
- Avoid hover-only interactions; provide tap equivalents.