Users with configure_coverage_rules, override_rules
SCR-POLICYCONTRACTMGMT-007
Payer Performance Dashboard
RCM Manager, Finance Director, Contract Manager
WF-PCM-006
Users with view_payer_performance, payer_performance_dashboards, view_financial_reports
SCR-POLICYCONTRACTMGMT-008
Contract Renewal Alerts
Contract Manager, RCM Manager, Finance Director
WF-PCM-005
Users with manage_amendments, view_contracts, view_all_contracts
Navigation Flow
flowchart LR
H["RCM Home / RCM Menu"] --> A["SCR-POLICYCONTRACTMGMT-001<br/>Payer Master List"]
A -->|"Select Payer / New Payer"| B["SCR-POLICYCONTRACTMGMT-002<br/>Payer Detail / Onboarding"]
A -->|"View Contracts"| C["SCR-POLICYCONTRACTMGMT-003<br/>Contract Management"]
A -->|"Performance"| G["SCR-POLICYCONTRACTMGMT-007<br/>Payer Performance Dashboard"]
B -->|"View Contracts for Payer"| C
B -->|"Configure Coverage Rules"| F["SCR-POLICYCONTRACTMGMT-006<br/>Coverage Rule Builder"]
C -->|"Open Contract"| D["SCR-POLICYCONTRACTMGMT-004<br/>Contract Detail / Editor"]
C -->|"Renewal Alerts"| E["SCR-POLICYCONTRACTMGMT-008<br/>Contract Renewal Alerts"]
D -->|"Open Fee Schedule"| FS["SCR-POLICYCONTRACTMGMT-005<br/>Fee Schedule Editor"]
D -->|"View Performance"| G
D -->|"Back to List"| C
FS -->|"Impact Analysis"| G
FS -->|"Back to Contract"| D
F -->|"Test Rules"| TA["Test Claim (inline panel)"]
F -->|"Activate Rules"| C
E -->|"Open Contract"| D
E -->|"Back to Contract List"| C
G -->|"Drill-down to Contracts"| C
G -->|"Drill-down to Payer"| B
Screen Specifications
SCR-POLICYCONTRACTMGMT-001: Payer Master List
Purpose
Central searchable list of all payers/TPAs with quick access to contracts, plans, connectivity status, and performance indicators. Supports payer onboarding (WF-PCM-001) and payer performance monitoring (WF-PCM-006).
Field Specifications
Field
Type
Required
Validation
Default
Notes
Global Search
Text input
No
Min 2 chars to trigger search
Empty
Searches payer name (EN/AR), payer code, TPA name, license numbers
Payer Type Filter
Dropdown
No
Value in (Government, Private, Self-pay, International)
All
Maps to payers.payer_type
Payer Class Filter
Dropdown
No
Value in configured payer classes
All
Uses master data “Payer Classification Codes”
Network Status Filter
Multi-select
No
Values in (In-Network, Out-of-Network, Terminated)
All
Derived from payer_networks
eClaim Status Filter
Multi-select
No
Values in (Configured, Not Configured, Error)
All
Derived from connectivity config
Active Only Toggle
Checkbox
No
—
Checked
Filters payers.is_active = true
Payer Name
Column text
—
Max 200 chars
—
Shows EN with AR in smaller text below
Payer Type
Column text
—
—
—
Government / Private / etc.
Payer Class
Column text
—
—
—
e.g., THIQA, SAADA, Daman, etc.
Active Contracts
Column badge
—
Non-negative integer
—
Count of active contracts for this payer
Network Status
Column badge
—
—
—
Highest-tier network status for current facility
eClaim Status
Column badge
—
—
—
Configured / Not Configured / Error
Actions
Column buttons
—
—
—
View Payer, View Contracts, Performance
Validation Messages
Condition
Message
Severity
Search < 2 chars and user presses Enter
"Enter at least 2 characters to search payers."
Info
No results
"No payers match the selected filters."
Info
User without manage permission clicks "New Payer"
"You do not have permission to create or edit payer records."
Error
Connectivity error flag present
"Some payers have connectivity errors. Filter by eClaim Status = 'Error' to review."
Warning (banner)
Actions / Buttons
New Payer (top-right, primary)
Visible to: RCM Manager, System Administrator with manage_payer_master
Action: Opens SCR-POLICYCONTRACTMGMT-002 in create mode.
View Payer (row action)
Opens SCR-POLICYCONTRACTMGMT-002 for selected payer.
View Contracts (row action)
Opens SCR-POLICYCONTRACTMGMT-003 filtered by payer.
Performance (row action)
Opens SCR-POLICYCONTRACTMGMT-007 filtered by payer.
Export List (toolbar)
Exports current filtered list to CSV (payer name, type, class, active contracts, status).
Tabs implemented with proper ARIA roles (role="tablist", role="tab", aria-selected).
Arabic fields use lang="ar" and dir="rtl" to aid screen readers.
Error messages associated with fields via aria-describedby.
Connectivity status changes announced via aria-live="polite".
Responsive / Mobile
Tabs collapse into a dropdown “Section” selector on very small screens.
Form fields stack in a single column; labels remain above inputs.
Contacts and Plans tables switch to card layout with key fields.
SCR-POLICYCONTRACTMGMT-003: Contract Management
Purpose
Manage the list of contracts across all payers and facilities: search, filter, monitor status and expiry, and access contract details. Supports WF-PCM-002 and WF-PCM-005.
Field Specifications
Field
Type
Required
Validation
Default
Notes
Payer Filter
Autocomplete dropdown
No
Must match existing payer
All
Filters by contracts.payer_id
Facility Filter
Dropdown
No
Must match existing facility
Current facility (if scoped)
FK to facilities
Status Filter
Multi-select
No
Values in (Draft, In Review, Approved, Active, Expired, Terminated)
Active, In Review
Expiry Range
Date range picker
No
Start <= End
Next 12 months
Used for expiry alerts
Show Expiring Only
Checkbox
No
—
Off
Shows contracts expiring within 90/60/30 days
Contract List Columns
—
—
—
—
See below
Contract List Columns
Column
Description
Contract ID
Internal ID / code
Payer Name
EN/AR
Facility
Facility name
Contract Type
From master data (fee-for-service, per diem, etc.)
Effective Date
Start date
Expiry Date
End date
Days to Expiry
Calculated; negative if already expired
Status
Workflow status
Version
Current version number
Expiry Alert
Badge: 90 / 60 / 30 days, Expired
Actions
View / Edit / Renew / Download PDF
Validation Messages
Condition
Message
Severity
Invalid date range
"Expiry 'From' date must be before 'To' date."
Error
No contracts found
"No contracts match the selected filters."
Info
User without edit permission clicks Edit
"You have read-only access to contracts in this module."
Error
Actions / Buttons
New Contract: Opens SCR-POLICYCONTRACTMGMT-004 in create mode.
View / Edit: Opens SCR-POLICYCONTRACTMGMT-004 for selected contract.
Renew: Opens SCR-POLICYCONTRACTMGMT-004 pre-populated as new version.
Download PDF: Downloads latest signed contract document.
Go to Renewal Alerts: Opens SCR-POLICYCONTRACTMGMT-008 with current filters.
Accessibility
Expiry alerts use text badges (e.g., "30 days", "Expired") plus colour.
Table is keyboard navigable; row focus visible.
Filters have labels and can be operated via keyboard only.
Responsive / Mobile
On small screens, contract rows become cards with key fields and action buttons.
Create, edit, review, approve, and digitally sign contracts, including terms, covered facilities, payment terms, and linkage to fee schedules. Supports WF-PCM-002 and WF-PCM-005.
Approval buttons have clear labels and confirmation dialogs for Reject.
Version history list is structured with <ul> and <li> for screen readers.
File upload control labelled "Signed Contract PDF".
Responsive / Mobile
Right column stacks below left column.
Approval workflow and version history become collapsible sections.
SCR-POLICYCONTRACTMGMT-005: Fee Schedule Editor
Purpose
Spreadsheet-style interface to manage fee schedule items (CPT to rate mapping), bulk import tariffs, and run rate change impact analysis. Supports WF-PCM-003 and WF-PCM-005.
Field Specifications
Header fields:
Field
Type
Required
Validation
Default
Notes
Fee Schedule Name
Text
Yes
3–200 chars
—
contract_fee_schedules.schedule_name
Linked Contract
Read-only text
Yes
Must reference existing contract
From context
Base Tariff
Dropdown
Yes
(DHA, DOH, Custom)
From contract
Effective Date
Date
Yes
<= Expiry Date
—
Expiry Date
Date
No
>= Effective Date
—
Status
Dropdown
Yes
(Draft, In Review, Active, Archived)
Draft
Grid columns (fee_schedule_items):
Column
Type
Required
Validation
Notes
CPT Code
Autocomplete
Yes
Must exist in CPT master
cpt_code
Description
Text (read-only or editable)
Yes
Max 255 chars
Defaults from CPT master
Facility Rate
Numeric
Conditional
>= 0
Required if facility billing used
Professional Rate
Numeric
Conditional
>= 0
Required if professional billing used
Modifier
Text
No
Valid CPT modifier format
Rate Type
Dropdown
Yes
(Flat, % of Tariff)
Flat
Active
Checkbox
Yes
Boolean
On
Validation Messages
Condition
Message
Severity
Missing fee schedule name
"Fee Schedule Name is required."
Error
CPT code not found
"CPT code not found in master list."
Error
Negative rate
"Rates must be zero or positive."
Error
Attempt to activate with no items
"At least one active fee schedule item is required before activation."
Error
Actions / Buttons
Import Tariff (CSV): Uploads CSV; maps columns to CPT, rates.
Add Row: Adds new fee schedule item row.
Delete Row: Marks row as inactive (soft delete).
Run Impact Analysis: Compares against previous schedule; opens summary panel.
Publish: Sets status to Active (with confirmation).
On very small screens, an alternative “form per item” view may be offered.
SCR-POLICYCONTRACTMGMT-006: Coverage Rule Builder
Purpose
Visual rule builder to configure coverage and medical necessity rules per payer/plan, including CPT/ICD mappings, age/gender limits, frequency limits, and prior auth flags. Supports WF-PCM-004.
Field Specifications
Field
Type
Required
Validation
Default
Notes
Rule Name
Text
Yes
3–200 chars
—
Human-readable label
Rule Type
Dropdown
Yes
(Coverage, Benefit Limit, Clinical Pathway)
Coverage
coverage_rules.rule_type
Payer
Autocomplete
Yes
Must match existing payer
—
Plan
Autocomplete
No
Must match plan for payer
All plans
Optional for payer-wide rules
CPT Codes
Multi-select autocomplete
Yes
Must exist in CPT master
—
Stored as list/JSON
ICD-10-AM Codes
Multi-select autocomplete
No
Must exist in ICD-10-AM master
—
Age Min
Numeric
No
0–120
—
Age Max
Numeric
No
0–120; >= Age Min
—
Gender
Dropdown
No
(Any, Male, Female)
Any
Frequency Limit
Numeric
No
>= 0
—
Frequency Period
Dropdown
Conditional
(Per Day, Per Month, Per Year, Lifetime)
Per Year
Required if Frequency Limit > 0
Requires Prior Auth
Checkbox
No
—
Off
Effective Date
Date
Yes
—
Today
Active
Toggle
Yes
Boolean
On
Test Claim Panel
Field
Type
Required
Validation
Notes
Test CPT
Autocomplete
Yes
CPT exists
Test ICD-10-AM
Autocomplete
No
ICD exists
Patient Age
Numeric
Yes
0–120
Patient Gender
Dropdown
Yes
(Male, Female)
Validation Messages
Condition
Message
Severity
Missing rule name
"Rule Name is required."
Error
No CPT codes selected
"At least one CPT code must be selected."
Error
Frequency limit without period
"Select a frequency period when a frequency limit is set."
Error
Age Max < Age Min
"Maximum age must be greater than or equal to minimum age."
Error
Test claim fails rule
"Test claim does NOT meet coverage criteria. Reason: [detail]."
Info
Actions / Buttons
Save Rule: Saves rule in Draft or Active state depending on toggle.
Test Claim: Runs test against current rule; shows pass/fail.
Activate / Deactivate: Toggles is_active with confirmation.
Clone Rule: Copies current rule to new draft.
Accessibility
Rule builder uses clear labels and grouping; drag-and-drop (if used) must have keyboard alternative (e.g., “Add condition” buttons).
Test result displayed in aria-live="polite" region.
Executive dashboard showing payer scorecards: denial rate, average days to pay, reimbursement variance, volume trends, and top denial reasons. Supports WF-PCM-006.
Field Specifications
Field
Type
Required
Validation
Default
Notes
Date Range
Date range picker
Yes
Start <= End
Last 3 months
Payer Filter
Multi-select
No
Must match existing payers
All
Metric Cards
Display
—
—
—
Denial Rate, Avg Days to Pay, Reimbursement Variance, Volume
Payer Scorecard Table
Display
—
—
—
One row per payer
Top Denial Reasons Chart
Display
—
—
—
Bar/pie chart
Validation Messages
Condition
Message
Severity
No data for period
"No claims data available for the selected period."
Info
Actions / Buttons
Export PDF: Exports dashboard snapshot.
Export Data (CSV): Exports underlying metrics.
Drill-down: Clicking a payer row opens detailed view or Contract Management filtered by payer.
Accessibility
Charts must have text equivalents (tables or lists).
Colour-coded metrics accompanied by text labels and numeric values.
Responsive / Mobile
Metric cards stack vertically.
Charts resize; some may collapse into summary tables.
Colours: red (error), amber (warning), blue (info), green (success).
Include icon + text; no colour-only signalling.
Expiry Alerts:
Badges with text: "90 days", "60 days", "30 days", "Expired".
Used consistently in Contract Management and Renewal Alerts.
3. Loading States
Skeleton loaders for tables and dashboards.
Spinners for long-running operations (imports, impact analysis).
aria-busy="true" set on containers during loading.
4. Bilingual (Arabic/English) UI Considerations
All payer and plan names stored in both English and Arabic where available.
Display pattern: English on first line, Arabic on second line with dir="rtl" and lang="ar".
Module supports language toggle at application level:
Labels, buttons, and messages localised.
For full Arabic UI, layout may switch to RTL; ensure mirrored alignment and navigation.
Numeric fields (rates, days) remain LTR even in Arabic UI.
5. Accessibility (WCAG 2.1 AA)
Consistent use of <label> for all inputs; for attribute linked to id.
Keyboard-only operation supported for all actions (no mouse required).
Visible focus indicators on all interactive elements.
Sufficient colour contrast (minimum 4.5:1 for normal text).
Use of ARIA roles and properties for:
Tabs (role="tablist", role="tab", aria-selected).
Dialogs (modals) with role="dialog" and focus trapping.
Live regions (aria-live) for dynamic messages.
6. Responsive / Mobile Behaviour
Breakpoints:
≥ 1024px: full desktop layout with multi-column forms and tables.
768–1023px: two-column forms where possible; tables horizontally scrollable.
< 768px: single-column forms; tables convert to card layouts where appropriate.
Touch-friendly:
Buttons and interactive elements at least 44x44 px.
Adequate spacing between tap targets.
7. Shared Patterns with Other RCM Modules
Consistent “RCM Home / RCM Menu” entry point.
Standard breadcrumb: RCM > Policy & Contract Management > [Screen].
Standard confirmation dialogs for destructive actions (deactivation, rejection, etc.).
This specification is intended to be developer-ready and should be used alongside the data model and workflow specifications for the policy-contract-mgmt module.