FHIR CI-Build

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

2.1.28.6.0 MetaDatatypes

Modeling and Methodology icon Work GroupMaturity Level: 4Standards Status: Partially Normative

Types Framework Cross Reference: Base Types | Datatypes | Resources | Patterns

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 DataRequirement ParameterDefinition RelatedArtifact
TriggerDefinition Expression UsageContext ExtendedContactDetail
VirtualServiceDetail Availability MonetaryComponent

For an index of all datatypes, see the Datatypes page.

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Normative

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

The ContactDetail structure defines general contact details.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ContactDetailΣNElementContact information

Elements defined in Ancestors: id, extension
... nameΣ0..1stringName of an individual to contact
... telecomΣ0..*ContactPointContact details for individual or organization


doco Documentation for this format icon

Definition: XML | JSON

XML Template

<ContactDetail 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>
</ContactDetail>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:name [ string ] ; # 0..1 Name of an individual to contact
  fhir:telecom  ( [ ContactPoint ] ... ) ; # 0..* Contact details for individual or organization
]

Changes since Release 3

Changes from both R4 and R4B

ContactDetail
  • No Changes

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ContactDetailΣNElementContact information

Elements defined in Ancestors: id, extension
... nameΣ0..1stringName of an individual to contact
... telecomΣ0..*ContactPointContact details for individual or organization


doco Documentation for this format icon

XML Template

<ContactDetail 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>
</ContactDetail>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:name [ string ] ; # 0..1 Name of an individual to contact
  fhir:telecom  ( [ ContactPoint ] ... ) ; # 0..* Contact details for individual or organization
]

Changes since Release 3

Changes from both R4 and R4B

ContactDetail
  • No Changes

See the Full Difference for further information

Constraints

ContactDetail is used in the following places: Contributor, ActivityDefinition, ActorDefinition, CanonicalResource, CapabilityStatement, ChargeItemDefinition, Citation, CodeSystem, CompartmentDefinition, ConceptMap, ConditionDefinition, EventDefinition, Evidence, EvidenceReport, EvidenceVariable, ExampleScenario, GraphDefinition, Group, ImplementationGuide, Library, Measure, MessageDefinition, MetadataResource, NamingSystem, ObservationDefinition, OperationDefinition, PlanDefinition, Questionnaire, Requirements, SearchParameter, SpecimenDefinition, StructureDefinition, StructureMap, SubscriptionTopic, TerminologyCapabilities, TestPlan, TestScript and ValueSet

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

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

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. DataRequirementΣTUElementDescribes a required data item

Elements defined in Ancestors: id, extension
... typeΣ1..1codeThe type of the required data
Binding: All FHIR Types (Required)
... profileΣ0..*canonical(StructureDefinition)The profile of the required data

... subject[x]Σ0..1E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
Binding: Participant Resource Types (Extensible)
.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... codeFilterΣC0..*ElementWhat codes are expected
+ Rule: Either a path or a searchParam must be provided, but not both

.... pathΣC0..1stringA code-valued attribute to filter on
.... searchParamΣC0..1stringA coded (token) parameter to search on
.... valueSetΣ0..1canonical(ValueSet)ValueSet for the filter
.... codeΣ0..*CodingWhat code is expected

... dateFilterΣC0..*ElementWhat dates/date ranges are expected
+ Rule: Either a path or a searchParam must be provided, but not both

.... pathΣC0..1stringA date-valued attribute to filter on
.... searchParamΣC0..1stringA date valued parameter to search on
.... value[x]Σ0..1The value of the filter, as a Period, DateTime, or Duration value
..... valueDateTimedateTime
..... valuePeriodPeriod
..... valueDurationDuration
... valueFilterΣ0..*ElementWhat values are expected

.... pathΣ0..1stringAn attribute to filter on
.... searchParamΣ0..1stringA parameter to search on
.... comparatorΣ0..1codeeq | gt | lt | ge | le | sa | eb
Binding: Value Filter Comparator (Required)
.... value[x]Σ0..1The value of the filter, as a Period, DateTime, or Duration value
..... valueDateTimedateTime
..... valuePeriodPeriod
..... valueDurationDuration
... limitΣ0..1positiveIntNumber of results
... sortΣ0..*ElementOrder of the results

.... pathΣ1..1stringThe name of the attribute to perform the sort
.... directionΣ1..1codeascending | descending
Binding: SortDirection (Required)

doco Documentation for this format icon

Definition: XML | JSON

UML Diagram (Legend)

