Structured Data Capture 2.0 (STU2)

The official URL for this profile is:

http://hl7.org/fhir/us/sdc/StructureDefinition/sdc-dataelement

This profile sets expectations for use of the DataElement resource within the Structured Data Capture implementation guide. This includes identifying which core elements and extensions must be supported.

The focus of this profile is on those characteristics of Data Elements which are necessary to support the definition of forms (questionnaires) that can support auto-population or pre-population of content on the basis of referenced data elements.

For the purposes of this profile, Supported means that clients SHALL be capable of processing the element/extension and use the information to control the display and information capture associated with the DataElement. It means that servers SHALL be capable of persisting those elements and returning them in response to requests.

This profile relies on the use of a number of other profiles, some required, others available for use "when necessary":

  • datalement-11179 which defines extensions for ISO-11179-specific concepts, such as ObjectClass and Property
  • element-extensions which defines extensions describing constraints on the values for data elements. There are used here to constrain the allowed values for questions.
  • general-extensions provides extensions for strings allowing the conveying of translations, which may be relevant in some environment

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from DataElement

NameFlagsCard.TypeDescription & Constraintsdoco
.. DataElement 0..*
... url S1..1uri
... identifier S1..*Identifier
... version S0..1string
... status S1..1code
... experimental S0..1boolean
... date S0..1dateTime
... publisher S0..1string
... name S1..1string
... contact S0..*ContactDetail
.... telecom S0..*ContactPoint
... useContext S0..*UsageContext
... copyright S0..1markdown
... stringency S1..1code
... mapping S0..*BackboneElement
.... identity S1..1id
.... uri S0..1uri
.... name S0..1string
.... comment S0..1string
... element S1..*ElementDefinition
.... path S1..1string
.... representation 0..*code
.... sliceName 0..0
.... label S0..1string
.... code S0..*Coding
.... slicing 0..1Element
.... short 0..1string
.... definition S0..1markdown
.... comment S0..1markdown
.... requirements S0..1markdown
.... alias S0..*string
.... min S0..0
.... max S0..0
.... base 0..0
.... contentReference 0..0
.... type S0..1Element
..... code S1..1uri
..... profile 0..1uri
..... targetProfile 0..0
..... aggregation 0..*code
..... versioning 0..0
.... defaultValue[x] 0..0
.... meaningWhenMissing 0..0
.... fixed[x] 0..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta
.... pattern[x] 0..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta
.... example S0..*Element
..... label S1..1string
..... value[x] S1..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta
.... minValue[x] S0..1integer, decimal, instant, date, time, dateTime, Quantity
.... maxValue[x] S0..1integer, decimal, instant, date, time, dateTime, Quantity
.... maxLength S0..1integer
.... condition S0..0
.... constraint S0..0
.... mustSupport 0..0
.... isModifier 0..1boolean
.... isSummary 0..1boolean
.... binding S0..1Element
..... strength S1..1code
..... description S0..1string
..... valueSetReference S1..1Reference(Structured Data Capture Value Set)
.... mapping S0..*Element
..... identity S1..1id
..... language S0..1codeBinding: DEX mapping language mime types (required)
..... map S1..1string
..... elementdefinition-equivalence S1..1codeequivalent | equal | wider | subsumes | narrower | specializes | inexact | unmatched | disjoint
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence
Binding: ConceptMapEquivalence (required)
...... valueCode S1..1codeFixed Value: equivalent
.... elementdefinition-question S0..*stringPrompt for element phrased as question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
.... elementdefinition-allowedUnits S0..1CodeableConcept, Reference(ValueSet)Units to use for measured value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
.... minLength S0..1integerAt least this many characters
URL: http://hl7.org/fhir/StructureDefinition/minLength
.... regex S0..1stringRegular expression pattern
URL: http://hl7.org/fhir/StructureDefinition/regex
.... entryFormat S0..1stringUser prompt for format
URL: http://hl7.org/fhir/StructureDefinition/entryFormat
.... maxDecimalPlaces S0..1integerMaximum digits after decimal
URL: http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. DataElement I0..*Resource data element
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url SΣ1..1uriLogical URI to reference this data element (globally unique)
... identifier SΣ1..*IdentifierAdditional identifier for the data element
... version SΣ0..1stringBusiness version of the data element
... status ?!SΣ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required)
... experimental ?!SΣ0..1booleanFor testing purposes, not real usage
... date SΣ0..1dateTimeDate this was last changed
... publisher SΣ0..1stringName of the publisher (organization or individual)
... name SΣ1..1stringName for this data element (computer friendly)
... title Σ0..1stringName for this data element (human friendly)
... contact SΣ0..*ContactDetailContact details for the publisher
.... id 0..1stringxml:id (or equivalent in JSON)
.... name Σ0..1stringName of an individual to contact
.... telecom SΣ0..*ContactPointContact details for individual or organization
... useContext SΣ0..*UsageContextContext the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for data element (if applicable)
Binding: Jurisdiction ValueSet (extensible)
... copyright S0..1markdownUse and/or publishing restrictions
... stringency SΣ1..1codecomparable | fully-specified | equivalent | convertable | scaleable | flexible
Binding: DataElementStringency (required)
... mapping SI0..*BackboneElementExternal specification mapped to
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... identity S1..1idInternal id when this mapping is used
.... uri S0..1uriIdentifies what this mapping refers to
.... name S0..1stringNames what this mapping refers to
.... comment S0..1stringVersions, issues, scope limitations, etc.
... element SΣI1..*ElementDefinitionDefinition of element
.... id 0..1stringxml:id (or equivalent in JSON)
.... elementdefinition-question S0..*stringExtension
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-question"
..... valueString 0..1stringValue of extension
.... elementdefinition-allowedUnits S0..1CodeableConcept, Reference(ValueSet)Extension
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits"
..... value[x] 1..1CodeableConcept, Reference(ValueSet)Value of extension
Binding: UCUM Codes (required)
.... minLength S0..1integerExtension
URL: http://hl7.org/fhir/StructureDefinition/minLength
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/minLength"
..... valueInteger 0..1integerValue of extension
.... regex S0..1stringExtension
URL: http://hl7.org/fhir/StructureDefinition/regex
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/regex"
..... valueString 0..1stringValue of extension
.... entryFormat S0..1stringExtension
URL: http://hl7.org/fhir/StructureDefinition/entryFormat
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/entryFormat"
..... valueString 0..1stringValue of extension
.... maxDecimalPlaces S0..1integerExtension
URL: http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces"
..... valueInteger 0..1integerValue of extension
.... path SΣ1..1stringPath of the element in the hierarchy of elements
.... representation Σ0..*codexmlAttr | xmlText | typeAttr | cdaText | xhtml
Binding: PropertyRepresentation (required)
.... label SΣ0..1stringName for element to display with or prompt for element
.... code SΣ0..*CodingCorresponding codes in terminologies
Binding: LOINC Codes (example)
.... slicing ΣI0..1ElementThis element is sliced - slices follow
..... id 0..1stringxml:id (or equivalent in JSON)
..... discriminator ΣI0..*ElementElement values that are used to distinguish the slices
...... id 0..1stringxml:id (or equivalent in JSON)
...... type Σ1..1codevalue | exists | pattern | type | profile
Binding: DiscriminatorType (required)
...... path Σ1..1stringPath to element value
..... description ΣI0..1stringText description of how slicing works (or not)
..... ordered Σ0..1booleanIf elements must be in same order as slices
..... rules Σ1..1codeclosed | open | openAtEnd
Binding: SlicingRules (required)
.... short Σ0..1stringConcise definition for space-constrained presentation
.... definition SΣ0..1markdownFull formal definition as narrative text
.... comment SΣ0..1markdownComments about the use of this element
.... requirements SΣ0..1markdownWhy this resource has been created
.... alias SΣ0..*stringOther names
.... type SΣI0..1ElementData type and Profile for this element
..... id 0..1stringxml:id (or equivalent in JSON)
..... code SΣ1..1uriData type or Resource (reference to definition)
..... profile Σ0..1uriProfile (StructureDefinition) to apply (or IG)
..... aggregation ΣI0..*codecontained | referenced | bundled - how aggregated
Binding: AggregationMode (required)
.... orderMeaning Σ0..1stringWhat the order of the elements means
.... fixed[x] ΣI0..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaValue must be exactly this
.... pattern[x] ΣI0..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaValue must have at least these property values
.... example SΣI0..*ElementExample value (as defined for type)
..... id 0..1stringxml:id (or equivalent in JSON)
..... label SΣ1..1stringDescribes the purpose of this example
..... value[x] SΣ1..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaValue of Example (one of allowed types)
.... minValue[x] SΣ0..1integer, decimal, instant, date, time, dateTime, QuantityMinimum Allowed Value (for some types)
.... maxValue[x] SΣ0..1integer, decimal, instant, date, time, dateTime, QuantityMaximum Allowed Value (for some types)
.... maxLength SΣ0..1integerMax length for strings
.... isModifier Σ0..1booleanIf this modifies the meaning of other elements
.... isSummary Σ0..1booleanInclude when _summary = true?
.... binding SΣI0..1ElementValueSet details if this is coded
..... id 0..1stringxml:id (or equivalent in JSON)
..... strength SΣ1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required)
..... description SΣI0..1stringHuman explanation of the value set
..... valueSetReference SΣI1..1Reference(Structured Data Capture Value Set)Source of value set
.... mapping SΣI0..*ElementMap element to another set of definitions
..... id 0..1stringxml:id (or equivalent in JSON)
..... elementdefinition-equivalence S1..1codeExtension
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence
Binding: ConceptMapEquivalence (required)
...... id 0..1stringxml:id (or equivalent in JSON)
...... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence"
...... valueCode S1..1codeValue of extension
Binding: ConceptMapEquivalence (required)
Fixed Value: equivalent
..... identity SΣ1..1idReference to mapping declaration
..... language SΣ0..1codeComputable language of mapping
Binding: DEX mapping language mime types (required)
..... map SΣ1..1stringDetails of the mapping
..... comment Σ0..1stringComments about the mapping or its use

