Foundation
This
page
is
part
of
the
FHIR
Specification
(v4.0.1:
R4
(v5.0.0-draft-final:
Final
QA
Preview
for
R5
-
Mixed
Normative
and
STU
see
ballot
notes
)
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
R3
R2
|
|
Maturity Level : N/A | Standards Status : Informative |
|
Raw XML ( canonical form + also see XML Format Specification )
ValueSet
Example
showing
how
to
specify
a
hierarchy
StructureDefinition
for
UI
using
extensions
(id
=
"example-hierarchical")
instant
<?xml version="1.0" encoding="UTF-8"?><StructureDefinition xmlns="http://hl7.org/fhir"> <id value="instant"/> <text> <status value="generated"/><!-- include the code system this value is derived from since it's been hacked a little, and for simplicity --><div xmlns="http://www.w3.org/1999/xhtml">to do</div> </text> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status"> <valueCode value="normative"/> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version"> <valueCode value="4.0.0"/> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics"> <valueCode value="has-range"/> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics"> <valueCode value="is-continuous"/> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics"> <valueCode value="has-length"/> </extension> <url value="http://hl7.org/fhir/StructureDefinition/instant"/> <version value="5.0.0-draft-final"/> <name value="instant"/> <status value="active"/> <experimental value="false"/> <date value="2023-03-01T23:03:57+11:00"/> <publisher value="HL7 FHIR Standard"/> <contact> <telecom> <system value="url"/> <value value="http://hl7.org/fhir"/><!-- the include by enumeration simply lists a set of codes with no structure we're going to introduce a hierarchy. There's 5 possibilities, each shown in this complex example: 1. the grouper we are introducing isn't in the code system 2. The grouper matches a concept in the code system, which is in the value set a, it isn't abstract b. it is abstract 3. The grouper matches a concept in the code system, which isn't in the value set a, it isn't abstract b. it is abstract 1# we introduce a category for concepts for (most common) * (most common) + login (also below) + conflict (only here) #2a we replicate processing as a structure. it's not abstract * processing + duplicate, not-found #2b we replicate invalid as a structure. it's abstract * invalid + structure, required, value #3a we replicate transient as a structure. it's not abstract (but not in the value set) * transient + lock, exception, tbrottled #3b we replicate security as a structure. it's abstract (but not in the value set) * security + login | unknown please, no argument about whether this a good domain example; the point is illustrate the method --> <!-- this entry is not in the value set, but it was introduced as a grouper. So it's labelled "abstract" : user cannot select it, but the code is provided to tie it back to the concept --> <!-- the not UI expansion is <contains> <system value="http://hl7.org/fhir/hacked"/> <abstract value="true"/> <code value="invalid"/> <display value="Invalid Content"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="structure"/> <display value="Structural Issue"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="required"/> <display value="Required element missing"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="value"/> <display value="Element value invalid"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="processing"/> <display value="Processing Failure"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="duplicate"/> <display value="Duplicate"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="not-found"/> <display value="Not Found"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="conflict"/> <display value="Edit Version Conflict"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="lock-error"/> <display value="Lock Error"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="exception"/> <display value="Exception"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="throttled"/> <display value="Throttled"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="login"/> <display value="Login Required"/> </contains> <contains> <system value="http://hl7.org/fhir/hacked"/> <code value="unknown"/> <display value="Unknown User"/> </contains> --></telecom> </contact> <description value="instant Type: An instant in time - known at least to the second"/> <jurisdiction> <coding> <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/> <code value="001"/> <display value="World"/> </coding> </jurisdiction> <fhirVersion value="5.0.0-draft-final"/> <kind value="primitive-type"/> <abstract value="false"/> <type value="instant"/> <baseDefinition value="http://hl7.org/fhir/StructureDefinition/PrimitiveType"/> <derivation value="specialization"/> <snapshot> <element id="instant"> <path value="instant"/> <short value="Primitive Type instant"/> <definition value="An instant in time - known at least to the second"/> <comment value="Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. UTC offset is always required"/> <min value="0"/> <max value="*"/> <base> <path value="instant"/> <min value="0"/> <max value="*"/> </base> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <source value="http://hl7.org/fhir/StructureDefinition/Element"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="instant.id"> <path value="instant.id"/> <representation value="xmlAttr"/> <short value="xml:id (or equivalent in JSON)"/> <definition value="unique id for the element within a resource (for internal references)"/> <min value="0"/> <max value="1"/> <base> <path value="Element.id"/> <min value="0"/> <max value="1"/> </base> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUrl value="string"/> </extension> <code value="http://hl7.org/fhirpath/System.String"/> </type> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="instant.extension"> <path value="instant.extension"/> <short value="Additional content defined by implementations"/> <definition value="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, 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."/> <comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone."/> <alias value="extensions"/> <alias value="user content"/> <min value="0"/> <max value="*"/> <base> <path value="Element.extension"/> <min value="0"/> <max value="*"/> </base> <type> <code value="Extension"/> </type> <constraint> <key value="ele-1"/> <severity value="error"/> <human value="All FHIR elements must have a @value or children"/> <expression value="hasValue() or (children().count() > id.count())"/> <source value="http://hl7.org/fhir/StructureDefinition/Element"/> </constraint> <constraint> <key value="ext-1"/> <severity value="error"/> <human value="Must have either extensions or value[x], not both"/> <expression value="extension.exists() != value.exists()"/> <source value="http://hl7.org/fhir/StructureDefinition/Extension"/> </constraint> <isModifier value="false"/> <isSummary value="false"/> </element> <element id="instant.value"> <path value="instant.value"/> <representation value="xmlAttr"/> <short value="Primitive value for instant"/> <definition value="The actual value"/> <min value="0"/> <max value="1"/> <base> <path value="instant.value"/> <min value="0"/> <max value="1"/> </base> <!-- Note: special primitive values have a FHIRPath system type. e.g. this is compiler magic (c) --> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUrl value="instant"/> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/regex"> <valueString value="([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0 -9]|14:00))"/> </extension> <code value="http://hl7.org/fhirpath/System.DateTime"/> </type> <isModifier value="false"/> <isSummary value="false"/> </element> </snapshot> <differential> <element id="instant"> <path value="instant"/> <short value="Primitive Type instant"/> <definition value="An instant in time - known at least to the second"/> <comment value="Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. UTC offset is always required"/> <min value="0"/> <max value="*"/> </element> <element id="instant.value"> <path value="instant.value"/> <representation value="xmlAttr"/> <short value="Primitive value for instant"/> <definition value="Primitive value for instant"/> <min value="0"/> <max value="1"/> <!-- Note: special primitive values have a FHIRPath system type. e.g. this is compiler magic (a) --> <!-- Note: special primitive values have a FHIRPath system type. e.g. this is compiler magic (b) --> <type> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"> <valueUrl value="instant"/> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/regex"> <valueString value="([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0 -9]|14:00))"/> </extension> <code value="http://hl7.org/fhirpath/System.DateTime"/> </type> </element> </differential> </ValueSetStructureDefinition >
Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.
FHIR
®©
HL7.org
2011+.
FHIR
Release
4
(Technical
Correction
#1)
(v4.0.1)
R5
hl7.fhir.core#5.0.0-draft-final
generated
on
Fri,
Nov
Wed,
Mar
1,
2019
09:32+1100.
QA
Page
2023
23:05+1100.
Links:
Search
|
Version
History
|
Table
of
Contents
|
Credits
Glossary
|
QA
|
Compare
to
R3
R4B
|
Compare
to
R5
Draft
|
|
Propose
a
change