Unified worklist for denial follow-up, payer calls, co-sign requests, RxRenewal routing, referral auth, PA decisions, and document collection — with SLA tracking, macro automation, and time logging.
Data Classification: All entities are org-scoped (partitioned by OrganizationID). See Data Model for ownership rules and IC Reference for isolation constraints.
WorkTask
Org-scoped. Trust Tier: T1 (may reference PHI via source entity).
Required for any AMI schema break (per IC hard rule #5)
Skills-based routing RBAC: Only users at level ≥ 55 (senior biller) or ≥ 70 (practice manager) can configure skills-based routing rules. Skill tags are assigned by the practice manager and stored as user attributes. The routing engine matches task TaskTypeString and SourceModuleString against assignee skill tags.
FK Relationship Diagram
erDiagram
Patient ||--o{ WorkTask : "subject"
User ||--o{ WorkTask : "AssignedToUserID"
User ||--o{ WorkTask : "CreatedByUserID"
WorkTask ||--o{ TaskStatusHistory : "tracks"
User ||--o{ TaskStatusHistory : "ChangedByUserID"
WorkTask ||--o{ TaskTimeLog : "logged against"
User ||--o{ TaskTimeLog : "UserID"
SLA Auto-Escalation Flow
flowchart TD
A[Task created with SlaDeadlineDateTime] --> B{SLA engine checks every 5 min}
B -- Deadline not reached --> B
B -- Deadline approaching: 1hr warning --> C[Notify assigned user]
C --> B
B -- Deadline breached --> D{Task still open?}
D -- No --> E[No action]
D -- Yes --> F[Escalate to Practice Manager]
F --> G[Priority upgraded to Urgent]
G --> H[Re-assign if unacknowledged after 30 min]
H --> I[Create escalation entry in TaskStatusHistory]
Functional Requirements
P0 The system SHALL create work tasks automatically when triggering events occur (denial received, co-sign needed, RxRenewal request, referral auth pending, PA decision needed).
P0 The system SHALL track task status through the full lifecycle (Draft through Completed/Cancelled/EnteredInError) with immutable history.
P0 The system SHALL enforce SLA deadlines and auto-escalate to Practice Manager when deadlines are breached.
P0 The system SHALL support task assignment to specific users and reassignment by authorized roles.
P0 The system SHALL map WorkTask to FHIR R4 Task resource for interoperability.
P1 The system SHALL provide a unified worklist with filtering by TaskType, Priority, Status, AssignedToUserID, and SLA proximity.
P1 The system SHALL support task macros that automate multi-step workflows (appeal letters, follow-up sequences, payer call scripts).
P1 The system SHALL track time spent per task via TaskTimeLog for productivity reporting.
P1 The system SHALL display AI-suggested actions when available and allow clinicians/billers to accept or dismiss suggestions.
P1 The system SHALL link tasks to their source entity (Claim, Prescription, Referral) for one-click navigation.
P1 The system SHALL support co-sign request tasks that block the source entity until a supervising clinician signs.
P2 The system SHALL provide task volume and turnaround-time dashboards for practice managers.
P2 The system SHALL support bulk task assignment and status updates for worklist efficiency.
P2 The system SHALL allow Practice Managers to override SLA deadlines with documented justification.
P2 The system SHALL support DocumentCollection task type with checklist of required documents and completion tracking.
P2 The system SHALL allow patients to view their task status (e.g. "referral auth in progress") via the patient portal.
Non-Functional Requirements
Latency: Worklist query returns within 500ms for up to 10,000 active tasks per organization.
SLA Engine: Escalation checks run every 5 minutes; notification delivery within 30 seconds of breach detection.
Availability: Task creation service 99.95% uptime; queued retry for transient failures.
Audit: Every status transition logged in TaskStatusHistory; immutable; retained 7 years.
Scalability: Support 50,000 active tasks per organization without degradation.
Macro Execution: Macro action sequences execute within 5 seconds; failures roll back to previous state.
FHIR Compliance: WorkTask exportable as FHIR R4 Task resource; status codes mapped per FHIR value set.
Time Logging: TaskTimeLog entries are append-only; edits create new entries with correction flag.
icApplication Overrides
How the four Task Management AMI schemas turn into a live application: module-specific stack additions, override component bindings, FHIR R4 Task resource production, Twilio voice/SMS & SES email integration, a versioning worked example, environment cascade, and RBAC enforcement.
Shared generation map. The IC platform code-gen flow, default bindings, environment cascade, RBAC model, and CLI commands are identical across all modules. See the IC Reference for the canonical shared reference. This section covers only Task Management-specific content.
Technology stack P0
The shared platform stack (Cosmos DB, Redis, IC-generated API, Angular 21, SQS+SNS, OpenTelemetry, etc.) is documented in the IC Reference. Module-specific additions:
Layer
Technology
Notes
FHIR resource profiles
FHIR R4 Task
WorkTask projected as FHIR Task resource per FHIR R4 spec. Supports CMS-0057-F Provider Access API consumer.
CMS-0057-F consumer
FHIR Provider Access API client
Consumes payer Task/Claim/PriorAuth resources for PA status checks, claim adjudication details, and denial reason codes.
Voice / SMS logging
Twilio Voice + Twilio SMS
Outbound payer call logging with caller ID, duration, outcome. Inbound/outbound SMS with TCPA consent tracking. Webhooks for call/SMS event ingestion.
Email logging
AWS SES + S3
Outbound payer email logging with send timestamp, recipient, subject, body. Inbound email via SES receive rule → S3 → SQS processing.
AI next-best-action
Bedrock Claude (internal inference)
Suggestion engine trained on denial reason codes, payer appeal outcomes, and task type patterns. Pre-computed for top tasks; cached in Redis.
Skills-based routing
Internal routing engine
Matches task type + source module + payer against user skill tags. Routing rules configured per org via rules/*.rules.json.
SLA monitor
EventBridge scheduled rule + Lambda
Runs every 15 minutes; queries active tasks exceeding SLA deadline; triggers auto-escalation flow.
Task Management–specific override bindings P0
These overrides are declared in rules/*.rules.json and replace the default for the matching field name pattern.
Field
Default would render
Override component
Why
WorkTask.StatusString50
plain text input
ic-ng21-task-1-status-dropdown
Coded status dropdown with color-coded badges; validates allowed transitions (e.g., cannot go from Completed back to InProgress without EnteredInError first).
WorkTask.PriorityString50
plain text input
ic-ng21-core-1-combobox with FHIR priority ValueSet
Maps to FHIR Task.priority coded values (urgent / high / routine / low).
WorkTask.AssignedToUserID
entity picker
ic-ng21-task-1-assignment-picker
Skills-aware user picker; shows skill tags, active task count, and current workload; supports drag-to-assign from the queue.
WorkTask.SlaDeadlineDateTimeUTC
datetime picker
ic-ng21-task-1-sla-badge
SLA deadline display with countdown timer, overdue badge, and escalation indicator. Readonly for auto-computed SLAs; editable for manual overrides at level ≥ 70.
WorkTask.AiSuggestedActionString200
plain text display
ic-ng21-task-1-ai-suggestion-panel
AI next-best-action panel with accept/modify/dismiss buttons; shows confidence level and reasoning snippet. Only rendered for tasks in active status.
WorkTask.TaskTypeString50
plain text input
ic-ng21-core-1-combobox with task type ValueSet
Coded task type dropdown; drives routing rules, SLA defaults, and macro availability.
(synthetic) work queue surface
n/a
ic-ng21-task-1-work-queue
Unified queue with configurable views, sort, filter, and inline action buttons. The primary work surface for billers, MAs, and clinicians.
(synthetic) task detail view
n/a
ic-ng21-task-1-task-detail
Full task detail: description, status history, time log, payer interactions, AI suggestions, and macro execution. Side panel from the queue.
(synthetic) payer call button
n/a
ic-ng21-task-1-payer-call-button
Initiates a Twilio voice call to the payer from the task; auto-logs call metadata and prompts for post-call outcome. TCPA consent verified before dial.
(synthetic) payer SMS panel
n/a
ic-ng21-task-1-payer-sms-panel
SMS composition panel with template snippets; logs send/receive via Twilio. TCPA opt-in verified before send.
(synthetic) payer email panel
n/a
ic-ng21-task-1-payer-email-panel
Email composition panel with appeal letter attachment; logs send/receive via SES. Includes PDF generation for appeal letters.
(synthetic) macro runner
n/a
ic-ng21-task-1-macro-runner
Macro selection and execution; shows macro steps, progress, and results. Supports undo of the last macro step.
(synthetic) appeal letter writer
n/a
ic-ng21-task-1-appeal-letter-writer
Rich-text editor populated by appeal letter macros; auto-inserts patient data, diagnosis codes, clinical rationale, and payer coverage criteria.
(synthetic) time logger
n/a
ic-ng21-task-1-time-logger
Time entry form with action type dropdown, duration input (manual or auto-captured from call/email), and historical entries display.
(synthetic) analytics dashboard
n/a
ic-ng21-task-1-analytics-dashboard
Practice manager dashboard: queue depth, SLA compliance, aging, AI acceptance rate, biller productivity. Refreshes every 30 seconds.
(synthetic) audit trail viewer
n/a
ic-ng21-task-1-audit-trail-viewer
Full audit trail per task: status transitions, assignments, escalations, AI suggestions, payer interactions, time entries. Searchable and filterable.
FHIR R4 Task resource production P0
The system projects every WorkTask as a FHIR R4 Task resource for interoperability with payer systems. The FHIR Task endpoint is read-only and supports the standard FHIR search parameters:
FHIR search parameter
Mapped from
Usage
status
StatusString50
Filter tasks by status (e.g., ?status=in-progress)
priority
PriorityString50
Filter by priority (e.g., ?priority=urgent)
patient
PatientID
Filter by patient (e.g., ?patient=Patient/abc123)
owner
AssignedToUserID
Filter by assignee (e.g., ?owner=Practitioner/xyz789)
period
SlaDeadlineDateTimeUTC
Filter by SLA deadline range (e.g., ?period=2026-01-01..2026-01-31)
code
TaskTypeString50
Filter by task type (e.g., ?code=http://rev.health/task-type|DenialFollowUp)
The FHIR Task endpoint is secured via SMART on FHIR scopes. The CMS-0057-F Provider Access API consumer reads payer-side Task resources (PA status, claim adjudication) and writes the results back to WorkTask. The Task profile is registered in the rev.health FHIR CapabilityStatement.
Twilio voice/SMS & SES email integration P1
Payer follow-up logging uses three communication channels, each with a dedicated adapter and webhook handler:
CAN-SPAM compliance; unsubscribe link in every outbound email
Every logged interaction creates a TaskTimeLog entry with the duration auto-captured from Twilio call duration or manually entered for email/SMS. The interaction metadata is stored as a JSON-structured ActionString200 value (e.g., Payer call — 12 min — spoke with John D., appeal #12345 approved pending medical records).
Versioning — worked example P0
All Task Management artifacts are versioned break.feature.bug.buildtimestamp per IC hard rule #9. The example below traces a feature bump on WorkTask.
WorkTask 1.0.0.20260301T120000Z — Initial schema. 12 business fields plus four org-scoped audit columns. Component ic-ng21-task-1-work-queue and ic-ng21-task-1-task-detail bind to work-task@1.0.0.* via the DI manifest.
WorkTask 1.1.0.20260515T093000Z — feature bump — Adds a single optional field, EscalationLevelInt, to track how many times a task has been auto-escalated. Per the IC change matrix:
Change
Version impact
Approval needed
Min permission
Add optional field EscalationLevelInt
feature bump (1.0.0 → 1.1.0)
No
Write (40)
Because the change is backward-compatible, the component tag stays ic-ng21-task-1-work-queue. Existing UI consumers continue to bind work-task@1.x.* and ignore the new field. New UI surfaces that need escalation-level display bind work-task@^1.1.0. No new database is required (IC rule #13 only applies to break bumps).
WorkTask 2.0.0.20280101T120000Z — break bump (illustrative) — An illustrative future break bump: StatusString50 is split into separate coded fields (StatusCodeString50, StatusReasonString100, StatusDetailText) to support FHIR Task.statusReason. Per the IC change matrix this is change field type + add required fields — break bump, EditAMI (90) approval, and per IC rule #13 a new database is provisioned with ETL from the old one. The component tag becomes ic-ng21-task-2-work-queue; consumers must re-bind. The old database stays live for the configured grace period (default 90 days) for rollback.
Illustrative. The 2.0.0 example is illustrative of the change matrix and IC rule #13; it is not a committed roadmap item.
Skills-based routing. Skill tags are stored as user attributes (not in the WorkTask schema). The routing engine reads skill tags from the user profile and matches against task routing rules. Skill tag management requires level ≥ 70 (practice manager only).
FHIR API. The FHIR Task endpoint enforces SMART on FHIR scopes. Read access requires Task.read scope; the endpoint filters results by the caller’s org via partition key. No write access through the FHIR Task endpoint (writes go through the generated API).
Payer follow-up logging. Twilio voice/SMS and SES email adapters enforce consent checks before any outbound communication. Voice calls to payer business lines require task-context verification. SMS requires TCPA opt-in. Email requires CAN-SPAM unsubscribe link.
Cross-Module Dependencies
RCM — denials from 835 posting automatically create WorkTask rows; appeal submission and resolution update the claim record in RCM. Task Management is the primary consumer of RCM denial events.
eRx / EPCS — RxRenewal, RxChange, and ePA decision requests from the Surescripts connector create tasks assigned to the prescriber. EPCS co-sign requests create tasks routed to the supervising physician.
Referrals — referral authorization requests and specialist response follow-ups create tasks assigned to the referring provider or the referral coordinator.
Eligibility — prior-authorization tasks for medical-benefit PA (X12 278 / Da Vinci PAS) are created when the eligibility check detects a PA requirement. PA status updates from CMS-0057-F flow back to Eligibility.
Patient Portal — patient-facing tasks (appointment reminders, document upload requests, balance inquiries) surface in the portal and sync status with the internal task queue.
Coding / CDS — clinical documentation referenced in appeal letter templates is sourced from the clinical record maintained in Coding / CDS and Clinical Documentation.
Data Model — WorkTask, TaskStatusHistory, TaskMacro, and TaskTimeLog are org-scoped per the operational-is-org-scoped pattern. Patient and User referenced via FK are global.