R6 Ballot (2nd Draft)

Publish-box (todo)

Insuranceplan.shex

Patient Administration Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: No defined compartments

Raw ShEx

ShEx statement for insuranceplan

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 <Money.shex>
IMPORT <string.shex>
IMPORT <Quantity.shex>
IMPORT <Location.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <positiveInt.shex>
IMPORT <Organization.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <InsuranceProduct.shex>


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

# Plan details
<InsurancePlan> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:identifier @<OneOrMore_Identifier>?;  # Business Identifier for Plan
    fhir:type @<CodeableConcept>?;          # Classification of Plan
    fhir:product @<Reference> AND {fhir:link 
    			@<InsuranceProduct> ? }?;  # The product that this plan is 
                                            # available under 
    fhir:coverageArea @<OneOrMore_Reference_Location>?;  # Where product-plan applies
    fhir:network @<OneOrMore_Reference_Organization>?;  # What networks provide coverage
    fhir:generalCost @<OneOrMore_InsurancePlan.generalCost>?;  # Overall costs
    fhir:specificCost @<OneOrMore_InsurancePlan.specificCost>?;  # Individual cost elements
}  

# Individual cost elements
<InsurancePlan.specificCost> EXTENDS @<BackboneElement> CLOSED {   
    fhir:category @<CodeableConcept>;       # General category of benefit
    fhir:benefit @<OneOrMore_InsurancePlan.specificCost.benefit>?;  # Benefits list
}  

# List of the costs
<InsurancePlan.specificCost.benefit.cost> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Classification of specific cost
    fhir:applicability @<CodeableConcept>?;  # in-network | out-of-network | other
    fhir:qualifier @<OneOrMore_CodeableConcept>?;  # Additional information about the 
                                            # cost 
    fhir:value @<Quantity>?;                # The actual cost value
}  

# Overall costs
<InsurancePlan.generalCost> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>?;          # Classification of specific cost
    fhir:groupSize @<positiveInt>?;         # Number of enrollees
    fhir:cost @<Money>?;                    # Cost value
    fhir:comment @<string>?;                # Additional cost information
}  

# Benefits list
<InsurancePlan.specificCost.benefit> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Classification of benefit provided
    fhir:cost @<OneOrMore_InsurancePlan.specificCost.benefit.cost>?;  # List of the costs
}  

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

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

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

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

<OneOrMore_InsurancePlan.generalCost> CLOSED {
    rdf:first @<InsurancePlan.generalCost>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InsurancePlan.generalCost> 
}

<OneOrMore_InsurancePlan.specificCost> CLOSED {
    rdf:first @<InsurancePlan.specificCost>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InsurancePlan.specificCost> 
}

<OneOrMore_InsurancePlan.specificCost.benefit> CLOSED {
    rdf:first @<InsurancePlan.specificCost.benefit>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InsurancePlan.specificCost.benefit> 
}

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

<OneOrMore_InsurancePlan.specificCost.benefit.cost> CLOSED {
    rdf:first @<InsurancePlan.specificCost.benefit.cost>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InsurancePlan.specificCost.benefit.cost> 
}


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.