FHIR Release 3 (STU) Current Build

2.27.0 2.25.0 MetaData Types

FHIR Infrastructure Work Group Maturity Level : 4 Ballot Standards Status : Trial Use Partially Normative

The FHIR specification defines This page describes a set of data types that are used for the resource elements. There are four categories of data types: simple / primitive types, which are single elements with a primitive value General purpose complex types, which are re-usable clusters of elements Complex data types for conveying metadata Special purpose data types: Reference , Narrative , Extension , Meta about knowledge resources (mainly for Terminology , Conformance and Dosage Clinical Definition This page describes the metadata types. resources).

Table of Contents

ContactDetail Contributor DataRequirement ParameterDefinition
RelatedArtifact TriggerDefinition Expression UsageContext

For an index of all data types, see the Data types page .

Normative Note: This DataType is normative content. Breaking changes will no longer be made.

See also Examples , Detailed Descriptions and Mappings .

The ContactDetail structure defines general contact details.

Structure

Name Flags Card. Type Description & Constraints doco
. . ContactDetail Σ N Element Contact information
Elements defined in Ancestors: id , extension
. . . name Σ 0..1 string Name of an individual to contact
. . . telecom Σ 0..* ContactPoint Contact details for individual or organization

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <name value="[string]"/><!-- 0..1 Name of an individual to contact -->
 <telecom><!-- 0..* ContactPoint Contact details for individual or organization --></telecom>
</[name]>

JSON Template



Turtle Template


@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:ContactDetail.name [ string ]; # 0..1 Name of an individual to contact
  fhir:ContactDetail.telecom [ ContactPoint ], ... ; # 0..* Contact details for individual or organization
]

Changes since DSTU2 Release 3


ContactDetail
  • No Changes

This complex-type did not exist in Release 2 See the Full Difference for further information

Structure

Name Flags Card. Type Description & Constraints doco
. . ContactDetail Σ N Element Contact information
Elements defined in Ancestors: id , extension
. . . name Σ 0..1 string Name of an individual to contact
. . . telecom Σ 0..* ContactPoint Contact details for individual or organization

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <name value="[string]"/><!-- 0..1 Name of an individual to contact -->
 <telecom><!-- 0..* ContactPoint Contact details for individual or organization --></telecom>
</[name]>

JSON Template

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:ContactDetail.name [ string ]; # 0..1 Name of an individual to contact
  fhir:ContactDetail.telecom [ ContactPoint ], ... ; # 0..* Contact details for individual or organization
]

Changes since DSTU2 Release 3

ContactDetail
  • No Changes

This complex-type did not exist in Release 2 See the Full Difference for further information

Constraints

ContactDetail is used in the following places: Contributor , ActivityDefinition , CapabilityStatement , ChargeItemDefinition , CodeSystem , CompartmentDefinition , ConceptMap , DataElement EffectEvidenceSynthesis , ExpansionProfile EventDefinition , Evidence , EvidenceVariable , ExampleScenario , GraphDefinition , ImplementationGuide , Library , Measure , MessageDefinition , NamingSystem , OperationDefinition , PlanDefinition , Questionnaire , ResearchDefinition , ResearchElementDefinition , ResearchStudy , RiskEvidenceSynthesis , SearchParameter , ServiceDefinition , StructureDefinition , StructureMap , TerminologyCapabilities , TestScript and ValueSet

 

Normative Candidate Note: This DataType (and the rest on this page) is not normative - it is still undergoing Trial Use while more experience is gathered.

See also Examples , Detailed Descriptions and Mappings .

Structure

Name Flags Card. Type Description & Constraints doco
. . Contributor Σ TU Element Contributor information
Elements defined in Ancestors: id , extension
. . . type Σ 1..1 code author | editor | reviewer | endorser
ContributorType ( Required )
. . . name Σ 1..1 string Who contributed the content
. . . contact Σ 0..* ContactDetail Contact details of the contributor

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <type value="[code]"/><!-- 1..1 author | editor | reviewer | endorser -->
 <name value="[string]"/><!-- 1..1 Who contributed the content -->
 <contact><!-- 0..* ContactDetail Contact details of the contributor --></contact>
</[name]>

JSON Template



Turtle Template


@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:Contributor.type [ code ]; # 1..1 author | editor | reviewer | endorser
  fhir:Contributor.name [ string ]; # 1..1 Who contributed the content
  fhir:Contributor.contact [ ContactDetail ], ... ; # 0..* Contact details of the contributor
]

Changes since DSTU2 Release 3


Contributor
Contributor.type
  • Change value set from http://hl7.org/fhir/ValueSet/contributor-type to http://hl7.org/fhir/ValueSet/contributor-type|4.0.0

This complex-type did not exist in Release 2 See the Full Difference for further information

Structure

Name Flags Card. Type Description & Constraints doco
. . Contributor Σ TU Element Contributor information
Elements defined in Ancestors: id , extension
. . . type Σ 1..1 code author | editor | reviewer | endorser
ContributorType ( Required )
. . . name Σ 1..1 string Who contributed the content
. . . contact Σ 0..* ContactDetail Contact details of the contributor

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <type value="[code]"/><!-- 1..1 author | editor | reviewer | endorser -->
 <name value="[string]"/><!-- 1..1 Who contributed the content -->
 <contact><!-- 0..* ContactDetail Contact details of the contributor --></contact>
</[name]>

JSON Template

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:Contributor.type [ code ]; # 1..1 author | editor | reviewer | endorser
  fhir:Contributor.name [ string ]; # 1..1 Who contributed the content
  fhir:Contributor.contact [ ContactDetail ], ... ; # 0..* Contact details of the contributor
]

Changes since DSTU2 Release 3

Contributor
Contributor.type
  • Change value set from http://hl7.org/fhir/ValueSet/contributor-type to http://hl7.org/fhir/ValueSet/contributor-type|4.0.0

This complex-type did not exist in Release 2 See the Full Difference for further information

Constraints

Terminology Bindings

Path Definition Type Reference
Contributor.type The type of contributor. Required ContributorType

Contributor is used in the following places: ActivityDefinition , Library , Measure , PlanDefinition and ServiceDefinition (not used as yet)

 

See also Examples , Detailed Descriptions and Mappings .

The DataRequirement structure defines a general data requirement for a knowledge asset such as a decision support rule or quality measure.

Structure

Name Flags Card. Type Description & Constraints doco
. . DataRequirement Σ TU Element Describes a required data item
Elements defined in Ancestors: id , extension
. . . type Σ 1..1 code The type of the required data
FHIRAllTypes ( Required )
. . . profile Σ 0..* uri canonical ( StructureDefinition ) The profile of the required data
. . . subject[x] Σ 0..1 E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
Subject type ( Extensible )
.... subjectCodeableConcept CodeableConcept
.... subjectReference Reference ( Group )
. . . mustSupport Σ 0..* string Indicates that specific structure elements that are referenced by the knowledge module
. . . codeFilter Σ I 0..* Element What codes are expected
+ Rule: Either a path or a searchParam must be provided, but not both
. . . . path Σ 1..1 0..1 string The A code-valued attribute of the to filter on
. . . valueSet[x] . searchParam Σ 0..1 Valueset for the filter valueSetString string A coded (token) parameter to search on
. . . . valueSetReference valueSet Σ 0..1 Reference canonical ( ValueSet ) Valueset for the filter
. . valueCode . . code Σ 0..* code Coding What code is expected
. . valueCoding . dateFilter Σ I 0..* Coding Element What Coding is dates/date ranges are expected
valueCodeableConcept Σ + Rule: Either a path or a searchParam must be provided, but not both 0..* CodeableConcept What CodeableConcept is expected
. . dateFilter . . path Σ 0..* 0..1 Element string What dates/date ranges are expected A date-valued attribute to filter on
. . . . path searchParam Σ 1..1 0..1 string The date-valued attribute of the filter A date valued parameter to search on
. . . . value[x] Σ 0..1 The value of the filter, as a Period, DateTime, or Duration value
. . . . . valueDateTime dateTime
. . . . . valuePeriod Period
. . . . . valueDuration Duration
. . . limit Σ 0..1 positiveInt Number of results
... sort Σ 0..* Element Order of the results
.... path Σ 1..1 string The name of the attribute to perform the sort
.... direction Σ 1..1 code ascending | descending
SortDirection ( Required )