doco Documentation for this format

Differential View

This structure is derived from DataElement

NameFlagsCard.TypeDescription & Constraintsdoco
.. DataElement 0..*
... url S1..1uri
... identifier S1..*Identifier
... version S0..1string
... status S1..1code
... experimental S0..1boolean
... date S0..1dateTime
... publisher S0..1string
... name S1..1string
... contact S0..*ContactDetail
.... telecom S0..*ContactPoint
... useContext S0..*UsageContext
... copyright S0..1markdown
... stringency S1..1code
... mapping S0..*BackboneElement
.... identity S1..1id
.... uri S0..1uri
.... name S0..1string
.... comment S0..1string
... element S1..*ElementDefinition
.... path S1..1string
.... representation 0..*code
.... sliceName 0..0
.... label S0..1string
.... code S0..*Coding
.... slicing 0..1Element
.... short 0..1string
.... definition S0..1markdown
.... comment S0..1markdown
.... requirements S0..1markdown
.... alias S0..*string
.... min S0..0
.... max S0..0
.... base 0..0
.... contentReference 0..0
.... type S0..1Element
..... code S1..1uri
..... profile 0..1uri
..... targetProfile 0..0
..... aggregation 0..*code
..... versioning 0..0
.... defaultValue[x] 0..0
.... meaningWhenMissing 0..0
.... fixed[x] 0..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta
.... pattern[x] 0..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta
.... example S0..*Element
..... label S1..1string
..... value[x] S1..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, Meta
.... minValue[x] S0..1integer, decimal, instant, date, time, dateTime, Quantity
.... maxValue[x] S0..1integer, decimal, instant, date, time, dateTime, Quantity
.... maxLength S0..1integer
.... condition S0..0
.... constraint S0..0
.... mustSupport 0..0
.... isModifier 0..1boolean
.... isSummary 0..1boolean
.... binding S0..1Element
..... strength S1..1code
..... description S0..1string
..... valueSetReference S1..1Reference(Structured Data Capture Value Set)
.... mapping S0..*Element
..... identity S1..1id
..... language S0..1codeBinding: DEX mapping language mime types (required)
..... map S1..1string
..... elementdefinition-equivalence S1..1codeequivalent | equal | wider | subsumes | narrower | specializes | inexact | unmatched | disjoint
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence
Binding: ConceptMapEquivalence (required)
...... valueCode S1..1codeFixed Value: equivalent
.... elementdefinition-question S0..*stringPrompt for element phrased as question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
.... elementdefinition-allowedUnits S0..1CodeableConcept, Reference(ValueSet)Units to use for measured value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
.... minLength S0..1integerAt least this many characters
URL: http://hl7.org/fhir/StructureDefinition/minLength
.... regex S0..1stringRegular expression pattern
URL: http://hl7.org/fhir/StructureDefinition/regex
.... entryFormat S0..1stringUser prompt for format
URL: http://hl7.org/fhir/StructureDefinition/entryFormat
.... maxDecimalPlaces S0..1integerMaximum digits after decimal
URL: http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DataElement I0..*Resource data element
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url SΣ1..1uriLogical URI to reference this data element (globally unique)
... identifier SΣ1..*IdentifierAdditional identifier for the data element
... version SΣ0..1stringBusiness version of the data element
... status ?!SΣ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required)
... experimental ?!SΣ0..1booleanFor testing purposes, not real usage
... date SΣ0..1dateTimeDate this was last changed
... publisher SΣ0..1stringName of the publisher (organization or individual)
... name SΣ1..1stringName for this data element (computer friendly)
... title Σ0..1stringName for this data element (human friendly)
... contact SΣ0..*ContactDetailContact details for the publisher
.... id 0..1stringxml:id (or equivalent in JSON)
.... name Σ0..1stringName of an individual to contact
.... telecom SΣ0..*ContactPointContact details for individual or organization
... useContext SΣ0..*UsageContextContext the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for data element (if applicable)
Binding: Jurisdiction ValueSet (extensible)
... copyright S0..1markdownUse and/or publishing restrictions
... stringency SΣ1..1codecomparable | fully-specified | equivalent | convertable | scaleable | flexible
Binding: DataElementStringency (required)
... mapping SI0..*BackboneElementExternal specification mapped to
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... identity S1..1idInternal id when this mapping is used
.... uri S0..1uriIdentifies what this mapping refers to
.... name S0..1stringNames what this mapping refers to
.... comment S0..1stringVersions, issues, scope limitations, etc.
... element SΣI1..*ElementDefinitionDefinition of element
.... id 0..1stringxml:id (or equivalent in JSON)
.... elementdefinition-question S0..*stringExtension
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-question"
..... valueString 0..1stringValue of extension
.... elementdefinition-allowedUnits S0..1CodeableConcept, Reference(ValueSet)Extension
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits
Binding: UCUM Codes (required)
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits"
..... value[x] 1..1CodeableConcept, Reference(ValueSet)Value of extension
Binding: UCUM Codes (required)
.... minLength S0..1integerExtension
URL: http://hl7.org/fhir/StructureDefinition/minLength
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/minLength"
..... valueInteger 0..1integerValue of extension
.... regex S0..1stringExtension
URL: http://hl7.org/fhir/StructureDefinition/regex
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/regex"
..... valueString 0..1stringValue of extension
.... entryFormat S0..1stringExtension
URL: http://hl7.org/fhir/StructureDefinition/entryFormat
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/entryFormat"
..... valueString 0..1stringValue of extension
.... maxDecimalPlaces S0..1integerExtension
URL: http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces
..... id 0..1stringxml:id (or equivalent in JSON)
..... url 1..1uri"http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces"
..... valueInteger 0..1integerValue of extension
.... path SΣ1..1stringPath of the element in the hierarchy of elements
.... representation Σ0..*codexmlAttr | xmlText | typeAttr | cdaText | xhtml
Binding: PropertyRepresentation (required)
.... label SΣ0..1stringName for element to display with or prompt for element
.... code SΣ0..*CodingCorresponding codes in terminologies
Binding: LOINC Codes (example)
.... slicing ΣI0..1ElementThis element is sliced - slices follow
..... id 0..1stringxml:id (or equivalent in JSON)
..... discriminator ΣI0..*ElementElement values that are used to distinguish the slices
...... id 0..1stringxml:id (or equivalent in JSON)
...... type Σ1..1codevalue | exists | pattern | type | profile
Binding: DiscriminatorType (required)
...... path Σ1..1stringPath to element value
..... description ΣI0..1stringText description of how slicing works (or not)
..... ordered Σ0..1booleanIf elements must be in same order as slices
..... rules Σ1..1codeclosed | open | openAtEnd
Binding: SlicingRules (required)
.... short Σ0..1stringConcise definition for space-constrained presentation
.... definition SΣ0..1markdownFull formal definition as narrative text
.... comment SΣ0..1markdownComments about the use of this element
.... requirements SΣ0..1markdownWhy this resource has been created
.... alias SΣ0..*stringOther names
.... type SΣI0..1ElementData type and Profile for this element
..... id 0..1stringxml:id (or equivalent in JSON)
..... code SΣ1..1uriData type or Resource (reference to definition)
..... profile Σ0..1uriProfile (StructureDefinition) to apply (or IG)
..... aggregation ΣI0..*codecontained | referenced | bundled - how aggregated
Binding: AggregationMode (required)
.... orderMeaning Σ0..1stringWhat the order of the elements means
.... fixed[x] ΣI0..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaValue must be exactly this
.... pattern[x] ΣI0..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaValue must have at least these property values
.... example SΣI0..*ElementExample value (as defined for type)
..... id 0..1stringxml:id (or equivalent in JSON)
..... label SΣ1..1stringDescribes the purpose of this example
..... value[x] SΣ1..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaValue of Example (one of allowed types)
.... minValue[x] SΣ0..1integer, decimal, instant, date, time, dateTime, QuantityMinimum Allowed Value (for some types)
.... maxValue[x] SΣ0..1integer, decimal, instant, date, time, dateTime, QuantityMaximum Allowed Value (for some types)
.... maxLength SΣ0..1integerMax length for strings
.... isModifier Σ0..1booleanIf this modifies the meaning of other elements
.... isSummary Σ0..1booleanInclude when _summary = true?
.... binding SΣI0..1ElementValueSet details if this is coded
..... id 0..1stringxml:id (or equivalent in JSON)
..... strength SΣ1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required)
..... description SΣI0..1stringHuman explanation of the value set
..... valueSetReference SΣI1..1Reference(Structured Data Capture Value Set)Source of value set
.... mapping SΣI0..*ElementMap element to another set of definitions
..... id 0..1stringxml:id (or equivalent in JSON)
..... elementdefinition-equivalence S1..1codeExtension
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence
Binding: ConceptMapEquivalence (required)
...... id 0..1stringxml:id (or equivalent in JSON)
...... url 1..1uri"http://hl7.org/fhir/StructureDefinition/elementdefinition-equivalence"
...... valueCode S1..1codeValue of extension
Binding: ConceptMapEquivalence (required)
Fixed Value: equivalent
..... identity SΣ1..1idReference to mapping declaration
..... language SΣ0..1codeComputable language of mapping
Binding: DEX mapping language mime types (required)
..... map SΣ1..1stringDetails of the mapping
..... comment Σ0..1stringComments about the mapping or its use

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

