Patient Access Screen Requirements

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

flowchart LR H["Patient Access Home"] --> A["SCR-PATIENTACCESS-001<br/>Eligibility Verification"] H --> B["SCR-PATIENTACCESS-002<br/>Prior Authorization Worklist"] H --> C["SCR-PATIENTACCESS-004<br/>Referral Management"] H --> D["SCR-PATIENTACCESS-005<br/>Cost Estimator"] H --> E["SCR-PATIENTACCESS-006<br/>Financial Counseling"] H --> F["SCR-PATIENTACCESS-007<br/>Pre-Registration Dashboard"] H --> G["SCR-PATIENTACCESS-008<br/>Patient Access Analytics"] %% Eligibility A --> A1{"Patient Found?"} A1 -->|"No"| A2["Open Patient Search / Registration (EHR)"] A1 -->|"Yes"| A3["Enter Insurance & Verify"] A3 --> A4{"Requires Auth/Referral?"} A4 -->|"Auth"| B A4 -->|"Referral"| C A4 -->|"High OOP"| D %% Auth worklist to form B --> B1["Open Auth Request"] B1 --> B2["SCR-PATIENTACCESS-003<br/>Authorization Request Form"] B2 --> B3["Submit to Payer"] B3 --> B %% Referral C --> C1["Create / Edit Referral"] C1 --> C %% Cost Estimator to Counseling D --> D1{"High Patient Share?"} D1 -->|"Yes"| E D1 -->|"No"| A %% Pre-registration F --> F1["Open Eligibility for Appointment"] F1 --> A F --> F2["Open Cost Estimate"] F2 --> D %% Analytics G -. drill-down .-> A G -. drill-down .-> B G -. drill-down .-> F

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_checks record with status pending.
  • Calls appropriate integration (INT-PAC-001/002).
  • On success: creates eligibility_responses, updates status, refreshes UI.
  • On failure: sets status error and 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
HTML
<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 with aria-label.
  • Eligibility status badge includes text; not color-only.
  • Error messages associated via aria-describedby and announced in an aria-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_requests or 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_authorizations and prior_auth_requests.
  • For API methods: sends structured request via INT-PAC-001/002.
  • Updates status to submitted and 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_requests entry.

HTML Wireframe Mockup

Show HTML code
HTML
<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 closed with 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_estimates record.

  • 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
HTML
<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 lang attribute 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_records entry 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-label and 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" and aria-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.

content/rcm/patient-access/04-screen-requirements.md Generated 2026-02-20 22:54