This
page
is
part
of
the
FHIR
Specification
(v4.3.0:
R4B
(v5.0.0-draft-final:
Final
QA
Preview
for
R5
-
STU
see
ballot
notes
).
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
R2
| FHIR Infrastructure Work Group | Maturity Level : 1 | Trial Use |
Use
Context
:
|
The
official
canonical
URL
for
this
profile
is:
http://hl7.org/fhir/StructureDefinition/elementdefinition-de
Identifies how the ElementDefinition data type is used when it appears within a data element
This profile was published on Sat, Feb 28, 2015 00:00+1100 as a draft by Health Level Seven International (Orders and Observations).
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work .
This structure is derived from ElementDefinition .
Summary
Prohibited: 10 elements
Extensions
This structure refers to these extensions:
This
structure
is
derived
from
indicates
the
differences
between
this
profile
and
the
base
ElementDefinition
.
structure.
This provides the consolidated view (aka snapshot) of the profile after applying the changes in this profile to the base ElementDefinition structure.
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
|
0..* | ElementDefinition |
Definition
of
an
element
in
a
resource
or
extension
|
|
0..1 | id | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
0..* | string |
Prompt
for
element
phrased
as
question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question |
|
|
0..1 | CodeableConcept , canonical ( ValueSet ) |
Units
to
use
for
measured
value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits Binding: UCUM Codes ( required ) |
|
|
?! Σ | 0..* | Extension |
Extensions
that
cannot
be
ignored
even
if
unrecognized
|
|
Σ C | 1..1 | string | Path of the element in the hierarchy of elements |
|
Σ C | 0..1 | string | Name for this particular element (in a set of slices) |
|
Σ C TU | 0..1 | boolean | If this slice definition constrains an inherited slice definition (or not) |
|
Σ | 0..1 | string | Name for element to display with or prompt for element |
|
Σ | 0..* | Coding |
Corresponding
codes
in
terminologies
Binding: |
|
Σ | 0..1 | markdown | Full formal definition as narrative text |
|
Σ | 0..1 | markdown | Comments about the use of this element |
|
Σ | 0..1 | markdown | Why this resource has been created |
|
Σ | 0..* | string |
Other
names
|
|
Σ
|
0..1 | unsignedInt | Minimum Cardinality |
|
Σ
|
0..1 | string | Maximum Cardinality (a number or *) |
|
Σ | 0..1 | Element | Base definition information for tools |
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ | 1..1 | string | Path that identifies the base element |
|
Σ | 1..1 | unsignedInt | Min cardinality of the base element |
|
Σ | 1..1 | string | Max cardinality of the base element |
|
Σ
|
0..* | Element |
Data
type
and
Profile
for
this
element
|
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ C | 1..1 | uri |
Data
type
or
Resource
(reference
to
definition)
Binding: |
|
Σ C | 0..* | canonical ( StructureDefinition | ImplementationGuide ) |
Profile
(StructureDefinition
or
IG)
on
the
Reference/canonical
target
-
one
must
apply
|
|
Σ | 0..1 | code |
either
|
independent
|
specific
Binding: ReferenceVersionRules ( required |
|
Σ
|
0..1 | Specified value if missing from instance | |
|
base64Binary | |||
|
boolean | |||
|
canonical (Any) | |||
|
code | |||
|
date | |||
|
dateTime | |||
|
decimal | |||
|
id | |||
|
instant | |||
|
integer | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
DataRequirement | |||
|
Expression | |||
|
ParameterDefinition | |||
|
RelatedArtifact | |||
|
TriggerDefinition | |||
|
UsageContext | |||
|
Availability | |||
![]() ![]() ![]() | ExtendedContactDetail | |||
![]() ![]() ![]() | Dosage | |||
| Meta | |||
|
Σ
|
0..1 | markdown | Implicit meaning when this element is missing |
|
Σ C | 0..1 | string | What the order of the elements means |
|
Σ C | 0..* | Element |
Example
value
(as
defined
for
type)
|
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ | 1..1 | string | Describes the purpose of this example |
|
Σ | 1..1 | Value of Example (one of allowed types) | |
|
base64Binary | |||
|
boolean | |||
|
canonical (Any) | |||
| code | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
markdown | |||
|
oid | |||
|
positiveInt | |||
|
string | |||
|
time | |||
|
unsignedInt | |||
|
uri | |||
|
url | |||
|
uuid | |||
|
Address | |||
|
Age | |||
|
Annotation | |||
|
Attachment | |||
|
CodeableConcept | |||
|
CodeableReference | |||
|
Coding | |||
|
ContactPoint | |||
|
Count | |||
|
Distance | |||
|
Duration | |||
|
HumanName | |||
|
Identifier | |||
|
Money | |||
|
Period | |||
|
Quantity | |||
|
Range | |||
|
Ratio | |||
|
RatioRange | |||
|
Reference (Any) | |||
|
SampledData | |||
|
Signature | |||
|
Timing | |||
|
ContactDetail | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ExtendedContactDetail | |||
| Dosage | |||
| Meta | |||
|
Σ C | 0..1 | Minimum Allowed Value (for some types) | |
|
date | |||
|
dateTime | |||
|
instant | |||
|
time | |||
|
decimal | |||
|
integer | |||
|
|
|||
|
positiveInt | |||
| unsignedInt | |||
|
Quantity | |||
|
Σ C | 0..1 | Maximum Allowed Value (for some types) | |
|
date | |||
| dateTime | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
positiveInt | |||
|
unsignedInt | |||
|
Quantity | |||
|
Σ C | 0..1 | integer |
Max
length
for
|
|
Σ | 0..* | id |
Reference
to
invariant
about
presence
|
|
Σ
|
0..* | Element |
Condition
that
must
evaluate
to
true
|
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ
|
1..1 | id | Target of 'condition' reference above |
|
Σ | 0..1 |
|
Why this constraint is necessary or appropriate |
|
Σ C | 1..1 | code |
error
|
warning
Binding: ConstraintSeverity ( required |
|
Σ C |
|
|
|
|
Σ |
|
string |
|
|
Σ C | 0..1 | string |
|
|
Σ | 0..1 | canonical ( StructureDefinition ) | Reference to original source of constraint |
| Σ C TU | 0..1 | boolean | For primitives, that a value must be present - not replaced by an extension |
![]() ![]() | Σ C TU | 0..* | canonical ( StructureDefinition ) |
Extensions
that
are
allowed
to
replace
a
primitive
value
|
![]() ![]() |
Σ | 0..1 | boolean | If the element must be supported (discouraged - see obligations) |
|
Σ C | 0..1 | string | Reason that this element is marked as a modifier |
|
Σ
|
0..1 | Element | ValueSet details if this is coded |
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ | 1..1 | code |
required
|
extensible
|
preferred
|
example
Binding: BindingStrength ( required |
|
Σ C | 0..1 |
|
|
|
Σ
|
0..1 | canonical ( ValueSet ) | Source of value set |
|
Σ TU | 0..* | Element |
|
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ TU | 1..1 | code |
maximum
|
minimum
|
required
|
extensible
|
candidate
|
current
|
preferred
|
ui
|
starter
|
component
Binding: Additional Binding Purpose ValueSet ( required ): The use of an additional binding. |
![]() ![]() ![]() ![]() | Σ TU | 1..1 | canonical ( ValueSet ) | The value set for the additional binding |
![]() ![]() ![]() ![]() | Σ TU | 0..1 | markdown | Documentation of the purpose of use of the binding |
![]() ![]() ![]() ![]() | Σ TU | 0..1 | string | Concise documentation - for summary tables |
![]() ![]() ![]() ![]() | Σ TU | 0..* | UsageContext |
Qualifies
the
usage
-
jurisdiction,
gender,
workflow
status
etc.
|
![]() ![]() ![]() ![]() | Σ TU | 0..1 | boolean | Whether binding can applies to all repeats, or just one |
![]() ![]() | Σ C | 0..* | Element |
Map
element
to
another
set
of
definitions
|
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() | 0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url | |
![]() ![]() ![]() | Σ C | 1..1 | id | Reference to mapping declaration |
|
Σ | 0..1 | code |
Computable
language
of
mapping
Binding: |
|
Σ | 1..1 | string | Details of the mapping |
|
Σ | 0..1 |
|
Comments about the mapping or its use |
Documentation
for
this
format
|
||||
<!-- DataElement constraint on ElementDefinition data type --><ElementDefinition xmlns="http://hl7.org/fhir" > <!-- from Element: extension -->
<<a href="elementdefinition-de-definitions.html#ElementDefinition.modifierExtension" title="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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 can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.<Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself) (this element modifies the meaning of other elements)" class="dict"></modifierExtension> < < < < Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself) (this element modifies the meaning of other elements)" class="dict">modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <path value="[string]"/><!-- I 1..1 Path of the element in the hierarchy of elements --> <representation value="[code]"/><!-- I 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml --> <sliceName value="[string]"/><!-- I 0..1 Name for this particular element (in a set of slices) --> <sliceIsConstraining value="[boolean]"/><!-- I 0..1 If this slice definition constrains an inherited slice definition (or not) -->< <</code> <<label value="[string]"/><!-- I 0..1 Name for element to display with or prompt for element --> <code><!-- I 0..* Coding Corresponding codes in terminologies --></code> <slicing> I 0..0 Element <!-- I 0..0 This element is sliced - slices follow --> </slicing>< < < < < < < < < < <<short value="[string]"/><!-- I 0..0 Concise definition for space-constrained presentation --> <definition value="[markdown]"/><!-- I 0..1 Full formal definition as narrative text --> <comment value="[markdown]"/><!-- I 0..1 Comments about the use of this element --> <requirements value="[markdown]"/><!-- I 0..1 Why this resource has been created --> <alias value="[string]"/><!-- I 0..* Other names --> <min value="[unsignedInt]"/><!-- I 0..1 Minimum Cardinality --> <max value="[string]"/><!-- I 0..1 Maximum Cardinality (a number or *) --> <base> I 0..1 Element <!-- I 0..1 Base definition information for tools --> <path value="[string]"/><!-- I 1..1 Path that identifies the base element --> <min value="[unsignedInt]"/><!-- I 1..1 Min cardinality of the base element --> <max value="[string]"/><!-- I 1..1 Max cardinality of the base element --> </base>< < < < <<contentReference value="[uri]"/><!-- I 0..0 Reference to definition of content for the element --> <type> I 0..* Element <!-- I 0..* Data type and Profile for this element --> <code value="[uri]"/><!-- I 1..1 Data type or Resource (reference to definition) --> <profile value="[canonical]"/><!-- I 0..0 Profiles (StructureDefinition or IG) - one must apply --> <targetProfile value="[canonical]"/><!-- I 0..* Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply -->< <<aggregation value="[code]"/><!-- I 0..0 contained | referenced | bundled - how aggregated --> <versioning value="[code]"/><!-- I 0..1 either | independent | specific --> </type><| |<defaultValue[x]><!-- I 0..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid| positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation| Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count| Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio| RatioRange|Reference|SampledData|Signature|Timing|ContactDetail| DataRequirement|Expression|ParameterDefinition|RelatedArtifact| TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta Specified value if missing from instance --></defaultValue[x]> <meaningWhenMissing value="[markdown]"/><!-- I 0..1 Implicit meaning when this element is missing --> <orderMeaning value="[string]"/><!-- I 0..1 What the order of the elements means --> <fixed[x]><!-- I 0..0 base64Binary|boolean|canonical|code|date| dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string| time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|| | </defaultValue[x]> < < <| | | | | |SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Availability|ExtendedContactDetail|Dosage|Meta Value must be exactly this --></fixed[x]><<a href="elementdefinition-de-definitions.html#ElementDefinition.pattern[x]" title="Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example.<When pattern[x] is used to constrain an array, it means that each element provided in the pattern[x] array must (recursively) match at least one element from the instance array. When an element within a pattern[x] is used to constrain an array, it means that each element provided in the pattern[x] must (recursively) match at least one element from the instance array. When pattern[x] is used to constrain a complex object, it means that each property in the pattern must be present in the complex object, and its value must recursively match -- i.e., 1. If primitive: it must match exactly the pattern value 2. If a complex object: it must match (recursively) the pattern value3. If an array: it must match (recursively) the pattern value." class="dict">| | | | | |3. If an array: it must match (recursively) the pattern value If a pattern[x] is declared on a repeating element, the pattern applies to all repetitions. If the desire is for a pattern to apply to only one element or a subset of elements, slicing must be used. See [Examples of Patterns](elementdefinition-examples.html#pattern-examples) for examples of pattern usage and the effect it will have." class="dict">pattern[x]><!-- I 0..0 base64Binary|boolean|canonical|code| date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt| string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference| SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Availability|ExtendedContactDetail|Dosage|Meta Value must have at least these property values --></pattern[x]>< < <| | | | | |<example> I 0..* Element <!-- I 0..* Example value (as defined for type) --> <label value="[string]"/><!-- I 1..1 Describes the purpose of this example --> <value[x]><!-- I 1..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid| positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation| Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count| Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio| RatioRange|Reference|SampledData|Signature|Timing|ContactDetail| DataRequirement|Expression|ParameterDefinition|RelatedArtifact|Value of Example (one of allowed types)</value[x]>TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage| Meta Value of Example (one of allowed types) --></value[x]> </example><|<minValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal| integer|integer64|positiveInt|unsignedInt|Quantity Minimum Allowed Value (for some types) --></minValue[x]><|<maxValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal| integer|integer64|positiveInt|unsignedInt|Quantity Maximum Allowed Value (for some types) --></maxValue[x]>< < < < < < < < < <<maxLength value="[integer]"/><!-- I 0..1 Max length for string type data --> <condition value="[id]"/><!-- I 0..* Reference to invariant about presence --> <constraint> I 0..* Element <!-- I 0..* Condition that must evaluate to true --> <key value="[id]"/><!-- I 1..1 Target of 'condition' reference above --> <requirements value="[markdown]"/><!-- I 0..1 Why this constraint is necessary or appropriate --> <severity value="[code]"/><!-- I 1..1 error | warning --> <suppress value="[boolean]"/><!-- I 0..1 Suppress warning or hint in profile --> <human value="[string]"/><!-- I 1..1 Human description of constraint --> <expression value="[string]"/><!-- I 0..1 FHIRPath expression of constraint --> <source value="[canonical]"/><!-- I 0..1 Reference to original source of constraint --> </constraint>< < < < < < < <<mustHaveValue value="[boolean]"/><!-- I 0..1 For primitives, that a value must be present - not replaced by an extension --> <valueAlternatives value="[canonical]"/><!-- I 0..* Extensions that are allowed to replace a primitive value --> <mustSupport value="[boolean]"/><!-- I 0..1 If the element must be supported (discouraged - see obligations) --> <isModifier value="[boolean]"/><!-- I 0..0 If this modifies the meaning of other elements --> <isModifierReason value="[string]"/><!-- I 0..1 Reason that this element is marked as a modifier --> <isSummary value="[boolean]"/><!-- I 0..0 Include when _summary = true? --> <binding> I 0..1 Element <!-- I 0..1 ValueSet details if this is coded --> <strength value="[code]"/><!-- I 1..1 required | extensible | preferred | example --> <description value="[markdown]"/><!-- I 0..1 Intended use of codes in the bound value set --> <valueSet value="[canonical]"/><!-- I 0..1 Source of value set --> <additional> I 0..* Element <!-- I 0..* Additional Bindings - more rules about the binding --> <purpose value="[code]"/><!-- I 1..1 maximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component --> <valueSet value="[canonical]"/><!-- I 1..1 The value set for the additional binding --> <documentation value="[markdown]"/><!-- I 0..1 Documentation of the purpose of use of the binding --> <shortDoco value="[string]"/><!-- I 0..1 Concise documentation - for summary tables --> <usage><!-- I 0..* UsageContext Qualifies the usage - jurisdiction, gender, workflow status etc. --></usage> <any value="[boolean]"/><!-- I 0..1 Whether binding can applies to all repeats, or just one --> </additional> </binding>< < < < <<mapping> I 0..* Element <!-- I 0..* Map element to another set of definitions --> <identity value="[id]"/><!-- I 1..1 Reference to mapping declaration --> <language value="[code]"/><!-- I 0..1 Computable language of mapping --> <map value="[string]"/><!-- I 1..1 Details of the mapping --> <comment value="[markdown]"/><!-- I 0..1 Comments about the mapping or its use --> </mapping> </ElementDefinition>
{ // DataElement constraint on ElementDefinition data type
// from Element: extension
"
{ //
"extension" : [ // sliced by value:url in the specified order, Open
{ // Prompt for element phrased as question // I
// from Element: extension
},
{ //
{ // Units to use for measured value // I
// from Element: extension
}
],
"<a href="elementdefinition-de-definitions.html#ElementDefinition.modifierExtension" title="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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 can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
"Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself) (this element modifies the meaning of other elements)" class="dict">
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself) (this element modifies the meaning of other elements)" class="dict">modifierExtension" : [{ Extension }], // IExtensions that cannot be ignored even if unrecognized
"path" : "<string>", // I R! Path of the element in the hierarchy of elements
"sliceName" : "<string>", // IName for this particular element (in a set of slices)
"sliceIsConstraining" : <boolean>, // IIf this slice definition constrains an inherited slice definition (or not)
"label" : "<string>", // IName for element to display with or prompt for element
"code" : [{ Coding }], // ICorresponding codes in terminologies
"definition" : "<markdown>", // IFull formal definition as narrative text
"comment" : "<markdown>", // IComments about the use of this element
"requirements" : "<markdown>", // IWhy this resource has been created
"alias" : ["<string>"], // IOther names
"min" : "<unsignedInt>", // IMinimum Cardinality
"max" : "<string>", // IMaximum Cardinality (a number or *)
"base" : { Element }, // IBase definition information for tools
"type" : [{ Element }], // IData type and Profile for this element
// value[x]: Specified value if missing from instance. One of these 54:
"defaultValueBase64Binary" : "<base64Binary>", // ISpecified value if missing from instance
"defaultValueBoolean" : <boolean>, // ISpecified value if missing from instance
"defaultValueCanonical" : "<canonical>", // ISpecified value if missing from instance
"defaultValueCode" : "<code>", // ISpecified value if missing from instance
"defaultValueDate" : "<date>", // ISpecified value if missing from instance
"defaultValueDateTime" : "<dateTime>", // ISpecified value if missing from instance
"defaultValueDecimal" : <decimal>, // ISpecified value if missing from instance
"defaultValueId" : "<id>", // ISpecified value if missing from instance
"defaultValueInstant" : "<instant>", // ISpecified value if missing from instance
"defaultValueInteger" : <integer>, // ISpecified value if missing from instance
"defaultValueInteger64" : "<integer64>", // ISpecified value if missing from instance
"defaultValueMarkdown" : "<markdown>", // ISpecified value if missing from instance
"defaultValueOid" : "<oid>", // ISpecified value if missing from instance
"defaultValuePositiveInt" : "<positiveInt>", // ISpecified value if missing from instance
"defaultValueString" : "<string>", // ISpecified value if missing from instance
"defaultValueTime" : "<time>", // ISpecified value if missing from instance
"defaultValueUnsignedInt" : "<unsignedInt>", // ISpecified value if missing from instance
"defaultValueUri" : "<uri>", // ISpecified value if missing from instance
"defaultValueUrl" : "<url>", // ISpecified value if missing from instance
"defaultValueUuid" : "<uuid>", // ISpecified value if missing from instance
"defaultValueAddress" : { Address }, // ISpecified value if missing from instance
"defaultValueAge" : { Age }, // ISpecified value if missing from instance
"defaultValueAnnotation" : { Annotation }, // ISpecified value if missing from instance
"defaultValueAttachment" : { Attachment }, // ISpecified value if missing from instance
"defaultValueCodeableConcept" : { CodeableConcept }, // ISpecified value if missing from instance
"defaultValueCodeableReference" : { CodeableReference }, // ISpecified value if missing from instance
"defaultValueCoding" : { Coding }, // ISpecified value if missing from instance
"defaultValueContactPoint" : { ContactPoint }, // ISpecified value if missing from instance
"defaultValueCount" : { Count }, // ISpecified value if missing from instance
"defaultValueDistance" : { Distance }, // ISpecified value if missing from instance
"defaultValueDuration" : { Duration }, // ISpecified value if missing from instance
"defaultValueHumanName" : { HumanName }, // ISpecified value if missing from instance
"defaultValueIdentifier" : { Identifier }, // ISpecified value if missing from instance
"defaultValueMoney" : { Money }, // ISpecified value if missing from instance
"defaultValuePeriod" : { Period }, // ISpecified value if missing from instance
"defaultValueQuantity" : { Quantity }, // ISpecified value if missing from instance
"defaultValueRange" : { Range }, // ISpecified value if missing from instance
"defaultValueRatio" : { Ratio }, // ISpecified value if missing from instance
"defaultValueRatioRange" : { RatioRange }, // ISpecified value if missing from instance
"defaultValueReference" : { Reference }, // ISpecified value if missing from instance
"defaultValueSampledData" : { SampledData }, // ISpecified value if missing from instance
"defaultValueSignature" : { Signature }, // ISpecified value if missing from instance
"defaultValueTiming" : { Timing }, // ISpecified value if missing from instance
"defaultValueContactDetail" : { ContactDetail }, // ISpecified value if missing from instance
"defaultValueDataRequirement" : { DataRequirement }, // ISpecified value if missing from instance
"defaultValueExpression" : { Expression }, // ISpecified value if missing from instance
"defaultValueParameterDefinition" : { ParameterDefinition }, // ISpecified value if missing from instance
"defaultValueRelatedArtifact" : { RelatedArtifact }, // ISpecified value if missing from instance
"defaultValueTriggerDefinition" : { TriggerDefinition }, // ISpecified value if missing from instance
"defaultValueUsageContext" : { UsageContext }, // ISpecified value if missing from instance
"defaultValueAvailability" : { Availability }, // ISpecified value if missing from instance
"defaultValueExtendedContactDetail" : { ExtendedContactDetail }, // ISpecified value if missing from instance
"defaultValueDosage" : { Dosage }, // ISpecified value if missing from instance
"defaultValueMeta" : { Meta }, // ISpecified value if missing from instance
"meaningWhenMissing" : "<markdown>", // IImplicit meaning when this element is missing
"orderMeaning" : "<string>", // IWhat the order of the elements means
// value[x]: Value must be exactly this. One of these 54:
// value[x]: Value must have at least these property values. One of these 54:
"example" : [{ Element }], // IExample value (as defined for type)
// value[x]: Minimum Allowed Value (for some types). One of these 10:
"minValueDate" : "<date>", // IMinimum Allowed Value (for some types)
"minValueDateTime" : "<dateTime>", // IMinimum Allowed Value (for some types)
"minValueInstant" : "<instant>", // IMinimum Allowed Value (for some types)
"minValueTime" : "<time>", // IMinimum Allowed Value (for some types)
"minValueDecimal" : <decimal>, // IMinimum Allowed Value (for some types)
"minValueInteger" : <integer>, // IMinimum Allowed Value (for some types)
"minValueInteger64" : "<integer64>", // IMinimum Allowed Value (for some types)
"minValuePositiveInt" : "<positiveInt>", // IMinimum Allowed Value (for some types)
"minValueUnsignedInt" : "<unsignedInt>", // IMinimum Allowed Value (for some types)
"minValueQuantity" : { Quantity }, // IMinimum Allowed Value (for some types)
// value[x]: Maximum Allowed Value (for some types). One of these 10:
"maxValueDate" : "<date>", // IMaximum Allowed Value (for some types)
"maxValueDateTime" : "<dateTime>", // IMaximum Allowed Value (for some types)
"maxValueInstant" : "<instant>", // IMaximum Allowed Value (for some types)
"maxValueTime" : "<time>", // IMaximum Allowed Value (for some types)
"maxValueDecimal" : <decimal>, // IMaximum Allowed Value (for some types)
"maxValueInteger" : <integer>, // IMaximum Allowed Value (for some types)
"maxValueInteger64" : "<integer64>", // IMaximum Allowed Value (for some types)
"maxValuePositiveInt" : "<positiveInt>", // IMaximum Allowed Value (for some types)
"maxValueUnsignedInt" : "<unsignedInt>", // IMaximum Allowed Value (for some types)
"maxValueQuantity" : { Quantity }, // IMaximum Allowed Value (for some types)
"maxLength" : <integer>, // IMax length for string type data
"condition" : ["<id>"], // IReference to invariant about presence
"constraint" : [{ Element }], // ICondition that must evaluate to true
"mustHaveValue" : <boolean>, // IFor primitives, that a value must be present - not replaced by an extension
"valueAlternatives" : ["<canonical>"], // IExtensions that are allowed to replace a primitive value
"mustSupport" : <boolean>, // IIf the element must be supported (discouraged - see obligations)
"isModifierReason" : "<string>", // IReason that this element is marked as a modifier
"binding" : { Element }, // IValueSet details if this is coded
"mapping" : [{ Element }], // IMap element to another set of definitions
}
This structure is derived from ElementDefinition .
Differential View
This
structure
is
derived
from
indicates
the
differences
between
this
profile
and
the
base
ElementDefinition
.
structure.
Snapshot View
This provides the consolidated view (aka snapshot) of the profile after applying the changes in this profile to the base ElementDefinition structure.
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
|
0..* | ElementDefinition |
Definition
of
an
element
in
a
resource
or
extension
|
|
0..1 | id | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
0..* | string |
Prompt
for
element
phrased
as
question
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-question |
|
|
0..1 | CodeableConcept , canonical ( ValueSet ) |
Units
to
use
for
measured
value
URL: http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits Binding: UCUM Codes ( required ) |
|
|
?! Σ | 0..* | Extension |
Extensions
that
cannot
be
ignored
even
if
unrecognized
|
|
Σ C | 1..1 | string | Path of the element in the hierarchy of elements |
|
Σ C | 0..1 | string | Name for this particular element (in a set of slices) |
|
Σ C TU | 0..1 | boolean | If this slice definition constrains an inherited slice definition (or not) |
|
Σ | 0..1 | string | Name for element to display with or prompt for element |
|
Σ | 0..* | Coding |
Corresponding
codes
in
terminologies
Binding: |
|
Σ | 0..1 | markdown | Full formal definition as narrative text |
|
Σ | 0..1 | markdown | Comments about the use of this element |
|
Σ | 0..1 | markdown | Why this resource has been created |
|
Σ | 0..* | string |
Other
names
|
|
Σ
|
0..1 | unsignedInt | Minimum Cardinality |
|
Σ
|
0..1 | string | Maximum Cardinality (a number or *) |
|
Σ | 0..1 | Element | Base definition information for tools |
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ | 1..1 | string | Path that identifies the base element |
|
Σ | 1..1 | unsignedInt | Min cardinality of the base element |
|
Σ | 1..1 | string | Max cardinality of the base element |
|
Σ
|
0..* | Element |
Data
type
and
Profile
for
this
element
|
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ C | 1..1 | uri |
Data
type
or
Resource
(reference
to
definition)
Binding: |
|
Σ C | 0..* | canonical ( StructureDefinition | ImplementationGuide ) |
Profile
(StructureDefinition
or
IG)
on
the
Reference/canonical
target
-
one
must
apply
|
|
Σ | 0..1 | code |
either
|
independent
|
specific
Binding: ReferenceVersionRules ( required |
|
Σ
|
0..1 | Specified value if missing from instance | |
|
base64Binary | |||
|
boolean | |||
|
canonical (Any) | |||
|
code | |||
|
date | |||
|
dateTime | |||
|
decimal | |||
|
id | |||
|
instant | |||
|
integer | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
DataRequirement | |||
|
Expression | |||
|
ParameterDefinition | |||
|
RelatedArtifact | |||
|
TriggerDefinition | |||
|
UsageContext | |||
|
Availability | |||
![]() ![]() ![]() | ExtendedContactDetail | |||
![]() ![]() ![]() | Dosage | |||
| Meta | |||
|
Σ
|
0..1 | markdown | Implicit meaning when this element is missing |
|
Σ C | 0..1 | string | What the order of the elements means |
|
Σ C | 0..* | Element |
Example
value
(as
defined
for
type)
|
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ | 1..1 | string | Describes the purpose of this example |
|
Σ | 1..1 | Value of Example (one of allowed types) | |
|
base64Binary | |||
|
boolean | |||
|
canonical (Any) | |||
| code | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
markdown | |||
|
oid | |||
|
positiveInt | |||
|
string | |||
|
time | |||
|
unsignedInt | |||
|
uri | |||
|
url | |||
|
uuid | |||
|
Address | |||
|
Age | |||
|
Annotation | |||
|
Attachment | |||
|
CodeableConcept | |||
|
CodeableReference | |||
|
Coding | |||
|
ContactPoint | |||
|
Count | |||
|
Distance | |||
|
Duration | |||
|
HumanName | |||
|
Identifier | |||
|
Money | |||
|
Period | |||
|
Quantity | |||
|
Range | |||
|
Ratio | |||
|
RatioRange | |||
|
Reference (Any) | |||
|
SampledData | |||
|
Signature | |||
|
Timing | |||
|
ContactDetail | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ExtendedContactDetail | |||
| Dosage | |||
| Meta | |||
|
Σ C | 0..1 | Minimum Allowed Value (for some types) | |
|
date | |||
|
dateTime | |||
|
instant | |||
|
time | |||
|
decimal | |||
|
integer | |||
|
|
|||
|
positiveInt | |||
| unsignedInt | |||
|
Quantity | |||
|
Σ C | 0..1 | Maximum Allowed Value (for some types) | |
|
date | |||
| dateTime | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
positiveInt | |||
|
unsignedInt | |||
|
Quantity | |||
|
Σ C | 0..1 | integer |
Max
length
for
|
|
Σ | 0..* | id |
Reference
to
invariant
about
presence
|
|
Σ
|
0..* | Element |
Condition
that
must
evaluate
to
true
|
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ
|
1..1 | id | Target of 'condition' reference above |
|
Σ | 0..1 |
|
Why this constraint is necessary or appropriate |
|
Σ C | 1..1 | code |
error
|
warning
Binding: ConstraintSeverity ( required |
|
Σ C |
|
|
|
|
Σ |
|
string |
|
|
Σ C | 0..1 | string |
|
|
Σ | 0..1 | canonical ( StructureDefinition ) | Reference to original source of constraint |
| Σ C TU | 0..1 | boolean | For primitives, that a value must be present - not replaced by an extension |
![]() ![]() | Σ C TU | 0..* | canonical ( StructureDefinition ) |
Extensions
that
are
allowed
to
replace
a
primitive
value
|
![]() ![]() |
Σ | 0..1 | boolean | If the element must be supported (discouraged - see obligations) |
|
Σ C | 0..1 | string | Reason that this element is marked as a modifier |
|
Σ
|
0..1 | Element | ValueSet details if this is coded |
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ | 1..1 | code |
required
|
extensible
|
preferred
|
example
Binding: BindingStrength ( required |
|
Σ C | 0..1 |
|
|
|
Σ
|
0..1 | canonical ( ValueSet ) | Source of value set |
|
Σ TU | 0..* | Element |
|
|
0..1 | string | Unique id for inter-element referencing | |
|
0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url |
|
|
Σ TU | 1..1 | code |
maximum
|
minimum
|
required
|
extensible
|
candidate
|
current
|
preferred
|
ui
|
starter
|
component
Binding: Additional Binding Purpose ValueSet ( required ): The use of an additional binding. |
![]() ![]() ![]() ![]() | Σ TU | 1..1 | canonical ( ValueSet ) | The value set for the additional binding |
![]() ![]() ![]() ![]() | Σ TU | 0..1 | markdown | Documentation of the purpose of use of the binding |
![]() ![]() ![]() ![]() | Σ TU | 0..1 | string | Concise documentation - for summary tables |
![]() ![]() ![]() ![]() | Σ TU | 0..* | UsageContext |
Qualifies
the
usage
-
jurisdiction,
gender,
workflow
status
etc.
|
![]() ![]() ![]() ![]() | Σ TU | 0..1 | boolean | Whether binding can applies to all repeats, or just one |
![]() ![]() | Σ C | 0..* | Element |
Map
element
to
another
set
of
definitions
|
![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() | 0..* | Extension |
Additional
content
defined
by
implementations
Slice: Unordered, Open by value:url | |
![]() ![]() ![]() | Σ C | 1..1 | id | Reference to mapping declaration |
|
Σ | 0..1 | code |
Computable
language
of
mapping
Binding: |
|
Σ | 1..1 | string | Details of the mapping |
|
Σ | 0..1 |
|
Comments about the mapping or its use |
Documentation
for
this
format
|
||||
XML Template
<!-- DataElement constraint on ElementDefinition data type --><ElementDefinition xmlns="http://hl7.org/fhir" > <!-- from Element: extension -->
<<a href="elementdefinition-de-definitions.html#ElementDefinition.modifierExtension" title="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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 can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.<Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself) (this element modifies the meaning of other elements)" class="dict"></modifierExtension> < < < < Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself) (this element modifies the meaning of other elements)" class="dict">modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <path value="[string]"/><!-- I 1..1 Path of the element in the hierarchy of elements --> <representation value="[code]"/><!-- I 0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml --> <sliceName value="[string]"/><!-- I 0..1 Name for this particular element (in a set of slices) --> <sliceIsConstraining value="[boolean]"/><!-- I 0..1 If this slice definition constrains an inherited slice definition (or not) -->< <</code> <<label value="[string]"/><!-- I 0..1 Name for element to display with or prompt for element --> <code><!-- I 0..* Coding Corresponding codes in terminologies --></code> <slicing> I 0..0 Element <!-- I 0..0 This element is sliced - slices follow --> </slicing>< < < < < < < < < < <<short value="[string]"/><!-- I 0..0 Concise definition for space-constrained presentation --> <definition value="[markdown]"/><!-- I 0..1 Full formal definition as narrative text --> <comment value="[markdown]"/><!-- I 0..1 Comments about the use of this element --> <requirements value="[markdown]"/><!-- I 0..1 Why this resource has been created --> <alias value="[string]"/><!-- I 0..* Other names --> <min value="[unsignedInt]"/><!-- I 0..1 Minimum Cardinality --> <max value="[string]"/><!-- I 0..1 Maximum Cardinality (a number or *) --> <base> I 0..1 Element <!-- I 0..1 Base definition information for tools --> <path value="[string]"/><!-- I 1..1 Path that identifies the base element --> <min value="[unsignedInt]"/><!-- I 1..1 Min cardinality of the base element --> <max value="[string]"/><!-- I 1..1 Max cardinality of the base element --> </base>< < < < <<contentReference value="[uri]"/><!-- I 0..0 Reference to definition of content for the element --> <type> I 0..* Element <!-- I 0..* Data type and Profile for this element --> <code value="[uri]"/><!-- I 1..1 Data type or Resource (reference to definition) --> <profile value="[canonical]"/><!-- I 0..0 Profiles (StructureDefinition or IG) - one must apply --> <targetProfile value="[canonical]"/><!-- I 0..* Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply -->< <<aggregation value="[code]"/><!-- I 0..0 contained | referenced | bundled - how aggregated --> <versioning value="[code]"/><!-- I 0..1 either | independent | specific --> </type><| |<defaultValue[x]><!-- I 0..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid| positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation| Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count| Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio| RatioRange|Reference|SampledData|Signature|Timing|ContactDetail| DataRequirement|Expression|ParameterDefinition|RelatedArtifact| TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta Specified value if missing from instance --></defaultValue[x]> <meaningWhenMissing value="[markdown]"/><!-- I 0..1 Implicit meaning when this element is missing --> <orderMeaning value="[string]"/><!-- I 0..1 What the order of the elements means --> <fixed[x]><!-- I 0..0 base64Binary|boolean|canonical|code|date| dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string| time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|| | </defaultValue[x]> < < <| | | | | |SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Availability|ExtendedContactDetail|Dosage|Meta Value must be exactly this --></fixed[x]><<a href="elementdefinition-de-definitions.html#ElementDefinition.pattern[x]" title="Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example.<When pattern[x] is used to constrain an array, it means that each element provided in the pattern[x] array must (recursively) match at least one element from the instance array. When an element within a pattern[x] is used to constrain an array, it means that each element provided in the pattern[x] must (recursively) match at least one element from the instance array. When pattern[x] is used to constrain a complex object, it means that each property in the pattern must be present in the complex object, and its value must recursively match -- i.e., 1. If primitive: it must match exactly the pattern value 2. If a complex object: it must match (recursively) the pattern value3. If an array: it must match (recursively) the pattern value." class="dict">| | | | | |3. If an array: it must match (recursively) the pattern value If a pattern[x] is declared on a repeating element, the pattern applies to all repetitions. If the desire is for a pattern to apply to only one element or a subset of elements, slicing must be used. See [Examples of Patterns](elementdefinition-examples.html#pattern-examples) for examples of pattern usage and the effect it will have." class="dict">pattern[x]><!-- I 0..0 base64Binary|boolean|canonical|code| date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt| string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment| CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference| SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Availability|ExtendedContactDetail|Dosage|Meta Value must have at least these property values --></pattern[x]>< < <| | | | | |<example> I 0..* Element <!-- I 0..* Example value (as defined for type) --> <label value="[string]"/><!-- I 1..1 Describes the purpose of this example --> <value[x]><!-- I 1..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid| positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation| Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count| Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio| RatioRange|Reference|SampledData|Signature|Timing|ContactDetail| DataRequirement|Expression|ParameterDefinition|RelatedArtifact|Value of Example (one of allowed types)</value[x]>TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage| Meta Value of Example (one of allowed types) --></value[x]> </example><|<minValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal| integer|integer64|positiveInt|unsignedInt|Quantity Minimum Allowed Value (for some types) --></minValue[x]><|<maxValue[x]><!-- I 0..1 date|dateTime|instant|time|decimal| integer|integer64|positiveInt|unsignedInt|Quantity Maximum Allowed Value (for some types) --></maxValue[x]>< < < < < < < < < <<maxLength value="[integer]"/><!-- I 0..1 Max length for string type data --> <condition value="[id]"/><!-- I 0..* Reference to invariant about presence --> <constraint> I 0..* Element <!-- I 0..* Condition that must evaluate to true --> <key value="[id]"/><!-- I 1..1 Target of 'condition' reference above --> <requirements value="[markdown]"/><!-- I 0..1 Why this constraint is necessary or appropriate --> <severity value="[code]"/><!-- I 1..1 error | warning --> <suppress value="[boolean]"/><!-- I 0..1 Suppress warning or hint in profile --> <human value="[string]"/><!-- I 1..1 Human description of constraint --> <expression value="[string]"/><!-- I 0..1 FHIRPath expression of constraint --> <source value="[canonical]"/><!-- I 0..1 Reference to original source of constraint --> </constraint>< < < < < < < <<mustHaveValue value="[boolean]"/><!-- I 0..1 For primitives, that a value must be present - not replaced by an extension --> <valueAlternatives value="[canonical]"/><!-- I 0..* Extensions that are allowed to replace a primitive value --> <mustSupport value="[boolean]"/><!-- I 0..1 If the element must be supported (discouraged - see obligations) --> <isModifier value="[boolean]"/><!-- I 0..0 If this modifies the meaning of other elements --> <isModifierReason value="[string]"/><!-- I 0..1 Reason that this element is marked as a modifier --> <isSummary value="[boolean]"/><!-- I 0..0 Include when _summary = true? --> <binding> I 0..1 Element <!-- I 0..1 ValueSet details if this is coded --> <strength value="[code]"/><!-- I 1..1 required | extensible | preferred | example --> <description value="[markdown]"/><!-- I 0..1 Intended use of codes in the bound value set --> <valueSet value="[canonical]"/><!-- I 0..1 Source of value set --> <additional> I 0..* Element <!-- I 0..* Additional Bindings - more rules about the binding --> <purpose value="[code]"/><!-- I 1..1 maximum | minimum | required | extensible | candidate | current | preferred | ui | starter | component --> <valueSet value="[canonical]"/><!-- I 1..1 The value set for the additional binding --> <documentation value="[markdown]"/><!-- I 0..1 Documentation of the purpose of use of the binding --> <shortDoco value="[string]"/><!-- I 0..1 Concise documentation - for summary tables --> <usage><!-- I 0..* UsageContext Qualifies the usage - jurisdiction, gender, workflow status etc. --></usage> <any value="[boolean]"/><!-- I 0..1 Whether binding can applies to all repeats, or just one --> </additional> </binding>< < < < <<mapping> I 0..* Element <!-- I 0..* Map element to another set of definitions --> <identity value="[id]"/><!-- I 1..1 Reference to mapping declaration --> <language value="[code]"/><!-- I 0..1 Computable language of mapping --> <map value="[string]"/><!-- I 1..1 Details of the mapping --> <comment value="[markdown]"/><!-- I 0..1 Comments about the mapping or its use --> </mapping> </ElementDefinition>
JSON Template
{ // DataElement constraint on ElementDefinition data type
// from Element: extension
"
{ //
"extension" : [ // sliced by value:url in the specified order, Open
{ // Prompt for element phrased as question // I
// from Element: extension
},
{ //
{ // Units to use for measured value // I
// from Element: extension
}
],
"<a href="elementdefinition-de-definitions.html#ElementDefinition.modifierExtension" title="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. 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 can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
"Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself) (this element modifies the meaning of other elements)" class="dict">
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself) (this element modifies the meaning of other elements)" class="dict">modifierExtension" : [{ Extension }], // IExtensions that cannot be ignored even if unrecognized
"path" : "<string>", // I R! Path of the element in the hierarchy of elements
"sliceName" : "<string>", // IName for this particular element (in a set of slices)
"sliceIsConstraining" : <boolean>, // IIf this slice definition constrains an inherited slice definition (or not)
"label" : "<string>", // IName for element to display with or prompt for element
"code" : [{ Coding }], // ICorresponding codes in terminologies
"definition" : "<markdown>", // IFull formal definition as narrative text
"comment" : "<markdown>", // IComments about the use of this element
"requirements" : "<markdown>", // IWhy this resource has been created
"alias" : ["<string>"], // IOther names
"min" : "<unsignedInt>", // IMinimum Cardinality
"max" : "<string>", // IMaximum Cardinality (a number or *)
"base" : { Element }, // IBase definition information for tools
"type" : [{ Element }], // IData type and Profile for this element
// value[x]: Specified value if missing from instance. One of these 54:
"defaultValueBase64Binary" : "<base64Binary>", // ISpecified value if missing from instance
"defaultValueBoolean" : <boolean>, // ISpecified value if missing from instance
"defaultValueCanonical" : "<canonical>", // ISpecified value if missing from instance
"defaultValueCode" : "<code>", // ISpecified value if missing from instance
"defaultValueDate" : "<date>", // ISpecified value if missing from instance
"defaultValueDateTime" : "<dateTime>", // ISpecified value if missing from instance
"defaultValueDecimal" : <decimal>, // ISpecified value if missing from instance
"defaultValueId" : "<id>", // ISpecified value if missing from instance
"defaultValueInstant" : "<instant>", // ISpecified value if missing from instance
"defaultValueInteger" : <integer>, // ISpecified value if missing from instance
"defaultValueInteger64" : "<integer64>", // ISpecified value if missing from instance
"defaultValueMarkdown" : "<markdown>", // ISpecified value if missing from instance
"defaultValueOid" : "<oid>", // ISpecified value if missing from instance
"defaultValuePositiveInt" : "<positiveInt>", // ISpecified value if missing from instance
"defaultValueString" : "<string>", // ISpecified value if missing from instance
"defaultValueTime" : "<time>", // ISpecified value if missing from instance
"defaultValueUnsignedInt" : "<unsignedInt>", // ISpecified value if missing from instance
"defaultValueUri" : "<uri>", // ISpecified value if missing from instance
"defaultValueUrl" : "<url>", // ISpecified value if missing from instance
"defaultValueUuid" : "<uuid>", // ISpecified value if missing from instance
"defaultValueAddress" : { Address }, // ISpecified value if missing from instance
"defaultValueAge" : { Age }, // ISpecified value if missing from instance
"defaultValueAnnotation" : { Annotation }, // ISpecified value if missing from instance
"defaultValueAttachment" : { Attachment }, // ISpecified value if missing from instance
"defaultValueCodeableConcept" : { CodeableConcept }, // ISpecified value if missing from instance
"defaultValueCodeableReference" : { CodeableReference }, // ISpecified value if missing from instance
"defaultValueCoding" : { Coding }, // ISpecified value if missing from instance
"defaultValueContactPoint" : { ContactPoint }, // ISpecified value if missing from instance
"defaultValueCount" : { Count }, // ISpecified value if missing from instance
"defaultValueDistance" : { Distance }, // ISpecified value if missing from instance
"defaultValueDuration" : { Duration }, // ISpecified value if missing from instance
"defaultValueHumanName" : { HumanName }, // ISpecified value if missing from instance
"defaultValueIdentifier" : { Identifier }, // ISpecified value if missing from instance
"defaultValueMoney" : { Money }, // ISpecified value if missing from instance
"defaultValuePeriod" : { Period }, // ISpecified value if missing from instance
"defaultValueQuantity" : { Quantity }, // ISpecified value if missing from instance
"defaultValueRange" : { Range }, // ISpecified value if missing from instance
"defaultValueRatio" : { Ratio }, // ISpecified value if missing from instance
"defaultValueRatioRange" : { RatioRange }, // ISpecified value if missing from instance
"defaultValueReference" : { Reference }, // ISpecified value if missing from instance
"defaultValueSampledData" : { SampledData }, // ISpecified value if missing from instance
"defaultValueSignature" : { Signature }, // ISpecified value if missing from instance
"defaultValueTiming" : { Timing }, // ISpecified value if missing from instance
"defaultValueContactDetail" : { ContactDetail }, // ISpecified value if missing from instance
"defaultValueDataRequirement" : { DataRequirement }, // ISpecified value if missing from instance
"defaultValueExpression" : { Expression }, // ISpecified value if missing from instance
"defaultValueParameterDefinition" : { ParameterDefinition }, // ISpecified value if missing from instance
"defaultValueRelatedArtifact" : { RelatedArtifact }, // ISpecified value if missing from instance
"defaultValueTriggerDefinition" : { TriggerDefinition }, // ISpecified value if missing from instance
"defaultValueUsageContext" : { UsageContext }, // ISpecified value if missing from instance
"defaultValueAvailability" : { Availability }, // ISpecified value if missing from instance
"defaultValueExtendedContactDetail" : { ExtendedContactDetail }, // ISpecified value if missing from instance
"defaultValueDosage" : { Dosage }, // ISpecified value if missing from instance
"defaultValueMeta" : { Meta }, // ISpecified value if missing from instance
"meaningWhenMissing" : "<markdown>", // IImplicit meaning when this element is missing
"orderMeaning" : "<string>", // IWhat the order of the elements means
// value[x]: Value must be exactly this. One of these 54:
// value[x]: Value must have at least these property values. One of these 54:
"example" : [{ Element }], // IExample value (as defined for type)
// value[x]: Minimum Allowed Value (for some types). One of these 10:
"minValueDate" : "<date>", // IMinimum Allowed Value (for some types)
"minValueDateTime" : "<dateTime>", // IMinimum Allowed Value (for some types)
"minValueInstant" : "<instant>", // IMinimum Allowed Value (for some types)
"minValueTime" : "<time>", // IMinimum Allowed Value (for some types)
"minValueDecimal" : <decimal>, // IMinimum Allowed Value (for some types)
"minValueInteger" : <integer>, // IMinimum Allowed Value (for some types)
"minValueInteger64" : "<integer64>", // IMinimum Allowed Value (for some types)
"minValuePositiveInt" : "<positiveInt>", // IMinimum Allowed Value (for some types)
"minValueUnsignedInt" : "<unsignedInt>", // IMinimum Allowed Value (for some types)
"minValueQuantity" : { Quantity }, // IMinimum Allowed Value (for some types)
// value[x]: Maximum Allowed Value (for some types). One of these 10:
"maxValueDate" : "<date>", // IMaximum Allowed Value (for some types)
"maxValueDateTime" : "<dateTime>", // IMaximum Allowed Value (for some types)
"maxValueInstant" : "<instant>", // IMaximum Allowed Value (for some types)
"maxValueTime" : "<time>", // IMaximum Allowed Value (for some types)
"maxValueDecimal" : <decimal>, // IMaximum Allowed Value (for some types)
"maxValueInteger" : <integer>, // IMaximum Allowed Value (for some types)
"maxValueInteger64" : "<integer64>", // IMaximum Allowed Value (for some types)
"maxValuePositiveInt" : "<positiveInt>", // IMaximum Allowed Value (for some types)
"maxValueUnsignedInt" : "<unsignedInt>", // IMaximum Allowed Value (for some types)
"maxValueQuantity" : { Quantity }, // IMaximum Allowed Value (for some types)
"maxLength" : <integer>, // IMax length for string type data
"condition" : ["<id>"], // IReference to invariant about presence
"constraint" : [{ Element }], // ICondition that must evaluate to true
"mustHaveValue" : <boolean>, // IFor primitives, that a value must be present - not replaced by an extension
"valueAlternatives" : ["<canonical>"], // IExtensions that are allowed to replace a primitive value
"mustSupport" : <boolean>, // IIf the element must be supported (discouraged - see obligations)
"isModifierReason" : "<string>", // IReason that this element is marked as a modifier
"binding" : { Element }, // IValueSet details if this is coded
"mapping" : [{ Element }], // IMap element to another set of definitions
}
Alternate definitions: Master Definition ( XML , JSON ), Schematron
| Path | Name | Conformance | ValueSet |
| ElementDefinition.code |
|
example |
|
| ElementDefinition.slicing.discriminator.type | DiscriminatorType | required | DiscriminatorType |
| ElementDefinition.slicing.rules | SlicingRules | required | SlicingRules |
| ElementDefinition.type.code |
|
extensible |
|
| ElementDefinition.type.versioning | ReferenceVersionRules | required | ReferenceVersionRules |
| ElementDefinition.constraint.severity | ConstraintSeverity | required | ConstraintSeverity |
| ElementDefinition.binding.strength | BindingStrength | required | BindingStrength |
| ElementDefinition.binding.additional.purpose | Additional Binding Purpose ValueSet | required | Additional Binding Purpose ValueSet |
| ElementDefinition.mapping.language |
|
required |
|