View raw Markdown
type: resourceresource: Requirements

Requirements

Introduction

Scope and Usage

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:

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:

Boundaries and Relationships

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.

Background and Context

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

StructureDefinition

Elements (Simplified)

Mappings

Implementation Guide

implementationguide-Requirements-core.xml

<?xml version="1.0" encoding="UTF-8"?>

<ImplementationGuide xmlns="http://hl7.org/fhir">
  <id value="Requirements-core"/>
  <version value="0.01"/>
  <name value="RequirementsProfilesAndExtensions"/>
  <title value="Requirements  Profiles and  Extensions"/>
  <status value="draft"/>
  <date value="2022-01-11T10:00:00+10:00"/>
  <publisher value="HL7"/>
  <description value="Defines profiles used with or related to the Requirements resource"/>
</ImplementationGuide>

Resource Packs

list-Requirements-packs.xml

<?xml version="1.0" encoding="UTF-8"?>

<List xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../publish/List.xsd">
  <id value="Requirements-packs"/>
  <status value="current"/>
  <mode value="working"/>
  <entry>
    <item>
      <reference value="ImplementationGuide/Requirements-core"/>
    </item>
  </entry>
</List>

Search Parameters

Full Search Parameters

Examples

Full Examples

Mapping Exceptions

requirements-definition-mapping-exceptions.xml

Divergent Elements

The determination of when to create a new version of a resource (same url, new version) vs. defining a new artifact is up to the author. Considerations for making this decision are found in Technical and Business Versions.

In some cases, the resource can no longer be found at the stated url, but the url itself cannot change. Implementations can use the meta.source element to indicate where the current master source of the resource can be found. | resource=Can be a urn:uuid: or a urn:oid: but real http: addresses are preferred. Multiple instances may share the same URL if they have a distinct version.

The determination of when to create a new version of a resource (same url, new version) vs. defining a new artifact is up to the author. Considerations for making this decision are found in Technical and Business Versions.

In some cases, the resource can no longer be found at the stated url, but the url itself cannot change. Implementations can use the meta.source element to indicate where the current master source of the resource can be found.

Unknown does not represent 'other' - one of the defined statuses must apply. Unknown is used when the authoring system is not sure what the current status is. | resource=Allows filtering of Requirements that are appropriate for use versus not.

See guidance around (not) making local changes to elements here.

See guidance around (not) making local changes to elements here.

DEPRECATION NOTE: For consistency, implementations are encouraged to migrate to using the new 'jurisdiction' code in the useContext element. (I.e. useContext.code indicating http://terminology.hl7.org/CodeSystem/usage-context-type#jurisdiction and useContext.valueCodeableConcept indicating the jurisdiction.). | resource=It may be possible for the Requirements to be used in jurisdictions other than those for which it was originally designed or intended

DEPRECATION NOTE: For consistency, implementations are encouraged to migrate to using the new 'jurisdiction' code in the useContext element. (I.e. useContext.code indicating http://terminology.hl7.org/CodeSystem/usage-context-type#jurisdiction and useContext.valueCodeableConcept indicating the jurisdiction.).

Unmapped Elements

requirements-fivews-mapping-exceptions.xml

Unmapped Elements