doco Documentation for this format

UML Diagram ( Legend )

Element Extensions - as described for all elements: additional information that is not part of the basic definition of the resource / type extension : Extension 0..* DataRequirement The type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profile type : code [1..1] « Either an abstract type, a resource or a data type. A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types. (Strength=Required) FHIRAllTypes ! » The profile of the required data, specified as the uri of the profile definition profile : uri canonical [0..*] « StructureDefinition » The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed subject[x] : Type [0..1] « CodeableConcept | Reference ( Group ); The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.). (Strength=Extensible) SubjectType + » Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are available. Note that the The value for this element can of mustSupport SHALL be a path to allow references to nested elements. In that case, all FHIRPath resolveable on the elements along type of the DataRequirement. The path must be supported SHALL consist only of identifiers, constant indexers, and .resolve() (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details) mustSupport : string [0..*] Specifies a maximum number of results that are required (uses the _count search parameter) limit : positiveInt [0..1] CodeFilter The code-valued attribute of the filter. The specified path must SHALL be resolvable from a FHIRPath resolveable on the specified type of the required data. DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept path : string [1..1] [0..1] A token parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type code, Coding, or CodeableConcept searchParam : string [0..1] The valueset for the code filter. The valueSet and value code elements are exclusive. additive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset valueSet[x] valueSet : Type canonical [0..1] string | Reference ( « ValueSet ) » The codes for the code filter. Only one of valueSet, valueCode, valueCoding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codes valueCode : code [0..*] The Codings for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. codes. If values codes are given, the filter will return only those data items for which the code-valued attribute specified by the path has in addition to a value that is one of the specified Codings valueCoding : Coding [0..*] The CodeableConcepts for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. If values are given, set, the filter will return only those data returns items for which the code-valued attribute specified by the path has matching a code in the value that is set or one of the specified CodeableConcepts codes valueCodeableConcept code : CodeableConcept Coding [0..*] DateFilter The date-valued attribute of the filter. The specified path must SHALL be resolvable from a FHIRPath resolveable on the specified type of the required data. DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type date, dateTime, Period, Schedule, or Timing path : string [1..1] [0..1] A date parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type date, dateTime, Period, Schedule, or Timing searchParam : string [0..1] The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration from before now value[x] : Type [0..1] « dateTime | Period | Duration » Sort The attribute of the sort. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant path : string [1..1] The direction of the sort, ascending or descending direction : code [1..1] « The possible sort directions, ascending or descending. (Strength=Required) SortDirection ! » Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed codeFilter [0..*] Date filters specify additional constraints on the data in terms of the applicable date range for specific elements elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed dateFilter [0..*] Specifies the order of the results to be returned sort [0..*]

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <type value="[code]"/><!-- 1..1 The type of the required data -->
 <
 <
 <
  <
  <</valueSet[x]>
  <
  <</valueCoding>
  <</valueCodeableConcept>

 <profile><!-- 0..* canonical(StructureDefinition) The profile of the required data --></profile>
 <subject[x]><!-- 0..1 CodeableConcept|Reference(Group) E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device --></subject[x]>
 <mustSupport value="[string]"/><!-- 0..* Indicates specific structure elements that are referenced by the knowledge module -->
 <codeFilter>  <!-- 0..* What codes are expected -->
  <path value="[string]"/><!-- 0..1 A code-valued attribute to filter on -->
  <searchParam value="[string]"/><!-- 0..1 A coded (token) parameter to search on -->
  <valueSet><!-- 0..1 canonical(ValueSet) Valueset for the filter --></valueSet>
  <code><!-- 0..* Coding What code is expected --></code>

 </codeFilter>
 <
  <
  <</value[x]>

 <dateFilter>  <!-- 0..* What dates/date ranges are expected -->
  <path value="[string]"/><!-- 0..1 A date-valued attribute to filter on -->
  <searchParam value="[string]"/><!-- 0..1 A date valued parameter to search on -->
  <value[x]><!-- 0..1 dateTime|Period|Duration The value of the filter, as a Period, DateTime, or Duration value --></value[x]>

 </dateFilter>
 <limit value="[positiveInt]"/><!-- 0..1 Number of results -->
 <sort>  <!-- 0..* Order of the results -->
  <path value="[string]"/><!-- 1..1 The name of the attribute to perform the sort -->
  <direction value="[code]"/><!-- 1..1 ascending | descending -->
 </sort>

</[name]>

JSON Template


{doco
  // from Element: extension
  "type" : "<code>", // R!  The type of the required data
  "
  "
  "
    "
    
    ">",
    " },
    "
    "
    "

  "profile" : [{ canonical(StructureDefinition) }], // The profile of the required data
  // subject[x]: E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device. One of these 2:
  "subjectCodeableConcept" : { CodeableConcept },
  "subjectReference" : { Reference(Group) },
  "mustSupport" : ["<string>"], // Indicates specific structure elements that are referenced by the knowledge module
  "codeFilter" : [{ // What codes are expected
    "path" : "<string>", // A code-valued attribute to filter on
    "searchParam" : "<string>", // A coded (token) parameter to search on
    "valueSet" : { canonical(ValueSet) }, // Valueset for the filter
    "code" : [{ Coding }] // What code is expected

  }],
  "
    "

  "dateFilter" : [{ // What dates/date ranges are expected
    "path" : "<string>", // A date-valued attribute to filter on
    "searchParam" : "<string>", // A date valued parameter to search on

    // value[x]: The value of the filter, as a Period, DateTime, or Duration value. One of these 3:
    ">"
    " }
    " }

    "valueDateTime" : "<dateTime>"
    "valuePeriod" : { Period }
    "valueDuration" : { Duration }
  }],
  "limit" : "<positiveInt>", // Number of results
  "sort" : [{ // Order of the results
    "path" : "<string>", // R!  The name of the attribute to perform the sort
    "direction" : "<code>" // R!  ascending | descending

  }]
}

Turtle Template


