R6 Ballot (2nd Draft)

Publish-box (todo)

Namingsystem.shex

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

Raw ShEx

ShEx statement for namingsystem

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 <code.shex>
IMPORT <date.shex>
IMPORT <string.shex>
IMPORT <Coding.shex>
IMPORT <Period.shex>
IMPORT <boolean.shex>
IMPORT <dateTime.shex>
IMPORT <markdown.shex>
IMPORT <Identifier.shex>
IMPORT <UsageContext.shex>
IMPORT <ContactDetail.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <RelatedArtifact.shex>
IMPORT <BackboneElement.shex>


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

# System of unique identification
<NamingSystem> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:url @<uri>?;                       # Canonical identifier for this 
                                            # naming system, represented as a 
                                            # URI (globally unique) 
    fhir:identifier @<OneOrMore_Identifier>?;  # Additional identifier for the 
                                            # naming system (business 
                                            # identifier) 
    fhir:version @<string>?;                # Business version of the naming 
                                            # system 
    fhir:versionAlgorithm @<string>  OR 
    			@<Coding>  ?;  # How to compare versions
    fhir:name @<string>;                    # Name for this naming system 
                                            # (computer friendly) 
    fhir:title @<string>?;                  # Title for this naming system 
                                            # (human friendly) 
    fhir:status @<code> AND
    	{fhir:v @fhirvs:publication-status};  # draft | active | retired | unknown
    fhir:kind @<code> AND
    	{fhir:v @fhirvs:namingsystem-type};  # codesystem | identifier | root
    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:responsible @<string>?;            # Who maintains system namespace?
    fhir:type @<CodeableConcept>?;          # e.g. driver,  provider,  patient, 
                                            # bank etc 
    fhir:description @<markdown>?;          # Natural language description of 
                                            # the naming system 
    fhir:useContext @<OneOrMore_UsageContext>?;  # The context that the content is 
                                            # intended to support 
    fhir:jurisdiction @<OneOrMore_CodeableConcept>?;  # Intended jurisdiction for naming 
                                            # system (if applicable) 
    fhir:purpose @<markdown>?;              # Why this naming system is defined
    fhir:copyright @<markdown>?;            # Use and/or publishing restrictions
    fhir:copyrightLabel @<string>?;         # Copyright holder and year(s)
    fhir:approvalDate @<date>?;             # When the NamingSystem was approved 
                                            # by publisher 
    fhir:lastReviewDate @<date>?;           # When the NamingSystem was last 
                                            # reviewed by the publisher 
    fhir:effectivePeriod @<Period>?;        # When the NamingSystem is expected 
                                            # to be used 
    fhir:topic @<OneOrMore_CodeableConcept>?;  # E.g. Education, Treatment, 
                                            # Assessment, etc 
    fhir:author @<OneOrMore_ContactDetail>?;  # Who authored the CodeSystem
    fhir:editor @<OneOrMore_ContactDetail>?;  # Who edited the NamingSystem
    fhir:reviewer @<OneOrMore_ContactDetail>?;  # Who reviewed the NamingSystem
    fhir:endorser @<OneOrMore_ContactDetail>?;  # Who endorsed the NamingSystem
    fhir:relatedArtifact @<OneOrMore_RelatedArtifact>?;  # Additional documentation, 
                                            # citations, etc 
    fhir:usage @<string>?;                  # How/where is it used
    fhir:uniqueId @<OneOrMore_NamingSystem.uniqueId>;  # Unique identifiers used for system
}  

# Unique identifiers used for system
<NamingSystem.uniqueId> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<code> AND
    	{fhir:v @fhirvs:namingsystem-identifier-type};  # oid | uuid | uri | iri-stem | 
                                            # v2csmnemonic | other 
    fhir:value @<string>;                   # The unique identifier
    fhir:preferred @<boolean>?;             # Is this the id that should be used 
                                            # for this type 
    fhir:comment @<string>?;                # Notes about identifier usage
    fhir:period @<Period>?;                 # When is identifier valid?
    fhir:authoritative @<boolean>?;         # Whether the identifier is 
                                            # authoritative 
}  

#---------------------- 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_RelatedArtifact> CLOSED {
    rdf:first @<RelatedArtifact>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_RelatedArtifact> 
}

<OneOrMore_NamingSystem.uniqueId> CLOSED {
    rdf:first @<NamingSystem.uniqueId>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_NamingSystem.uniqueId> 
}

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

# Identifies the style of unique identifier used to identify a namespace.
fhirvs:namingsystem-identifier-type ["oid" "uuid" "uri" "iri-stem" "v2csmnemonic" "other"]

# Identifies the purpose of the naming system.
fhirvs:namingsystem-type ["codesystem" "identifier" "root"]

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