R6 Ballot (2nd Draft)

Publish-box (todo)

Terminologycapabilities.shex

Terminology Infrastructure Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: No defined compartments

Raw ShEx

ShEx statement for terminologycapabilities

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 <uri.shex>
IMPORT <url.shex>
IMPORT <code.shex>
IMPORT <string.shex>
IMPORT <Coding.shex>
IMPORT <boolean.shex>
IMPORT <dateTime.shex>
IMPORT <markdown.shex>
IMPORT <canonical.shex>
IMPORT <Identifier.shex>
IMPORT <UsageContext.shex>
IMPORT <ContactDetail.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>


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

# A statement of system capabilities
<TerminologyCapabilities> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:url @<uri>?;                       # Canonical identifier for this 
                                            # terminology capabilities, 
                                            # represented as a URI (globally 
                                            # unique) 
    fhir:identifier @<OneOrMore_Identifier>?;  # Additional identifier for the 
                                            # terminology capabilities 
    fhir:version @<string>?;                # Business version of the 
                                            # terminology capabilities 
    fhir:versionAlgorithm @<string>  OR 
    			@<Coding>  ?;  # How to compare versions
    fhir:name @<string>?;                   # Name for this terminology 
                                            # capabilities (computer friendly) 
    fhir:title @<string>?;                  # Name for this terminology 
                                            # capabilities (human friendly) 
    fhir:status @<code> AND
    	{fhir:v @fhirvs:publication-status};  # draft | active | retired | unknown
    fhir:experimental @<boolean>?;          # For testing purposes, not real 
                                            # usage 
    fhir:date @<dateTime>;                  # Date last changed
    fhir:publisher @<string>?;              # Name of the publisher/steward 
                                            # (organization or individual) 
    fhir:contact @<OneOrMore_ContactDetail>?;  # Contact details for the publisher
    fhir:description @<markdown>?;          # Natural language description of 
                                            # the terminology capabilities 
    fhir:useContext @<OneOrMore_UsageContext>?;  # The context that the content is 
                                            # intended to support 
    fhir:jurisdiction @<OneOrMore_CodeableConcept>?;  # Intended jurisdiction for 
                                            # terminology capabilities (if 
                                            # applicable) 
    fhir:purpose @<markdown>?;              # Why this terminology capabilities 
                                            # is defined 
    fhir:copyright @<markdown>?;            # Use and/or publishing restrictions
    fhir:copyrightLabel @<string>?;         # Copyright holder and year(s)
    fhir:kind @<code> AND
    	{fhir:v @fhirvs:capability-statement-kind};  # instance | capability | 
                                            # requirements 
    fhir:software @<TerminologyCapabilities.software>?;  # Software that is covered by this 
                                            # terminology capability statement 
    fhir:implementation @<TerminologyCapabilities.implementation>?;  # If this describes a specific 
                                            # instance 
    fhir:lockedDate @<boolean>?;            # Whether lockedDate is supported
    fhir:codeSystem @<OneOrMore_TerminologyCapabilities.codeSystem>?;  # A code system supported by the 
                                            # server 
    fhir:expansion @<TerminologyCapabilities.expansion>?;  # Information about the 
                                            # [ValueSet/$expand](valueset-oper-
                                            # ation-expand.html) operation 
    fhir:codeSearch @<code> AND
    	{fhir:v @fhirvs:code-search-support}?;  # in-compose | in-expansion | 
                                            # in-compose-or-expansion 
    fhir:validateCode @<TerminologyCapabilities.validateCode>?;  # Information about the 
                                            # [ValueSet/$validate-code](values-
                                            # et-operation-validate-code.html) 
                                            # operation 
    fhir:translation @<TerminologyCapabilities.translation>?;  # Information about the 
                                            # [ConceptMap/$translate](conceptm-
                                            # ap-operation-translate.html) 
                                            # operation 
    fhir:closure @<TerminologyCapabilities.closure>?;  # Information about the 
                                            # [ConceptMap/$closure](conceptmap-
                                            # -operation-closure.html) operation 
}  

# Software that is covered by this terminology capability statement
<TerminologyCapabilities.software> EXTENDS @<BackboneElement> CLOSED {   
    fhir:name @<string>;                    # A name the software is known by
    fhir:version @<string>?;                # Version covered by this statement
}  

# Information about the [ValueSet/$expand](valueset-operation-expand.html) operation
<TerminologyCapabilities.expansion> EXTENDS @<BackboneElement> CLOSED {   
    fhir:hierarchical @<boolean>?;          # Whether the server can return 
                                            # nested value sets 
    fhir:paging @<boolean>?;                # Whether the server supports paging 
                                            # on expansion 
    fhir:incomplete @<boolean>?;            # Allow request for incomplete 
                                            # expansions? 
    fhir:parameter @<OneOrMore_TerminologyCapabilities.expansion.parameter>?;  # Supported expansion parameter
    fhir:textFilter @<markdown>?;           # Documentation about text searching 
                                            # works 
}  