DataRequirementThe 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 profiletype : code [1..1] « List of FHIR types (resources, data types). (Strength=Required)FHIRTypes! »The profile of the required data, specified as the uri of the profile definitionprofile : canonical [0..*] « StructureDefinition »The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumedsubject[x] : DataType [0..1] « CodeableConcept|Reference(Group); The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.). (Strength=Extensible) ParticipantResourceTypes+ »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. The value of mustSupport SHALL be a FHIRPath resolvable on the type of the DataRequirement. The path 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]CodeFilterThe code-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the 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 (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 CodeableConceptpath : string [0..1] « This element has or is affected by some invariantsC »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 CodeableConceptsearchParam : string [0..1] « This element has or is affected by some invariantsC »The valueset for the code filter. The valueSet and code elements are 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 valuesetvalueSet : canonical [0..1] « ValueSet »The codes for the code filter. 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. If codes are specified in addition to a value set, the filter returns items matching a code in the value set or one of the specified codescode : Coding [0..*]DateFilterThe date-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the 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 (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 Timingpath : string [0..1] « This element has or is affected by some invariantsC »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 TimingsearchParam : string [0..1] « This element has or is affected by some invariantsC »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 before nowvalue[x] : DataType [0..1] « dateTime|Period|Duration »ValueFilterThe attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the 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 (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 a type that is comparable to the valueFilter.value[x] element for the filterpath : string [0..1]A search parameter defined on the specified type of the DataRequirement, and which searches on elements of a type compatible with the type of the valueFilter.value[x] for the filtersearchParam : string [0..1]The comparator to be used to determine whether the value is matchingcomparator : code [0..1] « Possible comparators for the valueFilter element. (Strength=Required)ValueFilterComparator! »The value of the filtervalue[x] : DataType [0..1] « dateTime|Period|Duration »SortThe 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 constantpath : string [1..1]The direction of the sort, ascending or descendingdirection : code [1..1] « The possible sort directions, ascending or descending. (Strength=Required)SortDirection! »DataTypeCode filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'edcodeFilter[0..*]Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'eddateFilter[0..*]Value filters specify additional constraints on the data for elements other than code-valued or date-valued. Each value filter specifies an additional constraint on the data (i.e. valueFilters are AND'ed, not OR'ed)valueFilter[0..*]Specifies the order of the results to be returnedsort[0..*]

XML Template

<DataRequirement 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 specific structure elements that are referenced by the knowledge module -->
 <codeFilter>  <!-- 0..* What codes are expected -->
  <path value="[string]"/><!-- I 0..1 A code-valued attribute to filter on -->
  <searchParam value="[string]"/><!-- I 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>
 <dateFilter>  <!-- 0..* What dates/date ranges are expected -->
  <path value="[string]"/><!-- I 0..1 A date-valued attribute to filter on -->
  <searchParam value="[string]"/><!-- I 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>
 <valueFilter>  <!-- 0..* What values are expected -->
  <path value="[string]"/><!-- 0..1 An attribute to filter on -->
  <searchParam value="[string]"/><!-- 0..1 A parameter to search on -->
  <comparator value="[code]"/><!-- 0..1 eq | gt | lt | ge | le | sa | eb -->
  <value[x]><!-- 0..1 dateTime|Period|Duration The value of the filter, as a Period, DateTime, or Duration value --></value[x]>
 </valueFilter>
 <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>
</DataRequirement>

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>", // I A code-valued attribute to filter on
    "searchParam" : "<string>", // I 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>", // I A date-valued attribute to filter on
    "searchParam" : "<string>", // I 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 }
  }],
  "valueFilter" : [{ // What values are expected
    "path" : "<string>", // An attribute to filter on
    "searchParam" : "<string>", // A parameter to search on
    "comparator" : "<code>", // eq | gt | lt | ge | le | sa | eb
    // 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:type [ code ] ; # 1..1 The type of the required data
  fhir:profile  ( [ canonical(StructureDefinition) ] ... ) ; # 0..* The profile of the required data
  # subject[x] : 0..1 E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device. One of these 2
    fhir:subject [  a fhir:CodeableConcept ; CodeableConcept ]
    fhir:subject [  a fhir:Reference ; Reference(Group) ]
  fhir:mustSupport  ( [ string ] ... ) ; # 0..* Indicates specific structure elements that are referenced by the knowledge module
  fhir:codeFilter ( [ # 0..* What codes are expected
    fhir:path [ string ] ; # 0..1 I A code-valued attribute to filter on
    fhir:searchParam [ string ] ; # 0..1 I A coded (token) parameter to search on
    fhir:valueSet [ canonical(ValueSet) ] ; # 0..1 ValueSet for the filter
    fhir:code  ( [ Coding ] ... ) ; # 0..* What code is expected
  ] ... ) ;
  fhir:dateFilter ( [ # 0..* What dates/date ranges are expected
    fhir:path [ string ] ; # 0..1 I A date-valued attribute to filter on
    fhir:searchParam [ string ] ; # 0..1 I A date valued parameter to search on
    # value[x] : 0..1 The value of the filter, as a Period, DateTime, or Duration value. One of these 3
      fhir:value [  a fhir:dateTime ; dateTime ]
      fhir:value [  a fhir:Period ; Period ]
      fhir:value [  a fhir:Duration ; Duration ]
  ] ... ) ;
  fhir:valueFilter ( [ # 0..* What values are expected
    fhir:path [ string ] ; # 0..1 An attribute to filter on
    fhir:searchParam [ string ] ; # 0..1 A parameter to search on
    fhir:comparator [ code ] ; # 0..1 eq | gt | lt | ge | le | sa | eb
    # value[x] : 0..1 The value of the filter, as a Period, DateTime, or Duration value. One of these 3
      fhir:value [  a fhir:dateTime ; dateTime ]
      fhir:value [  a fhir:Period ; Period ]
      fhir:value [  a fhir:Duration ; Duration ]
  ] ... ) ;
  fhir:limit [ positiveInt ] ; # 0..1 Number of results
  fhir:sort ( [ # 0..* Order of the results
    fhir:path [ string ] ; # 1..1 The name of the attribute to perform the sort
    fhir:direction [ code ] ; # 1..1 ascending | descending
  ] ... ) ;
]

Changes since Release 3

Changes from both R4 and R4B

DataRequirement
DataRequirement.type
  • Change value set from http://hl7.org/fhir/ValueSet/all-types|4.0.0 to All FHIR Types
  • Remove codes MoneyQuantity, Population, ProdCharacteristic, SimpleQuantity, SubstanceAmount, CatalogEntry, DeviceUseStatement, DocumentManifest, EffectEvidenceSynthesis, Media, MedicinalProduct, MedicinalProductAuthorization, MedicinalProductContraindication, MedicinalProductIndication, MedicinalProductIngredient, MedicinalProductInteraction, MedicinalProductManufactured, MedicinalProductPackaged, MedicinalProductPharmaceutical, MedicinalProductUndesirableEffect, RequestGroup, ResearchDefinition, ResearchElementDefinition, RiskEvidenceSynthesis, SubstanceSpecification, Type, Any
  • Add codes Base, DataType, Availability, BackboneType, RelativeTime, CodeableReference, ExtendedContactDetail, MonetaryComponent, PrimitiveType, integer64, RatioRange, VirtualServiceDetail, ActorDefinition, AdministrableProductDefinition, ArtifactAssessment, BiologicallyDerivedProductDispense, CanonicalResource, Citation, ClinicalUseDefinition, ConditionDefinition, DeviceAssociation, DeviceDispense, DeviceUsage, EncounterHistory, EvidenceReport, FormularyItem, GenomicStudy, ImagingSelection, Ingredient, InsuranceProduct, InventoryItem, InventoryReport, ManufacturedItemDefinition, MedicinalProductDefinition, MetadataResource, NutritionIntake, NutritionProduct, PackagedProductDefinition, Permission, RegulatedAuthorization, RequestOrchestration, Requirements, SubscriptionStatus, SubscriptionTopic, SubstanceDefinition, TestPlan, Transport
DataRequirement.subject[x]
  • Change value set from http://hl7.org/fhir/ValueSet/subject-type to Participant Resource Types
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/resource-types" to "http://hl7.org/fhir/fhir-types"
DataRequirement.valueFilter
  • Added Element
DataRequirement.valueFilter.path
  • Added Element
DataRequirement.valueFilter.searchParam
  • Added Element
DataRequirement.valueFilter.comparator
  • Added Element
DataRequirement.valueFilter.value[x]
  • Added Element

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. DataRequirementΣTUElementDescribes a required data item

Elements defined in Ancestors: id, extension
... typeΣ1..1codeThe type of the required data
Binding: All FHIR Types (Required)
... profileΣ0..*canonical(StructureDefinition)The profile of the required data

... subject[x]Σ0..1E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device
Binding: Participant Resource Types (Extensible)
.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... codeFilterΣC0..*ElementWhat codes are expected
+ Rule: Either a path or a searchParam must be provided, but not both

.... pathΣC0..1stringA code-valued attribute to filter on
.... searchParamΣC0..1stringA coded (token) parameter to search on
.... valueSetΣ0..1canonical(ValueSet)ValueSet for the filter
.... codeΣ0..*CodingWhat code is expected

... dateFilterΣC0..*ElementWhat dates/date ranges are expected
+ Rule: Either a path or a searchParam must be provided, but not both

.... pathΣC0..1stringA date-valued attribute to filter on
.... searchParamΣC0..1stringA date valued parameter to search on
.... value[x]Σ0..1The value of the filter, as a Period, DateTime, or Duration value
..... valueDateTimedateTime
..... valuePeriodPeriod
..... valueDurationDuration
... valueFilterΣ0..*ElementWhat values are expected

.... pathΣ0..1stringAn attribute to filter on
.... searchParamΣ0..1stringA parameter to search on
.... comparatorΣ0..1codeeq | gt | lt | ge | le | sa | eb
Binding: Value Filter Comparator (Required)
.... value[x]Σ0..1The value of the filter, as a Period, DateTime, or Duration value
..... valueDateTimedateTime
..... valuePeriodPeriod
..... valueDurationDuration
... limitΣ0..1positiveIntNumber of results
... sortΣ0..*ElementOrder of the results

.... pathΣ1..1stringThe name of the attribute to perform the sort
.... directionΣ1..1codeascending | descending
Binding: SortDirection (Required)

doco Documentation for this format icon

UML Diagram (Legend)

DataRequirementThe 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 profiletype : code [1..1] « List of FHIR types (resources, data types). (Strength=Required)FHIRTypes! »The profile of the required data, specified as the uri of the profile definitionprofile : canonical [0..*] « StructureDefinition »The intended subjects of the data requirement. If this element is not provided, a Patient subject is assumedsubject[x] : DataType [0..1] « CodeableConcept|Reference(Group); The possible types of subjects for a data requirement (E.g., Patient, Practitioner, Organization, Location, etc.). (Strength=Extensible) ParticipantResourceTypes+ »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. The value of mustSupport SHALL be a FHIRPath resolvable on the type of the DataRequirement. The path 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]CodeFilterThe code-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the 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 (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 CodeableConceptpath : string [0..1] « This element has or is affected by some invariantsC »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 CodeableConceptsearchParam : string [0..1] « This element has or is affected by some invariantsC »The valueset for the code filter. The valueSet and code elements are 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 valuesetvalueSet : canonical [0..1] « ValueSet »The codes for the code filter. 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. If codes are specified in addition to a value set, the filter returns items matching a code in the value set or one of the specified codescode : Coding [0..*]DateFilterThe date-valued attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the 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 (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 Timingpath : string [0..1] « This element has or is affected by some invariantsC »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 TimingsearchParam : string [0..1] « This element has or is affected by some invariantsC »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 before nowvalue[x] : DataType [0..1] « dateTime|Period|Duration »ValueFilterThe attribute of the filter. The specified path SHALL be a FHIRPath resolvable on the specified type of the 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 (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 a type that is comparable to the valueFilter.value[x] element for the filterpath : string [0..1]A search parameter defined on the specified type of the DataRequirement, and which searches on elements of a type compatible with the type of the valueFilter.value[x] for the filtersearchParam : string [0..1]The comparator to be used to determine whether the value is matchingcomparator : code [0..1] « Possible comparators for the valueFilter element. (Strength=Required)ValueFilterComparator! »The value of the filtervalue[x] : DataType [0..1] « dateTime|Period|Duration »SortThe 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 constantpath : string [1..1]The direction of the sort, ascending or descendingdirection : code [1..1] « The possible sort directions, ascending or descending. (Strength=Required)SortDirection! »DataTypeCode filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data. Each code filter defines an additional constraint on the data, i.e. code filters are AND'ed, not OR'edcodeFilter[0..*]Date filters specify additional constraints on the data in terms of the applicable date range for specific elements. Each date filter specifies an additional constraint on the data, i.e. date filters are AND'ed, not OR'eddateFilter[0..*]Value filters specify additional constraints on the data for elements other than code-valued or date-valued. Each value filter specifies an additional constraint on the data (i.e. valueFilters are AND'ed, not OR'ed)valueFilter[0..*]Specifies the order of the results to be returnedsort[0..*]

XML Template

<DataRequirement 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 specific structure elements that are referenced by the knowledge module -->
 <codeFilter>  <!-- 0..* What codes are expected -->
  <path value="[string]"/><!-- I 0..1 A code-valued attribute to filter on -->
  <searchParam value="[string]"/><!-- I 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>
 <dateFilter>  <!-- 0..* What dates/date ranges are expected -->
  <path value="[string]"/><!-- I 0..1 A date-valued attribute to filter on -->
  <searchParam value="[string]"/><!-- I 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>
 <valueFilter>  <!-- 0..* What values are expected -->
  <path value="[string]"/><!-- 0..1 An attribute to filter on -->
  <searchParam value="[string]"/><!-- 0..1 A parameter to search on -->
  <comparator value="[code]"/><!-- 0..1 eq | gt | lt | ge | le | sa | eb -->
  <value[x]><!-- 0..1 dateTime|Period|Duration The value of the filter, as a Period, DateTime, or Duration value --></value[x]>
 </valueFilter>
 <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>
</DataRequirement>

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>", // I A code-valued attribute to filter on
    "searchParam" : "<string>", // I 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>", // I A date-valued attribute to filter on
    "searchParam" : "<string>", // I 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 }
  }],
  "valueFilter" : [{ // What values are expected
    "path" : "<string>", // An attribute to filter on
    "searchParam" : "<string>", // A parameter to search on
    "comparator" : "<code>", // eq | gt | lt | ge | le | sa | eb
    // 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:type [ code ] ; # 1..1 The type of the required data
  fhir:profile  ( [ canonical(StructureDefinition) ] ... ) ; # 0..* The profile of the required data
  # subject[x] : 0..1 E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device. One of these 2
    fhir:subject [  a fhir:CodeableConcept ; CodeableConcept ]
    fhir:subject [  a fhir:Reference ; Reference(Group) ]
  fhir:mustSupport  ( [ string ] ... ) ; # 0..* Indicates specific structure elements that are referenced by the knowledge module
  fhir:codeFilter ( [ # 0..* What codes are expected
    fhir:path [ string ] ; # 0..1 I A code-valued attribute to filter on
    fhir:searchParam [ string ] ; # 0..1 I A coded (token) parameter to search on
    fhir:valueSet [ canonical(ValueSet) ] ; # 0..1 ValueSet for the filter
    fhir:code  ( [ Coding ] ... ) ; # 0..* What code is expected
  ] ... ) ;
  fhir:dateFilter ( [ # 0..* What dates/date ranges are expected
    fhir:path [ string ] ; # 0..1 I A date-valued attribute to filter on
    fhir:searchParam [ string ] ; # 0..1 I A date valued parameter to search on
    # value[x] : 0..1 The value of the filter, as a Period, DateTime, or Duration value. One of these 3
      fhir:value [  a fhir:dateTime ; dateTime ]
      fhir:value [  a fhir:Period ; Period ]
      fhir:value [  a fhir:Duration ; Duration ]
  ] ... ) ;
  fhir:valueFilter ( [ # 0..* What values are expected
    fhir:path [ string ] ; # 0..1 An attribute to filter on
    fhir:searchParam [ string ] ; # 0..1 A parameter to search on
    fhir:comparator [ code ] ; # 0..1 eq | gt | lt | ge | le | sa | eb
    # value[x] : 0..1 The value of the filter, as a Period, DateTime, or Duration value. One of these 3
      fhir:value [  a fhir:dateTime ; dateTime ]
      fhir:value [  a fhir:Period ; Period ]
      fhir:value [  a fhir:Duration ; Duration ]
  ] ... ) ;
  fhir:limit [ positiveInt ] ; # 0..1 Number of results
  fhir:sort ( [ # 0..* Order of the results
    fhir:path [ string ] ; # 1..1 The name of the attribute to perform the sort
    fhir:direction [ code ] ; # 1..1 ascending | descending
  ] ... ) ;
]

Changes since Release 3

Changes from both R4 and R4B

DataRequirement
DataRequirement.type
  • Change value set from http://hl7.org/fhir/ValueSet/all-types|4.0.0 to All FHIR Types
  • Remove codes MoneyQuantity, Population, ProdCharacteristic, SimpleQuantity, SubstanceAmount, CatalogEntry, DeviceUseStatement, DocumentManifest, EffectEvidenceSynthesis, Media, MedicinalProduct, MedicinalProductAuthorization, MedicinalProductContraindication, MedicinalProductIndication, MedicinalProductIngredient, MedicinalProductInteraction, MedicinalProductManufactured, MedicinalProductPackaged, MedicinalProductPharmaceutical, MedicinalProductUndesirableEffect, RequestGroup, ResearchDefinition, ResearchElementDefinition, RiskEvidenceSynthesis, SubstanceSpecification, Type, Any
  • Add codes Base, DataType, Availability, BackboneType, RelativeTime, CodeableReference, ExtendedContactDetail, MonetaryComponent, PrimitiveType, integer64, RatioRange, VirtualServiceDetail, ActorDefinition, AdministrableProductDefinition, ArtifactAssessment, BiologicallyDerivedProductDispense, CanonicalResource, Citation, ClinicalUseDefinition, ConditionDefinition, DeviceAssociation, DeviceDispense, DeviceUsage, EncounterHistory, EvidenceReport, FormularyItem, GenomicStudy, ImagingSelection, Ingredient, InsuranceProduct, InventoryItem, InventoryReport, ManufacturedItemDefinition, MedicinalProductDefinition, MetadataResource, NutritionIntake, NutritionProduct, PackagedProductDefinition, Permission, RegulatedAuthorization, RequestOrchestration, Requirements, SubscriptionStatus, SubscriptionTopic, SubstanceDefinition, TestPlan, Transport
DataRequirement.subject[x]
  • Change value set from http://hl7.org/fhir/ValueSet/subject-type to Participant Resource Types
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/resource-types" to "http://hl7.org/fhir/fhir-types"
DataRequirement.valueFilter
  • Added Element
DataRequirement.valueFilter.path
  • Added Element
DataRequirement.valueFilter.searchParam
  • Added Element
DataRequirement.valueFilter.comparator
  • Added Element
DataRequirement.valueFilter.value[x]
  • Added Element

See the Full Difference for further information

Constraints

idLevelLocationDescriptionExpression
img drq-1Rule DataRequirement.codeFilterEither a path or a searchParam must be provided, but not bothpath.exists() xor searchParam.exists()
img drq-2Rule DataRequirement.dateFilterEither a path or a searchParam must be provided, but not bothpath.exists() xor searchParam.exists()

Terminology Bindings

PathValueSetTypeDocumentation
DataRequirement.type FHIRTypes (a valid code from All FHIR Types)Required

All FHIR types

DataRequirement.subject[x] ParticipantResourceTypes Extensible

All Resource Types that represent participant resources

DataRequirement.valueFilter.comparator ValueFilterComparator Required

The type of comparator operator to use

DataRequirement.sort.direction SortDirection Required

The possible sort directions, ascending or descending.

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="performed"/>
		<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="performed"/>
	</dateFilter>
</dataRequirement>

DataRequirement is used in the following places: TriggerDefinition, GuidanceResponse, Library, PlanDefinition and RequestOrchestration

 

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. ParameterDefinitionΣTUElementDefinition of a parameter to a module

Elements defined in Ancestors: id, extension
... nameΣ0..1codeName used to access the parameter value
... useΣ1..1codein | out
Binding: Operation Parameter Use (Required)
... minΣ0..1integerMinimum cardinality
... documentationΣ0..1stringA brief description of the parameter
... typeΣ1..1codeWhat type of value
Binding: All FHIR Types (Required)
... profileΣ0..1canonical(StructureDefinition)What profile the value is expected to be

doco Documentation for this format icon

Definition: XML | JSON

XML Template

<ParameterDefinition 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>
</ParameterDefinition>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:name [ code ] ; # 0..1 Name used to access the parameter value
  fhir:use [ code ] ; # 1..1 in | out
  fhir:min [ integer ] ; # 0..1 Minimum cardinality
  fhir:max [ string ] ; # 0..1 Maximum cardinality (a number of *)
  fhir:documentation [ string ] ; # 0..1 A brief description of the parameter
  fhir:type [ code ] ; # 1..1 What type of value
  fhir:profile [ canonical(StructureDefinition) ] ; # 0..1 What profile the value is expected to be
]

Changes since Release 3

Changes from both R4 and R4B

ParameterDefinition
ParameterDefinition.type
  • Change value set from http://hl7.org/fhir/ValueSet/all-types|4.0.0 to All FHIR Types
  • Remove codes MoneyQuantity, Population, ProdCharacteristic, SimpleQuantity, SubstanceAmount, CatalogEntry, DeviceUseStatement, DocumentManifest, EffectEvidenceSynthesis, Media, MedicinalProduct, MedicinalProductAuthorization, MedicinalProductContraindication, MedicinalProductIndication, MedicinalProductIngredient, MedicinalProductInteraction, MedicinalProductManufactured, MedicinalProductPackaged, MedicinalProductPharmaceutical, MedicinalProductUndesirableEffect, RequestGroup, ResearchDefinition, ResearchElementDefinition, RiskEvidenceSynthesis, SubstanceSpecification, Type, Any
  • Add codes Base, DataType, Availability, BackboneType, RelativeTime, CodeableReference, ExtendedContactDetail, MonetaryComponent, PrimitiveType, integer64, RatioRange, VirtualServiceDetail, ActorDefinition, AdministrableProductDefinition, ArtifactAssessment, BiologicallyDerivedProductDispense, CanonicalResource, Citation, ClinicalUseDefinition, ConditionDefinition, DeviceAssociation, DeviceDispense, DeviceUsage, EncounterHistory, EvidenceReport, FormularyItem, GenomicStudy, ImagingSelection, Ingredient, InsuranceProduct, InventoryItem, InventoryReport, ManufacturedItemDefinition, MedicinalProductDefinition, MetadataResource, NutritionIntake, NutritionProduct, PackagedProductDefinition, Permission, RegulatedAuthorization, RequestOrchestration, Requirements, SubscriptionStatus, SubscriptionTopic, SubstanceDefinition, TestPlan, Transport

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ParameterDefinitionΣTUElementDefinition of a parameter to a module

Elements defined in Ancestors: id, extension
... nameΣ0..1codeName used to access the parameter value
... useΣ1..1codein | out
Binding: Operation Parameter Use (Required)
... minΣ0..1integerMinimum cardinality
... documentationΣ0..1stringA brief description of the parameter
... typeΣ1..1codeWhat type of value
Binding: All FHIR Types (Required)
... profileΣ0..1canonical(StructureDefinition)What profile the value is expected to be

doco Documentation for this format icon

XML Template

<ParameterDefinition 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>
</ParameterDefinition>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:name [ code ] ; # 0..1 Name used to access the parameter value
  fhir:use [ code ] ; # 1..1 in | out
  fhir:min [ integer ] ; # 0..1 Minimum cardinality
  fhir:max [ string ] ; # 0..1 Maximum cardinality (a number of *)
  fhir:documentation [ string ] ; # 0..1 A brief description of the parameter
  fhir:type [ code ] ; # 1..1 What type of value
  fhir:profile [ canonical(StructureDefinition) ] ; # 0..1 What profile the value is expected to be
]

Changes since Release 3

Changes from both R4 and R4B

ParameterDefinition
ParameterDefinition.type
  • Change value set from http://hl7.org/fhir/ValueSet/all-types|4.0.0 to All FHIR Types
  • Remove codes MoneyQuantity, Population, ProdCharacteristic, SimpleQuantity, SubstanceAmount, CatalogEntry, DeviceUseStatement, DocumentManifest, EffectEvidenceSynthesis, Media, MedicinalProduct, MedicinalProductAuthorization, MedicinalProductContraindication, MedicinalProductIndication, MedicinalProductIngredient, MedicinalProductInteraction, MedicinalProductManufactured, MedicinalProductPackaged, MedicinalProductPharmaceutical, MedicinalProductUndesirableEffect, RequestGroup, ResearchDefinition, ResearchElementDefinition, RiskEvidenceSynthesis, SubstanceSpecification, Type, Any
  • Add codes Base, DataType, Availability, BackboneType, RelativeTime, CodeableReference, ExtendedContactDetail, MonetaryComponent, PrimitiveType, integer64, RatioRange, VirtualServiceDetail, ActorDefinition, AdministrableProductDefinition, ArtifactAssessment, BiologicallyDerivedProductDispense, CanonicalResource, Citation, ClinicalUseDefinition, ConditionDefinition, DeviceAssociation, DeviceDispense, DeviceUsage, EncounterHistory, EvidenceReport, FormularyItem, GenomicStudy, ImagingSelection, Ingredient, InsuranceProduct, InventoryItem, InventoryReport, ManufacturedItemDefinition, MedicinalProductDefinition, MetadataResource, NutritionIntake, NutritionProduct, PackagedProductDefinition, Permission, RegulatedAuthorization, RequestOrchestration, Requirements, SubscriptionStatus, SubscriptionTopic, SubstanceDefinition, TestPlan, Transport

See the Full Difference for further information

Constraints

Terminology Bindings

PathValueSetTypeDocumentation
ParameterDefinition.use OperationParameterUse Required

Whether an operation parameter is an input or an output parameter.

ParameterDefinition.type FHIRTypes (a valid code from All FHIR Types)Required

All FHIR types

 

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

The RelatedArtifact structure defines resources related to an artifact such as previous and next versions of documents, documentation, citations, etc. Note that the name artifact here is being used in a general sense; The related artifact may be a FHIR resource, or it may be another type of resource, represented using the Attachment datatype.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. RelatedArtifactΣTUElementRelated artifacts for a knowledge resource

Elements defined in Ancestors: id, extension
... typeΣ1..1codedocumentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as
Binding: RelatedArtifactType (Required)
... classifierΣ0..*CodeableConceptAdditional classifiers
Binding: Citation Artifact Classifier (Example)

... labelΣ0..1stringShort label
... citationΣ0..1markdownBibliographic citation for the artifact
... documentΣ0..1AttachmentWhat document is being referenced
... resourceΣ0..1canonical(Any)What artifact is being referenced
... resourceReferenceΣ0..1Reference(Any)What artifact, if not a conformance resource
... publicationStatusΣ0..1codedraft | active | retired | unknown
Binding: PublicationStatus (Required)
... publicationDateΣ0..1dateDate of publication of the artifact being referred to

doco Documentation for this format icon

Definition: XML | JSON

UML Diagram (Legend)

Turtle Template

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

[
 # from Element: Element.extension
  fhir:type [ code ] ; # 1..1 documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as
  fhir:classifier  ( [ CodeableConcept ] ... ) ; # 0..* Additional classifiers
  fhir:label [ string ] ; # 0..1 Short label
  fhir:display [ string ] ; # 0..1 Brief description of the related artifact
  fhir:citation [ markdown ] ; # 0..1 Bibliographic citation for the artifact
  fhir:document [ Attachment ] ; # 0..1 What document is being referenced
  fhir:resource [ canonical(Any) ] ; # 0..1 What artifact is being referenced
  fhir:resourceReference [ Reference(Any) ] ; # 0..1 What artifact, if not a conformance resource
  fhir:publicationStatus [ code ] ; # 0..1 draft | active | retired | unknown
  fhir:publicationDate [ date ] ; # 0..1 Date of publication of the artifact being referred to
]

Changes since Release 3

Changes from both R4 and R4B

RelatedArtifact
RelatedArtifact.type
  • Add codes part-of, amends, amended-with, appends, appended-with, cites, cited-by, comments-on, comment-in, contains, contained-in, corrects, correction-in, replaces, replaced-with, retracts, retracted-by, signs, similar-to, supports, supported-with, transforms, transformed-into, transformed-with, documents, specification-of, created-with, cite-as
RelatedArtifact.classifier
  • Added Element
RelatedArtifact.resourceReference
  • Added Element
RelatedArtifact.publicationStatus
  • Added Element
RelatedArtifact.publicationDate
  • Added Element
RelatedArtifact.url
  • Deleted (-> document)

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. RelatedArtifactΣTUElementRelated artifacts for a knowledge resource

Elements defined in Ancestors: id, extension
... typeΣ1..1codedocumentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as
Binding: RelatedArtifactType (Required)
... classifierΣ0..*CodeableConceptAdditional classifiers
Binding: Citation Artifact Classifier (Example)

... labelΣ0..1stringShort label
... citationΣ0..1markdownBibliographic citation for the artifact
... documentΣ0..1AttachmentWhat document is being referenced
... resourceΣ0..1canonical(Any)What artifact is being referenced
... resourceReferenceΣ0..1Reference(Any)What artifact, if not a conformance resource
... publicationStatusΣ0..1codedraft | active | retired | unknown
Binding: PublicationStatus (Required)
... publicationDateΣ0..1dateDate of publication of the artifact being referred to

doco Documentation for this format icon

UML Diagram (Legend)

Turtle Template

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

[
 # from Element: Element.extension
  fhir:type [ code ] ; # 1..1 documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as
  fhir:classifier  ( [ CodeableConcept ] ... ) ; # 0..* Additional classifiers
  fhir:label [ string ] ; # 0..1 Short label
  fhir:display [ string ] ; # 0..1 Brief description of the related artifact
  fhir:citation [ markdown ] ; # 0..1 Bibliographic citation for the artifact
  fhir:document [ Attachment ] ; # 0..1 What document is being referenced
  fhir:resource [ canonical(Any) ] ; # 0..1 What artifact is being referenced
  fhir:resourceReference [ Reference(Any) ] ; # 0..1 What artifact, if not a conformance resource
  fhir:publicationStatus [ code ] ; # 0..1 draft | active | retired | unknown
  fhir:publicationDate [ date ] ; # 0..1 Date of publication of the artifact being referred to
]

Changes since Release 3

Changes from both R4 and R4B

RelatedArtifact
RelatedArtifact.type
  • Add codes part-of, amends, amended-with, appends, appended-with, cites, cited-by, comments-on, comment-in, contains, contained-in, corrects, correction-in, replaces, replaced-with, retracts, retracted-by, signs, similar-to, supports, supported-with, transforms, transformed-into, transformed-with, documents, specification-of, created-with, cite-as
RelatedArtifact.classifier
  • Added Element
RelatedArtifact.resourceReference
  • Added Element
RelatedArtifact.publicationStatus
  • Added Element
RelatedArtifact.publicationDate
  • Added Element
RelatedArtifact.url
  • Deleted (-> document)

See the Full Difference for further information

Constraints

Terminology Bindings

PathValueSetTypeDocumentation
RelatedArtifact.type RelatedArtifactType Required

The type of relationship to the related artifact.

RelatedArtifact.classifier CitationArtifactClassifier Example

Citation artifact classifier

RelatedArtifact.publicationStatus PublicationStatus Required

The lifecycle status of an artifact.

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, ArtifactAssessment, ChargeItemDefinition, Citation, CodeSystem, Composition, ConceptMap, DeviceDefinition, EventDefinition, Evidence, EvidenceReport, EvidenceVariable, Library, Measure, MetadataResource, NamingSystem, PlanDefinition, RequestOrchestration, ResearchStudy and ValueSet

The RelatedArtifact type is used in a variety of contexts, and supports flexible description of relationships between artifacts. For example, the type can be used to describe both successor and predecessor relationships. This flexibility is needed to support use cases where only one side or other of the relationship is represented in FHIR. In practice, this datatype SHALL NOT be used to create bi-directional linking between FHIR resources.

 

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

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:

  • 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

NameFlagsCard.TypeDescription & Constraintsdoco
.. TriggerDefinitionΣTUElementDefines 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ΣC1..1codenamed-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended
Binding: TriggerType (Required)
... nameΣC0..1stringName or URI that identifies the event
... codeΣ0..1CodeableConceptCoded definition of the event
... timing[x]ΣC0..1Timing of the event
.... timingTimingTiming
.... timingReferenceReference(Schedule)
.... timingDatedate
.... timingDateTimedateTime
... dataΣC0..*DataRequirementTriggering data of the event (multiple = 'and')

... conditionΣC0..1ExpressionWhether the event triggers (boolean expression)

doco Documentation for this format icon

Definition: XML | JSON

Turtle Template

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

[
 # from Element: Element.extension
  fhir:type [ code ] ; # 1..1 I named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended
  fhir:name [ string ] ; # 0..1 I Name or URI that identifies the event
  fhir:code [ CodeableConcept ] ; # 0..1 Coded definition of the event
  fhir:subscriptionTopic [ canonical(SubscriptionTopic) ] ; # 0..1 What event
  # timing[x] : 0..1 I Timing of the event. One of these 4
    fhir:timing [  a fhir:Timing ; Timing ]
    fhir:timing [  a fhir:Reference ; Reference(Schedule) ]
    fhir:timing [  a fhir:date ; date ]
    fhir:timing [  a fhir:dateTime ; dateTime ]
  fhir:data  ( [ DataRequirement ] ... ) ; # 0..* I Triggering data of the event (multiple = 'and')
  fhir:condition [ Expression ] ; # 0..1 I Whether the event triggers (boolean expression)
]

Changes since Release 3

Changes from both R4 and R4B

TriggerDefinition
TriggerDefinition.code
  • Added Element
TriggerDefinition.subscriptionTopic
  • Added Element

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. TriggerDefinitionΣTUElementDefines 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ΣC1..1codenamed-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended
Binding: TriggerType (Required)
... nameΣC0..1stringName or URI that identifies the event
... codeΣ0..1CodeableConceptCoded definition of the event
... timing[x]ΣC0..1Timing of the event
.... timingTimingTiming
.... timingReferenceReference(Schedule)
.... timingDatedate
.... timingDateTimedateTime
... dataΣC0..*DataRequirementTriggering data of the event (multiple = 'and')

... conditionΣC0..1ExpressionWhether the event triggers (boolean expression)

doco Documentation for this format icon

Turtle Template

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

[
 # from Element: Element.extension
  fhir:type [ code ] ; # 1..1 I named-event | periodic | data-changed | data-added | data-modified | data-removed | data-accessed | data-access-ended
  fhir:name [ string ] ; # 0..1 I Name or URI that identifies the event
  fhir:code [ CodeableConcept ] ; # 0..1 Coded definition of the event
  fhir:subscriptionTopic [ canonical(SubscriptionTopic) ] ; # 0..1 What event
  # timing[x] : 0..1 I Timing of the event. One of these 4
    fhir:timing [  a fhir:Timing ; Timing ]
    fhir:timing [  a fhir:Reference ; Reference(Schedule) ]
    fhir:timing [  a fhir:date ; date ]
    fhir:timing [  a fhir:dateTime ; dateTime ]
  fhir:data  ( [ DataRequirement ] ... ) ; # 0..* I Triggering data of the event (multiple = 'and')
  fhir:condition [ Expression ] ; # 0..1 I Whether the event triggers (boolean expression)
]

Changes since Release 3

Changes from both R4 and R4B

TriggerDefinition
TriggerDefinition.code
  • Added Element
TriggerDefinition.subscriptionTopic
  • Added Element

See the Full Difference for further information

Constraints

idLevelLocationDescriptionExpression
img trd-1Rule (base)Either timing, or a data requirement, but not bothdata.empty() or timing.empty()
img trd-2Rule (base)A condition only if there is a data requirementcondition.exists() implies data.exists()
img trd-3Rule (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

PathValueSetTypeDocumentation
TriggerDefinition.type TriggerType Required

The type of trigger.

TriggerDefinition is used in the following places: EventDefinition and PlanDefinition

 

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. ExpressionΣTUElementAn expression that can be used to generate a value
+ Rule: An expression or a reference must be provided
+ Rule: The name must be a valid variable name in most computer languages

Elements defined in Ancestors: id, extension
... descriptionΣ0..1stringNatural language description of the condition
... nameΣC0..1codeShort name assigned to expression for reuse
... languageΣ0..1codetext/cql | text/fhirpath | application/x-fhir-query | etc.
Binding: Expression Language (Extensible)
Additional BindingsPurpose
Mime TypesMax Binding

... referenceΣC0..1uriWhere the expression is found

doco Documentation for this format icon

Definition: XML | JSON

XML Template

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

Turtle Template

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

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

Changes since Release 3

Changes from both R4 and R4B

Expression
Expression.name
  • Type changed from id to code
Expression.language
  • Min Cardinality changed from 1 to 0
  • Change max value set from http://www.rfc-editor.org/bcp/bcp13.txt to none
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/expression-language" to "urn:ietf:bcp:13"

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ExpressionΣTUElementAn expression that can be used to generate a value
+ Rule: An expression or a reference must be provided
+ Rule: The name must be a valid variable name in most computer languages

Elements defined in Ancestors: id, extension
... descriptionΣ0..1stringNatural language description of the condition
... nameΣC0..1codeShort name assigned to expression for reuse
... languageΣ0..1codetext/cql | text/fhirpath | application/x-fhir-query | etc.
Binding: Expression Language (Extensible)
Additional BindingsPurpose
Mime TypesMax Binding

... referenceΣC0..1uriWhere the expression is found

doco Documentation for this format icon

XML Template

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

Turtle Template

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

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

Changes since Release 3

Changes from both R4 and R4B

Expression
Expression.name
  • Type changed from id to code
Expression.language
  • Min Cardinality changed from 1 to 0
  • Change max value set from http://www.rfc-editor.org/bcp/bcp13.txt to none
  • Change code system for extensibly bound codes from "http://hl7.org/fhir/expression-language" to "urn:ietf:bcp:13"

See the Full Difference for further information

Constraints

idLevelLocationDescriptionExpression
img exp-1Rule (base)An expression or a reference must be providedexpression.exists() or reference.exists()
img exp-2Rule (base)The name must be a valid variable name in most computer languagesname.hasValue() implies name.matches('[A-Za-z][A-Za-z0-9\\_]{0,63}')

Terminology Bindings

PathValueSetTypeDocumentation
Expression.language ExpressionLanguage Extensible

The media type of the expression language.

  http://hl7.org/fhir/ValueSet/mimetypes maximum

Language support

While the expression data type supports any language, a few specific languages defined by HL7 at particularly of interest for the purposes of this specification:

Expression is used in the following places: TriggerDefinition, ActivityDefinition, ChargeItemDefinition, ClinicalUseDefinition, Consent, Group, Measure, Permission, PlanDefinition and RequestOrchestration

 

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

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

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. UsageContextΣTUElementDescribes the context of use for a conformance or knowledge resource

Elements defined in Ancestors: id, extension
... codeΣ1..1CodingType of context being specified
Binding: UsageContextType icon (Extensible)
... value[x]Σ1..1Value that defines the context
Binding: Context of Use ValueSet (Example)
.... valueCodeableConceptCodeableConcept
.... valueQuantityQuantity
.... valueRangeRange
.... valueReferenceReference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)

doco Documentation for this format icon

Definition: XML | JSON

XML Template

JSON Template

{doco
  // from Element: extension
  "code" : { Coding }, // R!  Type of context being specified icon
  // value[x]: Value that defines the context. One of these 4:
  "valueCodeableConcept" : { CodeableConcept },
  "valueQuantity" : { Quantity },
  "valueRange" : { Range },
  "valueReference" : { Reference(Group|HealthcareService|InsurancePlan|Location|
   Organization|PlanDefinition|ResearchStudy) }
}

Turtle Template

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

[
 # from Element: Element.extension
  fhir:code [ Coding ] ; # 1..1 Type of context being specified
  # value[x] : 1..1 Value that defines the context. One of these 4
    fhir:value [  a fhir:CodeableConcept ; CodeableConcept ]
    fhir:value [  a fhir:Quantity ; Quantity ]
    fhir:value [  a fhir:Range ; Range ]
    fhir:value [  a fhir:Reference ; Reference(Group|HealthcareService|InsurancePlan|Location|Organization|PlanDefinition|
  ResearchStudy) ]
]

Changes since Release 3

Changes from both R4 and R4B

UsageContext
UsageContext.code
  • Change value set from http://hl7.org/fhir/ValueSet/usage-context-type to UsageContextType icon

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. UsageContextΣTUElementDescribes the context of use for a conformance or knowledge resource

Elements defined in Ancestors: id, extension
... codeΣ1..1CodingType of context being specified
Binding: UsageContextType icon (Extensible)
... value[x]Σ1..1Value that defines the context
Binding: Context of Use ValueSet (Example)
.... valueCodeableConceptCodeableConcept
.... valueQuantityQuantity
.... valueRangeRange
.... valueReferenceReference(PlanDefinition | ResearchStudy | InsurancePlan | HealthcareService | Group | Location | Organization)

doco Documentation for this format icon

XML Template

JSON Template

{doco
  // from Element: extension
  "code" : { Coding }, // R!  Type of context being specified icon
  // value[x]: Value that defines the context. One of these 4:
  "valueCodeableConcept" : { CodeableConcept },
  "valueQuantity" : { Quantity },
  "valueRange" : { Range },
  "valueReference" : { Reference(Group|HealthcareService|InsurancePlan|Location|
   Organization|PlanDefinition|ResearchStudy) }
}

Turtle Template

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

[
 # from Element: Element.extension
  fhir:code [ Coding ] ; # 1..1 Type of context being specified
  # value[x] : 1..1 Value that defines the context. One of these 4
    fhir:value [  a fhir:CodeableConcept ; CodeableConcept ]
    fhir:value [  a fhir:Quantity ; Quantity ]
    fhir:value [  a fhir:Range ; Range ]
    fhir:value [  a fhir:Reference ; Reference(Group|HealthcareService|InsurancePlan|Location|Organization|PlanDefinition|
  ResearchStudy) ]
]

Changes since Release 3

Changes from both R4 and R4B

UsageContext
UsageContext.code
  • Change value set from http://hl7.org/fhir/ValueSet/usage-context-type to UsageContextType icon

See the Full Difference for further information

Constraints

Terminology Bindings

PathValueSetTypeDocumentation
UsageContext.code UsageContextType icon Extensible

A code that specifies a type of context being specified by a usage context.

UsageContext.value[x] ContextOfUseValueSet Example

This value set defines a base set of codes that can be used to indicate that the content in a resource was developed with a focus and intent of supporting use within particular contexts.

UsageContext is used in the following places: ElementDefinition, ActivityDefinition, ActorDefinition, CanonicalResource, CapabilityStatement, ChargeItemDefinition, Citation, CodeSystem, CompartmentDefinition, Composition, ConceptMap, ConditionDefinition, DeviceDefinition, EventDefinition, Evidence, EvidenceReport, EvidenceVariable, ExampleScenario, GraphDefinition, Group, ImplementationGuide, Library, Measure, MessageDefinition, NamingSystem, ObservationDefinition, OperationDefinition, PlanDefinition, Questionnaire, Requirements, SearchParameter, SpecimenDefinition, StructureDefinition, StructureMap, SubscriptionTopic, TerminologyCapabilities, TestPlan, TestScript and ValueSet

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

The ExtendedContactDetail structure defines extended contact details for a named, or unnamed individual/purpose.

These are extensively used in provider directory resources where contact information is often very rich in nature, and requires additional metadata around their usage.
This datatype permits the context of the contact informations use to be provided, and groups them together with other important metadata.

Not all properties are expected to be present in all instances, and only the ones that apply.
e.g. A website contact will only have the telecom included, but might also include a purpose and possibly a period if required. Whereas an accounts contact detail could include their name, postal address and telephone number (and possibly Organization if it was an outsourced capability)

The period provides the general start and end of the contact's applicability for usage. This is not intended to store a history of usages over time, but a convenient way to record upcoming relevant changes to the content when it is being published.
This permits a contact to be marked as becoming available from X, or is expected to no longer be available from Y. An extension may be used to mark a contact's general availability times (9am - 5pm) and also exceptions where the contact is not available (e.g. Public holidays)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ExtendedContactDetailΣTUElementContact information

Elements defined in Ancestors: id, extension
... purposeΣ0..1CodeableConceptThe type of contact
Binding: Contact entity type icon (Preferred)
... nameΣ0..*HumanNameName of an individual to contact

... telecomΣ0..*ContactPointContact details (e.g.phone/fax/url)

... organizationΣ0..1Reference(Organization)This contact detail is handled/monitored by a specific organization
... periodΣ0..1PeriodPeriod that this contact was valid for usage

doco Documentation for this format icon

Definition: XML | JSON

XML Template

<ExtendedContactDetail xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <purpose><!-- 0..1 CodeableConcept The type of contact icon --></purpose>
 <name><!-- 0..* HumanName Name of an individual to contact --></name>
 <telecom><!-- 0..* ContactPoint Contact details (e.g.phone/fax/url) --></telecom>
 <address><!-- 0..1 Address Address for the contact --></address>
 <organization><!-- 0..1 Reference(Organization) This contact detail is handled/monitored by a specific organization --></organization>
 <period><!-- 0..1 Period Period that this contact was valid for usage --></period>
</ExtendedContactDetail>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:purpose [ CodeableConcept ] ; # 0..1 The type of contact
  fhir:name  ( [ HumanName ] ... ) ; # 0..* Name of an individual to contact
  fhir:telecom  ( [ ContactPoint ] ... ) ; # 0..* Contact details (e.g.phone/fax/url)
  fhir:address [ Address ] ; # 0..1 Address for the contact
  fhir:organization [ Reference(Organization) ] ; # 0..1 This contact detail is handled/monitored by a specific organization
  fhir:period [ Period ] ; # 0..1 Period that this contact was valid for usage
]