PathNameConformanceValueSet
DataElement.languageCommon LanguagesextensibleCommon Languages
DataElement.statusPublicationStatusrequiredPublicationStatus
DataElement.jurisdictionJurisdiction ValueSetextensibleJurisdiction ValueSet
DataElement.stringencyDataElementStringencyrequiredDataElementStringency
DataElement.element.extension.value[x]UCUM CodesrequiredUCUM Codes
DataElement.element.representationPropertyRepresentationrequiredPropertyRepresentation
DataElement.element.codeLOINC CodesexampleLOINC Codes
DataElement.element.slicing.discriminator.typeDiscriminatorTyperequiredDiscriminatorType
DataElement.element.slicing.rulesSlicingRulesrequiredSlicingRules
DataElement.element.type.aggregationAggregationModerequiredAggregationMode
DataElement.element.constraint.severityConstraintSeverityrequiredConstraintSeverity
DataElement.element.binding.strengthBindingStrengthrequiredBindingStrength
DataElement.element.mapping.extension.valueCodeConceptMapEquivalencerequiredConceptMapEquivalence
DataElement.element.mapping.languageDEX mapping language mime typesrequiredDEX mapping language mime types

Constraints

IdPathDetailsRequirements
dom-2DataElementIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1DataElementIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.empty()
dom-4DataElementIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-3DataElementIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
: contained.where(('#'+id in %resource.descendants().reference).not()).empty()
ele-1DataElement.mappingAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
dae-3DataElement.mappingAt least one of name or uri SHALL be present
: uri.exists() or name.exists()
dae-1DataElement.elementNo base allowed
: base.empty()
dae-2DataElement.elementNo slicing allowed
: slicing.empty()
ele-1DataElement.element.slicingAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
eld-1DataElement.element.slicingIf there are no discriminators, there must be a definition
: discriminator.exists() or description.exists()
ele-1DataElement.element.slicing.discriminatorAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1DataElement.element.typeAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
eld-4DataElement.element.typeAggregation may only be specified if one of the allowed types for the element is a resource
: aggregation.empty() or (code = 'Reference')
ele-1DataElement.element.exampleAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1DataElement.element.bindingAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
eld-10DataElement.element.bindingprovide either a reference or a description (or both)
: valueSet.exists() or description.exists()
eld-12DataElement.element.bindingValueSet as a URI SHALL start with http:// or https:// or urn:
: valueSet.is(uri).not() or valueSet.as(uri).startsWith('http:') or valueSet.as(uri).startsWith('https') or valueSet.as(uri).startsWith('urn:')
ele-1DataElement.element.mappingAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())

