Policy & Contract Management Workflows

Policy & Contract Management Workflows

This document defines six core workflows for the Policy & Contract Management (policy-contract-mgmt) module. Each workflow includes process steps, decision points, integration hooks, exception handling, and the paperless transformation achieved by the HIS.

Regulatory context (UAE): UAE PDPL (Federal Decree-Law No. 45/2021) for processing payer and contract data; MOH, DOH (Abu Dhabi), and DHA (Dubai) regulations for payer licensing and tariff usage; DOH Shafafiya and DHA eClaimLink eClaims frameworks for payer connectivity; NABIDH (Dubai) and Malaffi (Abu Dhabi) HIE environments for consistent payer identifiers across systems.


WF-POLICYCONTRACTMGMT-001: Payer Onboarding

Process Flow

Actor: RCM Manager, Contract Analyst
Trigger: New insurance payer identified for contracting (e.g., new DHA-licensed insurer or TPA)
Pre-conditions:

  • Facility has strategic approval to work with the payer
  • DHA/DOH/MOH payer license details available
  • At least one responsible internal owner assigned (RCM Manager)
  1. RCM Manager opens Payer Master List (SCR-PCM-001) and clicks “Add New Payer”.
  2. System checks if payer name, DHA/DOH license, or TPA name already exists in payers (to prevent duplicates).
  3. If no duplicate found, Contract Analyst enters payer demographics on Payer Detail / Onboarding (SCR-PCM-002):
    - English/Arabic names, payer type (insurer/TPA/government), payer class (e.g., THIQA, private), DHA/DOH license numbers, TPA affiliation.
  4. System validates mandatory fields and license formats (e.g., DOH payer code, DHA payer ID) and saves to payers (INSERT).
  5. Contract Analyst records contact details and key roles (medical director, claims manager, IT contact) in payer_contacts (multiple INSERTs).
  6. RCM Manager configures payer classification and network status (in-network, out-of-network, tier) and saves to payer_networks for each facility (INSERT).
  7. System prompts to configure submission requirements:
    - eClaimLink / Shafafiya routing, submission channels (portal/API), batch size limits, resubmission rules → stored in payers (UPDATE) and related config tables (module-specific).
  8. System calls System Administrator workflow (or config screen) to set up technical connectivity:
    - eClaimLink credentials, DOH eClaims credentials, endpoints, certificates (stored in secure config, not in business tables).
  9. Contract Analyst defines high-level authorization and formulary constraints (e.g., “MRI requires auth”, “non-formulary biologics require prior auth”) as initial coverage_rules and prior_auth_rules (INSERT).
  10. System runs a test eligibility transaction via eClaimLink or DOH eClaims using a test Emirates ID and plan code to validate connectivity (INT-PCM-004/005).
  11. If test passes, RCM Manager marks payer as “Active for eligibility” and “Active for claims” in payers (UPDATE).
  12. System notifies Billing & Claims and Patient Access modules via internal API (INT-PCM-001/002) that a new payer is available, pushing payer and plan metadata.
  13. Contract Analyst uploads any supporting documents (e.g., payer manuals) to document repository and links them to the payer record (metadata INSERT in a payer_documents table if present).

Data Modified:

  • payers — INSERT, then UPDATE
  • payer_contacts — INSERT
  • payer_networks — INSERT
  • coverage_rules — INSERT (initial high-level rules)
  • prior_auth_rules — INSERT (initial high-level rules)
  • (Config tables for connectivity, e.g., payer_connectivity_settings — INSERT/UPDATE, if defined in this module)

Mermaid Flowchart

flowchart TD A["Start: New payer identified"] --> B["Open Payer Master List & click Add"] B --> C["Check for existing payer by name/license/TPA"] C -->|"Duplicate found"| C1["Show warning & existing record"] C1 --> C2{"User wants to edit existing?"} C2 -->|"Yes"| C3["Open existing payer for update"] --> Z["End"] C2 -->|"No"| Z C -->|"No duplicate"| D["Enter payer demographics & licenses"] D --> E{"Validation OK?"} E -->|"No"| E1["Show field errors"] --> D E -->|"Yes"| F["INSERT into payers"] F --> G["Add payer contacts (payer_contacts INSERT)"] G --> H["Configure network status & tiers (payer_networks INSERT)"] H --> I["Configure submission requirements & routing"] I --> J["Set up eClaimLink / DOH eClaims connectivity"] J --> K["Define initial coverage & prior auth rules"] K --> L["Run test eligibility transaction"] L --> M{"Test successful?"} M -->|"No"| M1["Log error, show message, allow retry"] M1 --> L M -->|"Yes"| N["Mark payer active for eligibility & claims"] N --> O["Notify Billing & Patient Access via API"] O --> P["Upload payer manuals & link to record"] P --> Z["End"]

Decision Points

  1. Duplicate payer check
    - If payer with same name/license exists → user must decide to edit existing or cancel onboarding.
    - If user edits existing → workflow becomes an update, not a new INSERT.

  2. Validation of payer details
    - If mandatory fields missing or license format invalid → system blocks save and highlights fields.
    - If all valid → proceed to create payer record.

  3. Connectivity test outcome
    - If eligibility test fails (timeout, authentication error, schema error) → system logs error, shows details, and allows retry after correction.
    - If test succeeds → payer can be activated for eligibility and claims.

Integration Points

  • Billing & Claims module (billing-claims):
  • Direction: Outbound (INT-PCM-001)
  • Data: Payer master (payers), network status (payer_networks), submission requirements
  • Trigger: Payer activated for claims.

  • Patient Access module (patient-access):

  • Direction: Outbound (INT-PCM-002)
  • Data: Payer and plan metadata for eligibility checks
  • Trigger: Payer activated for eligibility.

  • DHA eClaimLink:

  • Direction: Bidirectional (INT-PCM-004)
  • Data: Eligibility requests/responses, connectivity configuration
  • Trigger: Connectivity test, later eligibility checks.

  • DOH eClaims (Shafafiya):

  • Direction: Bidirectional (INT-PCM-005)
  • Data: Eligibility requests/responses, connectivity configuration
  • Trigger: Connectivity test, later eligibility checks.

