R6 Ballot (2nd Draft)

Publish-box (todo)

Healthcareservice.shex

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

Raw ShEx

ShEx statement for healthcareservice

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 <Range.shex>
IMPORT <string.shex>
IMPORT <boolean.shex>
IMPORT <markdown.shex>
IMPORT <Quantity.shex>
IMPORT <Location.shex>
IMPORT <Endpoint.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <Attachment.shex>
IMPORT <Organization.shex>
IMPORT <Availability.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <ExtendedContactDetail.shex>


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

# The details of a healthcare service available at a location
<HealthcareService> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:identifier @<OneOrMore_Identifier>?;  # External identifiers for this item
    fhir:active @<boolean>?;                # Whether this HealthcareService 
                                            # record is in active use 
    fhir:providedBy @<Reference> AND {fhir:link 
    			@<Organization> ? }?;  # Organization that provides this 
                                            # service 
    fhir:offeredIn @<OneOrMore_Reference_HealthcareService>?;  # The service within which this 
                                            # service is offered 
    fhir:category @<OneOrMore_CodeableConcept>?;  # Broad category of service being 
                                            # performed or delivered 
    fhir:type @<OneOrMore_CodeableConcept>?;  # Type of service that may be 
                                            # delivered or performed 
    fhir:specialty @<OneOrMore_CodeableConcept>?;  # Specialties handled by the 
                                            # HealthcareService 
    fhir:location @<OneOrMore_Reference_Location>?;  # Location(s) where service may be 
                                            # provided 
    fhir:name @<string>?;                   # Description of service as 
                                            # presented to a consumer while 
                                            # searching 
    fhir:comment @<markdown>?;              # Additional description and/or any 
                                            # specific issues not covered 
                                            # elsewhere 
    fhir:extraDetails @<markdown>?;         # Extra details about the service 
                                            # that can't be placed in the other 
                                            # fields 
    fhir:photo @<Attachment>?;              # Facilitates quick identification 
                                            # of the service 
    fhir:contact @<OneOrMore_ExtendedContactDetail>?;  # Official contact details for the 
                                            # HealthcareService 
    fhir:coverageArea @<OneOrMore_Reference_Location>?;  # Location(s) service is intended 
                                            # for/available to 
    fhir:serviceProvisionCode @<OneOrMore_CodeableConcept>?;  # Conditions under which service is 
                                            # available/offered 
    fhir:eligibility @<OneOrMore_HealthcareService.eligibility>?;  # Specific eligibility requirements 
                                            # required to use the service 
    fhir:program @<OneOrMore_CodeableConcept>?;  # Programs that this service is 
                                            # applicable to 
    fhir:characteristic @<OneOrMore_CodeableConcept>?;  # Collection of characteristics 
                                            # (attributes) 
    fhir:communication @<OneOrMore_CodeableConcept>?;  # The language that this service is 
                                            # offered in 
    fhir:referralMethod @<OneOrMore_CodeableConcept>?;  # Ways that the service accepts 
                                            # referrals 
    fhir:referralRequired @<boolean>?;      # A referral is required for access 
                                            # to this service 
    fhir:appointmentRequired @<boolean>?;   # An appointment is required for 
                                            # access to this service 
    fhir:availability @<Availability>?;     # Times the healthcare service is 
                                            # available (including exceptions) 
    fhir:endpoint @<OneOrMore_Reference_Endpoint>?;  # Technical endpoints providing 
                                            # access to electronic services 
                                            # operated for the healthcare 
                                            # service 
}  

# Specific eligibility requirements required to use the service
<HealthcareService.eligibility> EXTENDS @<BackboneElement> CLOSED {   
    fhir:code @<CodeableConcept>?;          # Coded value for the eligibility
    fhir:value @<CodeableConcept>  OR 
    			@<boolean>  OR 
    			@<Quantity>  OR 
    			@<Range>  OR 
    			@<Reference>  ?;  # Value associated with the 
                                            # eligibility code 
    fhir:comment @<markdown>?;              # Describes the eligibility 
                                            # conditions for the service 
    fhir:period @<markdown>?;               # The period this eligibility rule 
                                            # applies 
}  

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

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

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

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

<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_HealthcareService.eligibility> CLOSED {
    rdf:first @<HealthcareService.eligibility>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_HealthcareService.eligibility> 
}

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


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.