| Package | ch.fhir.ig.cda-fhir-maps |
| Resource Type | StructureMap |
| Id | CdaToFhirTypes |
| FHIR Version | R4 |
| Source | http://fhir.ch/ig/cda-fhir-maps/http://fhir.ch/ig/cda-fhir-maps/StructureMap-CdaToFhirTypes.html |
| URL | http://fhir.ch/ig/cda-fhir-maps/StructureMap/CdaToFhirTypes |
| Version | 0.3.0 |
| Status | draft |
| Date | 2022-02-11T11:14:39+01:00 |
| Name | CdaToFhirTypes |
| Realm | ch |
| Authority | hl7 |
| Description | Adapted from https://github.com/HL7/ccda-to-fhir/tree/master/mappings CDA: http://build.fhir.org/ig/ahdis/cda-core-2.0/branches/master/index.html FHIR: http://hl7.org/fhir/r4/ |
| Copyright | CC-BY-SA-4.0 |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
map "http://fhir.ch/ig/cda-fhir-maps/StructureMap/CdaToFhirTypes" = "CdaToFhirTypes"
// Adapted from https://github.com/HL7/ccda-to-fhir/tree/master/mappings
// CDA: http://build.fhir.org/ig/ahdis/cda-core-2.0/branches/master/index.html
// FHIR: http://hl7.org/fhir/r4/
conceptmap "addressUse" {
prefix s = "http://terminology.hl7.org/ValueSet/v3-AddressUse"
prefix t = "http://hl7.org/fhir/valueset-address-use.html"
s:H == t:home
s:HP == t:home
s:HV == t:home
s:WP == t:work
s:DIR == t:work
s:PUB == t:work
s:TMP == t:temp
s:OLD == t:old
s:BAD == t:old
}
uses "http://hl7.org/fhir/cda/StructureDefinition/ED" alias ED as source
uses "http://hl7.org/fhir/cda/StructureDefinition/II" as source
uses "http://hl7.org/fhir/StructureDefinition/Identifier" as target
uses "http://hl7.org/fhir/cda/StructureDefinition/TS" as source
uses "http://hl7.org/fhir/StructureDefinition/instant" as target
uses "http://hl7.org/fhir/cda/StructureDefinition/CS" as source
uses "http://hl7.org/fhir/StructureDefinition/code" as target
uses "http://hl7.org/fhir/cda/StructureDefinition/CE" as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" as target
uses "http://hl7.org/fhir/cda/StructureDefinition/ST" as source
uses "http://hl7.org/fhir/StructureDefinition/string" as target
uses "http://hl7.org/fhir/cda/StructureDefinition/EN" as source
uses "http://hl7.org/fhir/StructureDefinition/HumanName" as target
uses "http://hl7.org/fhir/cda/StructureDefinition/AD" as source
uses "http://hl7.org/fhir/StructureDefinition/Address" as target
uses "http://hl7.org/fhir/cda/StructureDefinition/TEL" as source
uses "http://hl7.org/fhir/StructureDefinition/ContactPoint" as target
uses "http://hl7.org/fhir/cda/StructureDefinition/BL" as source
uses "http://hl7.org/fhir/StructureDefinition/boolean" as target
uses "http://hl7.org/fhir/cda/StructureDefinition/IVL_TS" as source
uses "http://hl7.org/fhir/StructureDefinition/Period" as target
group Any(source src, target tgt) {
}
group II(source src : II, target tgt : Identifier) extends Any <<types>> {
src.root as r where src.extension.exists() -> tgt.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
src.root as r where src.extension.empty() and src.root.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') -> tgt.system = 'urn:ietf:rfc:3986', tgt.value = ('urn:uuid:' + r.lower()) "rootuuid";
src.root as r where src.extension.empty() and src.root.contains('.') -> tgt.system = 'urn:ietf:rfc:3986', tgt.value = append('urn:oid:', r) "rootoid";
src.extension as e -> tgt.value = e;
src.assigningAuthorityName as s -> tgt.assigner as a, a.display = s;
// there's no equivalent for displayable in FHIR - and it probably will never matter, but if it does, it might map to Identifier.use.
src.displayable as displayable -> tgt.extension as ext then {
displayable -> ext.url = 'http://hl7.org/fhir/cdaStructureDefinition/extension-displayable' "url";
displayable.value as v -> ext.value = cast(v, 'string');
} "extension";
}
group INT(source src : INT, target tgt : integer) extends Any <<types>> {
src.value as v -> tgt.value = v "integer";
}
group TemplateID(source template : II, target tgt) {
template -> tgt.extension as ext then {
template -> ext.url = 'http://hl7.org/fhir/cda/StructureDefinition/templateID' "url";
template -> ext.value = create('Identifier') as value then II(template, value) "value";
} "templateId";
}
group Negation(source negation : BL, target tgt) {
negation -> tgt.modifierExtension as ext then {
negation -> ext.url = 'http://hl7.org/fhir/cda/StructureDefinition/negationIndicator' "url";
negation as neg -> ext.value = create('boolean'), ext.value = neg "value";
} "negation";
}
group TSInstant(source src : TS, target tgt : instant) extends Any <<types>> {
src.value as v -> tgt.value = cast(v, 'string');
}
group TSDateTime(source src : TS, target tgt : dateTime) extends TSInstant <<types>> {
}
group TSDate(source src : TS, target tgt : date) extends TSInstant <<types>> {
}
group IVLTSPeriod(source src : IVL_TS, target tgt : Period) extends Any <<types>> {
src.low -> tgt.start;
src.high -> tgt.end;
}
group IVLTSDateTime(source src : IVL_TS, target tgt : dateTime) extends Any <<types>> {
src.low as s then TSDateTime(s, tgt);
}
group STstring(source src : ST, target tgt : string) extends Any <<types>> {
src as v -> tgt.value = cast(v, 'string') "value";
}
group EDstring(source src : ED, target tgt : string) extends STstring <<types>> {
}
group ONstring(source src : ON, target tgt : string) extends STstring <<types>> {
}
group CSCode(source src : CS, target tgt : code) extends Any <<types>> {
src.code as c -> tgt.value = cast(c, 'string');
}
group CECode(source src : CE, target tgt : code) extends CSCode <<types>> {
}
group CDCode(source src : CD, target tgt : code) extends CSCode <<types>> {
}
group CECodeableConcept(source src : CE, target tgt : CodeableConcept) extends Any <<types>> {
src.originalText -> tgt.text;
src -> tgt.coding as coding then {
src.code as code -> coding.code = cast(code, 'string');
src.codeSystem as system -> coding.system = translate(system, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri');
src.displayName as display -> coding.display = cast(display, 'string');
} "code";
src.translation as translation -> tgt.coding as coding then {
translation.code as code -> coding.code = cast(code, 'string');
translation.codeSystem as system -> coding.system = translate(system, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri');
translation.displayName as display -> coding.display = cast(display, 'string');
};
}
group CSCodeableConcept(source src : CS, target tgt : CodeableConcept) extends CECodeableConcept <<types>> {
}
group CDCodeableConcept(source src : CD, target tgt : CodeableConcept) extends CECodeableConcept <<types>> {
}
group ENHumanName(source src : EN, target tgt : HumanName) extends Any <<types>> {
src.family as v -> tgt.family = (v.dataString);
src.given as v -> tgt.given = (v.dataString);
src.prefix as v -> tgt.prefix = (v.dataString);
src.suffix as v -> tgt.suffix = (v.dataString);
// src.use as c -> tgt.use = translate(c, 'http://hl7.org/fhir/ConceptMap/cm-name-use-v3', 'code');
src.validTime -> tgt.period;
}
group ADAddress(source src : AD, target tgt : Address) extends Any <<types>> {
src.country as v -> tgt.country = (v.dataString);
src.state as v -> tgt.state = (v.dataString);
src.county as v -> tgt.district = (v.dataString);
src.city as v -> tgt.city = (v.dataString);
src.postalCode as v -> tgt.postalCode = (v.dataString);
src.streetAddressLine as v -> tgt.line = (v.dataString) "streetAddress";
src.streetName as v -> tgt.line = (v.dataString);
src.houseNumber as v -> tgt.line = (v.dataString);
src.use as c -> tgt.use = translate(c, '#addressUse', 'code') "addressUse";
src.useablePeriod -> tgt.period;
}
group TELContactPoint(source src : TEL, target tgt : ContactPoint) extends Any <<types>> {
src.value as v where (src.value.startsWith('tel:')) -> tgt.value = (v.substring(4)), tgt.system = 'phone' "valuetel";
src.value as v where (src.value.startsWith('fax:')) -> tgt.value = (v.substring(4)), tgt.system = 'fax' "valuefax";
src.value as v where (src.value.startsWith('mailto:')) -> tgt.value = (v.substring(7)), tgt.system = 'email' "valuemail";
src.value as v where (src.value.startsWith('http:')) -> tgt.value = (v.substring(5)), tgt.system = 'url' "valuehttp";
src.use where (src.use.startsWith('H')) -> tgt.use = 'home' "usehome";
src.use where ((src.use = 'WP') or (src.use = 'DIR') or (src.use = 'PUB')) -> tgt.use = 'work' "usework";
src.use where (src.use = 'BAD') -> tgt.use = 'old' "usebad";
src.use where (src.use = 'TMP') -> tgt.use = 'temp' "usetmp";
src.use where (src.use = 'MC') -> tgt.use = 'mobile' "usemobile";
src.useablePeriod -> tgt.period;
}
group PQQuantity(source src : PQ, target tgt : Quantity) extends Any <<types>> {
// src.unit as unit -> tgt.code = unit;
src.unit as unit -> tgt.unit = unit;
src.value as value -> tgt.value = value;
}
group RTOPQPQRatio(source src : RTO_PQ_PQ, target tgt : Ratio) extends Any <<types>> {
src.numerator as numerator -> tgt.numerator as targetNumerator then PQQuantity(numerator, targetNumerator);
src.denominator as denominator -> tgt.denominator as targetDenominator then PQQuantity(denominator, targetDenominator);
}
{
"resourceType": "StructureMap",
"id": "CdaToFhirTypes",
"text": {
"status": "generated",
"div": "<!-- snip (see above) -->"
},
"contained": [
{
"resourceType": "ConceptMap",
"id": "addressUse",
"status": "draft",
"group": [
{
"source": "http://terminology.hl7.org/ValueSet/v3-AddressUse",
"target": "http://hl7.org/fhir/valueset-address-use.html",
"element": [
{
"code": "H",
"target": [
{
"code": "home",
"equivalence": "equivalent",
"comment": "home address -> home"
}
]
},
{
"code": "HP",
"target": [
{
"code": "home",
"equivalence": "equivalent",
"comment": "primary home -> home, http://hl7.org/fhir/v3/AddressUse/cs.html"
}
]
},
{
"code": "HV",
"target": [
{
"code": "home",
"equivalence": "equivalent",
"comment": "vacation home -> home, http://hl7.org/fhir/v3/AddressUse/cs.html"
}
]
},
{
"code": "WP",
"target": [
{
"code": "work",
"equivalence": "equivalent",
"comment": "work place -> work"
}
]
},
{
"code": "DIR",
"target": [
{
"code": "work",
"equivalence": "equivalent",
"comment": "direct -> work, http://hl7.org/fhir/v3/AddressUse/cs.html"
}
]
},
{
"code": "PUB",
"target": [
{
"code": "work",
"equivalence": "equivalent",
"comment": "public -> work, http://hl7.org/fhir/v3/AddressUse/cs.html"
}
]
},
{
"code": "TMP",
"target": [
{
"code": "temp",
"equivalence": "equivalent",
"comment": "temporary address -> Temporary"
}
]
},
{
"code": "OLD",
"target": [
{
"code": "old",
"equivalence": "equivalent",
"comment": "no longer in use -> Old / Incorrect"
}
]
},
{
"code": "BAD",
"target": [
{
"code": "old",
"equivalence": "equivalent",
"comment": "bad address -> Old / Incorrect"
}
]
}
]
}
]
}
],
"extension": [
{
"url": "http://fhir.ch/reference",
"valueReference": {
"reference": "#addressUse"
}
}
],
"url": "http://fhir.ch/ig/cda-fhir-maps/StructureMap/CdaToFhirTypes",
"version": "0.3.0",
"name": "CdaToFhirTypes",
"status": "draft",
"date": "2022-02-11T11:14:39+01:00",
"publisher": "ahdis",
"contact": [
{
"name": "ahdis",
"telecom": [
{
"system": "url",
"value": "http://www.ahdis.ch/"
}
]
}
],
"description": "Adapted from https://github.com/HL7/ccda-to-fhir/tree/master/mappings CDA: http://build.fhir.org/ig/ahdis/cda-core-2.0/branches/master/index.html FHIR: http://hl7.org/fhir/r4/",
"copyright": "CC-BY-SA-4.0",
"structure": [
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/ED",
"mode": "source",
"alias": "ED"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/II",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Identifier",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/TS",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/instant",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/CS",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/code",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/CE",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/CodeableConcept",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/ST",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/string",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/EN",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/HumanName",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/AD",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Address",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/TEL",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/ContactPoint",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/BL",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/boolean",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/IVL_TS",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Period",
"mode": "target"
}
],
"group": [
{
"name": "Any",
"typeMode": "none",
"input": [
{
"name": "src",
"mode": "source"
},
{
"name": "tgt",
"mode": "target"
}
]
},
{
"name": "II",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "II",
"mode": "source"
},
{
"name": "tgt",
"type": "Identifier",
"mode": "target"
}
],
"rule": [
{
"name": "root1",
"source": [
{
"context": "src",
"element": "root",
"variable": "r",
"condition": "src.extension.exists()"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "system",
"transform": "translate",
"parameter": [
{
"valueId": "r"
},
{
"valueString": "http://hl7.org/fhir/ConceptMap/special-oid2uri"
},
{
"valueString": "uri"
}
]
}
]
},
{
"name": "rootuuid",
"source": [
{
"context": "src",
"element": "root",
"variable": "r",
"condition": "src.extension.empty() and src.root.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "urn:ietf:rfc:3986"
}
]
},
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "'urn:uuid:' + r.lower()"
}
]
}
]
},
{
"name": "rootoid",
"source": [
{
"context": "src",
"element": "root",
"variable": "r",
"condition": "src.extension.empty() and src.root.contains('.')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "urn:ietf:rfc:3986"
}
]
},
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "append",
"parameter": [
{
"valueString": "urn:oid:"
},
{
"valueId": "r"
}
]
}
]
},
{
"name": "extension",
"source": [
{
"context": "src",
"element": "extension",
"variable": "e"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "e"
}
]
}
]
},
{
"name": "assigningAuthorityName",
"source": [
{
"context": "src",
"element": "assigningAuthorityName",
"variable": "s"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "assigner",
"variable": "a"
},
{
"context": "a",
"contextType": "variable",
"element": "display",
"transform": "copy",
"parameter": [
{
"valueId": "s"
}
]
}
]
},
{
"name": "extension",
"source": [
{
"context": "src",
"element": "displayable",
"variable": "displayable"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "extension",
"variable": "ext"
}
],
"rule": [
{
"name": "url",
"source": [
{
"context": "displayable"
}
],
"target": [
{
"context": "ext",
"contextType": "variable",
"element": "url",
"transform": "copy",
"parameter": [
{
"valueString": "http://hl7.org/fhir/cdaStructureDefinition/extension-displayable"
}
]
}
]
},
{
"name": "value",
"source": [
{
"context": "displayable",
"element": "value",
"variable": "v"
}
],
"target": [
{
"context": "ext",
"contextType": "variable",
"element": "value",
"transform": "cast",
"parameter": [
{
"valueId": "v"
},
{
"valueString": "string"
}
]
}
]
}
],
"documentation": "there's no equivalent for displayable in FHIR - and it probably will never matter, but if it does, it might map to Identifier.use."
}
]
},
{
"name": "INT",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "INT",
"mode": "source"
},
{
"name": "tgt",
"type": "integer",
"mode": "target"
}
],
"rule": [
{
"name": "integer",
"source": [
{
"context": "src",
"element": "value",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "v"
}
]
}
]
}
]
},
{
"name": "TemplateID",
"typeMode": "none",
"input": [
{
"name": "template",
"type": "II",
"mode": "source"
},
{
"name": "tgt",
"mode": "target"
}
],
"rule": [
{
"name": "templateId",
"source": [
{
"context": "template"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "extension",
"variable": "ext"
}
],
"rule": [
{
"name": "url",
"source": [
{
"context": "template"
}
],
"target": [
{
"context": "ext",
"contextType": "variable",
"element": "url",
"transform": "copy",
"parameter": [
{
"valueString": "http://hl7.org/fhir/cda/StructureDefinition/templateID"
}
]
}
]
},
{
"name": "value",
"source": [
{
"context": "template"
}
],
"target": [
{
"context": "ext",
"contextType": "variable",
"element": "value",
"variable": "value",
"transform": "create",
"parameter": [
{
"valueString": "Identifier"
}
]
}
],
"dependent": [
{
"name": "II",
"variable": [
"template",
"value"
]
}
]
}
]
}
]
},
{
"name": "Negation",
"typeMode": "none",
"input": [
{
"name": "negation",
"type": "BL",
"mode": "source"
},
{
"name": "tgt",
"mode": "target"
}
],
"rule": [
{
"name": "negation",
"source": [
{
"context": "negation"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "modifierExtension",
"variable": "ext"
}
],
"rule": [
{
"name": "url",
"source": [
{
"context": "negation"
}
],
"target": [
{
"context": "ext",
"contextType": "variable",
"element": "url",
"transform": "copy",
"parameter": [
{
"valueString": "http://hl7.org/fhir/cda/StructureDefinition/negationIndicator"
}
]
}
]
},
{
"name": "value",
"source": [
{
"context": "negation",
"variable": "neg"
}
],
"target": [
{
"context": "ext",
"contextType": "variable",
"element": "value",
"transform": "create",
"parameter": [
{
"valueString": "boolean"
}
]
},
{
"context": "ext",
"contextType": "variable",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "neg"
}
]
}
]
}
]
}
]
},
{
"name": "TSInstant",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "TS",
"mode": "source"
},
{
"name": "tgt",
"type": "instant",
"mode": "target"
}
],
"rule": [
{
"name": "value",
"source": [
{
"context": "src",
"element": "value",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "cast",
"parameter": [
{
"valueId": "v"
},
{
"valueString": "string"
}
]
}
]
}
]
},
{
"name": "TSDateTime",
"extends": "TSInstant",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "TS",
"mode": "source"
},
{
"name": "tgt",
"type": "dateTime",
"mode": "target"
}
]
},
{
"name": "TSDate",
"extends": "TSInstant",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "TS",
"mode": "source"
},
{
"name": "tgt",
"type": "date",
"mode": "target"
}
]
},
{
"name": "IVLTSPeriod",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "IVL_TS",
"mode": "source"
},
{
"name": "tgt",
"type": "Period",
"mode": "target"
}
],
"rule": [
{
"name": "low",
"source": [
{
"context": "src",
"element": "low",
"variable": "vvv"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "start",
"variable": "vvv",
"transform": "create"
}
]
},
{
"name": "high",
"source": [
{
"context": "src",
"element": "high",
"variable": "vvv"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "end",
"variable": "vvv",
"transform": "create"
}
]
}
]
},
{
"name": "IVLTSDateTime",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "IVL_TS",
"mode": "source"
},
{
"name": "tgt",
"type": "dateTime",
"mode": "target"
}
],
"rule": [
{
"name": "low",
"source": [
{
"context": "src",
"element": "low",
"variable": "s"
}
],
"dependent": [
{
"name": "TSDateTime",
"variable": [
"s",
"tgt"
]
}
]
}
]
},
{
"name": "STstring",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "ST",
"mode": "source"
},
{
"name": "tgt",
"type": "string",
"mode": "target"
}
],
"rule": [
{
"name": "value",
"source": [
{
"context": "src",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "cast",
"parameter": [
{
"valueId": "v"
},
{
"valueString": "string"
}
]
}
]
}
]
},
{
"name": "EDstring",
"extends": "STstring",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "ED",
"mode": "source"
},
{
"name": "tgt",
"type": "string",
"mode": "target"
}
]
},
{
"name": "ONstring",
"extends": "STstring",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "ON",
"mode": "source"
},
{
"name": "tgt",
"type": "string",
"mode": "target"
}
]
},
{
"name": "CSCode",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "CS",
"mode": "source"
},
{
"name": "tgt",
"type": "code",
"mode": "target"
}
],
"rule": [
{
"name": "code",
"source": [
{
"context": "src",
"element": "code",
"variable": "c"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "cast",
"parameter": [
{
"valueId": "c"
},
{
"valueString": "string"
}
]
}
]
}
]
},
{
"name": "CECode",
"extends": "CSCode",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "CE",
"mode": "source"
},
{
"name": "tgt",
"type": "code",
"mode": "target"
}
]
},
{
"name": "CDCode",
"extends": "CSCode",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "CD",
"mode": "source"
},
{
"name": "tgt",
"type": "code",
"mode": "target"
}
]
},
{
"name": "CECodeableConcept",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "CE",
"mode": "source"
},
{
"name": "tgt",
"type": "CodeableConcept",
"mode": "target"
}
],
"rule": [
{
"name": "originalText",
"source": [
{
"context": "src",
"element": "originalText",
"variable": "vvv"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "text",
"variable": "vvv",
"transform": "create"
}
]
},
{
"name": "code",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "coding",
"variable": "coding"
}
],
"rule": [
{
"name": "code",
"source": [
{
"context": "src",
"element": "code",
"variable": "code"
}
],
"target": [
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "cast",
"parameter": [
{
"valueId": "code"
},
{
"valueString": "string"
}
]
}
]
},
{
"name": "codeSystem",
"source": [
{
"context": "src",
"element": "codeSystem",
"variable": "system"
}
],
"target": [
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "translate",
"parameter": [
{
"valueId": "system"
},
{
"valueString": "http://hl7.org/fhir/ConceptMap/special-oid2uri"
},
{
"valueString": "uri"
}
]
}
]
},
{
"name": "displayName",
"source": [
{
"context": "src",
"element": "displayName",
"variable": "display"
}
],
"target": [
{
"context": "coding",
"contextType": "variable",
"element": "display",
"transform": "cast",
"parameter": [
{
"valueId": "display"
},
{
"valueString": "string"
}
]
}
]
}
]
},
{
"name": "translation",
"source": [
{
"context": "src",
"element": "translation",
"variable": "translation"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "coding",
"variable": "coding"
}
],
"rule": [
{
"name": "code",
"source": [
{
"context": "translation",
"element": "code",
"variable": "code"
}
],
"target": [
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "cast",
"parameter": [
{
"valueId": "code"
},
{
"valueString": "string"
}
]
}
]
},
{
"name": "codeSystem",
"source": [
{
"context": "translation",
"element": "codeSystem",
"variable": "system"
}
],
"target": [
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "translate",
"parameter": [
{
"valueId": "system"
},
{
"valueString": "http://hl7.org/fhir/ConceptMap/special-oid2uri"
},
{
"valueString": "uri"
}
]
}
]
},
{
"name": "displayName",
"source": [
{
"context": "translation",
"element": "displayName",
"variable": "display"
}
],
"target": [
{
"context": "coding",
"contextType": "variable",
"element": "display",
"transform": "cast",
"parameter": [
{
"valueId": "display"
},
{
"valueString": "string"
}
]
}
]
}
]
}
]
},
{
"name": "CSCodeableConcept",
"extends": "CECodeableConcept",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "CS",
"mode": "source"
},
{
"name": "tgt",
"type": "CodeableConcept",
"mode": "target"
}
]
},
{
"name": "CDCodeableConcept",
"extends": "CECodeableConcept",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "CD",
"mode": "source"
},
{
"name": "tgt",
"type": "CodeableConcept",
"mode": "target"
}
]
},
{
"name": "ENHumanName",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "EN",
"mode": "source"
},
{
"name": "tgt",
"type": "HumanName",
"mode": "target"
}
],
"rule": [
{
"name": "family",
"source": [
{
"context": "src",
"element": "family",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "family",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "given",
"source": [
{
"context": "src",
"element": "given",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "given",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "prefix",
"source": [
{
"context": "src",
"element": "prefix",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "prefix",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "suffix",
"source": [
{
"context": "src",
"element": "suffix",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "suffix",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "validTime",
"source": [
{
"context": "src",
"element": "validTime",
"variable": "vvv"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "period",
"variable": "vvv",
"transform": "create"
}
],
"documentation": "src.use as c -> tgt.use = translate(c, 'http://hl7.org/fhir/ConceptMap/cm-name-use-v3', 'code');"
}
]
},
{
"name": "ADAddress",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "AD",
"mode": "source"
},
{
"name": "tgt",
"type": "Address",
"mode": "target"
}
],
"rule": [
{
"name": "country",
"source": [
{
"context": "src",
"element": "country",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "country",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "state",
"source": [
{
"context": "src",
"element": "state",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "state",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "county",
"source": [
{
"context": "src",
"element": "county",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "district",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "city",
"source": [
{
"context": "src",
"element": "city",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "city",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "postalCode",
"source": [
{
"context": "src",
"element": "postalCode",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "postalCode",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "streetAddress",
"source": [
{
"context": "src",
"element": "streetAddressLine",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "line",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "streetName",
"source": [
{
"context": "src",
"element": "streetName",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "line",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "houseNumber",
"source": [
{
"context": "src",
"element": "houseNumber",
"variable": "v"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "line",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.dataString"
}
]
}
]
},
{
"name": "addressUse",
"source": [
{
"context": "src",
"element": "use",
"variable": "c"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "use",
"transform": "translate",
"parameter": [
{
"valueId": "c"
},
{
"valueString": "#addressUse"
},
{
"valueString": "code"
}
]
}
]
},
{
"name": "useablePeriod",
"source": [
{
"context": "src",
"element": "useablePeriod",
"variable": "vvv"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "period",
"variable": "vvv",
"transform": "create"
}
]
}
]
},
{
"name": "TELContactPoint",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "TEL",
"mode": "source"
},
{
"name": "tgt",
"type": "ContactPoint",
"mode": "target"
}
],
"rule": [
{
"name": "valuetel",
"source": [
{
"context": "src",
"element": "value",
"variable": "v",
"condition": "(src.value.startsWith('tel:'))"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.substring(4)"
}
]
},
{
"context": "tgt",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "phone"
}
]
}
]
},
{
"name": "valuefax",
"source": [
{
"context": "src",
"element": "value",
"variable": "v",
"condition": "(src.value.startsWith('fax:'))"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.substring(4)"
}
]
},
{
"context": "tgt",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "fax"
}
]
}
]
},
{
"name": "valuemail",
"source": [
{
"context": "src",
"element": "value",
"variable": "v",
"condition": "(src.value.startsWith('mailto:'))"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.substring(7)"
}
]
},
{
"context": "tgt",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "email"
}
]
}
]
},
{
"name": "valuehttp",
"source": [
{
"context": "src",
"element": "value",
"variable": "v",
"condition": "(src.value.startsWith('http:'))"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "v.substring(5)"
}
]
},
{
"context": "tgt",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "url"
}
]
}
]
},
{
"name": "usehome",
"source": [
{
"context": "src",
"element": "use",
"condition": "(src.use.startsWith('H'))"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "use",
"transform": "copy",
"parameter": [
{
"valueString": "home"
}
]
}
]
},
{
"name": "usework",
"source": [
{
"context": "src",
"element": "use",
"condition": "((src.use = 'WP') or (src.use = 'DIR') or (src.use = 'PUB'))"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "use",
"transform": "copy",
"parameter": [
{
"valueString": "work"
}
]
}
]
},
{
"name": "usebad",
"source": [
{
"context": "src",
"element": "use",
"condition": "(src.use = 'BAD')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "use",
"transform": "copy",
"parameter": [
{
"valueString": "old"
}
]
}
]
},
{
"name": "usetmp",
"source": [
{
"context": "src",
"element": "use",
"condition": "(src.use = 'TMP')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "use",
"transform": "copy",
"parameter": [
{
"valueString": "temp"
}
]
}
]
},
{
"name": "usemobile",
"source": [
{
"context": "src",
"element": "use",
"condition": "(src.use = 'MC')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "use",
"transform": "copy",
"parameter": [
{
"valueString": "mobile"
}
]
}
]
},
{
"name": "useablePeriod",
"source": [
{
"context": "src",
"element": "useablePeriod",
"variable": "vvv"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "period",
"variable": "vvv",
"transform": "create"
}
]
}
]
},
{
"name": "PQQuantity",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "PQ",
"mode": "source"
},
{
"name": "tgt",
"type": "Quantity",
"mode": "target"
}
],
"rule": [
{
"name": "unit",
"source": [
{
"context": "src",
"element": "unit",
"variable": "unit"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "unit",
"transform": "copy",
"parameter": [
{
"valueId": "unit"
}
]
}
],
"documentation": "src.unit as unit -> tgt.code = unit;"
},
{
"name": "value",
"source": [
{
"context": "src",
"element": "value",
"variable": "value"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "value"
}
]
}
]
}
]
},
{
"name": "RTOPQPQRatio",
"extends": "Any",
"typeMode": "types",
"input": [
{
"name": "src",
"type": "RTO_PQ_PQ",
"mode": "source"
},
{
"name": "tgt",
"type": "Ratio",
"mode": "target"
}
],
"rule": [
{
"name": "numerator",
"source": [
{
"context": "src",
"element": "numerator",
"variable": "numerator"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "numerator",
"variable": "targetNumerator"
}
],
"dependent": [
{
"name": "PQQuantity",
"variable": [
"numerator",
"targetNumerator"
]
}
]
},
{
"name": "denominator",
"source": [
{
"context": "src",
"element": "denominator",
"variable": "denominator"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "denominator",
"variable": "targetDenominator"
}
],
"dependent": [
{
"name": "PQQuantity",
"variable": [
"denominator",
"targetDenominator"
]
}
]
}
]
}
]
}