This page is part of the FHIR Specification (v3.3.0: R4 Ballot 2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3
FHIR Infrastructure Work Group | Maturity Level: 4 | Ballot Status: Normative |
Normative Candidate Note: Some of the content on this page (marked clearly) is candidate normative content for R4 in the Infrastructure Package. Once normative, it will lose it's Maturity Level, and breaking changes will no longer be made.
This page describes a set of types used for conveying metadata about knowledge resources (mainly for Terminology, Conformance and Clinical Definition resources).
Table of Contents
ContactDetail | Contributor | DataRequirement | ParameterDefinition |
RelatedArtifact | TriggerDefinition | UsageContext |
For an index of all data types, see the Data types page.
Normative Candidate Note: This DataType is candidate normative content as part of the overall resource for R4 in the Infrastructure Package. Once normative, it will lose it's Maturity Level, and 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 |
---|---|---|---|---|
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 |
Documentation for this format |
UML Diagram (Legend)
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
{ // from Element: extension "name" : "<string>", // Name of an individual to contact "telecom" : [{ ContactPoint }] // Contact details for individual or organization }
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
ContactDetail |
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 |
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
{ // from Element: extension "name" : "<string>", // Name of an individual to contact "telecom" : [{ ContactPoint }] // Contact details for individual or organization }
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 ]
Constraints
ContactDetail is used in the following places: Contributor, ActivityDefinition, CapabilityStatement, CodeSystem, CompartmentDefinition, ConceptMap, EventDefinition, ExampleScenario, ExpansionProfile, GraphDefinition, ImplementationGuide, Library, Measure, MessageDefinition, NamingSystem, OperationDefinition, PlanDefinition, Questionnaire, ResearchStudy, SearchParameter, 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 |
---|---|---|---|---|
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 |
Documentation for this format |
UML Diagram (Legend)
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
{ // from Element: extension "type" : "<code>", // R! author | editor | reviewer | endorser "name" : "<string>", // R! Who contributed the content "contact" : [{ ContactDetail }] // Contact details of the contributor }
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
Contributor |
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 |
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
{ // from Element: extension "type" : "<code>", // R! author | editor | reviewer | endorser "name" : "<string>", // R! Who contributed the content "contact" : [{ ContactDetail }] // Contact details of the contributor }
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 ]
Constraints
Terminology Bindings
Path | Definition | Type | Reference |
---|---|---|---|
Contributor.type | The type of contributor | Required | ContributorType |
Contributor is used in the following places: ActivityDefinition, EventDefinition, Library, Measure and PlanDefinition
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 |
---|---|---|---|---|
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..* | canonical | The profile of the required data |
subject[x] | Σ | 0..1 | E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device SubjectType (Extensible) | |
subjectCodeableConcept | CodeableConcept | |||
subjectReference | Reference(Group) | |||
mustSupport | Σ | 0..* | string | Indicates that specific structure elements are referenced by the knowledge module |
codeFilter | Σ | 0..* | Element | What codes are expected |
path | Σ | 1..1 | string | The code-valued attribute of the filter |
valueSet[x] | Σ | 0..1 | Valueset for the filter | |
valueSetUri | uri | |||
valueSetCanonical | canonical | |||
code | Σ | 0..* | Coding | What code is expected |
dateFilter | Σ | 0..* | Element | What dates/date ranges are expected |
path | Σ | 1..1 | string | The date-valued attribute of the filter |
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) |
Documentation for this format |
UML Diagram (Legend)
XML Template
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <type value="[code]"/><!-- 1..1 The type of the required data --> <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 that specific structure elements are referenced by the knowledge module --> <codeFilter> <!-- 0..* What codes are expected --> <path value="[string]"/><!-- 1..1 The code-valued attribute of the filter --> <valueSet[x]><!-- 0..1 uri|canonical(ValueSet) Valueset for the filter --></valueSet[x]> <code><!-- 0..* Coding What code is expected --></code> </codeFilter> <dateFilter> <!-- 0..* What dates/date ranges are expected --> <path value="[string]"/><!-- 1..1 The date-valued attribute of the filter --> <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
{ // from Element: extension "type" : "<code>", // R! The type of the required data "profile" : ["<canonical>"], // 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 that specific structure elements are referenced by the knowledge module "codeFilter" : [{ // What codes are expected "path" : "<string>", // R! The code-valued attribute of the filter // valueSet[x]: Valueset for the filter. One of these 2: "valueSetUri" : "<uri>", "valueSetCanonical" : "<canonical>", "code" : [{ Coding }] // What code is expected }], "dateFilter" : [{ // What dates/date ranges are expected "path" : "<string>", // R! The date-valued attribute of the filter // 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: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 that specific structure elements are referenced by the knowledge module fhir:DataRequirement.codeFilter [ # 0..* What codes are expected fhir:DataRequirement.codeFilter.path [ string ]; # 1..1 The code-valued attribute of the filter # DataRequirement.codeFilter.valueSet[x] : 0..1 Valueset for the filter. One of these 2 fhir:DataRequirement.codeFilter.valueSetUri [ uri ] fhir:DataRequirement.codeFilter.valueSetCanonical [ canonical(ValueSet) ] fhir:DataRequirement.codeFilter.code [ Coding ], ... ; # 0..* What code is expected ], ...; fhir:DataRequirement.dateFilter [ # 0..* What dates/date ranges are expected fhir:DataRequirement.dateFilter.path [ string ]; # 1..1 The date-valued attribute of the filter # 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
DataRequirement | |
DataRequirement.profile |
|
DataRequirement.subject[x] |
|
DataRequirement.codeFilter.valueSet[x] |
|
DataRequirement.codeFilter.code |
|
DataRequirement.limit |
|
DataRequirement.sort |
|
DataRequirement.sort.path |
|
DataRequirement.sort.direction |
|
DataRequirement.codeFilter.valueCode |
|
DataRequirement.codeFilter.valueCoding |
|
DataRequirement.codeFilter.valueCodeableConcept |
|
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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..* | canonical | The profile of the required data |
subject[x] | Σ | 0..1 | E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device SubjectType (Extensible) | |
subjectCodeableConcept | CodeableConcept | |||
subjectReference | Reference(Group) | |||
mustSupport | Σ | 0..* | string | Indicates that specific structure elements are referenced by the knowledge module |
codeFilter | Σ | 0..* | Element | What codes are expected |
path | Σ | 1..1 | string | The code-valued attribute of the filter |
valueSet[x] | Σ | 0..1 | Valueset for the filter | |
valueSetUri | uri | |||
valueSetCanonical | canonical | |||
code | Σ | 0..* | Coding | What code is expected |
dateFilter | Σ | 0..* | Element | What dates/date ranges are expected |
path | Σ | 1..1 | string | The date-valued attribute of the filter |
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) |
Documentation for this format |
XML Template
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <type value="[code]"/><!-- 1..1 The type of the required data --> <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 that specific structure elements are referenced by the knowledge module --> <codeFilter> <!-- 0..* What codes are expected --> <path value="[string]"/><!-- 1..1 The code-valued attribute of the filter --> <valueSet[x]><!-- 0..1 uri|canonical(ValueSet) Valueset for the filter --></valueSet[x]> <code><!-- 0..* Coding What code is expected --></code> </codeFilter> <dateFilter> <!-- 0..* What dates/date ranges are expected --> <path value="[string]"/><!-- 1..1 The date-valued attribute of the filter --> <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
{ // from Element: extension "type" : "<code>", // R! The type of the required data "profile" : ["<canonical>"], // 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 that specific structure elements are referenced by the knowledge module "codeFilter" : [{ // What codes are expected "path" : "<string>", // R! The code-valued attribute of the filter // valueSet[x]: Valueset for the filter. One of these 2: "valueSetUri" : "<uri>", "valueSetCanonical" : "<canonical>", "code" : [{ Coding }] // What code is expected }], "dateFilter" : [{ // What dates/date ranges are expected "path" : "<string>", // R! The date-valued attribute of the filter // 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: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 that specific structure elements are referenced by the knowledge module fhir:DataRequirement.codeFilter [ # 0..* What codes are expected fhir:DataRequirement.codeFilter.path [ string ]; # 1..1 The code-valued attribute of the filter # DataRequirement.codeFilter.valueSet[x] : 0..1 Valueset for the filter. One of these 2 fhir:DataRequirement.codeFilter.valueSetUri [ uri ] fhir:DataRequirement.codeFilter.valueSetCanonical [ canonical(ValueSet) ] fhir:DataRequirement.codeFilter.code [ Coding ], ... ; # 0..* What code is expected ], ...; fhir:DataRequirement.dateFilter [ # 0..* What dates/date ranges are expected fhir:DataRequirement.dateFilter.path [ string ]; # 1..1 The date-valued attribute of the filter # 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
DataRequirement | |
DataRequirement.profile |
|
DataRequirement.subject[x] |
|
DataRequirement.codeFilter.valueSet[x] |
|
DataRequirement.codeFilter.code |
|
DataRequirement.limit |
|
DataRequirement.sort |
|
DataRequirement.sort.path |
|
DataRequirement.sort.direction |
|
DataRequirement.codeFilter.valueCode |
|
DataRequirement.codeFilter.valueCoding |
|
DataRequirement.codeFilter.valueCodeableConcept |
|
See the Full Difference for further information
Constraints
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.
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, GuidanceResponse, Library and PlanDefinition
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 |
---|---|---|---|---|
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 | canonical | What profile the value is expected to be |
Documentation for this format |
UML Diagram (Legend)
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><!-- 0..1 canonical(StructureDefinition) What profile the value is expected to be --></profile> </[name]>
JSON Template
{ // from Element: extension "name" : "<code>", // Name used to access the parameter value "use" : "<code>", // R! in | out "min" : <integer>, // Minimum cardinality "max" : "<string>", // Maximum cardinality (a number of *) "documentation" : "<string>", // A brief description of the parameter "type" : "<code>", // R! What type of value "profile" : "<canonical>" // What profile the value is expected to be }
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:ParameterDefinition.profile [ canonical(StructureDefinition) ]; # 0..1 What profile the value is expected to be ]
Changes since DSTU2
ParameterDefinition | |
ParameterDefinition.profile |
|
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 | canonical | What profile the value is expected to be |
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><!-- 0..1 canonical(StructureDefinition) What profile the value is expected to be --></profile> </[name]>
JSON Template
{ // from Element: extension "name" : "<code>", // Name used to access the parameter value "use" : "<code>", // R! in | out "min" : <integer>, // Minimum cardinality "max" : "<string>", // Maximum cardinality (a number of *) "documentation" : "<string>", // A brief description of the parameter "type" : "<code>", // R! What type of value "profile" : "<canonical>" // What profile the value is expected to be }
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:ParameterDefinition.profile [ canonical(StructureDefinition) ]; # 0..1 What profile the value is expected to be ]
Changes since DSTU2
ParameterDefinition | |
ParameterDefinition.profile |
|
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 |
---|---|---|---|---|
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 | Σ | 0..1 | string | Brief description of the related artifact |
citation | Σ | 0..1 | string | Bibliographic citation for the artifact |
url | Σ | 0..1 | url | Where the artifact can be accessed |
document | Σ | 0..1 | Attachment | What document is being referenced |
resource | Σ | 0..1 | canonical | What resource is being referenced |
Documentation for this format |
UML Diagram (Legend)
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 --> <display value="[string]"/><!-- 0..1 Brief description of the related artifact --> <citation value="[string]"/><!-- 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 value="[canonical]"/><!-- 0..1 What resource is being referenced --> </[name]>
JSON Template
{ // from Element: extension "type" : "<code>", // R! documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of "display" : "<string>", // Brief description of the related artifact "citation" : "<string>", // Bibliographic citation for the artifact "url" : "<url>", // Where the artifact can be accessed "document" : { Attachment }, // What document is being referenced "resource" : "<canonical>" // What resource is being referenced }
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.display [ string ]; # 0..1 Brief description of the related artifact fhir:RelatedArtifact.citation [ string ]; # 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:RelatedArtifact.resource [ canonical ]; # 0..1 What resource is being referenced ]
Changes since DSTU2
RelatedArtifact | |
RelatedArtifact.url |
|
RelatedArtifact.resource |
|
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 | Σ | 0..1 | string | Brief description of the related artifact |
citation | Σ | 0..1 | string | Bibliographic citation for the artifact |
url | Σ | 0..1 | url | Where the artifact can be accessed |
document | Σ | 0..1 | Attachment | What document is being referenced |
resource | Σ | 0..1 | canonical | What resource is being referenced |
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 --> <display value="[string]"/><!-- 0..1 Brief description of the related artifact --> <citation value="[string]"/><!-- 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 value="[canonical]"/><!-- 0..1 What resource is being referenced --> </[name]>
JSON Template
{ // from Element: extension "type" : "<code>", // R! documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of "display" : "<string>", // Brief description of the related artifact "citation" : "<string>", // Bibliographic citation for the artifact "url" : "<url>", // Where the artifact can be accessed "document" : { Attachment }, // What document is being referenced "resource" : "<canonical>" // What resource is being referenced }
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.display [ string ]; # 0..1 Brief description of the related artifact fhir:RelatedArtifact.citation [ string ]; # 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:RelatedArtifact.resource [ canonical ]; # 0..1 What resource is being referenced ]
Changes since DSTU2
RelatedArtifact | |
RelatedArtifact.url |
|
RelatedArtifact.resource |
|
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 |
RelatedArtifact is used in the following places: ActivityDefinition, EventDefinition, Library, Measure, PlanDefinition, RequestGroup and ResearchStudy
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,
depending on the value of type
:
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://hl7.org/fhir/v2/0003#[code] e.g. http://hl7.org/fhir/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 |
---|---|---|---|---|
TriggerDefinition | ΣITU | Element | Defines an expected trigger for a module + A condition only if there is a data requirement + Either timing, or a data requirement, but not both 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) |
name | Σ | 0..1 | string | Name or URI that identifies the event |
timing[x] | Σ | 0..1 | Timing of the event | |
timingTiming | Timing | |||
timingReference | Reference(Schedule) | |||
timingDate | date | |||
timingDateTime | dateTime | |||
data | Σ | 0..1 | DataRequirement | Triggering data of the event |
condition | Σ | 0..1 | Element | Whether the event triggers |
description | Σ | 0..1 | string | Natural language description of the condition |
language | Σ | 1..1 | code | text/cql | text/fhirpath | etc. ExpressionLanguage (Extensible but limited to http://www.rfc-editor.org/bcp/bcp13.txt ) |
expression | Σ | 1..1 | string | Boolean-valued expression |
Documentation for this format |
UML Diagram (Legend)
XML Template
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <type value="[code]"/><!-- 1..1 named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended --> <name value="[string]"/><!-- 0..1 Name or URI that identifies the event --> <timing[x]><!-- 0..1 Timing|Reference(Schedule)|date|dateTime Timing of the event --></timing[x]> <data><!-- 0..1 DataRequirement Triggering data of the event --></data> <condition> <!-- 0..1 Whether the event triggers --> <description value="[string]"/><!-- 0..1 Natural language description of the condition --> <language value="[code]"/><!-- 1..1 text/cql | text/fhirpath | etc. --> <expression value="[string]"/><!-- 1..1 Boolean-valued expression --> </condition> </[name]>
JSON Template
{ // from Element: extension "type" : "<code>", // R! named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended "name" : "<string>", // Name or URI that identifies the event // timing[x]: Timing of the event. One of these 4: "timingTiming" : { Timing }, "timingReference" : { Reference(Schedule) }, "timingDate" : "<date>", "timingDateTime" : "<dateTime>", "data" : { DataRequirement }, // Triggering data of the event "condition" : { // Whether the event triggers "description" : "<string>", // Natural language description of the condition "language" : "<code>", // R! text/cql | text/fhirpath | etc. "expression" : "<string>" // R! Boolean-valued expression } }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension 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..1 Triggering data of the event fhir:TriggerDefinition.condition [ # 0..1 Whether the event triggers fhir:TriggerDefinition.condition.description [ string ]; # 0..1 Natural language description of the condition fhir:TriggerDefinition.condition.language [ code ]; # 1..1 text/cql | text/fhirpath | etc. fhir:TriggerDefinition.condition.expression [ string ]; # 1..1 Boolean-valued expression ]; ]
Changes since DSTU2
TriggerDefinition | |
TriggerDefinition.name |
|
TriggerDefinition.timing[x] |
|
TriggerDefinition.data |
|
TriggerDefinition.condition |
|
TriggerDefinition.condition.description |
|
TriggerDefinition.condition.language |
|
TriggerDefinition.condition.expression |
|
TriggerDefinition.eventName |
|
TriggerDefinition.eventTiming[x] |
|
TriggerDefinition.eventData |
|
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
TriggerDefinition | ΣITU | Element | Defines an expected trigger for a module + A condition only if there is a data requirement + Either timing, or a data requirement, but not both 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) |
name | Σ | 0..1 | string | Name or URI that identifies the event |
timing[x] | Σ | 0..1 | Timing of the event | |
timingTiming | Timing | |||
timingReference | Reference(Schedule) | |||
timingDate | date | |||
timingDateTime | dateTime | |||
data | Σ | 0..1 | DataRequirement | Triggering data of the event |
condition | Σ | 0..1 | Element | Whether the event triggers |
description | Σ | 0..1 | string | Natural language description of the condition |
language | Σ | 1..1 | code | text/cql | text/fhirpath | etc. ExpressionLanguage (Extensible but limited to http://www.rfc-editor.org/bcp/bcp13.txt ) |
expression | Σ | 1..1 | string | Boolean-valued expression |
Documentation for this format |
XML Template
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <type value="[code]"/><!-- 1..1 named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended --> <name value="[string]"/><!-- 0..1 Name or URI that identifies the event --> <timing[x]><!-- 0..1 Timing|Reference(Schedule)|date|dateTime Timing of the event --></timing[x]> <data><!-- 0..1 DataRequirement Triggering data of the event --></data> <condition> <!-- 0..1 Whether the event triggers --> <description value="[string]"/><!-- 0..1 Natural language description of the condition --> <language value="[code]"/><!-- 1..1 text/cql | text/fhirpath | etc. --> <expression value="[string]"/><!-- 1..1 Boolean-valued expression --> </condition> </[name]>
JSON Template
{ // from Element: extension "type" : "<code>", // R! named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended "name" : "<string>", // Name or URI that identifies the event // timing[x]: Timing of the event. One of these 4: "timingTiming" : { Timing }, "timingReference" : { Reference(Schedule) }, "timingDate" : "<date>", "timingDateTime" : "<dateTime>", "data" : { DataRequirement }, // Triggering data of the event "condition" : { // Whether the event triggers "description" : "<string>", // Natural language description of the condition "language" : "<code>", // R! text/cql | text/fhirpath | etc. "expression" : "<string>" // R! Boolean-valued expression } }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension 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..1 Triggering data of the event fhir:TriggerDefinition.condition [ # 0..1 Whether the event triggers fhir:TriggerDefinition.condition.description [ string ]; # 0..1 Natural language description of the condition fhir:TriggerDefinition.condition.language [ code ]; # 1..1 text/cql | text/fhirpath | etc. fhir:TriggerDefinition.condition.expression [ string ]; # 1..1 Boolean-valued expression ]; ]
Changes since DSTU2
TriggerDefinition | |
TriggerDefinition.name |
|
TriggerDefinition.timing[x] |
|
TriggerDefinition.data |
|
TriggerDefinition.condition |
|
TriggerDefinition.condition.description |
|
TriggerDefinition.condition.language |
|
TriggerDefinition.condition.expression |
|
TriggerDefinition.eventName |
|
TriggerDefinition.eventTiming[x] |
|
TriggerDefinition.eventData |
|
See the Full Difference for further information
Constraints
Terminology Bindings
Path | Definition | Type | Reference |
---|---|---|---|
TriggerDefinition.type | The type of trigger | Required | TriggerType |
TriggerDefinition.condition.language | The media type of the expression language | Extensible, but limited to http://www.rfc-editor.org/bcp/bcp13.txt | ExpressionLanguage |
TriggerDefinition is used in the following places: EventDefinition and PlanDefinition
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 |
---|---|---|---|---|
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 (Example) | |
valueCodeableConcept | CodeableConcept | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
Documentation for this format |
UML Diagram (Legend)
XML Template
<[name] xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <code><!-- 1..1 Coding Type of context being specified --></code> <value[x]><!-- 1..1 CodeableConcept|Quantity|Range Value that defines the context --></value[x]> </[name]>
JSON Template
{ // from Element: extension "code" : { Coding }, // R! Type of context being specified // value[x]: Value that defines the context. One of these 3: "valueCodeableConcept" : { CodeableConcept } "valueQuantity" : { Quantity } "valueRange" : { Range } }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:UsageContext.code [ Coding ]; # 1..1 Type of context being specified # UsageContext.value[x] : 1..1 Value that defines the context. One of these 3 fhir:UsageContext.valueCodeableConcept [ CodeableConcept ] fhir:UsageContext.valueQuantity [ Quantity ] fhir:UsageContext.valueRange [ Range ] ]
Changes since DSTU2
UsageContext |
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 (Example) | |
valueCodeableConcept | CodeableConcept | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
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]><!-- 1..1 CodeableConcept|Quantity|Range Value that defines the context --></value[x]> </[name]>
JSON Template
{ // from Element: extension "code" : { Coding }, // R! Type of context being specified // value[x]: Value that defines the context. One of these 3: "valueCodeableConcept" : { CodeableConcept } "valueQuantity" : { Quantity } "valueRange" : { Range } }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:UsageContext.code [ Coding ]; # 1..1 Type of context being specified # UsageContext.value[x] : 1..1 Value that defines the context. One of these 3 fhir:UsageContext.valueCodeableConcept [ CodeableConcept ] fhir:UsageContext.valueQuantity [ Quantity ] fhir:UsageContext.valueRange [ Range ] ]
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, CodeSystem, CompartmentDefinition, ConceptMap, EventDefinition, ExampleScenario, ExpansionProfile, GraphDefinition, ImplementationGuide, Library, Measure, MessageDefinition, NamingSystem, OperationDefinition, PlanDefinition, Questionnaire, SearchParameter, StructureDefinition, StructureMap, TerminologyCapabilities, TestScript and ValueSet