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" ] } ] } ] } ] }