Insurance coverage verification, real-time eligibility checks (X12 270/271 and FHIR), benefit parsing, and prior-authorization workflow (X12 278 / DaVinci PAS).
Data Classification: All 5 entities are org-scoped. Partition key: OrganizationID. Coverage and EligibilityCheck carry a PatientID global FK.
Trust tiers: InsurancePlan = T1, Coverage = T1/T2, EligibilityCheck = T2, BenefitDetail = T2, PriorAuth = T2.
See Data Model for ownership conventions.
InsurancePlan P0 — Trust Tier T1
A payer + plan combination representing a specific insurance product. Tracks X12/FHIR capability flags and CMS-0057-F impact status.
Links a patient to an insurance plan with subscriber details. Supports primary/secondary/tertiary ranking.
Schema
Field
Type
Required
PK
FK
Notes
CoverageID
UUID
Yes
Yes
PatientID
UUID
Yes
Patient (global FK)
InsurancePlanID
UUID
Yes
InsurancePlan
SubscriberID
String(50)
Yes
Member/subscriber number
SubscriberFirstName
String(100)
Yes
SubscriberLastName
String(100)
Yes
SubscriberDateOfBirth
DateTimeUTC
Yes
RelationshipToSubscriber
String(50)
Yes
self | spouse | child | other
GroupNumber
String(50)
No
Rank
Int
Yes
1 = primary, 2 = secondary, 3 = tertiary
EffectiveDate
DateTimeUTC
Yes
TerminationDate
DateTimeUTC
No
Null = open-ended
IsActive
Bool
Yes
OrganizationID
UUID
Yes
Organization
Partition key
CreatedByUserID
UUID
Yes
User
Audit
CreatedDateTimeUTC
DateTimeUTC
Yes
Audit
UpdatedByUserID
UUID
Yes
User
Audit
UpdatedDateTimeUTC
DateTimeUTC
Yes
Audit
IsDeleted
Bool
Yes
Soft-delete
RBAC
Role (Tier)
Access
Patient (10)
Read own coverage
FrontDesk (30)
Read & write
MA / RN (40)
Read
Biller (51)
Read & write
Clinician (60)
Read
PracticeMgr (70)
Read & write
EditAMI (90+)
Schema management
EligibilityCheck P0 — Trust Tier T2
A point-in-time eligibility verification against a payer. Supports X12 270/271 and FHIR CoverageEligibilityRequest/Response.
Raw request/response payloads are encrypted at rest.
Schema
Field
Type
Required
PK
FK
Notes
EligibilityCheckID
UUID
Yes
Yes
PatientID
UUID
Yes
Patient (global FK)
CoverageID
UUID
Yes
Coverage
TransactionType
String(50)
Yes
X12_270_271 | FHIR_COVERAGE_ELIGIBILITY
Trigger
String(50)
Yes
Booking | T-24h | CheckIn | Manual
RequestSent
DateTimeUTC
Yes
ResponseReceived
DateTimeUTC
No
Null while pending
ResponseLatencyMilliseconds
Int
No
Computed on response receipt
Status
String(50)
Yes
Active | Inactive | Pending | Error | Unknown
Clearinghouse
String(50)
Yes
Stedi | Availity | Waystar
TransactionTraceNumber
String(50)
No
X12 TRN segment
ErrorCode
String(50)
No
ErrorDescription
String(200)
No
RawRequest
Text (encrypted)
Yes
AES-256 at rest
RawResponse
Text (encrypted)
No
AES-256 at rest
OrganizationID
UUID
Yes
Organization
Partition key
CreatedByUserID
UUID
Yes
User
Audit
CreatedDateTimeUTC
DateTimeUTC
Yes
Audit
UpdatedByUserID
UUID
Yes
User
Audit
UpdatedDateTimeUTC
DateTimeUTC
Yes
Audit
IsDeleted
Bool
Yes
Soft-delete
RBAC
Role (Tier)
Access
Patient (10)
Read own status only (no raw payloads)
FrontDesk (30)
Trigger check & read parsed results
MA / RN (40)
Read
Biller (51)
Read parsed results
Clinician (60)
Read
PracticeMgr (70)
Read raw payloads
EditAMI (90+)
Schema management
BenefitDetail P0 — Trust Tier T2
Parsed benefit information from an eligibility response. Includes copay, coinsurance, deductible, and out-of-pocket amounts per service category.
Schema
Field
Type
Required
PK
FK
Notes
BenefitDetailID
UUID
Yes
Yes
EligibilityCheckID
UUID
Yes
EligibilityCheck
ServiceCategory
String(50)
Yes
X12 EB04 service type code
CoverageLevel
String(50)
Yes
Individual | Family
InNetwork
Bool
Yes
CopayAmount
Money
No
CopayCurrencyCode
String(3)
No
ISO 4217
CoinsurancePercent
Decimal
No
0.00 - 1.00
DeductibleAmount
Money
No
DeductibleCurrencyCode
String(3)
No
ISO 4217
DeductibleRemainingAmount
Money
No
DeductibleRemainingCurrencyCode
String(3)
No
ISO 4217
OutOfPocketMaxAmount
Money
No
OutOfPocketMaxCurrencyCode
String(3)
No
ISO 4217
OutOfPocketRemainingAmount
Money
No
OutOfPocketRemainingCurrencyCode
String(3)
No
ISO 4217
RequiresReferral
Bool
No
RequiresPriorAuth
Bool
No
BenefitNotes
String(500)
No
OrganizationID
UUID
Yes
Organization
Partition key
CreatedByUserID
UUID
Yes
User
Audit
CreatedDateTimeUTC
DateTimeUTC
Yes
Audit
UpdatedByUserID
UUID
Yes
User
Audit
UpdatedDateTimeUTC
DateTimeUTC
Yes
Audit
IsDeleted
Bool
Yes
Soft-delete
RBAC
Role (Tier)
Access
Patient (10)
Read own benefit summary
FrontDesk (30)
Read
MA / RN (40)
Read
Biller (51)
Read
Clinician (60)
Read
PracticeMgr (70)
Read
EditAMI (90+)
Schema management
PriorAuth P0 — Trust Tier T2
Prior-authorization request lifecycle. Supports X12 278, FHIR DaVinci PAS, fax, and portal submission methods.
Compliant with CMS-0057-F expedited (72h) and standard (7d) decision deadlines.
Schema
Field
Type
Required
PK
FK
Notes
PriorAuthID
UUID
Yes
Yes
PatientID
UUID
Yes
Patient (global FK)
CoverageID
UUID
Yes
Coverage
OrderingProviderID
UUID
Yes
Provider
EncounterID
UUID
No
Encounter
From Clinical Doc module
ServiceCode
String(50)
Yes
CPT or HCPCS code
DiagnosisCode
String(50)
Yes
ICD-10-CM
SubmissionMethod
String(50)
Yes
X12_278 | FHIR_DAVINCI_PAS | Fax | Portal
SubmissionPriority
String(50)
Yes
Standard | Expedited (per CMS-0057-F)
Submitted
DateTimeUTC
Yes
DecisionDeadline
DateTimeUTC
Yes
72h for expedited, 7d for standard
Decision
DateTimeUTC
No
DecisionStatus
String(50)
Yes
Pending | Approved | Denied | Pended | Cancelled
AuthNumber
String(50)
No
Assigned on approval
ApprovedUnits
Int
No
ApprovedFrom
DateTimeUTC
No
ApprovedTo
DateTimeUTC
No
DenialReason
String(200)
No
RawRequest
Text (encrypted)
Yes
AES-256 at rest
RawResponse
Text (encrypted)
No
AES-256 at rest
OrganizationID
UUID
Yes
Organization
Partition key
CreatedByUserID
UUID
Yes
User
Audit
CreatedDateTimeUTC
DateTimeUTC
Yes
Audit
UpdatedByUserID
UUID
Yes
User
Audit
UpdatedDateTimeUTC
DateTimeUTC
Yes
Audit
IsDeleted
Bool
Yes
Soft-delete
RBAC
Role (Tier)
Access
Patient (10)
Read own PA status
FrontDesk (30)
Read & trigger PA
MA / RN (40)
Read all & submit PA
Biller (51)
Submit, cancel, queue PA
Clinician (60)
Read all & submit/attach clinical justification
PracticeMgr (70)
Override & approve PA
EditAMI (90+)
Schema management
Trust tier roll-up
Entity
Tier
Source of truth
InsurancePlan
1 — Internal canonical
Practice-curated catalog seeded from clearinghouse payer directories
Coverage
1/2 — Mixed
Subscriber identifiers human-entered (1); active flag and effective dates set from latest 271 (2)
EligibilityCheck
2 — External inbound
Response payload originates with the payer; trace number is authoritative
BenefitDetail
2 — External inbound
Parsed verbatim from 271 EB segments
PriorAuth
2 — External inbound
Decision and auth number assigned by payer
RBAC matrix (IC 0–100 scale)
Role
Level
InsurancePlan
Coverage
EligibilityCheck
BenefitDetail
PriorAuth
Patient (self)
10
Read own coverage’s plan
Read own
Read parsed status of own
Read own
Read own
Front desk (Jordan)
30
Read
Read / Write
Read parsed status; trigger
Read
Read; trigger ePA
MA / RN (Tasha)
40
Read
Read
Read
Read
Read; submit
Biller (Priya)
51
Read / Write
Read / Write
Read parsed; raw payload ≥ 70
Read
Submit, cancel, work-queue
Clinician (Dr. M / Maria)
60
Read
Read
Read
Read
Submit, attach clinical justification
Practice manager (Sam)
70
Read / Write
Read / Write
Read raw payload
Read
Override / decision approve
EditAMI
90
Required for any AMI schema break (per IC hard rule #5)
Trust-tier writes follow the standard rule: a Tier 2 write (e.g., 271-derived BenefitDetail) does not require human approval; the system service account writes them under a stable system UserID.
P0 The system shall maintain InsurancePlan records with payer ID, plan type, line of business, and X12/FHIR capability flags.
P0 The system shall store Coverage records linking patients to insurance plans with subscriber details and primary/secondary/tertiary ranking.
P0 The system shall perform real-time eligibility checks via X12 270/271 or FHIR CoverageEligibilityRequest at configurable triggers (Booking, T-24h, CheckIn, Manual).
P0 The system shall parse X12 271 responses into structured BenefitDetail records with copay, coinsurance, deductible, and OOP amounts per service category.
P0 The system shall encrypt raw X12/FHIR request and response payloads at rest (AES-256).
P0 The system shall submit prior-authorization requests via X12 278, FHIR DaVinci PAS, fax, or payer portal.
P0 The system shall enforce CMS-0057-F decision deadlines: 72 hours for expedited, 7 calendar days for standard requests.
P0 The system shall track PA decision status (Pending, Approved, Denied, Pended, Cancelled) with auth numbers and approved units/dates.
P0 The system shall surface eligibility status on the Scheduling module's Appointment entity (Active, Inactive, Pending, Unknown).
P1 The system shall support batch eligibility checks for next-day appointments via a nightly job.
P1 The system shall detect and flag coverage gaps (TerminationDate in the past, no active coverage) at check-in.
P1 The system shall route PA denials to a task queue for appeal workflow with clinical justification attachment.
P1 The system shall track clearinghouse routing (Stedi, Availity, Waystar) and response latency per transaction.
P2 The system shall provide a dashboard showing eligibility check success rates, average latency, and PA turnaround times by payer.
Non-Functional Requirements
Latency: Real-time eligibility check round-trip must complete within 10 seconds (clearinghouse + parsing).
Throughput: Support 200 concurrent eligibility checks per organization during morning check-in surge.
Encryption: Raw X12/FHIR payloads encrypted at rest (AES-256) and in transit (TLS 1.2+).
Retry: Failed eligibility checks automatically retried 3 times with exponential backoff before marking Error.
Audit Trail: Every eligibility check and PA state change logged with actor, timestamp, and prior value.
Retention: Eligibility check records and PA records retained for 7 years per HIPAA guidance.
Availability: Eligibility endpoints 99.9% uptime; graceful degradation to "Unknown" status when clearinghouse is unreachable.
icApplication Overrides
How the five Eligibility AMI schemas turn into a live application: module-specific stack additions, override component bindings, 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 Eligibility-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
Eligibility transport (medical)
X12 270/271 v5010
Stedi primary, Availity Essentials Pro secondary.
Prior-auth transport (legacy)
X12 278 v5010
Used for non-CMS-0057-F payers.
Prior-auth transport (modern)
FHIR R4 + Da Vinci PAS
Mandated for CMS-0057-F-impacted payers from Jan 1, 2027.
All Eligibility artifacts are versioned break.feature.bug.buildtimestamp per IC hard rule #9. The example below traces a feature bump on InsurancePlan.
InsurancePlan 1.0.0.20260301T120000Z — Initial schema. Eight business fields plus three audit fields. Component ic-ng21-eligibility-1-app and ic-ng21-eligibility-1-coverage-card bind to insuranceplan@1.0.0.* via the DI manifest.
InsurancePlan 1.1.0.20260415T093000Z — feature bump — Adds a single optional field, FormularySupportedBool, to flag plans whose payer surfaces formulary data via the eRx-side RTPB. Per the IC change matrix:
Change
Version impact
Approval needed
Min permission
Add optional field FormularySupportedBool
feature bump (1.0.0 → 1.1.0)
No
Write (51)
Because the change is backward-compatible, the component tag stays ic-ng21-eligibility-1-coverage-card. Existing UI consumers continue to bind insuranceplan@1.x.* and ignore the new field. New UI surfaces that need the flag bind insuranceplan@^1.1.0. No new database is required (IC rule #13 only applies to break bumps).
InsurancePlan 2.0.0.20271101T120000Z — break bump (illustrative) — An illustrative future break bump: PlanTypeString50 is split into a strongly-typed PlanTypeEnum field. Per the IC change matrix this is change field type — 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-eligibility-2-coverage-card; 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.
Eligibility environment details
Env
Clearinghouse
Da Vinci PAS endpoint
Dev
Stedi sandbox
HL7 reference PAS sandbox
QA
Stedi sandbox + Availity sandbox
HL7 reference PAS sandbox + payer sandboxes
UAT
Stedi prod (test trading partners)
Live payer PAS endpoints (test members)
Prod
Stedi prod + Availity prod
Live payer PAS endpoints
Eligibility RBAC notes
Raw-response access. Read raw RawRequestText / RawResponseText requires ≥ 70; this is enforced even for the patient’s own data because raw payloads can leak unrelated coverage details.
PA decisions. The PriorAuth.DecisionStatusString50 column is writable only by the system service account (transcribing payer responses) or by users at level ≥ 70 (manager / clinician override). Level 51 (biller) can submit and cancel but cannot record a decision.
Self-pay override. The eligibility-gate self-pay override (FR-EL-008) requires level ≥ 30 plus a SelfPayAcknowledgedBool patient acknowledgement; both are recorded in audit.
Cross-Module Links
Scheduling — Eligibility check triggered at booking/T-24h/check-in; status surfaced on Appointment.
Revenue Cycle Management — Coverage and BenefitDetail feed claim generation; PA AuthNumber attached to claims.
Patient Portal — Patients view coverage summary, benefit details, and PA status.
Task Management — PA denials and pending items generate tasks for billing/clinical staff.
Coding & CDS — Diagnosis and procedure codes feed PA service/diagnosis code fields.
Cross-Module Dependencies
Scheduling — emits the appointment-confirmed event consumed by FR-EL-001; consumes the eligibility-status-changed event for FR-EL-008 visit-type gating.
RCM — reads Coverage and BenefitDetail for claim routing and remit reconciliation; supplies contract rates back to the cost-estimator (FR-EL-007).
Patient Portal — surfaces patient cost estimates and PA status to the patient; respects read-access audit per Terms of Care.
eRx / EPCS — medical-side PA flow handed off here when the prescribing flow detects a medical-benefit (vs. pharmacy-benefit) requirement (e.g., infused biologics).
Task Management — PA decisions create FHIR Task rows in clinician / biller queues; SLA breach alerts route here too.
Coding / CDS — supplies CPT/HCPCS catalog and CDS Hooks rules that flag PA requirements alongside the parsed BenefitDetail signal.