This
page
is
part
of
the
FHIR
Specification
(v5.0.0:
R5
-
STU
v6.0.0-ballot1:
Release
6
Ballot
(1st
Draft)
(see
Ballot
Notes
).
This
is
the
The
current
published
version
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
Terminology
Infrastructure
Work
Group
|
Maturity Level : N | Normative (from v4.0.0) | Security Category : Anonymous | Compartments : No defined compartments |
The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content.
The
FHIR
terminology
specification
is
based
on
the
concepts
of
code
system
and
value
set
originally
defined
in
HL7
v3
Core
Principles
:
Code systems define which codes (symbols and/or expressions) exist, and how they are understood. Value 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 code 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.) all have their own maintenance systems and distribution formats, and CodeSystem is generally not an efficient way to distribute their content, though it is used as one way of declaring the filters and properties associated with those code systems.
specification.
A
CTS2
server
can
be
used
to
maintain
code
systems
which
are
then
published
using
the
CodeSystem
resource
The
CodeSystem
resource
declares
the
existence
of
a
code
system
and
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,
who
can
properly
define
the
code
system
features
and
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
system,
but
ideally
there
would
be
only
one
authoritative
CodeSystem
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 .
A code system has three identifiers. The first two can be used to reference the code system in the FHIR context:
CodeSystem.id
:
The
logical
id
on
the
system
that
holds
the
CodeSystem
resource
instance
-
this
typically
is
expected
to
change
as
the
resource
moves
from
server
to
server.
The
location
URI
is
constructed
by
appending
the
logical
id
to
the
server
base
address
where
the
instance
is
found
and
the
resource
type.
This
URI
should
be
a
resolvable
URL
by
which
the
resource
instance
may
be
retrieved,
usually
from
a
FHIR
server,
and
it
may
be
a
relative
reference
typically
to
the
server
base
URL.
CodeSystem.url
:
The
canonical
URL
that
never
changes
for
this
code
system
-
it
is
the
same
in
every
copy.
The
element
is
named
url
rather
than
uri
for
legacy
reasons
and
to
strongly
encourage
providing
a
resolvable
URL
as
the
identifier
whenever
possible.
This
canonical
URL
is
used
to
refer
to
all
instances
of
this
particular
code
system
across
all
servers
and
systems.
Ideally,
this
URI
should
be
a
URL
which
resolves
to
the
location
of
the
master
version
of
the
code
system,
though
this
is
not
always
possible.
For example, for CodeSystems that are part of the FHIR specification, CodeSystem.url is the url where the CodeSystem may be accessed in the FHIR specification. However, while a new version of the FHIR specification is being prepared, new code systems that are published in CI build versions will not be found in the released FHIR specification version.
The third code system identifier is used typically for external references to the code system outside of 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
URIs
that
can
be
used
to
reference
it
-
its
canonical
URL
(the
url
element),
and
its
local
location
from
which
it
may
be
retrieved
(which
includes
the
id
element).
Most
references
to
code
systems
use
the
canonical
URL
because
it
is
stable
and
does
not
change
from
one
FHIR
server
instance
to
another.
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.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
||||
|---|---|---|---|---|---|---|---|---|
|
N | DomainResource |
Declares
the
existence
of
and
describes
a
code
system
or
code
system
supplement
+ 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 + Warning: If there is an explicit hierarchy, a hierarchyMeaning should be provided + Warning: If there is an implicit hierarchy, a hierarchyMeaning should be provided + Rule: If the code system content = supplement, it must nominate what it's a supplement for Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension Interfaces Implemented: MetadataResource |
|||||
|
Σ C | 0..1 | uri |
Canonical
identifier
for
this
code
system,
represented
as
a
URI
(globally
unique)
(Coding.system)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic |
||||
|
Σ | 0..* | Identifier |
Additional
identifier
for
the
code
system
(business
identifier)
|
||||
|
Σ | 0..1 | string |
Business
version
of
the
code
system
(Coding.version)
|
||||
|
Σ TU | 0..1 |
How
to
compare
versions
Binding: Version Algorithm ( Extensible ) |
|||||
|
string | |||||||
|
Coding | |||||||
|
Σ C | 0..1 | string |
Name
for
this
code
system
(computer
friendly)
|
||||
|
Σ T | 0..1 | string |
Name
for
this
code
system
(human
friendly)
|
||||
|
?! Σ | 1..1 | code |
draft
|
active
|
retired
|
unknown
Binding: PublicationStatus ( Required ) |
||||
|
Σ | 0..1 | boolean |
For
testing
purposes,
not
real
usage
|
||||
|
Σ | 0..1 | dateTime |
Date
last
changed
|
||||
|
Σ T | 0..1 | string |
Name
of
the
publisher/steward
(organization
or
individual)
|
||||
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
||||
|
T | 0..1 | markdown |
Natural
language
description
of
the
code
system
|
||||
|
Σ TU | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
||||
|
Σ XD | 0..* | CodeableConcept |
Intended
jurisdiction
for
code
system
(if
applicable)
Binding: Jurisdiction ValueSet ( Extensible ) |
||||
|
T | 0..1 | markdown |
Why
this
code
system
is
defined
|
||||
|
T | 0..1 | markdown |
Use
and/or
publishing
restrictions
|
||||
|
T TU | 0..1 | string |
Copyright
holder
and
year(s)
|
||||
|
TU | 0..1 | date |
When
the
CodeSystem
was
approved
by
publisher
|
||||
|
TU | 0..1 | date |
When
the
CodeSystem
was
last
reviewed
by
the
publisher
|
||||
|
Σ TU | 0..1 | Period |
When
the
CodeSystem
is
expected
to
be
used
|
||||
|
XD | 0..* | CodeableConcept |
E.g.
Education,
Treatment,
Assessment,
etc
Binding: Definition Topic ( Example ) |
||||
|
TU | 0..* | ContactDetail |
Who
authored
the
CodeSystem
|
||||
|
TU | 0..* | ContactDetail |
Who
edited
the
CodeSystem
|
||||
|
TU | 0..* | ContactDetail |
Who
reviewed
the
CodeSystem
|
||||
|
TU | 0..* | ContactDetail |
Who
endorsed
the
CodeSystem
|
||||
|
TU | 0..* | RelatedArtifact |
Additional
documentation,
citations,
etc
|
||||
|
Σ | 0..1 | boolean |
If
code
comparison
is
case
sensitive
|
||||
|
Σ | 0..1 | canonical ( ValueSet ) |
Canonical
reference
to
the
value
set
with
entire
code
system
|
||||
|
Σ C | 0..1 | code |
grouped-by
|
is-a
|
part-of
|
classified-with
Binding: Code System Hierarchy Meaning ( Required ) |
||||
|
Σ | 0..1 | boolean |
If
code
system
defines
a
compositional
grammar
|
||||
|
Σ | 0..1 | boolean |
If
definitions
are
not
stable
|
||||
|
Σ C | 1..1 | code |
not-present
|
example
|
fragment
|
complete
|
supplement
Binding: Code System Content Mode ( Required ) |
||||
|
Σ C TU | 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
|
child-of
|
descendent-leaf
|
exists
Binding: Filter Operator ( 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
Binding: Property Type ( Required ) |
||||
|
C | 0..* | BackboneElement |
Concepts
in
the
code
system
|
||||
|
C | 1..1 | code |
Code
that
identifies
concept
|
||||
|
0..1 | string |
Text
to
display
to
the
user
|
|||||
|
0..1 | string |
Formal
definition
|
|||||
|
C | 0..* | BackboneElement |
Additional
representations
for
the
concept
+ Rule: Must have a value for concept.designation.use if concept.designation.additionalUse is present |
||||
|
0..1 | code |
Human
language
of
the
designation
Binding: All Languages ( Required )
|
|||||
|
C | 0..1 | Coding |
Details
how
this
designation
would
be
used
Binding: Designation Use ( Extensible ) |
||||
|
C TU | 0..* | Coding |
Additional
ways
how
this
designation
would
be
used
Binding: Designation Use ( Extensible ) |
||||
|
1..1 | string |
The
text
value
for
this
designation
|
|||||
|
0..* | BackboneElement |
Property
value
for
the
concept
|
|||||
|
C | 1..1 | code |
Reference
to
CodeSystem.property.code
|
||||
|
1..1 |
Value
of
the
property
for
this
concept
|
||||||
|
code | |||||||
|
Coding | |||||||
|
string | |||||||
|
integer | |||||||
|
boolean | |||||||
|
dateTime | |||||||
|
decimal | |||||||
|
C | 0..* | see concept |
Child
Concepts
(is-a/contains/categorizes)
|
||||
Documentation
for
this
format
|
||||||||
See the Extensions for this resource
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 --> <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) --> <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]> <name value="[string]"/><!-- I 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/steward (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <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 --> <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) --> <approvalDate value="[date]"/><!-- 0..1 When the CodeSystem was approved by publisher --> <lastReviewDate value="[date]"/><!-- 0..1 When the CodeSystem was last reviewed by the publisher --> <effectivePeriod><!-- 0..1 Period When the CodeSystem is expected to be used --></effectivePeriod> <topic><!-- 0..* CodeableConcept E.g. Education, Treatment, Assessment, etc --></topic> <author><!-- 0..* ContactDetail Who authored the CodeSystem --></author> <editor><!-- 0..* ContactDetail Who edited the CodeSystem --></editor> <reviewer><!-- 0..* ContactDetail Who reviewed the CodeSystem --></reviewer> <endorser><!-- 0..* ContactDetail Who endorsed the CodeSystem --></endorser> <relatedArtifact><!-- 0..* RelatedArtifact Additional documentation, citations, etc --></relatedArtifact> <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]"/><!-- I 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]"/><!-- I 1..1 not-present | example | fragment | complete | supplement --> <supplements><!-- I 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 | child-of | descendent-leaf | 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> <!-- I 0..* Concepts in the code system --> <code value="[code]"/><!-- I 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><!-- I 0..1 Coding Details how this designation would be used --></use> <additionalUse><!-- I 0..* Coding Additional ways how this designation would be used --></additionalUse> <value value="[string]"/><!-- 1..1 The text value for this designation --> </designation> <property> <!-- 0..* Property value for the concept --> <code value="[code]"/><!-- I 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><!-- I 0..* Content as for CodeSystem.concept Child Concepts (is-a/contains/categorizes) --></concept> </concept> </CodeSystem>
JSON Template
{
"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)
// versionAlgorithm[x]: How to compare versions. One of these 2:
"versionAlgorithmString" : "<string>",
"versionAlgorithmCoding" : { Coding },
"name" : "<string>", // I 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/steward (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
"copyrightLabel" : "<string>", // Copyright holder and year(s)
"approvalDate" : "<date>", // When the CodeSystem was approved by publisher
"lastReviewDate" : "<date>", // When the CodeSystem was last reviewed by the publisher
"effectivePeriod" : { Period }, // When the CodeSystem is expected to be used
"topic" : [{ CodeableConcept }], // E.g. Education, Treatment, Assessment, etc
"author" : [{ ContactDetail }], // Who authored the CodeSystem
"editor" : [{ ContactDetail }], // Who edited the CodeSystem
"reviewer" : [{ ContactDetail }], // Who reviewed the CodeSystem
"endorser" : [{ ContactDetail }], // Who endorsed the CodeSystem
"relatedArtifact" : [{ RelatedArtifact }], // Additional documentation, citations, etc
"caseSensitive" : <boolean>, // If code comparison is case sensitive
"valueSet" : "<canonical(ValueSet)>", // Canonical reference to the value set with entire code system
"hierarchyMeaning" : "<code>", // I 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>", // I R! not-present | example | fragment | complete | supplement
"supplements" : "<canonical(CodeSystem)>", // I 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 | child-of | descendent-leaf | 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" : [{ // I Concepts in the code system
"code" : "<code>", // I 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 }, // I Details how this designation would be used
"additionalUse" : [{ Coding }], // I Additional ways how this designation would be used
"value" : "<string>" // R! The text value for this designation
}],
"property" : [{ // Property value for the concept
"code" : "<code>", // I 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 }] // I Child Concepts (is-a/contains/categorizes)
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/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 .modifierExtension fhir:url [ uri ] ; # 0..1 Canonical identifier for this code system, represented as a URI (globally unique) (Coding.system) fhir:identifier ( [ Identifier ] ... ) ; # 0..* Additional identifier for the code system (business identifier) fhir:version [ string ] ; # 0..1 Business version of the code system (Coding.version) # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2 fhir:versionAlgorithm [ a fhir:string ; string ] fhir:versionAlgorithm [ a fhir:Coding ; Coding ] fhir:name [ string ] ; # 0..1 I Name for this code system (computer friendly) fhir:title [ string ] ; # 0..1 Name for this code system (human friendly) fhir:status [ code ] ; # 1..1 draft | active | retired | unknown fhir:experimental [ boolean ] ; # 0..1 For testing purposes, not real usage fhir:date [ dateTime ] ; # 0..1 Date last changed fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual) fhir:contact ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher fhir:description [ markdown ] ; # 0..1 Natural language description of the code system fhir:useContext ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support fhir:jurisdiction ( [ CodeableConcept ] ... ) ; # 0..* Intended jurisdiction for code system (if applicable) fhir:purpose [ markdown ] ; # 0..1 Why this code system is defined fhir:copyright [ markdown ] ; # 0..1 Use and/or publishing restrictions fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s) fhir:approvalDate [ date ] ; # 0..1 When the CodeSystem was approved by publisher fhir:lastReviewDate [ date ] ; # 0..1 When the CodeSystem was last reviewed by the publisher fhir:effectivePeriod [ Period ] ; # 0..1 When the CodeSystem is expected to be used fhir:topic ( [ CodeableConcept ] ... ) ; # 0..* E.g. Education, Treatment, Assessment, etc fhir:author ( [ ContactDetail ] ... ) ; # 0..* Who authored the CodeSystem fhir:editor ( [ ContactDetail ] ... ) ; # 0..* Who edited the CodeSystem fhir:reviewer ( [ ContactDetail ] ... ) ; # 0..* Who reviewed the CodeSystem fhir:endorser ( [ ContactDetail ] ... ) ; # 0..* Who endorsed the CodeSystem fhir:relatedArtifact ( [ RelatedArtifact ] ... ) ; # 0..* Additional documentation, citations, etc fhir:caseSensitive [ boolean ] ; # 0..1 If code comparison is case sensitive fhir:valueSet [ canonical(ValueSet) ] ; # 0..1 Canonical reference to the value set with entire code system fhir:hierarchyMeaning [ code ] ; # 0..1 I grouped-by | is-a | part-of | classified-with fhir:compositional [ boolean ] ; # 0..1 If code system defines a compositional grammar fhir:versionNeeded [ boolean ] ; # 0..1 If definitions are not stable fhir:content [ code ] ; # 1..1 I not-present | example | fragment | complete | supplement fhir:supplements [ canonical(CodeSystem) ] ; # 0..1 I Canonical URL of Code System this adds designations and properties to fhir:count [ unsignedInt ] ; # 0..1 Total concepts in the code system fhir:filter ( [ # 0..* Filter that can be used in a value set fhir:code [ code ] ; # 1..1 Code that identifies the filter fhir:description [ string ] ; # 0..1 How or why the filter is used fhir:operator ( [ code ] ... ) ; # 1..* = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | child-of | descendent-leaf | exists fhir:value [ string ] ; # 1..1 What to use for the value ] ... ) ; fhir:property ( [ # 0..* Additional information supplied about each concept fhir:code [ code ] ; # 1..1 Identifies the property on the concepts, and when referred to in operations fhir:uri [ uri ] ; # 0..1 Formal identifier for the property fhir:description [ string ] ; # 0..1 Why the property is defined, and/or what it conveys fhir:type [ code ] ; # 1..1 code | Coding | string | integer | boolean | dateTime | decimal ] ... ) ; fhir:concept ( [ # 0..* I Concepts in the code system fhir:code [ code ] ; # 1..1 I Code that identifies concept fhir:display [ string ] ; # 0..1 Text to display to the user fhir:definition [ string ] ; # 0..1 Formal definition fhir:designation ( [ # 0..* Additional representations for the concept fhir:language [ code ] ; # 0..1 Human language of the designation fhir:use [ Coding ] ; # 0..1 I Details how this designation would be used fhir:additionalUse ( [ Coding ] ... ) ; # 0..* I Additional ways how this designation would be used fhir:value [ string ] ; # 1..1 The text value for this designation ] ... ) ; fhir:property ( [ # 0..* Property value for the concept fhir:code [ code ] ; # 1..1 I Reference to CodeSystem.property.code # value[x] : 1..1 Value of the property for this concept. One of these 7 fhir:value [ a fhir:code ; code ] fhir:value [ a fhir:Coding ; Coding ] fhir:value [ a fhir:string ; string ] fhir:value [ a fhir:integer ; integer ] fhir:value [ a fhir:boolean ; boolean ] fhir:value [ a fhir:dateTime ; dateTime ] fhir:value [ a fhir:decimal ; decimal ] ] ... ) ; fhir:concept ( [ See CodeSystem.concept ] ... ) ; # 0..* I Child Concepts (is-a/contains/categorizes) ] ... ) ; ]
Changes from both R4 and R4B
| CodeSystem | |
| CodeSystem.versionAlgorithm[x] |
|
| CodeSystem.copyrightLabel |
|
| CodeSystem.approvalDate |
|
| CodeSystem.lastReviewDate |
|
| CodeSystem.effectivePeriod |
|
| CodeSystem.topic |
|
| CodeSystem.author |
|
| CodeSystem.editor |
|
| CodeSystem.reviewer |
|
| CodeSystem.endorser |
|
| CodeSystem.relatedArtifact |
|
| CodeSystem.filter.operator |
|
| CodeSystem.concept.designation.language |
|
| CodeSystem.concept.designation.additionalUse |
|
See the Full Difference for further information
This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .
See R4 <--> R5 Conversion Maps (status = See Conversions Summary .)
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
||||
|---|---|---|---|---|---|---|---|---|
|
N | DomainResource |
Declares
the
existence
of
and
describes
a
code
system
or
code
system
supplement
+ 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 + Warning: If there is an explicit hierarchy, a hierarchyMeaning should be provided + Warning: If there is an implicit hierarchy, a hierarchyMeaning should be provided + Rule: If the code system content = supplement, it must nominate what it's a supplement for Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension Interfaces Implemented: MetadataResource |
|||||
|
Σ C | 0..1 | uri |
Canonical
identifier
for
this
code
system,
represented
as
a
URI
(globally
unique)
(Coding.system)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic |
||||
|
Σ | 0..* | Identifier |
Additional
identifier
for
the
code
system
(business
identifier)
|
||||
|
Σ | 0..1 | string |
Business
version
of
the
code
system
(Coding.version)
|
||||
|
Σ TU | 0..1 |
How
to
compare
versions
Binding: Version Algorithm ( Extensible ) |
|||||
|
string | |||||||
|
Coding | |||||||
|
Σ C | 0..1 | string |
Name
for
this
code
system
(computer
friendly)
|
||||
|
Σ T | 0..1 | string |
Name
for
this
code
system
(human
friendly)
|
||||
|
?! Σ | 1..1 | code |
draft
|
active
|
retired
|
unknown
Binding: PublicationStatus ( Required ) |
||||
|
Σ | 0..1 | boolean |
For
testing
purposes,
not
real
usage
|
||||
|
Σ | 0..1 | dateTime |
Date
last
changed
|
||||
|
Σ T | 0..1 | string |
Name
of
the
publisher/steward
(organization
or
individual)
|
||||
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
||||
|
T | 0..1 | markdown |
Natural
language
description
of
the
code
system
|
||||
|
Σ TU | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
||||
|
Σ XD | 0..* | CodeableConcept |
Intended
jurisdiction
for
code
system
(if
applicable)
Binding: Jurisdiction ValueSet ( Extensible ) |
||||
|
T | 0..1 | markdown |
Why
this
code
system
is
defined
|
||||
|
T | 0..1 | markdown |
Use
and/or
publishing
restrictions
|
||||
|
T TU | 0..1 | string |
Copyright
holder
and
year(s)
|
||||
|
TU | 0..1 | date |
When
the
CodeSystem
was
approved
by
publisher
|
||||
|
TU | 0..1 | date |
When
the
CodeSystem
was
last
reviewed
by
the
publisher
|
||||
|
Σ TU | 0..1 | Period |
When
the
CodeSystem
is
expected
to
be
used
|
||||
|
XD | 0..* | CodeableConcept |
E.g.
Education,
Treatment,
Assessment,
etc
Binding: Definition Topic ( Example ) |
||||
|
TU | 0..* | ContactDetail |
Who
authored
the
CodeSystem
|
||||
|
TU | 0..* | ContactDetail |
Who
edited
the
CodeSystem
|
||||
|
TU | 0..* | ContactDetail |
Who
reviewed
the
CodeSystem
|
||||
|
TU | 0..* | ContactDetail |
Who
endorsed
the
CodeSystem
|
||||
|
TU | 0..* | RelatedArtifact |
Additional
documentation,
citations,
etc
|
||||
|
Σ | 0..1 | boolean |
If
code
comparison
is
case
sensitive
|
||||
|
Σ | 0..1 | canonical ( ValueSet ) |
Canonical
reference
to
the
value
set
with
entire
code
system
|
||||
|
Σ C | 0..1 | code |
grouped-by
|
is-a
|
part-of
|
classified-with
Binding: Code System Hierarchy Meaning ( Required ) |
||||
|
Σ | 0..1 | boolean |
If
code
system
defines
a
compositional
grammar
|
||||
|
Σ | 0..1 | boolean |
If
definitions
are
not
stable
|
||||
|
Σ C | 1..1 | code |
not-present
|
example
|
fragment
|
complete
|
supplement
Binding: Code System Content Mode ( Required ) |
||||
|
Σ C TU | 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
|
child-of
|
descendent-leaf
|
exists
Binding: Filter Operator ( 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
Binding: Property Type ( Required ) |
||||
|
C | 0..* | BackboneElement |
Concepts
in
the
code
system
|
||||
|
C | 1..1 | code |
Code
that
identifies
concept
|
||||
|
0..1 | string |
Text
to
display
to
the
user
|
|||||
|
0..1 | string |
Formal
definition
|
|||||
|
C | 0..* | BackboneElement |
Additional
representations
for
the
concept
+ Rule: Must have a value for concept.designation.use if concept.designation.additionalUse is present |
||||
|
0..1 | code |
Human
language
of
the
designation
Binding: All Languages ( Required )
|
|||||
|
C | 0..1 | Coding |
Details
how
this
designation
would
be
used
Binding: Designation Use ( Extensible ) |
||||
|
C TU | 0..* | Coding |
Additional
ways
how
this
designation
would
be
used
Binding: Designation Use ( Extensible ) |
||||
|
1..1 | string |
The
text
value
for
this
designation
|
|||||
|
0..* | BackboneElement |
Property
value
for
the
concept
|
|||||
|
C | 1..1 | code |
Reference
to
CodeSystem.property.code
|
||||
|
1..1 |
Value
of
the
property
for
this
concept
|
||||||
|
code | |||||||
|
Coding | |||||||
|
string | |||||||
|
integer | |||||||
|
boolean | |||||||
|
dateTime | |||||||
|
decimal | |||||||
|
C | 0..* | see concept |
Child
Concepts
(is-a/contains/categorizes)
|
||||
Documentation
for
this
format
|
||||||||
See the Extensions for this resource
XML Template
<CodeSystem xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <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) --> <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]> <name value="[string]"/><!-- I 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/steward (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <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 --> <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) --> <approvalDate value="[date]"/><!-- 0..1 When the CodeSystem was approved by publisher --> <lastReviewDate value="[date]"/><!-- 0..1 When the CodeSystem was last reviewed by the publisher --> <effectivePeriod><!-- 0..1 Period When the CodeSystem is expected to be used --></effectivePeriod> <topic><!-- 0..* CodeableConcept E.g. Education, Treatment, Assessment, etc --></topic> <author><!-- 0..* ContactDetail Who authored the CodeSystem --></author> <editor><!-- 0..* ContactDetail Who edited the CodeSystem --></editor> <reviewer><!-- 0..* ContactDetail Who reviewed the CodeSystem --></reviewer> <endorser><!-- 0..* ContactDetail Who endorsed the CodeSystem --></endorser> <relatedArtifact><!-- 0..* RelatedArtifact Additional documentation, citations, etc --></relatedArtifact> <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]"/><!-- I 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]"/><!-- I 1..1 not-present | example | fragment | complete | supplement --> <supplements><!-- I 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 | child-of | descendent-leaf | 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> <!-- I 0..* Concepts in the code system --> <code value="[code]"/><!-- I 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><!-- I 0..1 Coding Details how this designation would be used --></use> <additionalUse><!-- I 0..* Coding Additional ways how this designation would be used --></additionalUse> <value value="[string]"/><!-- 1..1 The text value for this designation --> </designation> <property> <!-- 0..* Property value for the concept --> <code value="[code]"/><!-- I 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><!-- I 0..* Content as for CodeSystem.concept Child Concepts (is-a/contains/categorizes) --></concept> </concept> </CodeSystem>
JSON Template
{
"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)
// versionAlgorithm[x]: How to compare versions. One of these 2:
"versionAlgorithmString" : "<string>",
"versionAlgorithmCoding" : { Coding },
"name" : "<string>", // I 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/steward (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
"copyrightLabel" : "<string>", // Copyright holder and year(s)
"approvalDate" : "<date>", // When the CodeSystem was approved by publisher
"lastReviewDate" : "<date>", // When the CodeSystem was last reviewed by the publisher
"effectivePeriod" : { Period }, // When the CodeSystem is expected to be used
"topic" : [{ CodeableConcept }], // E.g. Education, Treatment, Assessment, etc
"author" : [{ ContactDetail }], // Who authored the CodeSystem
"editor" : [{ ContactDetail }], // Who edited the CodeSystem
"reviewer" : [{ ContactDetail }], // Who reviewed the CodeSystem
"endorser" : [{ ContactDetail }], // Who endorsed the CodeSystem
"relatedArtifact" : [{ RelatedArtifact }], // Additional documentation, citations, etc
"caseSensitive" : <boolean>, // If code comparison is case sensitive
"valueSet" : "<canonical(ValueSet)>", // Canonical reference to the value set with entire code system
"hierarchyMeaning" : "<code>", // I 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>", // I R! not-present | example | fragment | complete | supplement
"supplements" : "<canonical(CodeSystem)>", // I 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 | child-of | descendent-leaf | 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" : [{ // I Concepts in the code system
"code" : "<code>", // I 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 }, // I Details how this designation would be used
"additionalUse" : [{ Coding }], // I Additional ways how this designation would be used
"value" : "<string>" // R! The text value for this designation
}],
"property" : [{ // Property value for the concept
"code" : "<code>", // I 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 }] // I Child Concepts (is-a/contains/categorizes)
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/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 .modifierExtension fhir:url [ uri ] ; # 0..1 Canonical identifier for this code system, represented as a URI (globally unique) (Coding.system) fhir:identifier ( [ Identifier ] ... ) ; # 0..* Additional identifier for the code system (business identifier) fhir:version [ string ] ; # 0..1 Business version of the code system (Coding.version) # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2 fhir:versionAlgorithm [ a fhir:string ; string ] fhir:versionAlgorithm [ a fhir:Coding ; Coding ] fhir:name [ string ] ; # 0..1 I Name for this code system (computer friendly) fhir:title [ string ] ; # 0..1 Name for this code system (human friendly) fhir:status [ code ] ; # 1..1 draft | active | retired | unknown fhir:experimental [ boolean ] ; # 0..1 For testing purposes, not real usage fhir:date [ dateTime ] ; # 0..1 Date last changed fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual) fhir:contact ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher fhir:description [ markdown ] ; # 0..1 Natural language description of the code system fhir:useContext ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support fhir:jurisdiction ( [ CodeableConcept ] ... ) ; # 0..* Intended jurisdiction for code system (if applicable) fhir:purpose [ markdown ] ; # 0..1 Why this code system is defined fhir:copyright [ markdown ] ; # 0..1 Use and/or publishing restrictions fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s) fhir:approvalDate [ date ] ; # 0..1 When the CodeSystem was approved by publisher fhir:lastReviewDate [ date ] ; # 0..1 When the CodeSystem was last reviewed by the publisher fhir:effectivePeriod [ Period ] ; # 0..1 When the CodeSystem is expected to be used fhir:topic ( [ CodeableConcept ] ... ) ; # 0..* E.g. Education, Treatment, Assessment, etc fhir:author ( [ ContactDetail ] ... ) ; # 0..* Who authored the CodeSystem fhir:editor ( [ ContactDetail ] ... ) ; # 0..* Who edited the CodeSystem fhir:reviewer ( [ ContactDetail ] ... ) ; # 0..* Who reviewed the CodeSystem fhir:endorser ( [ ContactDetail ] ... ) ; # 0..* Who endorsed the CodeSystem fhir:relatedArtifact ( [ RelatedArtifact ] ... ) ; # 0..* Additional documentation, citations, etc fhir:caseSensitive [ boolean ] ; # 0..1 If code comparison is case sensitive fhir:valueSet [ canonical(ValueSet) ] ; # 0..1 Canonical reference to the value set with entire code system fhir:hierarchyMeaning [ code ] ; # 0..1 I grouped-by | is-a | part-of | classified-with fhir:compositional [ boolean ] ; # 0..1 If code system defines a compositional grammar fhir:versionNeeded [ boolean ] ; # 0..1 If definitions are not stable fhir:content [ code ] ; # 1..1 I not-present | example | fragment | complete | supplement fhir:supplements [ canonical(CodeSystem) ] ; # 0..1 I Canonical URL of Code System this adds designations and properties to fhir:count [ unsignedInt ] ; # 0..1 Total concepts in the code system fhir:filter ( [ # 0..* Filter that can be used in a value set fhir:code [ code ] ; # 1..1 Code that identifies the filter fhir:description [ string ] ; # 0..1 How or why the filter is used fhir:operator ( [ code ] ... ) ; # 1..* = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | child-of | descendent-leaf | exists fhir:value [ string ] ; # 1..1 What to use for the value ] ... ) ; fhir:property ( [ # 0..* Additional information supplied about each concept fhir:code [ code ] ; # 1..1 Identifies the property on the concepts, and when referred to in operations fhir:uri [ uri ] ; # 0..1 Formal identifier for the property fhir:description [ string ] ; # 0..1 Why the property is defined, and/or what it conveys fhir:type [ code ] ; # 1..1 code | Coding | string | integer | boolean | dateTime | decimal ] ... ) ; fhir:concept ( [ # 0..* I Concepts in the code system fhir:code [ code ] ; # 1..1 I Code that identifies concept fhir:display [ string ] ; # 0..1 Text to display to the user fhir:definition [ string ] ; # 0..1 Formal definition fhir:designation ( [ # 0..* Additional representations for the concept fhir:language [ code ] ; # 0..1 Human language of the designation fhir:use [ Coding ] ; # 0..1 I Details how this designation would be used fhir:additionalUse ( [ Coding ] ... ) ; # 0..* I Additional ways how this designation would be used fhir:value [ string ] ; # 1..1 The text value for this designation ] ... ) ; fhir:property ( [ # 0..* Property value for the concept fhir:code [ code ] ; # 1..1 I Reference to CodeSystem.property.code # value[x] : 1..1 Value of the property for this concept. One of these 7 fhir:value [ a fhir:code ; code ] fhir:value [ a fhir:Coding ; Coding ] fhir:value [ a fhir:string ; string ] fhir:value [ a fhir:integer ; integer ] fhir:value [ a fhir:boolean ; boolean ] fhir:value [ a fhir:dateTime ; dateTime ] fhir:value [ a fhir:decimal ; decimal ] ] ... ) ; fhir:concept ( [ See CodeSystem.concept ] ... ) ; # 0..* I Child Concepts (is-a/contains/categorizes) ] ... ) ; ]
Changes from both R4 and R4B
| CodeSystem | |
| CodeSystem.versionAlgorithm[x] |
|
| CodeSystem.copyrightLabel |
|
| CodeSystem.approvalDate |
|
| CodeSystem.lastReviewDate |
|
| CodeSystem.effectivePeriod |
|
| CodeSystem.topic |
|
| CodeSystem.author |
|
| CodeSystem.editor |
|
| CodeSystem.reviewer |
|
| CodeSystem.endorser |
|
| CodeSystem.relatedArtifact |
|
| CodeSystem.filter.operator |
|
| CodeSystem.concept.designation.language |
|
| CodeSystem.concept.designation.additionalUse |
|
See the Full Difference for further information
This analysis is available for R4 as XML or JSON and for R4B as XML or JSON .
See R4 <--> R5 Conversion Maps (status = See Conversions Summary .)
Additional definitions: Master Definition XML + JSON , XML Schema / Schematron + JSON Schema , ShEx (for Turtle ) , the spreadsheet version & the dependency analysis
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
| CodeSystem.versionAlgorithm[x] | VersionAlgorithm | Extensible |
Indicates the mechanism used to compare versions to determine which is more current. |
| CodeSystem.status | PublicationStatus | Required |
The lifecycle status of an artifact. |
| CodeSystem.jurisdiction | JurisdictionValueSet | Extensible |
This value set defines a base set of codes for country, country subdivision and region for indicating where a resource is intended to be used.
Note:
The
codes
for
countries
and
country
subdivisions
are
taken
from
ISO
3166
|
| CodeSystem.topic | DefinitionTopic | Example |
High-level categorization of the definition, used for searching, sorting, and filtering. |
| CodeSystem.hierarchyMeaning | CodeSystemHierarchyMeaning | Required |
The meaning of the hierarchy of concepts in a code system. |
| CodeSystem.content | CodeSystemContentMode | Required |
The extent of the content of the code system (the concepts and codes it defines) are represented in a code system resource. |
| CodeSystem.filter.operator | FilterOperator | Required |
The kind of operation to perform as a part of a property based filter. |
| CodeSystem.property.type | PropertyType | Required |
The type of a property value. |
| CodeSystem.concept.designation.language |
AllLanguages
(a
valid
code
from
Tags
for
the
Identification
of
Languages
)
|
Required |
This value set includes all possible codes from BCP-47 (see http://tools.ietf.org/html/bcp47) |
| Common Languages | starter | ||
| CodeSystem.concept.designation.use | DesignationUse | Extensible |
Details of how a designation would be used |
| CodeSystem.concept.designation.additionalUse | DesignationUse | Extensible |
Details of how a designation would be used |
| UniqueKey | Level | Location | Description | Expression |
cnl-0
|
Warning | (base) | Name should be usable as an identifier for the module by machine processing applications such as code generation | name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$') |
csd-1
|
Rule | (base) | Within a code system definition, all the codes SHALL be unique | concept.exists() implies concept.code.combine(%resource.concept.descendants().concept.code).isDistinct() |
cnl-1
|
Warning | CodeSystem.url | URL should not contain | or # - these characters make processing canonical references problematic | exists() implies matches('^[^|# ]+$') |
csd-2
|
Warning | (base) | If there is an explicit hierarchy, a hierarchyMeaning should be provided | concept.concept.exists() implies hierarchyMeaning.exists() |
csd-3
|
Warning | (base) | If there is an implicit hierarchy, a hierarchyMeaning should be provided | concept.where(property.code = 'parent' or property.code = 'child').exists() implies hierarchyMeaning.exists() |
csd-4
|
Rule | (base) | If the code system content = supplement, it must nominate what it's a supplement for | CodeSystem.content = 'supplement' implies CodeSystem.supplements.exists() |
csd-5
|
Rule | CodeSystem.concept.designation | Must have a value for concept.designation.use if concept.designation.additionalUse is present | additionalUse.exists() implies use.exists() |
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
which
can
be
specified
in
CodeSystem.version
.
The
version
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,
though
HL7
recommends
a
date-based
approach,
or
sem-ver
.
When
the
CodeSystem.versionNeeded
is
'true',
then
the
CodeSystem.version
value
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 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, in the places shown in the list immediately above this table |
| 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 "code" contain a code defined by the code system (e.g. a reference to another defined concept) |
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.
In order to assist with consistency between code systems, the following basic property URIs are defined in the Concept Properties code system:
| 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#inactive : boolean | True if the concept is not considered active - e.g. not a valid concept any more. Property type is boolean, default value is false |
| http://hl7.org/fhir/concept-properties#effectiveDate : date | The date at which the concept status was last changed |
| http://hl7.org/fhir/concept-properties#deprecationDate : date | Date Concept was deprecated |
| http://hl7.org/fhir/concept-properties#retirementDate : date | Date Concept was retired |
| 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 may be used for filters etc.). This is also known as 'Abstract' |
| 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#partOf : code | The concept identified in this property (by its code) contains this concept as a component |
| http://hl7.org/fhir/concept-properties#synonym : code | This property contains an alternative code that may be used to identify this concept instead of the primary code |
| http://hl7.org/fhir/concept-properties#comment : code | A string that provides additional detail pertinent to the use or understanding of the concept |
| http://hl7.org/fhir/concept-properties#itemWeight : decimal | A numeric value that allows the comparison (less than, greater than) or other numerical manipulation of a concept (e.g. Adding up components of a score). Scores are usually a whole number, but occasionally decimals are encountered in scores |
Code System representations SHOULD use these properties where possible.
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).
Many Code Systems have a 'status' associated with the concept. This may categorize the concept as:
There is wide variation in the life cycles supported by the different code systems and the words they use to describe the various status values they use, and some code systems have additional status values. HL7 uses Active, Deprecated and Retired. These ideas overlap with setting the concept to 'inactive'. In addition, concepts have dates associated with their retirement or deprecation and some code systems imply the status by providing dates.
In addition to these status codes, concepts may also be labeled 'notSelectable' (aka 'Abstract'), which means "not to be used in some circumstances", though the exact circumstances need to be clarified somewhere. This is sometimes also considered a status, though it's usually dependent on the context of use (e.g. set in a ValueSet).
Code systems may be presented hierarchically using either nested concept elements or properties. When exclusively using nested concept elements the code system hierarchy is a single tree, and concepts have only one parent. When using properties, polyhierarchies are allowed (e.g. concepts may have more than one parent).
If a code system hierarchy is represented using properties (typically, concepts that are subsumed by more than one other concept), nested concepts SHOULD NOT be used to represent any parts of the hierarchy structure in the Code System resource; the relationships between concepts should be defined using properties .
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 relation to the 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 a parent/child relationship is declared in the 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 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 |
|---|---|---|---|---|
| code | regex | [string] | Matches any concept with the code matching the supplied string | The regex flavor is determined by the server |
| [property] | = | [string] |
Includes
all
codes
that
have
a
property
value
equal
to
the
specified
string,
where
[property]
is
the
code
for
any
defined
property
.
Where
the
type
of
the
property
is
on
of
integer
,
dateTime
or
decimal
,
the
FHIR
search
prefixes
and
semantics
apply
(see
below)
|
|
| [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 ",", since it is being used as a delimiter |
| [property] | regex | [string] | Includes all codes that have a property value matching the specified regex | |
| [property] | exists | true or false | When value is "true", includes all codes that have the specified property. When value is "false", includes all codes that lack the specified property | |
| designation | = | [string] | Matches any concept with a designation equal to the supplied string | Designations considered include the concept.display, which counts as a designation |
| designation | regex | [string] | Matches any concept with a designation matching the supplied string | Designations considered include the concept.display, which counts as a designation |
The following filters are defined for all code systems that support "is-a" relationships between concepts. (The filters can be used regardless of whether the "is-a" relationships are conveyed as concept properties or as concept nesting):
| Property Name | Operation | Value | Definition | Notes |
|---|---|---|---|---|
| concept | is-a | [string] concept code | Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, including the provided concept itself (include descendant codes and self). | |
| concept | descendent-of | [string] concept code | Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, excluding the provided concept itself (i.e. include descendant codes only). | |
| concept | is-not-a | [string] concept code | The specified property of the code does not have an is-a relationship with the provided value. | |
| concept | generalizes | [string] concept code | Includes all concept ids that have a transitive is-a relationship from the concept Id provided as the value, including the provided concept itself (i.e. include ancestor codes and self). | |
| concept | child-of | [string] concept code | Only concepts with a direct hierarchical relationship to the index code and no other concepts. This does not include the index code in the output. | |
| concept | descendent-leaf | [string] concept code | Includes concept ids that have a transitive is-a relationship with the concept Id provided as the value, but which do not have any concept ids with transitive is-a relationships with themselves. |
If
the
=
filter
is
used
with
a
property
that
is
defined
on
the
CodeSystem,
and
if
the
property
has
a
type
of
integer
,
dateTime
or
decimal
,
then
the
FHIR
search
rules
apply.
This
means
that
the
following
prefixes
may
be
used
in
the
value
of
the
filter:
The
semantics
of
prefixes
are
as
explained
on
the
search
page
with
regard
to
precision
and
range
considerations,
particularly
on
dates
and
decimals.
Note
that
eq
is
not
redundant
-
in
it's
absence,
the
semantics
are
for
a
direct
string
match,
not
a
smart
match
as
defined
by
the
search
semantics.
Some Examples:
{ "property": "retiredDate", "operator": "=", "value": "lt2021-01-01" }
Any code that was retired before 2021. Regarding precision:
{ "property": "retiredDate", "operator": "=", "value": "eq2022" }
would match a concept with a retiredDate of 2022-09-12. However:
{ "property": "retiredDate", "operator": "=", "value": "2022" }
would not match a concept with a retiredDate of 2022-09-12.
Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to 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 | token | A code defined in the code system | CodeSystem.concept.code | |
| content-mode | token | not-present | example | fragment | complete | supplement | CodeSystem.content | |
| context | token | A use context assigned to the code system | (CodeSystem.useContext.value.ofType(CodeableConcept)) | 30 Resources |
| context-quantity | quantity | A quantity- or range-valued use context assigned to the code system | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | 30 Resources |
| context-type TU | token | A type of use context assigned to the code system | CodeSystem.useContext.code | 30 Resources |
| 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.ofType(Quantity) | value.ofType(Range) |
30 Resources |
| context-type-value TU | composite | A use context type and value assigned to the code system |
On
CodeSystem.useContext:
context-type: code context: value.ofType(CodeableConcept) |
30 Resources |
| date | date | The code system publication date | CodeSystem.date | 30 Resources |
| derived-from TU | reference | A resource that the CodeSystem is derived from |
CodeSystem.relatedArtifact.where(type='derived-from').resource
(Any) |
10 Resources |
| description | string | The description of the code system | CodeSystem.description | 28 Resources |
| effective TU | date | The time during which the CodeSystem is intended to be in use | CodeSystem.effectivePeriod | 12 Resources |
| identifier | token | External identifier for the code system | CodeSystem.identifier |
|
| jurisdiction | token | Intended jurisdiction for the code system | CodeSystem.jurisdiction | 26 Resources |
| language | token | A language in which a designation is provided | CodeSystem.concept.designation.language | |
| name | string | Computationally friendly name of the code system | CodeSystem.name |
|
| predecessor TU | reference | The predecessor of the CodeSystem |
CodeSystem.relatedArtifact.where(type='predecessor').resource
(Any) |
10 Resources |
| publisher | string | Name of the publisher of the code system | CodeSystem.publisher | 30 Resources |
| status | 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 | uri | The system for any codes defined by this code system (same as 'url') | CodeSystem.url | |
| title | string | The human-friendly name of the code system | CodeSystem.title | 27 Resources |
| topic TU | token | Topics associated with the CodeSystem | CodeSystem.topic | 10 Resources |
| url | uri | The uri that identifies the code system | CodeSystem.url |
|
| version | token | The business version of the code system | CodeSystem.version | 30 Resources |