Changes since Release 3

Changes from both R4 and R4B

This complex-type did not exist in Release R4

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. ExtendedContactDetailΣTUElementContact information

Elements defined in Ancestors: id, extension
... purposeΣ0..1CodeableConceptThe type of contact
Binding: Contact entity type icon (Preferred)
... nameΣ0..*HumanNameName of an individual to contact

... telecomΣ0..*ContactPointContact details (e.g.phone/fax/url)

... organizationΣ0..1Reference(Organization)This contact detail is handled/monitored by a specific organization
... periodΣ0..1PeriodPeriod that this contact was valid for usage

doco Documentation for this format icon

XML Template

<ExtendedContactDetail xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <purpose><!-- 0..1 CodeableConcept The type of contact icon --></purpose>
 <name><!-- 0..* HumanName Name of an individual to contact --></name>
 <telecom><!-- 0..* ContactPoint Contact details (e.g.phone/fax/url) --></telecom>
 <address><!-- 0..1 Address Address for the contact --></address>
 <organization><!-- 0..1 Reference(Organization) This contact detail is handled/monitored by a specific organization --></organization>
 <period><!-- 0..1 Period Period that this contact was valid for usage --></period>
</ExtendedContactDetail>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:purpose [ CodeableConcept ] ; # 0..1 The type of contact
  fhir:name  ( [ HumanName ] ... ) ; # 0..* Name of an individual to contact
  fhir:telecom  ( [ ContactPoint ] ... ) ; # 0..* Contact details (e.g.phone/fax/url)
  fhir:address [ Address ] ; # 0..1 Address for the contact
  fhir:organization [ Reference(Organization) ] ; # 0..1 This contact detail is handled/monitored by a specific organization
  fhir:period [ Period ] ; # 0..1 Period that this contact was valid for usage
]

