CDA to FHIR Maps, published by HL7 Italy. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7-it/cda2fhir/ and changes regularly. See the Directory of published versions
| Official URL: http://hl7.it/fhir/cda2fhir/StructureMap/cda2fhirHeader | Version: 0.1.0 | |||
| Draft as of 2025-10-01 | Computable Name: cda2fhirHeader | |||
map "http://hl7.it/fhir/cda2fhir/StructureMap/cda2fhirHeader" = "cda2fhirHeader"
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/AssociatedEntity" alias AssociatedEntity 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/Encounter" alias Encounter 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/Specimen" alias Specimen as produced
uses "http://hl7.org/fhir/StructureDefinition/Organization" alias Organization as produced
uses "http://hl7.org/fhir/cda/StructureDefinition/HealthCareFacility" alias HealthCareFacility as queried
imports "http://hl7.it/fhir/cda2fhir/StructureMap/cda2fhirDataTypes"
group CdaToBundle(source cda : ClinicalDocument, target bundle : Bundle) {
cda -> bundle.entry as e, e.request = create('BackboneElement') as request, request.method = 'POST', e.resource = create('Composition') as composition, composition.id = uuid() as uuid1, e.fullUrl = append('https://example/Composition/', uuid1), request.url = 'Composition', bundle.entry as e2, e2.request = create('BackboneElement') as requestPAT, requestPAT.method = 'PUT', e2.resource = create('Patient') as patient, patient.id = uuid() as uuid2, e2.fullUrl = append('https://example/Patient/', uuid2), bundle.entry as e3, e3.request = create('BackboneElement') as request, request.method = 'POST', e3.resource = create('Encounter') as encounter, encounter.id = uuid() as uuid3, e3.fullUrl = append('https://example/Encounter/', uuid3), request.url = 'Encounter', bundle.entry as e4, e4.request = create('BackboneElement') as request, request.method = 'POST', e4.resource = create('DocumentReference') as DocumentReference, DocumentReference.id = uuid() as uuid4, e4.fullUrl = append('https://example/DocumentReference/', uuid3), request.url = 'DocumentReference' then {
cda then ClinicalDocumentToBundle(cda, patient, composition, encounter, bundle, DocumentReference) "cdatobundle";
cda.recordTarget as recordTarget then {
recordTarget.patientRole as patient then {
patient.id as id -> patient.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext "value";
// r -> requestPAT.url = append('Patient?identifier=',ext) "UUID";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
} "record";
} "recPat";
} "patient";
} "ClinicalDocumentToBody";
}
group ClinicalDocumentToBundle(source cda : ClinicalDocument, target patient : Patient, target composition : Composition, target encounter : Encounter, target bundle : Bundle, target DocumentReference : DocumentReference) {
cda -> bundle.id = uuid() "id";
cda.id -> bundle.identifier "identifier";
cda -> bundle.type = 'transaction' "type";
cda -> bundle.timestamp = (timestamp.now()) "date";
cda then ClinicalDocumentComposition(cda, composition, patient, encounter, bundle, DocumentReference) "composition";
}
group ClinicalDocumentComposition(source src : ClinicalDocument, target tgt : Composition, target patientResource : Patient, target encounter : Encounter, target bundle : Bundle, target DocumentReference : DocumentReference) {
src.languageCode -> tgt.language;
src -> DocumentReference.status = 'current' "status";
src -> DocumentReference.content = create('BackboneElement') as content then {
src -> content.attachment = create('Attachment') as attachment, attachment.title = 'string' "comp";
} "content";
src -> DocumentReference.context = create('BackboneElement') as context then {
src -> context.related = create('Reference') as referenceComp, referenceComp.reference = ('https://example/Composition/' + %tgt.id) "comp";
} "context";
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 where src.title.exists().not() then {
src.code as code then {
code.displayName as display -> tgt.title = cast(display, 'string');
} "display";
} "title";
src.effectiveTime as effectiveTime -> tgt.date = create('dateTime') as value then TSDateTime(effectiveTime, value);
src.versionNumber as versionNumber where (value > 1) -> tgt.extension as ext2 then ChExtEprVersionNumber(versionNumber, ext2);
src.confidentialityCode -> tgt.confidentiality;
src.recordTarget as recordTarget then {
recordTarget.patientRole as patient -> tgt.subject = create('Reference') as reference, reference.reference = ('https://example/Patient/' + %patientResource.id) then ClinicalDocumentPatientRole(patient, patientResource, bundle) "subject";
recordTarget.patientRole as patient -> DocumentReference.subject = create('Reference') as reference1, reference1.reference = ('https://example/Patient/' + %patientResource.id);
} "patientRole";
// START AUTHOR
src.author as srcAuthor then {
srcAuthor.time as time -> tgt.date;
srcAuthor.assignedAuthor as assignedAuthor then {
// Codice Fiscale
assignedAuthor.id as id where (root != '2.16.840.1.113883.2.9.6.3.2') then {
assignedAuthor -> bundle.entry as e1, e1.request = create('BackboneElement') as request, request.method = 'POST', e1.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid1, e1.fullUrl = append('https://example/PractitionerRole/', uuid1), request.url = 'PractitionerRole', tgt.author = create('Reference') as reference, reference.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) then {
// assignedAuthor.code as codice -> practitionerRole.code as code2 then CECodeableConcept(codice,code2);
assignedAuthor -> bundle.entry as e2, e2.request = create('BackboneElement') as request, request.method = 'PUT', e2.resource = create('Practitioner') as practitioner then {
srcAuthor.functionCode -> practitionerRole.code;
assignedAuthor -> practitioner.meta as meta then {
assignedAuthor -> meta.tag = create('Coding') as coding then {
assignedAuthor -> coding.system = 'http://algoritmodiscoring' "system";
assignedAuthor -> coding.code = 'ClinicalDocument/author' "code";
} "coding";
} "meta";
assignedAuthor.code -> practitionerRole.code;
assignedAuthor.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
// then {
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e2.fullUrl = append('https://example/Practitioner/', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id) "aut";
} "r";
} "identifier";
assignedAuthor.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
assignedAuthor.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
assignedAuthor.addr -> practitioner.address;
assignedAuthor.telecom -> practitioner.telecom;
assignedAuthor.assignedPerson as person then {
person.name -> practitioner.name;
person.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10);
} "birth";
} "name";
assignedAuthor -> DocumentReference.author = create('Reference') as referenceAuth, referenceAuth.reference = ('https://example/Practitioner/' + %practitioner.id) "refAuth";
} "ASSAUth";
assignedAuthor.representedOrganization as representedOrganization -> bundle.entry as e3, e3.request = create('BackboneElement') as request, request.method = 'PUT', e3.resource = create('Organization') as organization then {
representedOrganization.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
representedOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid3, e3.fullUrl = append('https://example/Organization/', uuid3), practitionerRole.organization = create('Reference') as referenceOrg, referenceOrg.reference = append('https://example/Organization/', uuid3) "aut";
} "r";
} "identifier";
representedOrganization -> organization.meta as meta then {
representedOrganization -> meta.tag = create('Coding') as coding then {
representedOrganization -> coding.system = 'http://algoritmodiscoring' "system";
representedOrganization -> coding.code = 'ClinicalDocument/author/representedOrganization' "code";
} "coding";
} "meta";
representedOrganization.name as v -> organization.name = (v.other);
representedOrganization.telecom -> organization.telecom;
representedOrganization.addr -> organization.address;
representedOrganization.asOrganizationPartOf as OrgPartOf -> bundle.entry as e4, e4.request = create('BackboneElement') as request, request.method = 'PUT', e4.resource = create('Organization') as organization1 then {
OrgPartOf -> organization1.meta as meta then {
OrgPartOf -> meta.tag = create('Coding') as coding then {
OrgPartOf -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOf -> coding.code = 'ClinicalDocument/author/representedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
OrgPartOf.id as id -> organization1.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid4, e4.fullUrl = append('https://example/Organization/', uuid4), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization1.id) "aut";
} "r";
} "identifier";
OrgPartOf.code -> organization1.type;
OrgPartOf.statusCode as status where (value = 'active') -> organization1.active = create('boolean'), organization1.active = 'true';
OrgPartOf.wholeOrganization as wholeOrgan -> bundle.entry as e10bis, e10bis.request = create('BackboneElement') as request, request.method = 'PUT', e10bis.resource = create('Organization') as organization2 then {
wholeOrgan -> organization2.meta as meta then {
wholeOrgan -> meta.tag = create('Coding') as coding then {
wholeOrgan -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrgan -> coding.code = 'ClinicalDocument/author/representedOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrgan.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrgan -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization2.id = (r + '-' + ext) as uuid5, e10bis.fullUrl = append('https://example/Organization/', uuid5), organization1.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization2.id) "aut";
} "r";
} "identifier";
wholeOrgan.name as v -> organization2.name = (v.other);
wholeOrgan.telecom -> organization2.telecom;
wholeOrgan.addr -> organization2.address;
};
} "OrgPartOf";
};
} "ParcatitionerROL";
} "OIDCF";
// Partita IVA
assignedAuthor.id as id where (root = '2.16.840.1.113883.2.9.6.3.2') then {
assignedAuthor -> bundle.entry as e6bis3, e6bis3.request = create('BackboneElement') as request, request.method = 'POST', e6bis3.resource = create('Device') as device, device.id = uuid() as uuid6bis3, e6bis3.fullUrl = append('https://example/Device/', uuid6bis3), request.url = 'Device', tgt.author = create('Reference') as reference, reference.reference = ('https://example/Device/' + %device.id) then {
assignedAuthor -> bundle.entry as e251, e251.request = create('BackboneElement') as request, request.method = 'PUT', e251.resource = create('Organization') as organization then {
assignedAuthor -> organization.meta as meta then {
assignedAuthor -> meta.tag = create('Coding') as coding then {
assignedAuthor -> coding.system = 'http://algoritmodiscoring' "system";
assignedAuthor -> coding.code = 'ClinicalDocument/AuthorPartitaIVA' "code";
} "coding";
} "meta";
assignedAuthor.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
assignedAuthor -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid2, e251.fullUrl = append('https://example/Organization/', uuid2), device.owner = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization.id);
} "r";
} "identifier";
} "OrgPartitaIVA";
} "Device";
} "oidPartitaIVA";
// ID nullFlavor
assignedAuthor.id as id where nullFlavor.exists() then {
assignedAuthor.assignedAuthoringDevice as assignedAuthoringDevice -> bundle.entry as e6bis, e6bis.request = create('BackboneElement') as request, request.method = 'POST', e6bis.resource = create('Device') as device, device.id = uuid() as uuid6bis, e6bis.fullUrl = append('https://example/Device/', uuid6bis), request.url = 'Device', tgt.author = create('Reference') as reference, reference.reference = ('https://example/Device' + %device.id) then {
// assignedAuthoringDevice.templateId -> device.identifier;
assignedAuthoringDevice.code -> device.type;
assignedAuthoringDevice.manufacturerModelName as manufacturerModelName then {
manufacturerModelName as m -> device.manufacturer = (m.displayName) "displayRule";
} "manufacturer";
assignedAuthoringDevice.softwareName as softwareName -> device.deviceName as deviceName then {
softwareName -> deviceName.type = 'other' "typeName";
softwareName as s -> deviceName.name = (s.displayName) "name";
} "deviceName";
} "Device";
} "NullFlavor";
};
// START DATA ENTER
src.dataEnterer as dataEnt -> bundle.entry as e6, e6.request = create('BackboneElement') as request, request.method = 'POST', e6.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid1, e6.fullUrl = append('https://example/PractitionerRole/', uuid1), request.url = 'PractitionerRole', tgt.author = create('Reference') as reference, reference.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) then {
dataEnt.time as time -> tgt.date;
dataEnt.assignedEntity as assignedEntity -> bundle.entry as e7, e7.request = create('BackboneElement') as request, request.method = 'PUT', e7.resource = create('Practitioner') as practitioner then {
assignedEntity -> practitioner.meta as meta then {
assignedEntity -> meta.tag = create('Coding') as coding then {
assignedEntity -> coding.system = 'http://algoritmodiscoring' "system";
assignedEntity -> coding.code = 'ClinicalDocument/dataEnterer' "code";
} "coding";
} "meta";
assignedEntity.code as codice -> practitionerRole.code as code2 then CECodeableConcept(codice, code2);
assignedEntity.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e7.fullUrl = append('https://example/Practitioner/', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id) "dataenterer";
} "r";
} "identifier";
assignedEntity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
assignedEntity.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
assignedEntity.addr -> practitioner.address;
assignedEntity.telecom -> practitioner.telecom;
assignedEntity.assignedPerson as person then {
person.name -> practitioner.name;
person.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10);
} "birth";
};
assignedEntity.representedOrganization as representedOrganization -> bundle.entry as e8, e8.request = create('BackboneElement') as request, request.method = 'PUT', e8.resource = create('Organization') as organization then {
representedOrganization -> organization.meta as meta then {
representedOrganization -> meta.tag = create('Coding') as coding then {
representedOrganization -> coding.system = 'http://algoritmodiscoring' "system";
representedOrganization -> coding.code = 'ClinicalDocument/dataEnterer/representedOrganization' "code";
} "coding";
} "meta";
representedOrganization.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
representedOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid3, e8.fullUrl = append('https://example/Organization/', uuid3), practitionerRole.organization = create('Reference') as referenceOrg, referenceOrg.reference = append('https://example/Organization/', uuid3) "dataenterer";
} "r";
} "identifier";
representedOrganization.name as v -> organization.name = (v.other);
representedOrganization.telecom -> organization.telecom;
representedOrganization.addr -> organization.address;
representedOrganization.asOrganizationPartOf as OrgPartOf -> bundle.entry as e9, e9.request = create('BackboneElement') as request, request.method = 'PUT', e9.resource = create('Organization') as organization1 then {
OrgPartOf -> organization1.meta as meta then {
OrgPartOf -> meta.tag = create('Coding') as coding then {
OrgPartOf -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOf -> coding.code = 'ClinicalDocument/dataEnterer/representedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
OrgPartOf.id as id -> organization1.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid4, e9.fullUrl = append('https://example/Organization/', uuid4), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization1.id) "dataenterer";
} "r";
} "identifier";
OrgPartOf.code -> organization1.type;
OrgPartOf.statusCode as status where (value = 'active') -> organization1.active = create('boolean'), organization1.active = 'true';
OrgPartOf.wholeOrganization as wholeOrgan -> bundle.entry as e10, e10.request = create('BackboneElement') as request, request.method = 'PUT', e10.resource = create('Organization') as organization2 then {
wholeOrgan -> organization2.meta as meta then {
wholeOrgan -> meta.tag = create('Coding') as coding then {
wholeOrgan -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrgan -> coding.code = 'ClinicalDocument/dataEnterer/representedOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrgan.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrgan -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization2.id = (r + '-' + ext) as uuid5, e10.fullUrl = append('https://example/Organization/', uuid5), organization1.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization2.id) "dataenterer";
} "r";
} "identifier";
wholeOrgan.name as v -> organization2.name = (v.other);
wholeOrgan.telecom -> organization2.telecom;
wholeOrgan.addr -> organization2.address;
};
};
} "RepresentedOrganization";
} "AssignedEntity";
} "DataEnter";
} "srcAuthor";
// START INFORMANT 1
src.informant as informant then {
informant.assignedEntity as assignedEntity -> bundle.entry as e11, e11.request = create('BackboneElement') as request, request.method = 'POST', e11.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid1, e11.fullUrl = append('https://example/PractitionerRole/', uuid1), request.url = 'PractitionerRole' then {
informant -> tgt.attester as attester then {
informant -> attester.mode = 'professional' "mode";
informant -> attester.party = create('Reference') as reference, reference.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) "reference";
assignedEntity.code -> practitionerRole.code;
assignedEntity as entity -> bundle.entry as e12, e12.request = create('BackboneElement') as request, request.method = 'PUT', e12.resource = create('Practitioner') as practitioner then {
entity -> practitioner.meta as meta then {
entity -> meta.tag = create('Coding') as coding then {
entity -> coding.system = 'http://algoritmodiscoring' "system";
entity -> coding.code = 'ClinicalDocument/informant' "code";
} "coding";
} "meta";
entity.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e12.fullUrl = append('https://example/Practitioner/', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id) "dataenterer";
} "r";
} "identifier";
assignedEntity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
assignedEntity.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
entity.addr -> practitioner.address;
entity.telecom -> practitioner.telecom;
entity.assignedPerson as person then {
person.name -> practitioner.name;
person.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10);
} "birth";
} "person";
entity.representedOrganization as representedOrganization -> bundle.entry as e13, e13.request = create('BackboneElement') as request, request.method = 'PUT', e13.resource = create('Organization') as organization then {
representedOrganization -> organization.meta as meta then {
representedOrganization -> meta.tag = create('Coding') as coding then {
representedOrganization -> coding.system = 'http://algoritmodiscoring' "system";
representedOrganization -> coding.code = 'ClinicalDocument/informant/representedOrganization' "code";
} "coding";
} "meta";
representedOrganization.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
representedOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid3, e13.fullUrl = append('https://example/Organization/', uuid3), practitionerRole.organization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization.id);
} "r";
} "identifier";
representedOrganization.name as v -> organization.name = (v.other);
representedOrganization.telecom -> organization.telecom;
representedOrganization.addr -> organization.address;
representedOrganization.asOrganizationPartOf -> organization.partOf as partOf then {
representedOrganization.asOrganizationPartOf as organizationPartOf -> bundle.entry as e14, e14.request = create('BackboneElement') as request, request.method = 'PUT', e14.resource = create('Organization') as organization1 then {
organizationPartOf -> organization1.meta as meta then {
organizationPartOf -> meta.tag = create('Coding') as coding then {
organizationPartOf -> coding.system = 'http://algoritmodiscoring' "system";
organizationPartOf -> coding.code = 'ClinicalDocument/informant/representedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
organizationPartOf.id as id -> organization1.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
organizationPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid4, e14.fullUrl = append('https://example/Organization/', uuid4), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization1.id);
} "r";
} "identifier";
organizationPartOf.code -> organization1.type;
organizationPartOf.statusCode as status where (code = 'active') -> organization1.active = create('boolean'), organization1.active = 'true';
organizationPartOf.wholeOrganization -> organization1.partOf as partOf1 then {
organizationPartOf.wholeOrganization as wholeOrganization -> bundle.entry as e15, e15.request = create('BackboneElement') as request, request.method = 'PUT', e15.resource = create('Organization') as organization2 then {
wholeOrganization -> organization2.meta as meta then {
wholeOrganization -> meta.tag = create('Coding') as coding then {
wholeOrganization -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrganization -> coding.code = 'ClinicalDocument/informant/representedOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrganization.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization2.id = (r + '-' + ext) as uuid5, e15.fullUrl = append('https://example/Organization/', uuid5), organization1.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization2.id);
} "r";
} "identifier";
wholeOrganization.name as v -> organization2.name = (v.other);
wholeOrganization.telecom -> organization2.telecom;
wholeOrganization.addr -> organization2.address;
};
} "asOrganizationPartOf";
} "partOf";
} "qualification";
} "organization";
} "assignedEntity";
} "attester";
} "informant";
} "inform";
// START INFORMANT 2
src.informant as informant then {
informant.relatedEntity as related -> bundle.entry as e16, e16.request = create('BackboneElement') as request, request.method = 'POST', e16.resource = create('RelatedPerson') as relatedPerson, relatedPerson.id = uuid() as uuid1, e16.fullUrl = append('https://example/RelatedPerson/', uuid1), request.url = 'RelatedPerson' then {
informant -> tgt.attester as attester then {
informant -> attester.mode = 'professional' "mode";
informant -> attester.party = create('Reference') as reference, reference.reference = ('https://example/RelatedPerson/' + %relatedPerson.id) "reference";
related.relatedPerson as Person then {
related.code -> relatedPerson.relationship;
related.telecom -> relatedPerson.telecom;
related.addr -> relatedPerson.address;
Person.name -> relatedPerson.name;
related.birthTime as date then {
date.value as value -> relatedPerson.birthDate = truncate(value, 10) "valueD";
} "birthinformant";
related -> relatedPerson.patient = create('Reference') as reference, reference.reference = ('https://example/Patient/' + %patientResource.id) "reference";
} "relatedPerson1";
} "relatedPerson";
} "informant";
} "inform2";
// START CUSTODIAN
src.custodian as custodian then {
custodian.assignedCustodian as assignedCustodian -> bundle.entry as e17, e17.request = create('BackboneElement') as request, request.method = 'PUT', e17.resource = create('Organization') as Organization then {
assignedCustodian -> Organization.meta as meta then {
assignedCustodian -> meta.tag = create('Coding') as coding then {
assignedCustodian -> coding.system = 'http://algoritmodiscoring' "system";
assignedCustodian -> coding.code = 'ClinicalDocument/custodian' "code";
} "coding";
} "meta";
assignedCustodian.representedCustodianOrganization as representedCustodianOrganization then {
representedCustodianOrganization.id as id -> Organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
representedCustodianOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> Organization.id = (r + '-' + ext) as uuid, e17.fullUrl = append('https://example/Organization/', uuid);
} "r";
} "identifier";
assignedCustodian -> DocumentReference.custodian = create('Reference') as referenceCU, referenceCU.reference = ('https://example/Organization/' + %Organization.id) "RefCustodian";
representedCustodianOrganization -> tgt.custodian = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %Organization.id) then CustodianOrganization(representedCustodianOrganization, Organization) "custodian1";
};
} "organization";
};
// START INFORMATION RECIPIENT
src.informationRecipient as informationRecipient then {
informationRecipient.intendedRecipient as intendedRecipient then {
intendedRecipient.informationRecipient as informationRecipient2 then {
informationRecipient -> tgt.attester as attester then {
informationRecipient2 -> attester.mode = 'professional' "mode";
informationRecipient2 -> bundle.entry as e19, e19.request = create('BackboneElement') as request, request.method = 'PUT', e19.resource = create('Practitioner') as practitioner then {
informationRecipient2 -> practitioner.meta as meta then {
informationRecipient2 -> meta.tag = create('Coding') as coding then {
informationRecipient2 -> coding.system = 'http://algoritmodiscoring' "system";
informationRecipient2 -> coding.code = 'ClinicalDocument/informationRecipient' "code";
} "coding";
} "meta";
intendedRecipient.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e19.fullUrl = append('https://example/Practitioner/', uuid2), attester.party = create('Reference') as reference1, reference1.reference = ('https://example/Practitioner/' + %practitioner.id);
} "r";
} "identifier";
intendedRecipient.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
intendedRecipient.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
intendedRecipient.addr -> practitioner.address;
intendedRecipient.telecom -> practitioner.telecom;
informationRecipient2.name -> practitioner.name;
informationRecipient2.birthTime as bt then {
bt.value as v -> practitioner.birthDate = (v.date);
} "date";
} "PersonRecipient";
} "intendedRecipienPract";
} "attesterOrg";
intendedRecipient.receivedOrganization as receivedOrganization then {
informationRecipient -> tgt.attester as attester then {
receivedOrganization -> attester.mode = 'official' "mode";
receivedOrganization -> bundle.entry as e20, e20.request = create('BackboneElement') as request, request.method = 'PUT', e20.resource = create('Organization') as organization then {
receivedOrganization -> organization.meta as meta then {
receivedOrganization -> meta.tag = create('Coding') as coding then {
receivedOrganization -> coding.system = 'http://algoritmodiscoring' "system";
receivedOrganization -> coding.code = 'ClinicalDocument/informationRecipient/receivedOrganization' "code";
} "coding";
} "meta";
receivedOrganization.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
receivedOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid3, e20.fullUrl = append('https://example/Organization/', uuid3), attester.party = create('Reference') as reference2, reference2.reference = ('https://example/Organization/' + %organization.id);
} "r";
} "identifier";
receivedOrganization.name as v -> organization.name = (v.other);
receivedOrganization.telecom -> organization.telecom;
receivedOrganization.addr -> organization.address;
receivedOrganization.asOrganizationPartOf as asOrganizationPartOf -> bundle.entry as e21, e21.request = create('BackboneElement') as request, request.method = 'PUT', e21.resource = create('Organization') as organization2, organization2.id = uuid() as uuid4, e21.fullUrl = append('https://example/Organization', uuid4), organization.partOf = create('Reference') as referenceor, referenceor.reference = ('https://example/Organization' + %organization2.id) then {
asOrganizationPartOf -> organization2.meta as meta then {
asOrganizationPartOf -> meta.tag = create('Coding') as coding then {
asOrganizationPartOf -> coding.system = 'http://algoritmodiscoring' "system";
asOrganizationPartOf -> coding.code = 'ClinicalDocument/informationRecipient/receivedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
asOrganizationPartOf.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
asOrganizationPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization2.id = (r + '-' + ext) as uuid4, e21.fullUrl = append('https://example/Organization/', uuid4), organization.partOf = create('Reference') as referenceor, referenceor.reference = ('https://example/Organization/' + %organization2.id);
} "r";
} "identifier";
asOrganizationPartOf.code -> organization2.type;
asOrganizationPartOf.statusCode as status where (value = 'active') -> organization2.active = create('boolean'), organization2.active = 'true';
asOrganizationPartOf.wholeOrganization as wholeOrganization3 -> bundle.entry as e22, e22.request = create('BackboneElement') as request, request.method = 'PUT', e22.resource = create('Organization') as organization3 then {
wholeOrganization3 -> organization3.meta as meta then {
wholeOrganization3 -> meta.tag = create('Coding') as coding then {
wholeOrganization3 -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrganization3 -> coding.code = 'ClinicalDocument/informationRecipient/receivedOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrganization3.id as id -> organization3.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrganization3 -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization3.id = (r + '-' + ext) as uuid5, e22.fullUrl = append('https://example/Organization/', uuid5), organization2.partOf = create('Reference') as referenceor, referenceor.reference = ('https://example/Organization/' + %organization3.id);
} "r";
} "identifier";
wholeOrganization3.name as v -> organization3.name = (v.other);
wholeOrganization3.telecom -> organization3.telecom;
wholeOrganization3.addr -> organization3.address;
};
};
} "receivedOrganization";
} "intendedRecipienOrg";
} "attesterOrg";
} "intendedRecipent";
} "informationRecipent";
// START Legal Authenticator
src.legalAuthenticator as legalAuth then {
legalAuth -> tgt.attester as attester then {
legalAuth.assignedEntity as entity then {
// Codice Fiscale
entity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') -> bundle.entry as e23, e23.request = create('BackboneElement') as request, request.method = 'POST', e23.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid, e23.fullUrl = append('https://example/PractitionerRole/', uuid), request.url = 'PractitionerRole' then {
legalAuth -> attester.mode = 'legal' "mode";
legalAuth.time -> attester.time;
legalAuth -> attester.party = create('Reference') as reference, reference.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) then {
entity -> bundle.entry as e24, e24.request = create('BackboneElement') as request, request.method = 'PUT', e24.resource = create('Practitioner') as practitioner then {
entity -> practitioner.meta as meta then {
entity -> meta.tag = create('Coding') as coding then {
entity -> coding.system = 'http://algoritmodiscoring' "system";
entity -> coding.code = 'ClinicalDocument/legalAuthenticator' "code";
} "coding";
} "meta";
entity.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid1, e24.fullUrl = append('https://example/Practitioner/', uuid1), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id);
} "r";
} "identifier";
entity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
entity.addr -> practitioner.address;
entity.telecom -> practitioner.telecom;
entity.assignedPerson as person then {
person.name -> practitioner.name;
person.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10) "birthTimelegal";
} "birth";
} "person";
} "practitioner";
entity.code -> practitionerRole.code;
entity.representedOrganization as rapresentedOrg -> bundle.entry as e25, e25.request = create('BackboneElement') as request, request.method = 'PUT', e25.resource = create('Organization') as organization then {
rapresentedOrg -> organization.meta as meta then {
rapresentedOrg -> meta.tag = create('Coding') as coding then {
rapresentedOrg -> coding.system = 'http://algoritmodiscoring' "system";
rapresentedOrg -> coding.code = 'ClinicalDocument/legalAuthenticator/representedOrganization' "code";
} "coding";
} "meta";
rapresentedOrg.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
rapresentedOrg -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid2, e25.fullUrl = append('https://example/Organization/', uuid2), practitionerRole.organization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization.id);
} "r";
} "identifier";
rapresentedOrg.name as v -> organization.name = (v.other);
rapresentedOrg.telecom -> organization.telecom;
rapresentedOrg.addr -> organization.address;
rapresentedOrg.asOrganizationPartOf as asOrgPartOf then {
asOrgPartOf as asOrgPartOf1 -> bundle.entry as e26, e26.request = create('BackboneElement') as request, request.method = 'PUT', e26.resource = create('Organization') as asorganization then {
asOrgPartOf1 -> asorganization.meta as meta then {
asOrgPartOf1 -> meta.tag = create('Coding') as coding then {
asOrgPartOf1 -> coding.system = 'http://algoritmodiscoring' "system";
asOrgPartOf1 -> coding.code = 'ClinicalDocument/legalAuthenticator/representedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
asOrgPartOf1.id as id -> asorganization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
asOrgPartOf1 -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> asorganization.id = (r + '-' + ext) as uuid2, e26.fullUrl = append('https://example/Organization/', uuid2), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %asorganization.id);
} "r";
} "identifier";
asOrgPartOf1.code -> asorganization.type;
asOrgPartOf1.statusCode as status where (code = 'active') -> asorganization.active = create('boolean'), asorganization.active = true;
asOrgPartOf1.wholeOrganization as wholeOrg then {
wholeOrg as wholeOrg1 -> bundle.entry as e27, e27.request = create('BackboneElement') as request, request.method = 'PUT', e27.resource = create('Organization') as wholeorganization, wholeorganization.id = uuid() as uuid4, e27.fullUrl = append('https://example/Organization/', uuid4), asorganization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %wholeorganization.id) then {
wholeOrg1 -> wholeorganization.meta as meta then {
wholeOrg1 -> meta.tag = create('Coding') as coding then {
wholeOrg1 -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrg1 -> coding.code = 'ClinicalDocument/legalAuthenticator/representedOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrg1.id as id -> wholeorganization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrg1 -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> wholeorganization.id = (r + '-' + ext) as uuid4, e27.fullUrl = append('https://example/Organization/', uuid4), asorganization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %wholeorganization.id);
} "r";
} "identifier";
wholeOrg1.name as v -> wholeorganization.name = (v.other);
wholeOrg1.telecom -> wholeorganization.telecom;
wholeOrg1.addr -> wholeorganization.address;
} "wholeOrg1";
} "wholeOrg";
} "asOrgPO";
} "asOrgID";
} "LAOrganiz";
} "PractitionerLegal";
} "PractitionerROLlegal";
// Partita IVA
entity.id as id where (root = '2.16.840.1.113883.2.9.6.3.2') -> bundle.entry as e251, e251.request = create('BackboneElement') as request, request.method = 'PUT', e251.resource = create('Organization') as organization then {
entity -> attester.mode = 'official' "mode";
entity -> organization.meta as meta then {
entity -> meta.tag = create('Coding') as coding then {
entity -> coding.system = 'http://algoritmodiscoring' "system";
entity -> coding.code = 'ClinicalDocument/legalAuthenticatorPartitaIVA' "code";
} "coding";
} "meta";
entity.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
entity -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid2, e251.fullUrl = append('https://example/Organization/', uuid2), attester.party = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization.id);
} "r";
} "identifier";
} "OrgPartitaIVA";
} "entity";
} "legalAuth";
} "LegalAuthenticator";
// START Authenticator
src.authenticator as Auth -> bundle.entry as e28, e28.request = create('BackboneElement') as request, request.method = 'POST', e28.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid1, e28.fullUrl = append('https://example/PractitionerRole/', uuid1), request.url = 'PractitionerRole' then {
Auth -> tgt.attester as attester then {
Auth.time -> attester.time;
Auth -> attester.mode = 'professional' "mode";
Auth.assignedEntity as entity -> attester.party = create('Reference') as reference, reference.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) then {
entity.code -> practitionerRole.code;
entity -> bundle.entry as e29, e29.request = create('BackboneElement') as request, request.method = 'PUT', e29.resource = create('Practitioner') as practitioner, practitioner.id = uuid() as uuid2, e29.fullUrl = append('https://example/Practitioner', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner' + %practitioner.id) then {
entity -> practitioner.meta as meta then {
entity -> meta.tag = create('Coding') as coding then {
entity -> coding.system = 'http://algoritmodiscoring' "system";
entity -> coding.code = 'ClinicalDocument/authenticator' "code";
} "coding";
} "meta";
entity.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e29.fullUrl = append('https://example/Practitioner/', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id);
} "r";
} "identifier";
entity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
entity.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
entity.addr -> practitioner.address "address";
entity.telecom -> practitioner.telecom;
entity.assignedPerson as person then {
person.name -> practitioner.name "personName";
person.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10) "birthTimeauth";
} "birth";
} "person";
} "practitioner";
entity.representedOrganization as reporganization -> bundle.entry as e30, e30.request = create('BackboneElement') as request, request.method = 'PUT', e30.resource = create('Organization') as organization then {
reporganization -> organization.meta as meta then {
reporganization -> meta.tag = create('Coding') as coding then {
reporganization -> coding.system = 'http://algoritmodiscoring' "system";
reporganization -> coding.code = 'ClinicalDocument/authenticator/representedOrganization' "code";
} "coding";
} "meta";
reporganization.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
reporganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid3, e30.fullUrl = append('https://example/Organization/', uuid3), practitionerRole.organization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization.id);
} "r";
} "identifier";
reporganization.name as v -> organization.name = (v.other);
reporganization.telecom -> organization.telecom;
reporganization.addr -> organization.address;
reporganization.asOrganizationPartOf as organizationpartof -> bundle.entry as e31, e31.request = create('BackboneElement') as request, request.method = 'PUT', e31.resource = create('Organization') as asOrganizationpartof then {
organizationpartof -> asOrganizationpartof.meta as meta then {
organizationpartof -> meta.tag = create('Coding') as coding then {
organizationpartof -> coding.system = 'http://algoritmodiscoring' "system";
organizationpartof -> coding.code = 'ClinicalDocument/authenticator/representedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
organizationpartof.id as id -> asOrganizationpartof.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
organizationpartof -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> asOrganizationpartof.id = (r + '-' + ext) as uuid4, e31.fullUrl = append('https://example/Organization/', uuid4), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %asOrganizationpartof.id);
} "r";
} "identifier";
organizationpartof.code -> asOrganizationpartof.type;
organizationpartof.statusCode as status where (code = 'active') -> asOrganizationpartof.active = create('boolean'), asOsrganizationpartof.active = 'true';
organizationpartof.wholeOrganization as wholeorg -> bundle.entry as e32, e32.request = create('BackboneElement') as request, request.method = 'PUT', e32.resource = create('Organization') as wholeOrganization, wholeOrganization.id = uuid() as uuid5, e32.fullUrl = append('https://example/Organization/', uuid5), asOrganizationpartof.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %wholeOrganization.id) then {
wholeorg -> wholeOrganization.meta as meta then {
wholeorg -> meta.tag = create('Coding') as coding then {
wholeorg -> coding.system = 'http://algoritmodiscoring' "system";
wholeorg -> coding.code = 'ClinicalDocument/authenticator/representedOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeorg.id as id -> wholeOrganization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeorg -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> wholeOrganization.id = (r + '-' + ext) as uuid5, e32.fullUrl = append('https://example/Organization/', uuid5), asOrganizationpartof.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %wholeOrganization.id);
} "r";
} "identifier";
wholeorg.name as v -> wholeOrganization.name = (v.other);
wholeorg.telecom -> wholeOrganization.telecom;
wholeorg.addr -> wholeOrganization.address;
} "wholeorg";
} "organizationpartof";
} "reporganization";
} "entity";
} "attester";
} "Auth";
// PARTICIPANT
src.participant as participant where (typeCode != 'IND') then {
participant.associatedEntity as associetedEntity -> bundle.entry as e313, e313.request = create('BackboneElement') as request, request.method = 'POST', e313.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid1, e313.fullUrl = append('https://example/PractitionerRole/', uuid1), request.url = 'PractitionerRole', encounter.participant = create('BackboneElement') as participant1 then {
// participant.time as time->participant1.period as period ,period.start=(time.value);
participant -> participant1.period = create('Period') as period then {
participant.time as time -> period.start = create('dateTime') as start then TSDateTime(time, start);
} "period";
participant as p -> participant1.type as type then {
p -> type.coding as coding then {
p -> coding.code = (p.typeCode) "codice";
p -> coding.system = 'http://terminology.hl7.org/CodeSystem/v3-ParticipationType' "system";
} "codeType";
} "type";
participant -> participant1.individual = create('Reference') as referencepart, referencepart.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) "par";
participant.functionCode -> practitionerRole.code;
associetedEntity -> bundle.entry as e33, e33.request = create('BackboneElement') as request, request.method = 'PUT', e33.resource = create('Practitioner') as practitioner then {
associetedEntity -> practitioner.meta as meta then {
associetedEntity -> meta.tag = create('Coding') as coding then {
associetedEntity -> coding.system = 'http://algoritmodiscoring' "system";
associetedEntity -> coding.code = 'ClinicalDocument/participant' "code";
} "coding";
} "meta";
associetedEntity.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e33.fullUrl = append('https://example/Practitioner/', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id);
} "r";
} "identifier";
associetedEntity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
associetedEntity.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
associetedEntity.code -> practitionerRole.code;
associetedEntity.addr -> practitioner.address;
associetedEntity.telecom -> practitioner.telecom;
associetedEntity.associatedPerson as associatedperson then {
associatedperson.name -> practitioner.name;
associatedperson.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10) "birthTimelegal";
} "birth";
} "name";
associetedEntity.scopingOrganization as scopingOrganization -> bundle.entry as e34, e34.request = create('BackboneElement') as request, request.method = 'PUT', e34.resource = create('Organization') as organization then {
scopingOrganization -> organization.meta as meta then {
scopingOrganization -> meta.tag = create('Coding') as coding then {
scopingOrganization -> coding.system = 'http://algoritmodiscoring' "system";
scopingOrganization -> coding.code = 'ClinicalDocument/participant/scopingOrganization' "code";
} "coding";
} "meta";
scopingOrganization.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
scopingOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid3, e34.fullUrl = append('https://example/Organization/', uuid3), practitionerRole.organization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization.id);
} "r";
} "identifier";
scopingOrganization.name as v -> organization.name = (v.other);
scopingOrganization.telecom -> organization.telecom;
scopingOrganization.addr -> organization.address;
scopingOrganization.asOrganizationPartOf as OrgPartOf -> bundle.entry as e35, e35.request = create('BackboneElement') as request, request.method = 'PUT', e35.resource = create('Organization') as organization1 then {
OrgPartOf.id as id -> organization1.identifier as identifier then {
OrgPartOf -> organization1.meta as meta then {
OrgPartOf -> meta.tag = create('Coding') as coding then {
OrgPartOf -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOf -> coding.code = 'ClinicalDocument/participant/scopingOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid4, e35.fullUrl = append('https://example/Organization/', uuid4), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization1.id);
} "r";
} "identifier";
OrgPartOf.code -> organization1.type;
OrgPartOf.statusCode as status where (value = 'active') -> organization1.active = create('boolean'), organization1.active = true;
OrgPartOf.wholeOrganization as wholeOrgan -> bundle.entry as e36, e36.request = create('BackboneElement') as request, request.method = 'PUT', e36.resource = create('Organization') as organization2 then {
wholeOrgan -> organization2.meta as meta then {
wholeOrgan -> meta.tag = create('Coding') as coding then {
wholeOrgan -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrgan -> coding.code = 'ClinicalDocument/participant/scopingOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrgan.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrgan -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid5, e36.fullUrl = append('https://example/Organization/', uuid5), organization1.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization2.id);
} "r";
} "identifier";
wholeOrgan.name as v -> organization2.name = (v.other);
wholeOrgan.telecom -> organization2.telecom;
wholeOrgan.addr -> organization2.address;
} "wholeOrgan";
} "OrgPartOf";
};
} "associetedEntity";
} "Participant1";
};
src.participant as participant where (typeCode = 'IND') then {
participant.associatedEntity as associetedEntity where (classCode = 'PROV') -> bundle.entry as e313, e313.request = create('BackboneElement') as request, request.method = 'POST', e313.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid1, e313.fullUrl = append('https://example/PractitionerRole/', uuid1), request.url = 'PractitionerRole', encounter.participant = create('BackboneElement') as participant2 then {
// participant.time as time->participant2.period as period, period.start=(time.value);
participant -> participant2.period = create('Period') as period then {
participant.time as time -> period.start = create('dateTime') as start then TSDateTime(time, start);
} "period";
participant as p -> participant2.type as type then {
p -> type.coding as coding then {
p -> coding.code = (p.typeCode) "codice";
p -> coding.system = 'http://terminology.hl7.org/CodeSystem/v3-ParticipationType' "system";
} "codeType";
} "type";
participant -> participant2.individual = create('Reference') as referencepart, referencepart.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) "par";
participant.functionCode -> practitionerRole.code;
associetedEntity -> bundle.entry as e33, e33.request = create('BackboneElement') as request, request.method = 'PUT', e33.resource = create('Practitioner') as practitioner then {
associetedEntity -> practitioner.meta as meta then {
associetedEntity -> meta.tag = create('Coding') as coding then {
associetedEntity -> coding.system = 'http://algoritmodiscoring' "system";
associetedEntity -> coding.code = 'ClinicalDocument/participant' "code";
} "coding";
} "meta";
associetedEntity.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e33.fullUrl = append('https://example/Practitioner/', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id);
} "r";
} "identifier";
associetedEntity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
associetedEntity.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
associetedEntity.code -> practitionerRole.code;
associetedEntity.addr -> practitioner.address;
associetedEntity.telecom -> practitioner.telecom;
associetedEntity.associatedPerson as associatedperson then {
associatedperson.name -> practitioner.name;
associatedperson.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10) "birthTimelegal";
} "birth";
} "name";
associetedEntity.scopingOrganization as scopingOrganization -> bundle.entry as e34, e34.request = create('BackboneElement') as request, request.method = 'PUT', e34.resource = create('Organization') as organization then {
scopingOrganization -> organization.meta as meta then {
scopingOrganization -> meta.tag = create('Coding') as coding then {
scopingOrganization -> coding.system = 'http://algoritmodiscoring' "system";
scopingOrganization -> coding.code = 'ClinicalDocument/participant/scopingOrganization' "code";
} "coding";
} "meta";
scopingOrganization.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
scopingOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid3, e34.fullUrl = append('https://example/Organization/', uuid3), practitionerRole.organization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization.id);
} "r";
} "identifier";
scopingOrganization.name as v -> organization.name = (v.other);
scopingOrganization.telecom -> organization.telecom;
scopingOrganization.addr -> organization.address;
scopingOrganization.asOrganizationPartOf as OrgPartOf -> bundle.entry as e35, e35.request = create('BackboneElement') as request, request.method = 'PUT', e35.resource = create('Organization') as organization1 then {
OrgPartOf -> organization1.meta as meta then {
OrgPartOf -> meta.tag = create('Coding') as coding then {
OrgPartOf -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOf -> coding.code = 'ClinicalDocument/participant/scopingOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
OrgPartOf.id as id -> organization1.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid4, e35.fullUrl = append('https://example/Organization/', uuid4), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization1.id);
} "r";
} "identifier";
OrgPartOf.code -> organization1.type;
OrgPartOf.statusCode as status where (value = 'active') -> organization1.active = create('boolean'), organization1.active = true;
OrgPartOf.wholeOrganization as wholeOrgan -> bundle.entry as e36, e36.request = create('BackboneElement') as request, request.method = 'PUT', e36.resource = create('Organization') as organization2 then {
wholeOrgan -> organization2.meta as meta then {
wholeOrgan -> meta.tag = create('Coding') as coding then {
wholeOrgan -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrgan -> coding.code = 'ClinicalDocument/participant/scopingOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrgan.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrgan -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid5, e36.fullUrl = append('https://example/Organization/', uuid5), organization1.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization2.id);
} "r";
} "identifier";
wholeOrgan.name as v -> organization2.name = (v.other);
wholeOrgan.telecom -> organization2.telecom;
wholeOrgan.addr -> organization2.address;
} "wholeOrgan";
} "OrgPartOf";
};
} "associetedEntity";
} "Participant2";
participant.associatedEntity as associetedEntity where (classCode = 'NOK') or (classCode = 'ECON') or (classCode = 'CAREGIVER') then {
associetedEntity -> bundle.entry as e3131, e3131.request = create('BackboneElement') as request, request.method = 'POST', e3131.resource = create('RelatedPerson') as RelatedPerson, RelatedPerson.id = uuid() as uuid1, e3131.fullUrl = append('https://example/RelatedPerson/', uuid1), request.url = 'RelatedPerson' then {
associetedEntity -> patientResource.link as link then {
associetedEntity -> link.type = 'refer' "type";
associetedEntity -> link.other = create('Reference') as reference, reference.reference = ('https://example/RelatedPerson/' + %RelatedPerson.id) "reference";
associetedEntity.id -> RelatedPerson.identifier;
associetedEntity -> RelatedPerson.patient = create('Reference') as reference, reference.reference = ('https://example/Patient/' + %patientResource.id) "reference";
associetedEntity.code -> RelatedPerson.relationship;
associetedEntity.telecom -> RelatedPerson.telecom;
associetedEntity.associatedPerson as associatedperson then {
associatedperson.name -> RelatedPerson.name;
};
} "link";
} "participant3";
} "WHERE";
// START PARTICIPANT GUAR
participant.associatedEntity as associetedentity where (classCode = 'GUAR') then {
associetedentity.scopingOrganization as representedOrganization -> bundle.entry as e37, e37.request = create('BackboneElement') as request, request.method = 'PUT', e37.resource = create('Organization') as organization then {
representedOrganization -> organization.meta as meta then {
representedOrganization -> meta.tag = create('Coding') as coding then {
representedOrganization -> coding.system = 'http://algoritmodiscoring' "system";
representedOrganization -> coding.code = 'ClinicalDocument/participant/scopingOrganization' "code";
} "coding";
} "meta";
associetedentity.code -> organization.type;
associetedentity.scopingOrganization as scopingOrganization then {
associetedentity.id as id -> organization.identifier as identifier then {
participant.time as time then {
time.high as high -> identifier.period as period then {
high -> period.end = (high.value) "periodend";
} "period";
};
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
associetedentity -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid1, e37.fullUrl = append('https://example/Organization/', uuid1), patientResource.generalPractitioner = create('Reference') as referenceOrg, referenceOrg.reference = append('https://example/Organization/', uuid1);
} "r";
} "identifier";
scopingOrganization.name as v -> organization.name = (v.other);
scopingOrganization.telecom -> organization.telecom;
scopingOrganization.addr -> organization.address;
scopingOrganization.asOrganizationPartOf as OrgPartOf -> bundle.entry as e38, e38.request = create('BackboneElement') as request, request.method = 'PUT', e38.resource = create('Organization') as organizationPOF then {
OrgPartOf -> organizationPOF.meta as meta then {
OrgPartOf -> meta.tag = create('Coding') as coding then {
OrgPartOf -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOf -> coding.code = 'ClinicalDocument/participant/scopingOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
OrgPartOf.id as id -> organizationPOF.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organizationPOF.id = (r + '-' + ext) as uuid2, e38.fullUrl = append('https://example/Organization/', uuid2), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organizationPOF.id);
} "r";
} "identifier";
OrgPartOf.code -> organizationPOF.type;
OrgPartOf.statusCode as status where (value = 'active') -> organizationPOF.active = create('boolean'), organizationPOF.active = 'true';
OrgPartOf.wholeOrganization as wholeOrgan -> bundle.entry as e39, e39.request = create('BackboneElement') as request, request.method = 'PUT', e39.resource = create('Organization') as organizationW then {
wholeOrgan -> organizationW.meta as meta then {
wholeOrgan -> meta.tag = create('Coding') as coding then {
wholeOrgan -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrgan -> coding.code = 'ClinicalDocument/participant/scopingOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrgan.id as id -> organizationW.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrgan -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organizationW.id = (r + '-' + ext) as uuid3, e39.fullUrl = append('https://example/Organization/', uuid3), organizationPOF.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organizationW.id);
} "r";
} "identifier";
wholeOrgan.name as v -> organizationW.name = (v.other);
wholeOrgan.telecom -> organizationW.telecom;
wholeOrgan.addr -> organizationW.address;
} "wholeOrgan";
} "OrgPartOf";
};
} "associetedEntity";
} "repOrg";
};
src.inFulfillmentOf as inFulfillmentOf then {
inFulfillmentOf.order as order -> bundle.entry as e40, e40.request = create('BackboneElement') as request, request.method = 'POST', e40.resource = create('ServiceRequest') as serviceRequest, serviceRequest.id = uuid() as uuid1, e40.fullUrl = append('https://example/ServiceRequest/', uuid1), request.url = 'ServiceRequest', encounter.basedOn = create('Reference') as reference, reference.reference = ('https://example/ServiceRequest/' + %serviceRequest.id) then {
order.id -> serviceRequest.identifier;
order -> serviceRequest.status = 'active' "status";
order -> serviceRequest.intent = 'order' "intent";
order -> serviceRequest.subject = create('Reference') as reference, reference.reference = ('https://example/Patient/' + %patientResource.id) "reference";
order -> serviceRequest.encounter = create('Reference') as reference, reference.reference = ('https://example/Encounter/' + %encounter.id) "reference";
order.code -> serviceRequest.code;
order.priorityCode as priorityCode then {
priorityCode.code as v -> serviceRequest.priority = translate(v, '#priority', 'code') "priority";
};
};
};
src.documentationOf as docOf then {
docOf.serviceEvent as serviceEvent -> tgt.event as event then {
serviceEvent.code -> event.code "eventCode";
serviceEvent.effectiveTime as effectiveTime then {
effectiveTime -> event.period = create('Period') as period then IVLTSPeriod(effectiveTime, period) "period";
} "eventDT";
serviceEvent.effectiveTime as effectivetime1 -> event.period = create('Period') as period then {
effectivetime1 -> period.start = create('dateTime') as start then TSDateTime(effectivetime1, start) "val";
} "efft";
serviceEvent.performer as performer -> bundle.entry as e41, e41.request = create('BackboneElement') as request, request.method = 'POST', e41.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid1, e41.fullUrl = append('https://example/PractitionerRole/', uuid1), request.url = 'PractitionerRole' then {
performer -> event.detail = create('Reference') as reference, reference.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) then {
performer.assignedEntity as assignedEntity -> bundle.entry as e42, e42.request = create('BackboneElement') as request, request.method = 'PUT', e42.resource = create('Practitioner') as practitioner then {
assignedEntity -> practitioner.meta as meta then {
assignedEntity -> meta.tag = create('Coding') as coding then {
assignedEntity -> coding.system = 'http://algoritmodiscoring' "system";
assignedEntity -> coding.code = 'ClinicalDocument/documentationOf/serviceEvent/performer' "code";
} "coding";
} "meta";
performer.functionCode -> practitionerRole.code;
assignedEntity.code -> practitionerRole.code;
assignedEntity.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e42.fullUrl = append('https://example/Practitioner/', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id);
} "r";
} "identifier";
assignedEntity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
assignedEntity.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
assignedEntity.addr -> practitioner.address;
assignedEntity.telecom -> practitioner.telecom;
assignedEntity.assignedPerson as person then {
person.name -> practitioner.name;
person.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10) "birthTimelegal";
} "birth";
} "name";
assignedEntity.representedOrganization as representedOrganization -> bundle.entry as e8, e8.request = create('BackboneElement') as request, request.method = 'PUT', e8.resource = create('Organization') as organization then {
representedOrganization -> organization.meta as meta then {
representedOrganization -> meta.tag = create('Coding') as coding then {
representedOrganization -> coding.system = 'http://algoritmodiscoring' "system";
representedOrganization -> coding.code = 'ClinicalDocument/documentationOf/serviceEvent/performer/representedOrganization' "code";
} "coding";
} "meta";
representedOrganization.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
representedOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid3, e8.fullUrl = append('https://example/Organization/', uuid3), practitionerRole.organization = create('Reference') as referenceOrg, referenceOrg.reference = append('https://example/Organization/', uuid3);
} "r";
} "identifier";
representedOrganization.name as v -> organization.name = (v.other);
representedOrganization.telecom -> organization.telecom;
representedOrganization.addr -> organization.address;
representedOrganization.asOrganizationPartOf as OrgPartOf -> bundle.entry as e9, e9.request = create('BackboneElement') as request, request.method = 'PUT', e9.resource = create('Organization') as organization1 then {
OrgPartOf -> organization1.meta as meta then {
OrgPartOf -> meta.tag = create('Coding') as coding then {
OrgPartOf -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOf -> coding.code = 'ClinicalDocument/documentationOf/serviceEvent/performer/representedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
OrgPartOf.id as id -> organization1.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid4, e9.fullUrl = append('https://example/Organization/', uuid4), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization1.id);
} "r";
} "identifier";
OrgPartOf.code -> organization1.type;
OrgPartOf.statusCode as status where (value = 'active') -> organization1.active = create('boolean'), organization1.active = 'true';
OrgPartOf.wholeOrganization as wholeOrgan -> bundle.entry as e10, e10.request = create('BackboneElement') as request, request.method = 'PUT', e10.resource = create('Organization') as organization2 then {
wholeOrgan -> organization2.meta as meta then {
wholeOrgan -> meta.tag = create('Coding') as coding then {
wholeOrgan -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrgan -> coding.code = 'ClinicalDocument/documentationOf/serviceEvent/performer/representedOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrgan.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrgan -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization2.id = (r + '-' + ext) as uuid5, e10.fullUrl = append('https://example/Organization/', uuid5), organization1.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization2.id);
} "r";
} "identifier";
wholeOrgan.name as v -> organization2.name = (v.other);
wholeOrgan.telecom -> organization2.telecom;
wholeOrgan.addr -> organization2.address;
};
};
} "RepresentedOrganization";
} "AssignedEntity";
} "performer";
} "docOf";
};
};
src where src.componentOf.exists().not() -> tgt.encounter = create('Reference') as reference, reference.reference = ('https://example/Encounter/' + %encounter.id) then ClinicalDocumentEncounter(src, bundle, encounter, patientResource) "encounterExist";
src.componentOf as comp then {
comp where comp.encompassingEncounter.exists().not() -> tgt.encounter = create('Reference') as reference, reference.reference = ('https://example/Encounter/' + %encounter.id) then ClinicalDocumentEncounter(srcEnc, bundle, encounter, patientResource) "enc";
comp.encompassingEncounter as srcEnc -> tgt.encounter = create('Reference') as reference, reference.reference = ('https://example/Encounter/' + %encounter.id) then ClinicalDocumentEncounter(srcEnc, bundle, encounter, patientResource);
} "encompassingEncounter";
}
group ClinicalDocumentRelatesTo(source src : parentDocument, target tgt : composition) {
src.id -> tgt.identifier;
src.code -> tgt.type;
src.setId -> tgt.identifier;
src.versionNumber as vNumber -> tgt.extension as ext then ChExtEprVersionNumber(vNumber, ext) "versionNumberEXT";
}
group EXTbirthplace(source src : AD, target ext : Extension) {
src -> ext.url = 'http://hl7.org/fhir/StructureDefinition/patient-birthPlace' "url";
src -> ext.value = create('Address') as value then ADAddress(src, value) "value";
}
group ClinicalDocumentPatientRole(source src : PatientRole, target tgt : Patient, target bundle : Bundle) {
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 as birthTime then {
birthTime.value as date -> tgt.birthDate = truncate(date, 10) "birthTimelegal";
} "birth";
patient.deceasedInd as deceased where (value = 'false') -> tgt.deceased = create('boolean'), tgt.deceased = false "deceasedBL";
patient.deceasedInd as deceased where (value = 'true') then {
patient.deceasedTime as Time -> tgt.deceased = create('dateTime') as deceasedTime then TSDateTime(Time, deceasedTime);
};
patient.deceasedTime as Timet where Timet.empty() -> tgt.deceased = create('boolean'), tgt.deceased = true "deceasedBL";
patient.maritalStatusCode -> tgt.maritalStatus "maritalStatus";
patient.guardian as guardian then {
guardian.guardianPerson as person -> bundle.entry as e, e.request = create('BackboneElement') as request, request.method = 'POST', e.resource = create('RelatedPerson') as relatedPerson, relatedPerson.id = uuid() as uuid1, e.fullUrl = append('https://example/RelatedPerson/', uuid1), request.url = 'RelatedPerson' then {
person.name -> relatedPerson.name;
person.birthTime as birthTime then {
birthTime.value as date -> relatedPerson.birthDate = truncate(date, 10) "birthTimelegal";
} "birth";
person -> relatedPerson.patient = create('Reference') as reference, reference.reference = ('https://example/Patient/' + %tgt.id) "reference";
person -> tgt.link as link then {
person -> link.type = 'refer' "type";
person -> link.other = create('Reference') as reference, reference.reference = ('https://example/RelatedPerson/' + %relatedPerson.id) "reference";
guardian.addr -> relatedPerson.address;
guardian.telecom -> relatedPerson.telecom;
guardian.id -> relatedPerson.identifier;
guardian.code -> relatedPerson.relationship;
} "person";
};
guardian.guardianOrganization as guardianorg -> bundle.entry as e1, e1.request = create('BackboneElement') as request, request.method = 'PUT', e1.resource = create('Organization') as organizationcontact then {
guardianorg -> organizationcontact.meta as meta then {
guardianorg -> meta.tag = create('Coding') as coding then {
guardianorg -> coding.system = 'http://algoritmodiscoring' "system";
guardianorg -> coding.code = 'ClinicalDocument/recordTarget/PatientRole/patient/guardian/guardianOrganization' "code";
} "coding";
} "meta";
guardianorg -> tgt.contact as contact then {
guardianorg -> contact.organization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organizationcontact.id) "OrganizationContact";
guardianorg.id as id -> organizationcontact.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
guardianorg -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organizationcontact.id = (r + '-' + ext) as uuid2, e1.fullUrl = append('https://example/Organization/', uuid2);
} "r";
} "identifier";
guardianorg.name as v -> organizationcontact.name = (v.other);
guardianorg.telecom -> organizationcontact.telecom;
guardianorg.addr -> organizationcontact.address;
guardianorg.asOrganizationPartOf as OrgPartOf -> bundle.entry as e2, e2.request = create('BackboneElement') as request, request.method = 'PUT', e2.resource = create('Organization') as organizationpartOf then {
OrgPartOf -> organizationpartOf.meta as meta then {
OrgPartOf -> meta.tag = create('Coding') as coding then {
OrgPartOf -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOf -> coding.code = 'ClinicalDocument/recordTarget/PatientRole/patient/guardian/guardianOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
OrgPartOf -> organizationcontact.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organizationpartOf.id) "asorganization";
OrgPartOf.id as id -> organizationpartOf.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organizationpartOf.id = (r + '-' + ext) as uuid3, e2.fullUrl = append('https://example/Organization/', uuid3);
} "r";
} "identifier";
OrgPartOf.code -> organizationpartOf.type;
OrgPartOf.statusCode as status where (value = 'active') -> organizationpartOf.active = 'true';
OrgPartOf.wholeOrganization as wholeORG -> bundle.entry as e3, e3.request = create('BackboneElement') as request, request.method = 'PUT', e3.resource = create('Organization') as WholeOrganization then {
wholeORG -> WholeOrganization.meta as meta then {
wholeORG -> meta.tag = create('Coding') as coding then {
wholeORG -> coding.system = 'http://algoritmodiscoring' "system";
wholeORG -> coding.code = 'ClinicalDocument/recordTarget/PatientRole/patient/guardian/guardianOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeORG -> organizationpartOf.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %WholeOrganization.id) "asOrganization";
wholeORG.id as id -> WholeOrganization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeORG -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> WholeOrganization.id = (r + '-' + ext) as uuid4, e3.fullUrl = append('https://example/Organization/', uuid4);
} "r";
} "identifier";
wholeORG.name as v -> WholeOrganization.name = (v.other);
wholeORG.telecom -> WholeOrganization.telecom;
wholeORG.addr -> WholeOrganization.address;
} "WholeOrganization";
} "OrganizationPartOf";
} "contact";
} "guardianorganization";
};
patient.birthplace as birthplace then {
birthplace.place as place then {
place.addr as address -> tgt.extension as ext1 then EXTbirthplace(address, ext1) "birthplace";
};
};
src.providerOrganization as org -> bundle.entry as e4, e4.request = create('BackboneElement') as request, request.method = 'PUT', e4.resource = create('Organization') as providerorganization then {
org -> providerorganization.meta as meta then {
org -> meta.tag = create('Coding') as coding then {
org -> coding.system = 'http://algoritmodiscoring' "system";
org -> coding.code = 'ClinicalDocument/recordTarget/PatientRole/patient/providerOrganization' "code";
} "coding";
} "meta";
org.id as id -> providerorganization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
org -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> providerorganization.id = (r + '-' + ext) as uuid5, e4.fullUrl = append('https://example/Organization/', uuid5), tgt.managingOrganization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %providerorganization.id) "reference";
} "r";
} "identifier";
org.name as v -> providerorganization.name = (v.other);
org.telecom -> providerorganization.telecom;
org.addr -> providerorganization.address;
org.asOrganizationPartOf as OrgPartOfProvider -> bundle.entry as e5, e5.request = create('BackboneElement') as request, request.method = 'PUT', e5.resource = create('Organization') as organizationpartOfprovider then {
OrgPartOfProvider -> organizationpartOfprovider.meta as meta then {
OrgPartOfProvider -> meta.tag = create('Coding') as coding then {
OrgPartOfProvider -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOfProvider -> coding.code = 'ClinicalDocument/recordTarget/PatientRole/patient/providerOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
OrgPartOfProvider.id as id -> organizationpartOfprovider.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOfProvider -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organizationpartOfprovider.id = (r + '-' + ext) as uuid6, e5.fullUrl = append('https://example/Organization/', uuid6), providerorganization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organizationpartOfprovider.id) "asorganization";
} "r";
} "identifier";
OrgPartOfProvider.code -> organizationpartOfprovider.type;
OrgPartOfProvider.statusCode as status where (value = 'active') -> organizationpartOfprovider.active = 'true';
OrgPartOfProvider.wholeOrganization as wholeORGproveder -> bundle.entry as e6, e6.request = create('BackboneElement') as request, request.method = 'PUT', e6.resource = create('Organization') as WholeOrganizationprovider then {
wholeORGproveder -> WholeOrganizationprovider.meta as meta then {
wholeORGproveder -> meta.tag = create('Coding') as coding then {
wholeORGproveder -> coding.system = 'http://algoritmodiscoring' "system";
wholeORGproveder -> coding.code = 'ClinicalDocument/recordTarget/PatientRole/patient/providerOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeORGproveder -> organizationpartOfprovider.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %WholeOrganizationprovider.id) "asOrganization";
wholeORGproveder.id as id -> WholeOrganizationprovider.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeORGproveder -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> WholeOrganizationprovider.id = (r + '-' + ext) as uuid7, e6.fullUrl = append('https://example/Organization/', uuid7);
} "r";
} "identifier";
wholeORGproveder.name as v -> WholeOrganizationprovider.name = (v.other);
wholeORGproveder.telecom -> WholeOrganizationprovider.telecom;
wholeORGproveder.addr -> WholeOrganizationprovider.address;
} "wholeOrganizationprovider";
} "OrganizationPartOfprovider";
} "organization";
};
}
group CustodianOrganization(source src : CustodianOrganization, target tgt : Organization) {
src.name as v -> tgt.name = (v.other);
src.telecom -> tgt.telecom;
src.addr -> tgt.address;
}
group ClinicalDocumentEncounter(source src : EncompassingEncounter, target bundle : Bundle, target encounter : Encounter, target patient : Patient) {
src.id -> encounter.identifier;
src.code as code1 -> encounter.class = create('Coding') as coding then {
code1.code as code -> coding.code = cast(code, 'string');
code1.codeSystem as system -> coding.system = translate(system, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri');
code1.displayName as display -> coding.display = cast(display, 'string');
} "class";
src where src.code.exists().not() -> encounter.class = create('Coding') as coding then {
src -> coding.code = 'AMB' "code";
src -> coding.system = 'http://terminology.hl7.org/CodeSystem/v3-ActCode' "codeS";
src -> coding.display = 'ambulatory' "display";
} "NonCodeclass";
src -> encounter.subject = create('Reference') as reference, reference.reference = ('https://example/Patient/' + %patient.id) "reference";
src -> encounter.status = 'finished' "status";
// effectiveTime=period
src where effectiveTime.low.exists() or effectiveTime.high.exists() then {
src.effectiveTime as eff -> encounter.period = create('Period') as period then IVLTSPeriod(eff, period);
} "where";
// effectiveTime = time-stamp
src where effectiveTime.low.exists().not() or effectiveTime.high.exists().not() then {
src.effectiveTime as effectivetime1 -> encounter.period = create('Period') as period then {
effectivetime1 -> period.start = create('dateTime') as start then TSDateTime(effectivetime1, start) "val";
} "efft";
} "where";
// src.effectiveTime as effectivetime1 -> encounter.period as period, period.start=(effectivetime1.value);
src.dischargeDispositionCode as dischargeDispositionCode then {
dischargeDispositionCode -> encounter.hospitalization as hospitalization then {
dischargeDispositionCode -> hospitalization.dischargeDisposition "disDisp";
} "disposition";
} "discharge";
src.responsibleParty as responsibleParty -> encounter.participant as participant then {
responsibleParty.assignedEntity as entity -> bundle.entry as e, e.request = create('BackboneElement') as request, request.method = 'POST', e.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid1, e.fullUrl = append('https://example/PractitionerRole/', uuid1), request.url = 'PractitionerRole', participant.individual = create('Reference') as reference, reference.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) then {
entity.code -> practitionerRole.code;
entity -> bundle.entry as e1, e1.request = create('BackboneElement') as request, request.method = 'PUT', e1.resource = create('Practitioner') as practitioner then {
entity -> practitioner.meta as meta then {
entity -> meta.tag = create('Coding') as coding then {
entity -> coding.system = 'http://algoritmodiscoring' "system";
entity -> coding.code = 'ClinicalDocument/componentOf/EncompassingEncounter/responsibleParty' "code";
} "coding";
} "meta";
entity.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e1.fullUrl = append('https://example/Practitioner/', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id);
} "r";
} "identifier";
entity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
entity.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
entity.addr -> practitioner.address;
entity.telecom -> practitioner.telecom;
entity.assignedPerson as person then {
person.name -> practitioner.name;
person.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10) "birthTimeENC";
} "birth";
} "name";
} "practitioner";
entity.representedOrganization as raporg -> bundle.entry as e2, e2.request = create('BackboneElement') as request, request.method = 'PUT', e2.resource = create('Organization') as rapresentedorganization then {
raporg -> rapresentedorganization.meta as meta then {
raporg -> meta.tag = create('Coding') as coding then {
raporg -> coding.system = 'http://algoritmodiscoring' "system";
raporg -> coding.code = 'ClinicalDocument/componentOf/EncompassingEncounter/responsibleParty/representedOrganization' "code";
} "coding";
} "meta";
// raporg.id -> rapresentedorganization.identifier;
raporg.id as id -> rapresentedorganization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
raporg -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> rapresentedorganization.id = (r + '-' + ext) as uuid3, e2.fullUrl = append('https://example/Organization/', uuid3), practitionerRole.organization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %rapresentedorganization.id);
} "r";
} "identifier";
raporg.name as v -> rapresentedorganization.name = (v.other);
raporg.telecom -> rapresentedorganization.telecom;
raporg.addr -> rapresentedorganization.address;
raporg.asOrganizationPartOf as OrgPartOf -> bundle.entry as e3, e3.request = create('BackboneElement') as request, request.method = 'PUT', e3.resource = create('Organization') as organization1, organization1.id = uuid() as uuid4, e3.fullUrl = append('https://example/Organization/', uuid4), rapresentedorganization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization1.id) then {
// OrgPartOf.id -> organization1.identifier;
OrgPartOf -> organization1.meta as meta then {
OrgPartOf -> meta.tag = create('Coding') as coding then {
OrgPartOf -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOf -> coding.code = 'ClinicalDocument/componentOf/EncompassingEncounter/responsibleParty/representedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
OrgPartOf.id as id -> organization1.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid4, e3.fullUrl = append('https://example/Organization/', uuid4), rapresentedorganization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization1.id);
} "r";
} "identifier";
OrgPartOf.code -> organization1.type;
OrgPartOf.statusCode as status where (value = 'active') -> organization1.active = create('boolean'), organization1.active = true;
OrgPartOf.wholeOrganization as wholeOrgan -> bundle.entry as e4, e4.request = create('BackboneElement') as request, request.method = 'PUT', e4.resource = create('Organization') as organization2 then {
// wholeOrgan.id -> organization2.identifier;
wholeOrgan -> organization2.meta as meta then {
wholeOrgan -> meta.tag = create('Coding') as coding then {
wholeOrgan -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrgan -> coding.code = 'ClinicalDocument/componentOf/EncompassingEncounter/responsibleParty/representedOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrgan.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrgan -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization2.id = (r + '-' + ext) as uuid5, e4.fullUrl = append('https://example/Organization/', uuid5), organization1.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization2.id);
} "r";
} "identifier";
wholeOrgan.name as v -> organization2.name = (v.other);
wholeOrgan.telecom -> organization2.telecom;
wholeOrgan.addr -> organization2.address;
} "wholeOrgan";
} "OrgPartOf";
} "organization";
} "entity";
} "particpant";
src.encounterParticipant as participant then {
participant.assignedEntity as assignedEntity -> bundle.entry as e313, e313.request = create('BackboneElement') as request, request.method = 'POST', e313.resource = create('PractitionerRole') as practitionerRole, practitionerRole.id = uuid() as uuid1, e313.fullUrl = append('https://example/PractitionerRole/', uuid1), request.url = 'PractitionerRole', encounter.participant = create('BackboneElement') as participant1 then {
// participant.time as time->participant1.period as period ,period.start=(time.value);
participant -> participant1.period = create('Period') as period then {
participant.time as time -> period.start = create('dateTime') as start then TSDateTime(time, start);
} "period";
participant as p -> participant1.type as type then {
p -> type.coding as coding then {
p -> coding.code = (p.typeCode) "codice";
p -> coding.system = 'http://terminology.hl7.org/CodeSystem/v3-ParticipationType' "system";
} "codeType";
} "type";
participant -> participant1.individual = create('Reference') as referencepart, referencepart.reference = ('https://example/PractitionerRole/' + %practitionerRole.id) "par";
participant.functionCode -> practitionerRole.code;
assignedEntity -> bundle.entry as e33, e33.request = create('BackboneElement') as request, request.method = 'PUT', e33.resource = create('Practitioner') as practitioner then {
assignedEntity -> practitioner.meta as meta then {
assignedEntity -> meta.tag = create('Coding') as coding then {
assignedEntity -> coding.system = 'http://algoritmodiscoring' "system";
assignedEntity -> coding.code = 'ClinicalDocument/encounterParticipant' "code";
} "coding";
} "meta";
assignedEntity.id as id -> practitioner.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext;
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> practitioner.id = (r + '-' + ext) as uuid2, e33.fullUrl = append('https://example/Practitioner/', uuid2), practitionerRole.practitioner = create('Reference') as reference, reference.reference = ('https://example/Practitioner/' + %practitioner.id);
} "r";
} "identifier";
assignedEntity.id as id where (root = '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "2";
assignedEntity.id as id where (root != '2.16.840.1.113883.2.9.4.3.2') then {
id.extension as ext -> request.url = append('Practitioner?identifier=', ext) "UUID";
} "diverso";
assignedEntity.code -> practitionerRole.code;
assignedEntity.addr -> practitioner.address;
assignedEntity.telecom -> practitioner.telecom;
assignedEntity.associatedPerson as assignedPerson then {
assignedPerson.name -> practitioner.name;
assignedPerson.birthTime as birthTime then {
birthTime.value as date -> practitioner.birthDate = truncate(date, 10) "birthTimelegal";
} "birth";
} "name";
assignedEntity.representedOrganization as representedOrganization -> bundle.entry as e34, e34.request = create('BackboneElement') as request, request.method = 'PUT', e34.resource = create('Organization') as organization then {
representedOrganization -> organization.meta as meta then {
representedOrganization -> meta.tag = create('Coding') as coding then {
representedOrganization -> coding.system = 'http://algoritmodiscoring' "system";
representedOrganization -> coding.code = 'ClinicalDocument/encounterParticipant/scopingOrganization' "code";
} "coding";
} "meta";
representedOrganization.id as id -> organization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
representedOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization.id = (r + '-' + ext) as uuid3, e34.fullUrl = append('https://example/Organization/', uuid3), practitionerRole.organization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization.id);
} "r";
} "identifier";
representedOrganization.name as v -> organization.name = (v.other);
representedOrganization.telecom -> organization.telecom;
representedOrganization.addr -> organization.address;
representedOrganization.asOrganizationPartOf as OrgPartOf -> bundle.entry as e35, e35.request = create('BackboneElement') as request, request.method = 'PUT', e35.resource = create('Organization') as organization1 then {
OrgPartOf.id as id -> organization1.identifier as identifier then {
OrgPartOf -> organization1.meta as meta then {
OrgPartOf -> meta.tag = create('Coding') as coding then {
OrgPartOf -> coding.system = 'http://algoritmodiscoring' "system";
OrgPartOf -> coding.code = 'ClinicalDocument/encounterParticipant/scopingOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
OrgPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid4, e35.fullUrl = append('https://example/Organization/', uuid4), organization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization1.id);
} "r";
} "identifier";
OrgPartOf.code -> organization1.type;
OrgPartOf.statusCode as status where (value = 'active') -> organization1.active = create('boolean'), organization1.active = true;
OrgPartOf.wholeOrganization as wholeOrgan -> bundle.entry as e36, e36.request = create('BackboneElement') as request, request.method = 'PUT', e36.resource = create('Organization') as organization2 then {
wholeOrgan -> organization2.meta as meta then {
wholeOrgan -> meta.tag = create('Coding') as coding then {
wholeOrgan -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrgan -> coding.code = 'ClinicalDocument/encounterParticipant/scopingOrganization/asOrganizationPartOf/wholeOrganization' "code";
} "coding";
} "meta";
wholeOrgan.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrgan -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization1.id = (r + '-' + ext) as uuid5, e36.fullUrl = append('https://example/Organization/', uuid5), organization1.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization2.id);
} "r";
} "identifier";
wholeOrgan.name as v -> organization2.name = (v.other);
wholeOrgan.telecom -> organization2.telecom;
wholeOrgan.addr -> organization2.address;
} "wholeOrgan";
} "OrgPartOf";
};
} "assignedEntity";
} "Participant";
};
src.location as Location then {
Location.healthCareFacility as HCF -> bundle.entry as e5, e5.request = create('BackboneElement') as request, request.method = 'PUT', e5.resource = create('Location') as loc then {
HCF -> loc.meta as meta then {
HCF -> meta.tag = create('Coding') as coding then {
HCF -> coding.system = 'http://algoritmodiscoring' "system";
HCF -> coding.code = 'ClinicalDocument/componentOf/EncompassingEncounter/location/healthCareFacility' "code";
} "coding";
} "meta";
HCF -> encounter.location as locations then {
HCF.id as id -> loc.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
HCF -> request.url = append('Location?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> loc.id = (r + '-' + ext) as uuid6, e5.fullUrl = append('https://example/Location/', uuid6), locations.location = create('Reference') as reference, reference.reference = ('https://example/Location/' + %loc.id) "locc";
} "r";
} "identifier";
HCF.code -> loc.type;
HCF.location as srcLocation then {
srcLocation.name as v -> loc.name = (v.other);
srcLocation.addr -> loc.address;
} "location2";
HCF.serviceProviderOrganization as servProvOrg -> bundle.entry as e, e.request = create('BackboneElement') as request, request.method = 'PUT', e.resource = create('Organization') as serviceProviderOrganization then {
servProvOrg -> serviceProviderOrganization.meta as meta then {
servProvOrg -> meta.tag = create('Coding') as coding then {
servProvOrg -> coding.system = 'http://algoritmodiscoring' "system";
servProvOrg -> coding.code = 'ClinicalDocument/componentOf/EncompassingEncounter/location/healthCareFacility/serviceProviderOrganization' "code";
} "coding";
} "meta";
servProvOrg.id as id -> serviceProviderOrganization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
servProvOrg -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> serviceProviderOrganization.id = (r + '-' + ext) as uuid, e.fullUrl = append('https://example/Organization/', uuid), loc.managingOrganization = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %serviceProviderOrganization.id);
} "r";
} "identifier";
servProvOrg.name as v -> serviceProviderOrganization.name = (v.other);
servProvOrg.telecom -> serviceProviderOrganization.telecom;
servProvOrg.addr -> serviceProviderOrganization.address;
servProvOrg.asOrganizationPartOf as asOrgPartOf then {
asOrgPartOf as asOrgPartOf1 -> bundle.entry as e1, e1.request = create('BackboneElement') as request, request.method = 'PUT', e1.resource = create('Organization') as asorganization then {
asOrgPartOf1 -> asorganization.meta as meta then {
asOrgPartOf1 -> meta.tag = create('Coding') as coding then {
asOrgPartOf1 -> coding.system = 'http://algoritmodiscoring' "system";
asOrgPartOf1 -> coding.code = 'ClinicalDocument/componentOf/EncompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
asOrgPartOf1.id as id -> asorganization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
asOrgPartOf1 -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> asorganization.id = (r + '-' + ext) as uuid1, e1.fullUrl = append('https://example/Organization/', uuid1), serviceProviderOrganization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %asorganization.id);
} "r";
} "identifier";
asOrgPartOf1.code -> asorganization.type;
asOrgPartOf1.statusCode as status where (code = 'active') -> asorganization.active = create('boolean'), asorganization.active = 'true';
asOrgPartOf1.wholeOrganization as wholeOrg then {
wholeOrg as wholeOrg1 -> bundle.entry as e2, e2.request = create('BackboneElement') as request, request.method = 'PUT', e2.resource = create('Organization') as wholeorganization then {
wholeOrg1 -> wholeorganization.meta as meta then {
wholeOrg1 -> meta.tag = create('Coding') as coding then {
wholeOrg1 -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrg1 -> coding.code = 'ClinicalDocument/componentOf/EncompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
wholeOrg1.id as id -> asorganization.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrg1 -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> wholeorganization.id = (r + '-' + ext) as uuid2, e2.fullUrl = append('https://example/Organization/', uuid2), asorganization.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %wholeorganization.id);
} "r";
} "identifier";
wholeOrg1.name as v -> wholeorganization.name = (v.other);
wholeOrg1.telecom -> wholeorganization.telecom;
wholeOrg1.addr -> wholeorganization.address;
} "wholeOrg1";
} "wholeOrg";
} "OrganizationPartOfprovider";
} "asOrg1";
} "SPO";
} "hcf";
} "location1";
};
}
group ClinicalDocumentationOf(source src : representedOrganization, target tgt : organization, target bundle : Bundle) {
src.name -> tgt.name;
src.telecom -> tgt.telecom;
src.addr -> tgt.address;
src.asOrganizationPartOf as asOrganizationPartOf then {
asOrganizationPartOf -> bundle.entry as e, e.request = create('BackboneElement') as request, request.method = 'PUT', e.resource = create('Organization') as organization2 then {
asOrganizationPartOf -> organization2.meta as meta then {
asOrganizationPartOf -> meta.tag = create('Coding') as coding then {
asOrganizationPartOf -> coding.system = 'http://algoritmodiscoring' "system";
asOrganizationPartOf -> coding.code = 'ClinicalDocument/documentationOf/serviceEvent/performer/representedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
asOrganizationPartOf.id as id -> organization2.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
asOrganizationPartOf -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization2.id = (r + '-' + ext) as uuid, e.fullUrl = append('https://example/Organization/', uuid), tgt.partOf = create('Reference') as reference, reference.reference = ('https://example/Organization/' + %organization2.id);
} "r";
} "identifier";
asOrganizationPartOf.code -> organization2.type;
asOrganizationPartOf.statusCode where (value = 'active') -> organization2.active = 'true';
asOrganizationPartOf.wholeOrganization as wholeOrganization -> bundle.entry as e3, e3.request = create('BackboneElement') as request, request.method = 'PUT', e3.resource = create('Organization') as organization3 then {
wholeOrganization -> organization3.meta as meta then {
wholeOrganization -> meta.tag = create('Coding') as coding then {
wholeOrganization -> coding.system = 'http://algoritmodiscoring' "system";
wholeOrganization -> coding.code = 'ClinicalDocument/documentationOf/serviceEvent/performer/representedOrganization/asOrganizationPartOf' "code";
} "coding";
} "meta";
wholeOrganization.id as id -> organization3.identifier as identifier then {
id.root as r -> identifier.system = translate(r, 'http://hl7.org/fhir/ConceptMap/special-oid2uri', 'uri') "root1";
id.extension as ext -> identifier.value = ext then {
wholeOrganization -> request.url = append('Organization?identifier=', ext) "UUID";
} "ext";
id.assigningAuthorityName as s -> identifier.assigner as a, a.display = s;
id.root as r then {
id.extension as ext -> organization3.id = (r + '-' + ext) as uuid1, e.fullUrl = append('https://example/Organization/', uuid1), organization2.partOf = create('Reference') as referenceOrg, referenceOrg.reference = append('https://example/Organization/', uuid1);
} "r";
} "identifier";
wholeOrganization.id -> organization3.identifier;
wholeOrganization.name -> organization3.name;
wholeOrganization.telecom -> organization3.telecom;
wholeOrganization.addr -> organization3.address;
};
} "organizationPartOf";
} "creation";
}
group ChExtEprVersionNumber(source src : INT, target ext : Extension) {
src -> ext.url = 'http://hl7.org/fhir/StructureDefinition/composition-clinicaldocument-versionNumber' "url";
src.value as v -> ext.value = cast(v, 'string');
}
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;
}