R6 Ballot (2nd Draft)

Publish-box (todo)

Claim.shex

Financial Management Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: Device, Encounter, Patient, Practitioner, RelatedPerson

Raw ShEx

ShEx statement for claim

PREFIX fhir: <http://hl7.org/fhir/> 
PREFIX fhirvs: <http://hl7.org/fhir/ValueSet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

IMPORT <code.shex>
IMPORT <date.shex>
IMPORT <Money.shex>
IMPORT <Period.shex>
IMPORT <string.shex>
IMPORT <Device.shex>
IMPORT <Patient.shex>
IMPORT <decimal.shex>
IMPORT <boolean.shex>
IMPORT <Address.shex>
IMPORT <dateTime.shex>
IMPORT <Location.shex>
IMPORT <Quantity.shex>
IMPORT <Resource.shex>
IMPORT <Coverage.shex>
IMPORT <Reference.shex>
IMPORT <Procedure.shex>
IMPORT <Condition.shex>
IMPORT <Encounter.shex>
IMPORT <Identifier.shex>
IMPORT <Attachment.shex>
IMPORT <positiveInt.shex>
IMPORT <Practitioner.shex>
IMPORT <Organization.shex>
IMPORT <RelatedPerson.shex>
IMPORT <DeviceRequest.shex>
IMPORT <SupplyRequest.shex>
IMPORT <DomainResource.shex>
IMPORT <ServiceRequest.shex>
IMPORT <NutritionOrder.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <PractitionerRole.shex>
IMPORT <MedicationRequest.shex>
IMPORT <CodeableReference.shex>
IMPORT <VisionPrescription.shex>


start=@<Claim> AND {fhir:nodeRole [fhir:treeRoot]}

# Claim, Pre-determination or Pre-authorization
<Claim> EXTENDS @<DomainResource> CLOSED {   

    a [fhir:Claim]?;
    fhir:nodeRole [fhir:treeRoot]?;

    fhir:identifier @<OneOrMore_Identifier>?;  # Business Identifier for claim
    fhir:traceNumber @<OneOrMore_Identifier>?;  # Number for tracking
    fhir:status @<code> AND
    	{fhir:v @fhirvs:fm-status};  # active | cancelled | draft | 
                                            # entered-in-error 
    fhir:type @<CodeableConcept>;           # Category or discipline
    fhir:subType @<CodeableConcept>?;       # More granular claim type
    fhir:use @<code> AND
    	{fhir:v @fhirvs:claim-use};  # claim | preauthorization | 
                                            # predetermination 
    fhir:patient @<Reference> AND {fhir:link 
    			@<Patient> ? };  # The recipient of the products and 
                                            # services 
    fhir:billablePeriod @<Period>?;         # Relevant time frame for the claim
    fhir:created @<dateTime>;               # Resource creation date
    fhir:enterer @<Reference> AND {fhir:link 
    			@<Patient> OR 
    			@<Practitioner> OR 
    			@<PractitionerRole> OR 
    			@<RelatedPerson> ? }?;  # Author of the claim
    fhir:insurer @<Reference> AND {fhir:link 
    			@<Organization> ? }?;  # Target
    fhir:provider @<Reference> AND {fhir:link 
    			@<Organization> OR 
    			@<Practitioner> OR 
    			@<PractitionerRole> ? }?;  # Party responsible for the claim
    fhir:priority @<CodeableConcept>?;      # Desired processing urgency
    fhir:fundsReserve @<CodeableConcept>?;  # For whom to reserve funds
    fhir:related @<OneOrMore_Claim.related>?;  # Prior or corollary claims
    fhir:prescription @<Reference> AND {fhir:link 
    			@<DeviceRequest> OR 
    			@<MedicationRequest> OR 
    			@<VisionPrescription> ? }?;  # Prescription authorizing services 
                                            # and products 
    fhir:originalPrescription @<Reference> AND {fhir:link 
    			@<DeviceRequest> OR 
    			@<MedicationRequest> OR 
    			@<VisionPrescription> ? }?;  # Original prescription if 
                                            # superseded by fulfiller 
    fhir:payee @<Claim.payee>?;             # Recipient of benefits payable
    fhir:referral @<Reference> AND {fhir:link 
    			@<ServiceRequest> ? }?;  # Treatment referral
    fhir:encounter @<OneOrMore_Reference_Encounter>?;  # Encounters associated with the 
                                            # listed treatments 
    fhir:facility @<Reference> AND {fhir:link 
    			@<Location> OR 
    			@<Organization> ? }?;  # Servicing facility
    fhir:diagnosisRelatedGroup @<CodeableConcept>?;  # Package billing code
    fhir:event @<OneOrMore_Claim.event>?;   # Event information
    fhir:careTeam @<OneOrMore_Claim.careTeam>?;  # Members of the care team
    fhir:supportingInfo @<OneOrMore_Claim.supportingInfo>?;  # Supporting information
    fhir:diagnosis @<OneOrMore_Claim.diagnosis>?;  # Pertinent diagnosis information
    fhir:procedure @<OneOrMore_Claim.procedure>?;  # Clinical procedures performed
    fhir:insurance @<OneOrMore_Claim.insurance>?;  # Patient insurance information
    fhir:accident @<Claim.accident>?;       # Details of the event
    fhir:patientPaid @<Money>?;             # Paid by the patient
    fhir:item @<OneOrMore_Claim.item>?;     # Product or service provided
    fhir:total @<Money>?;                   # Total claim cost
}  