Changes since Release 3

Changes from both R4 and R4B

This complex-type did not exist in Release R4

See the Full Difference for further information

Constraints

Terminology Bindings

PathValueSetTypeDocumentation
ExtendedContactDetail.purpose ContactEntityType icon Preferred

This example value set defines a set of codes that can be used to indicate the purpose for which you would contact a contact party.

ExtendedContactDetail is used in the following places: VirtualServiceDetail, HealthcareService, InsuranceProduct, Location, Organization, OrganizationAffiliation and PractitionerRole

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

The VirtualServiceDetail structure defines details of a virtual communication capability, such as a web conference call.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. VirtualServiceDetailΣTUElementVirtual Service Contact Details

Elements defined in Ancestors: id, extension
... channelTypeΣ0..1CodingChannel Type
Binding: Virtual Service Type (Example)
... address[x]Σ0..1Contact address/number
.... addressUrlurl
.... addressStringstring
.... addressContactPointContactPoint
.... addressExtendedContactDetailExtendedContactDetail
... additionalInfoΣ0..*urlWeb address to see alternative connection details

... sessionKeyΣ0..1stringSession Key required by the virtual service

doco Documentation for this format icon

Definition: XML | JSON

XML Template

<VirtualServiceDetail xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <channelType><!-- 0..1 Coding Channel Type --></channelType>
 <address[x]><!-- 0..1 url|string|ContactPoint|ExtendedContactDetail Contact address/number --></address[x]>
 <additionalInfo value="[url]"/><!-- 0..* Web address to see alternative connection details -->
 <maxParticipants value="[positiveInt]"/><!-- 0..1 Maximum number of participants supported by the virtual service -->
 <sessionKey value="[string]"/><!-- 0..1 Session Key required by the virtual service -->