@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:DataRequirement.type [ code ]; # 1..1 The type of the required data
  fhir:
  fhir:
  fhir:
    fhir:
    # . One of these 2
      fhir: ]
      fhir:) ]
    fhir:
    fhir:
    fhir:

  fhir:DataRequirement.profile [ canonical(StructureDefinition) ], ... ; # 0..* The profile of the required data
  # DataRequirement.subject[x] : 0..1 E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device. One of these 2
    fhir:DataRequirement.subjectCodeableConcept [ CodeableConcept ]
    fhir:DataRequirement.subjectReference [ Reference(Group) ]
  fhir:DataRequirement.mustSupport [ string ], ... ; # 0..* Indicates specific structure elements that are referenced by the knowledge module
  fhir:DataRequirement.codeFilter [ # 0..* What codes are expected
    fhir:DataRequirement.codeFilter.path [ string ]; # 0..1 A code-valued attribute to filter on
    fhir:DataRequirement.codeFilter.searchParam [ string ]; # 0..1 A coded (token) parameter to search on
    fhir:DataRequirement.codeFilter.valueSet [ canonical(ValueSet) ]; # 0..1 Valueset for the filter
    fhir:DataRequirement.codeFilter.code [ Coding ], ... ; # 0..* What code is expected

  ], ...;
  fhir:
    fhir:
    # . One of these 3
      fhir: ]
      fhir: ]
      fhir: ]

  fhir:DataRequirement.dateFilter [ # 0..* What dates/date ranges are expected
    fhir:DataRequirement.dateFilter.path [ string ]; # 0..1 A date-valued attribute to filter on
    fhir:DataRequirement.dateFilter.searchParam [ string ]; # 0..1 A date valued parameter to search on
    # DataRequirement.dateFilter.value[x] : 0..1 The value of the filter, as a Period, DateTime, or Duration value. One of these 3
      fhir:DataRequirement.dateFilter.valueDateTime [ dateTime ]
      fhir:DataRequirement.dateFilter.valuePeriod [ Period ]
      fhir:DataRequirement.dateFilter.valueDuration [ Duration ]
  ], ...;
  fhir:DataRequirement.limit [ positiveInt ]; # 0..1 Number of results
  fhir:DataRequirement.sort [ # 0..* Order of the results
    fhir:DataRequirement.sort.path [ string ]; # 1..1 The name of the attribute to perform the sort
    fhir:DataRequirement.sort.direction [ code ]; # 1..1 ascending | descending

  ], ...;
]

Changes since DSTU2 Release 3


DataRequirement
DataRequirement.type
  • Change value set from http://hl7.org/fhir/ValueSet/all-types to http://hl7.org/fhir/ValueSet/all-types|4.0.0
DataRequirement.profile
  • Type changed from uri to canonical(StructureDefinition)
DataRequirement.subject[x]
  • Added Element
DataRequirement.codeFilter.path
  • Min Cardinality changed from 1 to 0
DataRequirement.codeFilter.searchParam
  • Added Element
DataRequirement.codeFilter.valueSet
  • Renamed from valueSet[x] to valueSet
  • Add Type canonical(ValueSet)
  • Remove Types string, Reference(ValueSet)
DataRequirement.codeFilter.code
  • Added Element
DataRequirement.dateFilter.path
  • Min Cardinality changed from 1 to 0
DataRequirement.dateFilter.searchParam
  • Added Element
DataRequirement.limit
  • Added Element
DataRequirement.sort
  • Added Element
DataRequirement.sort.path
  • Added Mandatory Element
DataRequirement.sort.direction
  • Added Mandatory Element
DataRequirement.codeFilter.valueCode
  • deleted
DataRequirement.codeFilter.valueCoding
  • deleted
DataRequirement.codeFilter.valueCodeableConcept
  • deleted

This complex-type did not exist in Release 2 See the Full Difference for further information

Structure

Name Flags Card. Type Description & Constraints doco
. . DataRequirement Σ TU Element Describes a required data item
Elements defined in Ancestors: id , extension
. . . type Σ 1..1 code The type of the required data
FHIRAllTypes ( Required )
. . . profile Σ 0..* uri canonical ( StructureDefinition ) The profile of the required data
. . . subject[x] Σ 0..1 E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
Subject type ( Extensible )
.... subjectCodeableConcept CodeableConcept
.... subjectReference Reference ( Group )
. . . mustSupport Σ 0..* string Indicates that specific structure elements that are referenced by the knowledge module
. . . codeFilter Σ I 0..* Element What codes are expected
+ Rule: Either a path or a searchParam must be provided, but not both
. . . . path Σ 1..1 0..1 string The A code-valued attribute of the to filter on
. . . valueSet[x] . searchParam Σ 0..1 Valueset for the filter valueSetString string A coded (token) parameter to search on
. . . . valueSetReference valueSet Σ 0..1 Reference canonical ( ValueSet ) Valueset for the filter
. . valueCode . . code Σ 0..* code Coding What code is expected
. . valueCoding . dateFilter Σ I 0..* Coding Element What Coding is dates/date ranges are expected
valueCodeableConcept Σ + Rule: Either a path or a searchParam must be provided, but not both 0..* CodeableConcept What CodeableConcept is expected
. . dateFilter . . path Σ 0..* 0..1 Element string What dates/date ranges are expected A date-valued attribute to filter on
. . . . path searchParam Σ 1..1 0..1 string The date-valued attribute of the filter A date valued parameter to search on
. . . . value[x] Σ 0..1 The value of the filter, as a Period, DateTime, or Duration value
. . . . . valueDateTime dateTime
. . . . . valuePeriod Period
. . . . . valueDuration Duration
. . . limit Σ 0..1 positiveInt Number of results
... sort Σ 0..* Element Order of the results
.... path Σ 1..1 string The name of the attribute to perform the sort
.... direction Σ 1..1 code ascending | descending
SortDirection ( Required )

doco Documentation for this format

UML Diagram ( Legend )

Element Extensions - as described for all elements: additional information that is not part of the basic definition of the resource / type extension : Extension 0..* DataRequirement The type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profile type : code [1..1] « Either an abstract type, a resource or a data type. A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types. (Strength=Required) FHIRAllTypes ! » The profile of the required data, specified as the uri of the profile definition profile : uri canonical [0..*] « StructureDefinition » The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumed subject[x] : Type [0..1] « CodeableConcept | Reference ( Group ); The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.). (Strength=Extensible) SubjectType + » Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are available. Note that the The value for this element can of mustSupport SHALL be a path to allow references to nested elements. In that case, all FHIRPath resolveable on the elements along type of the DataRequirement. The path must be supported SHALL consist only of identifiers, constant indexers, and .resolve() (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details) mustSupport : string [0..*] Specifies a maximum number of results that are required (uses the _count search parameter) limit : positiveInt [0..1] CodeFilter The code-valued attribute of the filter. The specified path must SHALL be resolvable from a FHIRPath resolveable on the specified type of the required data. DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept path : string [1..1] [0..1] A token parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type code, Coding, or CodeableConcept searchParam : string [0..1] The valueset for the code filter. The valueSet and value code elements are exclusive. additive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset valueSet[x] valueSet : Type canonical [0..1] string | Reference ( « ValueSet ) » The codes for the code filter. Only one of valueSet, valueCode, valueCoding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codes valueCode : code [0..*] The Codings for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. codes. If values codes are given, the filter will return only those data items for which the code-valued attribute specified by the path has in addition to a value that is one of the specified Codings valueCoding : Coding [0..*] The CodeableConcepts for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. If values are given, set, the filter will return only those data returns items for which the code-valued attribute specified by the path has matching a code in the value that is set or one of the specified CodeableConcepts codes valueCodeableConcept code : CodeableConcept Coding [0..*] DateFilter The date-valued attribute of the filter. The specified path must SHALL be resolvable from a FHIRPath resolveable on the specified type of the required data. DataRequirement, and SHALL consist only of identifiers, constant indexers, and .resolve(). The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details). Note that the index must be an integer constant. The path must resolve to an element of type date, dateTime, Period, Schedule, or Timing path : string [1..1] [0..1] A date parameter that refers to a search parameter defined on the specified type of the DataRequirement, and which searches on elements of type date, dateTime, Period, Schedule, or Timing searchParam : string [0..1] The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration from before now value[x] : Type [0..1] « dateTime | Period | Duration » Sort The attribute of the sort. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant path : string [1..1] The direction of the sort, ascending or descending direction : code [1..1] « The possible sort directions, ascending or descending. (Strength=Required) SortDirection ! » Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'ed codeFilter [0..*] Date filters specify additional constraints on the data in terms of the applicable date range for specific elements elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'ed dateFilter [0..*] Specifies the order of the results to be returned sort [0..*]

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <type value="[code]"/><!-- 1..1 The type of the required data -->
 <
 <
 <
  <
  <</valueSet[x]>
  <
  <</valueCoding>
  <</valueCodeableConcept>

 <profile><!-- 0..* canonical(StructureDefinition) The profile of the required data --></profile>
 <subject[x]><!-- 0..1 CodeableConcept|Reference(Group) E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device --></subject[x]>
 <mustSupport value="[string]"/><!-- 0..* Indicates specific structure elements that are referenced by the knowledge module -->
 <codeFilter>  <!-- 0..* What codes are expected -->
  <path value="[string]"/><!-- 0..1 A code-valued attribute to filter on -->
  <searchParam value="[string]"/><!-- 0..1 A coded (token) parameter to search on -->
  <valueSet><!-- 0..1 canonical(ValueSet) Valueset for the filter --></valueSet>
  <code><!-- 0..* Coding What code is expected --></code>

 </codeFilter>
 <
  <
  <</value[x]>

 <dateFilter>  <!-- 0..* What dates/date ranges are expected -->
  <path value="[string]"/><!-- 0..1 A date-valued attribute to filter on -->
  <searchParam value="[string]"/><!-- 0..1 A date valued parameter to search on -->
  <value[x]><!-- 0..1 dateTime|Period|Duration The value of the filter, as a Period, DateTime, or Duration value --></value[x]>

 </dateFilter>
 <limit value="[positiveInt]"/><!-- 0..1 Number of results -->
 <sort>  <!-- 0..* Order of the results -->
  <path value="[string]"/><!-- 1..1 The name of the attribute to perform the sort -->
  <direction value="[code]"/><!-- 1..1 ascending | descending -->
 </sort>