# Product or service provided
<Claim.item.detail.subDetail> EXTENDS @<BackboneElement> CLOSED {   
    fhir:sequence @<positiveInt>;           # Item instance identifier
    fhir:traceNumber @<OneOrMore_Identifier>?;  # Number for tracking
    fhir:revenue @<CodeableConcept>?;       # Revenue or cost center code
    fhir:category @<CodeableConcept>?;      # Benefit classification
    fhir:productOrService @<CodeableConcept>?;  # Billing, service, product, or drug 
                                            # code 
    fhir:productOrServiceEnd @<CodeableConcept>?;  # End of a range of codes
    fhir:modifier @<OneOrMore_CodeableConcept>?;  # Service/Product billing modifiers
    fhir:programCode @<OneOrMore_CodeableConcept>?;  # Program the product or service is 
                                            # provided under 
    fhir:patientPaid @<Money>?;             # Paid by the patient
    fhir:quantity @<Quantity>?;             # Count of products or services
    fhir:unitPrice @<Money>?;               # Fee, charge or cost per item
    fhir:factor @<decimal>?;                # Price scaling factor
    fhir:tax @<Money>?;                     # Total tax
    fhir:net @<Money>?;                     # Total item cost
    fhir:udi @<OneOrMore_Reference_Device>?;  # Unique device identifier
}  

# Event information
<Claim.event> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Specific event
    fhir:when @<dateTime>  OR 
    			@<Period>  ;  # Occurance date or period
}  

# Supporting information
<Claim.supportingInfo> EXTENDS @<BackboneElement> CLOSED {   
    fhir:sequence @<positiveInt>;           # Information instance identifier
    fhir:category @<CodeableConcept>;       # Classification of the supplied 
                                            # information 
    fhir:code @<CodeableConcept>?;          # Type of information
    fhir:timing @<date>  OR 
    			@<Period>  ?;  # When it occurred
    fhir:value @<boolean>  OR 
    			@<string>  OR 
    			@<Quantity>  OR 
    			@<Attachment>  OR 
    			(@<Reference>  AND {fhir:link @<Resource> })  OR 
    			@<Identifier>  ?;  # Data to be provided
    fhir:reason @<CodeableConcept>?;        # Explanation for the information
}  

# Product or service provided
<Claim.item.detail> EXTENDS @<BackboneElement> CLOSED {   
    fhir:sequence @<positiveInt>;           # Item instance identifier
    fhir:traceNumber @<OneOrMore_Identifier>?;  # Number for tracking
    fhir:revenue @<CodeableConcept>?;       # Revenue or cost center code
    fhir:category @<CodeableConcept>?;      # Benefit classification
    fhir:productOrService @<CodeableConcept>?;  # Billing, service, product, or drug 
                                            # code 
    fhir:productOrServiceEnd @<CodeableConcept>?;  # End of a range of codes
    fhir:modifier @<OneOrMore_CodeableConcept>?;  # Service/Product billing modifiers
    fhir:programCode @<OneOrMore_CodeableConcept>?;  # Program the product or service is 
                                            # provided under 
    fhir:patientPaid @<Money>?;             # Paid by the patient
    fhir:quantity @<Quantity>?;             # Count of products or services
    fhir:unitPrice @<Money>?;               # Fee, charge or cost per item
    fhir:factor @<decimal>?;                # Price scaling factor
    fhir:tax @<Money>?;                     # Total tax
    fhir:net @<Money>?;                     # Total item cost
    fhir:udi @<OneOrMore_Reference_Device>?;  # Unique device identifier
    fhir:subDetail @<OneOrMore_Claim.item.detail.subDetail>?;  # Product or service provided
}  

