This
page
is
part
of
the
FHIR
Specification
(v4.0.1:
R4
(v5.0.0-draft-final:
Final
QA
Preview
for
R5
-
Mixed
Normative
and
STU
see
ballot
notes
)
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
R3
Raw
JSON
R4
:
R5
Conversion
maps
for
MedicationStatement.
Functional
status
for
this
map:
7
tests
that
all
execute
ok.
3
fail
round-trip
testing
and
7
r3
resources
are
invalid
(0
errors).
(
canonical
form
+
also
see
JSON
Format
Specification
documentation)
)
caseSensitive
{
"resourceType" : "StructureDefinition",
"id" : "valueset-caseSensitive",
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode" : "vocab"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
"valueInteger" : 1
}],
"url" : "http://hl7.org/fhir/StructureDefinition/valueset-caseSensitive",
"version" : "4.0.1",
"name" : "caseSensitive",
"status" : "draft",
"date" : "2019-11-01T09:29:23+11:00",
"publisher" : "HL7",
"description" : "If this a case sensitive code.",
"fhirVersion" : "4.0.1",
"mapping" : [{
"identity" : "rim",
"uri" : "http://hl7.org/v3",
"name" : "RIM Mapping"
}],
"kind" : "complex-type",
"abstract" : false,
"context" : [{
"type" : "element",
"expression" : "ValueSet.expansion.contains"
}],
"type" : "Extension",
"baseDefinition" : "http://hl7.org/fhir/StructureDefinition/Extension",
"derivation" : "constraint",
"snapshot" : {
"element" : [{
"id" : "Extension",
"path" : "Extension",
"short" : "If code is case sensitive",
"definition" : "If this a case sensitive code.",
"comment" : "See comments on ValueSet.codeSystem.caseSensitive. Systems should generally assume case sensitivity when dealing with expansions, and only consider case sensitivity when matching existing codes.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Extension",
"min" : 0,
"max" : "*"
},
"condition" : ["ele-1"],
"constraint" : [{
"key" : "ele-1",
"severity" : "error",
"human" : "All FHIR elements must have a @value or children",
"expression" : "hasValue() or (children().count() > id.count())",
"xpath" : "@value|f:*|h:div",
"source" : "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key" : "ext-1",
"severity" : "error",
"human" : "Must have either extensions or value[x], not both",
"expression" : "extension.exists() != value.exists()",
"xpath" : "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source" : "http://hl7.org/fhir/StructureDefinition/Extension"
}],
"isModifier" : false
},
{
"id" : "Extension.id",
"path" : "Extension.id",
"representation" : ["xmlAttr"],
"short" : "Unique id for inter-element referencing",
"definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min" : 0,
"max" : "1",
"base" : {
"path" : "Element.id",
"min" : 0,
"max" : "1"
},
"type" : [{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl" : "string"
}],
"code" : "http://hl7.org/fhirpath/System.String"
}],
"isModifier" : false,
"isSummary" : false,
"mapping" : [{
"identity" : "rim",
"map" : "n/a"
}]
},
{
"id" : "Extension.extension",
"path" : "Extension.extension",
"slicing" : {
"discriminator" : [{
"type" : "value",
"path" : "url"
}],
"description" : "Extensions are always sliced by (at least) url",
"rules" : "open"
},
"short" : "Extension",
"definition" : "An Extension",
"min" : 0,
"max" : "0",
"base" : {
"path" : "Element.extension",
"min" : 0,
"max" : "*"
},
"type" : [{
"code" : "Extension"
}],
"constraint" : [{
"key" : "ele-1",
"severity" : "error",
"human" : "All FHIR elements must have a @value or children",
"expression" : "hasValue() or (children().count() > id.count())",
"xpath" : "@value|f:*|h:div",
"source" : "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key" : "ext-1",
"severity" : "error",
"human" : "Must have either extensions or value[x], not both",
"expression" : "extension.exists() != value.exists()",
"xpath" : "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
"source" : "http://hl7.org/fhir/StructureDefinition/Extension"
}],
"isModifier" : false,
"isSummary" : false
},
{
"id" : "Extension.url",
"path" : "Extension.url",
"representation" : ["xmlAttr"],
"short" : "identifies the meaning of the extension",
"definition" : "Source of the definition for the extension code - a logical name or a URL.",
"comment" : "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.",
"min" : 1,
"max" : "1",
"base" : {
"path" : "Extension.url",
"min" : 1,
"max" : "1"
},
"type" : [{
"extension" : [{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl" : "uri"
}],
"code" : "http://hl7.org/fhirpath/System.String"
}],
"fixedUri" : "http://hl7.org/fhir/StructureDefinition/valueset-caseSensitive",
"isModifier" : false,
"isSummary" : false,
"mapping" : [{
"identity" : "rim",
"map" : "N/A"
}]
},
{
"id" : "Extension.value[x]",
"path" : "Extension.value[x]",
"short" : "Value of extension",
"definition" : "Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/extensibility.html) for a list).",
"min" : 1,
"max" : "1",
"base" : {
"path" : "Extension.value[x]",
"min" : 0,
"max" : "1"
},
"type" : [{
"code" : "boolean"
}],
"constraint" : [{
"key" : "ele-1",
"severity" : "error",
"human" : "All FHIR elements must have a @value or children",
"expression" : "hasValue() or (children().count() > id.count())",
"xpath" : "@value|f:*|h:div",
"source" : "http://hl7.org/fhir/StructureDefinition/Element"
}],
"isModifier" : false,
"isSummary" : false,
"mapping" : [{
"identity" : "rim",
"map" : "N/A"
}]
}]
},
"differential" : {
"element" : [{
"id" : "Extension",
"path" : "Extension",
"short" : "If code is case sensitive",
"definition" : "If this a case sensitive code.",
"comment" : "See comments on ValueSet.codeSystem.caseSensitive. Systems should generally assume case sensitivity when dealing with expansions, and only consider case sensitivity when matching existing codes.",
"min" : 0,
"max" : "1",
"isModifier" : false
},
{
"id" : "Extension.extension",
"path" : "Extension.extension",
"max" : "0"
},
{
"id" : "Extension.url",
"path" : "Extension.url",
"fixedUri" : "http://hl7.org/fhir/StructureDefinition/valueset-caseSensitive"
},
{
"id" : "Extension.value[x]",
"path" : "Extension.value[x]",
"min" : 1,
"type" : [{
"code" : "boolean"
}]
}]
}
11.4.10.1
R4
to
R5
map "http://hl7.org/fhir/StructureMap/MedicationStatement3to4" = "R3 to R4 Conversions for MedicationStatement"
uses "http://hl7.org/fhir/3.0/StructureDefinition/MedicationStatement" alias MedicationStatementR3 as source
uses "http://hl7.org/fhir/StructureDefinition/MedicationStatement" alias MedicationStatement as target
imports "http://hl7.org/fhir/StructureMap/*3to4"
group MedicationStatement(source src : MedicationStatementR3, target tgt : MedicationStatement) extends DomainResource <<type+>> {
src.identifier -> tgt.identifier;
src.basedOn -> tgt.basedOn;
src.partOf -> tgt.partOf;
src.context -> tgt.context;
src.status as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationStatement.status', vt.value = v;
src.taken as v -> tgt.extension as vt, vt.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationStatement.taken', vt.value = v;
src.status where (src.taken in ('n' | 'unk')).not() -> tgt.status;
src.taken where value = 'n' -> tgt.status = 'not-taken';
src.taken where value = 'unk' -> tgt.status = 'unknown';
src.category -> tgt.category;
src.medication : CodeableConcept as vs -> tgt.medication = create('CodeableConcept') as vt then CodeableConcept(vs, vt);
src.medication : Reference as vs -> tgt.medication = create('Reference') as vt then Reference(vs, vt);
src.effective : dateTime as vs -> tgt.effective = create('dateTime') as vt then dateTime(vs, vt);
src.effective : Period as vs -> tgt.effective = create('Period') as vt then Period(vs, vt);
src.dateAsserted -> tgt.dateAsserted;
src.informationSource -> tgt.informationSource;
src.subject -> tgt.subject;
src.derivedFrom -> tgt.derivedFrom;
src.reasonNotTaken -> tgt.reasonCode;
src.reasonCode -> tgt.reasonCode;
src.reasonReference -> tgt.reasonReference;
src.note -> tgt.note;
src.dosage -> tgt.dosage;
}
Usage
note:
every
effort
has
been
made
11.4.10.2
R5
to
ensure
that
the
examples
are
correct
and
useful,
but
they
R4
map "http://hl7.org/fhir/StructureMap/MedicationStatement4to3" = "R4 to R3 Conversion for MedicationStatement"
uses "http://hl7.org/fhir/StructureDefinition/MedicationStatement" alias MedicationStatement as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/MedicationStatement" alias MedicationStatementR3 as target
imports "http://hl7.org/fhir/StructureMap/*4to3"
group MedicationStatement(source src : MedicationStatement, target tgt : MedicationStatementR3) extends DomainResource <<type+>> {
src.identifier -> tgt.identifier;
src.basedOn -> tgt.basedOn;
src.partOf -> tgt.partOf;
src.context -> tgt.context;
src where src.extension.where(url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationStatement.status').exists() then statusR3(src, tgt) "status1";
src where src.extension.where(url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationStatement.status').empty() then statusNR3(src, tgt) "status2";
src.category -> tgt.category;
src.medication : CodeableConcept as vs -> tgt.medication = create('CodeableConcept') as vt then CodeableConcept(vs, vt);
src.medication : Reference as vs -> tgt.medication = create('Reference') as vt then Reference(vs, vt);
src.effective : dateTime as vs -> tgt.effective = create('dateTime') as vt then dateTime(vs, vt);
src.effective : Period as vs -> tgt.effective = create('Period') as vt then Period(vs, vt);
src.dateAsserted -> tgt.dateAsserted;
src.informationSource -> tgt.informationSource;
src.subject -> tgt.subject;
src.derivedFrom -> tgt.derivedFrom;
src.reasonCode where src.status = 'not-taken' -> tgt.reasonNotTaken;
src.reasonCode where src.status != 'not-taken' -> tgt.reasonCode;
src.reasonReference -> tgt.reasonReference;
src.note -> tgt.note;
src.dosage -> tgt.dosage;
}
group statusR3(source src, target tgt) {
src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationStatement.taken' then {
e.value -> tgt.taken;
};
src.extension as e where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-MedicationStatement.status' then {
e.value -> tgt.status;
};
}
group statusNR3(source src, target tgt) {
src.status where (value in ('not-taken' | 'unknown')).not() -> tgt.status;
src.status where value = 'not-taken' -> tgt.status = 'completed', tgt.taken = 'n';
src.status where value = 'unknown' -> tgt.status = 'completed', tgt.taken = 'unk';
}
11.4.10.3
R4
Validation
Errors
<p>No
validation
errors
-
all
conversions
are
not
a
normative
part
of
the
specification.
clean</p>