</VirtualServiceDetail>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:channelType [ Coding ] ; # 0..1 Channel Type
  # address[x] : 0..1 Contact address/number. One of these 4
    fhir:address [  a fhir:url ; url ]
    fhir:address [  a fhir:string ; string ]
    fhir:address [  a fhir:ContactPoint ; ContactPoint ]
    fhir:address [  a fhir:ExtendedContactDetail ; ExtendedContactDetail ]
  fhir:additionalInfo  ( [ url ] ... ) ; # 0..* Web address to see alternative connection details
  fhir:maxParticipants [ positiveInt ] ; # 0..1 Maximum number of participants supported by the virtual service
  fhir:sessionKey [ string ] ; # 0..1 Session Key required by the virtual service
]

Changes since Release 3

Changes from both R4 and R4B

This complex-type did not exist in Release R4

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. VirtualServiceDetailΣTUElementVirtual Service Contact Details

Elements defined in Ancestors: id, extension
... channelTypeΣ0..1CodingChannel Type
Binding: Virtual Service Type (Example)
... address[x]Σ0..1Contact address/number
.... addressUrlurl
.... addressStringstring
.... addressContactPointContactPoint
.... addressExtendedContactDetailExtendedContactDetail
... additionalInfoΣ0..*urlWeb address to see alternative connection details