</[name]>

JSON Template

{doco
  // from Element: extension
  "type" : "<code>", // R!  The type of the required data
  "
  "
  "
    "
    
    ">",
    " },
    "
    "
    "

  "profile" : [{ canonical(StructureDefinition) }], // The profile of the required data
  // subject[x]: E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device. One of these 2:
  "subjectCodeableConcept" : { CodeableConcept },
  "subjectReference" : { Reference(Group) },
  "mustSupport" : ["<string>"], // Indicates specific structure elements that are referenced by the knowledge module
  "codeFilter" : [{ // What codes are expected
    "path" : "<string>", // A code-valued attribute to filter on
    "searchParam" : "<string>", // A coded (token) parameter to search on
    "valueSet" : { canonical(ValueSet) }, // Valueset for the filter
    "code" : [{ Coding }] // What code is expected

  }],
  "
    "

  "dateFilter" : [{ // What dates/date ranges are expected
    "path" : "<string>", // A date-valued attribute to filter on
    "searchParam" : "<string>", // A date valued parameter to search on

    // value[x]: The value of the filter, as a Period, DateTime, or Duration value. One of these 3:
    ">"
    " }
    " }

    "valueDateTime" : "<dateTime>"
    "valuePeriod" : { Period }
    "valueDuration" : { Duration }
  }],
  "limit" : "<positiveInt>", // Number of results
  "sort" : [{ // Order of the results
    "path" : "<string>", // R!  The name of the attribute to perform the sort
    "direction" : "<code>" // R!  ascending | descending

  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:DataRequirement.type [ code ]; # 1..1 The type of the required data
  fhir:
  fhir:
  fhir:
    fhir:
    # . One of these 2
      fhir: ]
      fhir:) ]
    fhir:
    fhir:
    fhir:

  fhir:DataRequirement.profile [ canonical(StructureDefinition) ], ... ; # 0..* The profile of the required data
  # DataRequirement.subject[x] : 0..1 E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device. One of these 2
    fhir:DataRequirement.subjectCodeableConcept [ CodeableConcept ]
    fhir:DataRequirement.subjectReference [ Reference(Group) ]
  fhir:DataRequirement.mustSupport [ string ], ... ; # 0..* Indicates specific structure elements that are referenced by the knowledge module
  fhir:DataRequirement.codeFilter [ # 0..* What codes are expected
    fhir:DataRequirement.codeFilter.path [ string ]; # 0..1 A code-valued attribute to filter on
    fhir:DataRequirement.codeFilter.searchParam [ string ]; # 0..1 A coded (token) parameter to search on
    fhir:DataRequirement.codeFilter.valueSet [ canonical(ValueSet) ]; # 0..1 Valueset for the filter
    fhir:DataRequirement.codeFilter.code [ Coding ], ... ; # 0..* What code is expected

  ], ...;
  fhir:
    fhir:
    # . One of these 3
      fhir: ]
      fhir: ]
      fhir: ]

  fhir:DataRequirement.dateFilter [ # 0..* What dates/date ranges are expected
    fhir:DataRequirement.dateFilter.path [ string ]; # 0..1 A date-valued attribute to filter on
    fhir:DataRequirement.dateFilter.searchParam [ string ]; # 0..1 A date valued parameter to search on
    # DataRequirement.dateFilter.value[x] : 0..1 The value of the filter, as a Period, DateTime, or Duration value. One of these 3
      fhir:DataRequirement.dateFilter.valueDateTime [ dateTime ]
      fhir:DataRequirement.dateFilter.valuePeriod [ Period ]
      fhir:DataRequirement.dateFilter.valueDuration [ Duration ]
  ], ...;
  fhir:DataRequirement.limit [ positiveInt ]; # 0..1 Number of results
  fhir:DataRequirement.sort [ # 0..* Order of the results
    fhir:DataRequirement.sort.path [ string ]; # 1..1 The name of the attribute to perform the sort
    fhir:DataRequirement.sort.direction [ code ]; # 1..1 ascending | descending

  ], ...;
]

Changes since DSTU2 Release 3

DataRequirement
DataRequirement.type
  • Change value set from http://hl7.org/fhir/ValueSet/all-types to http://hl7.org/fhir/ValueSet/all-types|4.0.0
DataRequirement.profile
  • Type changed from uri to canonical(StructureDefinition)
DataRequirement.subject[x]
  • Added Element
DataRequirement.codeFilter.path
  • Min Cardinality changed from 1 to 0
DataRequirement.codeFilter.searchParam
  • Added Element
DataRequirement.codeFilter.valueSet
  • Renamed from valueSet[x] to valueSet
  • Add Type canonical(ValueSet)
  • Remove Types string, Reference(ValueSet)
DataRequirement.codeFilter.code
  • Added Element
DataRequirement.dateFilter.path
  • Min Cardinality changed from 1 to 0
DataRequirement.dateFilter.searchParam
  • Added Element
DataRequirement.limit
  • Added Element
DataRequirement.sort
  • Added Element
DataRequirement.sort.path
  • Added Mandatory Element
DataRequirement.sort.direction
  • Added Mandatory Element
DataRequirement.codeFilter.valueCode
  • deleted
DataRequirement.codeFilter.valueCoding
  • deleted
DataRequirement.codeFilter.valueCodeableConcept
  • deleted

This complex-type did not exist in Release 2 See the Full Difference for further information

Constraints

id Level Location Description Expression
drq-1 Rule DataRequirement.codeFilter Either a path or a searchParam must be provided, but not both path.exists() xor searchParam.exists()
drq-2 Rule DataRequirement.dateFilter Either a path or a searchParam must be provided, but not both path.exists() xor searchParam.exists()

Terminology Bindings

Path Definition Type Reference
DataRequirement.type A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types. Required All Types
DataRequirement.subject[x] The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.). Extensible SubjectType
DataRequirement.sort.direction The possible sort directions, ascending or descending. Required SortDirection

A DataRequirement differs from a parameter in that it specifies the data to be provided in terms of the type of data, and specific filters on code-valued and/or date-valued attributes. Data requirements are not named because they are referenced by type within the evaluation context.

Data requirements DataRequirements are used by knowledge modules to communicate the set of required data to a consumer in a way that is computable (as opposed to a set of named parameters which must be integrated by hand based on the meaning of the parameter as communicated through the documentation).