Exception Handling

  • Duplicate payer detected:
  • System prevents creation of a new row; user can only update existing payer or cancel.
  • Audit log records attempted duplicate creation (user, timestamp, values).

  • Validation failures:

  • Missing license numbers, invalid email/phone formats, or unsupported payer type → inline error messages; no DB write.

  • Connectivity test failure:

  • System captures error code and message from eClaimLink/DOH eClaims.
  • Payer remains in “Draft” status; cannot be used for eligibility or claims.
  • System suggests checking credentials/endpoints; allows re-run.

  • PDPL-related issues:

  • If user attempts to store personal contact data without consent flag (if modeled) → system prompts to confirm lawful basis (contractual necessity / legitimate interest) and logs consent/legal basis.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Payer information folders with printed letters and manuals Structured payers and payer_contacts records with attached digital documents Centralised, searchable, and version-controlled; easier audits by DHA/DOH
Manual binders listing payer submission rules Configurable submission requirements and routing in system Reduces claim rejections due to outdated rules
Email chains for connectivity setup Configured connectivity profiles with test transactions and audit logs Traceable setup; easier troubleshooting and compliance evidence
Physical network participation letters payer_networks records with effective dates and tiers Enables real-time in-/out-of-network checks in Patient Access and Billing

Remaining Paper Touchpoints: Some payers may still send original signed letters or stamps; these can be scanned and attached, but originals may be retained for legal purposes.

Inputs and Outputs

Inputs:

Source Data Element Format
RCM Manager Strategic approval and payer identification Manual initiation
DHA/DOH/MOH Payer license details, payer codes, TPA affiliation External reference documents
Contract Analyst Payer demographics (names EN/AR, type, class, contacts) SCR-PCM-002 form
Contract Analyst Submission requirements, routing config, initial coverage/prior auth rules SCR-PCM-002 form
System Administrator eClaimLink / DOH eClaims credentials, endpoints, certificates Secure config
DHA eClaimLink / DOH eClaims Test eligibility response REST API (INT-PCM-004/005)

Outputs:

Destination Data Element Format
payers Payer master record (demographics, license, status) SQL INSERT / UPDATE
payer_contacts Contact records for key payer personnel SQL INSERT
payer_networks Network status and tier per facility SQL INSERT
coverage_rules Initial high-level coverage rules SQL INSERT
prior_auth_rules Initial prior auth requirements SQL INSERT
Billing & Claims (billing-claims) Payer and plan metadata notification Internal API (INT-PCM-001)
Patient Access (patient-access) Payer and plan metadata for eligibility Internal API (INT-PCM-002)

Post-conditions:

  • Payer record exists with status "Active" for both eligibility and claims
  • Connectivity to DHA eClaimLink or DOH eClaims validated via test transaction
  • Billing & Claims and Patient Access modules notified of new payer availability
  • Initial coverage and prior auth rules configured and ready for use

SLA and Timing

Step Target Time Escalation Measurement Source
Payer demographic entry and validation < 1 business day None — analyst workflow payers.created_at
Connectivity setup and test transaction < 2 business days from payer entry Alert IT if test fails after 3 attempts payer_connectivity_settings.test_datetime
Full payer activation (eligibility + claims) < 5 business days from initiation Alert RCM Manager if not active within 5 days payers.activated_datetime
Downstream module notification < 1 minute from activation Retry with backoff; alert IT if > 10 min integration_message_log.sent_at

State Transition Diagram

stateDiagram-v2 [*] --> Draft : RCM Manager initiates payer onboarding Draft --> DemographicsComplete : Analyst enters payer details DemographicsComplete --> ConnectivityConfigured : Admin sets up eClaimLink/DOH credentials ConnectivityConfigured --> TestPending : System runs test eligibility transaction TestPending --> TestFailed : Test transaction fails TestFailed --> ConnectivityConfigured : Admin corrects config and retests TestPending --> TestPassed : Test transaction succeeds TestPassed --> ActiveForEligibility : RCM Manager activates for eligibility ActiveForEligibility --> Active : RCM Manager activates for claims Active --> Suspended : Payer contract terminated or compliance issue Suspended --> Active : Issue resolved Active --> Inactive : Payer relationship ended Inactive --> [*]

WF-POLICYCONTRACTMGMT-002: Contract Negotiation & Creation

Process Flow

Actor: Contract Manager, Finance Director
Trigger: New contract period, service expansion, or payer request
Pre-conditions:

  • Payer record exists and is active in payers
  • Facilities participating in the contract are defined in facilities (from ehr-patient-mgmt)
  • Strategic approval to negotiate with the payer
  1. Contract Manager opens Contract Management (SCR-PCM-003) and clicks “New Contract”.
  2. System prompts for payer, facilities, contract type (fee-for-service, per diem, case rate, capitation, % of tariff), and effective/expiry dates; user enters details.
  3. System checks for overlapping active contracts for the same payer/facility/contract type in contracts.
  4. If no conflicting contract, system creates a contract shell in contracts (INSERT) with status = Draft and version = 1.
  5. Contract Manager opens Contract Detail / Editor (SCR-PCM-004) and defines:
    - Rate methodology, payment terms (days to pay), dispute resolution clauses, covered services, exclusions.
  6. Fee Schedule Analyst imports or manually enters fee schedule:
    - Import DHA/DOH tariff or custom CSV → system maps CPT codes and creates contract_fee_schedules (INSERT) and fee_schedule_items (bulk INSERT).
  7. System validates fee schedule (duplicate CPT codes, missing rates, invalid modifiers) and flags issues for correction.
  8. Contract Manager configures service-specific modifiers and exceptions (e.g., weekend surcharge, ICU uplift) by updating fee_schedule_items and/or related exception tables (UPDATE/INSERT).
  9. Contract Manager sets approval chain (e.g., Legal, RCM Manager, Finance Director) in an approval workflow table and routes contract for review (status → In Review).
  10. Approvers review contract terms and fee schedules; they can request changes (status → Revision Requested) or approve. Each action is logged in contract_amendments or contract_approval_log (INSERT).
  11. After internal approvals, Contract Manager generates a contract PDF from the system and sends to payer for signature (via secure email/portal).
  12. Once payer signs (digitally or on paper), Contract Manager uploads signed document and records digital signature metadata or “wet signature received” in contracts (UPDATE: document_path, approved_by, approved_date, status = Pending Activation).
  13. Finance Director performs final review; if acceptable, they set status to Active and confirm activation date in contracts (UPDATE).
  14. System publishes associated fee schedules (contract_fee_schedules.statusActive) and notifies Billing & Claims module via INT-PCM-001 that new contracted rates are available.