... sessionKeyΣ0..1stringSession Key required by the virtual service

doco Documentation for this format icon

XML Template

<VirtualServiceDetail xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <channelType><!-- 0..1 Coding Channel Type --></channelType>
 <address[x]><!-- 0..1 url|string|ContactPoint|ExtendedContactDetail Contact address/number --></address[x]>
 <additionalInfo value="[url]"/><!-- 0..* Web address to see alternative connection details -->
 <maxParticipants value="[positiveInt]"/><!-- 0..1 Maximum number of participants supported by the virtual service -->
 <sessionKey value="[string]"/><!-- 0..1 Session Key required by the virtual service -->
</VirtualServiceDetail>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:channelType [ Coding ] ; # 0..1 Channel Type
  # address[x] : 0..1 Contact address/number. One of these 4
    fhir:address [  a fhir:url ; url ]
    fhir:address [  a fhir:string ; string ]
    fhir:address [  a fhir:ContactPoint ; ContactPoint ]
    fhir:address [  a fhir:ExtendedContactDetail ; ExtendedContactDetail ]
  fhir:additionalInfo  ( [ url ] ... ) ; # 0..* Web address to see alternative connection details
  fhir:maxParticipants [ positiveInt ] ; # 0..1 Maximum number of participants supported by the virtual service
  fhir:sessionKey [ string ] ; # 0..1 Session Key required by the virtual service
]

