FHIR Resources as Model Classes - Python classes for all FHIR resources with validation and serialization
—
Healthcare financial transactions including claims, coverage, payments, and billing for insurance and payment processing. These resources support the business aspects of healthcare including insurance coverage, billing, and financial transactions.
Insurance claims for healthcare services including medical, dental, pharmacy, and vision claims.
class Claim(DomainResource):
"""Healthcare insurance claim"""
def __init__(
self,
# Core claim data
identifier: Optional[List["Identifier"]] = None,
status: str, # active | cancelled | draft | entered-in-error
type: "CodeableConcept",
subType: Optional["CodeableConcept"] = None,
use: str, # claim | preauthorization | predetermination
patient: "Reference",
billablePeriod: Optional["Period"] = None,
created: str, # DateTime
enterer: Optional["Reference"] = None,
insurer: "Reference",
provider: "Reference",
priority: "CodeableConcept",
# Claim details
fundsReserve: Optional["CodeableConcept"] = None,
related: Optional[List["ClaimRelated"]] = None,
prescription: Optional["Reference"] = None,
originalPrescription: Optional["Reference"] = None,
payee: Optional["ClaimPayee"] = None,
referral: Optional["Reference"] = None,
encounter: Optional[List["Reference"]] = None,
facility: Optional["Reference"] = None,
# Care team and diagnosis
careTeam: Optional[List["ClaimCareTeam"]] = None,
supportingInfo: Optional[List["ClaimSupportingInfo"]] = None,
diagnosis: Optional[List["ClaimDiagnosis"]] = None,
procedure: Optional[List["ClaimProcedure"]] = None,
# Insurance and financial
insurance: List["ClaimInsurance"],
accident: Optional["ClaimAccident"] = None,
patientPaid: Optional["Money"] = None,
item: Optional[List["ClaimItem"]] = None,
total: Optional["Money"] = None,
**kwargs
): ...
class ClaimResponse(DomainResource):
"""Response to healthcare insurance claim"""
def __init__(
self,
# Core response data
identifier: Optional[List["Identifier"]] = None,
status: str, # active | cancelled | draft | entered-in-error
type: "CodeableConcept",
subType: Optional["CodeableConcept"] = None,
use: str, # claim | preauthorization | predetermination
patient: "Reference",
created: str, # DateTime
insurer: "Reference",
requestor: Optional["Reference"] = None,
request: Optional["Reference"] = None,
outcome: str, # queued | complete | error | partial
disposition: Optional[str] = None,
preAuthRef: Optional[str] = None,
preAuthPeriod: Optional["Period"] = None,
# Financial details
event: Optional[List["ClaimResponseEvent"]] = None,
payeeType: Optional["CodeableConcept"] = None,
encounter: Optional[List["Reference"]] = None,
diagnosisRelatedGroup: Optional["CodeableConcept"] = None,
item: Optional[List["ClaimResponseItem"]] = None,
addItem: Optional[List["ClaimResponseAddItem"]] = None,
total: Optional[List["ClaimResponseTotal"]] = None,
payment: Optional["ClaimResponsePayment"] = None,
# Processing notes and errors
fundsReserve: Optional["CodeableConcept"] = None,
formCode: Optional["CodeableConcept"] = None,
form: Optional["Attachment"] = None,
processNote: Optional[List["ClaimResponseProcessNote"]] = None,
communicationRequest: Optional[List["Reference"]] = None,
insurance: Optional[List["ClaimResponseInsurance"]] = None,
error: Optional[List["ClaimResponseError"]] = None,
**kwargs
): ...Usage Example:
from fhir.resources.claim import Claim
from fhir.resources.claiminsurance import ClaimInsurance
from fhir.resources.claimitem import ClaimItem
from fhir.resources.money import Money
from fhir.resources.codeableconcept import CodeableConcept
# Medical claim for office visit
claim = Claim(
status="active",
type=CodeableConcept(
coding=[Coding(
system="http://terminology.hl7.org/CodeSystem/claim-type",
code="institutional",
display="Institutional"
)]
),
use="claim",
patient=Reference(
reference="Patient/patient-001"
),
created="2024-01-15T10:00:00Z",
insurer=Reference(
reference="Organization/insurance-company-abc"
),
provider=Reference(
reference="Organization/general-hospital"
),
priority=CodeableConcept(
coding=[Coding(
system="http://terminology.hl7.org/CodeSystem/processpriority",
code="normal",
display="Normal"
)]
),
insurance=[
ClaimInsurance(
sequence=1,
focal=True,
coverage=Reference(
reference="Coverage/coverage-001"
)
)
],
item=[
ClaimItem(
sequence=1,
careTeamSequence=[1],
productOrService=CodeableConcept(
coding=[Coding(
system="http://www.ama-assn.org/go/cpt",
code="99213",
display="Office visit, established patient"
)]
),
servicedDate="2024-01-15",
unitPrice=Money(
value=150.00,
currency="USD"
),
net=Money(
value=150.00,
currency="USD"
)
)
],
total=Money(
value=150.00,
currency="USD"
)
)Insurance coverage information including subscriber details, benefits, and coverage periods.
class Coverage(DomainResource):
"""Insurance coverage information"""
def __init__(
self,
# Core coverage data
identifier: Optional[List["Identifier"]] = None,
status: str, # active | cancelled | draft | entered-in-error
kind: str, # insurance | self-pay | other
paymentBy: Optional[List["CoveragePaymentBy"]] = None,
type: Optional["CodeableConcept"] = None,
policyHolder: Optional["Reference"] = None,
subscriber: Optional["Reference"] = None,
subscriberId: Optional[List["Identifier"]] = None,
beneficiary: "Reference",
dependent: Optional[str] = None,
relationship: Optional["CodeableConcept"] = None,
# Coverage period and network
period: Optional["Period"] = None,
insurer: Optional["Reference"] = None,
class_: Optional[List["CoverageClass"]] = None,
order: Optional[int] = None,
network: Optional[str] = None,
# Cost sharing
costToBeneficiary: Optional[List["CoverageCostToBeneficiary"]] = None,
subrogation: Optional[bool] = None,
contract: Optional[List["Reference"]] = None,
**kwargs
): ...
class CoverageEligibilityRequest(DomainResource):
"""Request for coverage eligibility and benefits"""
def __init__(
self,
# Core request data
identifier: Optional[List["Identifier"]] = None,
status: str, # active | cancelled | draft | entered-in-error
priority: Optional["CodeableConcept"] = None,
purpose: List[str], # auth-requirements | benefits | discovery | validation
patient: "Reference",
event: Optional[List["CoverageEligibilityRequestEvent"]] = None,
servicedDate: Optional[str] = None, # Date
servicedPeriod: Optional["Period"] = None,
created: str, # DateTime
enterer: Optional["Reference"] = None,
provider: Optional["Reference"] = None,
insurer: "Reference",
facility: Optional["Reference"] = None,
# Supporting information
supportingInfo: Optional[List["CoverageEligibilityRequestSupportingInfo"]] = None,
insurance: Optional[List["CoverageEligibilityRequestInsurance"]] = None,
item: Optional[List["CoverageEligibilityRequestItem"]] = None,
**kwargs
): ...
class CoverageEligibilityResponse(DomainResource):
"""Response to coverage eligibility request"""
def __init__(
self,
# Core response data
identifier: Optional[List["Identifier"]] = None,
status: str, # active | cancelled | draft | entered-in-error
purpose: List[str], # auth-requirements | benefits | discovery | validation
patient: "Reference",
event: Optional[List["CoverageEligibilityResponseEvent"]] = None,
servicedDate: Optional[str] = None, # Date
servicedPeriod: Optional["Period"] = None,
created: str, # DateTime
requestor: Optional["Reference"] = None,
request: "Reference",
outcome: str, # queued | complete | error | partial
disposition: Optional[str] = None,
insurer: "Reference",
# Coverage and benefits information
insurance: Optional[List["CoverageEligibilityResponseInsurance"]] = None,
preAuthRef: Optional[str] = None,
form: Optional["CodeableConcept"] = None,
error: Optional[List["CoverageEligibilityResponseError"]] = None,
**kwargs
): ...Payment notices, reconciliation, and explanation of benefits for financial transactions.
class ExplanationOfBenefit(DomainResource):
"""Explanation of benefit for healthcare services"""
def __init__(
self,
# Core EOB data
identifier: Optional[List["Identifier"]] = None,
status: str, # active | cancelled | draft | entered-in-error
type: "CodeableConcept",
subType: Optional["CodeableConcept"] = None,
use: str, # claim | preauthorization | predetermination
patient: "Reference",
billablePeriod: Optional["Period"] = None,
created: str, # DateTime
enterer: Optional["Reference"] = None,
insurer: "Reference",
provider: "Reference",
# Claim reference and outcome
priority: Optional["CodeableConcept"] = None,
fundsReserveRequested: Optional["CodeableConcept"] = None,
fundsReserve: Optional["CodeableConcept"] = None,
related: Optional[List["ExplanationOfBenefitRelated"]] = None,
prescription: Optional["Reference"] = None,
originalPrescription: Optional["Reference"] = None,
event: Optional[List["ExplanationOfBenefitEvent"]] = None,
payee: Optional["ExplanationOfBenefitPayee"] = None,
referral: Optional["Reference"] = None,
encounter: Optional[List["Reference"]] = None,
facility: Optional["Reference"] = None,
claim: Optional["Reference"] = None,
claimResponse: Optional["Reference"] = None,
outcome: str, # queued | complete | error | partial
disposition: Optional[str] = None,
# Care team and diagnosis
careTeam: Optional[List["ExplanationOfBenefitCareTeam"]] = None,
supportingInfo: Optional[List["ExplanationOfBenefitSupportingInfo"]] = None,
diagnosis: Optional[List["ExplanationOfBenefitDiagnosis"]] = None,
procedure: Optional[List["ExplanationOfBenefitProcedure"]] = None,
# Financial details
precedence: Optional[int] = None,
insurance: List["ExplanationOfBenefitInsurance"],
accident: Optional["ExplanationOfBenefitAccident"] = None,
patientPaid: Optional["Money"] = None,
item: Optional[List["ExplanationOfBenefitItem"]] = None,
addItem: Optional[List["ExplanationOfBenefitAddItem"]] = None,
total: Optional[List["ExplanationOfBenefitTotal"]] = None,
payment: Optional["ExplanationOfBenefitPayment"] = None,
formCode: Optional["CodeableConcept"] = None,
form: Optional["Attachment"] = None,
processNote: Optional[List["ExplanationOfBenefitProcessNote"]] = None,
benefitPeriod: Optional["Period"] = None,
benefitBalance: Optional[List["ExplanationOfBenefitBenefitBalance"]] = None,
**kwargs
): ...
class PaymentNotice(DomainResource):
"""Payment notice"""
def __init__(
self,
# Core payment notice data
identifier: Optional[List["Identifier"]] = None,
status: str, # active | cancelled | draft | entered-in-error
request: Optional["Reference"] = None,
response: Optional["Reference"] = None,
created: str, # DateTime
reporter: Optional["Reference"] = None,
payment: Optional["Reference"] = None,
paymentDate: Optional[str] = None, # Date
payee: Optional["Reference"] = None,
recipient: "Reference",
amount: "Money",
# Payment status
paymentStatus: Optional["CodeableConcept"] = None,
**kwargs
): ...
class PaymentReconciliation(DomainResource):
"""Payment reconciliation"""
def __init__(
self,
# Core reconciliation data
identifier: Optional[List["Identifier"]] = None,
status: str, # active | cancelled | draft | entered-in-error
kind: Optional["CodeableConcept"] = None,
period: Optional["Period"] = None,
created: str, # DateTime
enterer: Optional["Reference"] = None,
issuerType: Optional["CodeableConcept"] = None,
paymentIssuer: Optional["Reference"] = None,
# Request and outcome
request: Optional["Reference"] = None,
requestor: Optional["Reference"] = None,
outcome: Optional[str] = None, # queued | complete | error | partial
disposition: Optional[str] = None,
date: str, # Date
location: Optional["Reference"] = None,
method: Optional["CodeableConcept"] = None,
cardBrand: Optional[str] = None,
accountNumber: Optional[str] = None,
expirationDate: Optional[str] = None, # Date
processor: Optional[str] = None,
referenceNumber: Optional[str] = None,
authorization: Optional[str] = None,
tenderedAmount: Optional["Money"] = None,
returnedAmount: Optional["Money"] = None,
amount: "Money",
# Payment details
paymentIdentifier: Optional["Identifier"] = None,
allocation: Optional[List["PaymentReconciliationAllocation"]] = None,
formCode: Optional["CodeableConcept"] = None,
processNote: Optional[List["PaymentReconciliationProcessNote"]] = None,
**kwargs
): ...from typing import Optional, List
from fhir.resources.domainresource import DomainResource
from fhir.resources.money import Money
# Financial resource backbone elements
class ClaimRelated: ...
class ClaimPayee: ...
class ClaimCareTeam: ...
class ClaimSupportingInfo: ...
class ClaimDiagnosis: ...
class ClaimProcedure: ...
class ClaimInsurance: ...
class ClaimAccident: ...
class ClaimItem: ...
class ClaimResponseEvent: ...
class ClaimResponseItem: ...
class ClaimResponseAddItem: ...
class ClaimResponseTotal: ...
class ClaimResponsePayment: ...
class ClaimResponseProcessNote: ...
class ClaimResponseInsurance: ...
class ClaimResponseError: ...
class CoveragePaymentBy: ...
class CoverageClass: ...
class CoverageCostToBeneficiary: ...
class CoverageEligibilityRequestEvent: ...
class CoverageEligibilityRequestSupportingInfo: ...
class CoverageEligibilityRequestInsurance: ...
class CoverageEligibilityRequestItem: ...
class CoverageEligibilityResponseEvent: ...
class CoverageEligibilityResponseInsurance: ...
class CoverageEligibilityResponseError: ...
class ExplanationOfBenefitRelated: ...
class ExplanationOfBenefitEvent: ...
class ExplanationOfBenefitPayee: ...
class ExplanationOfBenefitCareTeam: ...
class ExplanationOfBenefitSupportingInfo: ...
class ExplanationOfBenefitDiagnosis: ...
class ExplanationOfBenefitProcedure: ...
class ExplanationOfBenefitInsurance: ...
class ExplanationOfBenefitAccident: ...
class ExplanationOfBenefitItem: ...
class ExplanationOfBenefitAddItem: ...
class ExplanationOfBenefitTotal: ...
class ExplanationOfBenefitPayment: ...
class ExplanationOfBenefitProcessNote: ...
class ExplanationOfBenefitBenefitBalance: ...
class PaymentReconciliationAllocation: ...
class PaymentReconciliationProcessNote: ...Install with Tessl CLI
npx tessl i tessl/pypi-fhir--resources