R6 Ballot (2nd Draft)

Publish-box (todo)

Endpoint.shex

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

Raw ShEx

ShEx statement for endpoint

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 <url.shex>
IMPORT <uri.shex>
IMPORT <code.shex>
IMPORT <string.shex>
IMPORT <Period.shex>
IMPORT <Reference.shex>
IMPORT <canonical.shex>
IMPORT <Identifier.shex>
IMPORT <Organization.shex>
IMPORT <ContactPoint.shex>
IMPORT <Availability.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>


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

# The technical details of an endpoint that can be used for electronic services
<Endpoint> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:identifier @<OneOrMore_Identifier>?;  # Identifies this endpoint across 
                                            # multiple systems 
    fhir:status @<code> AND
    	{fhir:v @fhirvs:endpoint-status};  # active | suspended | error | off | 
                                            # entered-in-error 
    fhir:connectionType @<OneOrMore_CodeableConcept>;  # Protocol/Profile/Standard to be 
                                            # used with this endpoint connection 
    fhir:name @<string>?;                   # A name that this endpoint can be 
                                            # identified by 
    fhir:description @<string>?;            # Additional details about the 
                                            # endpoint that could be displayed 
                                            # as further information to identify 
                                            # the description beyond its name 
    fhir:environmentType @<OneOrMore_CodeableConcept>?;  # The type of environment(s) exposed 
                                            # at this endpoint 
    fhir:managingOrganization @<Reference> AND {fhir:link 
    			@<Organization> ? }?;  # Organization that manages this 
                                            # endpoint (might not be the 
                                            # organization that exposes the 
                                            # endpoint) 
    fhir:contact @<OneOrMore_ContactPoint>?;  # Contact details for source (e.g. 
                                            # troubleshooting) 
    fhir:period @<Period>?;                 # Interval the endpoint is expected 
                                            # to be operational 
    fhir:availability @<Availability>?;     # Times the endpoint is expected to 
                                            # be available (including 
                                            # exceptions) 
    fhir:payload @<OneOrMore_Endpoint.payload>?;  # Set of payloads that are provided 
                                            # by this endpoint 
    fhir:address @<url>;                    # The technical base address for 
                                            # connecting to this endpoint 
    fhir:header @<OneOrMore_string>?;       # Usage depends on the channel type
}  

# Set of payloads that are provided by this endpoint
<Endpoint.payload> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<OneOrMore_CodeableConcept>?;  # The type of content that may be 
                                            # used at this endpoint (e.g. XDS 
                                            # Discharge summaries) 
    fhir:mimeType @<OneOrMore_code> AND
    	{fhir:v @fhirvs:mimetypes}?;  # Mimetype to send. If not 
                                            # specified, the content could be 
                                            # anything (including no payload, if 
                                            # the connectionType defined this) 
    fhir:profileCanonical @<OneOrMore_canonical>?;  # The profile that is expected at 
                                            # this endpoint 
    fhir:profileUri @<OneOrMore_uri>?;      # The non-fhir based profile that is 
                                            # expected at this endpoint 
}  

#---------------------- 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_ContactPoint> CLOSED {
    rdf:first @<ContactPoint>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_ContactPoint> 
}

<OneOrMore_Endpoint.payload> CLOSED {
    rdf:first @<Endpoint.payload>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Endpoint.payload> 
}

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

<OneOrMore_code> CLOSED {
    rdf:first @<code>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_code> 
}

<OneOrMore_canonical> CLOSED {
    rdf:first @<canonical>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_canonical> 
}

<OneOrMore_uri> CLOSED {
    rdf:first @<uri>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_uri> 
}

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

# The status of the endpoint.
fhirvs:endpoint-status ["active" "suspended" "error" "off" "entered-in-error"]

# This value set includes all possible codes from BCP-13 (see http://tools.ietf.org/html/bcp13)
fhirvs:mimetypes xsd:string #EXTERNAL


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.