Data Modified:

  • contracts — INSERT, multiple UPDATEs
  • contract_fee_schedules — INSERT, UPDATE
  • fee_schedule_items — INSERT, UPDATE
  • contract_amendments — INSERT (for negotiated changes before activation)
  • contract_approval_log (if defined) — INSERT

Mermaid Flowchart

flowchart TD A["Start: Need new/renewed contract"] --> B["Create contract shell"] B --> C["Check overlapping contracts"] C -->|"Conflict"| C1["Warn user & show existing contracts"] C1 --> C2{"Proceed anyway?"} C2 -->|"No"| Z["End"] C2 -->|"Yes"| D["INSERT Draft contract"] C -->|"No conflict"| D["INSERT Draft contract"] D --> E["Enter terms, payment, coverage, exclusions"] E --> F["Import/enter fee schedule"] F --> G{"Fee schedule valid?"} G -->|"No"| G1["Show errors, correct items"] --> F G -->|"Yes"| H["Configure modifiers & exceptions"] H --> I["Set approval chain & route for review"] I --> J{"All internal approvers approve?"} J -->|"No, revision requested"| J1["Record amendment, update contract"] --> E J -->|"Yes"| K["Generate PDF & send to payer"] K --> L{"Payer signs?"} L -->|"No"| L1["Negotiation continues, record amendments"] --> E L -->|"Yes"| M["Upload signed contract, update status Pending Activation"] M --> N["Finance Director final review"] N --> O{"Approve activation?"} O -->|"No"| O1["Return for revision, record amendment"] --> E O -->|"Yes"| P["Set contract Active, activate fee schedules"] P --> Q["Notify Billing & Claims"] Q --> Z["End"]

Decision Points

  1. Overlapping contract detection
    - If overlapping active contract exists → user must decide to proceed (e.g., for specific services) or cancel.
    - If proceed → system may require justification and flags potential conflicts.

  2. Fee schedule validation
    - If validation fails (duplicate CPT, missing rates, invalid dates) → user must correct before proceeding.
    - If passes → workflow continues to approval.

  3. Internal and payer approvals
    - If any approver rejects or requests revision → contract returns to Draft/In Review with recorded amendment.
    - If all approve and payer signs → contract can move to Pending Activation and then Active.

Integration Points

  • Billing & Claims module (billing-claims):
  • Direction: Outbound (INT-PCM-001)
  • Data: Active contracts (contracts), fee schedules (contract_fee_schedules, fee_schedule_items), payment terms.
  • Trigger: Contract status changes to Active.

  • Denial Analysis module (denial-analysis):

  • Direction: Outbound (INT-PCM-003)
  • Data: Contract terms and fee schedules for mapping denials to contract clauses.
  • Trigger: Contract activation or amendment.

Exception Handling

  • Overlapping contracts not allowed by policy:
  • System can enforce hard stop based on facility configuration; user must end-date old contract or adjust dates.

  • Fee schedule import errors:

  • Malformed CSV, missing required columns → system rejects file and shows detailed error report; no partial imports.

  • Approval workflow misconfiguration:

  • If approval chain missing required role (e.g., Finance Director) → system prevents routing until fixed.

  • Document upload failure:

  • If signed PDF upload fails (network/storage error) → system keeps contract in Pending Activation and logs error; user can retry.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Printed contract drafts circulated for review Online contract editor with tracked changes and approval workflow Shortens review cycles; full audit trail for DOH/DHA audits
Paper fee schedule spreadsheets in binders contract_fee_schedules and fee_schedule_items with versioning Enables automated charge capture and variance analysis
Physical signatures and couriered contracts Digital signature metadata and scanned PDFs linked to contracts Faster execution; easier retrieval during payer disputes
Manual email threads for approvals Structured approval workflow with status and timestamps Clear accountability and PDPL-compliant audit logging

Remaining Paper Touchpoints: Some payers may insist on wet signatures; originals may still be stored physically but are scanned and linked in the system.

Inputs and Outputs

Inputs:

Source Data Element Format
payers Active payer record DB record
facilities Participating facilities DB record (from ehr-patient-mgmt)
Contract Manager Contract type, terms, payment terms, covered services, exclusions SCR-PCM-003 / SCR-PCM-004 form
Fee Schedule Analyst Fee schedule data (DHA/DOH tariff import or custom CSV) CSV / tariff file import
Fee Schedule Analyst Service-specific modifiers and exceptions SCR-PCM-005 form
Approvers (Legal, RCM Manager, Finance Director) Approval or revision request decisions Approval workflow
Payer Signed contract document PDF upload / digital signature

Outputs:

Destination Data Element Format
contracts Contract record with terms, status, version SQL INSERT / UPDATE
contract_fee_schedules Fee schedule metadata (name, tariff base, effective dates) SQL INSERT / UPDATE
fee_schedule_items CPT-to-rate mappings with modifiers SQL bulk INSERT / UPDATE
contract_amendments Negotiation changes and approval log entries SQL INSERT
Billing & Claims (billing-claims) Active contract and fee schedule notification Internal API (INT-PCM-001)
Denial Analysis (denial-analysis) Contract terms for denial mapping Internal API (INT-PCM-003)

Post-conditions:

  • Contract exists with status "Active" and associated fee schedules published
  • All internal approvals recorded with timestamps and approver identities
  • Payer-signed document linked to contract record
  • Billing & Claims and Denial Analysis modules notified of new rates

SLA and Timing

