FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon

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 TU DomainResource A 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
+ Rule: Actor Keys must be unique

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
Interfaces Implemented: CanonicalResource
... url ΣC 0..1 uri Canonical 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..* Identifier Additional identifier for the Requirements (business identifier)

... version Σ 0..1 string Business version of the Requirements
.... versionAlgorithmString string
.... versionAlgorithmCoding Coding
... name ΣC 0..1 string Name for this Requirements (computer friendly)
... title ΣT 0..1 string Name for this Requirements (human friendly)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (Required)
... experimental Σ 0..1 boolean For testing only - never for real usage
... date Σ 0..1 dateTime Date last changed
... publisher ΣT 0..1 string Name of the publisher/steward (organization or individual)
... contact Σ 0..* ContactDetail Contact details for the publisher

... description T 0..1 markdown Natural language description of the requirements
... useContext ΣTU 0..* UsageContext The context that the content is intended to support

... jurisdiction ΣXD 0..* CodeableConcept Intended jurisdiction for Requirements (if applicable)
Binding: Jurisdiction ValueSet (Extensible)

... purpose T 0..1 markdown Why this Requirements is defined
... copyright T 0..1 markdown Use and/or publishing restrictions
... copyrightLabel T 0..1 string Copyright holder and year(s)
... derivedFrom Σ 0..* canonical(Requirements) Other set of Requirements this builds on

... imports Σ 0..* BackboneElement External requirements that apply here

.... reference Σ 1..1 canonical(Requirements) Source of imported statements
.... key 0..* id Statement key

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

... actor 0..* BackboneElement Actor for these requirements

.... reference 1..1 canonical(ActorDefinition) Actor referenced
.... key 0..1 id Unique label for actor (used in statements)
... statement 0..* BackboneElement Actual statement as markdown

.... key 1..1 id Key that identifies this statement
.... label T 0..1 string Short Human label for this statement
.... conformance 0..* code SHALL | SHOULD | MAY | SHOULD-NOT | SHALL-NOT
Binding: Conformance Expectation (Required)

.... conditionality 0..1 boolean Set to true if requirements statement is conditional
.... requirement T 1..1 markdown The actual requirement
.... derivedFrom 0..1 BackboneElement Another statement this is refining, tightening, or establishing more context for
..... reference 0..1 canonical(Requirements) Pointer to Requirements instance
..... key 1..1 id Key of referenced statement
.... partOf 0..1 BackboneElement Higher-level requirement or statement which this is a logical sub-requirement of
..... reference 0..1 canonical(Requirements) Pointer to Requirements instance
..... key 1..1 id Key of referenced statement
.... satisfiedBy 0..* url Design artifact that satisfies this requirement

.... reference 0..* url 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

.... actor C 0..* id Key of relevant actor
+ Rule: Statement Actors must match a defined actor


doco Documentation for this format icon

See the Extensions for this resource

 

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

Path ValueSet Type Documentation
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('^[^|# ]+$')
img req-1Rule (base)Actor Keys must be uniqueRequirements.actor.key.isDistinct()
img req-2Rule Requirements.statement.actorStatement Actors must match a defined actor$this in %resource.actor.key



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.

Name Type Description Expression In Common
actor reference An actor these requirements are for Requirements.actor.reference
context token A use context assigned to the requirements (Requirements.useContext.value.ofType(CodeableConcept)) 30 Resources
context-quantity quantity A quantity- or range-valued use context assigned to the requirements (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) 30 Resources
context-type token A type of use context assigned to the requirements Requirements.useContext.code 30 Resources
context-type-quantity composite A use context type and quantity- or range-based value assigned to the requirements On Requirements.useContext:
  context-type: code
  context-quantity: value.ofType(Quantity) | value.ofType(Range)
30 Resources
context-type-value composite A use context type and value assigned to the requirements On Requirements.useContext:
  context-type: code
  context: value.ofType(CodeableConcept)
30 Resources
date date The requirements publication date Requirements.date 31 Resources
derived-from reference The requirements these are derived from Requirements.derivedFrom
(Requirements)
description string The description of the requirements Requirements.description 29 Resources
identifier token External identifier for the requirements Requirements.identifier 35 Resources
jurisdiction token Intended jurisdiction for the requirements Requirements.jurisdiction 27 Resources
name string Computationally friendly name of the requirements Requirements.name 28 Resources
publisher string Name of the publisher of the requirements Requirements.publisher 31 Resources
status token The current status of the requirements Requirements.status 35 Resources
title string The human-friendly name of the requirements Requirements.title 28 Resources
url uri The uri that identifies the requirements Requirements.url 34 Resources
version token The business version of the requirements Requirements.version 32 Resources