R6 Ballot (2nd Draft)

Publish-box (todo)

Insuranceproduct.shex

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

Raw ShEx

ShEx statement for insuranceproduct

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 <string.shex>
IMPORT <Period.shex>
IMPORT <Quantity.shex>
IMPORT <Location.shex>
IMPORT <Endpoint.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <Organization.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <ExtendedContactDetail.shex>


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

# Details of a Health Insurance product provided by an organization
<InsuranceProduct> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:identifier @<OneOrMore_Identifier>?;  # Business Identifier for Product
    fhir:status @<code> AND
    	{fhir:v @fhirvs:publication-status}?;  # draft | active | retired | unknown
    fhir:type @<OneOrMore_CodeableConcept>?;  # Kind of product
    fhir:name @<string>?;                   # Official name
    fhir:alias @<OneOrMore_string>?;        # Alternate names
    fhir:period @<Period>?;                 # When the product is available
    fhir:ownedBy @<Reference> AND {fhir:link 
    			@<Organization> ? }?;  # Product issuer
    fhir:administeredBy @<Reference> AND {fhir:link 
    			@<Organization> ? }?;  # Product administrator
    fhir:coverageArea @<OneOrMore_Reference_Location>?;  # Where product applies
    fhir:contact @<OneOrMore_ExtendedContactDetail>?;  # Official contact details relevant 
                                            # to the health insurance product 
    fhir:endpoint @<OneOrMore_Reference_Endpoint>?;  # Technical endpoint
    fhir:network @<OneOrMore_Reference_Organization>?;  # What networks are Included
    fhir:coverage @<OneOrMore_InsuranceProduct.coverage>?;  # Coverage details
    fhir:related @<OneOrMore_InsuranceProduct.related>?;  # Associated insurance product
}  

# Limits on the provided benefits
<InsuranceProduct.coverage.benefit.limit> EXTENDS @<BackboneElement> CLOSED {   
    fhir:value @<Quantity>?;                # Maximum value allowed
    fhir:code @<CodeableConcept>?;          # Benefit limit details
}  

# Associated insurance product
<InsuranceProduct.related> EXTENDS @<BackboneElement> CLOSED {   
    fhir:product @<Reference> AND {fhir:link 
    			@<InsuranceProduct> ? }?;  # Related Product reference
    fhir:relationship @<CodeableConcept>?;  # Relationship of this product to 
                                            # the related product 
    fhir:period @<Period>?;                 # Period that this Relationship is 
                                            # valid 
}  

# Coverage details
<InsuranceProduct.coverage> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Classification of Coverage
    fhir:network @<OneOrMore_Reference_Organization>?;  # What networks provide coverage
    fhir:benefit @<OneOrMore_InsuranceProduct.coverage.benefit>;  # List of benefits
}  

# List of benefits
<InsuranceProduct.coverage.benefit> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Classification of benefit provided
    fhir:requirement @<string>?;            # Referral requirements
    fhir:limit @<OneOrMore_InsuranceProduct.coverage.benefit.limit>?;  # Limits on the provided benefits
}  

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

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

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

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

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

<OneOrMore_ExtendedContactDetail> CLOSED {
    rdf:first @<ExtendedContactDetail>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_ExtendedContactDetail> 
}

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

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

<OneOrMore_InsuranceProduct.coverage> CLOSED {
    rdf:first @<InsuranceProduct.coverage>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InsuranceProduct.coverage> 
}

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

<OneOrMore_InsuranceProduct.coverage.benefit> CLOSED {
    rdf:first @<InsuranceProduct.coverage.benefit>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InsuranceProduct.coverage.benefit> 
}

<OneOrMore_InsuranceProduct.coverage.benefit.limit> CLOSED {
    rdf:first @<InsuranceProduct.coverage.benefit.limit>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InsuranceProduct.coverage.benefit.limit> 
}

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

# The lifecycle status of an artifact.
fhirvs:publication-status ["draft" "active" "retired" "unknown"]


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.