本文へ移動
cccskills
無料GitHub で公開

insurance-coverage-summary

Retrieves and analyzes FHIR Coverage and Organization resources to produce a structured insurance summary with coordination of benefits analysis. Use when user asks to "check insurance", "coverage details", "verify coverage", "insurance summary", "what plan is the patient on", "primary vs secondary insurance", or "coverage status". Do NOT use for clinical data, demographics beyond insurance, or billing claim submission.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md12.2 KB
  • references/coverage-resource-mapping.md11.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Insurance Coverage Summary

Overview

Pull Coverage and Organization resources to produce a consolidated insurance summary. Identify primary and secondary coverage, extract plan details, policy and group numbers, coverage periods, and payor organizations. Flag expired coverage, missing authorization data, coverage gaps, and coordination of benefits issues. Output a structured summary suitable for front-desk verification, prior authorization workflows, or care coordination.

FHIR Resources Used

ResourcePurposeSearch Parameters
CoverageInsurance plan detailspatient, status
OrganizationPayor/insurer detailsDirect read by reference
PatientSubscriber info, managing orgDirect read by ID
RelatedPersonSubscriber if not selfDirect read by reference

Instructions

Step 1: Pull All Coverage Resources

Tool: fhir_search
resourceType: "Coverage"
queryParams: "patient=[patient-id]"