# Supported expansion parameter
<TerminologyCapabilities.expansion.parameter> EXTENDS @<BackboneElement> CLOSED {   
    fhir:name @<code>;                      # Name of the supported expansion 
                                            # parameter 
    fhir:documentation @<markdown>?;        # Description of support for 
                                            # parameter 
}  

# Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation
<TerminologyCapabilities.translation> EXTENDS @<BackboneElement> CLOSED {   
    fhir:needsMap @<boolean>;               # Whether the client must identify 
                                            # the map 
}  

# Filter Properties supported
<TerminologyCapabilities.codeSystem.version.filter> EXTENDS @<BackboneElement> CLOSED {   
    fhir:code @<code>;                      # Code of the property supported
    fhir:op @<OneOrMore_code>;              # Operations supported for the 
                                            # property 
}  

# If this describes a specific instance
<TerminologyCapabilities.implementation> EXTENDS @<BackboneElement> CLOSED {   
    fhir:description @<markdown>;           # Describes this specific instance
    fhir:url @<url>?;                       # Base URL for the implementation
}  

# Version of Code System supported
<TerminologyCapabilities.codeSystem.version> EXTENDS @<BackboneElement> CLOSED {   
    fhir:code @<string>?;                   # Version identifier for this version
    fhir:isDefault @<boolean>?;             # If this is the default version for 
                                            # this code system 
    fhir:compositional @<boolean>?;         # If compositional grammar is 
                                            # supported 
    fhir:language @<OneOrMore_code> AND
    	{fhir:v @fhirvs:all-languages}?;  # Language Displays supported
    fhir:filter @<OneOrMore_TerminologyCapabilities.codeSystem.version.filter>?;  # Filter Properties supported
    fhir:property @<OneOrMore_code>?;       # Properties supported for $lookup
}  

# Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation
<TerminologyCapabilities.validateCode> EXTENDS @<BackboneElement> CLOSED {   
    fhir:translations @<boolean>;           # Whether translations are validated
}  

# Information about the [ConceptMap/$closure](conceptmap-operation-closure.html) operation
<TerminologyCapabilities.closure> EXTENDS @<BackboneElement> CLOSED {   
    fhir:translation @<boolean>?;           # If cross-system closure is 
                                            # supported 
}  

# A code system supported by the server
<TerminologyCapabilities.codeSystem> EXTENDS @<BackboneElement> CLOSED {   
    fhir:uri @<canonical>?;                 # Canonical identifier for the code 
                                            # system, represented as a URI 
    fhir:version @<OneOrMore_TerminologyCapabilities.codeSystem.version>?;  # Version of Code System supported
    fhir:content @<code> AND
    	{fhir:v @fhirvs:codesystem-content-mode};  # not-present | example | fragment | 
                                            # complete | supplement 
    fhir:subsumption @<boolean>?;           # Whether subsumption is supported
}  

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

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

<OneOrMore_ContactDetail> CLOSED {
    rdf:first @<ContactDetail>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_ContactDetail> 
}

<OneOrMore_UsageContext> CLOSED {
    rdf:first @<UsageContext>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_UsageContext> 
}

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

<OneOrMore_TerminologyCapabilities.codeSystem> CLOSED {
    rdf:first @<TerminologyCapabilities.codeSystem>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_TerminologyCapabilities.codeSystem> 
}

<OneOrMore_TerminologyCapabilities.expansion.parameter> CLOSED {
    rdf:first @<TerminologyCapabilities.expansion.parameter>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_TerminologyCapabilities.expansion.parameter> 
}

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

<OneOrMore_TerminologyCapabilities.codeSystem.version.filter> CLOSED {
    rdf:first @<TerminologyCapabilities.codeSystem.version.filter>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_TerminologyCapabilities.codeSystem.version.filter> 
}

<OneOrMore_TerminologyCapabilities.codeSystem.version> CLOSED {
    rdf:first @<TerminologyCapabilities.codeSystem.version>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_TerminologyCapabilities.codeSystem.version> 
}

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

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

# How a capability statement is intended to be used.
fhirvs:capability-statement-kind ["instance" "capability" "requirements"]

# The degree to which the server supports the code search parameter on ValueSet, if it is supported.
fhirvs:code-search-support ["in-compose" "in-expansion" "in-compose-or-expansion"]

# The extent of the content of the code system (the concepts and codes it defines) are represented in a code system resource.
fhirvs:codesystem-content-mode ["not-present" "example" "fragment" "complete" "supplement"]

# 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.