Step Target Time Escalation Measurement Source
Contract shell creation (Draft) < 1 business day None — manager workflow contracts.created_at
Fee schedule import and validation < 2 business days Alert if import errors unresolved > 2 days contract_fee_schedules.created_at
Internal approval cycle < 5 business days per approver Reminder at 3 days; escalate to CFO at 5 days contract_approval_log.action_datetime
Payer signature turnaround < 15 business days Alert Contract Manager at 10 days; escalate at 15 days contracts.approved_date
Fee schedule publication to Billing < 1 hour from activation Alert IT if > 1 hour contract_fee_schedules.published_datetime

State Transition Diagram

stateDiagram-v2 [*] --> Draft : Contract Manager creates contract shell Draft --> InReview : Submitted for internal approval InReview --> RevisionRequested : Approver requests changes RevisionRequested --> Draft : Manager revises terms InReview --> InternallyApproved : All internal approvers approve InternallyApproved --> SentToPayer : PDF generated and sent to payer SentToPayer --> PayerNegotiating : Payer requests changes PayerNegotiating --> Draft : Manager revises and resubmits SentToPayer --> PendingActivation : Payer signs contract PendingActivation --> Active : Finance Director activates PendingActivation --> RevisionRequested : Finance Director returns for revision Active --> Amended : Amendment applied (WF-PCM-005) Active --> Expired : Contract reaches expiry date Active --> Terminated : Early termination Amended --> Active : Amendment activated Expired --> [*] Terminated --> [*]

WF-POLICYCONTRACTMGMT-003: Fee Schedule Management

Process Flow

Actor: Fee Schedule Analyst, RCM Manager
Trigger: Annual CPT update, DHA/DOH tariff revision, or contract renegotiation
Pre-conditions:

  • Contract exists in contracts (status Draft, In Review, or Active)
  • Latest DHA/DOH tariff files or CPT updates available
  1. Fee Schedule Analyst opens Fee Schedule Editor (SCR-PCM-005) for a selected contract.
  2. System displays existing contract_fee_schedules and fee_schedule_items for that contract, if any.
  3. Analyst chooses to import base fee schedule (DHA tariff, DOH tariff, or custom) or create manually.
  4. If importing, system parses the file, maps payer/service categories to CPT codes, and creates/updates contract_fee_schedules (INSERT/UPDATE) and fee_schedule_items (bulk INSERT).
  5. System runs validation checks:
    - CPT code exists in CPT master
    - No duplicate CPT+modifier for same fee schedule
    - Rates are non-negative and within configured bounds.
  6. Analyst applies rate adjustments according to contract methodology (e.g., 120% of DHA tariff, 90% of DOH tariff, or fixed rates) using bulk update tools; system updates fee_schedule_items (UPDATE).
  7. Analyst configures bundling/unbundling rules (e.g., CCI-like edits) in a rules table or within coverage_rules (INSERT/UPDATE).
  8. System generates an impact analysis report comparing old vs. new rates, showing expected revenue change per service category.
  9. Analyst reviews impact; if acceptable, submits fee schedule for approval (status in contract_fee_schedulesPending Approval).
  10. RCM Manager reviews fee schedule details and impact report; they can approve or reject. Decision is logged in an approval log table.
  11. If rejected, Analyst adjusts rates and resubmits; if approved, system sets contract_fee_schedules.statusActive and updates effective/expiry dates.
  12. System notifies Billing & Claims module of updated rates via INT-PCM-001 and stores previous fee schedule version as historical (status → Archived).

Data Modified:

  • contract_fee_schedules — INSERT, UPDATE
  • fee_schedule_items — INSERT, UPDATE
  • coverage_rules or bundling_rules (if separate) — INSERT, UPDATE
  • fee_schedule_approval_log (if defined) — INSERT

Mermaid Flowchart

flowchart TD A["Start: Tariff/CPT update or renegotiation"] --> B["Open Fee Schedule Editor"] B --> C["View existing fee schedules"] C --> D{"Import or manual?"} D -->|"Import"| E["Upload tariff/custom file"] E --> F{"Parse & map successful?"} F -->|"No"| F1["Show import errors, fix mapping"] --> E F -->|"Yes"| G["INSERT/UPDATE fee schedules & items"] D -->|"Manual"| H["Create fee schedule & add items"] G --> I H --> I["Run validation checks"] I --> J{"Validation OK?"} J -->|"No"| J1["Show errors, correct items"] --> H J -->|"Yes"| K["Apply rate methodology & adjustments"] K --> L["Configure bundling/unbundling rules"] L --> M["Generate impact analysis report"] M --> N{"Analyst satisfied?"} N -->|"No"| K N -->|"Yes"| O["Submit for approval"] O --> P["RCM Manager reviews"] P --> Q{"Approve?"} Q -->|"No"| Q1["Reject, send back with comments"] --> K Q -->|"Yes"| R["Activate fee schedule, set effective dates"] R --> S["Archive previous versions"] S --> T["Notify Billing & Claims"] T --> Z["End"]

Decision Points

  1. Import vs manual creation
    - If import fails due to mapping issues → user must correct mapping or choose manual entry.
    - If import succeeds → system pre-populates items for further adjustment.

  2. Validation of fee schedule items
    - If validation fails (invalid CPT, negative rate, duplicate entries) → user must fix before proceeding.
    - If passes → proceed to rate methodology and impact analysis.

  3. Approval decision
    - If RCM Manager rejects → Analyst must adjust and resubmit.
    - If approved → schedule becomes Active and previous versions are archived.

Integration Points

  • Billing & Claims module (billing-claims):
  • Direction: Outbound (INT-PCM-001)
  • Data: Updated fee schedules and rates.
  • Trigger: Fee schedule status changes to Active.

  • Denial Analysis module (denial-analysis):

  • Direction: Outbound (INT-PCM-003)
  • Data: Updated rates for underpayment and denial pattern analysis.
  • Trigger: Fee schedule activation.

Exception Handling

  • File import errors:
  • System provides row-level error report (e.g., unknown CPT, missing rate); partial imports can be rolled back to maintain consistency.

  • Rate calculation overflow or extreme values:

  • If calculated rate exceeds configured thresholds (e.g., > 500% of base tariff) → system flags as potential configuration error and requires explicit override.

  • Concurrent edits:

  • If two users edit the same fee schedule, system uses optimistic locking (version/timestamp); second user is prompted to reload.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Printed tariff books and binders Centralised digital tariff and fee schedule repository Faster lookup; ensures single source of truth
