R6 Ballot (1st Draft)

This page is part of the FHIR Specification v6.0.0-ballot1: Release 6 Ballot (1st Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions

5.12 Resource Requirements - Content

FHIR Infrastructure icon Work GroupMaturity Level: 1 Trial UseSecurity Category: Anonymous Compartments: No defined compartments

A set of requirements - a list of features or behaviors of designed systems that are necessary to achieve organizational or regulatory goals.

The Requirements Resource a set of statements that are requirements for some design artifact to meet. The requirements resource is intended to meet two principle use cases:

  • Documenting known regulatory, business, functional and technical requirements for interoperability specifications, particularly those published as Implementation Guides
  • Performing the same role for clinical processes as documented in PlanDefinition and ActivityDefinition

The Requirements Resource is focused on gathering known requirements and providing traceability from solutions to the requirements they are intended to meet.

In any set of requirements, some of them may already be met by preexisting specifications, while others are requirements that must be fulfilled by some specification or design that is created with or subsequent to the requirements. For this reason, requirements can directly identify features of specifications that satisfy the stated requirement, but in most cases, it is expected that the specifications and designs that meet the requirements will provice traceability to the requirement.

Each Requirements resource carries a set of statements about requirements. Each statement has:

  • identity: Computable and human identification of the statement
  • requirement: The wording of the requirement
  • conformance: The strength associated with the statement. The strength is almost always embedded in the language of the requirement, but this allows for filtering and a degree of automated processing
  • source: Source information about who was the source of the requirement
  • satisfied by: A reference to some pre-existing specification element that satisfies the requirement

Requirements may by referenced from almost any resource by the Requirements Satisfied extension. Generally, this extension will be found in the Canonical Resources but this is not a hard rule.

If requirements are satisfied by an existing specification, they SHOULD reference a FHIR resource by {url} or a particular element by {url}#id, but the target of a reference does not need to be a resource at all.

The requirements resource carries minimal provenance information - the name of the publisher, and the source of the statements. Additional provenance information should be carried in a Provenance resource.

A number of stakeholders publishing FHIR implementation guides wish to do formal requirements tracing. This resource exists for them.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Requirements TUDomainResourceA set of requirements - features of systems that are necessary
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
Interfaces Implemented: CanonicalResource
... url ΣC0..1uriCanonical identifier for this Requirements, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
... identifier Σ0..*IdentifierAdditional identifier for the Requirements (business identifier)

... version Σ0..1stringBusiness version of the Requirements
.... versionAlgorithmStringstring
.... versionAlgorithmCodingCoding
... name ΣC0..1stringName for this Requirements (computer friendly)
... title ΣT0..1stringName for this Requirements (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (Required)
... experimental Σ0..1booleanFor testing purposes, not real usage
... date Σ0..1dateTimeDate last changed
... publisher ΣT0..1stringName of the publisher/steward (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher

... description T0..1markdownNatural language description of the requirements
... useContext ΣTU0..*UsageContextThe context that the content is intended to support

... jurisdiction ΣXD0..*CodeableConceptIntended jurisdiction for Requirements (if applicable)
Binding: Jurisdiction ValueSet (Extensible)

... purpose T0..1markdownWhy this Requirements is defined
... copyright T0..1markdownUse and/or publishing restrictions
... copyrightLabel T0..1stringCopyright holder and year(s)
... derivedFrom Σ0..*canonical(Requirements)Other set of Requirements this builds on

... reference 0..*urlExternal artifact (rule/document etc. that) created this set of requirements

... actor 0..*canonical(ActorDefinition)Actor for these requirements

... statement 0..*BackboneElementActual statement as markdown

.... key 1..1idKey that identifies this statement
.... label T0..1stringShort Human label for this statement
.... conformance 0..*codeSHALL | SHOULD | MAY | SHOULD-NOT
Binding: Conformance Expectation (Required)

.... conditionality 0..1booleanSet to true if requirements statement is conditional
.... requirement T1..1markdownThe actual requirement
.... derivedFrom 0..1stringAnother statement this clarifies/restricts ([url#]key)
.... parent 0..1stringA larger requirement that this requirement helps to refine and enable
.... satisfiedBy 0..*urlDesign artifact that satisfies this requirement

.... reference 0..*urlExternal artifact (rule/document etc. that) created this requirement

.... source 0..*Reference(CareTeam | Device | Group | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)Who asked for this statement


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Requirements (DomainResource) +CanonicalResourceAn absolute URI that is used to identify this Requirements when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Requirements is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Requirements is stored on different serversurl : uri [0..1]A formal identifier that is used to identify this Requirements when it is represented in other formats, or referenced in a specification, model, design or an instanceidentifier : Identifier [0..*]The identifier that is used to identify this version of the Requirements when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the Requirements author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequenceversion : string [0..1]Indicates the mechanism used to compare versions to determine which is more currentversionAlgorithm[x] : DataType [0..1] « string|Coding; null (Strength=Extensible) VersionAlgorithm+ »A natural language name identifying the Requirements. This name should be usable as an identifier for the module by machine processing applications such as code generationname : string [0..1] « This element has or is affected by some invariantsC »A short, descriptive, user-friendly title for the Requirementstitle : string [0..1]The status of this Requirements. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)PublicationStatus! »A Boolean value to indicate that this Requirements is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usageexperimental : boolean [0..1]The date (and optionally time) when the Requirements was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the Requirements changesdate : dateTime [0..1]The name of the organization or individual responsible for the release and ongoing maintenance of the Requirementspublisher : string [0..1]Contact details to assist a user in finding and communicating with the publishercontact : ContactDetail [0..*]A free text natural language description of the requirementsdescription : markdown [0..1]The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Requirements instancesuseContext : UsageContext [0..*]A legal or geographic region in which the Requirements is intended to be usedjurisdiction : CodeableConcept [0..*] « null (Strength=Extensible)JurisdictionValueSet+ »Explanation of why this Requirements is needed and why it has been designed as it haspurpose : markdown [0..1]A copyright statement relating to the Requirements and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the Requirementscopyright : markdown [0..1]A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved')copyrightLabel : string [0..1]Another set of Requirements that this set of Requirements builds on and updatesderivedFrom : canonical [0..*] « Requirements »A reference to another artifact that created this set of requirements. This could be a Profile, etc., or external regulation, or business requirements expressed elsewherereference : url [0..*]An actor these requirements are in regard toactor : canonical [0..*] « ActorDefinition »StatementKey that identifies this statement (unique within this resource)key : id [1..1]A short human usable label for this statementlabel : string [0..1]A short human usable label for this statementconformance : code [0..*] « null (Strength=Required)ConformanceExpectation! »This boolean flag is set to true of the text of the requirement is conditional on something e.g. it includes lanauage like 'if x then y'. This conditionality flag is introduced for purposes of filtering and colour highlighting etcconditionality : boolean [0..1]The actual requirement for human consumptionrequirement : markdown [1..1]Another statement on one of the requirements that this requirement clarifies or restrictsderivedFrom : string [0..1]A larger requirement that this requirement helps to refine and enableparent : string [0..1]A reference to another artifact that satisfies this requirement. This could be a Profile, extension, or an element in one of those, or a CapabilityStatement, OperationDefinition, SearchParameter, CodeSystem(/code), ValueSet, Libary etcsatisfiedBy : url [0..*]A reference to another artifact that created this requirement. This could be a Profile, etc., or external regulation, or business requirements expressed elsewherereference : url [0..*]Who asked for this statement to be a requirement. By default, it's assumed that the publisher knows who it is if it matterssource : Reference [0..*] « CareTeam|Device|Group|HealthcareService| Organization|Patient|Practitioner|PractitionerRole| RelatedPerson »The actual statement of requirement, in markdown formatstatement[0..*]

XML Template

<Requirements xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <url value="[uri]"/><!-- 0..1 Canonical identifier for this Requirements, represented as a URI (globally unique) -->
 <identifier><!-- 0..* Identifier Additional identifier for the Requirements (business identifier) --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the Requirements -->
 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 0..1 Name for this Requirements (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this Requirements (human friendly) -->
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage -->
 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->
 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <description value="[markdown]"/><!-- 0..1 Natural language description of the requirements -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for Requirements (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this Requirements is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->
 <derivedFrom><!-- 0..* canonical(Requirements) Other set of Requirements this builds on --></derivedFrom>
 <reference value="[url]"/><!-- 0..* External artifact (rule/document etc. that) created this set of requirements -->
 <actor><!-- 0..* canonical(ActorDefinition) Actor for these requirements --></actor>
 <statement>  <!-- 0..* Actual statement as markdown -->
  <key value="[id]"/><!-- 1..1 Key that identifies this statement -->
  <label value="[string]"/><!-- 0..1 Short Human label for this statement -->
  <conformance value="[code]"/><!-- 0..* SHALL | SHOULD | MAY | SHOULD-NOT -->
  <conditionality value="[boolean]"/><!-- 0..1 Set to true if requirements statement is conditional -->
  <requirement value="[markdown]"/><!-- 1..1 The actual requirement -->
  <derivedFrom value="[string]"/><!-- 0..1 Another statement this clarifies/restricts ([url#]key) -->
  <parent value="[string]"/><!-- 0..1 A larger requirement that this requirement helps to refine and enable -->
  <satisfiedBy value="[url]"/><!-- 0..* Design artifact that satisfies this requirement -->
  <reference value="[url]"/><!-- 0..* External artifact (rule/document etc. that) created this requirement -->
  <source><!-- 0..* Reference(CareTeam|Device|Group|HealthcareService|
    Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) Who asked for this statement --></source>
 </statement>
</Requirements>

JSON Template

{doco
  "resourceType" : "Requirements",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // Canonical identifier for this Requirements, represented as a URI (globally unique)
  "identifier" : [{ Identifier }], // Additional identifier for the Requirements (business identifier)
  "version" : "<string>", // Business version of the Requirements
  // versionAlgorithm[x]: How to compare versions. One of these 2:
  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I Name for this Requirements (computer friendly)
  "title" : "<string>", // Name for this Requirements (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)
  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the requirements
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for Requirements (if applicable)
  "purpose" : "<markdown>", // Why this Requirements is defined
  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "copyrightLabel" : "<string>", // Copyright holder and year(s)
  "derivedFrom" : ["<canonical(Requirements)>"], // Other set of Requirements this builds on
  "reference" : ["<url>"], // External artifact (rule/document etc. that) created this set of requirements
  "actor" : ["<canonical(ActorDefinition)>"], // Actor for these requirements
  "statement" : [{ // Actual statement as markdown
    "key" : "<id>", // R!  Key that identifies this statement
    "label" : "<string>", // Short Human label for this statement
    "conformance" : ["<code>"], // SHALL | SHOULD | MAY | SHOULD-NOT
    "conditionality" : <boolean>, // Set to true if requirements statement is conditional
    "requirement" : "<markdown>", // R!  The actual requirement
    "derivedFrom" : "<string>", // Another statement this clarifies/restricts ([url#]key)
    "parent" : "<string>", // A larger requirement that this requirement helps to refine and enable
    "satisfiedBy" : ["<url>"], // Design artifact that satisfies this requirement
    "reference" : ["<url>"], // External artifact (rule/document etc. that) created this requirement
    "source" : [{ Reference(CareTeam|Device|Group|HealthcareService|
    Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) }] // Who asked for this statement
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Requirements;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:url [ uri ] ; # 0..1 Canonical identifier for this Requirements, represented as a URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the Requirements (business identifier)
  fhir:version [ string ] ; # 0..1 Business version of the Requirements
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:string ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 0..1 I Name for this Requirements (computer friendly)
  fhir:title [ string ] ; # 0..1 Name for this Requirements (human friendly)
  fhir:status [ code ] ; # 1..1 draft | active | retired | unknown
  fhir:experimental [ boolean ] ; # 0..1 For testing purposes, not real usage
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the requirements
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Intended jurisdiction for Requirements (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 Why this Requirements is defined
  fhir:copyright [ markdown ] ; # 0..1 Use and/or publishing restrictions
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:derivedFrom  ( [ canonical(Requirements) ] ... ) ; # 0..* Other set of Requirements this builds on
  fhir:reference  ( [ url ] ... ) ; # 0..* External artifact (rule/document etc. that) created this set of requirements
  fhir:actor  ( [ canonical(ActorDefinition) ] ... ) ; # 0..* Actor for these requirements
  fhir:statement ( [ # 0..* Actual statement as markdown
    fhir:key [ id ] ; # 1..1 Key that identifies this statement
    fhir:label [ string ] ; # 0..1 Short Human label for this statement
    fhir:conformance  ( [ code ] ... ) ; # 0..* SHALL | SHOULD | MAY | SHOULD-NOT
    fhir:conditionality [ boolean ] ; # 0..1 Set to true if requirements statement is conditional
    fhir:requirement [ markdown ] ; # 1..1 The actual requirement
    fhir:derivedFrom [ string ] ; # 0..1 Another statement this clarifies/restricts ([url#]key)
    fhir:parent [ string ] ; # 0..1 A larger requirement that this requirement helps to refine and enable
    fhir:satisfiedBy  ( [ url ] ... ) ; # 0..* Design artifact that satisfies this requirement
    fhir:reference  ( [ url ] ... ) ; # 0..* External artifact (rule/document etc. that) created this requirement
    fhir:source  ( [ Reference(CareTeam|Device|Group|HealthcareService|Organization|Patient|Practitioner|
  PractitionerRole|RelatedPerson) ] ... ) ; # 0..* Who asked for this statement
  ] ... ) ;
]

Changes from both R4 and R4B

This resource did not exist in Release R4

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Requirements TUDomainResourceA set of requirements - features of systems that are necessary
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
Interfaces Implemented: CanonicalResource
... url ΣC0..1uriCanonical identifier for this Requirements, represented as a URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
... identifier Σ0..*IdentifierAdditional identifier for the Requirements (business identifier)

... version Σ0..1stringBusiness version of the Requirements
.... versionAlgorithmStringstring
.... versionAlgorithmCodingCoding
... name ΣC0..1stringName for this Requirements (computer friendly)
... title ΣT0..1stringName for this Requirements (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (Required)
... experimental Σ0..1booleanFor testing purposes, not real usage
... date Σ0..1dateTimeDate last changed
... publisher ΣT0..1stringName of the publisher/steward (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher

... description T0..1markdownNatural language description of the requirements
... useContext ΣTU0..*UsageContextThe context that the content is intended to support

... jurisdiction ΣXD0..*CodeableConceptIntended jurisdiction for Requirements (if applicable)
Binding: Jurisdiction ValueSet (Extensible)

... purpose T0..1markdownWhy this Requirements is defined
... copyright T0..1markdownUse and/or publishing restrictions
... copyrightLabel T0..1stringCopyright holder and year(s)
... derivedFrom Σ0..*canonical(Requirements)Other set of Requirements this builds on

... reference 0..*urlExternal artifact (rule/document etc. that) created this set of requirements

... actor 0..*canonical(ActorDefinition)Actor for these requirements

... statement 0..*BackboneElementActual statement as markdown

.... key 1..1idKey that identifies this statement
.... label T0..1stringShort Human label for this statement
.... conformance 0..*codeSHALL | SHOULD | MAY | SHOULD-NOT
Binding: Conformance Expectation (Required)

.... conditionality 0..1booleanSet to true if requirements statement is conditional
.... requirement T1..1markdownThe actual requirement
.... derivedFrom 0..1stringAnother statement this clarifies/restricts ([url#]key)
.... parent 0..1stringA larger requirement that this requirement helps to refine and enable
.... satisfiedBy 0..*urlDesign artifact that satisfies this requirement

.... reference 0..*urlExternal artifact (rule/document etc. that) created this requirement

.... source 0..*Reference(CareTeam | Device | Group | HealthcareService | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)Who asked for this statement


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Requirements (DomainResource) +CanonicalResourceAn absolute URI that is used to identify this Requirements when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Requirements is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Requirements is stored on different serversurl : uri [0..1]A formal identifier that is used to identify this Requirements when it is represented in other formats, or referenced in a specification, model, design or an instanceidentifier : Identifier [0..*]The identifier that is used to identify this version of the Requirements when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the Requirements author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequenceversion : string [0..1]Indicates the mechanism used to compare versions to determine which is more currentversionAlgorithm[x] : DataType [0..1] « string|Coding; null (Strength=Extensible) VersionAlgorithm+ »A natural language name identifying the Requirements. This name should be usable as an identifier for the module by machine processing applications such as code generationname : string [0..1] « This element has or is affected by some invariantsC »A short, descriptive, user-friendly title for the Requirementstitle : string [0..1]The status of this Requirements. Enables tracking the life-cycle of the content (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)PublicationStatus! »A Boolean value to indicate that this Requirements is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usageexperimental : boolean [0..1]The date (and optionally time) when the Requirements was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the Requirements changesdate : dateTime [0..1]The name of the organization or individual responsible for the release and ongoing maintenance of the Requirementspublisher : string [0..1]Contact details to assist a user in finding and communicating with the publishercontact : ContactDetail [0..*]A free text natural language description of the requirementsdescription : markdown [0..1]The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Requirements instancesuseContext : UsageContext [0..*]A legal or geographic region in which the Requirements is intended to be usedjurisdiction : CodeableConcept [0..*] « null (Strength=Extensible)JurisdictionValueSet+ »Explanation of why this Requirements is needed and why it has been designed as it haspurpose : markdown [0..1]A copyright statement relating to the Requirements and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the Requirementscopyright : markdown [0..1]A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved')copyrightLabel : string [0..1]Another set of Requirements that this set of Requirements builds on and updatesderivedFrom : canonical [0..*] « Requirements »A reference to another artifact that created this set of requirements. This could be a Profile, etc., or external regulation, or business requirements expressed elsewherereference : url [0..*]An actor these requirements are in regard toactor : canonical [0..*] « ActorDefinition »StatementKey that identifies this statement (unique within this resource)key : id [1..1]A short human usable label for this statementlabel : string [0..1]A short human usable label for this statementconformance : code [0..*] « null (Strength=Required)ConformanceExpectation! »This boolean flag is set to true of the text of the requirement is conditional on something e.g. it includes lanauage like 'if x then y'. This conditionality flag is introduced for purposes of filtering and colour highlighting etcconditionality : boolean [0..1]The actual requirement for human consumptionrequirement : markdown [1..1]Another statement on one of the requirements that this requirement clarifies or restrictsderivedFrom : string [0..1]A larger requirement that this requirement helps to refine and enableparent : string [0..1]A reference to another artifact that satisfies this requirement. This could be a Profile, extension, or an element in one of those, or a CapabilityStatement, OperationDefinition, SearchParameter, CodeSystem(/code), ValueSet, Libary etcsatisfiedBy : url [0..*]A reference to another artifact that created this requirement. This could be a Profile, etc., or external regulation, or business requirements expressed elsewherereference : url [0..*]Who asked for this statement to be a requirement. By default, it's assumed that the publisher knows who it is if it matterssource : Reference [0..*] « CareTeam|Device|Group|HealthcareService| Organization|Patient|Practitioner|PractitionerRole| RelatedPerson »The actual statement of requirement, in markdown formatstatement[0..*]

XML Template

<Requirements xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <url value="[uri]"/><!-- 0..1 Canonical identifier for this Requirements, represented as a URI (globally unique) -->
 <identifier><!-- 0..* Identifier Additional identifier for the Requirements (business identifier) --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the Requirements -->
 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 0..1 Name for this Requirements (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this Requirements (human friendly) -->
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage -->
 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->
 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <description value="[markdown]"/><!-- 0..1 Natural language description of the requirements -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for Requirements (if applicable) --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this Requirements is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->
 <derivedFrom><!-- 0..* canonical(Requirements) Other set of Requirements this builds on --></derivedFrom>
 <reference value="[url]"/><!-- 0..* External artifact (rule/document etc. that) created this set of requirements -->
 <actor><!-- 0..* canonical(ActorDefinition) Actor for these requirements --></actor>
 <statement>  <!-- 0..* Actual statement as markdown -->
  <key value="[id]"/><!-- 1..1 Key that identifies this statement -->
  <label value="[string]"/><!-- 0..1 Short Human label for this statement -->
  <conformance value="[code]"/><!-- 0..* SHALL | SHOULD | MAY | SHOULD-NOT -->
  <conditionality value="[boolean]"/><!-- 0..1 Set to true if requirements statement is conditional -->
  <requirement value="[markdown]"/><!-- 1..1 The actual requirement -->
  <derivedFrom value="[string]"/><!-- 0..1 Another statement this clarifies/restricts ([url#]key) -->
  <parent value="[string]"/><!-- 0..1 A larger requirement that this requirement helps to refine and enable -->
  <satisfiedBy value="[url]"/><!-- 0..* Design artifact that satisfies this requirement -->
  <reference value="[url]"/><!-- 0..* External artifact (rule/document etc. that) created this requirement -->
  <source><!-- 0..* Reference(CareTeam|Device|Group|HealthcareService|
    Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) Who asked for this statement --></source>
 </statement>
</Requirements>

JSON Template

{doco
  "resourceType" : "Requirements",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "url" : "<uri>", // Canonical identifier for this Requirements, represented as a URI (globally unique)
  "identifier" : [{ Identifier }], // Additional identifier for the Requirements (business identifier)
  "version" : "<string>", // Business version of the Requirements
  // versionAlgorithm[x]: How to compare versions. One of these 2:
  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I Name for this Requirements (computer friendly)
  "title" : "<string>", // Name for this Requirements (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "experimental" : <boolean>, // For testing purposes, not real usage
  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)
  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the requirements
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for Requirements (if applicable)
  "purpose" : "<markdown>", // Why this Requirements is defined
  "copyright" : "<markdown>", // Use and/or publishing restrictions
  "copyrightLabel" : "<string>", // Copyright holder and year(s)
  "derivedFrom" : ["<canonical(Requirements)>"], // Other set of Requirements this builds on
  "reference" : ["<url>"], // External artifact (rule/document etc. that) created this set of requirements
  "actor" : ["<canonical(ActorDefinition)>"], // Actor for these requirements
  "statement" : [{ // Actual statement as markdown
    "key" : "<id>", // R!  Key that identifies this statement
    "label" : "<string>", // Short Human label for this statement
    "conformance" : ["<code>"], // SHALL | SHOULD | MAY | SHOULD-NOT
    "conditionality" : <boolean>, // Set to true if requirements statement is conditional
    "requirement" : "<markdown>", // R!  The actual requirement
    "derivedFrom" : "<string>", // Another statement this clarifies/restricts ([url#]key)
    "parent" : "<string>", // A larger requirement that this requirement helps to refine and enable
    "satisfiedBy" : ["<url>"], // Design artifact that satisfies this requirement
    "reference" : ["<url>"], // External artifact (rule/document etc. that) created this requirement
    "source" : [{ Reference(CareTeam|Device|Group|HealthcareService|
    Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) }] // Who asked for this statement
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Requirements;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:url [ uri ] ; # 0..1 Canonical identifier for this Requirements, represented as a URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the Requirements (business identifier)
  fhir:version [ string ] ; # 0..1 Business version of the Requirements
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:string ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 0..1 I Name for this Requirements (computer friendly)
  fhir:title [ string ] ; # 0..1 Name for this Requirements (human friendly)
  fhir:status [ code ] ; # 1..1 draft | active | retired | unknown
  fhir:experimental [ boolean ] ; # 0..1 For testing purposes, not real usage
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the requirements
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Intended jurisdiction for Requirements (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 Why this Requirements is defined
  fhir:copyright [ markdown ] ; # 0..1 Use and/or publishing restrictions
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:derivedFrom  ( [ canonical(Requirements) ] ... ) ; # 0..* Other set of Requirements this builds on
  fhir:reference  ( [ url ] ... ) ; # 0..* External artifact (rule/document etc. that) created this set of requirements
  fhir:actor  ( [ canonical(ActorDefinition) ] ... ) ; # 0..* Actor for these requirements
  fhir:statement ( [ # 0..* Actual statement as markdown
    fhir:key [ id ] ; # 1..1 Key that identifies this statement
    fhir:label [ string ] ; # 0..1 Short Human label for this statement
    fhir:conformance  ( [ code ] ... ) ; # 0..* SHALL | SHOULD | MAY | SHOULD-NOT
    fhir:conditionality [ boolean ] ; # 0..1 Set to true if requirements statement is conditional
    fhir:requirement [ markdown ] ; # 1..1 The actual requirement
    fhir:derivedFrom [ string ] ; # 0..1 Another statement this clarifies/restricts ([url#]key)
    fhir:parent [ string ] ; # 0..1 A larger requirement that this requirement helps to refine and enable
    fhir:satisfiedBy  ( [ url ] ... ) ; # 0..* Design artifact that satisfies this requirement
    fhir:reference  ( [ url ] ... ) ; # 0..* External artifact (rule/document etc. that) created this requirement
    fhir:source  ( [ Reference(CareTeam|Device|Group|HealthcareService|Organization|Patient|Practitioner|
  PractitionerRole|RelatedPerson) ] ... ) ; # 0..* Who asked for this statement
  ] ... ) ;
]

Changes from both R4 and R4B

This resource did not exist in Release R4

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) , the spreadsheet version & the dependency analysis

PathValueSetTypeDocumentation
Requirements.versionAlgorithm[x] VersionAlgorithm Extensible

Indicates the mechanism used to compare versions to determine which is more current.

Requirements.status PublicationStatus Required

The lifecycle status of an artifact.

Requirements.jurisdiction JurisdictionValueSet Extensible

This value set defines a base set of codes for country, country subdivision and region for indicating where a resource is intended to be used.

Note: The codes for countries and country subdivisions are taken from ISO 3166 icon while the codes for "supra-national" regions are from UN Standard country or area codes for statistical use (M49) icon.

Requirements.statement.conformance ConformanceExpectation Required

Description Needed Here

UniqueKeyLevelLocationDescriptionExpression
img cnl-0Warning (base)Name should be usable as an identifier for the module by machine processing applications such as code generationname.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
img cnl-1Warning Requirements.urlURL should not contain | or # - these characters make processing canonical references problematicexists() implies matches('^[^|# ]+$')

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
actorreferenceAn actor these requirements are forRequirements.actor
(ActorDefinition)
contexttokenA use context assigned to the requirements(Requirements.useContext.value.ofType(CodeableConcept))30 Resources
context-quantityquantityA quantity- or range-valued use context assigned to the requirements(Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range))30 Resources
context-typetokenA type of use context assigned to the requirementsRequirements.useContext.code30 Resources
context-type-quantitycompositeA use context type and quantity- or range-based value assigned to the requirementsOn Requirements.useContext:
  context-type: code
  context-quantity: value.ofType(Quantity) | value.ofType(Range)
30 Resources
context-type-valuecompositeA use context type and value assigned to the requirementsOn Requirements.useContext:
  context-type: code
  context: value.ofType(CodeableConcept)
30 Resources
datedateThe requirements publication dateRequirements.date30 Resources
derived-fromreferenceThe requirements these are derived fromRequirements.derivedFrom
(Requirements)
descriptionstringThe description of the requirementsRequirements.description28 Resources
identifiertokenExternal identifier for the requirementsRequirements.identifier35 Resources
jurisdictiontokenIntended jurisdiction for the requirementsRequirements.jurisdiction26 Resources
namestringComputationally friendly name of the requirementsRequirements.name27 Resources
publisherstringName of the publisher of the requirementsRequirements.publisher30 Resources
statustokenThe current status of the requirementsRequirements.status36 Resources
titlestringThe human-friendly name of the requirementsRequirements.title27 Resources
urluriThe uri that identifies the requirementsRequirements.url35 Resources
versiontokenThe business version of the requirementsRequirements.version30 Resources