FoundationThis is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions
| Responsible Owner: FHIR Infrastructure Work Group | Standards Status: Informative | Compartments: No defined compartments |
ShEx statement for requirements
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#>
# ShEx Version 2.2
IMPORT <Id.shex>
IMPORT <Uri.shex>
IMPORT <Url.shex>
IMPORT <Code.shex>
IMPORT <Group.shex>
IMPORT <String.shex>
IMPORT <Coding.shex>
IMPORT <Device.shex>
IMPORT <Boolean.shex>
IMPORT <Patient.shex>
IMPORT <DateTime.shex>
IMPORT <Markdown.shex>
IMPORT <CareTeam.shex>
IMPORT <Canonical.shex>
IMPORT <Identifier.shex>
IMPORT <UsageContext.shex>
IMPORT <Organization.shex>
IMPORT <Practitioner.shex>
IMPORT <ContactDetail.shex>
IMPORT <RelatedPerson.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <PractitionerRole.shex>
IMPORT <HealthcareService.shex>
start=@<Requirements> AND {fhir:nodeRole [fhir:treeRoot]}
# A set of requirements - features of systems that are necessary
<Requirements> EXTENDS @<DomainResource> CLOSED {
a [fhir:Requirements]?;fhir:nodeRole [fhir:treeRoot]?;
fhir:url @<Uri>?; # Canonical identifier for this
# Requirements, represented as a URI
# (globally unique)
fhir:identifier @<OneOrMore_Identifier>?; # Additional identifier for the
# Requirements (business identifier)
fhir:version @<String>?; # Business version of the
# Requirements
fhir:versionAlgorithm @<String> OR
@<Coding> ?; # How to compare versions
fhir:name @<String>?; # Name for this Requirements
# (computer friendly)
fhir:title @<String>?; # Name for this Requirements (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 requirements
fhir:useContext @<OneOrMore_UsageContext>?; # The context that the content is
# intended to support
fhir:jurisdiction @<OneOrMore_CodeableConcept>?; # Jurisdiction of the authority that
# maintains the Requirements (if
# applicable)
fhir:purpose @<Markdown>?; # Why this Requirements is defined
fhir:copyright @<Markdown>?; # Notice about intellectual property
# ownership, can include
# restrictions on use
fhir:copyrightLabel @<String>?; # Copyright holder and year(s)
fhir:derivedFrom @<OneOrMore_Canonical>?; # Other set of Requirements this
# builds on
fhir:imports @<OneOrMore_Requirements.imports>?; # External requirements that apply
# here
fhir:reference @<OneOrMore_Url>?; # External artifact (rule/document
# etc. that) created this set of
# requirements
fhir:actor @<OneOrMore_Requirements.actor>?; # Actor for these requirements
fhir:statement @<OneOrMore_Requirements.statement>?; # Conformance requirement statement
}
# Actor for these requirements
<Requirements.actor> EXTENDS @<BackboneElement> CLOSED {
fhir:reference @<Canonical>; # Actor referenced
fhir:key @<Id>?; # Unique label for actor (used in
# statements)
}
# Another statement this is refining, tightening, or establishing more context for
<Requirements.statement.derivedFrom> EXTENDS @<BackboneElement> CLOSED {
fhir:reference @<Canonical>?; # Pointer to Requirements instance
fhir:key @<Id>; # Key of referenced statement
}
# External requirements that apply here
<Requirements.imports> EXTENDS @<BackboneElement> CLOSED {
fhir:reference @<Canonical>; # Source of imported statements
fhir:key @<OneOrMore_Id>?; # Statement key
}
# Conformance requirement statement
<Requirements.statement> EXTENDS @<BackboneElement> CLOSED {
fhir:key @<Id>; # Key that identifies this statement
fhir:label @<String>?; # Short Human label for this
# statement
fhir:conformance @<OneOrMore_Code> AND
{fhir:v @fhirvs:conformance-expectation}?; # SHALL | SHOULD | MAY | SHOULD-NOT
# | SHALL-NOT
fhir:conditionality @<Boolean>?; # Set to true if requirements
# statement is conditional
fhir:requirement @<Markdown>; # The actual requirement
fhir:derivedFrom @<Requirements.statement.derivedFrom>?; # Another statement this is
# refining, tightening, or
# establishing more context for
fhir:partOf @<Requirements.statement.partOf>?; # Higher-level requirement or
# statement which this is a logical
# sub-requirement of
fhir:satisfiedBy @<OneOrMore_Url>?; # Design artifact that satisfies
# this requirement
fhir:reference @<OneOrMore_Url>?; # External artifact (rule/document
# etc. that) created this
# requirement
fhir:source @<OneOrMore_Reference_CareTeam_OR_Device_OR_Group_OR_HealthcareService_OR_Organization_OR_Patient_OR_Practitioner_OR_PractitionerRole_OR_RelatedPerson>?; # Who asked for this statement
fhir:actor @<OneOrMore_Id>?; # Key of relevant actor
}
# Higher-level requirement or statement which this is a logical sub-requirement of
<Requirements.statement.partOf> EXTENDS @<BackboneElement> CLOSED {
fhir:reference @<Canonical>?; # Pointer to Requirements instance
fhir:key @<Id>; # Key of referenced statement
}
#---------------------- 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_Canonical> CLOSED {
rdf:first @<Canonical> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Canonical>
}
<OneOrMore_Requirements.imports> CLOSED {
rdf:first @<Requirements.imports> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Requirements.imports>
}
<OneOrMore_Url> CLOSED {
rdf:first @<Url> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Url>
}
<OneOrMore_Requirements.actor> CLOSED {
rdf:first @<Requirements.actor> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Requirements.actor>
}
<OneOrMore_Requirements.statement> CLOSED {
rdf:first @<Requirements.statement> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Requirements.statement>
}
<OneOrMore_Id> CLOSED {
rdf:first @<Id> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Id>
}
<OneOrMore_Code> CLOSED {
rdf:first @<Code> ;
rdf:rest [rdf:nil] OR @<OneOrMore_Code>
}
<OneOrMore_Reference_CareTeam_OR_Device_OR_Group_OR_HealthcareService_OR_Organization_OR_Patient_OR_Practitioner_OR_PractitionerRole_OR_RelatedPerson> CLOSED {
rdf:first @<Reference> AND {fhir:l
@<CareTeam> OR
@<Device> OR
@<Group> OR
@<HealthcareService> OR
@<Organization> OR
@<Patient> OR
@<Practitioner> OR
@<PractitionerRole> OR
@<RelatedPerson> } ;
rdf:rest [rdf:nil] OR @<OneOrMore_Reference_CareTeam_OR_Device_OR_Group_OR_HealthcareService_OR_Organization_OR_Patient_OR_Practitioner_OR_PractitionerRole_OR_RelatedPerson>
}
#---------------------- Value Sets ------------------------
# Description Needed Here
fhirvs:conformance-expectation ["SHALL" "SHOULD" "MAY" "SHOULD-NOT" "SHALL-NOT"]
# 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 Wed, Nov 5, 2025 23:17+0000.
Links: Search |
Version History |
Contents |
Glossary |
QA |
Compare to R5 |
|
Propose a change