FoundationThis is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions
| FHIR Infrastructure Work Group | Maturity Level: N/A | Standards Status: Informative | Compartments: No defined compartments |
ShEx statement for examplescenario
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 <string.shex>
IMPORT <Coding.shex>
IMPORT <boolean.shex>
IMPORT <dateTime.shex>
IMPORT <markdown.shex>
IMPORT <canonical.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <UsageContext.shex>
IMPORT <ContactDetail.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
start=@<ExampleScenario> AND {fhir:nodeRole [fhir:treeRoot]}
# A computable description of a set of actors and the interactions between those actors
<ExampleScenario> EXTENDS @<DomainResource> CLOSED {
a [fhir:ExampleScenario]?;fhir:nodeRole [fhir:treeRoot]?;
fhir:url @<uri>?; # Canonical identifier for this
# example scenario, represented as a
# URI (globally unique)
fhir:identifier @<OneOrMore_Identifier>?; # Additional identifier for the
# example scenario
fhir:version @<string>?; # Business version of the example
# scenario
fhir:versionAlgorithm @<string> OR
@<Coding> ?; # How to compare versions
fhir:name @<string>?; # Name for this example scenario
# (computer friendly)
fhir:title @<string>?; # Name for this example scenario
# (human friendly)
fhir:status @<code> AND
{fhir:v @fhirvs:publication-status}; # draft | active | retired | unknown
fhir:experimental @<boolean>?; # For testing only - never for 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 ExampleScenario
fhir:useContext @<OneOrMore_UsageContext>?; # The context that the content is
# intended to support
fhir:jurisdiction @<OneOrMore_CodeableConcept>?; # Jurisdiction of the authority that
# maintains the example scenario (if
# applicable)
fhir:purpose @<markdown>?; # The purpose of the example, e.g.
# to illustrate a scenario
fhir:copyright @<markdown>?; # Notice about intellectual property
# ownership, can include
# restrictions on use
fhir:copyrightLabel @<string>?; # Copyright holder and year(s)
fhir:actor @<OneOrMore_ExampleScenario.actor>?; # Individual involved in exchange
fhir:instance @<OneOrMore_ExampleScenario.instance>?; # Data used in the scenario
fhir:process @<OneOrMore_ExampleScenario.process>?; # Major process within scenario
}
# Data used in the scenario
<ExampleScenario.instance> EXTENDS @<BackboneElement> CLOSED {
fhir:key @<string>; # ID or acronym of the instance
fhir:structureType @<Coding>; # Data structure for example
fhir:structureVersion @<string>?; # E.g. 4.0.1
fhir:structureProfile @<canonical> OR
@<uri> ?; # Rules instance adheres to
fhir:title @<string>; # Label for instance
fhir:description @<markdown>?; # Human-friendly description of the
# instance
fhir:content @<Reference>?; # Example instance data
fhir:version @<OneOrMore_ExampleScenario.instance.version>?; # Snapshot of instance that changes
fhir:containedInstance @<OneOrMore_ExampleScenario.instance.containedInstance>?; # Resources contained in the instance
}
# Major process within scenario
<ExampleScenario.process> EXTENDS @<BackboneElement> CLOSED {
fhir:title @<string>; # Label for procss
fhir:description @<markdown>?; # Human-friendly description of the
# process
fhir:preConditions @<markdown>?; # Status before process starts
fhir:postConditions @<markdown>?; # Status after successful completion
fhir:step @<OneOrMore_ExampleScenario.process.step>?; # Event within of the process
}
# Alternate non-typical step action
<ExampleScenario.process.step.alternative> EXTENDS @<BackboneElement> CLOSED {
fhir:title @<string>; # Label for alternative
fhir:description @<markdown>?; # Human-readable description of
# option
fhir:step @<OneOrMore_ExampleScenario.process.step>?; # Alternative action(s)
}
# Resources contained in the instance
<ExampleScenario.instance.containedInstance> EXTENDS @<BackboneElement> CLOSED {
fhir:instanceReference @<string>; # Key of contained instance
fhir:versionReference @<string>?; # Key of contained instance version
}
# Step is simple action
<ExampleScenario.process.step.operation> EXTENDS @<BackboneElement> CLOSED {
fhir:type @<Coding>?; # Kind of action
fhir:title @<string>; # Label for step
fhir:initiator @<string>?; # Who starts the operation
fhir:receiver @<string>?; # Who receives the operation
fhir:description @<markdown>?; # Human-friendly description of the
# operation
fhir:initiatorActive @<boolean>?; # Initiator stays active?
fhir:receiverActive @<boolean>?; # Receiver stays active?
fhir:request @<ExampleScenario.instance.containedInstance>?; # Instance transmitted on invocation
fhir:response @<ExampleScenario.instance.containedInstance>?; # Instance transmitted on invocation
# response
}
# Individual involved in exchange
<ExampleScenario.actor> EXTENDS @<BackboneElement> CLOSED {
fhir:key @<string>; # ID or acronym of the actor
fhir:type @<code> AND
{fhir:v @fhirvs:actordefinition-actor-type}?; # system | non-system | individual |
# patient | practitioner |
# related-person | device |
# collective | care-team | group |
# healthcare-service | organization
fhir:title @<string>; # Label for actor when rendering
fhir:description @<markdown>?; # Details about actor
fhir:definition @<canonical>?; # Formal definition of actor
}
# Event within of the process
<ExampleScenario.process.step> EXTENDS @<BackboneElement> CLOSED {
fhir:number @<string>?; # Sequential number of the step
fhir:process @<ExampleScenario.process>?; # Step is nested process
fhir:workflow @<canonical>?; # Step is nested workflow
fhir:operation @<ExampleScenario.process.step.operation>?; # Step is simple action
fhir:alternative @<OneOrMore_ExampleScenario.process.step.alternative>?; # Alternate non-typical step action
fhir:pause @<boolean>?; # Pause in the flow?
}
# Snapshot of instance that changes
<ExampleScenario.instance.version> EXTENDS @<BackboneElement> CLOSED {
fhir:key @<string>; # ID or acronym of the version
fhir:title @<string>; # Label for instance version
fhir:description @<markdown>?; # Details about version
fhir:content @<Reference>?; # Example instance version data
}
#---------------------- 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_ExampleScenario.actor> CLOSED {
rdf:first @<ExampleScenario.actor> ;
rdf:rest [rdf:nil] OR @<OneOrMore_ExampleScenario.actor>
}
<OneOrMore_ExampleScenario.instance> CLOSED {
rdf:first @<ExampleScenario.instance> ;
rdf:rest [rdf:nil] OR @<OneOrMore_ExampleScenario.instance>
}
<OneOrMore_ExampleScenario.process> CLOSED {
rdf:first @<ExampleScenario.process> ;
rdf:rest [rdf:nil] OR @<OneOrMore_ExampleScenario.process>
}
<OneOrMore_ExampleScenario.instance.version> CLOSED {
rdf:first @<ExampleScenario.instance.version> ;
rdf:rest [rdf:nil] OR @<OneOrMore_ExampleScenario.instance.version>
}
<OneOrMore_ExampleScenario.instance.containedInstance> CLOSED {
rdf:first @<ExampleScenario.instance.containedInstance> ;
rdf:rest [rdf:nil] OR @<OneOrMore_ExampleScenario.instance.containedInstance>
}
<OneOrMore_ExampleScenario.process.step> CLOSED {
rdf:first @<ExampleScenario.process.step> ;
rdf:rest [rdf:nil] OR @<OneOrMore_ExampleScenario.process.step>
}
<OneOrMore_ExampleScenario.process.step.alternative> CLOSED {
rdf:first @<ExampleScenario.process.step.alternative> ;
rdf:rest [rdf:nil] OR @<OneOrMore_ExampleScenario.process.step.alternative>
}
#---------------------- Value Sets ------------------------
# The type of actor - system or human.
fhirvs:actordefinition-actor-type ["system" "non-system" "individual" "patient" "practitioner" "related-person" "device" "collective" "care-team" "group" "healthcare-service" "organization"]
# 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.
FHIR ®© HL7.org 2011+. FHIR R6 hl7.fhir.core#6.0.0-ballot3 generated on Thu, Oct 23, 2025 19:46+0000.
Links: Search |
Version History |
Contents |
Glossary |
QA |
Compare to R5 |
|
Propose a change