This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3
Modeling and Methodology Work Group | Maturity Level: N/A | Ballot Status: Informative |
StructureDefinition for DataRequirement
{ "resourceType": "StructureDefinition", "id": "DataRequirement", "meta": { "lastUpdated": "2019-10-24T11:53:00+11:00" }, "text": { "status": "generated", "div": "<div>!-- Snipped for Brevity --></div>" }, "url": "http://hl7.org/fhir/StructureDefinition/DataRequirement", "name": "DataRequirement", "status": "draft", "date": "2019-10-24T11:53:00+11:00", "publisher": "HL7 FHIR Standard", "contact": [ { "telecom": [ { "system": "url", "value": "http://hl7.org/fhir" } ] } ], "description": "Base StructureDefinition for DataRequirement Type", "fhirVersion": "3.0.2", "mapping": [ { "identity": "rim", "uri": "http://hl7.org/v3", "name": "RIM Mapping" } ], "kind": "complex-type", "abstract": false, "type": "DataRequirement", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Element", "derivation": "specialization", "snapshot": { "element": [ { "id": "DataRequirement", "path": "DataRequirement", "short": "Describes a required data item", "definition": "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.", "min": 0, "max": "*", "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "DataRequirement.id", "path": "DataRequirement.id", "representation": [ "xmlAttr" ], "short": "xml:id (or equivalent in JSON)", "definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "DataRequirement.extension", "path": "DataRequirement.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "short": "Additional Content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", "alias": [ "extensions", "user content" ], "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "DataRequirement.type", "path": "DataRequirement.type", "short": "The type of the required data", "definition": "The type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profile.", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "FHIRAllTypes" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "Either an abstract type, a resource or a data type.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/all-types" } } }, { "id": "DataRequirement.profile", "path": "DataRequirement.profile", "short": "The profile of the required data", "definition": "The profile of the required data, specified as the uri of the profile definition.", "min": 0, "max": "*", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "DataRequirement.mustSupport", "path": "DataRequirement.mustSupport", "short": "Indicates that specific structure elements are referenced by the knowledge module", "definition": "Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are available. Note that the value for this element can be a path to allow references to nested elements. In that case, all the elements along the path must be supported.", "min": 0, "max": "*", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter", "path": "DataRequirement.codeFilter", "short": "What codes are expected", "definition": "Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.id", "path": "DataRequirement.codeFilter.id", "representation": [ "xmlAttr" ], "short": "xml:id (or equivalent in JSON)", "definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "DataRequirement.codeFilter.extension", "path": "DataRequirement.codeFilter.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "short": "Additional Content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", "alias": [ "extensions", "user content" ], "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "DataRequirement.codeFilter.path", "path": "DataRequirement.codeFilter.path", "short": "The code-valued attribute of the filter", "definition": "The code-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueSet[x]", "path": "DataRequirement.codeFilter.valueSet[x]", "short": "Valueset for the filter", "definition": "The valueset for the code filter. The valueSet and value elements are exclusive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset.", "min": 0, "max": "1", "type": [ { "code": "string" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/ValueSet" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCode", "path": "DataRequirement.codeFilter.valueCode", "short": "What code is expected", "definition": "The codes for the code filter. Only one of valueSet, valueCode, valueCoding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codes.", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCoding", "path": "DataRequirement.codeFilter.valueCoding", "short": "What Coding is expected", "definition": "The Codings for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified Codings.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCodeableConcept", "path": "DataRequirement.codeFilter.valueCodeableConcept", "short": "What CodeableConcept is expected", "definition": "The CodeableConcepts for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified CodeableConcepts.", "min": 0, "max": "*", "type": [ { "code": "CodeableConcept" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter", "path": "DataRequirement.dateFilter", "short": "What dates/date ranges are expected", "definition": "Date filters specify additional constraints on the data in terms of the applicable date range for specific elements.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter.id", "path": "DataRequirement.dateFilter.id", "representation": [ "xmlAttr" ], "short": "xml:id (or equivalent in JSON)", "definition": "unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "DataRequirement.dateFilter.extension", "path": "DataRequirement.dateFilter.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "short": "Additional Content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", "alias": [ "extensions", "user content" ], "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "DataRequirement.dateFilter.path", "path": "DataRequirement.dateFilter.path", "short": "The date-valued attribute of the filter", "definition": "The date-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type dateTime, Period, Schedule, or Timing.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter.value[x]", "path": "DataRequirement.dateFilter.value[x]", "short": "The value of the filter, as a Period, DateTime, or Duration value", "definition": "The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration from now.", "min": 0, "max": "1", "type": [ { "code": "dateTime" }, { "code": "Period" }, { "code": "Duration" } ], "isSummary": true } ] }, "differential": { "element": [ { "id": "DataRequirement", "path": "DataRequirement", "short": "Describes a required data item", "definition": "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.", "min": 0, "max": "*" }, { "id": "DataRequirement.type", "path": "DataRequirement.type", "short": "The type of the required data", "definition": "The type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profile.", "min": 1, "max": "1", "type": [ { "code": "code" } ], "isSummary": true, "binding": { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", "valueString": "FHIRAllTypes" }, { "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", "valueBoolean": true } ], "strength": "required", "description": "Either an abstract type, a resource or a data type.", "valueSetReference": { "reference": "http://hl7.org/fhir/ValueSet/all-types" } } }, { "id": "DataRequirement.profile", "path": "DataRequirement.profile", "short": "The profile of the required data", "definition": "The profile of the required data, specified as the uri of the profile definition.", "min": 0, "max": "*", "type": [ { "code": "uri" } ], "isSummary": true }, { "id": "DataRequirement.mustSupport", "path": "DataRequirement.mustSupport", "short": "Indicates that specific structure elements are referenced by the knowledge module", "definition": "Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are available. Note that the value for this element can be a path to allow references to nested elements. In that case, all the elements along the path must be supported.", "min": 0, "max": "*", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter", "path": "DataRequirement.codeFilter", "short": "What codes are expected", "definition": "Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.path", "path": "DataRequirement.codeFilter.path", "short": "The code-valued attribute of the filter", "definition": "The code-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueSet[x]", "path": "DataRequirement.codeFilter.valueSet[x]", "short": "Valueset for the filter", "definition": "The valueset for the code filter. The valueSet and value elements are exclusive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset.", "min": 0, "max": "1", "type": [ { "code": "string" }, { "code": "Reference", "targetProfile": "http://hl7.org/fhir/StructureDefinition/ValueSet" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCode", "path": "DataRequirement.codeFilter.valueCode", "short": "What code is expected", "definition": "The codes for the code filter. Only one of valueSet, valueCode, valueCoding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codes.", "min": 0, "max": "*", "type": [ { "code": "code" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCoding", "path": "DataRequirement.codeFilter.valueCoding", "short": "What Coding is expected", "definition": "The Codings for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified Codings.", "min": 0, "max": "*", "type": [ { "code": "Coding" } ], "isSummary": true }, { "id": "DataRequirement.codeFilter.valueCodeableConcept", "path": "DataRequirement.codeFilter.valueCodeableConcept", "short": "What CodeableConcept is expected", "definition": "The CodeableConcepts for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified CodeableConcepts.", "min": 0, "max": "*", "type": [ { "code": "CodeableConcept" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter", "path": "DataRequirement.dateFilter", "short": "What dates/date ranges are expected", "definition": "Date filters specify additional constraints on the data in terms of the applicable date range for specific elements.", "min": 0, "max": "*", "type": [ { "code": "Element" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter.path", "path": "DataRequirement.dateFilter.path", "short": "The date-valued attribute of the filter", "definition": "The date-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type dateTime, Period, Schedule, or Timing.", "min": 1, "max": "1", "type": [ { "code": "string" } ], "isSummary": true }, { "id": "DataRequirement.dateFilter.value[x]", "path": "DataRequirement.dateFilter.value[x]", "short": "The value of the filter, as a Period, DateTime, or Duration value", "definition": "The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration from now.", "min": 0, "max": "1", "type": [ { "code": "dateTime" }, { "code": "Period" }, { "code": "Duration" } ], "isSummary": true } ] } }
Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.