DataRequirements are typically used to communicate patient-dependent information such as MedicationStatements and Encounters, whereas Parameters are typically used to communicate patient-independent information such as configuration values.

For example, consider the following CQL expression:

define "Total Colectomy Procedures":
  [Procedure: "Total Colectomy Value Set"] P
    where P.performedPeriod during "Measurement Period"

The criteria is looking for procedures matching the "Total Colectomy Value Set" that were performed during the "Measurement Period". In this case, "Measurement Period" is a parameter, referenced by name, whereas the reference to Procedure uses the name of the resource type, and so constitutes a data requirement of the criteria:

<dataRequirement>
	<type value="Procedure"/>
	<codeFilter>
		<path value="code"/>
		<valueSetString value="Total Colectomy Value Set"/>
	</codeFilter>
	<dateFilter>
		<path value="performedPeriod"/>
		<valuePeriod>
			<start value="2016-01-01"/>
			<end value="2016-12-31"/>
		</valuePeriod>
	</dateFilter>
</dataRequirement>

If a resource type has multiple date attributes, then it may be necessary to include multiple date criteria. For instance, in the example above the Procedure resource is using the performedPeriod date attribute. However, the Procedure resource also provides a performedDateTime (specific date and/or time when procedure was performed) attribute. Therefore, if the date criteria for the Procedure in the example was recorded using the performedDateTime attribute, the date criteria would be incomplete. To account for this additional date attribute, the example could be expanded as follows:

define "Total Colectomy Procedures":
  [Procedure: "Total Colectomy Value Set"] P
    where exists (P.performedPeriod during "Measurement Period")
	  or exists (P.performedDateTime during "Measurement Period")

The data requirement for the expanded criteria:

<dataRequirement>
	<type value="Procedure"/>
	<codeFilter>
		<path value="code"/>
		<valueSetString value="Total Colectomy Value Set"/>
	</codeFilter>
	<dateFilter>
		<path value="performedPeriod"/>
		<path value="performedDateTime"/>
	</dateFilter>
</dataRequirement>

DataRequirement is used in the following places: TriggerDefinition , EvidenceVariable , GuidanceResponse , Library , PlanDefinition and ServiceDefinition ResearchElementDefinition

 

See also Examples , Detailed Descriptions and Mappings .

The ParameterDefinition structure defines a parameter to a knowledge asset such as a decision support rule or quality measure.

Parameters are typically used to communicate patient-independent information such as configuration values, whereas DataRequirements are typically used to communicate patient-dependent information such as MedicationStatements and Encounters.

Structure

Name Flags Card. Type Description & Constraints doco
. . ParameterDefinition Σ TU Element Definition of a parameter to a module
Elements defined in Ancestors: id , extension
. . . name Σ 0..1 code Name used to access the parameter value
. . . use Σ 1..1 code in | out
OperationParameterUse ( Required )
. . . min Σ 0..1 integer Minimum cardinality
. . . max Σ 0..1 string Maximum cardinality (a number of *)
. . . documentation Σ 0..1 string A brief description of the parameter
. . . type Σ 1..1 code What type of value
FHIRAllTypes ( Required )
. . . profile Σ 0..1 Reference canonical ( StructureDefinition ) What profile the value is expected to be

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <name value="[code]"/><!-- 0..1 Name used to access the parameter value -->
 <use value="[code]"/><!-- 1..1 in | out -->
 <min value="[integer]"/><!-- 0..1 Minimum cardinality -->
 <max value="[string]"/><!-- 0..1 Maximum cardinality (a number of *) -->
 <documentation value="[string]"/><!-- 0..1 A brief description of the parameter -->
 <type value="[code]"/><!-- 1..1 What type of value -->
 <</profile>

 <profile><!-- 0..1 canonical(StructureDefinition) What profile the value is expected to be --></profile>

</[name]>

Turtle Template


@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:ParameterDefinition.name [ code ]; # 0..1 Name used to access the parameter value
  fhir:ParameterDefinition.use [ code ]; # 1..1 in | out
  fhir:ParameterDefinition.min [ integer ]; # 0..1 Minimum cardinality
  fhir:ParameterDefinition.max [ string ]; # 0..1 Maximum cardinality (a number of *)
  fhir:ParameterDefinition.documentation [ string ]; # 0..1 A brief description of the parameter
  fhir:ParameterDefinition.type [ code ]; # 1..1 What type of value
  fhir:

  fhir:ParameterDefinition.profile [ canonical(StructureDefinition) ]; # 0..1 What profile the value is expected to be

]

Changes since DSTU2 Release 3


ParameterDefinition
ParameterDefinition.use
  • Change value set from http://hl7.org/fhir/ValueSet/operation-parameter-use to http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.0
ParameterDefinition.type
  • Change value set from http://hl7.org/fhir/ValueSet/all-types to http://hl7.org/fhir/ValueSet/all-types|4.0.0
ParameterDefinition.profile
  • Type changed from Reference(StructureDefinition) to canonical(StructureDefinition)

This complex-type did not exist in Release 2 See the Full Difference for further information

Structure

Name Flags Card. Type Description & Constraints doco
. . ParameterDefinition Σ TU Element Definition of a parameter to a module
Elements defined in Ancestors: id , extension
. . . name Σ 0..1 code Name used to access the parameter value
. . . use Σ 1..1 code in | out
OperationParameterUse ( Required )
. . . min Σ 0..1 integer Minimum cardinality
. . . max Σ 0..1 string Maximum cardinality (a number of *)
. . . documentation Σ 0..1 string A brief description of the parameter
. . . type Σ 1..1 code What type of value
FHIRAllTypes ( Required )
. . . profile Σ 0..1 Reference canonical ( StructureDefinition ) What profile the value is expected to be

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <name value="[code]"/><!-- 0..1 Name used to access the parameter value -->
 <use value="[code]"/><!-- 1..1 in | out -->
 <min value="[integer]"/><!-- 0..1 Minimum cardinality -->
 <max value="[string]"/><!-- 0..1 Maximum cardinality (a number of *) -->
 <documentation value="[string]"/><!-- 0..1 A brief description of the parameter -->
 <type value="[code]"/><!-- 1..1 What type of value -->
 <</profile>

 <profile><!-- 0..1 canonical(StructureDefinition) What profile the value is expected to be --></profile>

</[name]>

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:ParameterDefinition.name [ code ]; # 0..1 Name used to access the parameter value
  fhir:ParameterDefinition.use [ code ]; # 1..1 in | out
  fhir:ParameterDefinition.min [ integer ]; # 0..1 Minimum cardinality
  fhir:ParameterDefinition.max [ string ]; # 0..1 Maximum cardinality (a number of *)
  fhir:ParameterDefinition.documentation [ string ]; # 0..1 A brief description of the parameter
  fhir:ParameterDefinition.type [ code ]; # 1..1 What type of value
  fhir:

  fhir:ParameterDefinition.profile [ canonical(StructureDefinition) ]; # 0..1 What profile the value is expected to be

]

Changes since DSTU2 Release 3

ParameterDefinition
ParameterDefinition.use
  • Change value set from http://hl7.org/fhir/ValueSet/operation-parameter-use to http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.0
ParameterDefinition.type
  • Change value set from http://hl7.org/fhir/ValueSet/all-types to http://hl7.org/fhir/ValueSet/all-types|4.0.0
ParameterDefinition.profile
  • Type changed from Reference(StructureDefinition) to canonical(StructureDefinition)

This complex-type did not exist in Release 2 See the Full Difference for further information

Constraints

Terminology Bindings

Path Definition Type Reference
ParameterDefinition.use Whether the parameter is input or output. Required OperationParameterUse
ParameterDefinition.type A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types. Required All Types

 