Retrieve all Coverage resources regardless of status to capture full history. For each entry extract:

  • status: active, cancelled, draft, entered-in-error
  • type: Coverage type from type.coding (system http://terminology.hl7.org/CodeSystem/v3-ActCode)
  • policyHolder: Reference to the policyholder (may be Patient, RelatedPerson, or Organization)
  • subscriber: Reference to the subscriber
  • subscriberId: Subscriber ID / Member ID
  • beneficiary: Reference to the patient
  • dependent: Dependent number
  • relationship: Subscriber-to-beneficiary relationship (self, spouse, child, other)
  • period: Coverage effective period (start and end dates)
  • payor: Reference to the insurance Organization
  • class[]: Coverage classification array, each with:
    • type.coding.code: "group", "subgroup", "plan", "subplan", "class", "subclass", "sequence", "rxbin", "rxpcn", "rxid", "rxgroup"
    • value: The identifier value
    • name: Human-readable name
  • order: Coverage order (1 = primary, 2 = secondary, 3 = tertiary)
  • network: Network name or identifier
  • costToBeneficiary[]: Copay and coinsurance information
    • type.coding.code: "copay", "coinsurance", "deductible"
    • valueMoney or valueQuantity

Step 2: Resolve Payor Organizations

For each Coverage resource, resolve the payor reference:

Tool: fhir_read
resourceType: "Organization"
id: "[payor-reference-id]"

Extract from the Organization:

  • name: Insurance company name
  • telecom: Phone number, website
  • address: Mailing address
  • identifier: NPI, Tax ID, payer ID
  • type: Insurance company type classification

Step 3: Determine Coverage Hierarchy

Establish primary vs secondary coverage:

  1. Use Coverage.order field if populated (1 = primary, 2 = secondary)
  2. If order is absent, apply coordination of benefits rules:
    • Self-employed / Individual: The patient's own employer plan is primary
    • Spouse coverage: Apply Birthday Rule for dependent children (plan of parent whose birthday falls earlier in calendar year is primary)
    • Medicare: Medicare is primary when patient is 65+ with no employer group health plan (EGHP) for 20+ employees. Medicare is secondary when patient has EGHP coverage.
    • Medicaid: Almost always secondary (payer of last resort)
    • Workers' Compensation: Primary for work-related injuries/illnesses
    • Auto Insurance / Liability: Primary for accident-related claims

Step 4: Validate Coverage Status

For each Coverage resource, check:

Active Coverage Validation:

  • status = "active"
  • period.start <= today
  • period.end is null OR period.end >= today
  • subscriberId is populated
  • payor reference resolves to a valid Organization

Flag: Expired Coverage

  • period.end < today but status still = "active"
  • Flag: "Coverage [plan name] has end date [date] in the past but status is still active. Verify with payor."

Flag: Missing Subscriber ID

  • subscriberId is null or empty
  • Flag: "Coverage [plan name] is missing subscriber/member ID. Required for claims submission."

Flag: Missing Group Number

  • No class entry with type = "group"
  • Flag: "Coverage [plan name] is missing group number."

Flag: No Primary Coverage

  • Zero Coverage resources with order = 1 or no active coverage at all
  • Flag: "No primary insurance coverage identified. Verify coverage status with patient."

Flag: Dual Coverage Without Coordination

  • Multiple active coverages but order field not set on any
  • Flag: "Multiple active coverages found but primary/secondary order not specified. Coordination of benefits determination required."

Step 5: Extract Benefit Details (If Available)

Check for cost-to-beneficiary information:

  • Copay amounts per visit type
  • Coinsurance percentages
  • Deductible amounts (individual and family)
  • Out-of-pocket maximum

Note: Most FHIR servers do not populate costToBeneficiary in Coverage resources. If absent, note: "Benefit details not available in FHIR record. Verify with payor or eligibility check system."

Step 6: Check for Related Authorization References

Tool: fhir_search
resourceType: "Claim"
queryParams: "patient=[patient-id]&status=active&_count=5&_sort=-created"

If Claim resources are available, check for:

  • insurance[].coverage: References to Coverage resources
  • insurance[].preAuthRef: Prior authorization numbers
  • insurance[].focal: Which coverage is primary for this claim

If no Claim resources, skip this step.

Step 7: Format Output

INSURANCE COVERAGE SUMMARY
============================
Patient: [name] ([patient-id])
Reviewed: [timestamp]
Total Coverage Records: [count] ([active count] active)

PRIMARY COVERAGE
================
Plan: [plan name from class]
Insurer: [Organization name]
Insurer Phone: [telecom]
Member ID: [subscriberId]
Group: [group class value] / [group class name]
Subscriber: [subscriber relationship] - [subscriber name if not self]
Network: [network]
Effective: [period.start] - [period.end or "Ongoing"]
Status: Active

Benefit Details (if available):
  Copay: $[amount] per [visit type]
  Coinsurance: [percentage]%
  Deductible: $[amount] (Individual) / $[amount] (Family)
  Out-of-Pocket Max: $[amount]

SECONDARY COVERAGE
==================
Plan: [plan name]
Insurer: [Organization name]
Member ID: [subscriberId]
Group: [group class value]
Effective: [period.start] - [period.end or "Ongoing"]
Status: Active

EXPIRED / INACTIVE COVERAGE
============================
1. [Plan name] - Expired: [period.end] - Status: [status]
   (Retained for historical reference)

FLAGS
=====
[!] [Any flagged issues from Step 4]

COORDINATION OF BENEFITS
=========================
Primary: [plan name] (Order: 1)
Secondary: [plan name] (Order: 2)
Determination method: [Coverage.order field / Birthday Rule / Medicare rules]

Examples

Example 1: Dual Coverage With Clear Hierarchy

User says: "What insurance does patient 22334 have?"

Actions:

  1. fhir_search Coverage?patient=22334 -- returns 2 active Coverage resources
  2. fhir_read Organization/[payor-id-1] -- Blue Cross Blue Shield
  3. fhir_read Organization/[payor-id-2] -- Medicare

Result:

INSURANCE COVERAGE SUMMARY
============================
Patient: Margaret Thompson (22334)
Reviewed: 2026-02-07T09:00:00Z
Total Coverage Records: 2 (2 active)

PRIMARY COVERAGE
================
Plan: Blue Cross Blue Shield PPO
Insurer: Blue Cross Blue Shield of Texas
Insurer Phone: (800) 521-2227
Member ID: XYZ123456789
Group: GRP-88901 / Acme Corporation Employee Plan
Subscriber: Self
Network: PPO National
Effective: 2025-01-01 - 2025-12-31
Status: Active

SECONDARY COVERAGE
==================
Plan: Medicare Part B
Insurer: Centers for Medicare & Medicaid Services
Member ID: 1EG4-TE5-MK72
Group: N/A
Subscriber: Self
Effective: 2023-08-01 - Ongoing
Status: Active

COORDINATION OF BENEFITS
=========================
Primary: Blue Cross Blue Shield PPO (Order: 1)
  Reason: Patient has active employer group health plan (EGHP).
  Medicare is secondary when EGHP coverage exists.
Secondary: Medicare Part B (Order: 2)

Example 2: Coverage Issues Detected

User says: "Check insurance for patient 55667"

Actions:

  1. fhir_search Coverage?patient=55667 -- returns 3 Coverage resources (1 active, 1 expired still marked active, 1 cancelled)
  2. fhir_read Organization/[payor-id] -- Aetna

Result:

INSURANCE COVERAGE SUMMARY
============================
Patient: Kevin Nguyen (55667)
Reviewed: 2026-02-07T09:15:00Z
Total Coverage Records: 3 (1 truly active)

PRIMARY COVERAGE
================
Plan: Aetna HMO
Insurer: Aetna Inc.
Insurer Phone: (800) 872-3862
Member ID: W123456789
Group: 0012345 / State University Health Plan
Subscriber: Self
Network: HMO Open Access
Effective: 2025-09-01 - 2026-08-31
Status: Active

EXPIRED / INACTIVE COVERAGE
============================
1. United Healthcare PPO - Status shows "active" but period ended 2025-08-31
   -> DATA QUALITY ISSUE: Status not updated to reflect termination
2. Medicaid - Status: Cancelled - Ended: 2025-08-31

FLAGS
=====
[!] EXPIRED COVERAGE NOT UPDATED: United Healthcare PPO (Coverage/cov-002) has
    period.end = 2025-08-31 but status remains "active". Update to "cancelled".
[!] SINGLE COVERAGE ONLY: No secondary insurance identified.
[!] MISSING BENEFIT DETAILS: No copay, coinsurance, or deductible data in
    FHIR record. Contact Aetna for benefit verification.

RECOMMENDATION
==============
Update Coverage/cov-002 status to reflect expiration:
  Tool: fhir_update
  resourceType: "Coverage"
  id: "cov-002"
  resource: { "status": "cancelled", ... }

Example 3: No Coverage Found

User says: "Does patient 99888 have insurance?"

Actions:

  1. fhir_search Coverage?patient=99888 -- returns 0 entries

Result:

INSURANCE COVERAGE SUMMARY
============================
Patient: Carlos Mendez (99888)
Reviewed: 2026-02-07T09:30:00Z
Total Coverage Records: 0

FLAGS
=====
[!] NO INSURANCE COVERAGE ON FILE
    No Coverage resources found for this patient. This may indicate:
    - Self-pay / uninsured patient
    - Coverage data not yet entered
    - Coverage stored in a different system not connected to this FHIR server

RECOMMENDATION
==============
1. Verify insurance status with patient
2. Check if coverage is documented in the practice management system
3. Screen for Medicaid/marketplace eligibility if uninsured
4. Document self-pay status if confirmed uninsured

Troubleshooting

Coverage Resources Lack Class Details (No Plan Name, No Group Number)

  • Some EHR systems store minimal coverage data. The class array may be empty.
  • Check type field for coverage type (HMO, PPO, Medicare, Medicaid).
  • Resolve the payor Organization reference -- the organization name may be the only plan identifier available.
  • For EPIC systems, coverage details may be in extensions rather than standard class elements.

Multiple Coverage Resources With Same Payor

  • This can happen when coverage is renewed annually and each period creates a new Coverage resource.
  • Deduplicate by checking period overlap. The most recent non-expired Coverage is the current one.
  • If periods overlap with the same payor and plan, take the one with the later period.start.

Coverage.order Not Populated

  • Many FHIR servers do not populate the order field.
  • Apply coordination of benefits rules from Step 3 to determine primary vs secondary.
  • If determination is ambiguous, flag for manual review: "Unable to determine primary vs secondary coverage programmatically. Manual coordination of benefits determination required."

Related Skills

  • patient-demographics-summary -- for complete demographics including insurance at a high level
  • clinical-summary-generator -- for full clinical summary (does not include insurance details)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Complete architecture reference for the A3 insurance platform — file locations, data flow, conventions, microservice map, and fullstack patterns

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Drafts U.S. commercial real estate access and indemnity (right-of-entry) agreements for pre-closing due diligence. Covers license grants, non-invasive vs invasive testing gates, insurance/endorsement requirements, indemnity with discovery carve-outs, restoration and lien remedies, confidentiality, and anti-indemnity guardrails. Trigger: access agreement, right of entry, due diligence access, Phase I/II, invasive testing, pre-PSA site inspection.

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

当用户需要对意外险投保问卷进行专业、结构化的核保审查,提取职业类别、工作环境、作业内容、危险活动参与情况、交通出行习惯、特殊工作暴露及其他可能影响意外险承保判断的高风险信息,并生成适合意外险核保、补问流转和风险分层处理的结构化分析结果时使用本 skill。

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Inspect, schema, and fill true AcroForm PDFs using sciClaw's pdf_form_inspect, pdf_form_schema, and pdf_form_fill tools. Use when: (1) checking whether a PDF is a real fillable AcroForm, (2) listing form field names, types, and choices, (3) filling a supported form from structured values, (4) preparing reviewable insurance, legal, administrative, or clinical form drafts, (5) reporting skipped fields or unused input keys after a fill. Do not use for scanned PDFs, OCR tasks, or XFA-only forms.

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Guide actuarial analysis for insurance pricing. TRIGGERS - Use when user needs help with actuarial-analysis related tasks.

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

Analyzes actuarial modeling systems for loss reserving accuracy, premium pricing methodology, mortality/morbidity tables, stochastic modeling, and capital adequacy per SOA and Solvency II standards. USE THIS SKILL WHEN: - You need to review or audit actuarial models (reserving, pricing, capital) - Someone asks about loss triangle analysis or reserve adequacy - You are evaluating IBNR calculations, chain ladder methods, or Bornhuetter-Ferguson - A project involves insurance pricing, GLM rating models, or ratemaking - You need to assess Solvency II SCR calculations or RBC compliance - Someone mentions actuarial opinions, ASOP compliance, or SOA standards - You are reviewing stochastic models, ESG configurations, or DFA frameworks - A codebase uses actuarial libraries (chainladder, lifetables, ChainLadder R package) TRIGGER PHRASES: "actuarial", "loss reserving", "IBNR", "chain ladder", "premium pricing", "mortality table", "Solvency II", "capital adequacy", "ratemaking", "GLM pricing", "risk-based capital", "reserve analysis", "actuarial opinion"

日本語の概要は準備中です。原文の説明を表示しています。

FDU-INS/Insurance-Skills762026年7月12日 更新

FDU-INS のスキルをすべて見る

このスキルの問題を報告する