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 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#>
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>?; # Actual statement as markdown
}
# Actual statement as markdown
<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
}
# External requirements that apply here
<Requirements.imports> EXTENDS @<BackboneElement> CLOSED {
fhir:reference @<canonical>; # Source of imported statements
fhir:key @<OneOrMore_id>?; # Statement key
}
# 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
}
# 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
}
#---------------------- 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_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:link
@<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>
}
<OneOrMore_id> CLOSED {
rdf:first @<id> ;
rdf:rest [rdf:nil] OR @<OneOrMore_id>
}
#---------------------- 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 Thu, Oct 23, 2025 19:47+0000.
Links: Search |
Version History |
Contents |
Glossary |
QA |
Compare to R5 |
|
Propose a change