This
page
is
part
of
the
FHIR
Specification
(v3.0.2:
(v4.0.1:
R4
-
Mixed
Normative
and
STU
3).
)
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
R4
R3
Vocabulary
Work
Group
|
Maturity
Level
:
|
|
Security Category : Anonymous | Compartments : Not linked to any defined compartments |
|
|
This
page
has
been
approved
as
part
of
an
ANSI
standard.
See
the
Conformance
Package
for
further
details.
|
A
code
system
The
CodeSystem
resource
specifies
a
set
is
used
to
declare
the
existence
of
codes
drawn
from
one
and
describe
a
code
system
or
more
code
systems.
system
supplement
and
its
key
properties,
and
optionally
define
a
part
or
all
of
its
content.
The
FHIR
terminology
specification
is
based
on
two
key
concepts,
originally
defined
in
HL7
v3
Core
Principles
:
CodeSystem
definitions
and
their
use
in
coded
elements
Code
systems
define
which
codes
(symbols
and/or
expressions)
exist,
and
how
they
are
understood.
Value
Sets
sets
select
a
set
of
codes
from
one
or
more
code
systems
to
specify
which
codes
can
be
used
in
a
particular
context.
The CodeSystem resource is used to declare the existence of a code system, and its key properties:
In addition, the CodeSystem resource may list some or all of the concepts in the code system, along with their basic properties (code, display, definition), designations, and additional properties. Code System resources may also be used to define supplements, which extend an existing code system with additional designations and properties.
The
CodeSystem
resource
is
not
intended
to
support
the
process
of
maintaining
a
code
system.
systems.
Instead,
the
focus
is
on
publishing
the
properties
and
optionally
the
content
of
a
code
system
for
use
throughout
the
FHIR
eco-system,
such
as
to
support
value
set
expansion
and
validation.
Note
that
the
important
existing
(large)
code
systems
(SNOMED
CT,
LOINC,
RxNorm,
ICD
family,
etc)
etc.)
all
have
their
own
maintenance
systems
and
distribution
formats,
and
there
is
no
intent
that
the
CodeSystem
resource
be
used
for
distributing
these
kind
of
terminologies.
Instead,
it
is
intended
generally
not
an
efficient
way
to
be
distribute
their
content,
though
it
is
used
for
distributing
as
one
way
of
declaring
the
smaller
ad-hoc
filters
and
properties
associated
with
those
code
systems
that
are
ubiqutiously
encountered
through
out
the
healthcare
process.
systems.
specification.
The
CodeSystem
resource
defines
declares
the
content
existence
of
a
code
system,
system
and
also
its
key
properties
including
its
preferred
identifier.
The
NamingSystem
resource
identifies
the
existence
of
a
code
or
identifier
system,
and
its
possible
and
preferred
identifiers.
The
key
difference
between
the
resources
is
who
creates
and
manages
them
-
CodeSystem
resources
are
managed
by
the
owner
or
publisher
of
the
code
system
resource,
system,
who
can
properly
define
the
code
system
features
and
content
of
the
code
system.
content.
NamingSystem
resources,
on
the
other
hand,
are
frequently
defined
by
3rd
parties
that
encounter
the
code
system
in
use,
and
need
to
describe
the
use,
but
do
not
have
the
authority
to
define
the
features
and
content.
Additionally,
there
may
be
multiple
authoritative
NamingSystem
resources
for
a
code
systemn,
system,
but
ideally
there
should
only
would
be
only
one
authoritative
CodeSystem
resource.
resource
(identified
by
its
canonical
URL)
that
is
provided
by
the
code
system
publisher,
with
multiple
copies
distributed
on
additional
FHIR
servers
or
elsewhere
and
used
where
needed.
Both Code System supplements and Concept Maps may be used to define relationships between concepts in different systems. ConceptMaps are assertions of the relationships between different concepts that are associated with particular contexts of use, while CodeSystem supplements are used to define inherent properties and semantics of the concepts in the code system
When
using
code
systems
and
value
sets,
proper
differentiation
between
a
code
system
and
a
value
set
is
important.
This
is
one
very
common
area
where
significant
clinical
safety
risks
occur
in
practice.
Implementers
should
be
familiar
with
the
content
in
Using
Codes
in
resources
Resources
.
Each
A
code
system
has
2
different
URLs
that
three
identifiers.
The
first
two
can
be
used
to
reference
it
-
its
logical
identifier,
and
its
location.
the
code
system
in
the
FHIR
context:
CodeSystem.id
:
The
CodeSystem.url
:
The
canonical
URL
that
never
changes
for
this
code
system
url
rather
than
uri
for
legacy
reasons
and
to
strongly
encourage
providing
a
resolvable
URL
as
the
For example, the code systems published as part of the FHIR specification all have a
logical URL which is also alocationby("literal") URI which is the URL where they may be accessed in the FHIR specification itself. However, while a new version of the FHIRSpecificationspecification is being prepared, code systems that are published in the drafts will not be found in the current FHIRspecification.specification version.
Because
it
is
common
practice
to
copy
(cache)
code
systems
locally,
most
references
to
code
systems
can
be
use
either
a
logical
the
canonical
URL
or
a
literal
the
location
("literal")
URL.
A
code
system
has
3
identifiers:
CodeSystem.id
:
the
logical
id
on
the
system
that
holds
the
The
third
code
system
-
this
changes
as
it
moves
from
server
to
server
(this
id,
with
the
server
address
prepended,
identifier
is
called
the
'literal
identity'
of
the
resource)
CodeSystem.url
:
the
canonical
URL
that
never
changes
used
typically
for
this
external
references
to
the
code
system
-
it
is
the
same
in
every
copy.
Ideally,
the
URL
should
also
be
the
location
of
the
master
version
outside
of
the
code
system,
though
this
is
not
always
possible
FHIR:
CodeSystem.identifier
:
A
system/value
pair
that
is
used
to
identify
the
code
system
in
other
contexts
(such
as
an
OID
in
an
HL7
v3
specification)
For further information regarding resource identification, see Resource Identity .
This
means
that
each
code
system
has
2
different
URLs
URIs
that
can
be
used
to
reference
it
-
its
canonical
URL
(the
url
element),
and
its
local
location
from
which
it
may
be
,
retrieved.
retrieved
(which
includes
the
id
element).
Because
it
is
common
practice
to
copy
(cache)
code
systems
locally,
most
references
to
code
systems
use
the
canonical
URL.
Alternatively,
the
identifier
and
version
elements
may
be
used
to
reference
this
code
system
in
a
design,
a
profile,
a
CDA
template
or
HL7
v3
message
(in
the
CD
data
type
codeSystem
and
codeSystemVersion
properties).
These
different
contexts
may
make
additional
restrictions
on
the
possible
values
of
these
elements.
The
identifier
is
generally
not
needed
when
using
code
systems
in
a
FHIR
context,
where
the
canonical
URL
is
always
the
focus.
This resource is referenced by Coding , itself, ConceptMap , TerminologyCapabilities and ValueSet
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
I N | DomainResource |
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation + Rule: Within a code system definition, all the codes SHALL be unique Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension |
|
|
Σ | 0..1 | uri |
Canonical
identifier
for
this
code
|
|
Σ |
|
Identifier |
Additional
identifier
for
the
code
system
(business
identifier)
|
|
Σ | 0..1 | string | Business version of the code system (Coding.version) |
|
Σ I | 0..1 | string | Name for this code system (computer friendly) |
|
Σ | 0..1 | string | Name for this code system (human friendly) |
|
?! Σ | 1..1 | code |
draft
|
active
|
retired
|
unknown
PublicationStatus ( Required ) |
|
Σ | 0..1 | boolean | For testing purposes, not real usage |
|
Σ | 0..1 | dateTime |
Date
|
|
Σ | 0..1 | string | Name of the publisher (organization or individual) |
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
|
0..1 | markdown | Natural language description of the code system | |
|
Σ TU | 0..* | UsageContext |
|
|
Σ | 0..* | CodeableConcept |
Intended
jurisdiction
for
code
system
(if
applicable)
Jurisdiction |
|
0..1 | markdown | Why this code system is defined | |
|
0..1 | markdown | Use and/or publishing restrictions | |
|
Σ | 0..1 | boolean | If code comparison is case sensitive |
|
Σ | 0..1 |
|
Canonical
|
|
Σ | 0..1 | code |
grouped-by
|
is-a
|
part-of
|
classified-with
CodeSystemHierarchyMeaning ( Required ) |
|
Σ | 0..1 | boolean |
If
code
system
defines
a
|
|
Σ | 0..1 | boolean | If definitions are not stable |
|
Σ | 1..1 | code |
not-present
|
example
|
fragment
|
complete
|
supplement
CodeSystemContentMode ( Required ) |
|
Σ | 0..1 | canonical ( CodeSystem ) | Canonical URL of Code System this adds designations and properties to |
![]() ![]() | Σ | 0..1 | unsignedInt | Total concepts in the code system |
|
Σ | 0..* | BackboneElement |
Filter
that
can
be
used
in
a
value
set
|
|
Σ | 1..1 | code | Code that identifies the filter |
|
Σ | 0..1 | string | How or why the filter is used |
|
Σ | 1..* | code |
=
|
is-a
|
descendent-of
|
is-not-a
|
regex
|
in
|
not-in
|
generalizes
|
exists
FilterOperator ( Required ) |
|
Σ | 1..1 | string | What to use for the value |
|
Σ | 0..* | BackboneElement |
Additional
information
supplied
about
each
concept
|
|
Σ | 1..1 | code | Identifies the property on the concepts, and when referred to in operations |
|
Σ | 0..1 | uri | Formal identifier for the property |
|
Σ | 0..1 | string | Why the property is defined, and/or what it conveys |
|
Σ | 1..1 | code |
code
|
Coding
|
string
|
integer
|
boolean
|
dateTime
|
decimal
PropertyType ( Required ) |
|
0..* | BackboneElement |
Concepts
in
the
code
system
|
|
|
1..1 | code | Code that identifies concept | |
|
0..1 | string | Text to display to the user | |
|
0..1 | string | Formal definition | |
|
0..* | BackboneElement |
Additional
representations
for
the
concept
|
|
|
0..1 | code |
Human
language
of
the
designation
Common Languages ( |
|
|
0..1 | Coding |
Details
how
this
designation
would
be
used
Designation Use ( Extensible ) |
|
|
1..1 | string | The text value for this designation | |
|
0..* | BackboneElement |
Property
value
for
the
concept
|
|
|
1..1 | code | Reference to CodeSystem.property.code | |
|
1..1 | Value of the property for this concept | ||
|
code | |||
|
Coding | |||
|
string | |||
|
integer | |||
|
boolean | |||
|
dateTime | |||
| decimal | |||
|
0..* | see concept |
Child
Concepts
(is-a/contains/categorizes)
|
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<<CodeSystem xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension -->
< <</identifier> < < < < < < <<url value="[uri]"/><!-- 0..1 Canonical identifier for this code system, represented as a URI (globally unique) (Coding.system) --> <identifier><!-- 0..* Identifier Additional identifier for the code system (business identifier) --></identifier> <version value="[string]"/><!-- 0..1 Business version of the code system (Coding.version) --> <name value="[string]"/><!--0..1 Name for this code system (computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this code system (human friendly) --> <status value="[code]"/><!-- 1..1 draft | active | retired | unknown --> <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
< <</useContext><description value="[markdown]"/><!-- 0..1 Natural language description of the code system --> <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for code system (if applicable) --></jurisdiction>< < < < < < < < <<purpose value="[markdown]"/><!-- 0..1 Why this code system is defined --> <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions --> <caseSensitive value="[boolean]"/><!-- 0..1 If code comparison is case sensitive --> <valueSet><!-- 0..1 canonical(ValueSet) Canonical reference to the value set with entire code system --></valueSet> <hierarchyMeaning value="[code]"/><!-- 0..1 grouped-by | is-a | part-of | classified-with --> <compositional value="[boolean]"/><!-- 0..1 If code system defines a compositional grammar --> <versionNeeded value="[boolean]"/><!-- 0..1 If definitions are not stable --> <content value="[code]"/><!-- 1..1 not-present | example | fragment | complete | supplement --> <supplements><!-- 0..1 canonical(CodeSystem) Canonical URL of Code System this adds designations and properties to --></supplements> <count value="[unsignedInt]"/><!-- 0..1 Total concepts in the code system --> <filter> <!-- 0..* Filter that can be used in a value set -->< < < <<code value="[code]"/><!-- 1..1 Code that identifies the filter --> <description value="[string]"/><!-- 0..1 How or why the filter is used --> <operator value="[code]"/><!-- 1..* = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists --> <value value="[string]"/><!-- 1..1 What to use for the value --> </filter> <property> <!-- 0..* Additional information supplied about each concept -->< < < <<code value="[code]"/><!-- 1..1 Identifies the property on the concepts, and when referred to in operations --> <uri value="[uri]"/><!-- 0..1 Formal identifier for the property --> <description value="[string]"/><!-- 0..1 Why the property is defined, and/or what it conveys --> <type value="[code]"/><!-- 1..1 code | Coding | string | integer | boolean | dateTime | decimal --> </property>< < < <<concept> <!-- 0..* Concepts in the code system --> <code value="[code]"/><!-- 1..1 Code that identifies concept --> <display value="[string]"/><!-- 0..1 Text to display to the user --> <definition value="[string]"/><!-- 0..1 Formal definition --> <designation> <!-- 0..* Additional representations for the concept --><<language value="[code]"/><!-- 0..1 Human language of the designation --> <use><!-- 0..1 Coding Details how this designation would be used --></use><<value value="[string]"/><!-- 1..1 The text value for this designation --> </designation> <property> <!-- 0..* Property value for the concept -->< <</value[x]><code value="[code]"/><!-- 1..1 Reference to CodeSystem.property.code --> <value[x]><!-- 1..1 code|Coding|string|integer|boolean|dateTime|decimal Value of the property for this concept --></value[x]> </property> <concept><!-- 0..* Content as for CodeSystem.concept Child Concepts (is-a/contains/categorizes) --></concept> </concept> </CodeSystem>
JSON Template
{
"resourceType" : "",
"resourceType" : "CodeSystem",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"url" : "<uri>", // Canonical identifier for this code system, represented as a URI (globally unique) (Coding.system)
"identifier" : [{ Identifier }], // Additional identifier for the code system (business identifier)
"version" : "<string>", // Business version of the code system (Coding.version)
"name" : "<string>", // C? Name for this code system (computer friendly)
"title" : "<string>", // Name for this code system (human friendly)
"status" : "<code>", // R! draft | active | retired | unknown
"experimental" : <boolean>, // For testing purposes, not real usage
"date" : "<dateTime>", // Date last changed
"publisher" : "<string>", // Name of the publisher (organization or individual)
"contact" : [{ ContactDetail }], // Contact details for the publisher
"description" : "<markdown>", // Natural language description of the code system
"useContext" : [{ UsageContext }], // The context that the content is intended to support
"jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for code system (if applicable)
"purpose" : "<markdown>", // Why this code system is defined
"copyright" : "<markdown>", // Use and/or publishing restrictions
"caseSensitive" : <boolean>, // If code comparison is case sensitive
"valueSet" : { canonical(ValueSet) }, // Canonical reference to the value set with entire code system
"hierarchyMeaning" : "<code>", // grouped-by | is-a | part-of | classified-with
"compositional" : <boolean>, // If code system defines a compositional grammar
"versionNeeded" : <boolean>, // If definitions are not stable
"content" : "<code>", // R! not-present | example | fragment | complete | supplement
"supplements" : { canonical(CodeSystem) }, // Canonical URL of Code System this adds designations and properties to
"count" : "<unsignedInt>", // Total concepts in the code system
"filter" : [{ // Filter that can be used in a value set
"code" : "<code>", // R! Code that identifies the filter
"description" : "<string>", // How or why the filter is used
"operator" : ["<code>"], // R! = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists
"value" : "<string>" // R! What to use for the value
}],
"
"
"
"
"
"property" : [{ // Additional information supplied about each concept
"code" : "<code>", // R! Identifies the property on the concepts, and when referred to in operations
"uri" : "<uri>", // Formal identifier for the property
"description" : "<string>", // Why the property is defined, and/or what it conveys
"type" : "<code>" // R! code | Coding | string | integer | boolean | dateTime | decimal
}],
"
"
"
"
"
"
"
"
"concept" : [{ // Concepts in the code system
"code" : "<code>", // R! Code that identifies concept
"display" : "<string>", // Text to display to the user
"definition" : "<string>", // Formal definition
"designation" : [{ // Additional representations for the concept
"language" : "<code>", // Human language of the designation
"use" : { Coding }, // Details how this designation would be used
"value" : "<string>" // R! The text value for this designation
}],
"
"
">"
" }
">"
">
">
">"
"property" : [{ // Property value for the concept
"code" : "<code>", // R! Reference to CodeSystem.property.code
// value[x]: Value of the property for this concept. One of these 7:
"valueCode" : "<code>"
"valueCoding" : { Coding }
"valueString" : "<string>"
"valueInteger" : <integer>
"valueBoolean" : <boolean>
"valueDateTime" : "<dateTime>"
"valueDecimal" : <decimal>
}],
"
"concept" : [{ Content as for CodeSystem.concept }] // Child Concepts (is-a/contains/categorizes)
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .![]()
[ a fhir:;[ a fhir:CodeSystem; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtensionfhir: fhir: fhir:fhir:CodeSystem.url [ uri ]; # 0..1 Canonical identifier for this code system, represented as a URI (globally unique) (Coding.system) fhir:CodeSystem.identifier [ Identifier ], ... ; # 0..* Additional identifier for the code system (business identifier) fhir:CodeSystem.version [ string ]; # 0..1 Business version of the code system (Coding.version) fhir:CodeSystem.name [ string ]; # 0..1 Name for this code system (computer friendly) fhir:CodeSystem.title [ string ]; # 0..1 Name for this code system (human friendly)fhir: fhir: fhir: fhir:fhir:CodeSystem.status [ code ]; # 1..1 draft | active | retired | unknown fhir:CodeSystem.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:CodeSystem.date [ dateTime ]; # 0..1 Date last changed fhir:CodeSystem.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:CodeSystem.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:CodeSystem.description [ markdown ]; # 0..1 Natural language description of the code systemfhir:fhir:CodeSystem.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:CodeSystem.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for code system (if applicable)fhir:fhir:CodeSystem.purpose [ markdown ]; # 0..1 Why this code system is defined fhir:CodeSystem.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions fhir:CodeSystem.caseSensitive [ boolean ]; # 0..1 If code comparison is case sensitivefhir: fhir: fhir: fhir: fhir: fhir:fhir:CodeSystem.valueSet [ canonical(ValueSet) ]; # 0..1 Canonical reference to the value set with entire code system fhir:CodeSystem.hierarchyMeaning [ code ]; # 0..1 grouped-by | is-a | part-of | classified-with fhir:CodeSystem.compositional [ boolean ]; # 0..1 If code system defines a compositional grammar fhir:CodeSystem.versionNeeded [ boolean ]; # 0..1 If definitions are not stable fhir:CodeSystem.content [ code ]; # 1..1 not-present | example | fragment | complete | supplement fhir:CodeSystem.supplements [ canonical(CodeSystem) ]; # 0..1 Canonical URL of Code System this adds designations and properties to fhir:CodeSystem.count [ unsignedInt ]; # 0..1 Total concepts in the code system fhir:CodeSystem.filter [ # 0..* Filter that can be used in a value setfhir:fhir:CodeSystem.filter.code [ code ]; # 1..1 Code that identifies the filter fhir:CodeSystem.filter.description [ string ]; # 0..1 How or why the filter is usedfhir:fhir:CodeSystem.filter.operator [ code ], ... ; # 1..* = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists fhir:CodeSystem.filter.value [ string ]; # 1..1 What to use for the value ], ...; fhir:CodeSystem.property [ # 0..* Additional information supplied about each concept fhir:CodeSystem.property.code [ code ]; # 1..1 Identifies the property on the concepts, and when referred to in operations fhir:CodeSystem.property.uri [ uri ]; # 0..1 Formal identifier for the property fhir:CodeSystem.property.description [ string ]; # 0..1 Why the property is defined, and/or what it conveysfhir:fhir:CodeSystem.property.type [ code ]; # 1..1 code | Coding | string | integer | boolean | dateTime | decimal ], ...;fhir:fhir:CodeSystem.concept [ # 0..* Concepts in the code system fhir:CodeSystem.concept.code [ code ]; # 1..1 Code that identifies concept fhir:CodeSystem.concept.display [ string ]; # 0..1 Text to display to the user fhir:CodeSystem.concept.definition [ string ]; # 0..1 Formal definition fhir:CodeSystem.concept.designation [ # 0..* Additional representations for the concept fhir:CodeSystem.concept.designation.language [ code ]; # 0..1 Human language of the designation fhir:CodeSystem.concept.designation.use [ Coding ]; # 0..1 Details how this designation would be used fhir:CodeSystem.concept.designation.value [ string ]; # 1..1 The text value for this designation ], ...; fhir:CodeSystem.concept.property [ # 0..* Property value for the concept fhir:CodeSystem.concept.property.code [ code ]; # 1..1 Reference to CodeSystem.property.code# . One of these 6# CodeSystem.concept.property.value[x] : 1..1 Value of the property for this concept. One of these 7 fhir:CodeSystem.concept.property.valueCode [ code ] fhir:CodeSystem.concept.property.valueCoding [ Coding ] fhir:CodeSystem.concept.property.valueString [ string ] fhir:CodeSystem.concept.property.valueInteger [ integer ] fhir:CodeSystem.concept.property.valueBoolean [ boolean ] fhir:CodeSystem.concept.property.valueDateTime [ dateTime ] fhir:CodeSystem.concept.property.valueDecimal [ decimal ] ], ...; fhir:CodeSystem.concept.concept [ See CodeSystem.concept ], ... ; # 0..* Child Concepts (is-a/contains/categorizes) ], ...; ]
Changes
since
DSTU2
R3
| CodeSystem | |
| CodeSystem.identifier |
|
| CodeSystem.status |
|
| CodeSystem.experimental |
|
| CodeSystem.valueSet |
|
| CodeSystem.hierarchyMeaning |
|
| CodeSystem.content |
|
| CodeSystem.supplements |
|
| CodeSystem.filter.operator |
|
| CodeSystem.property.type |
|
| CodeSystem.concept.designation.language |
|
| CodeSystem.concept.property.value[x] |
|
This
resource
did
not
exist
in
Release
2
See
the
Full
Difference
for
further
information
This analysis is available as XML or JSON .
See R3 <--> R4 Conversion Maps (status = 4 tests that all execute ok. All tests pass round-trip testing and 3 r3 resources are invalid (0 errors). )
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
I N | DomainResource |
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation + Rule: Within a code system definition, all the codes SHALL be unique Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension |
|
|
Σ | 0..1 | uri |
Canonical
identifier
for
this
code
|
|
Σ |
|
Identifier |
Additional
identifier
for
the
code
system
(business
identifier)
|
|
Σ | 0..1 | string | Business version of the code system (Coding.version) |
|
Σ I | 0..1 | string | Name for this code system (computer friendly) |
|
Σ | 0..1 | string | Name for this code system (human friendly) |
|
?! Σ | 1..1 | code |
draft
|
active
|
retired
|
unknown
PublicationStatus ( Required ) |
|
Σ | 0..1 | boolean | For testing purposes, not real usage |
|
Σ | 0..1 | dateTime |
Date
|
|
Σ | 0..1 | string | Name of the publisher (organization or individual) |
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
|
0..1 | markdown | Natural language description of the code system | |
|
Σ TU | 0..* | UsageContext |
|
|
Σ | 0..* | CodeableConcept |
Intended
jurisdiction
for
code
system
(if
applicable)
Jurisdiction |
|
0..1 | markdown | Why this code system is defined | |
|
0..1 | markdown | Use and/or publishing restrictions | |
|
Σ | 0..1 | boolean | If code comparison is case sensitive |
|
Σ | 0..1 |
|
Canonical
|
|
Σ | 0..1 | code |
grouped-by
|
is-a
|
part-of
|
classified-with
CodeSystemHierarchyMeaning ( Required ) |
|
Σ | 0..1 | boolean |
If
code
system
defines
a
|
|
Σ | 0..1 | boolean | If definitions are not stable |
|
Σ | 1..1 | code |
not-present
|
example
|
fragment
|
complete
|
supplement
CodeSystemContentMode ( Required ) |
|
Σ | 0..1 | canonical ( CodeSystem ) | Canonical URL of Code System this adds designations and properties to |
![]() ![]() | Σ | 0..1 | unsignedInt | Total concepts in the code system |
|
Σ | 0..* | BackboneElement |
Filter
that
can
be
used
in
a
value
set
|
|
Σ | 1..1 | code | Code that identifies the filter |
|
Σ | 0..1 | string | How or why the filter is used |
|
Σ | 1..* | code |
=
|
is-a
|
descendent-of
|
is-not-a
|
regex
|
in
|
not-in
|
generalizes
|
exists
FilterOperator ( Required ) |
|
Σ | 1..1 | string | What to use for the value |
|
Σ | 0..* | BackboneElement |
Additional
information
supplied
about
each
concept
|
|
Σ | 1..1 | code | Identifies the property on the concepts, and when referred to in operations |
|
Σ | 0..1 | uri | Formal identifier for the property |
|
Σ | 0..1 | string | Why the property is defined, and/or what it conveys |
|
Σ | 1..1 | code |
code
|
Coding
|
string
|
integer
|
boolean
|
dateTime
|
decimal
PropertyType ( Required ) |
|
0..* | BackboneElement |
Concepts
in
the
code
system
|
|
|
1..1 | code | Code that identifies concept | |
|
0..1 | string | Text to display to the user | |
|
0..1 | string | Formal definition | |
|
0..* | BackboneElement |
Additional
representations
for
the
concept
|
|
|
0..1 | code |
Human
language
of
the
designation
Common Languages ( |
|
|
0..1 | Coding |
Details
how
this
designation
would
be
used
Designation Use ( Extensible ) |
|
|
1..1 | string | The text value for this designation | |
|
0..* | BackboneElement |
Property
value
for
the
concept
|
|
|
1..1 | code | Reference to CodeSystem.property.code | |
|
1..1 | Value of the property for this concept | ||
|
code | |||
|
Coding | |||
|
string | |||
|
integer | |||
|
boolean | |||
|
dateTime | |||
| decimal | |||
|
0..* | see concept |
Child
Concepts
(is-a/contains/categorizes)
|
|
Documentation
for
this
format
|
||||
XML Template
<<CodeSystem xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension -->
< <</identifier> < < < < < < <<url value="[uri]"/><!-- 0..1 Canonical identifier for this code system, represented as a URI (globally unique) (Coding.system) --> <identifier><!-- 0..* Identifier Additional identifier for the code system (business identifier) --></identifier> <version value="[string]"/><!-- 0..1 Business version of the code system (Coding.version) --> <name value="[string]"/><!--0..1 Name for this code system (computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this code system (human friendly) --> <status value="[code]"/><!-- 1..1 draft | active | retired | unknown --> <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
< <</useContext><description value="[markdown]"/><!-- 0..1 Natural language description of the code system --> <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for code system (if applicable) --></jurisdiction>< < < < < < < < <<purpose value="[markdown]"/><!-- 0..1 Why this code system is defined --> <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions --> <caseSensitive value="[boolean]"/><!-- 0..1 If code comparison is case sensitive --> <valueSet><!-- 0..1 canonical(ValueSet) Canonical reference to the value set with entire code system --></valueSet> <hierarchyMeaning value="[code]"/><!-- 0..1 grouped-by | is-a | part-of | classified-with --> <compositional value="[boolean]"/><!-- 0..1 If code system defines a compositional grammar --> <versionNeeded value="[boolean]"/><!-- 0..1 If definitions are not stable --> <content value="[code]"/><!-- 1..1 not-present | example | fragment | complete | supplement --> <supplements><!-- 0..1 canonical(CodeSystem) Canonical URL of Code System this adds designations and properties to --></supplements> <count value="[unsignedInt]"/><!-- 0..1 Total concepts in the code system --> <filter> <!-- 0..* Filter that can be used in a value set -->< < < <<code value="[code]"/><!-- 1..1 Code that identifies the filter --> <description value="[string]"/><!-- 0..1 How or why the filter is used --> <operator value="[code]"/><!-- 1..* = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists --> <value value="[string]"/><!-- 1..1 What to use for the value --> </filter> <property> <!-- 0..* Additional information supplied about each concept -->< < < <<code value="[code]"/><!-- 1..1 Identifies the property on the concepts, and when referred to in operations --> <uri value="[uri]"/><!-- 0..1 Formal identifier for the property --> <description value="[string]"/><!-- 0..1 Why the property is defined, and/or what it conveys --> <type value="[code]"/><!-- 1..1 code | Coding | string | integer | boolean | dateTime | decimal --> </property>< < < <<concept> <!-- 0..* Concepts in the code system --> <code value="[code]"/><!-- 1..1 Code that identifies concept --> <display value="[string]"/><!-- 0..1 Text to display to the user --> <definition value="[string]"/><!-- 0..1 Formal definition --> <designation> <!-- 0..* Additional representations for the concept --><<language value="[code]"/><!-- 0..1 Human language of the designation --> <use><!-- 0..1 Coding Details how this designation would be used --></use><<value value="[string]"/><!-- 1..1 The text value for this designation --> </designation> <property> <!-- 0..* Property value for the concept -->< <</value[x]><code value="[code]"/><!-- 1..1 Reference to CodeSystem.property.code --> <value[x]><!-- 1..1 code|Coding|string|integer|boolean|dateTime|decimal Value of the property for this concept --></value[x]> </property> <concept><!-- 0..* Content as for CodeSystem.concept Child Concepts (is-a/contains/categorizes) --></concept> </concept> </CodeSystem>
JSON Template
{
"resourceType" : "",
"resourceType" : "CodeSystem",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"url" : "<uri>", // Canonical identifier for this code system, represented as a URI (globally unique) (Coding.system)
"identifier" : [{ Identifier }], // Additional identifier for the code system (business identifier)
"version" : "<string>", // Business version of the code system (Coding.version)
"name" : "<string>", // C? Name for this code system (computer friendly)
"title" : "<string>", // Name for this code system (human friendly)
"status" : "<code>", // R! draft | active | retired | unknown
"experimental" : <boolean>, // For testing purposes, not real usage
"date" : "<dateTime>", // Date last changed
"publisher" : "<string>", // Name of the publisher (organization or individual)
"contact" : [{ ContactDetail }], // Contact details for the publisher
"description" : "<markdown>", // Natural language description of the code system
"useContext" : [{ UsageContext }], // The context that the content is intended to support
"jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for code system (if applicable)
"purpose" : "<markdown>", // Why this code system is defined
"copyright" : "<markdown>", // Use and/or publishing restrictions
"caseSensitive" : <boolean>, // If code comparison is case sensitive
"valueSet" : { canonical(ValueSet) }, // Canonical reference to the value set with entire code system
"hierarchyMeaning" : "<code>", // grouped-by | is-a | part-of | classified-with
"compositional" : <boolean>, // If code system defines a compositional grammar
"versionNeeded" : <boolean>, // If definitions are not stable
"content" : "<code>", // R! not-present | example | fragment | complete | supplement
"supplements" : { canonical(CodeSystem) }, // Canonical URL of Code System this adds designations and properties to
"count" : "<unsignedInt>", // Total concepts in the code system
"filter" : [{ // Filter that can be used in a value set
"code" : "<code>", // R! Code that identifies the filter
"description" : "<string>", // How or why the filter is used
"operator" : ["<code>"], // R! = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists
"value" : "<string>" // R! What to use for the value
}],
"
"
"
"
"
"property" : [{ // Additional information supplied about each concept
"code" : "<code>", // R! Identifies the property on the concepts, and when referred to in operations
"uri" : "<uri>", // Formal identifier for the property
"description" : "<string>", // Why the property is defined, and/or what it conveys
"type" : "<code>" // R! code | Coding | string | integer | boolean | dateTime | decimal
}],
"
"
"
"
"
"
"
"
"concept" : [{ // Concepts in the code system
"code" : "<code>", // R! Code that identifies concept
"display" : "<string>", // Text to display to the user
"definition" : "<string>", // Formal definition
"designation" : [{ // Additional representations for the concept
"language" : "<code>", // Human language of the designation
"use" : { Coding }, // Details how this designation would be used
"value" : "<string>" // R! The text value for this designation
}],
"
"
">"
" }
">"
">
">
">"
"property" : [{ // Property value for the concept
"code" : "<code>", // R! Reference to CodeSystem.property.code
// value[x]: Value of the property for this concept. One of these 7:
"valueCode" : "<code>"
"valueCoding" : { Coding }
"valueString" : "<string>"
"valueInteger" : <integer>
"valueBoolean" : <boolean>
"valueDateTime" : "<dateTime>"
"valueDecimal" : <decimal>
}],
"
"concept" : [{ Content as for CodeSystem.concept }] // Child Concepts (is-a/contains/categorizes)
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .![]()
[ a fhir:;[ a fhir:CodeSystem; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtensionfhir: fhir: fhir:fhir:CodeSystem.url [ uri ]; # 0..1 Canonical identifier for this code system, represented as a URI (globally unique) (Coding.system) fhir:CodeSystem.identifier [ Identifier ], ... ; # 0..* Additional identifier for the code system (business identifier) fhir:CodeSystem.version [ string ]; # 0..1 Business version of the code system (Coding.version) fhir:CodeSystem.name [ string ]; # 0..1 Name for this code system (computer friendly) fhir:CodeSystem.title [ string ]; # 0..1 Name for this code system (human friendly)fhir: fhir: fhir: fhir:fhir:CodeSystem.status [ code ]; # 1..1 draft | active | retired | unknown fhir:CodeSystem.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:CodeSystem.date [ dateTime ]; # 0..1 Date last changed fhir:CodeSystem.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:CodeSystem.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:CodeSystem.description [ markdown ]; # 0..1 Natural language description of the code systemfhir:fhir:CodeSystem.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:CodeSystem.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for code system (if applicable)fhir:fhir:CodeSystem.purpose [ markdown ]; # 0..1 Why this code system is defined fhir:CodeSystem.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions fhir:CodeSystem.caseSensitive [ boolean ]; # 0..1 If code comparison is case sensitivefhir: fhir: fhir: fhir: fhir: fhir:fhir:CodeSystem.valueSet [ canonical(ValueSet) ]; # 0..1 Canonical reference to the value set with entire code system fhir:CodeSystem.hierarchyMeaning [ code ]; # 0..1 grouped-by | is-a | part-of | classified-with fhir:CodeSystem.compositional [ boolean ]; # 0..1 If code system defines a compositional grammar fhir:CodeSystem.versionNeeded [ boolean ]; # 0..1 If definitions are not stable fhir:CodeSystem.content [ code ]; # 1..1 not-present | example | fragment | complete | supplement fhir:CodeSystem.supplements [ canonical(CodeSystem) ]; # 0..1 Canonical URL of Code System this adds designations and properties to fhir:CodeSystem.count [ unsignedInt ]; # 0..1 Total concepts in the code system fhir:CodeSystem.filter [ # 0..* Filter that can be used in a value setfhir:fhir:CodeSystem.filter.code [ code ]; # 1..1 Code that identifies the filter fhir:CodeSystem.filter.description [ string ]; # 0..1 How or why the filter is usedfhir:fhir:CodeSystem.filter.operator [ code ], ... ; # 1..* = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists fhir:CodeSystem.filter.value [ string ]; # 1..1 What to use for the value ], ...; fhir:CodeSystem.property [ # 0..* Additional information supplied about each concept fhir:CodeSystem.property.code [ code ]; # 1..1 Identifies the property on the concepts, and when referred to in operations fhir:CodeSystem.property.uri [ uri ]; # 0..1 Formal identifier for the property fhir:CodeSystem.property.description [ string ]; # 0..1 Why the property is defined, and/or what it conveysfhir:fhir:CodeSystem.property.type [ code ]; # 1..1 code | Coding | string | integer | boolean | dateTime | decimal ], ...;fhir:fhir:CodeSystem.concept [ # 0..* Concepts in the code system fhir:CodeSystem.concept.code [ code ]; # 1..1 Code that identifies concept fhir:CodeSystem.concept.display [ string ]; # 0..1 Text to display to the user fhir:CodeSystem.concept.definition [ string ]; # 0..1 Formal definition fhir:CodeSystem.concept.designation [ # 0..* Additional representations for the concept fhir:CodeSystem.concept.designation.language [ code ]; # 0..1 Human language of the designation fhir:CodeSystem.concept.designation.use [ Coding ]; # 0..1 Details how this designation would be used fhir:CodeSystem.concept.designation.value [ string ]; # 1..1 The text value for this designation ], ...; fhir:CodeSystem.concept.property [ # 0..* Property value for the concept fhir:CodeSystem.concept.property.code [ code ]; # 1..1 Reference to CodeSystem.property.code# . One of these 6# CodeSystem.concept.property.value[x] : 1..1 Value of the property for this concept. One of these 7 fhir:CodeSystem.concept.property.valueCode [ code ] fhir:CodeSystem.concept.property.valueCoding [ Coding ] fhir:CodeSystem.concept.property.valueString [ string ] fhir:CodeSystem.concept.property.valueInteger [ integer ] fhir:CodeSystem.concept.property.valueBoolean [ boolean ] fhir:CodeSystem.concept.property.valueDateTime [ dateTime ] fhir:CodeSystem.concept.property.valueDecimal [ decimal ] ], ...; fhir:CodeSystem.concept.concept [ See CodeSystem.concept ], ... ; # 0..* Child Concepts (is-a/contains/categorizes) ], ...; ]
Changes
since
DSTU2
Release
3
| CodeSystem | |
| CodeSystem.identifier |
|
| CodeSystem.status |
|
| CodeSystem.experimental |
|
| CodeSystem.valueSet |
|
| CodeSystem.hierarchyMeaning |
|
| CodeSystem.content |
|
| CodeSystem.supplements |
|
| CodeSystem.filter.operator |
|
| CodeSystem.property.type |
|
| CodeSystem.concept.designation.language |
|
| CodeSystem.concept.property.value[x] |
|
This
resource
did
not
exist
in
Release
2
See
the
Full
Difference
for
further
information
This analysis is available as XML or JSON .
See R3 <--> R4 Conversion Maps (status = 4 tests that all execute ok. All tests pass round-trip testing and 3 r3 resources are invalid (0 errors). )
Alternate
See
the
Profiles
&
Extensions
and
the
alternate
definitions:
Master
Definition
(
XML
,
+
JSON
),
,
XML
Schema
/
Schematron
(for
)
+
JSON
Schema
,
ShEx
(for
Turtle
)
+
see
the
extensions
&
the
dependency
analysis
| Path | Definition | Type | Reference |
|---|---|---|---|
| CodeSystem.status |
The
lifecycle
status
of
|
Required | PublicationStatus |
| CodeSystem.jurisdiction |
Countries
and
regions
within
which
this
artifact
is
targeted
for
|
Extensible | Jurisdiction ValueSet |
| CodeSystem.hierarchyMeaning |
The
meaning
of
the
hierarchy
of
concepts
in
a
code
|
Required | CodeSystemHierarchyMeaning |
| CodeSystem.content |
|
Required | CodeSystemContentMode |
| CodeSystem.filter.operator | The kind of operation to perform as a part of a property based filter. | Required | FilterOperator |
| CodeSystem.property.type |
The
type
of
a
property
|
Required | PropertyType |
| CodeSystem.concept.designation.language | A human language. |
|
|
| CodeSystem.concept.designation.use | Details of how a designation would be used. | Extensible |
|
| id | Level | Location | Description | Expression |
| csd-0 | Warning | (base) | Name should be usable as an identifier for the module by machine processing applications such as code generation | name.matches('[A-Z]([A-Za-z0-9_]){0,254}') |
|
csd-1
|
Rule | (base) |
Within
a
code
system
definition,
all
the
codes
SHALL
be
unique
|
|
Most code systems evolve over time, due to corrections, clarifications, and changes to approach or underlying knowledge or reality. If these changes lead to the meanings of existing codes changing significantly, then the interpretation of the code system becomes version dependent. This significantly complicates implementation based on the code system, to the point where it is not clear that safety can be assured, so changing the meaning of an existing code SHOULD be avoided whenever possible. It is preferable to assign a new identifier to a code system when any concepts in it have a significant change in meaning (for example, the German diagnostic classification code system ICD10GM2009 has a different system to ICD10GM2008), but this also can have substantial impact on implementation, so is often not practical - for instance, SNOMED CT has a complex version release framework, which may lead to variations in meaning of concepts, but there is only one identifier for SNOMED CT.
For
this
reason,
a
code
system
MAY
provide
a
version
identifier
which
can
be
specified
in
CodeSystem.version
.
The
version
specific
identifier
SHOULD
be
provided
whenever
there
are
potentially
significant
changes
in
meaning
across
multiple
releases
of
a
code
system.
There
is
no
particular
format
requirement
for
the
version
identifier,
though
HL7
recommends
a
date
based
date-based
approach.
When
the
CodeSystem.versionNeeded
is
'true',
then
the
version
identifier
SHALL
be
used
in
Coding
instances
that
refer
to
the
code
system.
Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use as the version string the date (expressed in FHIR date format) on which the version of the code system that is being used was officially published.
The
simple
case
for
a
code
system
is
that
the
entire
code
system
-
all
the
concepts
and
their
codes,
designations
and
properties
are
distributed
in
a
single
CodeSystem
resource.
However,
for
a
variety
of
reasons,
code
systems
may
be
distributed
by
the
code
system
authority
in
a
set
of
fragments,
and
other
authorities
may
issue
additional
designations
and
properties
in
supplements.
If
the
CodeSystem.content
value
is
fragment
,
then
the
resource
describes
part
of
a
code
system.
Code Systems may be distributed in fragments for the following reasons:
The following rules apply to code system fragments:
If
the
CodeSystem.content
value
is
supplement
,
then
the
resource
describes
a
code
system
supplement.
The
following
rules
apply
to
code
system
supplements:
CodeSystem.supplements
element
SHALL
have
a
value,
which
is
the
URL
of
the
code
system
being
supplemented
CodeSystem.url
for
a
supplement
SHALL
never
appear
in
a
Coding.system
CodeSystem.url
for
a
supplement
must
be
under
the
control
of
the
authority
creating
or
publishing
the
supplement
(e.g.
not
in
the
same
space
as
the
code
system
being
supplemented,
unless
the
supplement
is
being
issued
by
the
same
authority
as
the
original
code
system
If
a
supplement
needs
to
define
new
concepts/codes
to
use
as
property
values,
it
can
be
paired
with
a
new
(possibly
contained)
Code
System
and
use
the
Coding
type
for
the
property
values.
The impact of Code System supplements on value set expansion - and therefore value set validation - is subject to ongoing experimentation and implementation testing, and further clarification and additional rules might be proposed in future versions of this specification.
Concepts
have
both
a
display
and
a
definition
.
The
display
is
a
short
text
that
represents
the
meaning
of
the
concept
to
human
users,
while
the
definition
is
a
more
formal
statement
of
the
meaning
of
the
concept,
which
is
often
longer.
All
concepts
SHOULD
have
a
display
and
a
definition
,
though
it
is
not
mandatory
because
there
are
many
cases
where
no
such
properties
are
provided,
in
spite
of
their
utility
and
importance
for
clear
and
safe
communication.
In
addition
to
the
display
and
definition,
a
concept
can
have
one
or
more
designation
elements.
The
display
is
equivalent
to
a
special
designation
with
an
implied
designation.use
meaning
"primary
code/designation"
and
a
language
equal
to
the
Resource
Language
.
The
designations
can
provide
additional
displays
for
other
language,
as
well
as
designations
for
other
purposes.
When
using
concepts,
applications
use
the
display
and
designation
unless
the
language
or
usage
in
context
provides
a
reason
to
use
one
of
the
designations.
Each
code
system
can
have
define
one
or
more
concept
properties.
Each
concept
defined
by
the
code
system
may
have
one
or
more
values
for
each
concept
property
defined
by
the
code
system.
Typical
uses
for
properties
include:
Properties
are
identified
by
their
master
URI
(
CodeSystem.property.uri
),
and
then,
by
their
code
(
CodeSystem.property.code
),
which
is
used
both
internally
within
the
code
system
resource
(
CodeSystem.concept.property.code
)
and
also
externally,
in
the
following
places:
ConceptMap.element.target.dependsOn.property
and
ConceptMap.element.target.product.property
ValueSet.compose.include.filter.property
can
refer
to
any
defined
code
system
property
Parameters.parameter.name
when
returning
information
about
a
code
Parameters.parameter.part.name
for
dependencies
and
products
Parameters.parameter.name
when
providing
codes,
and
in
Parameters.parameter.name
when
asking
for
codes
Properties are defined using the following elements:
| Name | Details | Description |
| code | code |
Used
to
identify
the
property,
|
| uri | optional uri | Reference to the formal meaning of the property. One possible source of meaning is the Concept Properties code system. This part of the definition is optional, but is recommended to provide an additional level of definitional consistency |
| description | optional string | A description of the property- why it is defined, and how its value might be used |
| type | code | Coding | string | integer | boolean | dateTime |
The
type
of
the
property
value.
Properties
of
type
|
Note that properties provide a common view of concept relationships that is common across all code systems. Some code systems define properties with more sophistication, such as groups of properties, or subsumption relationships between properties (e.g. SNOMED CT). Servers providing support for these code systems will need to know full details about the underlying relationships in order to provide the correct information about concepts and their properties, but this information does not surface in the resources or operations defined by the FHIR specification.
Many
Code
Systems
have
a
'status'
associated
with
the
concept.
This
may
categorise
categorize
the
concept
as:
There
is
wide
variation
in
the
life
cycles
supported
by
the
different
code
systems,
the
words
they
use
to
describe
the
various
status
values
they
use,
and
some
code
systems
have
additional
status
values.
HL7
uses
Active
and
Retired.
In
addition
to
these
status
codes,
concepts
may
be
also
be
labeled
as
"Abstract'
"Abstract'
(not
to
be
used
in
some
circumstances),
and
have
dates
associated
with
their
retirement
or
deprecation.
All
this
information
is
represented
as
properties
of
the
concepts.
In
order
to
assist
with
consistency
between
code
systems,
the
following
basic
property
URIs
are
defined:
| http://hl7.org/fhir/concept-properties#status : code |
A
property
that
indicates
the
status
of
the
concept.
If
the
property
is
identified
by
this
URL,
then
it
SHALL
use
at
least
these
status
values
(where
appropriate):
|
| http://hl7.org/fhir/concept-properties#retirementDate : date | Date Concept was retired |
| http://hl7.org/fhir/concept-properties#deprecationDate : date | Date Concept was deprecated |
| http://hl7.org/fhir/concept-properties#parent : code | An immediate parent of the concept in the hierarchy |
| http://hl7.org/fhir/concept-properties#child : code | An immediate child of the concept in the hierarchy |
| http://hl7.org/fhir/concept-properties#notSelectable : boolean |
This
concept
is
a
grouping
concept
and
not
intended
to
be
used
in
the
normal
use
of
the
code
system
(though
|
Typically,
The
parent
and
child
properties
are
used
when
performing
concept
lookup
(using
the
$lookup
operation),
and
when
using
properties
to
indicate
parent/child
relationships
(see
below).
Code
systems
are
may
be
presented
hierachically,
hierarchically,
using
nested
concept
elements,
where
the
hierachy
hierarchy
has
a
defined
meaning
specified
in
hierarchyMeaning
.
For
this
reason,
the
parent
and
child
properties
are
mostly
The
code
system
hierarchy
is
a
single
tree,
where
concepts
have
only
used
when
performing
concept
lookup.
Note
that
in
some
one
parent.
Some
code
systems,
systems
define
concepts
may
that
have
multiple
parents,
so
the
parent
property
may
repeat.
These
parents.
If
a
code
systems
system
has
concepts
like
this
(typically,
concepts
that
are
not
usually
presented
in
a
hierachical
fashion
subsumed
by
more
than
one
other
concept),
the
code
system
SHOULD
NOT
be
represented
using
the
hierarchy
structure
in
the
Code
System
resource,
and
the
relationships
between
concepts
should
be
defined
using
properties
.
If
the
hierarchy
is
used,
implementers
SHALL
use
a
CodeSystem
if
they
property
to
indicate
additional
parents
that
are
not
represented
in
a
CodeSystem
at
all.
If
they
are,
then
the
subsumes
extension
must
be
used.
structural
(nested
concepts)
hierarchy.
Operations based on the codeSystem resource SHALL have the same result whether or not the relationships are represented explicitly as properties or implicitly using the CodeSystem resource hierarchy.
The
words
'subsume',
'subsumes',
'subsumed'
and
'subsumption'
are
defined
in
terms
of
relation
to
the
CodeSystem
type
of
hierarchy
(i.e.
the
value
of
CodeSystem.hierarchyMeaning
).
)
identified
for
the
code
system
that
is
being
represented
by
the
CodeSystem
resource.
Concept
A
is
considered
to
be
subsumed
by
Concept
B
if
it
comes
under
Concept
B
in
the
hierarchy,
or
if
subsumption
a
parent/child
relationship
is
declared
explicitly
using
in
the
subsumes
extension
).
properties,
and
the
hierarchyMeaning
is
"is-a").
Where
a
CodeSystem
does
not
declare
its
hierarchy
meaning
directly,
then
the
code
system
documentation
must
be
consulted
manually
to
determinw
determine
how
subsumption
is
determined.
If
there
is
no
definition,
none
of
the
subsumption
based
features
can
be
used
with
the
code
system.
Subsumption based logic arises explicitly or implicitly in the following places in the FHIR specification:
The following filters are defined for all code systems:
| Property Name | Operation | Value | Definition | Notes |
|---|---|---|---|---|
| [property] | = | [string] | Includes all codes that have a property value equal to the specified string, where [property] is the code for any defined property | |
| [property] | in | [string,string...] | Includes all codes that have a property value equal to one of the specified strings, where [property] is the code for any defined property |
The
values
cannot
include
|
This draft section about the relationships between rich terminologies and structured content is still undergoing review.
Sometimes
Some
other
parts
of
the
FHIR
infrastructure
define
set
of
concepts
that
may
also
be
treated
as
code
systems.
This
is
most
useful
when
mapping
between
systems
may
using
Concept
Maps
,
but
might
also
be
used
useful
for
other
code
system
related
functionality
(e.g.
subsetting
use
Value
Sets
).
This
table
summarizes
how
to
treat
these
items
as
a
terminology:
| StructureDefinition |
The
StructureDefinition.url
(canonical
URL)
is
the
system
.
Each
.snapshot.element.id
in
the
snapshot
is
a
code
in
the
code
system
|
| Questionnaire |
The
Questionnaire.url
(canonical
URL)
is
the
system
.
Each
.item.linkId
in
the
snapshot
is
a
code
in
the
code
system.
Items
with
no
linkId
cannot
be
addressed
|
| Medication | Medication resources are a bit different, since they don't have a canonical URL, and there are not multiple items in a resource. So to refer to a medication resource, the system is [base]/Medication, where base is the server address. The Logical Id of the resource is the code |
The use of these implicit code systems is not yet well tested, so this section remains informative.
For
medications,
the
relationship
between
the
code
system
and
the
medication
resource
is
complex.
Many
medication
related
code
systems
(e.g.
RxNorm,
DM+D,
AMT,
etc.)
represent
more
complex
information
than
just
code,
display
name
and
code
system.
For
example,
a
code
system
of
drug
information
which
contains
These
often
contain
information
about
the
content
of
the
medication
(e.g.,
RxNorm),
or
A
similar
principle
applies
to
observation
definitions,
which
overlap
significantly
with
LOINC
and
other
related
code
systems,
which
contain
a
set
of
observation
types,
definitions,
that
contain
methods,
units,
etc.
(e.g.,
LOINC).
Other
similar
arrangements
exist
for
Location
and
many
other
kinds
of
resource.
In
FHIR,
these
are
handled
by
splitting
the
concept
into
two
distinct
parts
-
the
Terminology,
(
Code
System
&
ValueSet
resources)
is
used
to
manage
the
codes,
display
names
and
relationships.
A
separate
"detail"
"detail"
resource
(e.g.,
Medication
resource
instances
for
drugs,
DataElement
RxNorm
code
details,
ObservationDefinition
instances
for
observation
types,
LOINC
code
details,
or
Location
for
location,
,
etc.)
is
used
to
convey
detailed
information
(dose
form
&
strength,
allowed
data
type
or
permitted
values,
address
&
hours
of
operation,
etc.).
One
"detail"
"detail"
resource
instance
is
created
for
each
code.
This division accomplishes several things:
CodeSystem
/
ValueSet
.
Note that this division in FHIR does not imply that a similar division is required in the internal representation used by systems exposing a FHIR interface. Similarly, some systems may choose to only expose or maintain one aspect of such information types (i.e. only the discrete resource instances or only the value set).
The
linkage
between
the
"detail"
"detail"
resource
and
the
Terminology
resources
is
accomplished
via
the
code
element
(or
equivalent)
on
the
detail
resource.
As
well,
the
"name"
"name"
or
"title"
"title"
on
the
detail
resource
generally
corresponds
with
the
display
name
on
the
matching
code.
Most
detail
resources
will
also
have
an
"identifier"
"identifier"
element.
This
can
be
set
to
the
same
value
and
namespace
as
the
code,
but
if
the
only
identifier
a
resource
has
is
its
defining
code,
it
may
be
better
to
omit
the
identifier
entirely.
For
further
information,
see
Implicit
Code
Systems
.
.
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
| Name | Type | Description | Expression | In Common |
| code TU | token | A code defined in the code system | CodeSystem.concept.code | |
| content-mode TU | token | not-present | example | fragment | complete | supplement | CodeSystem.content | |
| context TU | token | A use context assigned to the code system | (CodeSystem.useContext.value as CodeableConcept) | |
| context-quantity TU | quantity | A quantity- or range-valued use context assigned to the code system | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | |
| context-type TU | token | A type of use context assigned to the code system | CodeSystem.useContext.code | |
| context-type-quantity TU | composite | A use context type and quantity- or range-based value assigned to the code system |
On
CodeSystem.useContext:
context-type: code context-quantity: value.as(Quantity) | value.as(Range) | |
| context-type-value TU | composite | A use context type and value assigned to the code system |
On
CodeSystem.useContext:
context-type: code context: value.as(CodeableConcept) | |
| date TU | date | The code system publication date | CodeSystem.date | |
| description TU | string | The description of the code system | CodeSystem.description | |
| identifier TU | token | External identifier for the code system | CodeSystem.identifier | |
| jurisdiction TU | token | Intended jurisdiction for the code system | CodeSystem.jurisdiction | |
| language TU | token | A language in which a designation is provided | CodeSystem.concept.designation.language | |
| name TU | string | Computationally friendly name of the code system | CodeSystem.name | |
| publisher TU | string | Name of the publisher of the code system | CodeSystem.publisher | |
| status TU | token | The current status of the code system | CodeSystem.status | |
| supplements TU | reference | Find code system supplements for the referenced code system |
CodeSystem.supplements
( CodeSystem ) | |
| system TU | uri | The system for any codes defined by this code system (same as 'url') | CodeSystem.url | |
| title TU | string | The human-friendly name of the code system | CodeSystem.title | |
| url TU | uri | The uri that identifies the code system | CodeSystem.url | |
| version TU | token | The business version of the code system | CodeSystem.version |