See also Examples , Detailed Descriptions and Mappings .

The RelatedArtifact structure defines resources related to a module such as previous and next versions of documents, documentation, citations, etc. Note that the name resource here is being used in a more general sense than the FHIR-specific Resource. The related resource may be a FHIR resource, or it may be another type of resource, represented using the Attachment data type.

Structure

Name Flags Card. Type Description & Constraints doco
. . RelatedArtifact Σ TU Element Related artifacts for a knowledge resource
Elements defined in Ancestors: id , extension
. . . type Σ 1..1 code documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of
RelatedArtifactType ( Required )
. . . display label Σ 0..1 string Short label
... display Σ 0..1 string Brief description of the related artifact
. . . citation Σ 0..1 string markdown Bibliographic citation for the artifact
. . . url Σ 0..1 uri url Where the artifact can be accessed
. . . document Σ 0..1 Attachment What document is being referenced
. . . resource Σ 0..1 Reference canonical ( Any ) What resource is being referenced

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <type value="[code]"/><!-- 1..1 documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of -->
 <label value="[string]"/><!-- 0..1 Short label -->

 <display value="[string]"/><!-- 0..1 Brief description of the related artifact -->
 <
 <

 <citation value="[markdown]"/><!-- 0..1 Bibliographic citation for the artifact -->
 <url value="[url]"/><!-- 0..1 Where the artifact can be accessed -->

 <document><!-- 0..1 Attachment What document is being referenced --></document>
 <</resource>

 <resource><!-- 0..1 canonical(Any) What resource is being referenced --></resource>

</[name]>

Turtle Template


@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:RelatedArtifact.type [ code ]; # 1..1 documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of
  fhir:RelatedArtifact.label [ string ]; # 0..1 Short label

  fhir:RelatedArtifact.display [ string ]; # 0..1 Brief description of the related artifact
  fhir:
  fhir:

  fhir:RelatedArtifact.citation [ markdown ]; # 0..1 Bibliographic citation for the artifact
  fhir:RelatedArtifact.url [ url ]; # 0..1 Where the artifact can be accessed

  fhir:RelatedArtifact.document [ Attachment ]; # 0..1 What document is being referenced
  fhir:

  fhir:RelatedArtifact.resource [ canonical(Any) ]; # 0..1 What resource is being referenced

]

Changes since DSTU2 Release 3


RelatedArtifact
RelatedArtifact.type
  • Change value set from http://hl7.org/fhir/ValueSet/related-artifact-type to http://hl7.org/fhir/ValueSet/related-artifact-type|4.0.0
RelatedArtifact.label
  • Added Element
RelatedArtifact.citation
  • Type changed from string to markdown
RelatedArtifact.url
  • Type changed from uri to url
RelatedArtifact.resource
  • Type changed from Reference(Resource) to canonical(Resource)

This complex-type did not exist in Release 2 See the Full Difference for further information

Structure

Name Flags Card. Type Description & Constraints doco
. . RelatedArtifact Σ TU Element Related artifacts for a knowledge resource
Elements defined in Ancestors: id , extension
. . . type Σ 1..1 code documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of
RelatedArtifactType ( Required )
. . . display label Σ 0..1 string Short label
... display Σ 0..1 string Brief description of the related artifact
. . . citation Σ 0..1 string markdown Bibliographic citation for the artifact
. . . url Σ 0..1 uri url Where the artifact can be accessed
. . . document Σ 0..1 Attachment What document is being referenced
. . . resource Σ 0..1 Reference canonical ( Any ) What resource is being referenced

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <type value="[code]"/><!-- 1..1 documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of -->
 <label value="[string]"/><!-- 0..1 Short label -->

 <display value="[string]"/><!-- 0..1 Brief description of the related artifact -->
 <
 <

 <citation value="[markdown]"/><!-- 0..1 Bibliographic citation for the artifact -->
 <url value="[url]"/><!-- 0..1 Where the artifact can be accessed -->

 <document><!-- 0..1 Attachment What document is being referenced --></document>
 <</resource>

 <resource><!-- 0..1 canonical(Any) What resource is being referenced --></resource>

</[name]>

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:RelatedArtifact.type [ code ]; # 1..1 documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of
  fhir:RelatedArtifact.label [ string ]; # 0..1 Short label

  fhir:RelatedArtifact.display [ string ]; # 0..1 Brief description of the related artifact
  fhir:
  fhir:

  fhir:RelatedArtifact.citation [ markdown ]; # 0..1 Bibliographic citation for the artifact
  fhir:RelatedArtifact.url [ url ]; # 0..1 Where the artifact can be accessed

  fhir:RelatedArtifact.document [ Attachment ]; # 0..1 What document is being referenced
  fhir:

  fhir:RelatedArtifact.resource [ canonical(Any) ]; # 0..1 What resource is being referenced

]

Changes since DSTU2 Release 3

RelatedArtifact
RelatedArtifact.type
  • Change value set from http://hl7.org/fhir/ValueSet/related-artifact-type to http://hl7.org/fhir/ValueSet/related-artifact-type|4.0.0
RelatedArtifact.label
  • Added Element
RelatedArtifact.citation
  • Type changed from string to markdown
RelatedArtifact.url
  • Type changed from uri to url
RelatedArtifact.resource
  • Type changed from Reference(Resource) to canonical(Resource)

This complex-type did not exist in Release 2 See the Full Difference for further information

Constraints

Terminology Bindings

Path Definition Type Reference
RelatedArtifact.type The type of relationship to the related artifact. Required RelatedArtifactType

The following examples illustrate the use of relatedArtifact elements to provide citations:

<relatedArtifact>
    <label value="1"/>
    <type value="citation"/>
    <citation value="Linder, J.A., D.W. Bates, G.M. Lee, J.A. Finkelstein. 2005. _Antibiotic treatment of children with sore throat_ JAMA 294(18):2315-2322. "/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="citation"/>
    <label value="2"/>
    <citation value="Infectious Diseases Society of America. 2012. _Clinical Practice Guideline for the Diagnosis and Management of Group A Streptococcal Pharyngitis: 2012 Update._ "/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="citation"/>
    <label value="3"/>
    <citation value="Roberts, R.R., B. Hota, I. Ahmad, et al. _Hospital and Societal Costs of Antimicrobial-Resistant Infections in a Chicago Teaching Hospital: Implications for Antibiotic Stewardship._ Clin Infect Dis. Oct 2009; 49(8):1175-84."/>
</relatedArtifact>

RelatedArtifact is used in the following places: ActivityDefinition , EffectEvidenceSynthesis , EventDefinition , Evidence , EvidenceVariable , Library , Measure , PlanDefinition , RequestGroup , ResearchDefinition , ResearchElementDefinition , ResearchStudy and ServiceDefinition RiskEvidenceSynthesis

 

See also Examples , Detailed Descriptions and Mappings .

The TriggerDefinition structure defines when a knowledge artifact is expected to be evaluated. The structure can represent three main kinds of triggering events: events, depending on the value of type :

  • Named Event
  • Scheduled Event
  • Data Event

A named event is an event identified by the implementation environment. This allows any event generated within the implementation environment to be used as a trigger, but it requires pre-coordination of the names involved with the consuming environments. HL7 v2 events are assigned the URI http://terminology.hl7.org/CodeSystem/v2-0003#[code] e.g. http://terminology.hl7.org/CodeSystem/v2-0003/A01, and reference any data change that would trigger the sending of the matching HL7 v2 version, if the application providing the FHIR API supports v2 events internally.

A scheduled event occurs on a fixed or periodic schedule.

And finally, a data event occurs in response to some data-related event in the integrated environment such as a record being added or updated. The data-of-interest for a data event is described using a DataRequirement . This allows for systems to automatically invoke based on data activity occurring within the system. A condition may also be specified to further refine the trigger