Excel spreadsheets emailed between finance and RCM In-system fee schedule editor with audit trail Eliminates version confusion and email errors
Manual revenue impact calculations Automated impact analysis reports Supports data-driven negotiation and planning
Paper sign-off sheets for fee changes Electronic approval workflow with timestamps Improves governance and compliance with internal policies

Remaining Paper Touchpoints: None — fully digital once tariff files are received in electronic format from DHA/DOH.

Inputs and Outputs

Inputs:

Source Data Element Format
contracts Active or draft contract record DB record
DHA/DOH Tariff files (DHA tariff, DOH tariff) CSV / structured file
Fee Schedule Analyst Custom rate adjustments, bundling rules, modifier exceptions SCR-PCM-005 form
CPT Master Valid CPT codes and descriptions Master data table
RCM Manager Approval or rejection of fee schedule Approval workflow

Outputs:

Destination Data Element Format
contract_fee_schedules Fee schedule metadata with status and effective dates SQL INSERT / UPDATE
fee_schedule_items CPT-to-rate mappings (bulk) SQL bulk INSERT / UPDATE
coverage_rules / bundling_rules Bundling and unbundling rules SQL INSERT / UPDATE
Billing & Claims (billing-claims) Updated fee schedule notification Internal API (INT-PCM-001)
Denial Analysis (denial-analysis) Updated rates for analysis Internal API (INT-PCM-003)
Previous fee schedule Archived version (status = "Archived") SQL UPDATE

Post-conditions:

  • Active fee schedule published with current effective dates
  • Previous version archived with historical rates preserved
  • Impact analysis report generated and stored
  • Billing & Claims notified with updated CPT-to-rate mappings

SLA and Timing

Step Target Time Escalation Measurement Source
Tariff file import and parsing < 30 minutes for standard DHA/DOH tariff Alert if import errors persist > 1 hour contract_fee_schedules.import_datetime
Fee schedule validation < 15 minutes (automated) Manual review if > 100 errors fee_schedule_items.validation_datetime
Rate methodology application < 1 business day None — analyst workflow fee_schedule_items.updated_at
Impact analysis report generation < 10 minutes Alert IT if > 30 min Report generation timestamp
RCM Manager approval < 3 business days Reminder at 2 days; escalate to Finance Director at 3 days fee_schedule_approval_log.action_datetime
Publication to Billing < 1 hour from approval Alert IT if > 1 hour contract_fee_schedules.published_datetime

State Transition Diagram

stateDiagram-v2 [*] --> Draft : Analyst creates or imports fee schedule Draft --> Validating : System runs validation checks Validating --> ValidationFailed : Errors found (duplicate CPT, invalid rates) ValidationFailed --> Draft : Analyst corrects errors Validating --> Validated : All checks passed Validated --> RateAdjusted : Analyst applies methodology and adjustments RateAdjusted --> ImpactAnalysed : System generates impact report ImpactAnalysed --> PendingApproval : Analyst submits for approval PendingApproval --> Rejected : RCM Manager rejects Rejected --> RateAdjusted : Analyst revises rates PendingApproval --> Active : RCM Manager approves Active --> Archived : New version activated or contract expired Archived --> [*]

WF-POLICYCONTRACTMGMT-004: Coverage Rule Configuration

Process Flow

Actor: Contract Analyst, Utilization Management Lead
Trigger: Contract specifies coverage rules; payer updates coverage policies
Pre-conditions:

  • Payer and relevant plans exist in payers and insurance_plans
  • Contract and fee schedules defined for the payer
  • Clinical coding standards (ICD-10-AM, CPT, SNOMED CT) available in master data
  1. Contract Analyst opens Coverage Rule Builder (SCR-PCM-006) and selects payer and plan.
  2. System loads existing coverage_rules and prior_auth_rules for that payer/plan.
  3. Analyst chooses rule type (e.g., medical necessity, frequency limit, age/gender restriction, benefit limit).
  4. Analyst defines criteria:
    - CPT codes or ranges, ICD-10-AM diagnosis codes, age range, gender, frequency limits (e.g., 1 MRI per 6 months), service category.
  5. System validates codes against master tables and checks for conflicting rules (e.g., overlapping CPT+ICD combinations with different outcomes).
  6. Analyst specifies whether prior authorization is required (requires_prior_auth flag) and links to prior_auth_rules where applicable.
  7. Utilization Management Lead configures prior auth details: auth method (portal/phone/fax/auto-approve), turnaround days, valid duration, documentation required in prior_auth_rules (INSERT/UPDATE).
  8. Analyst defines benefit limits (annual maximums, visit caps, lifetime maximums) and links them to plan coverage level in coverage_rules.
  9. System provides a test claim feature: user enters sample patient demographics, CPT, ICD-10-AM codes, and plan; system simulates coverage decision using the configured rules.
  10. If test results are not as expected, Analyst adjusts rules and re-tests until desired behavior is achieved.
  11. Once validated, Analyst sets rule status to Active and effective date in coverage_rules and prior_auth_rules (UPDATE).
  12. System publishes rules to Patient Access and CPOE modules via INT-PCM-002 and INT-PCM-006 for real-time eligibility and order-time decision support.

Data Modified:

  • coverage_rules — INSERT, UPDATE
  • prior_auth_rules — INSERT, UPDATE
  • coverage_rule_test_log (if defined) — INSERT

Mermaid Flowchart

flowchart TD A["Start: New/updated coverage policy"] --> B["Open Coverage Rule Builder"] B --> C["Select payer & plan"] C --> D["Choose rule type & define criteria"] D --> E["Validate codes & check conflicts"] E --> F{"Validation OK?"} F -->|"No"| F1["Show conflicts/errors, adjust criteria"] --> D F -->|"Yes"| G["Set requires_prior_auth flag"] G --> H["Configure prior auth details"] H --> I["Define benefit limits & link to plan"] I --> J["Run test claim simulation"] J --> K{"Test result as expected?"} K -->|"No"| K1["Adjust rules & re-test"] --> D K -->|"Yes"| L["Set rules Active with effective date"] L --> M["Publish rules to Patient Access & CPOE"] M --> Z["End"]