Changes since Release 3

Changes from both R4 and R4B

This complex-type did not exist in Release R4

See the Full Difference for further information

Constraints

Terminology Bindings

PathValueSetTypeDocumentation
VirtualServiceDetail.channelType VirtualServiceType Example

Example codes for possible virtual service connection types.

VirtualServiceDetail is used in the following places: Appointment, Encounter and Location

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

The Availability structure defines a pattern of availability data typically used in directory resources.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. AvailabilityΣTUElementAvailability data for an {item}

Elements defined in Ancestors: id, extension
... periodΣ0..1PeriodWhen the availability applies
... availableTimeΣC0..*ElementTimes the {item} is available
+ Rule: Cannot include start/end times when selecting all day availability.

.... daysOfWeekΣ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: Days Of Week (Required)

.... allDayΣC0..1booleanAlways available? i.e. 24 hour service
.... availableStartTimeΣC0..1timeOpening time of day (ignored if allDay = true)
.... availableEndTimeΣC0..1timeClosing time of day (ignored if allDay = true)
... notAvailableTimeΣ0..*ElementNot available during this time due to provided reason

.... descriptionΣ0..1stringReason presented to the user explaining why time not available
.... duringΣ0..1PeriodService not available during this period

doco Documentation for this format icon

Definition: XML | JSON

