Package | ch.fhir.ig.cda-fhir-maps |
Resource Type | StructureMap |
Id | CdaToBundle |
FHIR Version | R4 |
Source | http://fhir.ch/ig/cda-fhir-maps/http://fhir.ch/ig/cda-fhir-maps/StructureMap-CdaToBundle.html |
URL | http://fhir.ch/ig/cda-fhir-maps/StructureMap/CdaToBundle |
Version | 0.3.0 |
Status | draft |
Date | 2022-02-11T11:14:39+01:00 |
Name | CdaToBundle |
Realm | ch |
Authority | hl7 |
Description | CDA document 2020-01-16 Oliver Egger, copyright ahdis ag, Apache License 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/CdaToBundle" = "CdaToBundle" // CDA document // 2020-01-16 Oliver Egger, copyright ahdis ag, Apache License // CDA: http://build.fhir.org/ig/ahdis/cda-core-2.0/branches/master/index.html // FHIR: http://hl7.org/fhir/r4/ conceptmap "cm-v3-administrative-gender" { prefix s = "http://terminology.hl7.org/ValueSet/v3-AdministrativeGender" prefix t = "http://hl7.org/fhir/ValueSet/administrative-gender" s:M == t:male s:F == t:female } uses "http://hl7.org/fhir/cda/StructureDefinition/ClinicalDocument" alias ClinicalDocument as source uses "http://hl7.org/fhir/cda/StructureDefinition/AssignedAuthor" alias AssignedAuthor as queried uses "http://hl7.org/fhir/cda/StructureDefinition/AssignedEntity" alias AssignedEntity as queried uses "http://hl7.org/fhir/cda/StructureDefinition/CustodianOrganization" alias CustodianOrganization as queried uses "http://hl7.org/fhir/cda/StructureDefinition/Section" alias Section as queried uses "http://hl7.org/fhir/cda/StructureDefinition/PatientRole" alias PatientRole as queried uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target uses "http://hl7.org/fhir/StructureDefinition/Composition" alias Composition as produced uses "http://hl7.org/fhir/StructureDefinition/Patient" alias Patient as produced uses "http://hl7.org/fhir/StructureDefinition/Person" alias Patient as produced uses "http://hl7.org/fhir/StructureDefinition/Practitioner" alias Practitioner as produced uses "http://hl7.org/fhir/StructureDefinition/Organization" alias Organization as produced imports "http://fhir.ch/ig/cda-fhir-maps/StructureMap/CdaToFhirTypes" group CdaToBundle(source cda : ClinicalDocument, target bundle : Bundle) { cda -> bundle.entry as e, e.resource = create('Composition') as composition, composition.id = uuid() as uuid, e.fullUrl = append('urn:uuid:', uuid), bundle.entry as e2, e2.resource = create('Patient') as patient, patient.id = uuid() as uuid2, e2.fullUrl = append('urn:uuid:', uuid2) then { cda then ClinicalDocumentToBundle(cda, patient, composition, bundle) "cdatobundle"; } "ClinicalDocumentToBody"; } group ClinicalDocumentToBundle(source cda : ClinicalDocument, target patient : Patient, target composition : Composition, target bundle : Bundle) { cda -> bundle.id = uuid() "id"; cda.id -> bundle.identifier "identifier"; cda -> bundle.type = 'document' "type"; cda.effectiveTime -> bundle.timestamp; cda then ClinicalDocumentComposition(cda, composition, patient, bundle) "composition"; cda.component as component then { component.structuredBody as body then { body.component as component log 'component' then { component.section as srcSection where $this.code.empty() -> composition.section as tgtSection then ClinicalDocumentSection(cda, srcSection, patient, tgtSection, bundle); }; } "body"; }; } // _________________________ Section Level Templates _________________________ group ClinicalDocumentSection(source cda : ClinicalDocument, source src : Section, source patient : Patient, target tgt, target bundle : Bundle) { src.id as id where ($this.root = %cda.id.root) = false -> tgt.extension as ext then ChExtEprSectionId(id, ext) "sectionId"; src.title as t -> tgt.title = (t.dataString); src.code -> tgt.code; src.text as cdaText -> tgt.text as fhirText then { cdaText -> fhirText.status = 'generated' "narrativeStatus"; cdaText as t -> fhirText.div = t "narrativeText"; } "cdaText"; src.section as srcSection -> tgt.section as tgtSection then ClinicalDocumentSection(cda, srcSection, patient, tgtSection, bundle); } // _________________________ Entry Level Templates ________________________ // _________________________ Header Level Templates _________________________ group ClinicalDocumentComposition(source src : ClinicalDocument, target tgt : Composition, target patientResource : Patient, target bundle : Bundle) { src.languageCode -> tgt.language; src.id where src.setId.exists().not() -> tgt.identifier "identifier"; src.setId -> tgt.identifier "identifier"; src -> tgt.status = 'final' "status"; src.code -> tgt.type; src.title as t -> tgt.title = (t.dataString); src.recordTarget as recordTarget then { recordTarget.patientRole as patient -> tgt.subject = create('Reference') as reference, reference.reference = ('urn:uuid:' + %patientResource.id) then ClinicalDocumentPatientRole(patient, patientResource, bundle) "subject"; } "patientRole"; src.componentOf as comp -> bundle.entry as e, e.resource = create('Encounter') as encounter, encounter.id = uuid() as uuid, e.fullUrl = append('urn:uuid:', uuid) then { comp.encompassingEncounter as srcEnc -> tgt.encounter = create('Reference') as reference, reference.reference = ('urn:uuid:' + %encounter.id) then ClinicalDocumentEncounter(srcEnc, bundle, encounter) "srcEncounter"; } "encompassingEncounter"; src.effectiveTime -> tgt.date; src.author as srcAuthor -> bundle.entry as e, e.resource = create('Practitioner') as practitioner, practitioner.id = uuid() as uuid2, e.fullUrl = append('urn:uuid:', uuid2), tgt.author = create('Reference') as reference, reference.reference = ('urn:uuid:' + %practitioner.id) then { srcAuthor.time as time -> reference.extension as exttime then ChExtEprTime(time, exttime); srcAuthor.assignedAuthor as assignedAuthor then { assignedAuthor.id -> practitioner.identifier; assignedAuthor.addr -> practitioner.address; assignedAuthor.telecom -> practitioner.telecom; assignedAuthor.assignedPerson as person then { person.name -> practitioner.name; } "name"; assignedAuthor.representedOrganization as srcOrg -> bundle.entry as e2, e2.resource = create('Organization') as organization, organization.id = uuid() as uuid3, e2.fullUrl = append('urn:uuid:', uuid3), tgt.author = create('Reference') as reference2, reference2.reference = ('urn:uuid:' + %organization.id) then ClinicalDocumentOrganization(srcOrg, organization); } "author"; } "srcAuthor"; src.confidentialityCode -> tgt.confidentiality; src.legalAuthenticator as legalAuth -> bundle.entry as e, e.resource = create('Practitioner') as practitioner, practitioner.id = uuid() as uuid2, e.fullUrl = append('urn:uuid:', uuid2) then { legalAuth -> tgt.attester as attester then { legalAuth -> attester.mode = 'legal' "mode"; legalAuth.time -> attester.time; legalAuth.assignedEntity as entity -> attester.party = create('Reference') as reference, reference.reference = ('urn:uuid:' + %practitioner.id) then ClinicalDocumentEntityPractitioner(entity, practitioner) "entity"; } "attester"; } "legalAuth"; src.authenticator as auth -> bundle.entry as e, e.resource = create('Practitioner') as practitioner, practitioner.id = uuid() as uuid2, e.fullUrl = append('urn:uuid:', uuid2) then { auth -> tgt.attester as attester then { auth -> attester.mode = 'official' "mode"; auth.time -> attester.time; auth.assignedEntity as entity -> attester.party = create('Reference') as reference, reference.reference = ('urn:uuid:' + %practitioner.id) then ClinicalDocumentEntityPractitioner(entity, practitioner) "entity"; } "attester"; } "auth"; src.custodian as custodian -> bundle.entry as e then { custodian.assignedCustodian as assignedCustodian -> e.resource = create('Organization') as organization, organization.id = uuid() as uuid3, e.fullUrl = append('urn:uuid:', uuid3) then { assignedCustodian.representedCustodianOrganization as srcOrg -> tgt.custodian = create('Reference') as reference, reference.reference = ('urn:uuid:' + %organization.id) then ClinicalDocumentOrganization(srcOrg, organization) "assignedCustodian"; } "custodian"; } "cust"; src.documentationOf as docOf then { docOf.serviceEvent as serviceEvent -> tgt.event as event then { serviceEvent.code -> event.code "eventCode"; serviceEvent.effectiveTime -> event.period "eventTime"; } "docOf"; }; src.relatedDocument as relatedDoc -> tgt.relatesTo as relates then { relatedDoc.typeCode -> relates.code; relatedDoc.parentDocument as parentDoc then { parentDoc.setId -> relates.targetIdentifier; } "parentDoc"; } "relatedDoc"; } group ClinicalDocumentEntityPractitioner(source src : AssignedEntity, target tgt : Practitioner) { src.id -> tgt.identifier; src.addr -> tgt.address; src.telecom -> tgt.telecom; src.assignedPerson as person then { person.name -> tgt.name; } "name"; } group ClinicalDocumentOrganization(source src : CustodianOrganization, target tgt : Organization) { src.id -> tgt.identifier; src.name as v -> tgt.name = (v.other); src.telecom -> tgt.telecom; src.addr -> tgt.address; } group ClinicalDocumentPatientRole(source src : PatientRole, target tgt : Patient, target bundle : Bundle) { // src.id -> tgt.identifier; src -> tgt.identifier as identifier then { src.id as id -> identifier.type as type, type.coding as coding, coding.system as system, coding.code as code then { src -> system.value = 'http://terminology.hl7.org/CodeSystem/v2-0203' "system"; src -> code.value = 'MR' "code"; id.extension as extension -> identifier.value as value, value.value = extension; id.root as root -> identifier.system as system, system.value = append('urn:oid:', root); }; } "identifier"; src.addr -> tgt.address; src.telecom -> tgt.telecom; src.patient as patient then { patient.name -> tgt.name; patient.administrativeGenderCode as gender then { gender.code as v -> tgt.gender = translate(v, '#cm-v3-administrative-gender', 'code') "gender"; } "gender"; patient.birthTime -> tgt.birthDate "birthDate"; patient.deceasedInd as indicator where patient.deceasedTime.empty() -> tgt.deceased = create('boolean') as bool then boolean(indicator, bool) "deceasedBL"; patient.deceasedTime -> tgt.deceased; patient.maritalStatusCode -> tgt.maritalStatus "maritalStatus"; patient.languageCommunication as language -> tgt.communication as communication then { language.languageCode -> communication.language "communication"; } "language"; }; src.providerOrganization as org -> bundle.entry as e, e.resource = create('Organization') as organization, organization.id = uuid() as uuid3, e.fullUrl = append('urn:uuid:', uuid3) then { org -> tgt.managingOrganization = create('Reference') as reference, reference.reference = ('urn:uuid:' + %organization.id) "reference"; org.id -> organization.identifier; org.name as v -> organization.name = (v.other); org.telecom -> organization.telecom; org.addr -> organization.address; } "organization"; } group ClinicalDocumentEncounter(source src : EncompassingEncounter, target bundle : Bundle, target tgt : Encounter) { src.id -> tgt.identifier; src.code -> tgt.type; src.effectiveTime -> tgt.period; src where admissionReferralSourceCode.exists() or dischargeDispositionCode.exists() -> tgt.hospitalization as hosp then { src.admissionReferralSourceCode -> hosp.admitSource "adminReferral"; src.dischargeDispositionCode -> hosp.dischargeDisposition "discDisposition"; } "hospitalization"; src.encounterParticipant as srcPart -> tgt.participant as tgtPart then { srcPart.typeCode as code -> tgtPart.type = cc('http://terminology.hl7.org/CodeSystem/v3-ParticipationType', code); srcPart.time -> tgtPart.period; srcPart.assignedEntity as entity -> bundle.entry as e, e.resource = create('Practitioner') as practitioner, practitioner.id = uuid() as uuid2, e.fullUrl = append('urn:uuid:', uuid2) then { entity -> tgtPart.individual = create('Reference') as reference, reference.reference = ('urn:uuid:' + %practitioner.id) then ClinicalDocumentEntityPractitioner(entity, practitioner) "entry"; } "entity"; } "participant"; src.location as srcLocation then { srcLocation.healthCareFacility as facility -> bundle.entry as e, e.resource = create('Location') as location, location.id = uuid() as uuid2, e.fullUrl = append('urn:uuid:', uuid2) then { facility -> tgt.location as tgtLocation, tgtLocation.location = create('Reference') as reference, reference.reference = ('urn:uuid:' + %location.id) then ClinicalDocumentLocation(facility, bundle, location) "facLocation"; } "facility"; }; } group ClinicalDocumentLocation(source src : HealthCareFacility, target bundle : Bundle, target tgt : Location) { src.id -> tgt.identifier; src.code -> tgt.type; src.location as location then { // place names are usually stored with no parts location.name as srcName -> tgt.name = cast(srcName, 'string'); location.addr -> tgt.address; location.serviceProviderOrganization as srcOrg -> bundle.entry as e, e.resource = create('Organization') as organization, organization.id = uuid() as uuid3, e.fullUrl = append('urn:uuid:', uuid3) then { srcOrg -> tgt.managingOrganization = create('Reference') as reference, reference.reference = ('urn:uuid:' + %organization.id) then ClinicalDocumentOrganization(srcOrg, organization) "organization"; } "org"; }; } // source dataEnterer: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.2.7 // source author: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.840.1.113883.10.12.102 // target: https://build.fhir.org/ig/hl7ch/ch-core//StructureDefinition-ch-ext-epr-time.html group ChExtEprTime(source src : TSDateTime, target ext : Extension) { src -> ext.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-time' "url"; src -> ext.value = create('dateTime') as value then TSDateTime(src, value) "value"; } // https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.3.45 // target: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-ext-epr-sectionid.html group ChExtEprSectionId(source src : II, target ext : Extension) { src -> ext.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-sectionid' "url"; src -> ext.value = create('Identifier') as value then II(src, value) "value"; } // _________________________ Template Type not specified ___________________ group NarrativeLink(source url, target ext : Extension) { url -> ext.url = 'http://hl7.org/fhir/StructureDefinition/narrativeLink' "url"; url -> ext.value = create('url') as value, value.value = url "value"; }
{ "resourceType": "StructureMap", "id": "CdaToBundle", "text": { "status": "generated", "div": "<!-- snip (see above) -->" }, "contained": [ { "resourceType": "ConceptMap", "id": "cm-v3-administrative-gender", "status": "draft", "group": [ { "source": "http://terminology.hl7.org/ValueSet/v3-AdministrativeGender", "target": "http://hl7.org/fhir/ValueSet/administrative-gender", "element": [ { "code": "M", "target": [ { "code": "male", "equivalence": "equivalent" } ] }, { "code": "F", "target": [ { "code": "female", "equivalence": "equivalent" } ] } ] } ] } ], "extension": [ { "url": "http://fhir.ch/reference", "valueReference": { "reference": "#cm-v3-administrative-gender" } } ], "url": "http://fhir.ch/ig/cda-fhir-maps/StructureMap/CdaToBundle", "version": "0.3.0", "name": "CdaToBundle", "status": "draft", "date": "2022-02-11T11:14:39+01:00", "publisher": "ahdis", "contact": [ { "name": "ahdis", "telecom": [ { "system": "url", "value": "http://www.ahdis.ch/" } ] } ], "description": "CDA document 2020-01-16 Oliver Egger, copyright ahdis ag, Apache License 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/ClinicalDocument", "mode": "source", "alias": "ClinicalDocument" }, { "url": "http://hl7.org/fhir/cda/StructureDefinition/AssignedAuthor", "mode": "queried", "alias": "AssignedAuthor" }, { "url": "http://hl7.org/fhir/cda/StructureDefinition/AssignedEntity", "mode": "queried", "alias": "AssignedEntity" }, { "url": "http://hl7.org/fhir/cda/StructureDefinition/CustodianOrganization", "mode": "queried", "alias": "CustodianOrganization" }, { "url": "http://hl7.org/fhir/cda/StructureDefinition/Section", "mode": "queried", "alias": "Section" }, { "url": "http://hl7.org/fhir/cda/StructureDefinition/PatientRole", "mode": "queried", "alias": "PatientRole" }, { "url": "http://hl7.org/fhir/StructureDefinition/Bundle", "mode": "target", "alias": "Bundle" }, { "url": "http://hl7.org/fhir/StructureDefinition/Composition", "mode": "produced", "alias": "Composition" }, { "url": "http://hl7.org/fhir/StructureDefinition/Patient", "mode": "produced", "alias": "Patient" }, { "url": "http://hl7.org/fhir/StructureDefinition/Person", "mode": "produced", "alias": "Patient" }, { "url": "http://hl7.org/fhir/StructureDefinition/Practitioner", "mode": "produced", "alias": "Practitioner" }, { "url": "http://hl7.org/fhir/StructureDefinition/Organization", "mode": "produced", "alias": "Organization" } ], "import": [ "http://fhir.ch/ig/cda-fhir-maps/StructureMap/CdaToFhirTypes" ], "group": [ { "name": "CdaToBundle", "typeMode": "none", "input": [ { "name": "cda", "type": "ClinicalDocument", "mode": "source" }, { "name": "bundle", "type": "Bundle", "mode": "target" } ], "rule": [ { "name": "ClinicalDocumentToBody", "source": [ { "context": "cda" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" }, { "context": "e", "contextType": "variable", "element": "resource", "variable": "composition", "transform": "create", "parameter": [ { "valueString": "Composition" } ] }, { "context": "composition", "contextType": "variable", "element": "id", "variable": "uuid", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid" } ] }, { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e2" }, { "context": "e2", "contextType": "variable", "element": "resource", "variable": "patient", "transform": "create", "parameter": [ { "valueString": "Patient" } ] }, { "context": "patient", "contextType": "variable", "element": "id", "variable": "uuid2", "transform": "uuid" }, { "context": "e2", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid2" } ] } ], "rule": [ { "name": "cdatobundle", "source": [ { "context": "cda" } ], "dependent": [ { "name": "ClinicalDocumentToBundle", "variable": [ "cda", "patient", "composition", "bundle" ] } ] } ] } ] }, { "name": "ClinicalDocumentToBundle", "typeMode": "none", "input": [ { "name": "cda", "type": "ClinicalDocument", "mode": "source" }, { "name": "patient", "type": "Patient", "mode": "target" }, { "name": "composition", "type": "Composition", "mode": "target" }, { "name": "bundle", "type": "Bundle", "mode": "target" } ], "rule": [ { "name": "id", "source": [ { "context": "cda" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "id", "transform": "uuid" } ] }, { "name": "identifier", "source": [ { "context": "cda", "element": "id", "variable": "vvv" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "identifier", "variable": "vvv", "transform": "create" } ] }, { "name": "type", "source": [ { "context": "cda" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "type", "transform": "copy", "parameter": [ { "valueString": "document" } ] } ] }, { "name": "effectiveTime", "source": [ { "context": "cda", "element": "effectiveTime", "variable": "vvv" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "timestamp", "variable": "vvv", "transform": "create" } ] }, { "name": "composition", "source": [ { "context": "cda" } ], "dependent": [ { "name": "ClinicalDocumentComposition", "variable": [ "cda", "composition", "patient", "bundle" ] } ] }, { "name": "component", "source": [ { "context": "cda", "element": "component", "variable": "component" } ], "rule": [ { "name": "body", "source": [ { "context": "component", "element": "structuredBody", "variable": "body" } ], "rule": [ { "name": "component", "source": [ { "context": "body", "element": "component", "variable": "component", "logMessage": "'component'" } ], "rule": [ { "name": "section", "source": [ { "context": "component", "element": "section", "variable": "srcSection", "condition": "$this.code.empty()" } ], "target": [ { "context": "composition", "contextType": "variable", "element": "section", "variable": "tgtSection" } ], "dependent": [ { "name": "ClinicalDocumentSection", "variable": [ "cda", "srcSection", "patient", "tgtSection", "bundle" ] } ] } ] } ] } ] } ] }, { "name": "ClinicalDocumentSection", "typeMode": "none", "documentation": "_________________________ Section Level Templates _________________________", "input": [ { "name": "cda", "type": "ClinicalDocument", "mode": "source" }, { "name": "src", "type": "Section", "mode": "source" }, { "name": "patient", "type": "Patient", "mode": "source" }, { "name": "tgt", "mode": "target" }, { "name": "bundle", "type": "Bundle", "mode": "target" } ], "rule": [ { "name": "sectionId", "source": [ { "context": "src", "element": "id", "variable": "id", "condition": "($this.root = %cda.id.root) = false" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "extension", "variable": "ext" } ], "dependent": [ { "name": "ChExtEprSectionId", "variable": [ "id", "ext" ] } ] }, { "name": "title", "source": [ { "context": "src", "element": "title", "variable": "t" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "title", "transform": "evaluate", "parameter": [ { "valueString": "t.dataString" } ] } ] }, { "name": "code", "source": [ { "context": "src", "element": "code", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "code", "variable": "vvv", "transform": "create" } ] }, { "name": "cdaText", "source": [ { "context": "src", "element": "text", "variable": "cdaText" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "text", "variable": "fhirText" } ], "rule": [ { "name": "narrativeStatus", "source": [ { "context": "cdaText" } ], "target": [ { "context": "fhirText", "contextType": "variable", "element": "status", "transform": "copy", "parameter": [ { "valueString": "generated" } ] } ] }, { "name": "narrativeText", "source": [ { "context": "cdaText", "variable": "t" } ], "target": [ { "context": "fhirText", "contextType": "variable", "element": "div", "transform": "copy", "parameter": [ { "valueId": "t" } ] } ] } ] }, { "name": "section", "source": [ { "context": "src", "element": "section", "variable": "srcSection" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "section", "variable": "tgtSection" } ], "dependent": [ { "name": "ClinicalDocumentSection", "variable": [ "cda", "srcSection", "patient", "tgtSection", "bundle" ] } ] } ] }, { "name": "ClinicalDocumentComposition", "typeMode": "none", "documentation": "_________________________ Entry Level Templates ________________________ _________________________ Header Level Templates _________________________", "input": [ { "name": "src", "type": "ClinicalDocument", "mode": "source" }, { "name": "tgt", "type": "Composition", "mode": "target" }, { "name": "patientResource", "type": "Patient", "mode": "target" }, { "name": "bundle", "type": "Bundle", "mode": "target" } ], "rule": [ { "name": "languageCode", "source": [ { "context": "src", "element": "languageCode", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "language", "variable": "vvv", "transform": "create" } ] }, { "name": "identifier", "source": [ { "context": "src", "element": "id", "variable": "vvv", "condition": "src.setId.exists().not()" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "identifier", "variable": "vvv", "transform": "create" } ] }, { "name": "identifier", "source": [ { "context": "src", "element": "setId", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "identifier", "variable": "vvv", "transform": "create" } ] }, { "name": "status", "source": [ { "context": "src" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "status", "transform": "copy", "parameter": [ { "valueString": "final" } ] } ] }, { "name": "code", "source": [ { "context": "src", "element": "code", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "type", "variable": "vvv", "transform": "create" } ] }, { "name": "title", "source": [ { "context": "src", "element": "title", "variable": "t" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "title", "transform": "evaluate", "parameter": [ { "valueString": "t.dataString" } ] } ] }, { "name": "patientRole", "source": [ { "context": "src", "element": "recordTarget", "variable": "recordTarget" } ], "rule": [ { "name": "subject", "source": [ { "context": "recordTarget", "element": "patientRole", "variable": "patient" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "subject", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %patientResource.id" } ] } ], "dependent": [ { "name": "ClinicalDocumentPatientRole", "variable": [ "patient", "patientResource", "bundle" ] } ] } ] }, { "name": "encompassingEncounter", "source": [ { "context": "src", "element": "componentOf", "variable": "comp" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" }, { "context": "e", "contextType": "variable", "element": "resource", "variable": "encounter", "transform": "create", "parameter": [ { "valueString": "Encounter" } ] }, { "context": "encounter", "contextType": "variable", "element": "id", "variable": "uuid", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid" } ] } ], "rule": [ { "name": "srcEncounter", "source": [ { "context": "comp", "element": "encompassingEncounter", "variable": "srcEnc" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "encounter", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %encounter.id" } ] } ], "dependent": [ { "name": "ClinicalDocumentEncounter", "variable": [ "srcEnc", "bundle", "encounter" ] } ] } ] }, { "name": "effectiveTime", "source": [ { "context": "src", "element": "effectiveTime", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "date", "variable": "vvv", "transform": "create" } ] }, { "name": "srcAuthor", "source": [ { "context": "src", "element": "author", "variable": "srcAuthor" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" }, { "context": "e", "contextType": "variable", "element": "resource", "variable": "practitioner", "transform": "create", "parameter": [ { "valueString": "Practitioner" } ] }, { "context": "practitioner", "contextType": "variable", "element": "id", "variable": "uuid2", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid2" } ] }, { "context": "tgt", "contextType": "variable", "element": "author", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %practitioner.id" } ] } ], "rule": [ { "name": "time", "source": [ { "context": "srcAuthor", "element": "time", "variable": "time" } ], "target": [ { "context": "reference", "contextType": "variable", "element": "extension", "variable": "exttime" } ], "dependent": [ { "name": "ChExtEprTime", "variable": [ "time", "exttime" ] } ] }, { "name": "author", "source": [ { "context": "srcAuthor", "element": "assignedAuthor", "variable": "assignedAuthor" } ], "rule": [ { "name": "id", "source": [ { "context": "assignedAuthor", "element": "id", "variable": "vvv" } ], "target": [ { "context": "practitioner", "contextType": "variable", "element": "identifier", "variable": "vvv", "transform": "create" } ] }, { "name": "addr", "source": [ { "context": "assignedAuthor", "element": "addr", "variable": "vvv" } ], "target": [ { "context": "practitioner", "contextType": "variable", "element": "address", "variable": "vvv", "transform": "create" } ] }, { "name": "telecom", "source": [ { "context": "assignedAuthor", "element": "telecom", "variable": "vvv" } ], "target": [ { "context": "practitioner", "contextType": "variable", "element": "telecom", "variable": "vvv", "transform": "create" } ] }, { "name": "name", "source": [ { "context": "assignedAuthor", "element": "assignedPerson", "variable": "person" } ], "rule": [ { "name": "name", "source": [ { "context": "person", "element": "name", "variable": "vvv" } ], "target": [ { "context": "practitioner", "contextType": "variable", "element": "name", "variable": "vvv", "transform": "create" } ] } ] }, { "name": "representedOrganization", "source": [ { "context": "assignedAuthor", "element": "representedOrganization", "variable": "srcOrg" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e2" }, { "context": "e2", "contextType": "variable", "element": "resource", "variable": "organization", "transform": "create", "parameter": [ { "valueString": "Organization" } ] }, { "context": "organization", "contextType": "variable", "element": "id", "variable": "uuid3", "transform": "uuid" }, { "context": "e2", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid3" } ] }, { "context": "tgt", "contextType": "variable", "element": "author", "variable": "reference2", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference2", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %organization.id" } ] } ], "dependent": [ { "name": "ClinicalDocumentOrganization", "variable": [ "srcOrg", "organization" ] } ] } ] } ] }, { "name": "confidentialityCode", "source": [ { "context": "src", "element": "confidentialityCode", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "confidentiality", "variable": "vvv", "transform": "create" } ] }, { "name": "legalAuth", "source": [ { "context": "src", "element": "legalAuthenticator", "variable": "legalAuth" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" }, { "context": "e", "contextType": "variable", "element": "resource", "variable": "practitioner", "transform": "create", "parameter": [ { "valueString": "Practitioner" } ] }, { "context": "practitioner", "contextType": "variable", "element": "id", "variable": "uuid2", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid2" } ] } ], "rule": [ { "name": "attester", "source": [ { "context": "legalAuth" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "attester", "variable": "attester" } ], "rule": [ { "name": "mode", "source": [ { "context": "legalAuth" } ], "target": [ { "context": "attester", "contextType": "variable", "element": "mode", "transform": "copy", "parameter": [ { "valueString": "legal" } ] } ] }, { "name": "time", "source": [ { "context": "legalAuth", "element": "time", "variable": "vvv" } ], "target": [ { "context": "attester", "contextType": "variable", "element": "time", "variable": "vvv", "transform": "create" } ] }, { "name": "entity", "source": [ { "context": "legalAuth", "element": "assignedEntity", "variable": "entity" } ], "target": [ { "context": "attester", "contextType": "variable", "element": "party", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %practitioner.id" } ] } ], "dependent": [ { "name": "ClinicalDocumentEntityPractitioner", "variable": [ "entity", "practitioner" ] } ] } ] } ] }, { "name": "auth", "source": [ { "context": "src", "element": "authenticator", "variable": "auth" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" }, { "context": "e", "contextType": "variable", "element": "resource", "variable": "practitioner", "transform": "create", "parameter": [ { "valueString": "Practitioner" } ] }, { "context": "practitioner", "contextType": "variable", "element": "id", "variable": "uuid2", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid2" } ] } ], "rule": [ { "name": "attester", "source": [ { "context": "auth" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "attester", "variable": "attester" } ], "rule": [ { "name": "mode", "source": [ { "context": "auth" } ], "target": [ { "context": "attester", "contextType": "variable", "element": "mode", "transform": "copy", "parameter": [ { "valueString": "official" } ] } ] }, { "name": "time", "source": [ { "context": "auth", "element": "time", "variable": "vvv" } ], "target": [ { "context": "attester", "contextType": "variable", "element": "time", "variable": "vvv", "transform": "create" } ] }, { "name": "entity", "source": [ { "context": "auth", "element": "assignedEntity", "variable": "entity" } ], "target": [ { "context": "attester", "contextType": "variable", "element": "party", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %practitioner.id" } ] } ], "dependent": [ { "name": "ClinicalDocumentEntityPractitioner", "variable": [ "entity", "practitioner" ] } ] } ] } ] }, { "name": "cust", "source": [ { "context": "src", "element": "custodian", "variable": "custodian" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" } ], "rule": [ { "name": "custodian", "source": [ { "context": "custodian", "element": "assignedCustodian", "variable": "assignedCustodian" } ], "target": [ { "context": "e", "contextType": "variable", "element": "resource", "variable": "organization", "transform": "create", "parameter": [ { "valueString": "Organization" } ] }, { "context": "organization", "contextType": "variable", "element": "id", "variable": "uuid3", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid3" } ] } ], "rule": [ { "name": "assignedCustodian", "source": [ { "context": "assignedCustodian", "element": "representedCustodianOrganization", "variable": "srcOrg" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "custodian", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %organization.id" } ] } ], "dependent": [ { "name": "ClinicalDocumentOrganization", "variable": [ "srcOrg", "organization" ] } ] } ] } ] }, { "name": "documentationOf", "source": [ { "context": "src", "element": "documentationOf", "variable": "docOf" } ], "rule": [ { "name": "docOf", "source": [ { "context": "docOf", "element": "serviceEvent", "variable": "serviceEvent" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "event", "variable": "event" } ], "rule": [ { "name": "eventCode", "source": [ { "context": "serviceEvent", "element": "code", "variable": "vvv" } ], "target": [ { "context": "event", "contextType": "variable", "element": "code", "variable": "vvv", "transform": "create" } ] }, { "name": "eventTime", "source": [ { "context": "serviceEvent", "element": "effectiveTime", "variable": "vvv" } ], "target": [ { "context": "event", "contextType": "variable", "element": "period", "variable": "vvv", "transform": "create" } ] } ] } ] }, { "name": "relatedDoc", "source": [ { "context": "src", "element": "relatedDocument", "variable": "relatedDoc" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "relatesTo", "variable": "relates" } ], "rule": [ { "name": "typeCode", "source": [ { "context": "relatedDoc", "element": "typeCode", "variable": "vvv" } ], "target": [ { "context": "relates", "contextType": "variable", "element": "code", "variable": "vvv", "transform": "create" } ] }, { "name": "parentDoc", "source": [ { "context": "relatedDoc", "element": "parentDocument", "variable": "parentDoc" } ], "rule": [ { "name": "setId", "source": [ { "context": "parentDoc", "element": "setId", "variable": "vvv" } ], "target": [ { "context": "relates", "contextType": "variable", "element": "targetIdentifier", "variable": "vvv", "transform": "create" } ] } ] } ] } ] }, { "name": "ClinicalDocumentEntityPractitioner", "typeMode": "none", "input": [ { "name": "src", "type": "AssignedEntity", "mode": "source" }, { "name": "tgt", "type": "Practitioner", "mode": "target" } ], "rule": [ { "name": "id", "source": [ { "context": "src", "element": "id", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "identifier", "variable": "vvv", "transform": "create" } ] }, { "name": "addr", "source": [ { "context": "src", "element": "addr", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "address", "variable": "vvv", "transform": "create" } ] }, { "name": "telecom", "source": [ { "context": "src", "element": "telecom", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "telecom", "variable": "vvv", "transform": "create" } ] }, { "name": "name", "source": [ { "context": "src", "element": "assignedPerson", "variable": "person" } ], "rule": [ { "name": "name", "source": [ { "context": "person", "element": "name", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "name", "variable": "vvv", "transform": "create" } ] } ] } ] }, { "name": "ClinicalDocumentOrganization", "typeMode": "none", "input": [ { "name": "src", "type": "CustodianOrganization", "mode": "source" }, { "name": "tgt", "type": "Organization", "mode": "target" } ], "rule": [ { "name": "id", "source": [ { "context": "src", "element": "id", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "identifier", "variable": "vvv", "transform": "create" } ] }, { "name": "name", "source": [ { "context": "src", "element": "name", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "name", "transform": "evaluate", "parameter": [ { "valueString": "v.other" } ] } ] }, { "name": "telecom", "source": [ { "context": "src", "element": "telecom", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "telecom", "variable": "vvv", "transform": "create" } ] }, { "name": "addr", "source": [ { "context": "src", "element": "addr", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "address", "variable": "vvv", "transform": "create" } ] } ] }, { "name": "ClinicalDocumentPatientRole", "typeMode": "none", "input": [ { "name": "src", "type": "PatientRole", "mode": "source" }, { "name": "tgt", "type": "Patient", "mode": "target" }, { "name": "bundle", "type": "Bundle", "mode": "target" } ], "rule": [ { "name": "identifier", "source": [ { "context": "src" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "identifier", "variable": "identifier" } ], "rule": [ { "name": "id", "source": [ { "context": "src", "element": "id", "variable": "id" } ], "target": [ { "context": "identifier", "contextType": "variable", "element": "type", "variable": "type" }, { "context": "type", "contextType": "variable", "element": "coding", "variable": "coding" }, { "context": "coding", "contextType": "variable", "element": "system", "variable": "system" }, { "context": "coding", "contextType": "variable", "element": "code", "variable": "code" } ], "rule": [ { "name": "system", "source": [ { "context": "src" } ], "target": [ { "context": "system", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueString": "http://terminology.hl7.org/CodeSystem/v2-0203" } ] } ] }, { "name": "code", "source": [ { "context": "src" } ], "target": [ { "context": "code", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueString": "MR" } ] } ] }, { "name": "extension", "source": [ { "context": "id", "element": "extension", "variable": "extension" } ], "target": [ { "context": "identifier", "contextType": "variable", "element": "value", "variable": "value" }, { "context": "value", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "extension" } ] } ] }, { "name": "root", "source": [ { "context": "id", "element": "root", "variable": "root" } ], "target": [ { "context": "identifier", "contextType": "variable", "element": "system", "variable": "system" }, { "context": "system", "contextType": "variable", "element": "value", "transform": "append", "parameter": [ { "valueString": "urn:oid:" }, { "valueId": "root" } ] } ] } ] } ], "documentation": "src.id -> tgt.identifier;" }, { "name": "addr", "source": [ { "context": "src", "element": "addr", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "address", "variable": "vvv", "transform": "create" } ] }, { "name": "telecom", "source": [ { "context": "src", "element": "telecom", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "telecom", "variable": "vvv", "transform": "create" } ] }, { "name": "patient", "source": [ { "context": "src", "element": "patient", "variable": "patient" } ], "rule": [ { "name": "name", "source": [ { "context": "patient", "element": "name", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "name", "variable": "vvv", "transform": "create" } ] }, { "name": "gender", "source": [ { "context": "patient", "element": "administrativeGenderCode", "variable": "gender" } ], "rule": [ { "name": "gender", "source": [ { "context": "gender", "element": "code", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "gender", "transform": "translate", "parameter": [ { "valueId": "v" }, { "valueString": "#cm-v3-administrative-gender" }, { "valueString": "code" } ] } ] } ] }, { "name": "birthDate", "source": [ { "context": "patient", "element": "birthTime", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "birthDate", "variable": "vvv", "transform": "create" } ] }, { "name": "deceasedBL", "source": [ { "context": "patient", "element": "deceasedInd", "variable": "indicator", "condition": "patient.deceasedTime.empty()" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "deceased", "variable": "bool", "transform": "create", "parameter": [ { "valueString": "boolean" } ] } ], "dependent": [ { "name": "boolean", "variable": [ "indicator", "bool" ] } ] }, { "name": "deceasedTime", "source": [ { "context": "patient", "element": "deceasedTime", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "deceased", "variable": "vvv", "transform": "create" } ] }, { "name": "maritalStatus", "source": [ { "context": "patient", "element": "maritalStatusCode", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "maritalStatus", "variable": "vvv", "transform": "create" } ] }, { "name": "language", "source": [ { "context": "patient", "element": "languageCommunication", "variable": "language" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "communication", "variable": "communication" } ], "rule": [ { "name": "communication", "source": [ { "context": "language", "element": "languageCode", "variable": "vvv" } ], "target": [ { "context": "communication", "contextType": "variable", "element": "language", "variable": "vvv", "transform": "create" } ] } ] } ] }, { "name": "organization", "source": [ { "context": "src", "element": "providerOrganization", "variable": "org" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" }, { "context": "e", "contextType": "variable", "element": "resource", "variable": "organization", "transform": "create", "parameter": [ { "valueString": "Organization" } ] }, { "context": "organization", "contextType": "variable", "element": "id", "variable": "uuid3", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid3" } ] } ], "rule": [ { "name": "reference", "source": [ { "context": "org" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "managingOrganization", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %organization.id" } ] } ] }, { "name": "id", "source": [ { "context": "org", "element": "id", "variable": "vvv" } ], "target": [ { "context": "organization", "contextType": "variable", "element": "identifier", "variable": "vvv", "transform": "create" } ] }, { "name": "name", "source": [ { "context": "org", "element": "name", "variable": "v" } ], "target": [ { "context": "organization", "contextType": "variable", "element": "name", "transform": "evaluate", "parameter": [ { "valueString": "v.other" } ] } ] }, { "name": "telecom", "source": [ { "context": "org", "element": "telecom", "variable": "vvv" } ], "target": [ { "context": "organization", "contextType": "variable", "element": "telecom", "variable": "vvv", "transform": "create" } ] }, { "name": "addr", "source": [ { "context": "org", "element": "addr", "variable": "vvv" } ], "target": [ { "context": "organization", "contextType": "variable", "element": "address", "variable": "vvv", "transform": "create" } ] } ] } ] }, { "name": "ClinicalDocumentEncounter", "typeMode": "none", "input": [ { "name": "src", "type": "EncompassingEncounter", "mode": "source" }, { "name": "bundle", "type": "Bundle", "mode": "target" }, { "name": "tgt", "type": "Encounter", "mode": "target" } ], "rule": [ { "name": "id", "source": [ { "context": "src", "element": "id", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "identifier", "variable": "vvv", "transform": "create" } ] }, { "name": "code", "source": [ { "context": "src", "element": "code", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "type", "variable": "vvv", "transform": "create" } ] }, { "name": "effectiveTime", "source": [ { "context": "src", "element": "effectiveTime", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "period", "variable": "vvv", "transform": "create" } ] }, { "name": "hospitalization", "source": [ { "context": "src", "condition": "admissionReferralSourceCode.exists() or dischargeDispositionCode.exists()" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "hospitalization", "variable": "hosp" } ], "rule": [ { "name": "adminReferral", "source": [ { "context": "src", "element": "admissionReferralSourceCode", "variable": "vvv" } ], "target": [ { "context": "hosp", "contextType": "variable", "element": "admitSource", "variable": "vvv", "transform": "create" } ] }, { "name": "discDisposition", "source": [ { "context": "src", "element": "dischargeDispositionCode", "variable": "vvv" } ], "target": [ { "context": "hosp", "contextType": "variable", "element": "dischargeDisposition", "variable": "vvv", "transform": "create" } ] } ] }, { "name": "participant", "source": [ { "context": "src", "element": "encounterParticipant", "variable": "srcPart" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "participant", "variable": "tgtPart" } ], "rule": [ { "name": "typeCode", "source": [ { "context": "srcPart", "element": "typeCode", "variable": "code" } ], "target": [ { "context": "tgtPart", "contextType": "variable", "element": "type", "transform": "cc", "parameter": [ { "valueString": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType" }, { "valueId": "code" } ] } ] }, { "name": "time", "source": [ { "context": "srcPart", "element": "time", "variable": "vvv" } ], "target": [ { "context": "tgtPart", "contextType": "variable", "element": "period", "variable": "vvv", "transform": "create" } ] }, { "name": "entity", "source": [ { "context": "srcPart", "element": "assignedEntity", "variable": "entity" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" }, { "context": "e", "contextType": "variable", "element": "resource", "variable": "practitioner", "transform": "create", "parameter": [ { "valueString": "Practitioner" } ] }, { "context": "practitioner", "contextType": "variable", "element": "id", "variable": "uuid2", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid2" } ] } ], "rule": [ { "name": "entry", "source": [ { "context": "entity" } ], "target": [ { "context": "tgtPart", "contextType": "variable", "element": "individual", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %practitioner.id" } ] } ], "dependent": [ { "name": "ClinicalDocumentEntityPractitioner", "variable": [ "entity", "practitioner" ] } ] } ] } ] }, { "name": "location", "source": [ { "context": "src", "element": "location", "variable": "srcLocation" } ], "rule": [ { "name": "facility", "source": [ { "context": "srcLocation", "element": "healthCareFacility", "variable": "facility" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" }, { "context": "e", "contextType": "variable", "element": "resource", "variable": "location", "transform": "create", "parameter": [ { "valueString": "Location" } ] }, { "context": "location", "contextType": "variable", "element": "id", "variable": "uuid2", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid2" } ] } ], "rule": [ { "name": "facLocation", "source": [ { "context": "facility" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "location", "variable": "tgtLocation" }, { "context": "tgtLocation", "contextType": "variable", "element": "location", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %location.id" } ] } ], "dependent": [ { "name": "ClinicalDocumentLocation", "variable": [ "facility", "bundle", "location" ] } ] } ] } ] } ] }, { "name": "ClinicalDocumentLocation", "typeMode": "none", "input": [ { "name": "src", "type": "HealthCareFacility", "mode": "source" }, { "name": "bundle", "type": "Bundle", "mode": "target" }, { "name": "tgt", "type": "Location", "mode": "target" } ], "rule": [ { "name": "id", "source": [ { "context": "src", "element": "id", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "identifier", "variable": "vvv", "transform": "create" } ] }, { "name": "code", "source": [ { "context": "src", "element": "code", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "type", "variable": "vvv", "transform": "create" } ] }, { "name": "location", "source": [ { "context": "src", "element": "location", "variable": "location" } ], "rule": [ { "name": "addr", "source": [ { "context": "location", "element": "addr", "variable": "vvv" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "address", "variable": "vvv", "transform": "create" } ], "documentation": "place names are usually stored with no parts location.name as srcName -> tgt.name = cast(srcName, 'string');" }, { "name": "org", "source": [ { "context": "location", "element": "serviceProviderOrganization", "variable": "srcOrg" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "e" }, { "context": "e", "contextType": "variable", "element": "resource", "variable": "organization", "transform": "create", "parameter": [ { "valueString": "Organization" } ] }, { "context": "organization", "contextType": "variable", "element": "id", "variable": "uuid3", "transform": "uuid" }, { "context": "e", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "uuid3" } ] } ], "rule": [ { "name": "organization", "source": [ { "context": "srcOrg" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "managingOrganization", "variable": "reference", "transform": "create", "parameter": [ { "valueString": "Reference" } ] }, { "context": "reference", "contextType": "variable", "element": "reference", "transform": "evaluate", "parameter": [ { "valueString": "'urn:uuid:' + %organization.id" } ] } ], "dependent": [ { "name": "ClinicalDocumentOrganization", "variable": [ "srcOrg", "organization" ] } ] } ] } ] } ] }, { "name": "ChExtEprTime", "typeMode": "none", "documentation": "source dataEnterer: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.2.7 source author: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.840.1.113883.10.12.102 target: https://build.fhir.org/ig/hl7ch/ch-core//StructureDefinition-ch-ext-epr-time.html", "input": [ { "name": "src", "type": "TSDateTime", "mode": "source" }, { "name": "ext", "type": "Extension", "mode": "target" } ], "rule": [ { "name": "url", "source": [ { "context": "src" } ], "target": [ { "context": "ext", "contextType": "variable", "element": "url", "transform": "copy", "parameter": [ { "valueString": "http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-time" } ] } ] }, { "name": "value", "source": [ { "context": "src" } ], "target": [ { "context": "ext", "contextType": "variable", "element": "value", "variable": "value", "transform": "create", "parameter": [ { "valueString": "dateTime" } ] } ], "dependent": [ { "name": "TSDateTime", "variable": [ "src", "value" ] } ] } ] }, { "name": "ChExtEprSectionId", "typeMode": "none", "documentation": "https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.3.45 target: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-ext-epr-sectionid.html", "input": [ { "name": "src", "type": "II", "mode": "source" }, { "name": "ext", "type": "Extension", "mode": "target" } ], "rule": [ { "name": "url", "source": [ { "context": "src" } ], "target": [ { "context": "ext", "contextType": "variable", "element": "url", "transform": "copy", "parameter": [ { "valueString": "http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-sectionid" } ] } ] }, { "name": "value", "source": [ { "context": "src" } ], "target": [ { "context": "ext", "contextType": "variable", "element": "value", "variable": "value", "transform": "create", "parameter": [ { "valueString": "Identifier" } ] } ], "dependent": [ { "name": "II", "variable": [ "src", "value" ] } ] } ] }, { "name": "NarrativeLink", "typeMode": "none", "documentation": "_________________________ Template Type not specified ___________________", "input": [ { "name": "url", "mode": "source" }, { "name": "ext", "type": "Extension", "mode": "target" } ], "rule": [ { "name": "url", "source": [ { "context": "url" } ], "target": [ { "context": "ext", "contextType": "variable", "element": "url", "transform": "copy", "parameter": [ { "valueString": "http://hl7.org/fhir/StructureDefinition/narrativeLink" } ] } ] }, { "name": "value", "source": [ { "context": "url" } ], "target": [ { "context": "ext", "contextType": "variable", "element": "value", "variable": "value", "transform": "create", "parameter": [ { "valueString": "url" } ] }, { "context": "value", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "url" } ] } ] } ] } ] }