# Product or service provided
<Claim.item> EXTENDS @<BackboneElement> CLOSED {   
    fhir:sequence @<positiveInt>;           # Item instance identifier
    fhir:traceNumber @<OneOrMore_Identifier>?;  # Number for tracking
    fhir:careTeamSequence @<OneOrMore_positiveInt>?;  # Applicable careTeam members
    fhir:diagnosisSequence @<OneOrMore_positiveInt>?;  # Applicable diagnoses
    fhir:procedureSequence @<OneOrMore_positiveInt>?;  # Applicable procedures
    fhir:informationSequence @<OneOrMore_positiveInt>?;  # Applicable exception and 
                                            # supporting information 
    fhir:revenue @<CodeableConcept>?;       # Revenue or cost center code
    fhir:category @<CodeableConcept>?;      # Benefit classification
    fhir:productOrService @<CodeableConcept>?;  # Billing, service, product, or drug 
                                            # code 
    fhir:productOrServiceEnd @<CodeableConcept>?;  # End of a range of codes
    fhir:request @<OneOrMore_Reference_DeviceRequest_OR_MedicationRequest_OR_NutritionOrder_OR_ServiceRequest_OR_SupplyRequest_OR_VisionPrescription>?;  # Request or Referral for Service
    fhir:modifier @<OneOrMore_CodeableConcept>?;  # Product or service billing 
                                            # modifiers 
    fhir:programCode @<OneOrMore_CodeableConcept>?;  # Program the product or service is 
                                            # provided under 
    fhir:serviced @<date>  OR 
    			@<Period>  ?;  # Date or dates of service or 
                                            # product delivery 
    fhir:location @<CodeableConcept>  OR 
    			@<Address>  OR 
    			(@<Reference>  AND {fhir:link @<Location> })  ?;  # Place of service or where product 
                                            # was supplied 
    fhir:patientPaid @<Money>?;             # Paid by the patient
    fhir:quantity @<Quantity>?;             # Count of products or services
    fhir:unitPrice @<Money>?;               # Fee, charge or cost per item
    fhir:factor @<decimal>?;                # Price scaling factor
    fhir:tax @<Money>?;                     # Total tax
    fhir:net @<Money>?;                     # Total item cost
    fhir:udi @<OneOrMore_Reference_Device>?;  # Unique device identifier
    fhir:bodySite @<OneOrMore_Claim.item.bodySite>?;  # Anatomical location
    fhir:encounter @<OneOrMore_Reference_Encounter>?;  # Encounters associated with the 
                                            # listed treatments 
    fhir:detail @<OneOrMore_Claim.item.detail>?;  # Product or service provided
}  

# Details of the event
<Claim.accident> EXTENDS @<BackboneElement> CLOSED {   
    fhir:date @<date>;                      # When the incident occurred
    fhir:type @<CodeableConcept>?;          # The nature of the accident
    fhir:location @<Address>  OR 
    			(@<Reference>  AND {fhir:link @<Location> })  ?;  # Where the event occurred
}  

# Patient insurance information
<Claim.insurance> EXTENDS @<BackboneElement> CLOSED {   
    fhir:sequence @<positiveInt>;           # Insurance instance identifier
    fhir:focal @<boolean>;                  # Coverage to be used for 
                                            # adjudication 
    fhir:identifier @<Identifier>?;         # Pre-assigned Claim number
    fhir:coverage @<Reference> AND {fhir:link 
    			@<Coverage> ? };  # Insurance information
    fhir:businessArrangement @<string>?;    # Additional provider contract number
    fhir:preAuthRef @<OneOrMore_string>?;   # Prior authorization reference 
                                            # number 
    fhir:claimResponse @<Reference> AND {fhir:link 
    			@<ClaimResponse> ? }?;  # Adjudication results
}  

# Clinical procedures performed
<Claim.procedure> EXTENDS @<BackboneElement> CLOSED {   
    fhir:sequence @<positiveInt>;           # Procedure instance identifier
    fhir:type @<OneOrMore_CodeableConcept>?;  # Category of Procedure
    fhir:date @<dateTime>?;                 # When the procedure was performed
    fhir:procedure @<CodeableConcept>  OR 
    			(@<Reference>  AND {fhir:link @<Procedure> })  ;  # Specific clinical procedure
    fhir:udi @<OneOrMore_Reference_Device>?;  # Unique device identifier
}  

# Pertinent diagnosis information
<Claim.diagnosis> EXTENDS @<BackboneElement> CLOSED {   
    fhir:sequence @<positiveInt>;           # Diagnosis instance identifier
    fhir:diagnosis @<CodeableConcept>  OR 
    			(@<Reference>  AND {fhir:link @<Condition> })  ;  # Nature of illness or problem
    fhir:type @<OneOrMore_CodeableConcept>?;  # Timing or nature of the diagnosis
    fhir:onAdmission @<CodeableConcept>?;   # Present on admission
}  