In some environments, it may be necessary for a questionnaire to support multiple languages. The rendering tool would select the appropriate language based on a configuration setting, or perhaps would display all available languages and the user would read the one they are familiar with. Systems MAY choose to provide support for identifying language and translations. If they do, they SHALL do so using the generic translation extension FHIR defines: http://hl7.org/fhir/StructureDefinition/translation

These extensions can be used on absolutely any string element on Questionnaire, ValueSet or any other resource. The base string should be the primary language of the questionnaire. It is what will be rendered by systems that do not support the translation extension or by systems whose language preference is other than one of the languages provided.

The ISO 19763 specification permits declaring language on questionnaire titles, descriptions, display names for codes and many other strings. It also supports capturing multiple variants of these strings with distinct languages. These capabilities can be mirrored using the above extensions.

While DataElement.stringency has been introduced, a formal set of rules defining exactly what level of "tightness" must exist for a stringency code, and in particular, what the rules are for data elements intended for use in auto-population/pre-population has not yet been defined. For example, if a data element supports a subset of the answer codes that the question does, is that acceptable? Must the question text be word-for-word identical? Is it acceptable if the data element length is shorter than the permitted length for the question? Is it acceptable if units of measure are not an exact match so long as conversion factors are known?

Opinions on these and related questions of stringency are welcome.