Vocabulary
![]() |
Maturity
Level
:
| Trial Use | Security Category : Anonymous | Compartments : Not linked to any defined compartments |
A
statement
of
relationships
from
one
set
of
concepts
to
one
or
more
other
concepts
-
either
concepts
in
code
systems
systems,
or
data
elements,
element/data
element
concepts,
or
classes
in
class
models.
A
concept
map
defines
a
mapping
from
a
set
of
concepts
defined
in
a
code
system
(commonly
referred
to
as
the
"system")
to
one
or
more
concepts
defined
in
other
code
systems.
In
the
mapping
context,
a
system
can
be
a
typical
code
system
based
on
a
recognized
standard
or
local
terminology
(in
any
of
its
forms),
or
in
some
cases
it
may
be
an
"implicit"
code
system
that
is
not
based
on
a
recognized
terminology
but
still
represents
a
set
of
"concepts"
that
can
be
usefully
mapped.
Mappings
are
one
way
-
from
the
source
to
the
destination.
target
system.
In
many
cases,
the
reverse
mappings
are
valid,
but
this
cannot
be
assumed
to
be
the
case.
Mappings
between
code
systems
system
concepts
are
only
intended
to
be
defined
in
the
context
of
a
particular
business
usage.
The
business
use
case
is
normally
defined
by
the
specification
of
the
specified
source
and
destination
target
value
sets
-
they
are
specific
to
a
particular
context
of
use.
sets.
The
mappings
may
be
useful
in
other
contexts,
but
this
must
be
determined
based
on
the
context
of
use
and
meaning;
it
cannot
be
taken
for
granted
automatically.
An
example
where
the
usage
context
is
important
for
choosing
the
correct
mapping
is
mapping
from
a
clinical
terminology
(e.g.
SNOMED
CT)
to
a
classification
(e.g.
ICD-10)
for
either
data
analysis
or
billing.
Mappings
in
the
data
analysis
context
would
be
targeted
for
an
appropriate
classification
(often
at
a
higher
level),
whereas
in
the
billing
context
there
may
be
specific
requirements
to
be
met
(e.g.
leaf
level
codes
only)
that
could
result
in
multiple
mappings
for
a
single
source
concept
and
then
require
additional
information
beyond
the
source
concept
itself
in
order
to
select
the
correct
final
mapping.
Note
that
all
code
systems
(explicit
or
implicit)
represented
in
FHIR
have
URI
identifiers
for
value
sets
(also
either
explicit
or
implicit)
that
include
the
entire
code
system,
and
these
"all
codes"
value
sets
can
be
used
for
mappings
that
are
valid
in
all
contexts.
use
contexts
that
are
appropriate
for
the
code
system.
Each
mapping
for
a
concept
from
the
source
to
target
system
includes
an
equivalence
a
relationship
property
that
specifies
how
similar
the
mapping
is
(or,
in
some
cases,
that
there
is
no
valid
mapping).
There
is
one
element
for
each
concept
or
field
in
the
source
value
set
or
system
that
needs
to
be
mapped.
Each
source
concept
may
have
multiple
targets:
There
SHOULD
be
at
least
one
target
for
each
element,
but
some
incomplete
concept
maps
may
might
not
have
a
target
for
each
concept.
A key concept for the ConceptMap resource is the $translate operation . This operation is a formal definition of an API by which a terminology server can allow clients to ask for a translation to be done based on the content in the ConceptMap resource. As such it also provides useful perspective on the operational use of ConceptMap resources in any context.
While
ConceptMap
resources
are
not
referred
to
directly
from
any
other
resource,
they
may
be
included
and
used
in
ImplementationGuide
resources,
and
provide
background
knowledge
that
is
useful
in
many
contexts,
including
operations
defined
in
this
specification.
In
addition
to
ConceptMap
,
there
is
also
the
StructureMap
resource.
The
ConceptMap
resource
defines
relationships
between
concepts
in
their
own
right,
along
with
grading
of
their
equivalencies,
while
the
StructureMap
defines
an
exectuable
executable
transform
for
instances
that
conform
to
a
known
structure.
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
Further
discussion
of
the
issues
involved
in
mapping
between
concept
definition
systems
can
be
found
in
the
HL7
v3
Core
Principles
document
and
the
functionality
described
in
the
OMG
CTS
2
specification.
This resource is referenced by itself.
This resource does not implement any patterns.
Structure
Name | Flags | Card. | Type |
Description
&
Constraints
![]() |
---|---|---|---|---|
![]() ![]() | TU |
|
A
map
from
one
set
of
concepts
to
one
or
more
other
concepts
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension , url , identifier , version , name , title , status , experimental , date , publisher , contact , description , useContext , jurisdiction , purpose , copyright | |
![]() ![]() ![]() | Σ | 0..1 |
uri
|
Canonical
identifier
for
this
concept
|
![]() ![]() ![]() | Σ | 0..1 | Identifier | Additional identifier for the concept map |
![]() ![]() ![]() | Σ | 0..1 | string | Business version of the concept map |
![]() ![]() ![]() | Σ I | 0..1 | string | Name for this concept map (computer friendly) |
![]() ![]() ![]() | Σ | 0..1 | string | Name for this concept map (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 concept map | |
![]() ![]() ![]() | Σ | 0..* | UsageContext |
|
![]() ![]() ![]() | Σ | 0..* | CodeableConcept |
Intended
jurisdiction
for
concept
map
(if
applicable)
Jurisdiction |
![]() ![]() ![]() | 0..1 | markdown | Why this concept map is defined | |
![]() ![]() ![]() | 0..1 | markdown | Use and/or publishing restrictions | |
![]() ![]() ![]() | Σ | 0..1 |
| |
![]() ![]() ![]() ![]() | uri | |||
![]() ![]() ![]() ![]() |
| |||
![]() ![]() ![]() | Σ | 0..1 |
|
The
target
value
set
which
provides
context
|
![]() ![]() ![]() ![]() | uri | |||
![]() ![]() ![]() ![]() |
| |||
![]() ![]() ![]() | 0..* | BackboneElement |
Same
source
and
target
systems
| |
![]() ![]() ![]() ![]() | 0..1 |
uri
| Source system where concepts to be mapped are defined | |
![]() ![]() ![]() ![]() | 0..1 | string | Specific version of the code system | |
![]() ![]() ![]() ![]() | 0..1 |
uri
|
Target
system
that
the
| |
![]() ![]() ![]() ![]() | 0..1 | string | Specific version of the code system | |
![]() ![]() ![]() ![]() | I | 1..* | BackboneElement |
Mappings
for
a
concept
from
the
source
set
+ Rule: If noMap is present, target SHALL NOT be present |
![]() ![]() ![]() ![]() ![]() | 0..1 | code | Identifies element being mapped | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Display for the code | |
![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | No mapping to a target concept for this source concept | |
![]() ![]() ![]() ![]() ![]() | I | 0..* | BackboneElement |
Concept
in
target
system
for
element
+ Rule: If the map is |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Code that identifies the target element | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Display for the code | |
![]() ![]() ![]() ![]() ![]() ![]() | ?! |
| code |
|
![]() ![]() ![]() ![]() ![]() ![]() | I | 0..1 | string | Description of status/issues in mapping |
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Other
elements
required
for
this
mapping
(from
context)
| |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | uri | Reference to property mapping depends on | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 |
| Code System (if necessary) | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | string | Value of the referenced element | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Display for the code (if value is a code) | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | see dependsOn |
Other
concepts
that
this
mapping
also
produces
| |
![]() ![]() ![]() ![]() | I | 0..1 | BackboneElement |
+ Rule: If the mode is + Rule: If the mode is |
![]() ![]() ![]() ![]() ![]() | 1..1 | code |
provided
|
fixed
|
other-map
ConceptMapGroupUnmappedMode ( Required ) | |
![]() ![]() ![]() ![]() ![]() | 0..1 | code | Fixed code when mode = fixed | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Display for the code | |
![]() ![]() ![]() ![]() ![]() | 0..1 |
|
| |
![]() |
UML Diagram ( Legend )
XML Template
<ConceptMap xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language -->
<!-- from --> <<url value="[uri]"/><!-- 0..1 Canonical identifier for this concept map, represented as a URI (globally unique) --> <identifier><!-- 0..1 Identifier Additional identifier for the concept map --></identifier> <version value="[string]"/><!-- 0..1 Business version of the concept map --><<name value="[string]"/><!--0..1 Name for this concept map (computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this concept map (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> <description value="[markdown]"/><!-- 0..1 Natural language description of the concept map --><</useContext><useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for concept map (if applicable) --></jurisdiction><<purpose value="[markdown]"/><!-- 0..1 Why this concept map is defined --> <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions --><</source[x]> <</target[x]><source[x]><!-- 0..1 uri|canonical(ValueSet) The source value set that contains the concepts that are being mapped --></source[x]> <target[x]><!-- 0..1 uri|canonical(ValueSet) The target value set which provides context for the mappings --></target[x]> <group> <!-- 0..* Same source and target systems --><<source value="[uri]"/><!-- 0..1 Source system where concepts to be mapped are defined --> <sourceVersion value="[string]"/><!-- 0..1 Specific version of the code system --><<target value="[uri]"/><!-- 0..1 Target system that the concepts are to be mapped to --> <targetVersion value="[string]"/><!-- 0..1 Specific version of the code system --> <element> <!-- 1..* Mappings for a concept from the source set --> <code value="[code]"/><!-- 0..1 Identifies element being mapped --> <display value="[string]"/><!-- 0..1 Display for the code --> <noMap value="[boolean]"/><!-- 0..1 No mapping to a target concept for this source concept --> <target> <!-- 0..* Concept in target system for element --> <code value="[code]"/><!-- 0..1 Code that identifies the target element --> <display value="[string]"/><!-- 0..1 Display for the code -->< <<relationship value="[code]"/><!-- 1..1 related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to --> <comment value="[string]"/><!--0..1 Description of status/issues in mapping --> <dependsOn> <!-- 0..* Other elements required for this mapping (from context) -->
< < < <<property value="[uri]"/><!-- 1..1 Reference to property mapping depends on --> <system><!-- 0..1 canonical(CodeSystem) Code System (if necessary) --></system> <value value="[string]"/><!-- 1..1 Value of the referenced element --> <display value="[string]"/><!-- 0..1 Display for the code (if value is a code) --> </dependsOn><</product><product><!-- 0..* Content as for ConceptMap.group.element.target.dependsOn Other concepts that this mapping also produces --></product> </target> </element>< <<unmapped> <!-- 0..1 What to do when there is no mapping target for the source concept --> <mode value="[code]"/><!-- 1..1 provided | fixed | other-map --> <code value="[code]"/><!-- 0..1 Fixed code when mode = fixed --> <display value="[string]"/><!-- 0..1 Display for the code --><<url><!-- 0..1 canonical(ConceptMap) canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped --></url> </unmapped> </group> </ConceptMap>
JSON Template
{![]()
"resourceType" : "","resourceType" : "ConceptMap", // from Resource: id, meta, implicitRules, and language// from ""url" : "<uri>", // Canonical identifier for this concept map, represented as a URI (globally unique) "identifier" : { Identifier }, // Additional identifier for the concept map "version" : "<string>", // Business version of the concept map""name" : "<string>", // C? Name for this concept map (computer friendly) "title" : "<string>", // Name for this concept map (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 concept map""useContext" : [{ UsageContext }], // The context that the content is intended to support "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for concept map (if applicable)""purpose" : "<markdown>", // Why this concept map is defined "copyright" : "<markdown>", // Use and/or publishing restrictions">", " }, ">", " },// source[x]: The source value set that contains the concepts that are being mapped. One of these 2: "sourceUri" : "<uri>", "sourceCanonical" : { canonical(ValueSet) }, // target[x]: The target value set which provides context for the mappings. One of these 2: "targetUri" : "<uri>", "targetCanonical" : { canonical(ValueSet) }, "group" : [{ // Same source and target systems""source" : "<uri>", // Source system where concepts to be mapped are defined "sourceVersion" : "<string>", // Specific version of the code system""target" : "<uri>", // Target system that the concepts are to be mapped to "targetVersion" : "<string>", // Specific version of the code system "element" : [{ // R! Mappings for a concept from the source set "code" : "<code>", // Identifies element being mapped "display" : "<string>", // Display for the code "noMap" : <boolean>, // No mapping to a target concept for this source concept "target" : [{ // Concept in target system for element "code" : "<code>", // Code that identifies the target element "display" : "<string>", // Display for the code" ""relationship" : "<code>", // R! related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to "comment" : "<string>", // C? Description of status/issues in mapping "dependsOn" : [{ // Other elements required for this mapping (from context)" " " ""property" : "<uri>", // R! Reference to property mapping depends on "system" : { canonical(CodeSystem) }, // Code System (if necessary) "value" : "<string>", // R! Value of the referenced element "display" : "<string>" // Display for the code (if value is a code) }],""product" : [{ Content as for ConceptMap.group.element.target.dependsOn }] // Other concepts that this mapping also produces }] }]," ""unmapped" : { // What to do when there is no mapping target for the source concept "mode" : "<code>", // R! provided | fixed | other-map "code" : "<code>", // Fixed code when mode = fixed "display" : "<string>", // Display for the code""url" : { canonical(ConceptMap) } // canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped } }] }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .![]()
[ a fhir:;[ a fhir:ConceptMap; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language# from fhir:fhir:ConceptMap.url [ uri ]; # 0..1 Canonical identifier for this concept map, represented as a URI (globally unique) fhir:ConceptMap.identifier [ Identifier ]; # 0..1 Additional identifier for the concept map fhir:ConceptMap.version [ string ]; # 0..1 Business version of the concept map fhir:ConceptMap.name [ string ]; # 0..1 Name for this concept map (computer friendly) fhir:ConceptMap.title [ string ]; # 0..1 Name for this concept map (human friendly) fhir:ConceptMap.status [ code ]; # 1..1 draft | active | retired | unknownfhir: fhir: fhir:fhir:ConceptMap.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:ConceptMap.date [ dateTime ]; # 0..1 Date last changed fhir:ConceptMap.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:ConceptMap.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:ConceptMap.description [ markdown ]; # 0..1 Natural language description of the concept mapfhir:fhir:ConceptMap.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:ConceptMap.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for concept map (if applicable)fhir:fhir:ConceptMap.purpose [ markdown ]; # 0..1 Why this concept map is defined fhir:ConceptMap.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions# . One of these 2 fhir: ] fhir:) ] # . One of these 2 fhir: ] fhir:) ]# ConceptMap.source[x] : 0..1 The source value set that contains the concepts that are being mapped. One of these 2 fhir:ConceptMap.sourceUri [ uri ] fhir:ConceptMap.sourceCanonical [ canonical(ValueSet) ] # ConceptMap.target[x] : 0..1 The target value set which provides context for the mappings. One of these 2 fhir:ConceptMap.targetUri [ uri ] fhir:ConceptMap.targetCanonical [ canonical(ValueSet) ] fhir:ConceptMap.group [ # 0..* Same source and target systemsfhir:fhir:ConceptMap.group.source [ uri ]; # 0..1 Source system where concepts to be mapped are defined fhir:ConceptMap.group.sourceVersion [ string ]; # 0..1 Specific version of the code systemfhir:fhir:ConceptMap.group.target [ uri ]; # 0..1 Target system that the concepts are to be mapped to fhir:ConceptMap.group.targetVersion [ string ]; # 0..1 Specific version of the code system fhir:ConceptMap.group.element [ # 1..* Mappings for a concept from the source set fhir:ConceptMap.group.element.code [ code ]; # 0..1 Identifies element being mapped fhir:ConceptMap.group.element.display [ string ]; # 0..1 Display for the code fhir:ConceptMap.group.element.noMap [ boolean ]; # 0..1 No mapping to a target concept for this source concept fhir:ConceptMap.group.element.target [ # 0..* Concept in target system for element fhir:ConceptMap.group.element.target.code [ code ]; # 0..1 Code that identifies the target element fhir:ConceptMap.group.element.target.display [ string ]; # 0..1 Display for the codefhir:fhir:ConceptMap.group.element.target.relationship [ code ]; # 1..1 related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to fhir:ConceptMap.group.element.target.comment [ string ]; # 0..1 Description of status/issues in mapping fhir:ConceptMap.group.element.target.dependsOn [ # 0..* Other elements required for this mapping (from context)fhir: fhir: fhir: fhir:fhir:ConceptMap.group.element.target.dependsOn.property [ uri ]; # 1..1 Reference to property mapping depends on fhir:ConceptMap.group.element.target.dependsOn.system [ canonical(CodeSystem) ]; # 0..1 Code System (if necessary) fhir:ConceptMap.group.element.target.dependsOn.value [ string ]; # 1..1 Value of the referenced element fhir:ConceptMap.group.element.target.dependsOn.display [ string ]; # 0..1 Display for the code (if value is a code) ], ...;fhir:fhir:ConceptMap.group.element.target.product [ See ConceptMap.group.element.target.dependsOn ], ... ; # 0..* Other concepts that this mapping also produces ], ...; ], ...;fhir: fhir:fhir:ConceptMap.group.unmapped [ # 0..1 What to do when there is no mapping target for the source concept fhir:ConceptMap.group.unmapped.mode [ code ]; # 1..1 provided | fixed | other-map fhir:ConceptMap.group.unmapped.code [ code ]; # 0..1 Fixed code when mode = fixed fhir:ConceptMap.group.unmapped.display [ string ]; # 0..1 Display for the codefhir:fhir:ConceptMap.group.unmapped.url [ canonical(ConceptMap) ]; # 0..1 canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped ]; ], ...; ]
Changes
since
DSTU2
R3
ConceptMap |
|
ConceptMap.status |
|
|
|
|
|
|
|
|
|
See the Full Difference for further information
This analysis is available as XML or JSON .
See
R2
<-->
R3
<-->
R4
Conversion
Maps
(status
=
2
4
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
1
4
r3
resources
are
invalid
(1
(0
errors).
).
)
Structure
Name | Flags | Card. | Type |
Description
&
Constraints
![]() |
---|---|---|---|---|
![]() ![]() | TU |
|
A
map
from
one
set
of
concepts
to
one
or
more
other
concepts
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension , url , identifier , version , name , title , status , experimental , date , publisher , contact , description , useContext , jurisdiction , purpose , copyright | |
![]() ![]() ![]() | Σ | 0..1 |
uri
|
Canonical
identifier
for
this
concept
|
![]() ![]() ![]() | Σ | 0..1 | Identifier | Additional identifier for the concept map |
![]() ![]() ![]() | Σ | 0..1 | string | Business version of the concept map |
![]() ![]() ![]() | Σ I | 0..1 | string | Name for this concept map (computer friendly) |
![]() ![]() ![]() | Σ | 0..1 | string | Name for this concept map (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 concept map | |
![]() ![]() ![]() | Σ | 0..* | UsageContext |
|
![]() ![]() ![]() | Σ | 0..* | CodeableConcept |
Intended
jurisdiction
for
concept
map
(if
applicable)
Jurisdiction |
![]() ![]() ![]() | 0..1 | markdown | Why this concept map is defined | |
![]() ![]() ![]() | 0..1 | markdown | Use and/or publishing restrictions | |
![]() ![]() ![]() | Σ | 0..1 |
| |
![]() ![]() ![]() ![]() | uri | |||
![]() ![]() ![]() ![]() |
| |||
![]() ![]() ![]() | Σ | 0..1 |
|
The
target
value
set
which
provides
context
|
![]() ![]() ![]() ![]() | uri | |||
![]() ![]() ![]() ![]() |
| |||
![]() ![]() ![]() | 0..* | BackboneElement |
Same
source
and
target
systems
| |
![]() ![]() ![]() ![]() | 0..1 |
uri
| Source system where concepts to be mapped are defined | |
![]() ![]() ![]() ![]() | 0..1 | string | Specific version of the code system | |
![]() ![]() ![]() ![]() | 0..1 |
uri
|
Target
system
that
the
| |
![]() ![]() ![]() ![]() | 0..1 | string | Specific version of the code system | |
![]() ![]() ![]() ![]() | I | 1..* | BackboneElement |
Mappings
for
a
concept
from
the
source
set
+ Rule: If noMap is present, target SHALL NOT be present |
![]() ![]() ![]() ![]() ![]() | 0..1 | code | Identifies element being mapped | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Display for the code | |
![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | No mapping to a target concept for this source concept | |
![]() ![]() ![]() ![]() ![]() | I | 0..* | BackboneElement |
Concept
in
target
system
for
element
+ Rule: If the map is |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Code that identifies the target element | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Display for the code | |
![]() ![]() ![]() ![]() ![]() ![]() | ?! |
| code |
|
![]() ![]() ![]() ![]() ![]() ![]() | I | 0..1 | string | Description of status/issues in mapping |
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Other
elements
required
for
this
mapping
(from
context)
| |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | uri | Reference to property mapping depends on | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 |
| Code System (if necessary) | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | string | Value of the referenced element | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Display for the code (if value is a code) | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | see dependsOn |
Other
concepts
that
this
mapping
also
produces
| |
![]() ![]() ![]() ![]() | I | 0..1 | BackboneElement |
+ Rule: If the mode is + Rule: If the mode is |
![]() ![]() ![]() ![]() ![]() | 1..1 | code |
provided
|
fixed
|
other-map
ConceptMapGroupUnmappedMode ( Required ) | |
![]() ![]() ![]() ![]() ![]() | 0..1 | code | Fixed code when mode = fixed | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Display for the code | |
![]() ![]() ![]() ![]() ![]() | 0..1 |
|
| |
![]() |
XML Template
<ConceptMap xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language -->
<!-- from --> <<url value="[uri]"/><!-- 0..1 Canonical identifier for this concept map, represented as a URI (globally unique) --> <identifier><!-- 0..1 Identifier Additional identifier for the concept map --></identifier> <version value="[string]"/><!-- 0..1 Business version of the concept map --><<name value="[string]"/><!--0..1 Name for this concept map (computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this concept map (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> <description value="[markdown]"/><!-- 0..1 Natural language description of the concept map --><</useContext><useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for concept map (if applicable) --></jurisdiction><<purpose value="[markdown]"/><!-- 0..1 Why this concept map is defined --> <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions --><</source[x]> <</target[x]><source[x]><!-- 0..1 uri|canonical(ValueSet) The source value set that contains the concepts that are being mapped --></source[x]> <target[x]><!-- 0..1 uri|canonical(ValueSet) The target value set which provides context for the mappings --></target[x]> <group> <!-- 0..* Same source and target systems --><<source value="[uri]"/><!-- 0..1 Source system where concepts to be mapped are defined --> <sourceVersion value="[string]"/><!-- 0..1 Specific version of the code system --><<target value="[uri]"/><!-- 0..1 Target system that the concepts are to be mapped to --> <targetVersion value="[string]"/><!-- 0..1 Specific version of the code system --> <element> <!-- 1..* Mappings for a concept from the source set --> <code value="[code]"/><!-- 0..1 Identifies element being mapped --> <display value="[string]"/><!-- 0..1 Display for the code --> <noMap value="[boolean]"/><!-- 0..1 No mapping to a target concept for this source concept --> <target> <!-- 0..* Concept in target system for element --> <code value="[code]"/><!-- 0..1 Code that identifies the target element --> <display value="[string]"/><!-- 0..1 Display for the code -->< <<relationship value="[code]"/><!-- 1..1 related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to --> <comment value="[string]"/><!--0..1 Description of status/issues in mapping --> <dependsOn> <!-- 0..* Other elements required for this mapping (from context) -->
< < < <<property value="[uri]"/><!-- 1..1 Reference to property mapping depends on --> <system><!-- 0..1 canonical(CodeSystem) Code System (if necessary) --></system> <value value="[string]"/><!-- 1..1 Value of the referenced element --> <display value="[string]"/><!-- 0..1 Display for the code (if value is a code) --> </dependsOn><</product><product><!-- 0..* Content as for ConceptMap.group.element.target.dependsOn Other concepts that this mapping also produces --></product> </target> </element>< <<unmapped> <!-- 0..1 What to do when there is no mapping target for the source concept --> <mode value="[code]"/><!-- 1..1 provided | fixed | other-map --> <code value="[code]"/><!-- 0..1 Fixed code when mode = fixed --> <display value="[string]"/><!-- 0..1 Display for the code --><<url><!-- 0..1 canonical(ConceptMap) canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped --></url> </unmapped> </group> </ConceptMap>
JSON Template
{![]()
"resourceType" : "","resourceType" : "ConceptMap", // from Resource: id, meta, implicitRules, and language// from ""url" : "<uri>", // Canonical identifier for this concept map, represented as a URI (globally unique) "identifier" : { Identifier }, // Additional identifier for the concept map "version" : "<string>", // Business version of the concept map""name" : "<string>", // C? Name for this concept map (computer friendly) "title" : "<string>", // Name for this concept map (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 concept map""useContext" : [{ UsageContext }], // The context that the content is intended to support "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for concept map (if applicable)""purpose" : "<markdown>", // Why this concept map is defined "copyright" : "<markdown>", // Use and/or publishing restrictions">", " }, ">", " },// source[x]: The source value set that contains the concepts that are being mapped. One of these 2: "sourceUri" : "<uri>", "sourceCanonical" : { canonical(ValueSet) }, // target[x]: The target value set which provides context for the mappings. One of these 2: "targetUri" : "<uri>", "targetCanonical" : { canonical(ValueSet) }, "group" : [{ // Same source and target systems""source" : "<uri>", // Source system where concepts to be mapped are defined "sourceVersion" : "<string>", // Specific version of the code system""target" : "<uri>", // Target system that the concepts are to be mapped to "targetVersion" : "<string>", // Specific version of the code system "element" : [{ // R! Mappings for a concept from the source set "code" : "<code>", // Identifies element being mapped "display" : "<string>", // Display for the code "noMap" : <boolean>, // No mapping to a target concept for this source concept "target" : [{ // Concept in target system for element "code" : "<code>", // Code that identifies the target element "display" : "<string>", // Display for the code" ""relationship" : "<code>", // R! related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to "comment" : "<string>", // C? Description of status/issues in mapping "dependsOn" : [{ // Other elements required for this mapping (from context)" " " ""property" : "<uri>", // R! Reference to property mapping depends on "system" : { canonical(CodeSystem) }, // Code System (if necessary) "value" : "<string>", // R! Value of the referenced element "display" : "<string>" // Display for the code (if value is a code) }],""product" : [{ Content as for ConceptMap.group.element.target.dependsOn }] // Other concepts that this mapping also produces }] }]," ""unmapped" : { // What to do when there is no mapping target for the source concept "mode" : "<code>", // R! provided | fixed | other-map "code" : "<code>", // Fixed code when mode = fixed "display" : "<string>", // Display for the code""url" : { canonical(ConceptMap) } // canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped } }] }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .![]()
[ a fhir:;[ a fhir:ConceptMap; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language# from fhir:fhir:ConceptMap.url [ uri ]; # 0..1 Canonical identifier for this concept map, represented as a URI (globally unique) fhir:ConceptMap.identifier [ Identifier ]; # 0..1 Additional identifier for the concept map fhir:ConceptMap.version [ string ]; # 0..1 Business version of the concept map fhir:ConceptMap.name [ string ]; # 0..1 Name for this concept map (computer friendly) fhir:ConceptMap.title [ string ]; # 0..1 Name for this concept map (human friendly) fhir:ConceptMap.status [ code ]; # 1..1 draft | active | retired | unknownfhir: fhir: fhir:fhir:ConceptMap.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:ConceptMap.date [ dateTime ]; # 0..1 Date last changed fhir:ConceptMap.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:ConceptMap.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:ConceptMap.description [ markdown ]; # 0..1 Natural language description of the concept mapfhir:fhir:ConceptMap.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:ConceptMap.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for concept map (if applicable)fhir:fhir:ConceptMap.purpose [ markdown ]; # 0..1 Why this concept map is defined fhir:ConceptMap.copyright [ markdown ]; # 0..1 Use and/or publishing restrictions# . One of these 2 fhir: ] fhir:) ] # . One of these 2 fhir: ] fhir:) ]# ConceptMap.source[x] : 0..1 The source value set that contains the concepts that are being mapped. One of these 2 fhir:ConceptMap.sourceUri [ uri ] fhir:ConceptMap.sourceCanonical [ canonical(ValueSet) ] # ConceptMap.target[x] : 0..1 The target value set which provides context for the mappings. One of these 2 fhir:ConceptMap.targetUri [ uri ] fhir:ConceptMap.targetCanonical [ canonical(ValueSet) ] fhir:ConceptMap.group [ # 0..* Same source and target systemsfhir:fhir:ConceptMap.group.source [ uri ]; # 0..1 Source system where concepts to be mapped are defined fhir:ConceptMap.group.sourceVersion [ string ]; # 0..1 Specific version of the code systemfhir:fhir:ConceptMap.group.target [ uri ]; # 0..1 Target system that the concepts are to be mapped to fhir:ConceptMap.group.targetVersion [ string ]; # 0..1 Specific version of the code system fhir:ConceptMap.group.element [ # 1..* Mappings for a concept from the source set fhir:ConceptMap.group.element.code [ code ]; # 0..1 Identifies element being mapped fhir:ConceptMap.group.element.display [ string ]; # 0..1 Display for the code fhir:ConceptMap.group.element.noMap [ boolean ]; # 0..1 No mapping to a target concept for this source concept fhir:ConceptMap.group.element.target [ # 0..* Concept in target system for element fhir:ConceptMap.group.element.target.code [ code ]; # 0..1 Code that identifies the target element fhir:ConceptMap.group.element.target.display [ string ]; # 0..1 Display for the codefhir:fhir:ConceptMap.group.element.target.relationship [ code ]; # 1..1 related-to | equivalent | source-is-narrower-than-target | source-is-broader-than-target | not-related-to fhir:ConceptMap.group.element.target.comment [ string ]; # 0..1 Description of status/issues in mapping fhir:ConceptMap.group.element.target.dependsOn [ # 0..* Other elements required for this mapping (from context)fhir: fhir: fhir: fhir:fhir:ConceptMap.group.element.target.dependsOn.property [ uri ]; # 1..1 Reference to property mapping depends on fhir:ConceptMap.group.element.target.dependsOn.system [ canonical(CodeSystem) ]; # 0..1 Code System (if necessary) fhir:ConceptMap.group.element.target.dependsOn.value [ string ]; # 1..1 Value of the referenced element fhir:ConceptMap.group.element.target.dependsOn.display [ string ]; # 0..1 Display for the code (if value is a code) ], ...;fhir:fhir:ConceptMap.group.element.target.product [ See ConceptMap.group.element.target.dependsOn ], ... ; # 0..* Other concepts that this mapping also produces ], ...; ], ...;fhir: fhir:fhir:ConceptMap.group.unmapped [ # 0..1 What to do when there is no mapping target for the source concept fhir:ConceptMap.group.unmapped.mode [ code ]; # 1..1 provided | fixed | other-map fhir:ConceptMap.group.unmapped.code [ code ]; # 0..1 Fixed code when mode = fixed fhir:ConceptMap.group.unmapped.display [ string ]; # 0..1 Display for the codefhir:fhir:ConceptMap.group.unmapped.url [ canonical(ConceptMap) ]; # 0..1 canonical reference to an additional ConceptMap to use for mapping if the source concept is unmapped ]; ], ...; ]
Changes
since
DSTU2
Release
3
ConceptMap |
|
ConceptMap.status |
|
|
|
|
|
|
|
|
|
See the Full Difference for further information
This analysis is available as XML or JSON .
See
R2
<-->
R3
<-->
R4
Conversion
Maps
(status
=
2
4
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
1
4
r3
resources
are
invalid
(1
(0
errors).
).
)
Alternate
See
the
Profiles
&
Extensions
and
the
alternate
definitions:
Master
Definition
(
XML
,
+
JSON
),
,
XML
Schema
/
Schematron
(for
)
+
JSON
Schema
,
ShEx
(for
Turtle
)
,
the
spreadsheet
version
&
the
dependency
analysis
a
Path | Definition | Type | Reference |
---|---|---|---|
ConceptMap.status |
The
lifecycle
status
of
| Required | PublicationStatus |
ConceptMap.jurisdiction |
Countries
and
regions
within
which
this
artifact
is
targeted
for
| Extensible | Jurisdiction ValueSet |
ConceptMap.group.element.target.relationship |
The
| Required |
|
ConceptMap.group.unmapped.mode | Defines which action to take if there is no match in the group. | Required | ConceptMapGroupUnmappedMode |
id | 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.matches('[A-Z]([A-Za-z0-9_]){0,254}') |
cmd-1
| Rule | ConceptMap.group.element.target |
If
the
map
is
|
|
cmd-2
| Rule | ConceptMap.group.unmapped |
If
the
mode
is
'fixed',
a
code
must
be
provided
|
|
cmd-3
| Rule | ConceptMap.group.unmapped |
If
the
mode
is
'other-map',
a
|
|
cmd-4 | Rule | ConceptMap.group.element | If noMap is present, target SHALL NOT be present | (noMap.exists() and target.empty()) or noMap.empty() |
system
,
version
and
code
elements
are
the
same
as
used
by
the
Coding
data
type
element
for
each
source
concept.
element
can
have
multiple
targets,
multiple
occurrences
of
element
with
the
same
element.code
simply
aggregate
their
target
element
The
concept
mappings
in
element
are
arranged
into
groups
that
share
common
source/target
systems.
These
groups
have
no
semantic
signficance;
significance;
they
exist
to
make
the
representation
more
concise.
Concept
maps
may
contain
more
than
one
group
with
the
same
source
and
target
-
this
would
be
a
less
concise
representation
but
may
be
useful
in
order
to
maintain
a
fixed
order
for
the
concepts
that
are
mapped.
Concepts
that
are
labeled
as
'unmatched'
are
considered
to
be
unmatched
in
the
target
value
set,
irrespective
of
whether
they
are
contained
in
a
group
with
a
stated
target
system
or
not.
Groups
that
contain
no
target
system
may
only
contained
'unmatched'
concepts.
There
is
no
difference
in
the
meaning
of
an
unmatched
target
whether
or
not
there
is
a
stated
target
system.
In the simple case, a mapping is made from one code to another. E.g. from "home address" in one code system to "address - home" in another. But in other cases, the mapping is not a simple one to one mapping. A typical example might be mapping between a radiology imaging request that has 2 elements: modality, and body site, and another radiology imaging request that pre-coordinates both of these into a single code modality+body site. In this case, it is not possible to map from one code to another. Instead, the mapping might contain entries like this:
Source Concept | DependsOn.property | DependsOn Concept | Target Concept |
X-Ray | Bodysite | Chest | Chest-XRay |
When
attempting
to
translate
the
source
to
the
target,
an
application
must
also
provide
a
value
for
the
element
identified
in
dependsOn.property
so
that
the
correct
mapping
can
be
performed.
To
support
the
reverse
operation,
product
is
the
converse,
and
works
in
reverse.
To see a real example of a mapping with dependencies, check the Specimen Type Mapping .
If
there
is
no
explicit
mapping
for
a
code
-
that
is,
the
engine
processing
the
ConceptMap
finds
a
group
with
a
matching
source
system,
but
not
matching
element
for
the
code
it
is
translating,
processing
proceeds
to
the
unmapped
element
that
specifies
what
should
happen.
The unmapped element can specify one of the following different actions to take if there is no mapping for a concept:
provided | Use the code source as provided in the $translate request. This is especially useful for translations between versions of the same code system, where only a few codes have changed |
fixed |
Use
the
code
(and
display)
explicitly
provided
in
the
group.unmapped
.
This
is
useful
when
there's
a
fall
back
general
code
-
especially
for
classifications
|
other-map |
Use
the
map
identified
by
the
canonical
URL
in
url
.
This
is
useful
when
a
published
concept
map
needs
to
be
varied
for
a
few
specific
cases
on
an
institutional
bass
-
the
institution
can
create
a
simple
concept
that
expresses
their
special
cases,
and
then
refer
to
the
general
purpose
mappings
|
Note that this element is not used when there is an element with a matching code value, and a relationship value of not-related-to .
The ConceptMap resource is intended to map between concepts defined in a code system. It can also be useful to use the ConceptMap resource to define relationships between concepts defined in other kinds of resources. Here are some common kind of conceptual maps:
Though
these
resources
are
not
explicitly
defining
code
systems,
they
do
define
'concept's
that
can
still
usefully
be
treated
as
code
systems
for
the
sake
of
subsetting
(e.g.
ValueSet
)
and
defining
relationships
(e.g.
ConceptMap
).
See
Implicit
Code
Systems
for
further
information.
Note that this is different from StructureMap because that is intended to define an executional transform between structures, not a conceptual model.
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 |
context | token | A use context assigned to the concept map | (ConceptMap.useContext.value as CodeableConcept) | |
context-quantity | quantity | A quantity- or range-valued use context assigned to the concept map | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | |
context-type | token | A type of use context assigned to the concept map | ConceptMap.useContext.code | |
context-type-quantity | composite | A use context type and quantity- or range-based value assigned to the concept map |
On
ConceptMap.useContext:
context-type: code context-quantity: value.as(Quantity) | value.as(Range) | |
context-type-value | composite | A use context type and value assigned to the concept map |
On
ConceptMap.useContext:
context-type: code context: value.as(CodeableConcept) | |
date N | date | The concept map publication date | ConceptMap.date | |
dependson N | uri | Reference to property mapping depends on | ConceptMap.group.element.target.dependsOn.property | |
description N | string | The description of the concept map | ConceptMap.description | |
identifier | token | External identifier for the concept map | ConceptMap.identifier | |
jurisdiction | token | Intended jurisdiction for the concept map | ConceptMap.jurisdiction | |
name N | string | Computationally friendly name of the concept map | ConceptMap.name | |
other N |
|
|
ConceptMap.group.unmapped.url
( ConceptMap ) | |
product N | uri | Reference to property mapping depends on | ConceptMap.group.element.target.product.property | |
publisher N | string | Name of the publisher of the concept map | ConceptMap.publisher | |
source | reference |
|
( ValueSet ) | |
source-code N | token | Identifies element being mapped | ConceptMap.group.element.code | |
source-system N | uri |
| ConceptMap.group.source | |
source-uri | reference |
|
( ValueSet ) | |
status N | token | The current status of the concept map | ConceptMap.status | |
target | reference |
|
( ValueSet ) | |
target-code N | token | Code that identifies the target element | ConceptMap.group.element.target.code | |
target-system N | uri |
| ConceptMap.group.target | |
target-uri | reference |
|
( ValueSet ) | |
title N | string | The human-friendly name of the concept map | ConceptMap.title | |
url N | uri | The uri that identifies the concept map | ConceptMap.url | |
version N | token | The business version of the concept map | ConceptMap.version |