Decision Points

  1. Rule validation and conflict detection
    - If conflicting rules exist (e.g., one rule says auth required, another says not required for same CPT/ICD/plan) → system prompts user to resolve conflict (prioritisation or consolidation).

  2. Test claim outcome
    - If simulated claim result does not match payer policy → rules must be adjusted.
    - If correct → rules can be activated.

  3. Prior auth requirement
    - If requires_prior_auth = true → prior auth details must be configured; system enforces completeness.
    - If false → prior auth rules may be disabled for that service.

Integration Points

  • Patient Access module (patient-access):
  • Direction: Outbound (INT-PCM-002)
  • Data: Coverage rules and prior auth requirements for eligibility estimation and pre-registration.
  • Trigger: Rule activation or update.

  • CPOE module (cpoe):

  • Direction: Outbound (INT-PCM-006)
  • Data: Coverage and prior auth rules for order-time decision support (e.g., “MRI brain requires prior auth for this plan”).
  • Trigger: Rule activation or update.

  • Billing & Claims module (billing-claims):

  • Direction: Outbound (INT-PCM-001/003)
  • Data: Coverage rules for claim edits and pre-submission checks.
  • Trigger: Rule activation or update.

Exception Handling

  • Invalid or deprecated codes:
  • If CPT/ICD-10-AM codes are not found or are expired, system blocks rule creation and suggests valid alternatives.

  • Rule circularity or excessive complexity:

  • If rule combinations create loops or unresolvable logic, system warns and prevents activation until simplified.

  • PDPL considerations:

  • Test claim simulations use anonymised or synthetic patient data where possible; if real data is used, access is logged and restricted by role.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Payer coverage manuals and printed benefit booklets Configurable coverage_rules and prior_auth_rules with effective dates Ensures up-to-date rules across all front-end systems
Manual prior auth checklists Structured prior auth requirements with documentation fields Reduces missed documentation and denials
Ad-hoc phone calls to confirm coverage Real-time rule-based eligibility and order-time checks Improves patient financial transparency and reduces surprises
Paper notes on frequency limits and caps System-enforced frequency and benefit limits Prevents over-utilisation and non-covered services before they occur

Remaining Paper Touchpoints: Some payers may still issue paper policy circulars; these are scanned and used as reference but rules are implemented digitally.

Inputs and Outputs

Inputs:

Source Data Element Format
payers, insurance_plans Payer and plan identifiers DB records
contracts, contract_fee_schedules Contract and fee schedule context DB records
Contract Analyst Rule criteria (CPT codes/ranges, ICD-10-AM, age, gender, frequency limits) SCR-PCM-006 form
CPT Master, ICD-10-AM Master Valid clinical codes for rule definition Master data tables
Utilization Management Lead Prior auth configuration (method, turnaround, documentation required) SCR-PCM-006 form
Contract Analyst Test claim parameters for simulation SCR-PCM-006 test claim form

Outputs:

Destination Data Element Format
coverage_rules Active coverage rules with effective dates SQL INSERT / UPDATE
prior_auth_rules Prior auth requirements and configuration SQL INSERT / UPDATE
Patient Access (patient-access) Coverage and prior auth rules for eligibility Internal API (INT-PCM-002)
CPOE (cpoe) Coverage rules for order-time decision support Internal API (INT-PCM-006)
Billing & Claims (billing-claims) Coverage rules for claim edits Internal API (INT-PCM-001/003)

Post-conditions:

  • Coverage rules active with correct effective dates
  • Prior auth requirements linked to appropriate services and plans
  • Test claim simulation validated expected behavior
  • Patient Access, CPOE, and Billing modules have current rule sets

SLA and Timing

Step Target Time Escalation Measurement Source
Rule definition and code validation < 2 business days None — analyst workflow coverage_rules.created_at
Conflict detection and resolution < 1 business day Alert UM Lead if > 5 conflicts unresolved coverage_rules.validation_datetime
Prior auth configuration < 1 business day None — UM Lead workflow prior_auth_rules.configured_datetime
Test claim simulation < 5 minutes per scenario None — immediate feedback coverage_rule_test_log.test_datetime
Rule publication to downstream modules < 5 minutes from activation Retry with backoff; alert IT if > 15 min integration_message_log.sent_at

WF-POLICYCONTRACTMGMT-005: Contract Renewal / Amendment

Process Flow

Actor: Contract Manager, Finance Director
Trigger: Contract approaching expiration, rate adjustment needed, or scope change
Pre-conditions:

  • Active contract exists in contracts with upcoming expiry date
  • Payer performance data available from Billing & Claims and Denial Analysis
  1. System runs a daily job to identify contracts expiring in 90/60/30 days and populates Contract Renewal Alerts (SCR-PCM-008).
  2. Contract Manager reviews expiring contracts list with days to expiry and performance summary (volume, denial rate, reimbursement variance).
  3. For a selected contract, system retrieves aggregated metrics from reimbursement_rates and denial data (via Denial Analysis integration).
  4. Contract Manager generates a renewal proposal with recommended rate adjustments (e.g., +5% on imaging, +3% on inpatient per diem) using built-in tools.
  5. System simulates financial impact of proposed changes and displays summary.
  6. Contract Manager decides whether to proceed with amendment or full new contract version.
  7. If amendment:
    - System creates a new record in contract_amendments (INSERT) capturing amendment type, description, old_value, new_value, effective_date.
    - Contract terms and relevant fee_schedule_items are updated (UPDATE).
  8. If new version:
    - System creates a new contracts row with parent_contract_id referencing the previous contract, version incremented, status Draft.
    - Existing fee schedules are cloned to new contract_fee_schedules and fee_schedule_items (INSERT).
  9. Contract Manager routes amendment or new version through the same approval workflow as WF-PCM-002 (internal approvals, payer negotiation).
  10. Once approved internally and signed by payer, system updates contracts and/or contract_amendments with approved_by, approved_date, and status.
  11. System sets new effective date and ensures old contract is end-dated appropriately (status → Expired or Superseded).
  12. Updated fee schedules are activated (contract_fee_schedules.statusActive) and previous ones archived.
  13. System notifies Billing & Claims and Denial Analysis modules of new terms and effective dates.