# Recipient of benefits payable
<Claim.payee> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Category of recipient
    fhir:party @<Reference> AND {fhir:link 
    			@<Organization> OR 
    			@<Patient> OR 
    			@<Practitioner> OR 
    			@<PractitionerRole> OR 
    			@<RelatedPerson> ? }?;  # Recipient reference
}  

# Members of the care team
<Claim.careTeam> EXTENDS @<BackboneElement> CLOSED {   
    fhir:sequence @<positiveInt>;           # Order of care team
    fhir:provider @<Reference> AND {fhir:link 
    			@<Organization> OR 
    			@<Practitioner> OR 
    			@<PractitionerRole> ? };  # Practitioner or organization
    fhir:responsible @<boolean>?;           # Indicator of the lead practitioner
    fhir:role @<CodeableConcept>?;          # Function within the team
    fhir:specialty @<CodeableConcept>?;     # Practitioner or provider 
                                            # specialization 
}  

# Anatomical location
<Claim.item.bodySite> EXTENDS @<BackboneElement> CLOSED {   
    fhir:site @<OneOrMore_CodeableReference>;  # Location
    fhir:subSite @<OneOrMore_CodeableConcept>?;  # Sub-location
}  

# Prior or corollary claims
<Claim.related> EXTENDS @<BackboneElement> CLOSED {   
    fhir:claim @<Reference> AND {fhir:link 
    			@<Claim> ? }?;  # Reference to the related claim
    fhir:relationship @<CodeableConcept>?;  # How the reference claim is related
    fhir:reference @<Identifier>?;          # File or case reference
}  

#---------------------- Cardinality Types (OneOrMore) -------------------

<OneOrMore_Identifier> CLOSED {
    rdf:first @<Identifier>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Identifier> 
}

<OneOrMore_Claim.related> CLOSED {
    rdf:first @<Claim.related>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.related> 
}

<OneOrMore_Reference_Encounter> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<Encounter> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_Encounter> 
}

<OneOrMore_Claim.event> CLOSED {
    rdf:first @<Claim.event>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.event> 
}

<OneOrMore_Claim.careTeam> CLOSED {
    rdf:first @<Claim.careTeam>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.careTeam> 
}

<OneOrMore_Claim.supportingInfo> CLOSED {
    rdf:first @<Claim.supportingInfo>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.supportingInfo> 
}

<OneOrMore_Claim.diagnosis> CLOSED {
    rdf:first @<Claim.diagnosis>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.diagnosis> 
}

<OneOrMore_Claim.procedure> CLOSED {
    rdf:first @<Claim.procedure>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.procedure> 
}

<OneOrMore_Claim.insurance> CLOSED {
    rdf:first @<Claim.insurance>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.insurance> 
}

<OneOrMore_Claim.item> CLOSED {
    rdf:first @<Claim.item>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.item> 
}

<OneOrMore_CodeableConcept> CLOSED {
    rdf:first @<CodeableConcept>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_CodeableConcept> 
}

<OneOrMore_Reference_Device> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<Device> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_Device> 
}

<OneOrMore_Claim.item.detail.subDetail> CLOSED {
    rdf:first @<Claim.item.detail.subDetail>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.item.detail.subDetail> 
}

<OneOrMore_positiveInt> CLOSED {
    rdf:first @<positiveInt>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_positiveInt> 
}

<OneOrMore_Reference_DeviceRequest_OR_MedicationRequest_OR_NutritionOrder_OR_ServiceRequest_OR_SupplyRequest_OR_VisionPrescription> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<DeviceRequest> OR 
			@<MedicationRequest> OR 
			@<NutritionOrder> OR 
			@<ServiceRequest> OR 
			@<SupplyRequest> OR 
			@<VisionPrescription> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_DeviceRequest_OR_MedicationRequest_OR_NutritionOrder_OR_ServiceRequest_OR_SupplyRequest_OR_VisionPrescription> 
}

<OneOrMore_Claim.item.bodySite> CLOSED {
    rdf:first @<Claim.item.bodySite>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.item.bodySite> 
}

<OneOrMore_Claim.item.detail> CLOSED {
    rdf:first @<Claim.item.detail>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Claim.item.detail> 
}

<OneOrMore_string> CLOSED {
    rdf:first @<string>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_string> 
}

<OneOrMore_CodeableReference> CLOSED {
    rdf:first @<CodeableReference>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_CodeableReference> 
}

#---------------------- Value Sets ------------------------

# The purpose of the Claim: predetermination, preauthorization, claim.
fhirvs:claim-use ["claim" "preauthorization" "predetermination"]

# This value set includes Status codes.
fhirvs:fm-status ["active" "cancelled" "draft" "entered-in-error"]


Usage note: every effort has been made to ensure that the ShEx files are correct and useful, but they are not a normative part of the specification.