Package | ch.fhir.ig.cda-fhir-maps |
Resource Type | StructureMap |
Id | FhirToCdaTypes |
FHIR Version | R4 |
Source | http://fhir.ch/ig/cda-fhir-maps/http://fhir.ch/ig/cda-fhir-maps/StructureMap-FhirToCdaTypes.html |
URL | http://fhir.ch/ig/cda-fhir-maps/StructureMap/FhirToCdaTypes |
Version | 0.3.0 |
Status | draft |
Date | 2022-02-11T11:14:39+01:00 |
Name | FhirToCdaTypes |
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
Generated Narrative
Resource "FhirToCdaTypes" Version "2" Updated "2021-11-03T11:16:56.175+01:00"
url: http://fhir.ch/ig/cda-fhir-maps/StructureMap/FhirToCdaTypes
version: 0.3.0
name: FhirToCdaTypes
status: draft
date: 2022-02-11T11:14:39+01:00
publisher: ahdis
contact: ahdis: 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: Identifier
mode: source
structure
url: II: InstanceIdentifier (V3 Data Type)
mode: target
group
name: Any
typeMode: none
input
name: src
mode: source
input
name: tgt
mode: target
rule
name: extension
Sources
- Context Element Variable Condition * src extension extension $this.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor' Targets
- Context ContextType Element Variable * tgt variable nullFlavor nullFlavor rule
name: nullFlavor
group
name: IdentifierII
extends: Any
typeMode: types
input
name: src
type: Identifier
mode: source
input
name: tgt
type: II
mode: target
rule
name: idAsUuid
Sources
- Context Element Variable Condition * src value value src.system.empty() and src.value.startsWith('urn:uuid:') target
context: tgt
contextType: variable
element: root
transform: evaluate
Parameters
- Value[x] * value.substring(9).upper() rule
name: idAsUuid
Sources
- Context Element Variable Condition * src value value src.system = 'urn:ietf:rfc:3986' target
context: tgt
contextType: variable
element: root
transform: evaluate
Parameters
- Value[x] * value.substring(9).upper() rule
name: system
Sources
- Context Element Variable Condition * src value value src.system.startsWith('urn:oid:') rule
name: oidident
group
name: IntegerINT
extends: Any
typeMode: types
input
name: src
type: integer
mode: source
input
name: tgt
type: INT
mode: target
rule
name: integer
Sources
- Context Element Variable * src value v target
context: tgt
contextType: variable
element: value
transform: copy
Parameters
- Value[x] * v
group
name: InstantTS
extends: Any
typeMode: types
documentation: group Identifier(source src : Identifier, target tgt : II) extends Any <<types>> { src.system as system then { src.value as value then { value.value as v where system.value = 'urn:ietf:rfc:3986' -> tgt.root = cast(v, 'string') "noExtension"; system.value as v where system.value != 'urn:ietf:rfc:3986' -> tgt.root = v then { value.value as val -> tgt.extension = cast(val, 'string') "extension"; } "withExtension"; } "rootValue"; } "root"; src.value as value -> tgt.root = '123' "test"; src -> tgt.root = '123' "test"; src.assigner as a then { a.display as display then { display.value as val -> tgt.assigningAuthorityName = cast(val, 'string'); } "display"; } "assigner"; src.extension as ext where ext.url = 'http://hl7.org/fhir/cdaStructureDefinition/extension-displayable' -> tgt.displayable as displayable then { ext.value as v -> displayable.value = cast(v, 'string'); } "displayable"; }
input
name: src
type: instant
mode: source
input
name: tgt
type: TS
mode: target
rule
name: copy
Sources
- Context Element Variable * src value v target
context: tgt
contextType: variable
element: value
transform: copy
Parameters
- Value[x] * v
group
name: DateTimeTS
extends: InstantTS
typeMode: types
input
name: src
type: dateTime
mode: source
input
name: tgt
type: TS
mode: target
group
name: DateTS
extends: InstantTS
typeMode: types
input
name: src
type: date
mode: source
input
name: tgt
type: TS
mode: target
group
name: CodeCS
extends: Any
typeMode: types
input
name: src
type: code
mode: source
input
name: tgt
type: CS
mode: target
rule
name: code
Sources
- Context Element Variable * src code c target
context: tgt
contextType: variable
element: value
transform: cast
parameter
value: c
parameter
value: string
group
name: CodeCE
extends: CodeCS
typeMode: types
input
name: src
type: code
mode: source
input
name: tgt
type: CE
mode: target
group
name: CodeCD
extends: CodeCS
typeMode: types
input
name: src
type: code
mode: source
input
name: tgt
type: CD
mode: target
group
name: CodingCE
extends: Any
typeMode: types
input
name: src
type: Coding
mode: source
input
name: tgt
type: CE
mode: target
rule
name: code
Sources
- Context Element Variable * src code code target
context: tgt
contextType: variable
element: code
transform: copy
Parameters
- Value[x] * code rule
name: system
Sources
- Context Element Variable Condition * src system system $this.startsWith('http:') target
context: tgt
contextType: variable
element: codeSystem
transform: translate
parameter
value: system
parameter
value: #uri2oid
parameter
value: code
rule
name: system
Sources
- Context Element Variable Condition * src system system $this.startsWith('urn:oid:') rule
name: oidident
rule
name: systemName1
Sources
- Context Element Variable Condition * src system system $this.startsWith('http:') target
context: tgt
contextType: variable
element: codeSystemName
transform: translate
parameter
value: system
parameter
value: #uri2system
parameter
value: code
rule
name: systemName2
Sources
- Context Element Variable Condition * src system system $this.startsWith('urn:oid:') target
context: tgt
contextType: variable
element: codeSystemName
transform: translate
parameter
value: system
parameter
value: #oid2system
parameter
value: code
rule
name: display
Sources
- Context Element Variable * src display display target
context: tgt
contextType: variable
element: displayName
transform: copy
Parameters
- Value[x] * display
group
name: CodeableConceptCE
extends: Any
typeMode: types
input
name: src
type: CodeableConcept
mode: source
input
name: tgt
type: CE
mode: target
rule
name: text
Sources
- Context Element Variable * src text text target
context: tgt
contextType: variable
element: orginialText
variable: originalText
target
context: originalText
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * text rule
name: first
Sources
- Context Element ListMode Variable * src coding first coding Dependents
- Name Variable * CodingCE coding, tgt rule
name: translation
Sources
- Context Element ListMode Variable * src coding not_first coding Targets
- Context ContextType Element Variable * tgt variable translation translation Dependents
- Name Variable * CodingCE coding, translation
group
name: AddressAD
extends: Any
typeMode: types
documentation: 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'); } "translation"; } group CSCodeableConcept(source src : CS, target tgt : CodeableConcept) extends CECodeableConcept <<types>> { } group CDCodeableConcept(source src : CD, target tgt : CodeableConcept) extends CECodeableConcept <<types>> { }
input
name: src
type: Address
mode: source
input
name: tgt
type: AD
mode: target
rule
name: streetAddress
Sources
- Context Element Variable * src line v target
context: tgt
contextType: variable
element: streetAddressLine
variable: line
target
context: line
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v rule
name: postalCode
Sources
- Context Element Variable * src postalCode v target
context: tgt
contextType: variable
element: postalCode
variable: postalCode
target
context: postalCode
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v rule
name: nullFlavor
Sources
- Context Condition * src $this.postalCode.exists() = false target
context: tgt
contextType: variable
element: postalCode
variable: postalCode
target
context: postalCode
contextType: variable
element: nullFlavor
transform: copy
Parameters
- Value[x] * NI rule
name: city
Sources
- Context Element Variable * src city v target
context: tgt
contextType: variable
element: city
variable: city
target
context: city
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v rule
name: nullFlavor
Sources
- Context Condition * src $this.city.exists() = false target
context: tgt
contextType: variable
element: city
variable: city
target
context: city
contextType: variable
element: nullFlavor
transform: copy
Parameters
- Value[x] * NI rule
name: state
Sources
- Context Element Variable * src state v target
context: tgt
contextType: variable
element: state
variable: state
target
context: state
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v rule
name: district
Sources
- Context Element Variable * src district v target
context: tgt
contextType: variable
element: county
variable: county
target
context: county
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v rule
name: country
Sources
- Context Element Variable * src country v target
context: tgt
contextType: variable
element: country
variable: country
target
context: country
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v rule
name: nullFlavor
Sources
- Context Condition * src $this.country.exists() = false target
context: tgt
contextType: variable
element: country
variable: country
target
context: country
contextType: variable
element: nullFlavor
transform: copy
Parameters
- Value[x] * NI rule
name: addressUse
Sources
- Context Element Variable * src use c target
context: tgt
contextType: variable
element: use
transform: translate
parameter
value: c
parameter
value: #addressUse
parameter
value: code
group
name: ContactPointTEL
extends: Any
typeMode: types
input
name: src
type: ContactPoint
mode: source
input
name: tgt
type: TEL
mode: target
rule
name: value
Sources
- Context Element Variable * src value value target
context: tgt
contextType: variable
element: value
transform: evaluate
Parameters
- Value[x] * iif(%src.system = 'phone', 'tel:', '') + iif(%src.system = 'fax', 'fax:', '') + iif(%src.system = 'email', 'mailto:', '') + iif(%src.system = 'url', 'http:', '') + value rule
name: use
Sources
- Context Element Variable Condition * src use use $this = 'home' target
context: tgt
contextType: variable
element: use
transform: copy
Parameters
- Value[x] * HP rule
name: use
Sources
- Context Element Variable Condition * src use use $this = 'work' target
context: tgt
contextType: variable
element: use
transform: copy
Parameters
- Value[x] * WP rule
name: use
Sources
- Context Element Variable Condition * src use use $this = 'old' target
context: tgt
contextType: variable
element: use
transform: copy
Parameters
- Value[x] * BAD rule
name: use
Sources
- Context Element Variable Condition * src use use $this = 'temp' target
context: tgt
contextType: variable
element: use
transform: copy
Parameters
- Value[x] * TMP rule
name: use
Sources
- Context Element Variable Condition * src use use $this = 'mobile' target
context: tgt
contextType: variable
element: use
transform: copy
Parameters
- Value[x] * MC
group
name: HumanNameEN
extends: Any
typeMode: types
input
name: src
type: HumanName
mode: source
input
name: tgt
type: EN
mode: target
rule
name: family
Sources
- Context Element Variable * src family v target
context: tgt
contextType: variable
element: family
variable: family
target
context: family
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v rule
name: given
Sources
- Context Element Variable * src given v target
context: tgt
contextType: variable
element: given
variable: given
target
context: given
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v rule
name: prefix
Sources
- Context Element Variable * src prefix v target
context: tgt
contextType: variable
element: prefix
variable: prefix
target
context: prefix
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v rule
name: suffix
Sources
- Context Element Variable * src suffix v target
context: tgt
contextType: variable
element: suffix
variable: suffix
target
context: suffix
contextType: variable
element: data
transform: copy
Parameters
- Value[x] * v
group
name: QuantityPQ
extends: Any
typeMode: types
input
name: src
type: Quantity
mode: source
input
name: tgt
type: PQ
mode: target
rule
name: code
Sources
- Context Element Variable * src code code target
context: tgt
contextType: variable
element: unit
transform: copy
Parameters
- Value[x] * code rule
name: value
Sources
- Context Element Variable * src value value target
context: tgt
contextType: variable
element: value
transform: copy
Parameters
- Value[x] * value
group
name: RatioRTOPQPQ
extends: Any
typeMode: types
input
name: src
type: Ratio
mode: source
input
name: tgt
type: RTO_PQ_PQ
mode: target
rule
name: numerator
Sources
- Context Element Variable * src numerator numerator Targets
- Context ContextType Element Variable * tgt variable numerator targetNumerator Dependents
- Name Variable * QuantityPQ numerator, targetNumerator rule
name: denominator
Sources
- Context Element Variable * src denominator denominator Targets
- Context ContextType Element Variable * tgt variable denominator targetDenominator Dependents
- Name Variable * QuantityPQ denominator, targetDenominator
{ "resourceType": "StructureMap", "id": "FhirToCdaTypes", "meta": { "versionId": "2", "lastUpdated": "2021-11-03T11:16:56.175+01:00" }, "text": { "status": "generated", "div": "<!-- snip (see above) -->" }, "contained": [ { "resourceType": "ConceptMap", "id": "uri2oid", "status": "draft", "group": [ { "source": "http://hl7.org/fhir", "target": "http://hl7.org/cda", "element": [ { "code": "http://snomed.info/sct", "target": [ { "code": "2.16.840.1.113883.6.96", "equivalence": "equivalent" } ] }, { "code": "http://loinc.org", "target": [ { "code": "2.16.840.1.113883.6.1", "equivalence": "equivalent" } ] }, { "code": "http://hl7.org/fhir/sid/atc", "target": [ { "code": "2.16.840.1.113883.6.73", "equivalence": "equivalent", "comment": "see issue #4" } ] }, { "code": "http://www.whocc.no/atc", "target": [ { "code": "2.16.840.1.113883.6.73", "equivalence": "equivalent" } ] }, { "code": "http://terminology.hl7.org/CodeSystem/v3-substanceAdminSubstitution", "target": [ { "code": "2.16.840.1.113883.5.1070", "equivalence": "equivalent" } ] } ] } ] }, { "resourceType": "ConceptMap", "id": "uri2system", "status": "draft", "group": [ { "source": "http://hl7.org/fhir", "target": "http://hl7.org/cda", "element": [ { "code": "http://snomed.info/sct", "target": [ { "code": "SNOMED CT", "equivalence": "equivalent" } ] }, { "code": "http://loinc.org", "target": [ { "code": "LOINC", "equivalence": "equivalent" } ] }, { "code": "http://hl7.org/fhir/sid/atc", "target": [ { "code": "ATC WHO", "equivalence": "equivalent", "comment": "see issue #4" } ] }, { "code": "http://www.whocc.no/atc", "target": [ { "code": "ATC WHO", "equivalence": "equivalent" } ] }, { "code": "http://terminology.hl7.org/CodeSystem/v3-substanceAdminSubstitution", "target": [ { "code": "HL7 Substance Admin Substitution", "equivalence": "equivalent" } ] } ] } ] }, { "resourceType": "ConceptMap", "id": "oid2system", "status": "draft", "group": [ { "source": "http://hl7.org/fhir", "target": "http://hl7.org/cda", "element": [ { "code": "urn:oid:2.51.1.1", "target": [ { "code": "GTIN", "equivalence": "equivalent" } ] }, { "code": "urn:oid:1.3.6.1.4.1.19376.1.9.2.1", "target": [ { "code": "IHE Pharmaceutical Advice Status List", "equivalence": "equivalent" } ] } ] } ] }, { "resourceType": "ConceptMap", "id": "addressUse", "status": "draft", "group": [ { "source": "http://hl7.org/fhir/valueset-address-use.html", "target": "http://terminology.hl7.org/ValueSet/v3-AddressUse", "element": [ { "code": "home", "target": [ { "code": "H", "equivalence": "equivalent", "comment": "home -> home address" } ] }, { "code": "work", "target": [ { "code": "WP", "equivalence": "equivalent", "comment": "work -> work place" } ] }, { "code": "temp", "target": [ { "code": "TMP", "equivalence": "equivalent", "comment": "Temporary -> temporary address" } ] }, { "code": "old", "target": [ { "code": "OLD", "equivalence": "equivalent", "comment": "Old / Incorrect -> no longer in use, could be also t:\"BAD\" for bad address" } ] } ] } ] } ], "extension": [ { "url": "http://fhir.ch/reference", "valueReference": { "reference": "#uri2oid" } }, { "url": "http://fhir.ch/reference", "valueReference": { "reference": "#uri2system" } }, { "url": "http://fhir.ch/reference", "valueReference": { "reference": "#oid2system" } }, { "url": "http://fhir.ch/reference", "valueReference": { "reference": "#addressUse" } } ], "url": "http://fhir.ch/ig/cda-fhir-maps/StructureMap/FhirToCdaTypes", "version": "0.3.0", "name": "FhirToCdaTypes", "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\r\nCDA: http://build.fhir.org/ig/ahdis/cda-core-2.0/branches/master/index.html\r\nFHIR: http://hl7.org/fhir/r4/", "copyright": "CC-BY-SA-4.0", "structure": [ { "url": "http://hl7.org/fhir/StructureDefinition/Identifier", "mode": "source" }, { "url": "http://hl7.org/fhir/cda/StructureDefinition/II", "mode": "target" } ], "group": [ { "name": "Any", "typeMode": "none", "input": [ { "name": "src", "mode": "source" }, { "name": "tgt", "mode": "target" } ], "rule": [ { "name": "extension", "source": [ { "context": "src", "element": "extension", "variable": "extension", "condition": "$this.url = 'http://hl7.org/fhir/StructureDefinition/iso21090-nullFlavor'" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "nullFlavor", "variable": "nullFlavor" } ], "rule": [ { "name": "nullFlavor", "source": [ { "context": "extension", "element": "valueCode", "variable": "valueCode" } ], "rule": [ { "name": "value", "source": [ { "context": "valueCode", "element": "value", "variable": "v" } ], "target": [ { "context": "nullFlavor", "contextType": "variable", "element": "value", "transform": "cast", "parameter": [ { "valueId": "v" }, { "valueString": "string" } ] } ] } ] } ] } ] }, { "name": "IdentifierII", "extends": "Any", "typeMode": "types", "input": [ { "name": "src", "type": "Identifier", "mode": "source" }, { "name": "tgt", "type": "II", "mode": "target" } ], "rule": [ { "name": "idAsUuid", "source": [ { "context": "src", "element": "value", "variable": "value", "condition": "src.system.empty() and src.value.startsWith('urn:uuid:')" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "root", "transform": "evaluate", "parameter": [ { "valueString": "value.substring(9).upper()" } ] } ] }, { "name": "idAsUuid", "source": [ { "context": "src", "element": "value", "variable": "value", "condition": "src.system = 'urn:ietf:rfc:3986'" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "root", "transform": "evaluate", "parameter": [ { "valueString": "value.substring(9).upper()" } ] } ] }, { "name": "system", "source": [ { "context": "src", "element": "value", "variable": "value", "condition": "src.system.startsWith('urn:oid:')" } ], "rule": [ { "name": "oidident", "source": [ { "context": "src", "element": "system", "variable": "system" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "root", "transform": "evaluate", "parameter": [ { "valueString": "system.substring(8)" } ] }, { "context": "tgt", "contextType": "variable", "element": "extension", "transform": "copy", "parameter": [ { "valueId": "value" } ] } ] } ] } ] }, { "name": "IntegerINT", "extends": "Any", "typeMode": "types", "input": [ { "name": "src", "type": "integer", "mode": "source" }, { "name": "tgt", "type": "INT", "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": "InstantTS", "extends": "Any", "typeMode": "types", "documentation": "group Identifier(source src : Identifier, target tgt : II) extends Any <<types>> {\r\nsrc.system as system then {\r\nsrc.value as value then {\r\nvalue.value as v where system.value = 'urn:ietf:rfc:3986' -> tgt.root = cast(v, 'string') \"noExtension\";\r\nsystem.value as v where system.value != 'urn:ietf:rfc:3986' -> tgt.root = v then {\r\nvalue.value as val -> tgt.extension = cast(val, 'string') \"extension\";\r\n} \"withExtension\";\r\n} \"rootValue\";\r\n} \"root\";\r\nsrc.value as value -> tgt.root = '123' \"test\";\r\nsrc -> tgt.root = '123' \"test\";\r\nsrc.assigner as a then {\r\na.display as display then {\r\ndisplay.value as val -> tgt.assigningAuthorityName = cast(val, 'string');\r\n} \"display\";\r\n} \"assigner\";\r\nsrc.extension as ext where ext.url = 'http://hl7.org/fhir/cdaStructureDefinition/extension-displayable' -> tgt.displayable as displayable then {\r\next.value as v -> displayable.value = cast(v, 'string');\r\n} \"displayable\";\r\n}", "input": [ { "name": "src", "type": "instant", "mode": "source" }, { "name": "tgt", "type": "TS", "mode": "target" } ], "rule": [ { "name": "copy", "source": [ { "context": "src", "element": "value", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] } ] }, { "name": "DateTimeTS", "extends": "InstantTS", "typeMode": "types", "input": [ { "name": "src", "type": "dateTime", "mode": "source" }, { "name": "tgt", "type": "TS", "mode": "target" } ] }, { "name": "DateTS", "extends": "InstantTS", "typeMode": "types", "input": [ { "name": "src", "type": "date", "mode": "source" }, { "name": "tgt", "type": "TS", "mode": "target" } ] }, { "name": "CodeCS", "extends": "Any", "typeMode": "types", "input": [ { "name": "src", "type": "code", "mode": "source" }, { "name": "tgt", "type": "CS", "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": "CodeCE", "extends": "CodeCS", "typeMode": "types", "input": [ { "name": "src", "type": "code", "mode": "source" }, { "name": "tgt", "type": "CE", "mode": "target" } ] }, { "name": "CodeCD", "extends": "CodeCS", "typeMode": "types", "input": [ { "name": "src", "type": "code", "mode": "source" }, { "name": "tgt", "type": "CD", "mode": "target" } ] }, { "name": "CodingCE", "extends": "Any", "typeMode": "types", "input": [ { "name": "src", "type": "Coding", "mode": "source" }, { "name": "tgt", "type": "CE", "mode": "target" } ], "rule": [ { "name": "code", "source": [ { "context": "src", "element": "code", "variable": "code" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "code", "transform": "copy", "parameter": [ { "valueId": "code" } ] } ] }, { "name": "system", "source": [ { "context": "src", "element": "system", "variable": "system", "condition": "$this.startsWith('http:')" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "codeSystem", "transform": "translate", "parameter": [ { "valueId": "system" }, { "valueString": "#uri2oid" }, { "valueString": "code" } ] } ] }, { "name": "system", "source": [ { "context": "src", "element": "system", "variable": "system", "condition": "$this.startsWith('urn:oid:')" } ], "rule": [ { "name": "oidident", "source": [ { "context": "src", "element": "system", "variable": "system" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "codeSystem", "transform": "evaluate", "parameter": [ { "valueString": "system.substring(8)" } ] } ] } ] }, { "name": "systemName1", "source": [ { "context": "src", "element": "system", "variable": "system", "condition": "$this.startsWith('http:')" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "codeSystemName", "transform": "translate", "parameter": [ { "valueId": "system" }, { "valueString": "#uri2system" }, { "valueString": "code" } ] } ] }, { "name": "systemName2", "source": [ { "context": "src", "element": "system", "variable": "system", "condition": "$this.startsWith('urn:oid:')" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "codeSystemName", "transform": "translate", "parameter": [ { "valueId": "system" }, { "valueString": "#oid2system" }, { "valueString": "code" } ] } ] }, { "name": "display", "source": [ { "context": "src", "element": "display", "variable": "display" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "displayName", "transform": "copy", "parameter": [ { "valueId": "display" } ] } ] } ] }, { "name": "CodeableConceptCE", "extends": "Any", "typeMode": "types", "input": [ { "name": "src", "type": "CodeableConcept", "mode": "source" }, { "name": "tgt", "type": "CE", "mode": "target" } ], "rule": [ { "name": "text", "source": [ { "context": "src", "element": "text", "variable": "text" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "orginialText", "variable": "originalText" }, { "context": "originalText", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "text" } ] } ] }, { "name": "first", "source": [ { "context": "src", "element": "coding", "listMode": "first", "variable": "coding" } ], "dependent": [ { "name": "CodingCE", "variable": [ "coding", "tgt" ] } ] }, { "name": "translation", "source": [ { "context": "src", "element": "coding", "listMode": "not_first", "variable": "coding" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "translation", "variable": "translation" } ], "dependent": [ { "name": "CodingCE", "variable": [ "coding", "translation" ] } ] } ] }, { "name": "AddressAD", "extends": "Any", "typeMode": "types", "documentation": "group CECodeableConcept(source src : CE, target tgt : CodeableConcept) extends Any <<types>> {\r\nsrc.originalText -> tgt.text;\r\nsrc -> tgt.coding as coding then {\r\nsrc.code as code -> coding.code = cast(code, 'string');\r\nsrc.codeSystem as system -> coding.system = translate(system, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri');\r\nsrc.displayName as display -> coding.display = cast(display, 'string');\r\n} \"code\";\r\nsrc.translation as translation -> tgt.coding as coding then {\r\ntranslation.code as code -> coding.code = cast(code, 'string');\r\ntranslation.codeSystem as system -> coding.system = translate(system, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri');\r\ntranslation.displayName as display -> coding.display = cast(display, 'string');\r\n} \"translation\";\r\n}\r\ngroup CSCodeableConcept(source src : CS, target tgt : CodeableConcept) extends CECodeableConcept <<types>> {\r\n}\r\ngroup CDCodeableConcept(source src : CD, target tgt : CodeableConcept) extends CECodeableConcept <<types>> {\r\n}", "input": [ { "name": "src", "type": "Address", "mode": "source" }, { "name": "tgt", "type": "AD", "mode": "target" } ], "rule": [ { "name": "streetAddress", "source": [ { "context": "src", "element": "line", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "streetAddressLine", "variable": "line" }, { "context": "line", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] }, { "name": "postalCode", "source": [ { "context": "src", "element": "postalCode", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "postalCode", "variable": "postalCode" }, { "context": "postalCode", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] }, { "name": "nullFlavor", "source": [ { "context": "src", "condition": "$this.postalCode.exists() = false" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "postalCode", "variable": "postalCode" }, { "context": "postalCode", "contextType": "variable", "element": "nullFlavor", "transform": "copy", "parameter": [ { "valueString": "NI" } ] } ] }, { "name": "city", "source": [ { "context": "src", "element": "city", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "city", "variable": "city" }, { "context": "city", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] }, { "name": "nullFlavor", "source": [ { "context": "src", "condition": "$this.city.exists() = false" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "city", "variable": "city" }, { "context": "city", "contextType": "variable", "element": "nullFlavor", "transform": "copy", "parameter": [ { "valueString": "NI" } ] } ] }, { "name": "state", "source": [ { "context": "src", "element": "state", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "state", "variable": "state" }, { "context": "state", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] }, { "name": "district", "source": [ { "context": "src", "element": "district", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "county", "variable": "county" }, { "context": "county", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] }, { "name": "country", "source": [ { "context": "src", "element": "country", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "country", "variable": "country" }, { "context": "country", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] }, { "name": "nullFlavor", "source": [ { "context": "src", "condition": "$this.country.exists() = false" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "country", "variable": "country" }, { "context": "country", "contextType": "variable", "element": "nullFlavor", "transform": "copy", "parameter": [ { "valueString": "NI" } ] } ] }, { "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": "ContactPointTEL", "extends": "Any", "typeMode": "types", "input": [ { "name": "src", "type": "ContactPoint", "mode": "source" }, { "name": "tgt", "type": "TEL", "mode": "target" } ], "rule": [ { "name": "value", "source": [ { "context": "src", "element": "value", "variable": "value" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "value", "transform": "evaluate", "parameter": [ { "valueString": "iif(%src.system = 'phone', 'tel:', '') + iif(%src.system = 'fax', 'fax:', '') + iif(%src.system = 'email', 'mailto:', '') + iif(%src.system = 'url', 'http:', '') + value" } ] } ] }, { "name": "use", "source": [ { "context": "src", "element": "use", "variable": "use", "condition": "$this = 'home'" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "use", "transform": "copy", "parameter": [ { "valueString": "HP" } ] } ] }, { "name": "use", "source": [ { "context": "src", "element": "use", "variable": "use", "condition": "$this = 'work'" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "use", "transform": "copy", "parameter": [ { "valueString": "WP" } ] } ] }, { "name": "use", "source": [ { "context": "src", "element": "use", "variable": "use", "condition": "$this = 'old'" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "use", "transform": "copy", "parameter": [ { "valueString": "BAD" } ] } ] }, { "name": "use", "source": [ { "context": "src", "element": "use", "variable": "use", "condition": "$this = 'temp'" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "use", "transform": "copy", "parameter": [ { "valueString": "TMP" } ] } ] }, { "name": "use", "source": [ { "context": "src", "element": "use", "variable": "use", "condition": "$this = 'mobile'" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "use", "transform": "copy", "parameter": [ { "valueString": "MC" } ] } ] } ] }, { "name": "HumanNameEN", "extends": "Any", "typeMode": "types", "input": [ { "name": "src", "type": "HumanName", "mode": "source" }, { "name": "tgt", "type": "EN", "mode": "target" } ], "rule": [ { "name": "family", "source": [ { "context": "src", "element": "family", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "family", "variable": "family" }, { "context": "family", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] }, { "name": "given", "source": [ { "context": "src", "element": "given", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "given", "variable": "given" }, { "context": "given", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] }, { "name": "prefix", "source": [ { "context": "src", "element": "prefix", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "prefix", "variable": "prefix" }, { "context": "prefix", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] }, { "name": "suffix", "source": [ { "context": "src", "element": "suffix", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "suffix", "variable": "suffix" }, { "context": "suffix", "contextType": "variable", "element": "data", "transform": "copy", "parameter": [ { "valueId": "v" } ] } ] } ] }, { "name": "QuantityPQ", "extends": "Any", "typeMode": "types", "input": [ { "name": "src", "type": "Quantity", "mode": "source" }, { "name": "tgt", "type": "PQ", "mode": "target" } ], "rule": [ { "name": "code", "source": [ { "context": "src", "element": "code", "variable": "code" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "unit", "transform": "copy", "parameter": [ { "valueId": "code" } ] } ] }, { "name": "value", "source": [ { "context": "src", "element": "value", "variable": "value" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "value" } ] } ] } ] }, { "name": "RatioRTOPQPQ", "extends": "Any", "typeMode": "types", "input": [ { "name": "src", "type": "Ratio", "mode": "source" }, { "name": "tgt", "type": "RTO_PQ_PQ", "mode": "target" } ], "rule": [ { "name": "numerator", "source": [ { "context": "src", "element": "numerator", "variable": "numerator" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "numerator", "variable": "targetNumerator" } ], "dependent": [ { "name": "QuantityPQ", "variable": [ "numerator", "targetNumerator" ] } ] }, { "name": "denominator", "source": [ { "context": "src", "element": "denominator", "variable": "denominator" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "denominator", "variable": "targetDenominator" } ], "dependent": [ { "name": "QuantityPQ", "variable": [ "denominator", "targetDenominator" ] } ] } ] } ] }