Data Modified:

  • contracts — INSERT (new version), UPDATE (status, expiry)
  • contract_amendments — INSERT, UPDATE
  • contract_fee_schedules — INSERT (cloned), UPDATE
  • fee_schedule_items — INSERT (cloned), UPDATE
  • reimbursement_rates — may be recalculated downstream, not directly modified here

Mermaid Flowchart

flowchart TD A["Daily job: find expiring contracts"] --> B["Populate renewal alerts"] B --> C["Contract Manager reviews expiring contract"] C --> D["Load performance metrics & reimbursement rates"] D --> E["Generate renewal proposal & simulate impact"] E --> F{"Proceed with change?"} F -->|"No"| Z["End - monitor only"] F -->|"Yes"| G{"Amendment or new version?"} G -->|"Amendment"| H["Create contract_amendments record"] H --> I["Update contract terms & fee schedule items"] G -->|"New version"| J["Create new contract with parent_contract_id"] J --> K["Clone fee schedules & items to new contract"] I --> L K --> L["Route through approval workflow"] L --> M{"Approved & signed?"} M -->|"No"| M1["Revise proposal, update amendment/contract"] --> E M -->|"Yes"| N["Set effective dates & statuses"] N --> O["Activate new fee schedules, archive old"] O --> P["Notify Billing & Denial Analysis"] P --> Z["End"]

Decision Points

  1. Proceed with change vs monitor
    - If performance is acceptable and payer relationship strategic → may choose to renew as-is (no amendment).
    - If underpayment or high denial rate → proceed with amendment or new version.

  2. Amendment vs new version
    - Minor changes (e.g., small rate adjustments) → amendment.
    - Major structural changes (contract type, facilities, methodology) → new contract version.

  3. Approval outcome
    - If not approved internally or payer rejects → proposal must be revised or contract may lapse; system can escalate alerts.

Integration Points

  • Billing & Claims module (billing-claims):
  • Direction: Bidirectional (INT-PCM-001/003)
  • Data Inbound: Claims data for performance metrics.
  • Data Outbound: Updated contract terms and fee schedules.
  • Trigger: Renewal analysis and post-approval activation.

  • Denial Analysis module (denial-analysis):

  • Direction: Bidirectional (INT-PCM-003)
  • Data Inbound: Denial patterns and root causes.
  • Data Outbound: Updated contract/amendment details for future analysis.
  • Trigger: Renewal analysis and contract changes.

Exception Handling

  • Missed renewal (contract expires):
  • If contract reaches expiry without renewal → system sets status to Expired and flags all related encounters/claims as out-of-contract; alerts Billing & Patient Access.

  • Incorrect effective dates:

  • If new effective date overlaps with previous contract version → system warns and requires explicit override or adjustment.

  • Amendment without approval:

  • System prevents activation of amendment changes until all required approvals are recorded.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Manual spreadsheets tracking contract expiry dates Automated renewal alerts with days-to-expiry Reduces risk of unintentional lapses in coverage
Paper-based renewal proposals and memos In-system proposals with simulated impact and stored rationale Supports transparent, data-driven negotiations
Printed contract addenda and physical filing contract_amendments records with linked documents Easier retrieval during disputes and audits
Ad-hoc email chains for approvals Structured approval workflow with status and timestamps Strengthens internal controls and PDPL-compliant audit trails

Remaining Paper Touchpoints: Some payers may still sign paper addenda; originals may be stored physically but scanned into the system.

Inputs and Outputs

Inputs:

Source Data Element Format
System (daily job) Contracts expiring within 90/60/30 days Automated scan of contracts.expiry_date
Billing & Claims Claims volume, denial rate, reimbursement variance by payer Internal API / shared DB (INT-PCM-001)
Denial Analysis Denial patterns and root causes per payer/contract Internal API (INT-PCM-003)
reimbursement_rates Expected vs actual rates, variance data DB records
Contract Manager Renewal proposal with recommended rate adjustments SCR-PCM-008 proposal tool
Approvers Approval or rejection decisions Approval workflow
Payer Signed amendment or new contract PDF upload / digital signature

Outputs:

Destination Data Element Format
contracts New version or updated contract record SQL INSERT / UPDATE
contract_amendments Amendment records with old/new values SQL INSERT
contract_fee_schedules Cloned or updated fee schedules SQL INSERT / UPDATE
fee_schedule_items Cloned or updated rate items SQL INSERT / UPDATE
Billing & Claims Updated terms and effective dates Internal API (INT-PCM-001)
Denial Analysis Updated contract details for future analysis Internal API (INT-PCM-003)

Post-conditions:

  • Renewed or amended contract active with new effective dates
  • Previous contract end-dated appropriately (Expired or Superseded)
  • Updated fee schedules activated and previous versions archived
  • All downstream modules notified of new terms

SLA and Timing

Step Target Time Escalation Measurement Source
90-day renewal alert generation Daily at 02:00 UAE time None — automated contracts.expiry_date minus current date
Performance data aggregation for renewal analysis < 1 business day Alert if data unavailable reimbursement_rates.period_end
Renewal proposal creation < 5 business days from alert Reminder at 3 days; escalate to Finance Director at 5 days Proposal creation timestamp
Internal approval cycle < 5 business days per approver Reminder at 3 days; escalate to CFO at 5 days contract_approval_log.action_datetime
Payer negotiation and signature < 30 business days Alert at 15 days; escalate at 30 days (risk of lapse) contracts.approved_date
Fee schedule activation after approval < 1 hour Alert IT if > 1 hour contract_fee_schedules.published_datetime

WF-POLICYCONTRACTMGMT-006: Payer Performance Monitoring

Process Flow