XML Template

<Availability xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <period><!-- 0..1 Period When the availability applies --></period>
 <availableTime>  <!-- 0..* Times the {item} is available -->
  <daysOfWeek value="[code]"/><!-- 0..* mon | tue | wed | thu | fri | sat | sun -->
  <allDay value="[boolean]"/><!-- I 0..1 Always available? i.e. 24 hour service -->
  <availableStartTime value="[time]"/><!-- I 0..1 Opening time of day (ignored if allDay = true) -->
  <availableEndTime value="[time]"/><!-- I 0..1 Closing time of day (ignored if allDay = true) -->
 </availableTime>
 <notAvailableTime>  <!-- 0..* Not available during this time due to provided reason -->
  <description value="[string]"/><!-- 0..1 Reason presented to the user explaining why time not available -->
  <during><!-- 0..1 Period Service not available during this period --></during>
 </notAvailableTime>
</Availability>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:period [ Period ] ; # 0..1 When the availability applies
  fhir:availableTime ( [ # 0..* Times the {item} is available
    fhir:daysOfWeek  ( [ code ] ... ) ; # 0..* mon | tue | wed | thu | fri | sat | sun
    fhir:allDay [ boolean ] ; # 0..1 I Always available? i.e. 24 hour service
    fhir:availableStartTime [ time ] ; # 0..1 I Opening time of day (ignored if allDay = true)
    fhir:availableEndTime [ time ] ; # 0..1 I Closing time of day (ignored if allDay = true)
  ] ... ) ;
  fhir:notAvailableTime ( [ # 0..* Not available during this time due to provided reason
    fhir:description [ string ] ; # 0..1 Reason presented to the user explaining why time not available
    fhir:during [ Period ] ; # 0..1 Service not available during this period
  ] ... ) ;
]

Changes since Release 3

Changes from both R4 and R4B

This complex-type did not exist in Release R4

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. AvailabilityΣTUElementAvailability data for an {item}

Elements defined in Ancestors: id, extension
... periodΣ0..1PeriodWhen the availability applies
... availableTimeΣC0..*ElementTimes the {item} is available
+ Rule: Cannot include start/end times when selecting all day availability.

.... daysOfWeekΣ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: Days Of Week (Required)

.... allDayΣC0..1booleanAlways available? i.e. 24 hour service
.... availableStartTimeΣC0..1timeOpening time of day (ignored if allDay = true)
.... availableEndTimeΣC0..1timeClosing time of day (ignored if allDay = true)
... notAvailableTimeΣ0..*ElementNot available during this time due to provided reason

.... descriptionΣ0..1stringReason presented to the user explaining why time not available
.... duringΣ0..1PeriodService not available during this period

doco Documentation for this format icon

XML Template

<Availability xmlns="http://hl7.org/fhir">
 <!-- from Element: extension -->
 <period><!-- 0..1 Period When the availability applies --></period>
 <availableTime>  <!-- 0..* Times the {item} is available -->
  <daysOfWeek value="[code]"/><!-- 0..* mon | tue | wed | thu | fri | sat | sun -->
  <allDay value="[boolean]"/><!-- I 0..1 Always available? i.e. 24 hour service -->
  <availableStartTime value="[time]"/><!-- I 0..1 Opening time of day (ignored if allDay = true) -->
  <availableEndTime value="[time]"/><!-- I 0..1 Closing time of day (ignored if allDay = true) -->
 </availableTime>
 <notAvailableTime>  <!-- 0..* Not available during this time due to provided reason -->
  <description value="[string]"/><!-- 0..1 Reason presented to the user explaining why time not available -->
  <during><!-- 0..1 Period Service not available during this period --></during>
 </notAvailableTime>
</Availability>

Turtle Template

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

[
 # from Element: Element.extension
  fhir:period [ Period ] ; # 0..1 When the availability applies
  fhir:availableTime ( [ # 0..* Times the {item} is available
    fhir:daysOfWeek  ( [ code ] ... ) ; # 0..* mon | tue | wed | thu | fri | sat | sun
    fhir:allDay [ boolean ] ; # 0..1 I Always available? i.e. 24 hour service
    fhir:availableStartTime [ time ] ; # 0..1 I Opening time of day (ignored if allDay = true)
    fhir:availableEndTime [ time ] ; # 0..1 I Closing time of day (ignored if allDay = true)
  ] ... ) ;
  fhir:notAvailableTime ( [ # 0..* Not available during this time due to provided reason
    fhir:description [ string ] ; # 0..1 Reason presented to the user explaining why time not available
    fhir:during [ Period ] ; # 0..1 Service not available during this period
  ] ... ) ;
]

Changes since Release 3

Changes from both R4 and R4B

This complex-type did not exist in Release R4

See the Full Difference for further information

Constraints

idLevelLocationDescriptionExpression
img av-1Rule Availability.availableTimeCannot include start/end times when selecting all day availability.allDay.exists().not() or (allDay implies availableStartTime.exists().not() and availableEndTime.exists().not())

Terminology Bindings

PathValueSetTypeDocumentation
Availability.availableTime.daysOfWeek DaysOfWeek Required

The days of the week.

Availability is used in the following places: Endpoint, HealthcareService, Location and PractitionerRole

FHIR Infrastructure icon Work GroupMaturity Level: 5Standards Status: Trial Use

See also Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

The MonetaryComponent structure defines a the set of properties across the financial resources.

This component is typically used in a list where each value provides a different type of value contributing to the final value used in line items on a financial transaction.
For example, a line item for a product might include the net price, the tax amount, and the surcharge amount as separate components.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MonetaryComponentΣTUElementTypes and value of financial information that apply to line item(s)

Elements defined in Ancestors: id, extension
... typeΣ1..1codebase | surcharge | discount | tax | informational
Binding: Price Component Type (Required)
... codeΣ0..1CodeableConceptCodes may be used to differentiate between kinds of taxes, surcharges, discounts etc.
... factorΣ0..1decimalFactor used for calculating this component

doco Documentation for this format icon

Definition: XML | JSON

XML Template

Turtle Template

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

[
 # from Element: Element.extension
  fhir:type [ code ] ; # 1..1 base | surcharge | discount | tax | informational
  fhir:code [ CodeableConcept ] ; # 0..1 Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.
  fhir:factor [ decimal ] ; # 0..1 Factor used for calculating this component
  fhir:amount [ Money ] ; # 0..1 Explicit value amount to be used
]

Changes since Release 3

Changes from both R4 and R4B

This complex-type did not exist in Release R4

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MonetaryComponentΣTUElementTypes and value of financial information that apply to line item(s)

Elements defined in Ancestors: id, extension
... typeΣ1..1codebase | surcharge | discount | tax | informational
Binding: Price Component Type (Required)
... codeΣ0..1CodeableConceptCodes may be used to differentiate between kinds of taxes, surcharges, discounts etc.
... factorΣ0..1decimalFactor used for calculating this component

doco Documentation for this format icon

XML Template

Turtle Template

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

[
 # from Element: Element.extension
  fhir:type [ code ] ; # 1..1 base | surcharge | discount | tax | informational
  fhir:code [ CodeableConcept ] ; # 0..1 Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.
  fhir:factor [ decimal ] ; # 0..1 Factor used for calculating this component
  fhir:amount [ Money ] ; # 0..1 Explicit value amount to be used
]

Changes since Release 3

Changes from both R4 and R4B

This complex-type did not exist in Release R4

See the Full Difference for further information

Constraints

Terminology Bindings

PathValueSetTypeDocumentation
MonetaryComponent.type PriceComponentType Required

Codes indicating the kind of the price component.

MonetaryComponent.code UnknownNo details provided yetExampleCodes may be used to differentiate between kinds of taxes, surcharges, discounts etc.

MonetaryComponent is used in the following places: ChargeItem, ChargeItemDefinition and Invoice