Structure

Name Flags Card. Type Description & Constraints doco
. . TriggerDefinition Σ I TU Element Defines an expected trigger for a module
+ Rule: Either timing, or a data requirement, but not both
+ Rule: A condition only if there is a data requirement
+ Rule: A named event requires a name, a periodic event requires timing, and a data event requires data
Elements defined in Ancestors: id , extension
. . . type Σ 1..1 code named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended
TriggerType ( Required )
. . . eventName name Σ 0..1 string Triggering Name or URI that identifies the event name
. . . eventTiming[x] timing[x] Σ 0..1 Timing of the event
. . . . eventTimingTiming timingTiming Timing
. . . . eventTimingReference timingReference Reference ( Schedule )
. . . . eventTimingDate timingDate date
. . . . eventTimingDateTime timingDateTime dateTime
. . . eventData data Σ 0..1 0..* DataRequirement Triggering data of the event (multiple = 'and')
... condition Σ 0..1 Expression Whether the event triggers (boolean expression)

doco Documentation for this format

XML Template

Turtle Template


@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:
  fhir:
  # . One of these 4
    fhir: ]
    fhir:) ]
    fhir: ]
    fhir: ]
  fhir:

  fhir:TriggerDefinition.type [ code ]; # 1..1 named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended
  fhir:TriggerDefinition.name [ string ]; # 0..1 Name or URI that identifies the event
  # TriggerDefinition.timing[x] : 0..1 Timing of the event. One of these 4
    fhir:TriggerDefinition.timingTiming [ Timing ]
    fhir:TriggerDefinition.timingReference [ Reference(Schedule) ]
    fhir:TriggerDefinition.timingDate [ date ]
    fhir:TriggerDefinition.timingDateTime [ dateTime ]
  fhir:TriggerDefinition.data [ DataRequirement ], ... ; # 0..* Triggering data of the event (multiple = 'and')
  fhir:TriggerDefinition.condition [ Expression ]; # 0..1 Whether the event triggers (boolean expression)

]

Changes since DSTU2 Release 3


TriggerDefinition
TriggerDefinition.type
  • Change value set from http://hl7.org/fhir/ValueSet/trigger-type to http://hl7.org/fhir/ValueSet/trigger-type|4.0.0
TriggerDefinition.name
  • Renamed from eventName to name
TriggerDefinition.timing[x]
  • Renamed from eventTiming[x] to timing[x]
TriggerDefinition.data
  • Renamed from eventData to data
  • Max Cardinality changed from 1 to *
TriggerDefinition.condition
  • Added Element

This complex-type did not exist in Release 2 See the Full Difference for further information

Structure

Name Flags Card. Type Description & Constraints doco
. . TriggerDefinition Σ I TU Element Defines an expected trigger for a module
+ Rule: Either timing, or a data requirement, but not both
+ Rule: A condition only if there is a data requirement
+ Rule: A named event requires a name, a periodic event requires timing, and a data event requires data
Elements defined in Ancestors: id , extension
. . . type Σ 1..1 code named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended
TriggerType ( Required )
. . . eventName name Σ 0..1 string Triggering Name or URI that identifies the event name
. . . eventTiming[x] timing[x] Σ 0..1 Timing of the event
. . . . eventTimingTiming timingTiming Timing
. . . . eventTimingReference timingReference Reference ( Schedule )
. . . . eventTimingDate timingDate date
. . . . eventTimingDateTime timingDateTime dateTime
. . . eventData data Σ 0..1 0..* DataRequirement Triggering data of the event (multiple = 'and')
... condition Σ 0..1 Expression Whether the event triggers (boolean expression)

doco Documentation for this format

XML Template

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:
  fhir:
  # . One of these 4
    fhir: ]
    fhir:) ]
    fhir: ]
    fhir: ]
  fhir:

  fhir:TriggerDefinition.type [ code ]; # 1..1 named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended
  fhir:TriggerDefinition.name [ string ]; # 0..1 Name or URI that identifies the event
  # TriggerDefinition.timing[x] : 0..1 Timing of the event. One of these 4
    fhir:TriggerDefinition.timingTiming [ Timing ]
    fhir:TriggerDefinition.timingReference [ Reference(Schedule) ]
    fhir:TriggerDefinition.timingDate [ date ]
    fhir:TriggerDefinition.timingDateTime [ dateTime ]
  fhir:TriggerDefinition.data [ DataRequirement ], ... ; # 0..* Triggering data of the event (multiple = 'and')
  fhir:TriggerDefinition.condition [ Expression ]; # 0..1 Whether the event triggers (boolean expression)

]

Changes since DSTU2 Release 3

TriggerDefinition
TriggerDefinition.type
  • Change value set from http://hl7.org/fhir/ValueSet/trigger-type to http://hl7.org/fhir/ValueSet/trigger-type|4.0.0
TriggerDefinition.name
  • Renamed from eventName to name
TriggerDefinition.timing[x]
  • Renamed from eventTiming[x] to timing[x]
TriggerDefinition.data
  • Renamed from eventData to data
  • Max Cardinality changed from 1 to *
TriggerDefinition.condition
  • Added Element

See the Full Difference for further information

Constraints

id Level Location Description Expression
trd-1 Rule (base) Either timing, or a data requirement, but not both data.empty() or timing.empty()
trd-2 Rule (base) A condition only if there is a data requirement condition.exists() implies data.exists()
trd-3 Rule (base) A named event requires a name, a periodic event requires timing, and a data event requires data (type = 'named-event' implies name.exists()) and (type = 'periodic' implies timing.exists()) and (type.startsWith('data-') implies data.exists())

Terminology Bindings

Path Definition Type Reference
TriggerDefinition.type The type of trigger. Required TriggerType

TriggerDefinition is used in the following places: EventDefinition , EvidenceVariable and PlanDefinition

 

See also Examples , Detailed Descriptions and Mappings .

The Expression structure defines an expression that generates a value. The expression is provided in a specifed language (by mime type)

The context of use of the expression must specify the context in which the expression is evaluated, and how the result of the expression is used.

Structure

Name Flags Card. Type Description & Constraints doco
.. Expression Σ I TU Element An expression that can be used to generate a value
+ Rule: An expression or a reference must be provided
Elements defined in Ancestors: id , extension
... description Σ 0..1 string Natural language description of the condition
... name Σ 0..1 id Short name assigned to expression for reuse
... language Σ 1..1 code text/cql | text/fhirpath | application/x-fhir-query | etc.
ExpressionLanguage ( Extensible but limited to http://www.rfc-editor.org/bcp/bcp13.txt )
... expression Σ 0..1 string Expression in specified language
... reference Σ 0..1 uri Where the expression is found

doco Documentation for this format

XML Template

<Expression xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <description value="[string]"/><!-- 0..1 Natural language description of the condition -->
 <name value="[id]"/><!-- 0..1 Short name assigned to expression for reuse -->
 <language value="[code]"/><!-- 1..1 text/cql | text/fhirpath | application/x-fhir-query | etc. -->
 <expression value="[string]"/><!-- 0..1 Expression in specified language -->
 <reference value="[uri]"/><!-- 0..1 Where the expression is found -->
</Expression>

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:Expression.description [ string ]; # 0..1 Natural language description of the condition
  fhir:Expression.name [ id ]; # 0..1 Short name assigned to expression for reuse
  fhir:Expression.language [ code ]; # 1..1 text/cql | text/fhirpath | application/x-fhir-query | etc.
  fhir:Expression.expression [ string ]; # 0..1 Expression in specified language
  fhir:Expression.reference [ uri ]; # 0..1 Where the expression is found
]

