| Package | ch.fhir.ig.cda-fhir-maps |
| Resource Type | StructureMap |
| Id | BundleToCdaCh |
| FHIR Version | R4 |
| Source | http://fhir.ch/ig/cda-fhir-maps/http://fhir.ch/ig/cda-fhir-maps/StructureMap-BundleToCdaCh.html |
| URL | http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCdaCh |
| Version | 0.3.0 |
| Status | draft |
| Date | 2022-02-11T11:14:39+01:00 |
| Name | BundleToCdaCh |
| Realm | ch |
| Authority | hl7 |
| Description | CDA-CH document, 2.16.756.5.30.1.1.10.1.14 2020-01-16 Oliver Egger, copyright ahdis ag, Apache License CDA-CH: https://art-decor.org/art-decor/decor-templates--hl7chcda- FHIR CH-Core: http://fhir.ch/ig/ch-core/index.html |
| 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/BundleToCdaCh" = "BundleToCdaCh"
// CDA-CH document, 2.16.756.5.30.1.1.10.1.14
// 2020-01-16 Oliver Egger, copyright ahdis ag, Apache License
// CDA-CH: https://art-decor.org/art-decor/decor-templates--hl7chcda-
// FHIR CH-Core: http://fhir.ch/ig/ch-core/index.html
uses "http://hl7.org/fhir/cda/StructureDefinition/ClinicalDocument" alias ClinicalDocument as target
uses "http://hl7.org/fhir/cda/StructureDefinition/Author" alias Author as target
uses "http://hl7.org/fhir/cda/StructureDefinition/RecordTarget" alias RecordTarget as target
uses "http://hl7.org/fhir/cda/StructureDefinition/DataEnterer" alias DataEnterer as target
uses "http://hl7.org/fhir/cda/StructureDefinition/AssignedEntity" alias AssignedEntity as target
uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as source
uses "http://hl7.org/fhir/StructureDefinition/Composition" alias Composition as source
uses "http://hl7.org/fhir/StructureDefinition/Person" alias Person as source
imports "http://fhir.ch/ig/cda-fhir-maps/StructureMap/FhirToCdaTypes"
imports "http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCda"
// source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-document.html
// target: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.1.14
group BundleToCdaCh(source bundle : Bundle, target cda : ClinicalDocument) {
bundle -> cda.recordTarget as recordTarget, cda.author as author then BundleToClinicalDocumentCh(bundle, recordTarget, author, cda) "bundle";
}
// source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-document.html
// target: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.1.14
group BundleToClinicalDocumentCh(source bundle : Bundle, target recordTarget : RecordTarget, target author : Author, target cda : ClinicalDocument) extends BundleToClinicalDocument {
bundle -> author.templateId as templateId, templateId.root = '2.16.756.5.30.1.1.10.9.23' "tempalteId";
bundle -> recordTarget.templateId as templateId, templateId.root = '2.16.756.5.30.1.1.10.2.1' "tempalteId";
bundle -> cda.custodian as custodian, custodian.templateId as templateId, templateId.root = '2.16.756.5.30.1.1.10.2.3' "tempalteId";
bundle -> cda.realmCode as realmCode then {
bundle -> realmCode.code = 'CHE' "CHE";
} "realmCode";
bundle -> cda.templateId as templateId then {
bundle -> templateId.root = '2.16.756.5.30.1.1.10.1.9' "root";
} "0-structuredBody";
bundle -> cda.templateId as templateId then {
bundle -> templateId.root = '2.16.840.1.113883.10.12.2' "root";
} "componentAsStructuredBody";
bundle -> cda.templateId as templateId then {
bundle -> templateId.root = '2.16.840.1.113883.10.12.1' "root";
} "HL7CdaR2-2005";
bundle.entry as entry then {
entry.resource as resource where $this.ofType(FHIR.Composition) then CompositionClinicalDocumentCH(bundle, resource, cda);
};
}
// _________________________ Section Level Templates _________________________
// source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-composition-definitions.html#Composition.section
// target: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.3.2
group SectionCdaRemarksCoded(source bundle : Bundle, source section : Section, target cdasection : CdaSection) extends SectionCdaSection {
section -> cdasection.templateId as templateId, templateId.root = '2.16.756.5.30.1.1.10.3.2' "templateId";
section -> cdasection.entry as entry, entry.act as act, act.classCode = 'ACT', act.moodCode = 'EVN' then {
section -> act.templateId as templateId, templateId.root = '2.16.756.5.30.1.1.10.4.2' "templateId";
section -> act.templateId as templateId, templateId.root = '2.16.840.1.113883.10.20.1.40' "templateId";
section -> act.templateId as templateId, templateId.root = '1.3.6.1.4.1.19376.1.5.3.1.4.2' "templateId";
section -> act.code as code, code.code = '48767-8', code.codeSystem = '2.16.840.1.113883.6.1', code.codeSystemName = 'LOINC', code.displayName = 'Annotation comment' "code";
// <span id="co1">
section.text as text then {
text.div as div -> act.text as text, text.reference as reference, reference.value = ('#' + %div.substring(%div.indexOf('id') + %div.substring(%div.indexOf('id')).indexOf('\"') + 1, %div.substring(%div.indexOf('id') + %div.substring(%div.indexOf('id')).indexOf('\"') + 1).indexOf('\"'))) "id";
};
section -> act.statusCode as statusCode, statusCode.code = 'completed' "completed";
} "entry";
}
group SectionCdaOriginalRepresentationObservationMedia(source binary : Binary, source section : Section, target cdasection : CdaSection) {
section -> cdasection.text = '<div xmlns=\"http://www.w3.org/1999/xhtml\">Representation of the original view:<img src=\"pdf1\"/></div>' "Section";
section -> cdasection.entry as entry then {
binary -> entry.typeCode = 'DRIV' "driv";
binary -> entry.observationMedia as observationMedia, observationMedia.classCode = 'OBS', observationMedia.moodCode = 'EVN' then {
binary -> observationMedia.templateId as templateId, templateId.root = '2.16.756.5.30.1.1.10.4.83' "templateId";
binary -> observationMedia.ID = 'pdf1' "reference";
binary -> observationMedia.value as value, value.mediaType = '2.16.756.5.30.1.1.10.4.83', value.representation = 'B64' then {
binary.contentType as contentType -> value.mediaType = contentType;
binary.data as data -> value.data = data;
binary.language as lang -> observationMedia.languageCode as languageCode, languageCode.code = lang "lang";
binary where $this.language.exists() = false -> observationMedia.languageCode as languageCode, languageCode.nullFlavor = 'UNK' "langUnknown";
} "value";
} "observationMedia";
} "entry";
}
// source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-composition-definitions.html#Composition.section
// target: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.1.14
// target: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.4.83
group SectionCdaOriginalRepresentation(source bundle : Bundle, source section : Section, target cdasection : CdaSection) extends SectionCdaSection {
section -> cdasection.templateId as templateId, templateId.root = '2.16.756.5.30.1.1.10.3.45' "templateId";
section where title.exists().not() then {
section where (%bundle.entry[0].resource.language.startsWith('de')) -> cdasection.title as title, title.data = 'Original Darstellung' "titleDE";
section where (%bundle.entry[0].resource.language.startsWith('fr')) -> cdasection.title as title, title.data = 'Représentation originale' "titleFR";
section where (%bundle.entry[0].resource.language.startsWith('it')) -> cdasection.title as title, title.data = 'Rappresentazione originale' "titleIT";
section where (%bundle.entry[0].resource.language.startsWith('en')) -> cdasection.title as title, title.data = 'Original representation' "titleEN";
} "defaulttitles";
bundle.entry as entry then {
entry.fullUrl where ($this in %section.entry.reference) and $this.startsWith('urn:uuid') then {
entry.resource as binary then SectionCdaOriginalRepresentationObservationMedia(binary, section, cdasection) "patient";
} "fullUrlAsUuid";
entry.resource as binary where ('Binary' + '/' + $this.id) in %section.entry.reference then SectionCdaOriginalRepresentationObservationMedia(binary, section, cdasection) "patient";
} "patient";
}
// _________________________ Entry Level Templates ________________________
// _________________________ Header Level Templates _________________________
// source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-composition-epr.html
// target: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.9.12
group PersonAssignedEntityWithId(source practitioner : Practitioner, target assignedEntity : AssignedEntity) {
practitioner.identifier as identifier -> assignedEntity.id as id then IdentifierII(identifier, id);
practitioner.address as address -> assignedEntity.addr as addr then AddressAD(address, addr);
practitioner.name as humanname -> assignedEntity.assignedPerson as assignedPerson, assignedPerson.name as en then HumanNameEN(humanname, en);
}
// source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-composition-epr.html
// target: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.9.12
group DataEnterer(source bundle : Bundle, source practitionerRole : PractitionerRole, target assignedEntity : AssignedEntity) {
practitionerRole.practitioner as practitioner then {
practitioner.reference as reference then {
bundle.entry as entry then {
entry.fullUrl where ($this in %reference.value) and $this.startsWith('urn:uuid') then {
entry.resource : Practitioner as practitioner then PersonAssignedEntityWithId(practitioner, assignedEntity) "AssignedEntityWithId";
} "uuid";
entry.resource : Practitioner as practitioner where ('Practitioner' + '/' + $this.id) in %reference.value then PersonAssignedEntityWithId(practitioner, assignedEntity) "AssignedEntityWithId";
} "practitioner";
} "valueReference";
} "extensionPerson";
practitionerRole.organization as organization -> assignedEntity.representedOrganization as representedOrganization then {
organization.reference as reference then {
bundle.entry as entry then {
entry.fullUrl where ($this in %reference.value) and $this.startsWith('urn:uuid') then {
entry.resource : Organization as organization then Organization2CdaOrganization(organization, representedOrganization) "representedOrganization";
} "uuid";
entry.resource : Organization as organization where ('Organization' + '/' + $this.id) in %reference.value then Organization2CdaOrganization(organization, representedOrganization) "representedOrganization";
} "practitioner";
} "valueReference";
} "extensionPerson";
}
// _________________________ Template Type not specified ___________________
// source: http://hl7.org/fhir/R4/person.html
// target: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.9.36
group CompositionClinicalDocumentCH(source bundle : Bundle, source composition : Composition, target cda : ClinicalDocument) {
composition.type as type then {
type.coding as coding where $this.system = 'http://snomed.info/sct' -> cda.code as code, code.translation as translation then CodingCE(coding, translation) "translation";
};
composition.confidentiality as conf where $this.extension.where(url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-confidentialitycode').exists() -> cda.confidentialityCode as cdaconf then {
conf.extension as extension then {
extension.valueCodeableConcept as valueCodeableConcept then {
valueCodeableConcept.coding as coding then CodingCE(coding, cdaconf);
};
};
} "confidentialityCode";
// If setId exists as Composition.ch-ext-epr-setid, then map to ClinicalDocument.setId
composition.identifier as identifier where $this.system = 'urn:ietf:rfc:3986' -> cda.setId as setId then IdentifierII(identifier, setId) "IdentifierII";
// If setId doesn't exist, used bundle.identifer
composition where $this.identifier.where(system = 'urn:ietf:rfc:3986').exists() = false then {
bundle.identifier as identifier -> cda.setId as id then IdentifierII(identifier, id) "setId";
} "setIdCreated";
// If versionNumber exists as Composition.ch-ext-epr-versionnumber, then map to ClinicalDocument.versionNumber
composition.extension as ext where $this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-versionnumber' -> cda.versionNumber as versionNumber then {
ext.valueUnsignedInt as valueUnsignedInt then IntegerINT(valueUnsignedInt, versionNumber) "IntegerInt";
} "versionNumberMapped";
// If versionNumber doesn't exist, create ClinicalDocument.versionNumber = 1
composition as composition where $this.extension.where(url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-versionnumber').exists() = false -> cda.versionNumber as versionNumber then {
composition -> versionNumber.value = '1' "versionNumber";
} "versionNumberCreated";
composition.extension as extension where $this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-informationrecipient' -> cda.informationRecipient as informationRecipient then {
extension -> informationRecipient.typeCode = 'PRCP' "PRCP";
extension -> informationRecipient.templateId as templateId, templateId.root = '2.16.756.5.30.1.1.10.2.4' "templateId";
extension.valueReference as valueReference then {
bundle.entry as entry then {
entry.fullUrl where ($this in %valueReference.reference) and $this.startsWith('urn:uuid') then {
entry.resource : Patient as patient -> informationRecipient.intendedRecipient as intendedRecipient share intendedRecipient then {
patient.address as address -> intendedRecipient.addr as addr then AddressAD(address, addr);
patient.name as humanname -> intendedRecipient.informationRecipient as informationRecipient2, informationRecipient2.name as en then HumanNameEN(humanname, en);
} "fullUrlPatient";
entry.resource : Organization as organization -> informationRecipient.intendedRecipient as intendedRecipient share intendedRecipient, intendedRecipient.receivedOrganization as receivedOrganization then Organization2CdaOrganization(organization, receivedOrganization) "organization";
} "uuid";
entry.resource : Patient as patient where (($this.id = %valueReference.reference.substring(8)) or ($this.id = %valueReference.reference.substring(9))) -> informationRecipient.intendedRecipient as intendedRecipient share intendedRecipient then {
patient.address as address -> intendedRecipient.addr as addr then AddressAD(address, addr);
patient.name as humanname -> intendedRecipient.informationRecipient as informationRecipient2, informationRecipient2.name as en then HumanNameEN(humanname, en);
} "intendedRecipient";
entry.resource : Organization as organization where (($this.id = %valueReference.reference.substring(13)) or ($this.id = %valueReference.reference.substring(9))) -> informationRecipient.intendedRecipient as intendedRecipient share intendedRecipient, intendedRecipient.receivedOrganization as receivedOrganization then Organization2CdaOrganization(organization, receivedOrganization) "organization";
};
};
} "informationRecipient";
composition.extension as extension where $this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-dataenterer' -> cda.dataEnterer as dataEnterer then {
extension -> dataEnterer.templateId as templateId, templateId.root = '2.16.756.5.30.1.1.10.2.7' "templateId";
extension.extension as extensionTime where $this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-time' then {
extensionTime.valueDateTime as valueDateTime -> dataEnterer.time as time then DateTimeTS(valueDateTime, time) "DateTime";
} "extensionTime";
extension.extension as extensionPerson where $this.url = 'enterer' then {
extensionPerson.valueReference as valueReference then {
bundle.entry as entry then {
entry.fullUrl where ($this in %valueReference.reference) and $this.startsWith('urn:uuid') then {
entry.resource : PractitionerRole as practitionerRole -> dataEnterer.assignedEntity as assignedEntity then DataEnterer(bundle, practitionerRole, assignedEntity) "AssignedEntityWithId";
} "uuid";
entry.resource : PractitionerRole as practitionerRole where ('PractitionerRole' + '/' + $this.id) in %valueReference.reference -> dataEnterer.assignedEntity as assignedEntity then DataEnterer(bundle, practitionerRole, assignedEntity) "AssignedEntityWithId";
} "practitioner";
};
} "extensionPerson";
} "dataEnterer";
}
{
"resourceType": "StructureMap",
"id": "BundleToCdaCh",
"meta": {
"versionId": "3",
"lastUpdated": "2021-11-04T13:44:54.811+01:00"
},
"text": {
"status": "generated",
"div": "<!-- snip (see above) -->"
},
"url": "http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCdaCh",
"version": "0.3.0",
"name": "BundleToCdaCh",
"status": "draft",
"date": "2022-02-11T11:14:39+01:00",
"publisher": "ahdis",
"contact": [
{
"name": "ahdis",
"telecom": [
{
"system": "url",
"value": "http://www.ahdis.ch/"
}
]
}
],
"description": "\r\nCDA-CH document, 2.16.756.5.30.1.1.10.1.14\r\n2020-01-16 Oliver Egger, copyright ahdis ag, Apache License\r\nCDA-CH: https://art-decor.org/art-decor/decor-templates--hl7chcda-\r\nFHIR CH-Core: http://fhir.ch/ig/ch-core/index.html\r\n",
"copyright": "CC-BY-SA-4.0",
"structure": [
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/ClinicalDocument",
"mode": "target",
"alias": "ClinicalDocument"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/Author",
"mode": "target",
"alias": "Author"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/RecordTarget",
"mode": "target",
"alias": "RecordTarget"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/DataEnterer",
"mode": "target",
"alias": "DataEnterer"
},
{
"url": "http://hl7.org/fhir/cda/StructureDefinition/AssignedEntity",
"mode": "target",
"alias": "AssignedEntity"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode": "source",
"alias": "Bundle"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Composition",
"mode": "source",
"alias": "Composition"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Person",
"mode": "source",
"alias": "Person"
}
],
"import": [
"http://fhir.ch/ig/cda-fhir-maps/StructureMap/FhirToCdaTypes",
"http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCda"
],
"group": [
{
"name": "BundleToCdaCh",
"typeMode": "none",
"documentation": "source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-document.html\r\ntarget: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.1.14",
"input": [
{
"name": "bundle",
"type": "Bundle",
"mode": "source"
},
{
"name": "cda",
"type": "ClinicalDocument",
"mode": "target"
}
],
"rule": [
{
"name": "bundle",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "recordTarget",
"variable": "recordTarget"
},
{
"context": "cda",
"contextType": "variable",
"element": "author",
"variable": "author"
}
],
"dependent": [
{
"name": "BundleToClinicalDocumentCh",
"variable": [
"bundle",
"recordTarget",
"author",
"cda"
]
}
]
}
]
},
{
"name": "BundleToClinicalDocumentCh",
"extends": "BundleToClinicalDocument",
"typeMode": "none",
"documentation": "source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-document.html\r\ntarget: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.1.14",
"input": [
{
"name": "bundle",
"type": "Bundle",
"mode": "source"
},
{
"name": "recordTarget",
"type": "RecordTarget",
"mode": "target"
},
{
"name": "author",
"type": "Author",
"mode": "target"
},
{
"name": "cda",
"type": "ClinicalDocument",
"mode": "target"
}
],
"rule": [
{
"name": "tempalteId",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "author",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.9.23"
}
]
}
]
},
{
"name": "tempalteId",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "recordTarget",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.2.1"
}
]
}
]
},
{
"name": "tempalteId",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "custodian",
"variable": "custodian"
},
{
"context": "custodian",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.2.3"
}
]
}
]
},
{
"name": "realmCode",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "realmCode",
"variable": "realmCode"
}
],
"rule": [
{
"name": "CHE",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "realmCode",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "CHE"
}
]
}
]
}
]
},
{
"name": "CDA-CHv2.0-structuredBody",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
}
],
"rule": [
{
"name": "root",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.1.9"
}
]
}
]
}
]
},
{
"name": "HL7CdaR2-2005-containsClinicalDocument.componentAsStructuredBody",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
}
],
"rule": [
{
"name": "root",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.840.1.113883.10.12.2"
}
]
}
]
}
]
},
{
"name": "HL7CdaR2-2005",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
}
],
"rule": [
{
"name": "root",
"source": [
{
"context": "bundle"
}
],
"target": [
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.840.1.113883.10.12.1"
}
]
}
]
}
]
},
{
"name": "entry",
"source": [
{
"context": "bundle",
"element": "entry",
"variable": "entry"
}
],
"rule": [
{
"name": "resource",
"source": [
{
"context": "entry",
"element": "resource",
"variable": "resource",
"condition": "$this.ofType(FHIR.Composition)"
}
],
"dependent": [
{
"name": "CompositionClinicalDocumentCH",
"variable": [
"bundle",
"resource",
"cda"
]
}
]
}
]
}
]
},
{
"name": "SectionCdaRemarksCoded",
"extends": "SectionCdaSection",
"typeMode": "none",
"documentation": "_________________________ Section Level Templates _________________________\r\nsource: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-composition-definitions.html#Composition.section\r\ntarget: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.3.2",
"input": [
{
"name": "bundle",
"type": "Bundle",
"mode": "source"
},
{
"name": "section",
"type": "Section",
"mode": "source"
},
{
"name": "cdasection",
"type": "CdaSection",
"mode": "target"
}
],
"rule": [
{
"name": "templateId",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "cdasection",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.3.2"
}
]
}
]
},
{
"name": "entry",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "cdasection",
"contextType": "variable",
"element": "entry",
"variable": "entry"
},
{
"context": "entry",
"contextType": "variable",
"element": "act",
"variable": "act"
},
{
"context": "act",
"contextType": "variable",
"element": "classCode",
"transform": "copy",
"parameter": [
{
"valueString": "ACT"
}
]
},
{
"context": "act",
"contextType": "variable",
"element": "moodCode",
"transform": "copy",
"parameter": [
{
"valueString": "EVN"
}
]
}
],
"rule": [
{
"name": "templateId",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "act",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.4.2"
}
]
}
]
},
{
"name": "templateId",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "act",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.840.1.113883.10.20.1.40"
}
]
}
]
},
{
"name": "templateId",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "act",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "1.3.6.1.4.1.19376.1.5.3.1.4.2"
}
]
}
]
},
{
"name": "code",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "act",
"contextType": "variable",
"element": "code",
"variable": "code"
},
{
"context": "code",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "48767-8"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "codeSystem",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.840.1.113883.6.1"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "codeSystemName",
"transform": "copy",
"parameter": [
{
"valueString": "LOINC"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "displayName",
"transform": "copy",
"parameter": [
{
"valueString": "Annotation comment"
}
]
}
]
},
{
"name": "section.text",
"source": [
{
"context": "section",
"element": "text",
"variable": "text"
}
],
"rule": [
{
"name": "id",
"source": [
{
"context": "text",
"element": "div",
"variable": "div"
}
],
"target": [
{
"context": "act",
"contextType": "variable",
"element": "text",
"variable": "text"
},
{
"context": "text",
"contextType": "variable",
"element": "reference",
"variable": "reference"
},
{
"context": "reference",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "'#' + %div.substring(%div.indexOf('id') + %div.substring(%div.indexOf('id')).indexOf('\\\"') + 1, %div.substring(%div.indexOf('id') + %div.substring(%div.indexOf('id')).indexOf('\\\"') + 1).indexOf('\\\"'))"
}
]
}
]
}
],
"documentation": "<span id=\"co1\">"
},
{
"name": "completed",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "act",
"contextType": "variable",
"element": "statusCode",
"variable": "statusCode"
},
{
"context": "statusCode",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "completed"
}
]
}
]
}
]
}
]
},
{
"name": "SectionCdaOriginalRepresentationObservationMedia",
"typeMode": "none",
"input": [
{
"name": "binary",
"type": "Binary",
"mode": "source"
},
{
"name": "section",
"type": "Section",
"mode": "source"
},
{
"name": "cdasection",
"type": "CdaSection",
"mode": "target"
}
],
"rule": [
{
"name": "Section",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "cdasection",
"contextType": "variable",
"element": "text",
"transform": "copy",
"parameter": [
{
"valueString": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Representation of the original view:<img src=\"pdf1\"/></div>"
}
]
}
]
},
{
"name": "entry",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "cdasection",
"contextType": "variable",
"element": "entry",
"variable": "entry"
}
],
"rule": [
{
"name": "driv",
"source": [
{
"context": "binary"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "typeCode",
"transform": "copy",
"parameter": [
{
"valueString": "DRIV"
}
]
}
]
},
{
"name": "observationMedia",
"source": [
{
"context": "binary"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "observationMedia",
"variable": "observationMedia"
},
{
"context": "observationMedia",
"contextType": "variable",
"element": "classCode",
"transform": "copy",
"parameter": [
{
"valueString": "OBS"
}
]
},
{
"context": "observationMedia",
"contextType": "variable",
"element": "moodCode",
"transform": "copy",
"parameter": [
{
"valueString": "EVN"
}
]
}
],
"rule": [
{
"name": "templateId",
"source": [
{
"context": "binary"
}
],
"target": [
{
"context": "observationMedia",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.4.83"
}
]
}
]
},
{
"name": "reference",
"source": [
{
"context": "binary"
}
],
"target": [
{
"context": "observationMedia",
"contextType": "variable",
"element": "ID",
"transform": "copy",
"parameter": [
{
"valueString": "pdf1"
}
]
}
]
},
{
"name": "value",
"source": [
{
"context": "binary"
}
],
"target": [
{
"context": "observationMedia",
"contextType": "variable",
"element": "value",
"variable": "value"
},
{
"context": "value",
"contextType": "variable",
"element": "mediaType",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.4.83"
}
]
},
{
"context": "value",
"contextType": "variable",
"element": "representation",
"transform": "copy",
"parameter": [
{
"valueString": "B64"
}
]
}
],
"rule": [
{
"name": "contentType",
"source": [
{
"context": "binary",
"element": "contentType",
"variable": "contentType"
}
],
"target": [
{
"context": "value",
"contextType": "variable",
"element": "mediaType",
"transform": "copy",
"parameter": [
{
"valueId": "contentType"
}
]
}
]
},
{
"name": "data",
"source": [
{
"context": "binary",
"element": "data",
"variable": "data"
}
],
"target": [
{
"context": "value",
"contextType": "variable",
"element": "data",
"transform": "copy",
"parameter": [
{
"valueId": "data"
}
]
}
]
},
{
"name": "lang",
"source": [
{
"context": "binary",
"element": "language",
"variable": "lang"
}
],
"target": [
{
"context": "observationMedia",
"contextType": "variable",
"element": "languageCode",
"variable": "languageCode"
},
{
"context": "languageCode",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueId": "lang"
}
]
}
]
},
{
"name": "langUnknown",
"source": [
{
"context": "binary",
"condition": "$this.language.exists() = false"
}
],
"target": [
{
"context": "observationMedia",
"contextType": "variable",
"element": "languageCode",
"variable": "languageCode"
},
{
"context": "languageCode",
"contextType": "variable",
"element": "nullFlavor",
"transform": "copy",
"parameter": [
{
"valueString": "UNK"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name": "SectionCdaOriginalRepresentation",
"extends": "SectionCdaSection",
"typeMode": "none",
"documentation": "source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-composition-definitions.html#Composition.section\r\ntarget: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.1.14\r\ntarget: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.4.83",
"input": [
{
"name": "bundle",
"type": "Bundle",
"mode": "source"
},
{
"name": "section",
"type": "Section",
"mode": "source"
},
{
"name": "cdasection",
"type": "CdaSection",
"mode": "target"
}
],
"rule": [
{
"name": "templateId",
"source": [
{
"context": "section"
}
],
"target": [
{
"context": "cdasection",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.3.45"
}
]
}
]
},
{
"name": "defaulttitles",
"source": [
{
"context": "section",
"condition": "title.exists().not()"
}
],
"rule": [
{
"name": "titleDE",
"source": [
{
"context": "section",
"condition": "(%bundle.entry[0].resource.language.startsWith('de'))"
}
],
"target": [
{
"context": "cdasection",
"contextType": "variable",
"element": "title",
"variable": "title"
},
{
"context": "title",
"contextType": "variable",
"element": "data",
"transform": "copy",
"parameter": [
{
"valueString": "Original Darstellung"
}
]
}
]
},
{
"name": "titleFR",
"source": [
{
"context": "section",
"condition": "(%bundle.entry[0].resource.language.startsWith('fr'))"
}
],
"target": [
{
"context": "cdasection",
"contextType": "variable",
"element": "title",
"variable": "title"
},
{
"context": "title",
"contextType": "variable",
"element": "data",
"transform": "copy",
"parameter": [
{
"valueString": "Représentation originale"
}
]
}
]
},
{
"name": "titleIT",
"source": [
{
"context": "section",
"condition": "(%bundle.entry[0].resource.language.startsWith('it'))"
}
],
"target": [
{
"context": "cdasection",
"contextType": "variable",
"element": "title",
"variable": "title"
},
{
"context": "title",
"contextType": "variable",
"element": "data",
"transform": "copy",
"parameter": [
{
"valueString": "Rappresentazione originale"
}
]
}
]
},
{
"name": "titleEN",
"source": [
{
"context": "section",
"condition": "(%bundle.entry[0].resource.language.startsWith('en'))"
}
],
"target": [
{
"context": "cdasection",
"contextType": "variable",
"element": "title",
"variable": "title"
},
{
"context": "title",
"contextType": "variable",
"element": "data",
"transform": "copy",
"parameter": [
{
"valueString": "Original representation"
}
]
}
]
}
]
},
{
"name": "patient",
"source": [
{
"context": "bundle",
"element": "entry",
"variable": "entry"
}
],
"rule": [
{
"name": "fullUrlAsUuid",
"source": [
{
"context": "entry",
"element": "fullUrl",
"condition": "($this in %section.entry.reference) and $this.startsWith('urn:uuid')"
}
],
"rule": [
{
"name": "patient",
"source": [
{
"context": "entry",
"element": "resource",
"variable": "binary"
}
],
"dependent": [
{
"name": "SectionCdaOriginalRepresentationObservationMedia",
"variable": [
"binary",
"section",
"cdasection"
]
}
]
}
]
},
{
"name": "patient",
"source": [
{
"context": "entry",
"element": "resource",
"variable": "binary",
"condition": "('Binary' + '/' + $this.id) in %section.entry.reference"
}
],
"dependent": [
{
"name": "SectionCdaOriginalRepresentationObservationMedia",
"variable": [
"binary",
"section",
"cdasection"
]
}
]
}
]
}
]
},
{
"name": "PersonAssignedEntityWithId",
"typeMode": "none",
"documentation": "_________________________ Entry Level Templates ________________________\r\n_________________________ Header Level Templates _________________________\r\nsource: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-composition-epr.html\r\ntarget: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.9.12",
"input": [
{
"name": "practitioner",
"type": "Practitioner",
"mode": "source"
},
{
"name": "assignedEntity",
"type": "AssignedEntity",
"mode": "target"
}
],
"rule": [
{
"name": "identifier",
"source": [
{
"context": "practitioner",
"element": "identifier",
"variable": "identifier"
}
],
"target": [
{
"context": "assignedEntity",
"contextType": "variable",
"element": "id",
"variable": "id"
}
],
"dependent": [
{
"name": "IdentifierII",
"variable": [
"identifier",
"id"
]
}
]
},
{
"name": "address",
"source": [
{
"context": "practitioner",
"element": "address",
"variable": "address"
}
],
"target": [
{
"context": "assignedEntity",
"contextType": "variable",
"element": "addr",
"variable": "addr"
}
],
"dependent": [
{
"name": "AddressAD",
"variable": [
"address",
"addr"
]
}
]
},
{
"name": "name",
"source": [
{
"context": "practitioner",
"element": "name",
"variable": "humanname"
}
],
"target": [
{
"context": "assignedEntity",
"contextType": "variable",
"element": "assignedPerson",
"variable": "assignedPerson"
},
{
"context": "assignedPerson",
"contextType": "variable",
"element": "name",
"variable": "en"
}
],
"dependent": [
{
"name": "HumanNameEN",
"variable": [
"humanname",
"en"
]
}
]
}
]
},
{
"name": "DataEnterer",
"typeMode": "none",
"documentation": "source: http://build.fhir.org/ig/hl7ch/ch-core/branches/master/StructureDefinition-ch-core-composition-epr.html\r\ntarget: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.9.12",
"input": [
{
"name": "bundle",
"type": "Bundle",
"mode": "source"
},
{
"name": "practitionerRole",
"type": "PractitionerRole",
"mode": "source"
},
{
"name": "assignedEntity",
"type": "AssignedEntity",
"mode": "target"
}
],
"rule": [
{
"name": "extensionPerson",
"source": [
{
"context": "practitionerRole",
"element": "practitioner",
"variable": "practitioner"
}
],
"rule": [
{
"name": "valueReference",
"source": [
{
"context": "practitioner",
"element": "reference",
"variable": "reference"
}
],
"rule": [
{
"name": "practitioner",
"source": [
{
"context": "bundle",
"element": "entry",
"variable": "entry"
}
],
"rule": [
{
"name": "uuid",
"source": [
{
"context": "entry",
"element": "fullUrl",
"condition": "($this in %reference.value) and $this.startsWith('urn:uuid')"
}
],
"rule": [
{
"name": "AssignedEntityWithId",
"source": [
{
"context": "entry",
"type": "Practitioner",
"element": "resource",
"variable": "practitioner"
}
],
"dependent": [
{
"name": "PersonAssignedEntityWithId",
"variable": [
"practitioner",
"assignedEntity"
]
}
]
}
]
},
{
"name": "AssignedEntityWithId",
"source": [
{
"context": "entry",
"type": "Practitioner",
"element": "resource",
"variable": "practitioner",
"condition": "('Practitioner' + '/' + $this.id) in %reference.value"
}
],
"dependent": [
{
"name": "PersonAssignedEntityWithId",
"variable": [
"practitioner",
"assignedEntity"
]
}
]
}
]
}
]
}
]
},
{
"name": "extensionPerson",
"source": [
{
"context": "practitionerRole",
"element": "organization",
"variable": "organization"
}
],
"target": [
{
"context": "assignedEntity",
"contextType": "variable",
"element": "representedOrganization",
"variable": "representedOrganization"
}
],
"rule": [
{
"name": "valueReference",
"source": [
{
"context": "organization",
"element": "reference",
"variable": "reference"
}
],
"rule": [
{
"name": "practitioner",
"source": [
{
"context": "bundle",
"element": "entry",
"variable": "entry"
}
],
"rule": [
{
"name": "uuid",
"source": [
{
"context": "entry",
"element": "fullUrl",
"condition": "($this in %reference.value) and $this.startsWith('urn:uuid')"
}
],
"rule": [
{
"name": "representedOrganization",
"source": [
{
"context": "entry",
"type": "Organization",
"element": "resource",
"variable": "organization"
}
],
"dependent": [
{
"name": "Organization2CdaOrganization",
"variable": [
"organization",
"representedOrganization"
]
}
]
}
]
},
{
"name": "representedOrganization",
"source": [
{
"context": "entry",
"type": "Organization",
"element": "resource",
"variable": "organization",
"condition": "('Organization' + '/' + $this.id) in %reference.value"
}
],
"dependent": [
{
"name": "Organization2CdaOrganization",
"variable": [
"organization",
"representedOrganization"
]
}
]
}
]
}
]
}
]
}
]
},
{
"name": "CompositionClinicalDocumentCH",
"typeMode": "none",
"documentation": "_________________________ Template Type not specified ___________________\r\nsource: http://hl7.org/fhir/R4/person.html\r\ntarget: https://art-decor.org/art-decor/decor-templates--hl7chcda-?id=2.16.756.5.30.1.1.10.9.36",
"input": [
{
"name": "bundle",
"type": "Bundle",
"mode": "source"
},
{
"name": "composition",
"type": "Composition",
"mode": "source"
},
{
"name": "cda",
"type": "ClinicalDocument",
"mode": "target"
}
],
"rule": [
{
"name": "type",
"source": [
{
"context": "composition",
"element": "type",
"variable": "type"
}
],
"rule": [
{
"name": "translation",
"source": [
{
"context": "type",
"element": "coding",
"variable": "coding",
"condition": "$this.system = 'http://snomed.info/sct'"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "code",
"variable": "code"
},
{
"context": "code",
"contextType": "variable",
"element": "translation",
"variable": "translation"
}
],
"dependent": [
{
"name": "CodingCE",
"variable": [
"coding",
"translation"
]
}
]
}
]
},
{
"name": "confidentialityCode",
"source": [
{
"context": "composition",
"element": "confidentiality",
"variable": "conf",
"condition": "$this.extension.where(url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-confidentialitycode').exists()"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "confidentialityCode",
"variable": "cdaconf"
}
],
"rule": [
{
"name": "extension",
"source": [
{
"context": "conf",
"element": "extension",
"variable": "extension"
}
],
"rule": [
{
"name": "valueCodeableConcept",
"source": [
{
"context": "extension",
"element": "valueCodeableConcept",
"variable": "valueCodeableConcept"
}
],
"rule": [
{
"name": "coding",
"source": [
{
"context": "valueCodeableConcept",
"element": "coding",
"variable": "coding"
}
],
"dependent": [
{
"name": "CodingCE",
"variable": [
"coding",
"cdaconf"
]
}
]
}
]
}
]
}
]
},
{
"name": "IdentifierII",
"source": [
{
"context": "composition",
"element": "identifier",
"variable": "identifier",
"condition": "$this.system = 'urn:ietf:rfc:3986'"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "setId",
"variable": "setId"
}
],
"dependent": [
{
"name": "IdentifierII",
"variable": [
"identifier",
"setId"
]
}
],
"documentation": "If setId exists as Composition.ch-ext-epr-setid, then map to ClinicalDocument.setId"
},
{
"name": "setIdCreated",
"source": [
{
"context": "composition",
"condition": "$this.identifier.where(system = 'urn:ietf:rfc:3986').exists() = false"
}
],
"rule": [
{
"name": "setId",
"source": [
{
"context": "bundle",
"element": "identifier",
"variable": "identifier"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "setId",
"variable": "id"
}
],
"dependent": [
{
"name": "IdentifierII",
"variable": [
"identifier",
"id"
]
}
]
}
],
"documentation": "If setId doesn't exist, used bundle.identifer"
},
{
"name": "versionNumberMapped",
"source": [
{
"context": "composition",
"element": "extension",
"variable": "ext",
"condition": "$this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-versionnumber'"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "versionNumber",
"variable": "versionNumber"
}
],
"rule": [
{
"name": "IntegerInt",
"source": [
{
"context": "ext",
"element": "valueUnsignedInt",
"variable": "valueUnsignedInt"
}
],
"dependent": [
{
"name": "IntegerINT",
"variable": [
"valueUnsignedInt",
"versionNumber"
]
}
]
}
],
"documentation": "If versionNumber exists as Composition.ch-ext-epr-versionnumber, then map to ClinicalDocument.versionNumber"
},
{
"name": "versionNumberCreated",
"source": [
{
"context": "composition",
"variable": "composition",
"condition": "$this.extension.where(url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-versionnumber').exists() = false"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "versionNumber",
"variable": "versionNumber"
}
],
"rule": [
{
"name": "versionNumber",
"source": [
{
"context": "composition"
}
],
"target": [
{
"context": "versionNumber",
"contextType": "variable",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueString": "1"
}
]
}
]
}
],
"documentation": "If versionNumber doesn't exist, create ClinicalDocument.versionNumber = 1"
},
{
"name": "informationRecipient",
"source": [
{
"context": "composition",
"element": "extension",
"variable": "extension",
"condition": "$this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-informationrecipient'"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "informationRecipient",
"variable": "informationRecipient"
}
],
"rule": [
{
"name": "PRCP",
"source": [
{
"context": "extension"
}
],
"target": [
{
"context": "informationRecipient",
"contextType": "variable",
"element": "typeCode",
"transform": "copy",
"parameter": [
{
"valueString": "PRCP"
}
]
}
]
},
{
"name": "templateId",
"source": [
{
"context": "extension"
}
],
"target": [
{
"context": "informationRecipient",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.2.4"
}
]
}
]
},
{
"name": "valueReference",
"source": [
{
"context": "extension",
"element": "valueReference",
"variable": "valueReference"
}
],
"rule": [
{
"name": "entry",
"source": [
{
"context": "bundle",
"element": "entry",
"variable": "entry"
}
],
"rule": [
{
"name": "uuid",
"source": [
{
"context": "entry",
"element": "fullUrl",
"condition": "($this in %valueReference.reference) and $this.startsWith('urn:uuid')"
}
],
"rule": [
{
"name": "fullUrlPatient",
"source": [
{
"context": "entry",
"type": "Patient",
"element": "resource",
"variable": "patient"
}
],
"target": [
{
"context": "informationRecipient",
"contextType": "variable",
"element": "intendedRecipient",
"variable": "intendedRecipient",
"listMode": [
"share"
],
"listRuleId": "intendedRecipient"
}
],
"rule": [
{
"name": "address",
"source": [
{
"context": "patient",
"element": "address",
"variable": "address"
}
],
"target": [
{
"context": "intendedRecipient",
"contextType": "variable",
"element": "addr",
"variable": "addr"
}
],
"dependent": [
{
"name": "AddressAD",
"variable": [
"address",
"addr"
]
}
]
},
{
"name": "name",
"source": [
{
"context": "patient",
"element": "name",
"variable": "humanname"
}
],
"target": [
{
"context": "intendedRecipient",
"contextType": "variable",
"element": "informationRecipient",
"variable": "informationRecipient2"
},
{
"context": "informationRecipient2",
"contextType": "variable",
"element": "name",
"variable": "en"
}
],
"dependent": [
{
"name": "HumanNameEN",
"variable": [
"humanname",
"en"
]
}
]
}
]
},
{
"name": "organization",
"source": [
{
"context": "entry",
"type": "Organization",
"element": "resource",
"variable": "organization"
}
],
"target": [
{
"context": "informationRecipient",
"contextType": "variable",
"element": "intendedRecipient",
"variable": "intendedRecipient",
"listMode": [
"share"
],
"listRuleId": "intendedRecipient"
},
{
"context": "intendedRecipient",
"contextType": "variable",
"element": "receivedOrganization",
"variable": "receivedOrganization"
}
],
"dependent": [
{
"name": "Organization2CdaOrganization",
"variable": [
"organization",
"receivedOrganization"
]
}
]
}
]
},
{
"name": "intendedRecipient",
"source": [
{
"context": "entry",
"type": "Patient",
"element": "resource",
"variable": "patient",
"condition": "(($this.id = %valueReference.reference.substring(8)) or ($this.id = %valueReference.reference.substring(9)))"
}
],
"target": [
{
"context": "informationRecipient",
"contextType": "variable",
"element": "intendedRecipient",
"variable": "intendedRecipient",
"listMode": [
"share"
],
"listRuleId": "intendedRecipient"
}
],
"rule": [
{
"name": "address",
"source": [
{
"context": "patient",
"element": "address",
"variable": "address"
}
],
"target": [
{
"context": "intendedRecipient",
"contextType": "variable",
"element": "addr",
"variable": "addr"
}
],
"dependent": [
{
"name": "AddressAD",
"variable": [
"address",
"addr"
]
}
]
},
{
"name": "name",
"source": [
{
"context": "patient",
"element": "name",
"variable": "humanname"
}
],
"target": [
{
"context": "intendedRecipient",
"contextType": "variable",
"element": "informationRecipient",
"variable": "informationRecipient2"
},
{
"context": "informationRecipient2",
"contextType": "variable",
"element": "name",
"variable": "en"
}
],
"dependent": [
{
"name": "HumanNameEN",
"variable": [
"humanname",
"en"
]
}
]
}
]
},
{
"name": "organization",
"source": [
{
"context": "entry",
"type": "Organization",
"element": "resource",
"variable": "organization",
"condition": "(($this.id = %valueReference.reference.substring(13)) or ($this.id = %valueReference.reference.substring(9)))"
}
],
"target": [
{
"context": "informationRecipient",
"contextType": "variable",
"element": "intendedRecipient",
"variable": "intendedRecipient",
"listMode": [
"share"
],
"listRuleId": "intendedRecipient"
},
{
"context": "intendedRecipient",
"contextType": "variable",
"element": "receivedOrganization",
"variable": "receivedOrganization"
}
],
"dependent": [
{
"name": "Organization2CdaOrganization",
"variable": [
"organization",
"receivedOrganization"
]
}
]
}
]
}
]
}
]
},
{
"name": "dataEnterer",
"source": [
{
"context": "composition",
"element": "extension",
"variable": "extension",
"condition": "$this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-dataenterer'"
}
],
"target": [
{
"context": "cda",
"contextType": "variable",
"element": "dataEnterer",
"variable": "dataEnterer"
}
],
"rule": [
{
"name": "templateId",
"source": [
{
"context": "extension"
}
],
"target": [
{
"context": "dataEnterer",
"contextType": "variable",
"element": "templateId",
"variable": "templateId"
},
{
"context": "templateId",
"contextType": "variable",
"element": "root",
"transform": "copy",
"parameter": [
{
"valueString": "2.16.756.5.30.1.1.10.2.7"
}
]
}
]
},
{
"name": "extensionTime",
"source": [
{
"context": "extension",
"element": "extension",
"variable": "extensionTime",
"condition": "$this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-time'"
}
],
"rule": [
{
"name": "DateTime",
"source": [
{
"context": "extensionTime",
"element": "valueDateTime",
"variable": "valueDateTime"
}
],
"target": [
{
"context": "dataEnterer",
"contextType": "variable",
"element": "time",
"variable": "time"
}
],
"dependent": [
{
"name": "DateTimeTS",
"variable": [
"valueDateTime",
"time"
]
}
]
}
]
},
{
"name": "extensionPerson",
"source": [
{
"context": "extension",
"element": "extension",
"variable": "extensionPerson",
"condition": "$this.url = 'enterer'"
}
],
"rule": [
{
"name": "valueReference",
"source": [
{
"context": "extensionPerson",
"element": "valueReference",
"variable": "valueReference"
}
],
"rule": [
{
"name": "practitioner",
"source": [
{
"context": "bundle",
"element": "entry",
"variable": "entry"
}
],
"rule": [
{
"name": "uuid",
"source": [
{
"context": "entry",
"element": "fullUrl",
"condition": "($this in %valueReference.reference) and $this.startsWith('urn:uuid')"
}
],
"rule": [
{
"name": "AssignedEntityWithId",
"source": [
{
"context": "entry",
"type": "PractitionerRole",
"element": "resource",
"variable": "practitionerRole"
}
],
"target": [
{
"context": "dataEnterer",
"contextType": "variable",
"element": "assignedEntity",
"variable": "assignedEntity"
}
],
"dependent": [
{
"name": "DataEnterer",
"variable": [
"bundle",
"practitionerRole",
"assignedEntity"
]
}
]
}
]
},
{
"name": "AssignedEntityWithId",
"source": [
{
"context": "entry",
"type": "PractitionerRole",
"element": "resource",
"variable": "practitionerRole",
"condition": "('PractitionerRole' + '/' + $this.id) in %valueReference.reference"
}
],
"target": [
{
"context": "dataEnterer",
"contextType": "variable",
"element": "assignedEntity",
"variable": "assignedEntity"
}
],
"dependent": [
{
"name": "DataEnterer",
"variable": [
"bundle",
"practitionerRole",
"assignedEntity"
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}