This
page
is
part
of
the
FHIR
Specification
(v4.0.1:
R4
(v4.3.0:
R4B
-
Mixed
Normative
and
STU
)
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
).
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
R4B
R4
R3
R2
| FHIR Infrastructure Work Group | Maturity Level : 1 | Trial Use | Use Context : Any |
The official 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 .
This structure is derived from ElementDefinition .
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
I | 0..* | ElementDefinition |
Definition
of
an
element
in
a
resource
or
extension
|
|
0..1 |
|
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
|
|
Σ
|
1..1 | string | Path of the element in the hierarchy of elements |
|
Σ
|
0..1 | string | Name for this particular element (in a set of slices) |
|
Σ
|
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: LOINC Codes ( example ) |
|
Σ
|
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
|
|
Σ I | 0..1 | unsignedInt | Minimum Cardinality |
|
Σ I | 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 |
|
Σ I | 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 |
|
Σ
|
1..1 | uri |
Data
type
or
Resource
(reference
to
definition)
Binding: |
|
Σ
|
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 ) |
|
Σ I | 0..1 | Specified value if missing from instance | |
|
base64Binary | |||
|
boolean | |||
|
canonical
|
|||
|
code | |||
|
date | |||
|
dateTime | |||
|
decimal | |||
|
id | |||
|
instant | |||
|
integer | |||
|
markdown | |||
|
oid | |||
|
positiveInt | |||
|
string | |||
|
time | |||
|
unsignedInt | |||
|
uri | |||
|
url | |||
|
uuid | |||
|
Address | |||
|
Age | |||
|
Annotation | |||
|
Attachment | |||
|
CodeableConcept | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Range | |||
![]() ![]() ![]() | Ratio | |||
| RatioRange | |||
|
Reference
|
|||
|
SampledData | |||
|
Signature | |||
|
Timing | |||
|
ContactDetail | |||
|
Contributor | |||
|
DataRequirement | |||
|
Expression | |||
|
ParameterDefinition | |||
|
RelatedArtifact | |||
|
TriggerDefinition | |||
|
UsageContext | |||
|
Dosage | |||
|
Σ I | 0..1 | markdown | Implicit meaning when this element is missing |
|
Σ
|
0..1 | string | What the order of the elements means |
|
Σ
|
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) | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Coding | |||
|
ContactPoint | |||
|
Count | |||
|
Distance | |||
|
Duration | |||
|
HumanName | |||
|
Identifier | |||
|
Money | |||
|
Period | |||
|
Quantity | |||
|
Range | |||
|
Ratio | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Σ
|
0..1 | Minimum Allowed Value (for some types) | |
|
date | |||
|
dateTime | |||
|
instant | |||
|
time | |||
|
decimal | |||
|
integer | |||
|
positiveInt | |||
|
unsignedInt | |||
|
Quantity | |||
|
Σ
|
0..1 | Maximum Allowed Value (for some types) | |
|
date | |||
|
dateTime | |||
|
instant | |||
|
time | |||
|
decimal | |||
|
integer | |||
|
positiveInt | |||
|
unsignedInt | |||
|
Quantity | |||
|
Σ
|
0..1 | integer | Max length for strings |
|
Σ
|
0..* | id |
Reference
to
invariant
about
presence
|
|
Σ I | 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 |
|
Σ I | 1..1 | id | Target of 'condition' reference above |
|
Σ
|
0..1 | string | Why this constraint is necessary or appropriate |
|
Σ
|
1..1 | code |
error
|
warning
Binding: ConstraintSeverity ( required ) |
|
Σ
|
1..1 | string | Human description of constraint |
|
Σ
|
0..1 | string | FHIRPath expression of constraint |
|
Σ
|
0..1 | string | XPath expression of constraint |
|
Σ
|
0..1 | canonical ( StructureDefinition ) | Reference to original source of constraint |
|
Σ
|
0..1 | boolean | If the element must be supported |
|
Σ
|
0..1 | string | Reason that this element is marked as a modifier |
|
Σ I | 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 ) |
|
Σ
|
0..1 | string | Human explanation of the value set |
|
Σ I | 0..1 | canonical ( ValueSet ) | Source of value set |
|
Σ
|
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 |
|
Σ
|
1..1 | id | Reference to mapping declaration |
|
Σ
|
0..1 | code |
Computable
language
of
mapping
Binding: MimeType ( required |
|
Σ
|
1..1 | string | Details of the mapping |
|
Σ
|
0..1 | string | 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 --> <modifierExtension><!--
0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <path value="[string]"/><!--
1..1 Path of the element in the hierarchy of elements --> <representation value="[code]"/><!--
0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml --> <sliceName value="[string]"/><!--
0..1 Name for this particular element (in a set of slices) --> <sliceIsConstraining value="[boolean]"/><!--
0..1 If this slice definition constrains an inherited slice definition (or not) --> <label value="[string]"/><!--
0..1 Name for element to display with or prompt for element --> <code><!--
0..* Coding Corresponding codes in terminologies --></code>
<<slicing>0..0 Element <!--
0..0 This element is sliced - slices follow --> </slicing> <short value="[string]"/><!--
0..0 Concise definition for space-constrained presentation --> <definition value="[markdown]"/><!--
0..1 Full formal definition as narrative text --> <comment value="[markdown]"/><!--
0..1 Comments about the use of this element --> <requirements value="[markdown]"/><!--
0..1 Why this resource has been created --> <alias value="[string]"/><!--
0..* Other names --> <min value="[unsignedInt]"/><!--
0..1 Minimum Cardinality --> <max value="[string]"/><!--
0..1 Maximum Cardinality (a number or *) -->
< <<base>0..1 Element <!--
0..1 Base definition information for tools --> <path value="[string]"/><!--
1..1 Path that identifies the base element --> <min value="[unsignedInt]"/><!--
1..1 Min cardinality of the base element --> <max value="[string]"/><!--
1..1 Max cardinality of the base element --> </base> <contentReference value="[uri]"/><!--
0..0 Reference to definition of content for the element -->
< <<type>0..* Element <!--
0..* Data type and Profile for this element --> <code value="[uri]"/><!--
1..1 Data type or Resource (reference to definition) --> <profile value="[canonical]"/><!--
0..0 Profiles (StructureDefinition or IG) - one must apply --> <targetProfile value="[canonical]"/><!--
0..* Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply --> <aggregation value="[code]"/><!--
0..0 contained | referenced | bundled - how aggregated --> <versioning value="[code]"/><!--
0..1 either | independent | specific --> </type> <defaultValue[x]><!--
0..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string| time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
| | | | </defaultValue[x]>CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference| SampledData|Signature|Timing|ContactDetail|Contributor|DataRequirement| Expression|ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Dosage Specified value if missing from instance --></defaultValue[x]> <meaningWhenMissing value="[markdown]"/><!--0..1 Implicit meaning when this element is missing --> <orderMeaning value="[string]"/><!--
0..1 What the order of the elements means --> <fixed[x]><!--
0..0 base64Binary|boolean|canonical|code|date| dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time| unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|
| | | </fixed[x]>CodeableReference|Coding|ContactPoint|Count|Distance|Duration|HumanName| Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|SampledData| Signature|Timing|ContactDetail|Contributor|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Dosage Value must be exactly this --></fixed[x]> <pattern[x]><!--0..0 base64Binary|boolean|canonical|code| date|dateTime|decimal|id|instant|integer|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|Contributor|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Dosage Value must have at least these property values --></pattern[x]><<example>0..* Element <!--
0..* Example value (as defined for type) --> <label value="[string]"/><!--
1..1 Describes the purpose of this example --> <value[x]><!--
1..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt| string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
| | | | </value[x]>CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance| Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange| Reference|SampledData|Signature|Timing|ContactDetail|Contributor| DataRequirement|Expression|ParameterDefinition|RelatedArtifact| TriggerDefinition|UsageContext|Dosage Value of Example (one of allowed types) --></value[x]> </example> <minValue[x]><!--0..1 date|dateTime|instant|time|decimal| integer|positiveInt|unsignedInt|Quantity Minimum Allowed Value (for some types) --></minValue[x]> <maxValue[x]><!--
0..1 date|dateTime|instant|time|decimal| integer|positiveInt|unsignedInt|Quantity Maximum Allowed Value (for some types) --></maxValue[x]> <maxLength value="[integer]"/><!--
0..1 Max length for strings --> <condition value="[id]"/><!--
0..* Reference to invariant about presence -->
<<constraint>0..* Element <!--
0..* Condition that must evaluate to true --> <key value="[id]"/><!--
1..1 Target of 'condition' reference above --> <requirements value="[string]"/><!--
0..1 Why this constraint is necessary or appropriate --> <severity value="[code]"/><!--
1..1 error | warning --> <human value="[string]"/><!--
1..1 Human description of constraint -->
<<expression value="[string]"/><!--0..1 FHIRPath expression of constraint --> <xpath value="[string]"/><!--
0..1 XPath expression of constraint --> <source value="[canonical]"/><!--
0..1 Reference to original source of constraint --> </constraint> <mustSupport value="[boolean]"/><!--
0..1 If the element must be supported --> <isModifier value="[boolean]"/><!--
0..0 If this modifies the meaning of other elements --> <isModifierReason value="[string]"/><!--
0..1 Reason that this element is marked as a modifier --> <isSummary value="[boolean]"/><!--
0..0 Include when _summary = true? -->
<<binding>0..1 Element <!--
0..1 ValueSet details if this is coded --> <strength value="[code]"/><!--
1..1 required | extensible | preferred | example --> <description value="[string]"/><!--
0..1 Human explanation of the value set --> <valueSet value="[canonical]"/><!--
0..1 Source of value set --> </binding>
<<mapping>0..* Element <!--
0..* Map element to another set of definitions --> <identity value="[id]"/><!--
1..1 Reference to mapping declaration --> <language value="[code]"/><!--
0..1 Computable language of mapping --> <map value="[string]"/><!--
1..1 Details of the mapping --> <comment value="[string]"/><!--
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 // C?
// from Element: extension
" ]
"
"
},
{ // Units to use for measured value // C?
// from Element: extension
" ]
"
"
"
}
],
"modifierExtension" : [{ Extension }], // C?Extensions that cannot be ignored even if unrecognized
"path" : "<string>", // C? R! Path of the element in the hierarchy of elements
"sliceName" : "<string>", // C?Name for this particular element (in a set of slices)
"sliceIsConstraining" : <boolean>, // C?If this slice definition constrains an inherited slice definition (or not)
"label" : "<string>", // C?Name for element to display with or prompt for element
"code" : [{ Coding }], // C?Corresponding codes in terminologies
"definition" : "<markdown>", // C?Full formal definition as narrative text
"comment" : "<markdown>", // C?Comments about the use of this element
"requirements" : "<markdown>", // C?Why this resource has been created
"alias" : ["<string>"], // C?Other names
"min" : "<unsignedInt>", // C?Minimum Cardinality
"max" : "<string>", // C?Maximum Cardinality (a number or *)
"
"
"base" : { Element }, // C?Base definition information for tools
"type" : [{ Element }], // C?Data type and Profile for this element
// value[x]: Specified value if missing from instance. One of these 51:
"defaultValueBase64Binary" : "<base64Binary>", // C?Specified value if missing from instance
"defaultValueBoolean" : <boolean>, // C?Specified value if missing from instance
"defaultValueCanonical" : "<canonical>", // C?Specified value if missing from instance
"defaultValueCode" : "<code>", // C?Specified value if missing from instance
"defaultValueDate" : "<date>", // C?Specified value if missing from instance
"defaultValueDateTime" : "<dateTime>", // C?Specified value if missing from instance
"defaultValueDecimal" : <decimal>, // C?Specified value if missing from instance
"defaultValueId" : "<id>", // C?Specified value if missing from instance
"defaultValueInstant" : "<instant>", // C?Specified value if missing from instance
"defaultValueInteger" : <integer>, // C?Specified value if missing from instance
"defaultValueMarkdown" : "<markdown>", // C?Specified value if missing from instance
"defaultValueOid" : "<oid>", // C?Specified value if missing from instance
"defaultValuePositiveInt" : "<positiveInt>", // C?Specified value if missing from instance
"defaultValueString" : "<string>", // C?Specified value if missing from instance
"defaultValueTime" : "<time>", // C?Specified value if missing from instance
"defaultValueUnsignedInt" : "<unsignedInt>", // C?Specified value if missing from instance
"defaultValueUri" : "<uri>", // C?Specified value if missing from instance
"defaultValueUrl" : "<url>", // C?Specified value if missing from instance
"defaultValueUuid" : "<uuid>" // C?Specified value if missing from instance
"defaultValueAddress" : { Address }, // C?Specified value if missing from instance
"defaultValueAge" : { Age }, // C?Specified value if missing from instance
"defaultValueAnnotation" : { Annotation }, // C?Specified value if missing from instance
"defaultValueAttachment" : { Attachment }, // C?Specified value if missing from instance
"defaultValueCodeableConcept" : { CodeableConcept }, // C?Specified value if missing from instance
"defaultValueCodeableReference" : { CodeableReference }, // C?Specified value if missing from instance
"defaultValueCoding" : { Coding }, // C?Specified value if missing from instance
"defaultValueContactPoint" : { ContactPoint }, // C?Specified value if missing from instance
"defaultValueCount" : { Count }, // C?Specified value if missing from instance
"defaultValueDistance" : { Distance }, // C?Specified value if missing from instance
"defaultValueDuration" : { Duration }, // C?Specified value if missing from instance
"defaultValueHumanName" : { HumanName }, // C?Specified value if missing from instance
"defaultValueIdentifier" : { Identifier }, // C?Specified value if missing from instance
"defaultValueMoney" : { Money }, // C?Specified value if missing from instance
"defaultValuePeriod" : { Period }, // C?Specified value if missing from instance
"defaultValueQuantity" : { Quantity }, // C?Specified value if missing from instance
"defaultValueRange" : { Range }, // C?Specified value if missing from instance
"defaultValueRatio" : { Ratio }, // C?Specified value if missing from instance
"defaultValueRatioRange" : { RatioRange }, // C?Specified value if missing from instance
"defaultValueReference" : { Reference }, // C?Specified value if missing from instance
"defaultValueSampledData" : { SampledData }, // C?Specified value if missing from instance
"defaultValueSignature" : { Signature }, // C?Specified value if missing from instance
"defaultValueTiming" : { Timing }, // C?Specified value if missing from instance
"defaultValueContactDetail" : { ContactDetail }, // C?Specified value if missing from instance
"defaultValueContributor" : { Contributor }, // C?Specified value if missing from instance
"defaultValueDataRequirement" : { DataRequirement }, // C?Specified value if missing from instance
"defaultValueExpression" : { Expression }, // C?Specified value if missing from instance
"defaultValueParameterDefinition" : { ParameterDefinition }, // C?Specified value if missing from instance
"defaultValueRelatedArtifact" : { RelatedArtifact }, // C?Specified value if missing from instance
"defaultValueTriggerDefinition" : { TriggerDefinition }, // C?Specified value if missing from instance
"defaultValueUsageContext" : { UsageContext }, // C?Specified value if missing from instance
"defaultValueDosage" : { Dosage }, // C?Specified value if missing from instance
"
"meaningWhenMissing" : "<markdown>", // C?Implicit meaning when this element is missing
"orderMeaning" : "<string>", // C?What the order of the elements means
"
// value[x]: Value must be exactly this. One of these 51:
// value[x]: Value must have at least these property values. One of these 51:
"example" : [{ Element }], // C?Example value (as defined for type)
// value[x]: Minimum Allowed Value (for some types). One of these 9:
"minValueDate" : "<date>", // C?Minimum Allowed Value (for some types)
"minValueDateTime" : "<dateTime>", // C?Minimum Allowed Value (for some types)
"minValueInstant" : "<instant>", // C?Minimum Allowed Value (for some types)
"minValueTime" : "<time>", // C?Minimum Allowed Value (for some types)
"minValueDecimal" : <decimal>, // C?Minimum Allowed Value (for some types)
"minValueInteger" : <integer>, // C?Minimum Allowed Value (for some types)
"minValuePositiveInt" : "<positiveInt>", // C?Minimum Allowed Value (for some types)
"minValueUnsignedInt" : "<unsignedInt>", // C?Minimum Allowed Value (for some types)
"minValueQuantity" : { Quantity }, // C?Minimum Allowed Value (for some types)
// value[x]: Maximum Allowed Value (for some types). One of these 9:
"maxValueDate" : "<date>", // C?Maximum Allowed Value (for some types)
"maxValueDateTime" : "<dateTime>", // C?Maximum Allowed Value (for some types)
"maxValueInstant" : "<instant>", // C?Maximum Allowed Value (for some types)
"maxValueTime" : "<time>", // C?Maximum Allowed Value (for some types)
"maxValueDecimal" : <decimal>, // C?Maximum Allowed Value (for some types)
"maxValueInteger" : <integer>, // C?Maximum Allowed Value (for some types)
"maxValuePositiveInt" : "<positiveInt>", // C?Maximum Allowed Value (for some types)
"maxValueUnsignedInt" : "<unsignedInt>", // C?Maximum Allowed Value (for some types)
"maxValueQuantity" : { Quantity }, // C?Maximum Allowed Value (for some types)
"maxLength" : <integer>, // C?Max length for strings
"condition" : ["<id>"], // C?Reference to invariant about presence
"
"constraint" : [{ Element }], // C?Condition that must evaluate to true
"mustSupport" : <boolean>, // C?If the element must be supported
"isModifierReason" : "<string>", // C?Reason that this element is marked as a modifier
"
"
"binding" : { Element }, // C?ValueSet details if this is coded
"mapping" : [{ Element }], // C?Map element to another set of definitions
}
This structure is derived from ElementDefinition .
Differential View
This structure is derived from ElementDefinition .
Snapshot View
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
I | 0..* | ElementDefinition |
Definition
of
an
element
in
a
resource
or
extension
|
|
0..1 |
|
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
|
|
Σ
|
1..1 | string | Path of the element in the hierarchy of elements |
|
Σ
|
0..1 | string | Name for this particular element (in a set of slices) |
|
Σ
|
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: LOINC Codes ( example ) |
|
Σ
|
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
|
|
Σ I | 0..1 | unsignedInt | Minimum Cardinality |
|
Σ I | 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 |
|
Σ I | 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 |
|
Σ
|
1..1 | uri |
Data
type
or
Resource
(reference
to
definition)
Binding: |
|
Σ
|
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 ) |
|
Σ I | 0..1 | Specified value if missing from instance | |
|
base64Binary | |||
|
boolean | |||
|
canonical
|
|||
|
code | |||
|
date | |||
|
dateTime | |||
|
decimal | |||
|
id | |||
|
instant | |||
|
integer | |||
|
markdown | |||
|
oid | |||
|
positiveInt | |||
|
string | |||
|
time | |||
|
unsignedInt | |||
|
uri | |||
|
url | |||
|
uuid | |||
|
Address | |||
|
Age | |||
|
Annotation | |||
|
Attachment | |||
|
CodeableConcept | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Range | |||
![]() ![]() ![]() | Ratio | |||
| RatioRange | |||
|
Reference
|
|||
|
SampledData | |||
|
Signature | |||
|
Timing | |||
|
ContactDetail | |||
|
Contributor | |||
|
DataRequirement | |||
|
Expression | |||
|
ParameterDefinition | |||
|
RelatedArtifact | |||
|
TriggerDefinition | |||
|
UsageContext | |||
|
Dosage | |||
|
Σ I | 0..1 | markdown | Implicit meaning when this element is missing |
|
Σ
|
0..1 | string | What the order of the elements means |
|
Σ
|
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) | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Coding | |||
|
ContactPoint | |||
|
Count | |||
|
Distance | |||
|
Duration | |||
|
HumanName | |||
|
Identifier | |||
|
Money | |||
|
Period | |||
|
Quantity | |||
|
Range | |||
|
Ratio | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Σ
|
0..1 | Minimum Allowed Value (for some types) | |
|
date | |||
|
dateTime | |||
|
instant | |||
|
time | |||
|
decimal | |||
|
integer | |||
|
positiveInt | |||
|
unsignedInt | |||
|
Quantity | |||
|
Σ
|
0..1 | Maximum Allowed Value (for some types) | |
|
date | |||
|
dateTime | |||
|
instant | |||
|
time | |||
|
decimal | |||
|
integer | |||
|
positiveInt | |||
|
unsignedInt | |||
|
Quantity | |||
|
Σ
|
0..1 | integer | Max length for strings |
|
Σ
|
0..* | id |
Reference
to
invariant
about
presence
|
|
Σ I | 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 |
|
Σ I | 1..1 | id | Target of 'condition' reference above |
|
Σ
|
0..1 | string | Why this constraint is necessary or appropriate |
|
Σ
|
1..1 | code |
error
|
warning
Binding: ConstraintSeverity ( required ) |
|
Σ
|
1..1 | string | Human description of constraint |
|
Σ
|
0..1 | string | FHIRPath expression of constraint |
|
Σ
|
0..1 | string | XPath expression of constraint |
|
Σ
|
0..1 | canonical ( StructureDefinition ) | Reference to original source of constraint |
|
Σ
|
0..1 | boolean | If the element must be supported |
|
Σ
|
0..1 | string | Reason that this element is marked as a modifier |
|
Σ I | 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 ) |
|
Σ
|
0..1 | string | Human explanation of the value set |
|
Σ I | 0..1 | canonical ( ValueSet ) | Source of value set |
|
Σ
|
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 |
|
Σ
|
1..1 | id | Reference to mapping declaration |
|
Σ
|
0..1 | code |
Computable
language
of
mapping
Binding: MimeType ( required |
|
Σ
|
1..1 | string | Details of the mapping |
|
Σ
|
0..1 | string | 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 --> <modifierExtension><!--
0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <path value="[string]"/><!--
1..1 Path of the element in the hierarchy of elements --> <representation value="[code]"/><!--
0..0 xmlAttr | xmlText | typeAttr | cdaText | xhtml --> <sliceName value="[string]"/><!--
0..1 Name for this particular element (in a set of slices) --> <sliceIsConstraining value="[boolean]"/><!--
0..1 If this slice definition constrains an inherited slice definition (or not) --> <label value="[string]"/><!--
0..1 Name for element to display with or prompt for element --> <code><!--
0..* Coding Corresponding codes in terminologies --></code>
<<slicing>0..0 Element <!--
0..0 This element is sliced - slices follow --> </slicing> <short value="[string]"/><!--
0..0 Concise definition for space-constrained presentation --> <definition value="[markdown]"/><!--
0..1 Full formal definition as narrative text --> <comment value="[markdown]"/><!--
0..1 Comments about the use of this element --> <requirements value="[markdown]"/><!--
0..1 Why this resource has been created --> <alias value="[string]"/><!--
0..* Other names --> <min value="[unsignedInt]"/><!--
0..1 Minimum Cardinality --> <max value="[string]"/><!--
0..1 Maximum Cardinality (a number or *) -->
< <<base>0..1 Element <!--
0..1 Base definition information for tools --> <path value="[string]"/><!--
1..1 Path that identifies the base element --> <min value="[unsignedInt]"/><!--
1..1 Min cardinality of the base element --> <max value="[string]"/><!--
1..1 Max cardinality of the base element --> </base> <contentReference value="[uri]"/><!--
0..0 Reference to definition of content for the element -->
< <<type>0..* Element <!--
0..* Data type and Profile for this element --> <code value="[uri]"/><!--
1..1 Data type or Resource (reference to definition) --> <profile value="[canonical]"/><!--
0..0 Profiles (StructureDefinition or IG) - one must apply --> <targetProfile value="[canonical]"/><!--
0..* Profile (StructureDefinition or IG) on the Reference/canonical target - one must apply --> <aggregation value="[code]"/><!--
0..0 contained | referenced | bundled - how aggregated --> <versioning value="[code]"/><!--
0..1 either | independent | specific --> </type> <defaultValue[x]><!--
0..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string| time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
| | | | </defaultValue[x]>CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration| HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference| SampledData|Signature|Timing|ContactDetail|Contributor|DataRequirement| Expression|ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext| Dosage Specified value if missing from instance --></defaultValue[x]> <meaningWhenMissing value="[markdown]"/><!--0..1 Implicit meaning when this element is missing --> <orderMeaning value="[string]"/><!--
0..1 What the order of the elements means --> <fixed[x]><!--
0..0 base64Binary|boolean|canonical|code|date| dateTime|decimal|id|instant|integer|markdown|oid|positiveInt|string|time| unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|
| | | </fixed[x]>CodeableReference|Coding|ContactPoint|Count|Distance|Duration|HumanName| Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|SampledData| Signature|Timing|ContactDetail|Contributor|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Dosage Value must be exactly this --></fixed[x]> <pattern[x]><!--0..0 base64Binary|boolean|canonical|code| date|dateTime|decimal|id|instant|integer|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|Contributor|DataRequirement|Expression| ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Dosage Value must have at least these property values --></pattern[x]><<example>0..* Element <!--
0..* Example value (as defined for type) --> <label value="[string]"/><!--
1..1 Describes the purpose of this example --> <value[x]><!--
1..1 base64Binary|boolean|canonical| code|date|dateTime|decimal|id|instant|integer|markdown|oid|positiveInt| string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|
| | | | </value[x]>CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance| Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange| Reference|SampledData|Signature|Timing|ContactDetail|Contributor| DataRequirement|Expression|ParameterDefinition|RelatedArtifact| TriggerDefinition|UsageContext|Dosage Value of Example (one of allowed types) --></value[x]> </example> <minValue[x]><!--0..1 date|dateTime|instant|time|decimal| integer|positiveInt|unsignedInt|Quantity Minimum Allowed Value (for some types) --></minValue[x]> <maxValue[x]><!--
0..1 date|dateTime|instant|time|decimal| integer|positiveInt|unsignedInt|Quantity Maximum Allowed Value (for some types) --></maxValue[x]> <maxLength value="[integer]"/><!--
0..1 Max length for strings --> <condition value="[id]"/><!--
0..* Reference to invariant about presence -->
<<constraint>0..* Element <!--
0..* Condition that must evaluate to true --> <key value="[id]"/><!--
1..1 Target of 'condition' reference above --> <requirements value="[string]"/><!--
0..1 Why this constraint is necessary or appropriate --> <severity value="[code]"/><!--
1..1 error | warning --> <human value="[string]"/><!--
1..1 Human description of constraint -->
<<expression value="[string]"/><!--0..1 FHIRPath expression of constraint --> <xpath value="[string]"/><!--
0..1 XPath expression of constraint --> <source value="[canonical]"/><!--
0..1 Reference to original source of constraint --> </constraint> <mustSupport value="[boolean]"/><!--
0..1 If the element must be supported --> <isModifier value="[boolean]"/><!--
0..0 If this modifies the meaning of other elements --> <isModifierReason value="[string]"/><!--
0..1 Reason that this element is marked as a modifier --> <isSummary value="[boolean]"/><!--
0..0 Include when _summary = true? -->
<<binding>0..1 Element <!--
0..1 ValueSet details if this is coded --> <strength value="[code]"/><!--
1..1 required | extensible | preferred | example --> <description value="[string]"/><!--
0..1 Human explanation of the value set --> <valueSet value="[canonical]"/><!--
0..1 Source of value set --> </binding>
<<mapping>0..* Element <!--
0..* Map element to another set of definitions --> <identity value="[id]"/><!--
1..1 Reference to mapping declaration --> <language value="[code]"/><!--
0..1 Computable language of mapping --> <map value="[string]"/><!--
1..1 Details of the mapping --> <comment value="[string]"/><!--
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 // C?
// from Element: extension
" ]
"
"
},
{ // Units to use for measured value // C?
// from Element: extension
" ]
"
"
"
}
],
"modifierExtension" : [{ Extension }], // C?Extensions that cannot be ignored even if unrecognized
"path" : "<string>", // C? R! Path of the element in the hierarchy of elements
"sliceName" : "<string>", // C?Name for this particular element (in a set of slices)
"sliceIsConstraining" : <boolean>, // C?If this slice definition constrains an inherited slice definition (or not)
"label" : "<string>", // C?Name for element to display with or prompt for element
"code" : [{ Coding }], // C?Corresponding codes in terminologies
"definition" : "<markdown>", // C?Full formal definition as narrative text
"comment" : "<markdown>", // C?Comments about the use of this element
"requirements" : "<markdown>", // C?Why this resource has been created
"alias" : ["<string>"], // C?Other names
"min" : "<unsignedInt>", // C?Minimum Cardinality
"max" : "<string>", // C?Maximum Cardinality (a number or *)
"
"
"base" : { Element }, // C?Base definition information for tools
"type" : [{ Element }], // C?Data type and Profile for this element
// value[x]: Specified value if missing from instance. One of these 51:
"defaultValueBase64Binary" : "<base64Binary>", // C?Specified value if missing from instance
"defaultValueBoolean" : <boolean>, // C?Specified value if missing from instance
"defaultValueCanonical" : "<canonical>", // C?Specified value if missing from instance
"defaultValueCode" : "<code>", // C?Specified value if missing from instance
"defaultValueDate" : "<date>", // C?Specified value if missing from instance
"defaultValueDateTime" : "<dateTime>", // C?Specified value if missing from instance
"defaultValueDecimal" : <decimal>, // C?Specified value if missing from instance
"defaultValueId" : "<id>", // C?Specified value if missing from instance
"defaultValueInstant" : "<instant>", // C?Specified value if missing from instance
"defaultValueInteger" : <integer>, // C?Specified value if missing from instance
"defaultValueMarkdown" : "<markdown>", // C?Specified value if missing from instance
"defaultValueOid" : "<oid>", // C?Specified value if missing from instance
"defaultValuePositiveInt" : "<positiveInt>", // C?Specified value if missing from instance
"defaultValueString" : "<string>", // C?Specified value if missing from instance
"defaultValueTime" : "<time>", // C?Specified value if missing from instance
"defaultValueUnsignedInt" : "<unsignedInt>", // C?Specified value if missing from instance
"defaultValueUri" : "<uri>", // C?Specified value if missing from instance
"defaultValueUrl" : "<url>", // C?Specified value if missing from instance
"defaultValueUuid" : "<uuid>" // C?Specified value if missing from instance
"defaultValueAddress" : { Address }, // C?Specified value if missing from instance
"defaultValueAge" : { Age }, // C?Specified value if missing from instance
"defaultValueAnnotation" : { Annotation }, // C?Specified value if missing from instance
"defaultValueAttachment" : { Attachment }, // C?Specified value if missing from instance
"defaultValueCodeableConcept" : { CodeableConcept }, // C?Specified value if missing from instance
"defaultValueCodeableReference" : { CodeableReference }, // C?Specified value if missing from instance
"defaultValueCoding" : { Coding }, // C?Specified value if missing from instance
"defaultValueContactPoint" : { ContactPoint }, // C?Specified value if missing from instance
"defaultValueCount" : { Count }, // C?Specified value if missing from instance
"defaultValueDistance" : { Distance }, // C?Specified value if missing from instance
"defaultValueDuration" : { Duration }, // C?Specified value if missing from instance
"defaultValueHumanName" : { HumanName }, // C?Specified value if missing from instance
"defaultValueIdentifier" : { Identifier }, // C?Specified value if missing from instance
"defaultValueMoney" : { Money }, // C?Specified value if missing from instance
"defaultValuePeriod" : { Period }, // C?Specified value if missing from instance
"defaultValueQuantity" : { Quantity }, // C?Specified value if missing from instance
"defaultValueRange" : { Range }, // C?Specified value if missing from instance
"defaultValueRatio" : { Ratio }, // C?Specified value if missing from instance
"defaultValueRatioRange" : { RatioRange }, // C?Specified value if missing from instance
"defaultValueReference" : { Reference }, // C?Specified value if missing from instance
"defaultValueSampledData" : { SampledData }, // C?Specified value if missing from instance
"defaultValueSignature" : { Signature }, // C?Specified value if missing from instance
"defaultValueTiming" : { Timing }, // C?Specified value if missing from instance
"defaultValueContactDetail" : { ContactDetail }, // C?Specified value if missing from instance
"defaultValueContributor" : { Contributor }, // C?Specified value if missing from instance
"defaultValueDataRequirement" : { DataRequirement }, // C?Specified value if missing from instance
"defaultValueExpression" : { Expression }, // C?Specified value if missing from instance
"defaultValueParameterDefinition" : { ParameterDefinition }, // C?Specified value if missing from instance
"defaultValueRelatedArtifact" : { RelatedArtifact }, // C?Specified value if missing from instance
"defaultValueTriggerDefinition" : { TriggerDefinition }, // C?Specified value if missing from instance
"defaultValueUsageContext" : { UsageContext }, // C?Specified value if missing from instance
"defaultValueDosage" : { Dosage }, // C?Specified value if missing from instance
"
"meaningWhenMissing" : "<markdown>", // C?Implicit meaning when this element is missing
"orderMeaning" : "<string>", // C?What the order of the elements means
"
// value[x]: Value must be exactly this. One of these 51:
// value[x]: Value must have at least these property values. One of these 51:
"example" : [{ Element }], // C?Example value (as defined for type)
// value[x]: Minimum Allowed Value (for some types). One of these 9:
"minValueDate" : "<date>", // C?Minimum Allowed Value (for some types)
"minValueDateTime" : "<dateTime>", // C?Minimum Allowed Value (for some types)
"minValueInstant" : "<instant>", // C?Minimum Allowed Value (for some types)
"minValueTime" : "<time>", // C?Minimum Allowed Value (for some types)
"minValueDecimal" : <decimal>, // C?Minimum Allowed Value (for some types)
"minValueInteger" : <integer>, // C?Minimum Allowed Value (for some types)
"minValuePositiveInt" : "<positiveInt>", // C?Minimum Allowed Value (for some types)
"minValueUnsignedInt" : "<unsignedInt>", // C?Minimum Allowed Value (for some types)
"minValueQuantity" : { Quantity }, // C?Minimum Allowed Value (for some types)
// value[x]: Maximum Allowed Value (for some types). One of these 9:
"maxValueDate" : "<date>", // C?Maximum Allowed Value (for some types)
"maxValueDateTime" : "<dateTime>", // C?Maximum Allowed Value (for some types)
"maxValueInstant" : "<instant>", // C?Maximum Allowed Value (for some types)
"maxValueTime" : "<time>", // C?Maximum Allowed Value (for some types)
"maxValueDecimal" : <decimal>, // C?Maximum Allowed Value (for some types)
"maxValueInteger" : <integer>, // C?Maximum Allowed Value (for some types)
"maxValuePositiveInt" : "<positiveInt>", // C?Maximum Allowed Value (for some types)
"maxValueUnsignedInt" : "<unsignedInt>", // C?Maximum Allowed Value (for some types)
"maxValueQuantity" : { Quantity }, // C?Maximum Allowed Value (for some types)
"maxLength" : <integer>, // C?Max length for strings
"condition" : ["<id>"], // C?Reference to invariant about presence
"
"constraint" : [{ Element }], // C?Condition that must evaluate to true
"mustSupport" : <boolean>, // C?If the element must be supported
"isModifierReason" : "<string>", // C?Reason that this element is marked as a modifier
"
"
"binding" : { Element }, // C?ValueSet details if this is coded
"mapping" : [{ Element }], // C?Map element to another set of definitions
}
Alternate definitions: Master Definition ( XML , JSON ), Schematron
| Path | Name | Conformance | ValueSet |
|
|
LOINC Codes | example | LOINC Codes |
| 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.mapping.language | MimeType | required | MimeType |