Denial Analysis Screen Requirements
Screen Inventory
Screen ID
Screen Name
Primary Actor(s)
Workflow(s)
Access Level
SCR-DENIALANALYSIS-001
Denial Worklist
Denial Analyst, Senior Denial Analyst, Denial Manager
WF-DEN-001, WF-DEN-002, WF-DEN-003, WF-DEN-004
Users with view_denials
SCR-DENIALANALYSIS-002
Denial Detail & Root Cause
Denial Analyst, Senior Denial Analyst, Coding Specialist, Physician Advisor, Denial Manager
WF-DEN-002, WF-DEN-003
Users with categorize_denials, analyze_root_cause
SCR-DENIALANALYSIS-003
Appeal Management
Denial Analyst, Senior Denial Analyst, Denial Manager, Coding Specialist, Physician Advisor
WF-DEN-003, WF-DEN-004
Users with prepare_appeals, submit_appeals, track_appeals
SCR-DENIALANALYSIS-004
Denial Trend Dashboard
Denial Manager, Revenue Cycle Manager, Department Heads
WF-DEN-005
Users with view_analytics
SCR-DENIALANALYSIS-005
Payer Scorecard
Denial Manager, Revenue Cycle Manager, Finance Leadership
WF-DEN-006
Users with generate_scorecards, view_analytics
SCR-DENIALANALYSIS-006
Prevention Action Tracker
Denial Manager, Revenue Cycle Manager, Department Heads
WF-DEN-005
Users with create_prevention_plans
SCR-DENIALANALYSIS-007
Executive Denial Summary
Revenue Cycle Manager, C-Suite, Finance Director
WF-DEN-005, WF-DEN-006
Users with view_all_denial_analytics
Navigation Flow
flowchart LR
A["RCM Home / Analytics Landing"] --> B["SCR-DENIALANALYSIS-001<br/>Denial Worklist"]
A --> C["SCR-DENIALANALYSIS-004<br/>Denial Trend Dashboard"]
A --> D["SCR-DENIALANALYSIS-007<br/>Executive Denial Summary"]
B --> E["Open Denial"]
E --> F["SCR-DENIALANALYSIS-002<br/>Denial Detail & Root Cause"]
F --> G["Create / View Appeal"]
G --> H["SCR-DENIALANALYSIS-003<br/>Appeal Management"]
C --> I["Drill-down by Payer/Category"]
I --> B
C --> J["Create Prevention Action"]
J --> K["SCR-DENIALANALYSIS-006<br/>Prevention Action Tracker"]
C --> L["View Payer Comparison"]
L --> M["SCR-DENIALANALYSIS-005<br/>Payer Scorecard"]
M --> C
K --> C
D --> C
D --> M
Screen Specifications
SCR-DENIALANALYSIS-001: Denial Worklist
Purpose
Central queue of open denials, prioritised by financial impact and appeal deadline, with filters and batch actions.
Field Specifications
Filters & Header
Field
Type
Required
Validation
Default
Notes
Payer Filter
Dropdown (multi-select)
No
Must match existing payer IDs
All payers
Source: payers from policy-contract-mgmt
Denial Category Filter
Dropdown (multi-select)
No
FK to denial_categories.category_id
All categories
Includes “Eligibility”, “Authorization”, etc.
Amount Range (Min/Max)
Numeric
No
≥ 0; min ≤ max
Empty
AED currency; used for prioritisation
Age (Days) Filter
Numeric
No
≥ 0
Empty
Filters by current_date - denial_date
Appeal Deadline Range
Date range picker
No
Start ≤ End
Empty
Uses appeal_deadline per payer rules
Assigned Analyst Filter
Dropdown
No
FK to users.user_id
Current user
“Unassigned” option
Status Filter
Dropdown (multi-select)
No
IN (New, In Analysis, Awaiting Appeal, Appealed, Resolved, Written Off)
New, In Analysis, Awaiting Appeal
Maps to denial_records.status
Search Box
Text
No
Max 100 chars
Empty
Searches by claim ID, patient name, Emirates ID, denial code
Worklist Table Columns
Field
Type
Required
Validation
Default
Notes
Select Row
Checkbox
No
—
Unchecked
For batch actions
Priority Score
Badge
Display
Calculated server-side
—
Combines amount + days to deadline
Denial ID
Link
Yes
FK to denial_records.denial_id
—
Opens SCR-DENIALANALYSIS-002
Claim ID
Text
Yes
FK to claims.claim_id
—
From billing-claims
Patient Name
Text
Yes
—
—
From patients (Arabic/English)
Payer
Text
Yes
—
—
From payers
Denial Category
Text
Yes
FK to denial_categories
—
Short label
Denied Amount (AED)
Numeric
Yes
≥ 0
—
From denial_records.denied_amount
Denial Date
Date
Yes
Valid date
—
From denial_records.denial_date
Age (Days)
Numeric
Yes
≥ 0
—
Calculated
Appeal Deadline
Date
Yes
Valid date
—
From payer rules
Days to Deadline
Numeric
Yes
Can be negative
—
Negative = past deadline
Assigned Analyst
Text
No
FK to users
“Unassigned”
—
Status
Badge
Yes
IN allowed statuses
“New”
Colour-coded + text
Batch Action Controls
Field
Type
Required
Validation
Default
Notes
Batch Action Selector
Dropdown
No
IN (Assign Analyst, Change Status, Export, Create Bulk Appeal)
—
Disabled if no rows selected
Batch Analyst
Dropdown
Conditional
Required if action = Assign Analyst
—
FK to users
Batch Status
Dropdown
Conditional
Required if action = Change Status
—
Allowed transitions only
HTML Wireframe Mockup
Show HTML code HTML <div style="font-family: Arial, sans-serif; max-width: 1100px; 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;">Denial Worklist</h3>
<span style="font-size: 12px;">Sorted by priority (Amount & Appeal Deadline)</span>
</div>
<div style="padding: 16px; border-bottom: 1px solid #eee;">
<!-- Filters -->
<div style="display:flex; flex-wrap:wrap; gap:12px;">
<div style="flex:1 1 180px;">
<label>Payer</label><br/>
<select style="width:100%; padding:4px;"><option>All Payers</option></select>
</div>
<div style="flex:1 1 180px;">
<label>Category</label><br/>
<select style="width:100%; padding:4px;"><option>All Categories</option></select>
</div>
<div style="flex:1 1 120px;">
<label>Min Amount (AED)</label><br/>
<input type="number" style="width:100%; padding:4px;"/>
</div>
<div style="flex:1 1 120px;">
<label>Max Amount (AED)</label><br/>
<input type="number" style="width:100%; padding:4px;"/>
</div>
<div style="flex:1 1 120px;">
<label>Age ≤ (days)</label><br/>
<input type="number" style="width:100%; padding:4px;"/>
</div>
<div style="flex:1 1 160px;">
<label>Assigned Analyst</label><br/>
<select style="width:100%; padding:4px;"><option>Me</option></select>
</div>
<div style="flex:1 1 200px;">
<label>Search</label><br/>
<input type="text" placeholder="Claim ID, Patient, Emirates ID" style="width:100%; padding:4px;"/>
</div>
</div>
</div>
<div style="padding: 8px 16px; border-bottom: 1px solid #eee; display:flex; justify-content:space-between; align-items:center;">
<div>
<label>Batch Action:</label>
<select style="margin-left:4px; padding:4px;">
<option value="">Select...</option>
<option>Assign Analyst</option>
<option>Change Status</option>
<option>Export</option>
</select>
</div>
<div style="font-size:12px; color:#555;">Showing 1–25 of 240 denials</div>
</div>
<div style="padding: 0 16px 16px 16px;">
<!-- Table -->
<table style="width:100%; border-collapse:collapse; font-size:13px;">
<thead>
<tr style="background:#f5f5f5;">
<th style="padding:6px; border-bottom:1px solid #ddd;"><input type="checkbox"/></th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Priority</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Denial ID</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Claim ID</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Patient</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Payer</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Category</th>
<th style="padding:6px; border-bottom:1px solid #ddd; text-align:right;">Denied Amt (AED)</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Denial Date</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Days to Deadline</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Analyst</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Status</th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding:6px; border-bottom:1px solid #eee;"><input type="checkbox"/></td>
<td style="padding:6px; border-bottom:1px solid #eee;"><span style="background:#d93025; color:#fff; padding:2px 6px; border-radius:10px; font-size:11px;">High</span></td>
<td style="padding:6px; border-bottom:1px solid #eee;"><a href="#">DEN-2026-00123</a></td>
<td style="padding:6px; border-bottom:1px solid #eee;">CLM-458921</td>
<td style="padding:6px; border-bottom:1px solid #eee;">Ahmed Al-Maktoum</td>
<td style="padding:6px; border-bottom:1px solid #eee;">Daman</td>
<td style="padding:6px; border-bottom:1px solid #eee;">Authorization</td>
<td style="padding:6px; border-bottom:1px solid #eee; text-align:right;">12,500.00</td>
<td style="padding:6px; border-bottom:1px solid #eee;">05-Feb-2026</td>
<td style="padding:6px; border-bottom:1px solid #eee; color:#d93025;">3</td>
<td style="padding:6px; border-bottom:1px solid #eee;">F. Khan</td>
<td style="padding:6px; border-bottom:1px solid #eee;"><span style="background:#fbbc04; padding:2px 6px; border-radius:10px; font-size:11px;">Awaiting Appeal</span></td>
</tr>
</tbody>
</table>
</div>
</div>
Validation Messages
Condition
Message
Severity
Min Amount > Max Amount
"Minimum amount cannot be greater than maximum amount."
Error
Age filter < 0
"Age in days must be zero or greater."
Error
Appeal deadline start > end
"Appeal deadline start date must be before end date."
Error
No results for filters
"No denials match the selected filters. Adjust filters and try again."
Info
Batch action selected with no rows
"Select at least one denial to apply this action."
Error
User lacks permission for batch action
"You do not have permission to perform this batch action."
Error
Action
Description
Row click / Denial ID link
Opens SCR-DENIALANALYSIS-002 for selected denial.
Apply Filters (implicit on change or explicit button)
Refreshes worklist with current filter criteria.
Clear Filters
Resets all filters to defaults.
Batch: Assign Analyst
Assigns selected denials to chosen analyst (with audit log).
Batch: Change Status
Updates status for selected denials (where transition allowed).
Batch: Export
Exports current filtered list to CSV/XLSX (subject to PDPL rules).
Sort by Column
Sorts ascending/descending by selected column.
Pagination Controls
Navigate between pages of results.
Accessibility (WCAG 2.1 AA)
All filters have <label> elements; search has aria-label describing searchable fields.
Table headers use <th scope="col">; row selection checkboxes have aria-label="Select denial DEN-XXXX".
Batch action errors announced via aria-live="polite" region.
Keyboard: Tab through filters, table, and batch controls; arrow keys to move within table rows; Enter to open denial.
Colour-coded badges always include text labels (e.g., “High”, “Awaiting Appeal”).
Responsive / Mobile
Filters collapse into an accordion panel (“Filters”) on screens < 768px.
Table switches to stacked card layout: each denial shown as a card with key fields; actions at bottom.
Sticky bottom bar for batch actions on mobile to keep controls reachable.
Touch targets at least 44x44px; horizontal scrolling allowed for wide tables.
SCR-DENIALANALYSIS-002: Denial Detail & Root Cause
Purpose
Provide full context for a denial (claim, patient, payer response) and capture structured root cause analysis and recommendations.
Field Specifications
Header & Context
Field
Type
Required
Validation
Default
Notes
Patient Banner
Composite
Display
—
—
Standard patient banner (see Common UI Patterns)
Denial ID
Text
Display
—
—
From denial_records.denial_id
Claim ID
Link
Display
—
—
Link to billing-claims claim detail
Payer
Text
Display
—
—
From payers
Denial Date
Date
Display
—
—
From denial_records.denial_date
Denied Amount (AED)
Numeric
Display
≥ 0
—
From denial_records.denied_amount
Appeal Deadline
Date
Display
—
—
Calculated from payer rules
Denial Information
Field
Type
Required
Validation
Default
Notes
Denial Code (Payer)
Text
Display
—
—
From payer remittance
Denial Description
Textarea (read-only)
Display
—
—
From payer or mapping table
Denial Category
Dropdown
Yes
FK to denial_categories.category_id
Pre-filled from auto-categorisation
Editable by authorised users
Claim Lines Summary
Table
Display
—
—
Shows affected claim lines, CPT, ICD-10-AM, amounts
Root Cause Section
Field
Type
Required
Validation
Default
Notes
Root Cause Category
Dropdown
Yes
From master "Root Cause Classification"
Empty
e.g., Registration, Eligibility, Coding, Billing
Root Cause Detail
Dropdown / Autocomplete
Yes
Must belong to selected category
Empty
FK to denial_root_causes.root_cause_detail master list
Process Failure Point
Dropdown
Yes
From controlled list
Empty
e.g., Pre-registration, Charge Capture, Claim Submission
Responsible Department
Dropdown
Yes
From departments
Empty
Used for reporting and action plans
Identified By
Dropdown
Yes
FK to users.user_id
Current user
From denial_root_causes.identified_by
Identified Date
Date
Yes
≤ current date
Today
From denial_root_causes.identified_date
Preventable?
Radio (Yes/No/Unknown)
Yes
IN (Y,N,U)
Unknown
Maps to denial_records.is_preventable
Narrative Notes
Textarea
No
Max 2000 chars
Empty
Free-text explanation
Appeal Recommendation
Dropdown
Yes
IN (Appeal, Correct & Resubmit, Write-off, No Action)
Empty
Drives WF-DEN-003 / write-off workflow
Recommended Appeal Level
Dropdown
Conditional
Required if Appeal Recommendation = Appeal
Empty
First-level, Second-level, External
HTML Wireframe Mockup
Show HTML code HTML <div style="font-family: Arial, sans-serif; max-width: 1000px; margin: 0 auto; border: 1px solid #ccc; border-radius: 8px; overflow:hidden;">
<div style="background:#1a73e8; color:#fff; padding:12px 20px;">
<h3 style="margin:0;">Denial Detail & Root Cause</h3>
</div>
<div style="padding:16px; border-bottom:1px solid #eee;">
<!-- Patient banner placeholder -->
<div style="background:#f0f4f8; padding:8px 12px; border-radius:4px; font-size:13px;">
<strong>Ahmed Al-Maktoum</strong> | MRN: 123456 | Emirates ID: 784-1985-1234567-1 | DOB: 12-Mar-1985 | Payer: Daman
</div>
</div>
<div style="padding:16px; display:flex; flex-wrap:wrap; gap:16px; border-bottom:1px solid #eee;">
<div style="flex:1 1 220px;">
<label>Denial ID</label><br/>
<span>DEN-2026-00123</span>
</div>
<div style="flex:1 1 220px;">
<label>Claim ID</label><br/>
<a href="#">CLM-458921</a>
</div>
<div style="flex:1 1 220px;">
<label>Denied Amount (AED)</label><br/>
<span>12,500.00</span>
</div>
<div style="flex:1 1 220px;">
<label>Appeal Deadline</label><br/>
<span style="color:#d93025;">10-Feb-2026 (3 days)</span>
</div>
</div>
<div style="padding:16px; border-bottom:1px solid #eee;">
<h4 style="margin-top:0;">Denial Information</h4>
<div style="display:flex; flex-wrap:wrap; gap:16px;">
<div style="flex:1 1 200px;">
<label>Denial Code (Payer)</label><br/>
<input type="text" value="CO-197" readonly style="width:100%; padding:4px; background:#f9f9f9;"/>
</div>
<div style="flex:1 1 220px;">
<label>Denial Category</label><br/>
<select style="width:100%; padding:4px;">
<option>Authorization</option>
<option>Eligibility</option>
</select>
</div>
<div style="flex:1 1 100%;">
<label>Denial Description</label><br/>
<textarea readonly style="width:100%; padding:4px; background:#f9f9f9; height:60px;">Authorization not obtained or invalid for date of service.</textarea>
</div>
</div>
</div>
<div style="padding:16px;">
<h4 style="margin-top:0;">Root Cause Analysis</h4>
<div style="display:flex; flex-wrap:wrap; gap:16px;">
<div style="flex:1 1 220px;">
<label>Root Cause Category</label><br/>
<select style="width:100%; padding:4px;">
<option>Front-end: Eligibility/Authorization</option>
</select>
</div>
<div style="flex:1 1 220px;">
<label>Root Cause Detail</label><br/>
<select style="width:100%; padding:4px;">
<option>Authorization not requested</option>
</select>
</div>
<div style="flex:1 1 220px;">
<label>Process Failure Point</label><br/>
<select style="width:100%; padding:4px;">
<option>Pre-registration</option>
</select>
</div>
<div style="flex:1 1 220px;">
<label>Responsible Department</label><br/>
<select style="width:100%; padding:4px;">
<option>Patient Access</option>
</select>
</div>
<div style="flex:1 1 180px;">
<label>Preventable?</label><br/>
<select style="width:100%; padding:4px;">
<option>Yes</option>
<option>No</option>
<option>Unknown</option>
</select>
</div>
<div style="flex:1 1 180px;">
<label>Appeal Recommendation</label><br/>
<select style="width:100%; padding:4px;">
<option>Appeal</option>
<option>Correct & Resubmit</option>
<option>Write-off</option>
</select>
</div>
<div style="flex:1 1 100%;">
<label>Narrative Notes</label><br/>
<textarea style="width:100%; padding:4px; height:80px;" placeholder="Describe findings and recommendation..."></textarea>
</div>
</div>
<div style="margin-top:16px; text-align:right;">
<button style="padding:6px 12px; margin-right:8px;">Cancel</button>
<button style="padding:6px 12px; margin-right:8px;">Save</button>
<button style="padding:6px 12px; background:#1a73e8; color:#fff; border:none; border-radius:4px;">Save & Create Appeal</button>
</div>
</div>
</div>
Validation Messages
Condition
Message
Severity
Root Cause Category empty
"Root cause category is required."
Error
Root Cause Detail empty
"Root cause detail is required."
Error
Process Failure Point empty
"Select where in the process the failure occurred."
Error
Responsible Department empty
"Responsible department is required for reporting."
Error
Identified Date in future
"Identified date cannot be in the future."
Error
Narrative Notes > 2000 chars
"Narrative notes cannot exceed 2000 characters."
Error
Appeal Recommendation empty
"Select an appeal recommendation before saving."
Error
Recommended Appeal Level missing when Appeal selected
"Select an appeal level for this denial."
Error
User without permission editing category/root cause
"You do not have permission to modify denial categorisation."
Error
Action
Description
Save
Persists root cause fields and updates denial_records and denial_root_causes.
Save & Create Appeal
Saves analysis then opens SCR-DENIALANALYSIS-003 pre-populated.
Cancel
Discards unsaved changes and returns to previous screen.
View Claim Details
Opens claim detail in billing-claims (new tab or modal).
View Patient Chart
Opens EHR patient chart (read-only).
Accessibility
Section headings (<h4>) provide landmarks for screen readers.
All inputs have labels; error messages linked via aria-describedby.
Use aria-expanded for collapsible sections (e.g., claim lines).
Keyboard: Tab order follows logical flow; buttons reachable without mouse.
Responsive / Mobile
Layout collapses to single column; sections stacked vertically.
Patient banner becomes a compact card with key identifiers.
Action buttons fixed at bottom of viewport on mobile for easy access.
SCR-DENIALANALYSIS-003: Appeal Management
Purpose
Manage appeal preparation, submission, and tracking for a specific denial, including supporting documents and payer responses.
Field Specifications
Appeal Queue (within screen)
Field
Type
Required
Validation
Default
Notes
Appeal List
Table
Display
—
—
Shows all appeals for this denial (level, status, dates)
Selected Appeal
Row selection
Yes (for detail)
Must select existing appeal
Latest appeal
Drives detail panel
Appeal Detail
Field
Type
Required
Validation
Default
Notes
Appeal ID
Text
Display
—
—
From appeals.appeal_id
Appeal Level
Dropdown
Yes
IN (1st Level, 2nd Level, External)
Based on recommendation
Maps to appeals.appeal_level
Submission Method
Dropdown
Yes
IN (eClaimLink, DOH eClaims, Payer Portal, Email, Fax, Other)
eClaimLink/DOH based on payer
appeals.submission_method
Submission Channel
Text
Conditional
Required if Method = Other
Empty
Free-text description
Submission Date
Date
Yes
≤ current date; ≥ denial date
Today
appeals.submission_date
Supporting Docs
Multi-file upload
No
Allowed types: PDF, DOCX, JPG, PNG; max size per file; total size limit
Empty
appeals.supporting_docs (paths/IDs)
Appeal Letter Template
Dropdown
Yes
FK to "Appeal Letter Templates" master
Based on payer & category
Used to generate letter
Appeal Letter Preview
Rich text
Display
—
Generated
appeals.appeal_letter_path
Follow-up Date
Date
No
≥ Submission Date
Auto-calculated from payer SLA
appeals.follow_up_date
Status
Dropdown
Yes
IN (Draft, Submitted, Under Review, Additional Info Requested, Resolved, Cancelled)
Draft/Submitted
appeals.status
Assigned To
Dropdown
Yes
FK to users.user_id
Current analyst
appeals.assigned_to
Payer Response Summary
Textarea
No
Max 1000 chars
Empty
For quick notes
Outcome Recording (linked to appeal_outcomes)
Field
Type
Required
Validation
Default
Notes
Response Date
Date
Conditional
Required when Status = Resolved
Empty
appeal_outcomes.response_date
Payer Decision
Dropdown
Conditional
Required when Status = Resolved
Empty
IN (Overturned, Upheld, Partially Overturned)
Recovered Amount (AED)
Numeric
Conditional
≥ 0; ≤ denied amount
0
appeal_outcomes.recovered_amount
Adjustment Code
Text
No
Max 50 chars
Empty
Payer adjustment code
Final Resolution
Dropdown
Conditional
Required when Status = Resolved
Empty
IN (Paid, Partial Paid, Written Off, Pending Further Appeal)
Notes
Textarea
No
Max 2000 chars
Empty
appeal_outcomes.notes
HTML Wireframe Mockup
Show HTML code HTML <div style="font-family: Arial, sans-serif; max-width: 1000px; margin: 0 auto; border:1px solid #ccc; border-radius:8px; overflow:hidden;">
<div style="background:#1a73e8; color:#fff; padding:12px 20px;">
<h3 style="margin:0;">Appeal Management</h3>
</div>
<div style="padding:12px 16px; border-bottom:1px solid #eee; font-size:13px;">
<strong>Denial:</strong> DEN-2026-00123 | Claim: CLM-458921 | Payer: Daman | Denied Amt: 12,500.00 AED
</div>
<div style="padding:16px; border-bottom:1px solid #eee;">
<h4 style="margin-top:0;">Existing Appeals</h4>
<table style="width:100%; border-collapse:collapse; font-size:13px;">
<thead>
<tr style="background:#f5f5f5;">
<th style="padding:6px; border-bottom:1px solid #ddd;">Appeal ID</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Level</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Submission Date</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Method</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Status</th>
<th style="padding:6px; border-bottom:1px solid #ddd;">Recovered (AED)</th>
</tr>
</thead>
<tbody>
<tr style="cursor:pointer; background:#fff;">
<td style="padding:6px; border-bottom:1px solid #eee;">APL-2026-0001</td>
<td style="padding:6px; border-bottom:1px solid #eee;">1st Level</td>
<td style="padding:6px; border-bottom:1px solid #eee;">06-Feb-2026</td>
<td style="padding:6px; border-bottom:1px solid #eee;">eClaimLink</td>
<td style="padding:6px; border-bottom:1px solid #eee;"><span style="background:#fbbc04; padding:2px 6px; border-radius:10px; font-size:11px;">Under Review</span></td>
<td style="padding:6px; border-bottom:1px solid #eee;">0.00</td>
</tr>
</tbody>
</table>
<button style="margin-top:8px; padding:6px 12px;">New Appeal</button>
</div>
<div style="padding:16px;">
<h4 style="margin-top:0;">Appeal Details</h4>
<div style="display:flex; flex-wrap:wrap; gap:16px;">
<div style="flex:1 1 200px;">
<label>Appeal Level</label><br/>
<select style="width:100%; padding:4px;">
<option>1st Level</option>
<option>2nd Level</option>
</select>
</div>
<div style="flex:1 1 200px;">
<label>Submission Method</label><br/>
<select style="width:100%; padding:4px;">
<option>eClaimLink</option>
<option>DOH eClaims</option>
<option>Payer Portal</option>
</select>
</div>
<div style="flex:1 1 200px;">
<label>Submission Date</label><br/>
<input type="date" style="width:100%; padding:4px;"/>
</div>
<div style="flex:1 1 200px;">
<label>Status</label><br/>
<select style="width:100%; padding:4px;">
<option>Draft</option>
<option>Submitted</option>
<option>Under Review</option>
<option>Resolved</option>
</select>
</div>
<div style="flex:1 1 200px;">
<label>Follow-up Date</label><br/>
<input type="date" style="width:100%; padding:4px;"/>
</div>
<div style="flex:1 1 200px;">
<label>Assigned To</label><br/>
<select style="width:100%; padding:4px;">
<option>Current User</option>
</select>
</div>
<div style="flex:1 1 100%;">
<label>Supporting Documents</label><br/>
<input type="file" multiple style="padding:4px;"/>
</div>
<div style="flex:1 1 100%;">
<label>Appeal Letter Template</label><br/>
<select style="width:100%; padding:4px;">
<option>Daman - Authorization Denial</option>
</select>
</div>
<div style="flex:1 1 100%;">
<label>Appeal Letter Preview</label><br/>
<div style="border:1px solid #ddd; padding:8px; height:120px; overflow:auto; background:#fafafa; font-size:12px;">
<!-- Generated letter preview -->
<p>Dear Sir/Madam,</p>
<p>We are writing to appeal the denial for claim CLM-458921...</p>
</div>
</div>
</div>
<h4>Outcome (if resolved)</h4>
<div style="display:flex; flex-wrap:wrap; gap:16px;">
<div style="flex:1 1 200px;">
<label>Response Date</label><br/>
<input type="date" style="width:100%; padding:4px;"/>
</div>
<div style="flex:1 1 200px;">
<label>Payer Decision</label><br/>
<select style="width:100%; padding:4px;">
<option>Overturned</option>
<option>Upheld</option>
<option>Partially Overturned</option>
</select>
</div>
<div style="flex:1 1 200px;">
<label>Recovered Amount (AED)</label><br/>
<input type="number" style="width:100%; padding:4px;"/>
</div>
<div style="flex:1 1 100%;">
<label>Notes</label><br/>
<textarea style="width:100%; padding:4px; height:60px;"></textarea>
</div>
</div>
<div style="margin-top:16px; text-align:right;">
<button style="padding:6px 12px; margin-right:8px;">Cancel</button>
<button style="padding:6px 12px; margin-right:8px;">Save Draft</button>
<button style="padding:6px 12px; background:#1a73e8; color:#fff; border:none; border-radius:4px;">Submit Appeal</button>
</div>
</div>
</div>
Validation Messages
Condition
Message
Severity
Appeal Level empty
"Appeal level is required."
Error
Submission Method empty
"Submission method is required."
Error
Submission Date in future
"Submission date cannot be in the future."
Error
Submission Date < Denial Date
"Submission date cannot be before the denial date."
Error
Status = Submitted but required fields missing
"Complete all required fields before submitting the appeal."
Error
File upload type not allowed
"File type not supported. Allowed types: PDF, DOCX, JPG, PNG."
Error
Total upload size exceeded
"Total attachment size exceeds the allowed limit."
Error
Status = Resolved but Response Date missing
"Response date is required when marking the appeal as resolved."
Error
Recovered Amount > Denied Amount
"Recovered amount cannot exceed the denied amount (AED {max})."
Error
Action
Description
New Appeal
Creates new appeals record linked to denial.
Save Draft
Saves appeal without changing status to Submitted.
Submit Appeal
Validates fields, sets status to Submitted, triggers integration (eClaimLink/DOH eClaims).
Cancel
Discards unsaved changes and returns to previous screen.
Upload Documents
Attaches files to appeal; stored in secure document repository.
Accessibility
File input has descriptive label and helper text for allowed formats.
Status changes and submission confirmations announced via aria-live.
Table of existing appeals uses proper header semantics.
Keyboard: All controls reachable; no drag-and-drop required for uploads.
Responsive / Mobile
Existing appeals table becomes list of cards with key info and tap-to-expand.
Appeal detail fields stacked; letter preview collapsible to save vertical space.
Submit button fixed at bottom on small screens.
SCR-DENIALANALYSIS-004: Denial Trend Dashboard
Purpose
Interactive analytics view showing denial trends over time by category, payer, department, and provider, with drill-down to worklist.
Field Specifications
Filters
Field
Type
Required
Validation
Default
Notes
Date Range
Date range picker
Yes
Start ≤ End; range ≤ 24 months
Last 90 days
Applies to denial_trends.period_start/end
Payer
Multi-select dropdown
No
FK to payers
All
—
Denial Category
Multi-select dropdown
No
FK to denial_categories
All
—
Department
Multi-select dropdown
No
FK to departments
All
—
Provider
Multi-select dropdown
No
FK to providers
All
—
Widgets
Widget
Type
Required
Validation
Notes
Overall Denial Rate Trend
Line chart
Display
—
From KPIs; time on X-axis, rate on Y-axis
Category Breakdown
Stacked bar / donut chart
Display
—
Denial count/amount by category
Payer Comparison
Bar chart
Display
—
Denial rate and recovery rate by payer
Top Denial Reasons
Table
Display
—
Top N denial codes/categories by amount
Financial Impact
KPI tiles
Display
—
Total denied, recovered, net write-off
Prevention Effectiveness
Line/bar chart
Display
—
Pre vs post intervention rates
Validation Messages
Condition
Message
Severity
Date range > 24 months
"Select a date range of 24 months or less for optimal performance."
Error
No data for selected filters
"No denial data available for the selected period and filters."
Info
Action
Description
Apply Filters
Refreshes all charts and tables.
Reset Filters
Resets to default date range and all entities.
Drill-down on chart segment
Opens filtered Denial Worklist (SCR-DENIALANALYSIS-001).
Export
Exports current dashboard data as PDF/Excel (subject to PDPL).
Accessibility
Charts accompanied by data tables or “View data as table” toggle.
Each chart has descriptive title and aria-label summarising content.
Keyboard: Focusable chart segments; Enter triggers drill-down.
Colour palettes meet contrast requirements; patterns used in addition to colour.
Responsive / Mobile
Widgets stack vertically; most important KPIs at top.
Charts simplified (fewer labels) on small screens; pinch-to-zoom disabled.
Filter panel collapses into a drawer.
SCR-DENIALANALYSIS-005: Payer Scorecard
Purpose
Side-by-side comparison of payer performance (denial and appeal metrics) for contract negotiation and monitoring.
Field Specifications
Field
Type
Required
Validation
Default
Notes
Period
Dropdown / date range
Yes
Valid period
Last quarter
Maps to payer_denial_scorecards.period_start/end
Payer Selection
Multi-select dropdown
Yes
FK to payers
Top 5 by volume
Max 10 payers at once
Metrics Selector
Multi-select
No
Predefined metrics
Default set
e.g., Denial Rate, Appeal Success, Avg Resolution Days
Scorecard Table Columns
Column
Type
Notes
Payer
Text
Name and logo (if available)
Total Claims
Numeric
From total_claims
Total Denials
Numeric
From total_denials
Denial Rate
Numeric (%)
From denial_rate
Total Denied Amount (AED)
Numeric
From total_denied_amount
Total Recovered (AED)
Numeric
From total_recovered
Appeal Success Rate
Numeric (%)
From appeal_success_rate
Avg Resolution Days
Numeric
From avg_resolution_days
Rank
Numeric
From rank
Action Items
Text / icon
Links to prevention actions or notes
Validation Messages
Condition
Message
Severity
No payer selected
"Select at least one payer to view the scorecard."
Error
More than 10 payers selected
"You can compare up to 10 payers at a time."
Error
No data for selected period
"No scorecard data available for the selected period."
Info
Action
Description
Apply
Loads scorecard for selected payers and period.
Export PDF
Generates PDF report for leadership/contracting.
Export Excel
Exports raw scorecard data.
View Details
Opens filtered Denial Trend Dashboard for selected payer.
Accessibility
Scorecard table uses standard table semantics; sortable columns have aria-sort.
Export buttons have clear labels (e.g., "Export scorecard as PDF").
Keyboard: Arrow keys navigate table; Enter on payer name triggers details.
Responsive / Mobile
Table becomes horizontally scrollable; key columns (Payer, Denial Rate, Appeal Success) pinned.
Option to switch to “card view” per payer with metrics stacked.
SCR-DENIALANALYSIS-006: Prevention Action Tracker
Purpose
Track denial prevention initiatives, owners, timelines, and ROI.
Field Specifications
Field
Type
Required
Validation
Default
Notes
Action List
Table
Display
—
—
Shows all actions from denial_prevention_actions
Category Filter
Dropdown
No
FK to denial_categories
All
—
Payer Filter
Dropdown
No
FK to payers
All
—
Status Filter
Dropdown
No
IN (Planned, In Progress, Completed, On Hold, Cancelled)
All
—
Action Detail (edit panel)
Field
Type
Required
Validation
Default
Notes
Action ID
Text
Display
—
—
action_id
Description
Textarea
Yes
Max 500 chars
Empty
description
Action Type
Dropdown
Yes
e.g., Process Change, Training, System Change
Empty
action_type
Denial Category
Dropdown
Yes
FK to denial_categories
Empty
denial_category_id
Payer
Dropdown
No
FK to payers
Empty
payer_id
Responsible Party
Dropdown
Yes
FK to users or departments
Empty
responsible_party
Target Date
Date
Yes
≥ current date
Empty
target_date
Completion Date
Date
No
≥ Target Date
Empty
completion_date
Status
Dropdown
Yes
IN allowed statuses
Planned
status
Pre-intervention Rate (%)
Numeric
No
0–100
Empty
pre_intervention_rate
Post-intervention Rate (%)
Numeric
No
0–100
Empty
post_intervention_rate
ROI (%)
Numeric
Display
—
Calculated
From KPI formula
Validation Messages
Condition
Message
Severity
Description empty
"Action description is required."
Error
Target Date in past
"Target date should be today or later."
Warning (allow override)
Completion Date < Target Date
"Completion date cannot be before target date."
Error
Rate outside 0–100
"Rates must be between 0% and 100%."
Error
Action
Description
New Action
Creates new prevention action record.
Save
Saves changes to action.
Mark Completed
Sets status to Completed and prompts for completion date.
Link to Trend
Opens Denial Trend Dashboard filtered to category/payer.
Accessibility
Status badges include text and icon; not colour-only.
Action detail form fully keyboard-accessible.
Live region for ROI recalculation updates.
Responsive / Mobile
Action list becomes cards; tap to open detail.
Date pickers use mobile-friendly controls.
SCR-DENIALANALYSIS-007: Executive Denial Summary
Purpose
High-level KPI and financial impact view for executives, with minimal operational detail.
Field Specifications
Widget
Type
Required
Notes
Overall Denial Rate
KPI tile
Display
From KPI definition
Recovery Rate
KPI tile
Display
sum(recovered)/sum(denied)
Financial Impact
KPI tile
Display
Denied, Recovered, Net Loss
Top Issues
List/table
Display
Top 5 categories or root causes
Year-over-Year Comparison
Line/column chart
Display
Denial rate and amount YoY
Action Plans Summary
Table
Display
Key prevention actions and status
Filters: Date range, facility, payer (optional).
Validation Messages
Condition
Message
Severity
No data
"No summary data available for the selected period."
Info
Action
Description
Export PDF
Board-ready summary export.
Drill-down
Links to Denial Trend Dashboard or Payer Scorecard.
Accessibility
KPI tiles have text labels and numeric values; no icon-only indicators.
Charts have alternative text summaries.
Responsive / Mobile
KPI tiles in 2-per-row grid on mobile.
Charts stacked; summary tables scrollable horizontally.
Common UI Patterns
Patient Banner
Appears on SCR-DENIALANALYSIS-002 and 003.
Fields: Patient name (Arabic + English if available), MRN, Emirates ID (784-YYYY-NNNNNNN-C), DOB, age, gender, payer, plan, facility.
Behaviour:
Click opens patient demographics (read-only).
Respect UAE PDPL: only show minimum necessary identifiers based on role.
Accessibility:
Use <header> region with role="banner" and clear labels.
Responsive:
On mobile, show name + MRN + payer; other details in expandable section.
Search Components
Used in Denial Worklist, Trend Dashboard, Payer Scorecard.
Features:
Debounced search (300–500ms).
Clear button inside input.
Placeholder text indicating supported fields.
Accessibility:
aria-label or visible label; role="search" for main search areas.
Alert / Notification Patterns
Inline validation messages under fields (red text, icon, associated via aria-describedby).
Toast notifications for success/info (top-right, auto-dismiss, focusable).
Modal confirmations for destructive actions (e.g., write-off approval) with explicit Yes/No.
Loading States
Skeleton loaders for tables and charts.
Spinner with “Loading denial data…” text for screen-level loads.
Avoid blocking entire UI when only part of page is loading.
Arabic/English Bilingual UI
Full support for English and Arabic labels and content.
Language toggle at application level; screen respects current locale.
For Arabic:
Right-to-left layout; tables and forms mirrored.
Patient names and payer names shown in Arabic where available.
All static text (labels, messages) externalised for translation.
Numeric fields (amounts, dates) formatted per locale but stored in standard formats.
General Accessibility (WCAG 2.1 AA)
Colour contrast ≥ 4.5:1 for text; ≥ 3:1 for large text and UI components.
Keyboard-only operation supported for all screens.
Focus indicators clearly visible.
Use aria-live for dynamic updates (filters applied, data loaded).
Avoid conveying information by colour alone; always include text or icons.
Responsive / Mobile Principles
Breakpoints at ~768px and ~1024px.
Tables degrade to cards or horizontally scrollable containers.
Fixed headers for key actions (filters, primary buttons) where appropriate.
Touch-friendly controls (min 44px height) and spacing.
content/rcm/denial-analysis/04-screen-requirements.md
Generated 2026-02-20 22:54