R6 Ballot (2nd Draft)

Publish-box (todo)

Location.shex

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

Raw ShEx

ShEx statement for location

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 <Coding.shex>
IMPORT <string.shex>
IMPORT <Address.shex>
IMPORT <decimal.shex>
IMPORT <markdown.shex>
IMPORT <Endpoint.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <Organization.shex>
IMPORT <Availability.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <VirtualServiceDetail.shex>
IMPORT <ExtendedContactDetail.shex>


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

# Details and position information for a place
<Location> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:identifier @<OneOrMore_Identifier>?;  # Unique code or number identifying 
                                            # the location to its users 
    fhir:status @<code> AND
    	{fhir:v @fhirvs:location-status}?;  # active | suspended | inactive
    fhir:operationalStatus @<Coding>?;      # The operational status of the 
                                            # location (typically only for a 
                                            # bed/room) 
    fhir:name @<string>?;                   # Name of the location as used by 
                                            # humans 
    fhir:alias @<OneOrMore_string>?;        # A list of alternate names that the 
                                            # location is known as, or was known 
                                            # as, in the past 
    fhir:description @<markdown>?;          # Additional details about the 
                                            # location that could be displayed 
                                            # as further information to identify 
                                            # the location beyond its name 
    fhir:mode @<code> AND
    	{fhir:v @fhirvs:location-mode}?;  # instance | kind
    fhir:type @<OneOrMore_CodeableConcept>?;  # Type of function performed
    fhir:contact @<OneOrMore_ExtendedContactDetail>?;  # Official contact details for the 
                                            # location 
    fhir:address @<Address>?;               # Physical location
    fhir:form @<CodeableConcept>?;          # Physical form of the location
    fhir:position @<Location.position>?;    # The absolute geographic location
    fhir:managingOrganization @<Reference> AND {fhir:link 
    			@<Organization> ? }?;  # Organization responsible for 
                                            # provisioning and upkeep 
    fhir:partOf @<Reference> AND {fhir:link 
    			@<Location> ? }?;  # Another Location this one is 
                                            # physically a part of 
    fhir:characteristic @<OneOrMore_CodeableConcept>?;  # Collection of characteristics 
                                            # (attributes) 
    fhir:hoursOfOperation @<Availability>?;  # What days/times during a week is 
                                            # this location usually open 
                                            # (including exceptions) 
    fhir:virtualService @<OneOrMore_VirtualServiceDetail>?;  # Connection details of a virtual 
                                            # service (e.g. conference call) 
    fhir:endpoint @<OneOrMore_Reference_Endpoint>?;  # Technical endpoints providing 
                                            # access to services operated for 
                                            # the location 
}  

# The absolute geographic location
<Location.position> EXTENDS @<BackboneElement> CLOSED {   
    fhir:longitude @<decimal>;              # Longitude with WGS84 datum
    fhir:latitude @<decimal>;               # Latitude with WGS84 datum
    fhir:altitude @<decimal>?;              # Altitude with WGS84 datum
}  

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

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

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

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

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

<OneOrMore_VirtualServiceDetail> CLOSED {
    rdf:first @<VirtualServiceDetail>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_VirtualServiceDetail> 
}

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

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

# Indicates whether a resource instance represents a specific location or a class of locations.
fhirvs:location-mode ["instance" "kind"]

# Indicates whether the location is still in use.
fhirvs:location-status ["active" "suspended" "inactive"]


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.