Actor: RCM Manager, Finance Director
Trigger: Monthly/quarterly review cycle or ad-hoc performance review request
Pre-conditions:

  • Claims and payment data available in Billing & Claims module
  • Contracts and fee schedules configured in this module
  • Denial data available from Denial Analysis module
  1. On a scheduled basis (e.g., monthly), system aggregates claims data by payer from Billing & Claims into reimbursement_rates (INSERT/UPDATE).
  2. For each payer/contract/CPT, system calculates:
    - Expected rate (from fee_schedule_items)
    - Actual average rate (from paid claims)
    - Variance percentage, claim count, period_start, period_end.
  3. RCM Manager opens Payer Performance Dashboard (SCR-PCM-007).
  4. System displays payer scorecards: denial rate, average days to payment, reimbursement variance, volume trends, top denial reasons (via Denial Analysis integration).
  5. User filters by period, payer, payer class (e.g., THIQA, private), and facility.
  6. System highlights underperforming payers/contracts based on thresholds (e.g., variance < 98%, denial rate > 15%, average days to pay > contract terms).
  7. RCM Manager drills down into a specific payer to view service-level performance (by CPT/service category) using reimbursement_rates.
  8. System allows export of detailed data for further analysis (subject to PDPL and role-based access).
  9. Finance Director reviews high-level dashboards and identifies payers requiring renegotiation or operational interventions.
  10. For payers flagged as underperforming, RCM Manager can initiate a Contract Renewal / Amendment workflow (WF-PCM-005) directly from the dashboard.
  11. System logs all dashboard views and exports for audit purposes.

Data Modified:

  • reimbursement_rates — INSERT, UPDATE
  • payer_performance_audit_log (if defined) — INSERT

Mermaid Flowchart

flowchart TD A["Scheduled job: aggregate claims data"] --> B["Calculate expected vs actual rates"] B --> C["Update reimbursement_rates"] C --> D["RCM Manager opens Payer Performance Dashboard"] D --> E["Display payer scorecards & KPIs"] E --> F["User filters by period/payer/facility"] F --> G["Highlight underperforming payers/contracts"] G --> H["Drill down to service-level performance"] H --> I{"Need renegotiation or action?"} I -->|"No"| Z["End - monitor"] I -->|"Yes"| J["Launch Contract Renewal/Amendment workflow"] J --> K["Record action in audit log"] K --> Z["End"]

Decision Points

  1. Threshold-based underperformance
    - If payer metrics fall outside configured thresholds → flagged as underperforming.
    - If within thresholds → monitored only.

  2. Need for renegotiation
    - If variance is minor and operational issues (e.g., coding) are root cause → focus on internal process improvement.
    - If systemic underpayment or long days to pay → initiate contract renegotiation.

  3. Data export
    - If user requests export → system checks role and PDPL permissions; may anonymise or restrict data for non-RCM roles.

Integration Points

  • Billing & Claims module (billing-claims):
  • Direction: Inbound (INT-PCM-001)
  • Data: Claims, payments, and remittance information used to compute reimbursement_rates.
  • Trigger: Scheduled aggregation job.

  • Denial Analysis module (denial-analysis):

  • Direction: Inbound (INT-PCM-003)
  • Data: Denial codes, reasons, and patterns per payer.
  • Trigger: Dashboard load and drill-down.

Exception Handling

  • Missing or delayed claims data:
  • If Billing & Claims data not available for the period → system marks metrics as incomplete and displays warning.

  • Contract or fee schedule changes mid-period:

  • System uses effective dates to align expected rates with claim dates; if misalignment detected, it flags potential configuration issues.

  • Performance calculation errors:

  • If division by zero or inconsistent data → system logs error and excludes affected records from KPIs, showing partial data warning.

Paperless Transformation

Previously Paper-Based Now Digital In-System Notes
Manual Excel-based payer performance reports Automated reimbursement_rates and dashboards Reduces manual effort and errors; supports timely decisions
Printed monthly reports circulated to leadership Interactive dashboards with drill-down and export Enables on-demand analysis and scenario planning
Ad-hoc notes on underperforming payers Structured flags and links to renewal workflows Ensures follow-up and traceability of actions
Paper files of remittance advices Digital integration with Billing & Claims data Facilitates accurate variance analysis and dispute preparation

Remaining Paper Touchpoints: None — performance monitoring is fully digital; any printed reports are optional and generated from the system.

Inputs and Outputs

Inputs:

Source Data Element Format
Billing & Claims Claims data, payment outcomes, remittance information Internal API / shared DB (INT-PCM-001)
Denial Analysis Denial codes, reasons, patterns per payer Internal API (INT-PCM-003)
contracts, contract_fee_schedules Expected rates and contract terms DB records
fee_schedule_items CPT-to-rate mappings for variance calculation DB records
RCM Manager / Finance Director Filter criteria (period, payer, facility, payer class) SCR-PCM-007 dashboard filters

Outputs:

Destination Data Element Format
reimbursement_rates Aggregated expected vs actual rates, variance, claim counts SQL INSERT / UPDATE
SCR-PCM-007 Dashboard Payer scorecards, variance charts, denial summaries Interactive dashboard
payer_performance_audit_log Dashboard access and export events SQL INSERT
WF-PCM-005 Triggered renewal/amendment workflow for underperforming payers Workflow initiation

Post-conditions:

  • reimbursement_rates current as of last aggregation job
  • Underperforming payers flagged based on configured thresholds
  • Dashboard reflects accurate payer scorecards for the selected period
  • All data exports and dashboard views logged for audit

SLA and Timing

Step Target Time Escalation Measurement Source
Nightly claims aggregation job Complete by 04:00 UAE time Auto-retry once at 04:15; alert Finance/RCM if still failing by 05:00 reimbursement_rates.aggregation_datetime
Dashboard load time < 5 seconds for summary view Alert IT if > 10s average Application performance monitoring
Drill-down to service-level detail < 3 seconds Alert IT if > 8s Application performance monitoring
Data export generation < 2 minutes for standard report Alert if > 5 min Export generation timestamp
Underperformance flag refresh Within 1 hour of aggregation completion None — automated reimbursement_rates.flagged_at
content/rcm/policy-contract-mgmt/01-workflows.md Generated 2026-02-20 22:54