Changes since Release 3

This complex-type did not exist in Release 2

Structure

Name Flags Card. Type Description & Constraints doco
.. Expression Σ I TU Element An expression that can be used to generate a value
+ Rule: An expression or a reference must be provided
Elements defined in Ancestors: id , extension
... description Σ 0..1 string Natural language description of the condition
... name Σ 0..1 id Short name assigned to expression for reuse
... language Σ 1..1 code text/cql | text/fhirpath | application/x-fhir-query | etc.
ExpressionLanguage ( Extensible but limited to http://www.rfc-editor.org/bcp/bcp13.txt )
... expression Σ 0..1 string Expression in specified language
... reference Σ 0..1 uri Where the expression is found

doco Documentation for this format

XML Template

<Expression xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <description value="[string]"/><!-- 0..1 Natural language description of the condition -->
 <name value="[id]"/><!-- 0..1 Short name assigned to expression for reuse -->
 <language value="[code]"/><!-- 1..1 text/cql | text/fhirpath | application/x-fhir-query | etc. -->
 <expression value="[string]"/><!-- 0..1 Expression in specified language -->
 <reference value="[uri]"/><!-- 0..1 Where the expression is found -->
</Expression>

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:Expression.description [ string ]; # 0..1 Natural language description of the condition
  fhir:Expression.name [ id ]; # 0..1 Short name assigned to expression for reuse
  fhir:Expression.language [ code ]; # 1..1 text/cql | text/fhirpath | application/x-fhir-query | etc.
  fhir:Expression.expression [ string ]; # 0..1 Expression in specified language
  fhir:Expression.reference [ uri ]; # 0..1 Where the expression is found
]

Changes since Release 3

This complex-type did not exist in Release 2

Constraints

id Level Location Description Expression
exp-1 Rule (base) An expression or a reference must be provided expression.exists() or reference.exists()

Terminology Bindings

Path Definition Type Reference
Expression.language The media type of the expression language. Extensible , but limited to http://www.rfc-editor.org/bcp/bcp13.txt ExpressionLanguage

Expression is used in the following places: TriggerDefinition , ActivityDefinition , EvidenceVariable , Measure , PlanDefinition , RequestGroup and ResearchElementDefinition

 

See also Examples , Detailed Descriptions and Mappings .

The UsageContext structure defines the context of use for a module.

Structure

Name Flags Card. Type Description & Constraints doco
. . UsageContext Σ TU Element Describes the context of use for a conformance or knowledge resource
Elements defined in Ancestors: id , extension
. . . code Σ 1..1 Coding Type of context being specified
UsageContextType ( Extensible )
. . . value[x] Σ 1..1 Value that defines the context
Context of Use ValueSet ConformanceUseContext ( Example )
. . . . valueCodeableConcept CodeableConcept
. . . . valueQuantity Quantity
. . . . valueRange Range
. . . . valueReference Reference ( PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization )

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <code><!-- 1..1 Coding Type of context being specified --></code>
 <</value[x]>

 <value[x]><!-- 1..1 CodeableConcept|Quantity|Range|Reference(PlanDefinition|
   ResearchStudy|InsurancePlan|HealthcareService|Group|Location|Organization) Value that defines the context --></value[x]>
</[name]>

JSON Template


{doco
  "resourceType" : "",

  // from Element: extension
  "code" : { Coding }, // R!  Type of context being specified
  

  // value[x]: Value that defines the context. One of these 4:
  "valueCodeableConcept" : { CodeableConcept }
  "valueQuantity" : { Quantity }
  "valueRange" : { Range }
  "valueReference" : { Reference(PlanDefinition|ResearchStudy|InsurancePlan|
   HealthcareService|Group|Location|Organization) }
}

Turtle Template


@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:UsageContext.code [ Coding ]; # 1..1 Type of context being specified
  # . One of these 3

  # UsageContext.value[x] : 1..1 Value that defines the context. One of these 4

    fhir:UsageContext.valueCodeableConcept [ CodeableConcept ]
    fhir:UsageContext.valueQuantity [ Quantity ]
    fhir:UsageContext.valueRange [ Range ]
    fhir:UsageContext.valueReference [ Reference(PlanDefinition|ResearchStudy|InsurancePlan|HealthcareService|Group|Location|
  Organization) ]
]

Changes since DSTU2 Release 3


UsageContext
UsageContext.code
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/usage-context-type" to "http://terminology.hl7.org/CodeSystem/usage-context-type"
UsageContext.value[x]
  • Add Type Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)

This complex-type did not exist in Release 2 See the Full Difference for further information

Structure

Name Flags Card. Type Description & Constraints doco
. . UsageContext Σ TU Element Describes the context of use for a conformance or knowledge resource
Elements defined in Ancestors: id , extension
. . . code Σ 1..1 Coding Type of context being specified
UsageContextType ( Extensible )
. . . value[x] Σ 1..1 Value that defines the context
Context of Use ValueSet ConformanceUseContext ( Example )
. . . . valueCodeableConcept CodeableConcept
. . . . valueQuantity Quantity
. . . . valueRange Range
. . . . valueReference Reference ( PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization )

doco Documentation for this format

XML Template

<[name] xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <code><!-- 1..1 Coding Type of context being specified --></code>
 <</value[x]>

 <value[x]><!-- 1..1 CodeableConcept|Quantity|Range|Reference(PlanDefinition|
   ResearchStudy|InsurancePlan|HealthcareService|Group|Location|Organization) Value that defines the context --></value[x]>
</[name]>

JSON Template

{doco
  "resourceType" : "",

  // from Element: extension
  "code" : { Coding }, // R!  Type of context being specified
  

  // value[x]: Value that defines the context. One of these 4:
  "valueCodeableConcept" : { CodeableConcept }
  "valueQuantity" : { Quantity }
  "valueRange" : { Range }
  "valueReference" : { Reference(PlanDefinition|ResearchStudy|InsurancePlan|
   HealthcareService|Group|Location|Organization) }
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
[
 # from Element: Element.extension
  fhir:UsageContext.code [ Coding ]; # 1..1 Type of context being specified
  # . One of these 3

  # UsageContext.value[x] : 1..1 Value that defines the context. One of these 4

    fhir:UsageContext.valueCodeableConcept [ CodeableConcept ]
    fhir:UsageContext.valueQuantity [ Quantity ]
    fhir:UsageContext.valueRange [ Range ]
    fhir:UsageContext.valueReference [ Reference(PlanDefinition|ResearchStudy|InsurancePlan|HealthcareService|Group|Location|
  Organization) ]
]

Changes since DSTU2 Release 3

UsageContext
UsageContext.code
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/usage-context-type" to "http://terminology.hl7.org/CodeSystem/usage-context-type"
UsageContext.value[x]
  • Add Type Reference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)

This complex-type did not exist in Release 2 See the Full Difference for further information

Constraints

Terminology Bindings

Path Definition Type Reference
UsageContext.code A code that specifies a type of context being specified by a usage context. Extensible UsageContextType
UsageContext.value[x] A code that defines the specific value for the context being specified. Example Context of Use ValueSet

UsageContext is used in the following places: ActivityDefinition , CapabilityStatement , ChargeItemDefinition , CodeSystem , CompartmentDefinition , ConceptMap , DataElement EffectEvidenceSynthesis , ExpansionProfile EventDefinition , Evidence , EvidenceVariable , ExampleScenario , GraphDefinition , ImplementationGuide , Library , Measure , MessageDefinition , NamingSystem , OperationDefinition , PlanDefinition , Questionnaire , ResearchDefinition , ResearchElementDefinition , RiskEvidenceSynthesis , SearchParameter , ServiceDefinition , StructureDefinition , StructureMap , TerminologyCapabilities , TestScript and ValueSet