FHIR © HL7.org  |  Server Home  |  XIG Home  |  XIG Stats  |  Server Source  |  FHIR  

FHIR IG Statistics: StructureMap/BundleToCda

Packagech.fhir.ig.cda-fhir-maps
Resource TypeStructureMap
IdBundleToCda
FHIR VersionR4
Sourcehttp://fhir.ch/ig/cda-fhir-maps/http://fhir.ch/ig/cda-fhir-maps/StructureMap-BundleToCda.html
URLhttp://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCda
Version0.3.0
Statusdraft
Date2022-02-11T11:14:39+01:00
NameBundleToCda
Realmch
Authorityhl7
Description CDA document 2020-01-16 Oliver Egger, copyright ahdis ag, Apache License CDA: http://build.fhir.org/ig/ahdis/cda-core-2.0/branches/master/index.html FHIR: http://hl7.org/fhir/r4/
CopyrightCC-BY-SA-4.0

Resources that use this resource

No resources found


Resources that this resource uses

No resources found


Narrative

Note: links and images are rebased to the (stated) source

map "http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCda" = "BundleToCda"


// CDA document
// 2020-01-16 Oliver Egger, copyright ahdis ag, Apache License
// CDA:  http://build.fhir.org/ig/ahdis/cda-core-2.0/branches/master/index.html
// FHIR: http://hl7.org/fhir/r4/

uses "http://hl7.org/fhir/cda/StructureDefinition/ClinicalDocument" alias ClinicalDocument as target
uses "http://hl7.org/fhir/cda/StructureDefinition/Author" alias Author as target
uses "http://hl7.org/fhir/cda/StructureDefinition/RecordTarget" alias RecordTarget as target
uses "http://hl7.org/fhir/cda/StructureDefinition/Custodian" alias Custodian as target
uses "http://hl7.org/fhir/cda/StructureDefinition/Organization" alias CdaOrganization as target
uses "http://hl7.org/fhir/cda/StructureDefinition/LegalAuthenticator" alias LegalAuthenticator as target
uses "http://hl7.org/fhir/cda/StructureDefinition/Section" alias CdaSection as target
uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as source
uses "http://hl7.org/fhir/StructureDefinition/Composition" alias Composition as source
uses "http://hl7.org/fhir/StructureDefinition/Practitioner" alias Practitioner as source
uses "http://hl7.org/fhir/StructureDefinition/Patient" alias Patient as source
uses "http://hl7.org/fhir/StructureDefinition/Organization" alias Organization as source
uses "http://hl7.org/fhir/StructureDefinition/BackboneElement" alias BackboneElement as source

imports "http://fhir.ch/ig/cda-fhir-maps/StructureMap/FhirToCdaTypes"

group BundleToCda(source bundle : Bundle, target cda : ClinicalDocument) {
  bundle ->  cda.recordTarget as recordTarget,  cda.author as author then BundleToClinicalDocument(bundle, recordTarget, author, cda) "bundle";
}

group BundleToClinicalDocument(source bundle : Bundle, target recordTarget : RecordTarget, target author : Author, target cda : ClinicalDocument) {
  bundle -> cda.typeId as typeId then {
    bundle -> typeId.root = '2.16.840.1.113883.1.3' "root";
    bundle -> typeId.extension = 'POCD_HD000040' "extension";
  } "typeId";
  bundle.identifier as identifier -> cda.id as id then IdentifierII(identifier, id) "id";
  bundle.timestamp as timestamp -> cda.effectiveTime as effectiveTime then InstantTS(timestamp, effectiveTime) "effectiveTime";
  bundle.entry as entry then {
    entry.resource as resource where $this.ofType(FHIR.Composition) then CompositionClinicalDocument(bundle, resource, recordTarget, author, cda);
  };
}

// _________________________ Section Level Templates _________________________
group SectionCdaSection(source bundle : Bundle, source section : BackboneElement, target cdasection : CdaSection) {
  section.extension as extension where $this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-sectionid' -> cdasection.id as id then {
    extension.valueIdentifier as valueIdentifier then IdentifierII(valueIdentifier, id) "IdentifierII";
  } "valueIdentifier";
  section as section where $this.extension.where(url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-sectionid').exists() = false -> cdasection.id as id then {
    bundle.identifier as identifier -> cdasection.id as id then IdentifierII(identifier, id) "setId";
  } "sectionid";
  section.code as code then {
    code.coding as coding where $this.system = 'http://loinc.org' -> cdasection.code as cdacode then CodingCE(coding, cdacode) "codingsection";
  };
  section.title as title ->  cdasection.title as cdatitle,  cdatitle.data = title;
  section.text as text then {
    text.div as div -> cdasection.text = div;
  };
}

// _________________________ Entry Level Templates   ________________________
// _________________________ Header Level Templates _________________________
group CompositionClinicalDocument(source bundle : Bundle, source composition : Composition, target recordTarget : RecordTarget, target author : Author, target cda : ClinicalDocument) {
  composition.type as type then {
    type.coding as coding where $this.system = 'http://loinc.org' -> cda.code as code share docCode then CodingCE(coding, code) "code";
  };
  composition.title as title -> cda.title as t then {
    title -> t.data = title "titleInner";
  };
  composition.confidentiality as conf -> cda.confidentialityCode as cdaconf then {
    conf -> cdaconf.code = conf "conf";
    conf -> cdaconf.codeSystem = '2.16.840.1.113883.5.25' "codeSystem";
  } "confidentialityCode";
  composition.language as language ->  cda.languageCode as languageCode,  languageCode.code = language "languageCode";
  bundle.entry as entry then {
    entry.fullUrl where ($this in %composition.subject.reference) and $this.startsWith('urn:uuid') then {
      entry.resource : Patient as patient then PatientRecordTarget(patient, bundle, recordTarget) "patient";
    } "uuid";
    entry.resource as patient where ('Patient' + '/' + $this.id) in %composition.subject.reference then PatientRecordTarget(patient, bundle, recordTarget) "patient";
    entry.fullUrl where ($this in %composition.custodian.reference) and $this.startsWith('urn:uuid') then {
      entry.resource : Organization as organization -> cda.custodian as custodian then OrganizationCustodian(organization, custodian) "custodian";
    } "uuid";
    entry.resource as organization where ('Organization' + '/' + $this.id) in %composition.custodian.reference -> cda.custodian as custodian then OrganizationCustodian(organization, custodian) "custodian";
    entry.fullUrl where ($this in %composition.author.reference) and $this.startsWith('urn:uuid') then {
      entry.resource : Practitioner as practitioner then PractitionerAuthor(bundle, composition, practitioner, author) "author";
    } "uuid";
    entry.resource as practitioner where ('Practitioner' + '/' + $this.id) in %composition.author.reference then PractitionerAuthor(bundle, composition, practitioner, author) "author";
    entry.fullUrl where ($this in %composition.attester.party.reference) and $this.startsWith('urn:uuid') then {
      entry.resource : Practitioner as practitioner -> cda.legalAuthenticator as legalAuthenticator then PractitionerLegalAuthenticator(bundle, composition, practitioner, legalAuthenticator) "legalAuthenticator";
    } "uuid";
    entry.resource as practitioner where ('Practitioner' + '/' + $this.id) in %composition.attester.party.reference -> cda.legalAuthenticator as legalAuthenticator then PractitionerLegalAuthenticator(bundle, composition, practitioner, legalAuthenticator) "legalAuthenticator";
  } "patient";
  // source.date -> tgt.effectiveTime "effectiveTime";
  composition.section as section where $this.code.exists() = false -> cda.component as component then {
    section -> component.contextConductionInd = true "contextConductionInd";
    section ->  component.structuredBody as structuredBody,  structuredBody.component as component,  component.section as cdasection then SectionCdaSection(bundle, section, cdasection) "cdasection";
  };
}

group PatientRecordTarget(source src : Patient, source bundle : Bundle, target tgt : RecordTarget) {
  src -> tgt.patientRole as patientRole then {
    src.identifier as identifier -> patientRole.id as id then IdentifierII(identifier, id);
    src.address as address -> patientRole.addr as ad then AddressAD(address, ad);
    src -> patientRole.patient as patient then {
      src.name as humanname -> patient.name as en then HumanNameEN(humanname, en);
      src.birthDate as birthDate -> patient.birthTime as birthTime then DateTS(birthDate, birthTime);
      src.gender as v log $this -> patient.administrativeGenderCode as adminGender then {
        v -> adminGender.code = translate(v, 'http://hl7.org/fhir/ConceptMap/cm-administrative-gender-v3', 'code') "gender";
        v -> adminGender.codeSystem = '2.16.840.1.113883.5.1' "codeSytem";
        v -> adminGender.codeSystemName = 'HL7 AdministrativeGender' "codeSystemName";
        v as v where $this = 'male' -> adminGender.displayName = 'Male' "male";
        v as v where $this = 'female' -> adminGender.displayName = 'Female' "female";
        v as v where $this = 'other' -> adminGender.displayName = 'Undifferentiated' "other";
      };
    } "patient";
    src.telecom as telecom -> patientRole.telecom as tel then ContactPointTEL(telecom, tel);
    src.managingOrganization as managingOrganization then {
      bundle.entry as entry then {
        entry.fullUrl where ($this in %managingOrganization.reference) and $this.startsWith('urn:uuid') -> patientRole.providerOrganization as providerOrganization then Organization2CdaOrganization(managingOrganization, providerOrganization) "providerOrganization";
        entry.resource as organization where ('Organization' + '/' + $this.id) in %managingOrganization.reference -> patientRole.providerOrganization as providerOrganization then Organization2CdaOrganization(managingOrganization, providerOrganization) "providerOrganization";
      };
    };
  } "patientRole";
}

group PractitionerAuthor(source bundle : Bundle, source composition : Composition, source src : Practitioner, target tgt : Author) {
  composition.author as srcauthor then {
    srcauthor.extension as extensionTime where $this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-time' then {
      extensionTime.valueDateTime as valueDateTime -> tgt.time as time then DateTimeTS(valueDateTime, time) "DateTime";
    } "extensionTime";
  } "srcAuthor";
  bundle.timestamp as valueDateTime where composition.author.extension.where(url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-time').empty() -> tgt.time as time then DateTimeTS(valueDateTime, time) "DateTimeBundle";
  src -> tgt.assignedAuthor as assignedAuthor then {
    src.identifier as identifier -> assignedAuthor.id as id then IdentifierII(identifier, id) "id";
    src.telecom first as telecom -> assignedAuthor.telecom as tel then ContactPointTEL(telecom, tel);
    src.address as address -> assignedAuthor.addr as ad then AddressAD(address, ad);
    src.name as name ->  assignedAuthor.assignedPerson as assignedPerson,  assignedPerson.name as en then HumanNameEN(name, en);
    bundle.entry as entry then {
      entry.fullUrl where ($this in %composition.author.reference) and $this.startsWith('urn:uuid') then {
        entry.resource : Organization as organization -> assignedAuthor.representedOrganization as cdaorganization then Organization2CdaOrganization(organization, cdaorganization) "organization";
      } "uuid";
      entry.resource as organization where ('Organization' + '/' + $this.id) in %composition.author.reference -> assignedAuthor.representedOrganization as cdaorganization then Organization2CdaOrganization(organization, cdaorganization) "organization";
    } "patient";
  } "assignedAuthor";
}

group OrganizationCustodian(source src : Organization, target tgt : Custodian) {
  src -> tgt.assignedCustodian as assignedCustodian then {
    src -> assignedCustodian.representedCustodianOrganization as representedCustodianOrganization then Organization2CdaOrganizationCustodian(src, representedCustodianOrganization) "representedCustodianOrganization";
  } "assignedCustodian";
}

group Organization2CdaOrganizationCustodian(source src : Organization, target tgt : CdaOrganization) {
  src.identifier as identifier -> tgt.id as id then IdentifierII(identifier, id) "id";
  src.name as name ->  tgt.name as orgname,  orgname.other = name;
  src.address as address -> tgt.addr as ad then AddressAD(address, ad);
  // target telecom is 0..1
  src.telecom first as telecom -> tgt.telecom as tel then ContactPointTEL(telecom, tel);
}

group Organization2CdaOrganization(source src : Organization, target tgt : CdaOrganization) {
  src.identifier as identifier -> tgt.id as id then IdentifierII(identifier, id) "id";
  src.name as name ->  tgt.name as orgname,  orgname.other = name;
  src.address as address -> tgt.addr as ad then AddressAD(address, ad);
  src.telecom as telecom -> tgt.telecom as tel then ContactPointTEL(telecom, tel);
}

group PractitionerLegalAuthenticator(source bundle : Bundle, source composition : Composition, source src : Practitioner, target tgt : LegalAuthenticator) {
  src ->  tgt.templateId as templateId,  templateId.root = '2.16.756.5.30.1.1.10.2.5' "templateId";
  composition.attester as attester then {
    attester.time as srcTime -> tgt.time as time then InstantTS(srcTime, time) "timestamp";
  } "time";
  // src -> tgt.signatureCode = 'S' "S";
  src ->  tgt.signatureCode as signatureCode,  signatureCode.code = 'S' "signature";
  src -> tgt.assignedEntity as assignedEntity then {
    src.identifier as identifier -> assignedEntity.id as id then IdentifierII(identifier, id);
    src.name as name ->  assignedEntity.assignedPerson as assignedPerson,  assignedPerson.name as en then HumanNameEN(name, en);
  } "assignedEntity";
}


Source

{
  "resourceType": "StructureMap",
  "id": "BundleToCda",
  "meta": {
    "versionId": "3",
    "lastUpdated": "2022-01-11T22:14:50.980+01:00"
  },
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "url": "http://fhir.ch/ig/cda-fhir-maps/StructureMap/BundleToCda",
  "version": "0.3.0",
  "name": "BundleToCda",
  "status": "draft",
  "date": "2022-02-11T11:14:39+01:00",
  "publisher": "ahdis",
  "contact": [
    {
      "name": "ahdis",
      "telecom": [
        {
          "system": "url",
          "value": "http://www.ahdis.ch/"
        }
      ]
    }
  ],
  "description": "\r\nCDA document\r\n2020-01-16 Oliver Egger, copyright ahdis ag, Apache License\r\nCDA:  http://build.fhir.org/ig/ahdis/cda-core-2.0/branches/master/index.html\r\nFHIR: http://hl7.org/fhir/r4/\r\n",
  "copyright": "CC-BY-SA-4.0",
  "structure": [
    {
      "url": "http://hl7.org/fhir/cda/StructureDefinition/ClinicalDocument",
      "mode": "target",
      "alias": "ClinicalDocument"
    },
    {
      "url": "http://hl7.org/fhir/cda/StructureDefinition/Author",
      "mode": "target",
      "alias": "Author"
    },
    {
      "url": "http://hl7.org/fhir/cda/StructureDefinition/RecordTarget",
      "mode": "target",
      "alias": "RecordTarget"
    },
    {
      "url": "http://hl7.org/fhir/cda/StructureDefinition/Custodian",
      "mode": "target",
      "alias": "Custodian"
    },
    {
      "url": "http://hl7.org/fhir/cda/StructureDefinition/Organization",
      "mode": "target",
      "alias": "CdaOrganization"
    },
    {
      "url": "http://hl7.org/fhir/cda/StructureDefinition/LegalAuthenticator",
      "mode": "target",
      "alias": "LegalAuthenticator"
    },
    {
      "url": "http://hl7.org/fhir/cda/StructureDefinition/Section",
      "mode": "target",
      "alias": "CdaSection"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/Bundle",
      "mode": "source",
      "alias": "Bundle"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/Composition",
      "mode": "source",
      "alias": "Composition"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/Practitioner",
      "mode": "source",
      "alias": "Practitioner"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/Patient",
      "mode": "source",
      "alias": "Patient"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/Organization",
      "mode": "source",
      "alias": "Organization"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/BackboneElement",
      "mode": "source",
      "alias": "BackboneElement"
    }
  ],
  "import": [
    "http://fhir.ch/ig/cda-fhir-maps/StructureMap/FhirToCdaTypes"
  ],
  "group": [
    {
      "name": "BundleToCda",
      "typeMode": "none",
      "input": [
        {
          "name": "bundle",
          "type": "Bundle",
          "mode": "source"
        },
        {
          "name": "cda",
          "type": "ClinicalDocument",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "bundle",
          "source": [
            {
              "context": "bundle"
            }
          ],
          "target": [
            {
              "context": "cda",
              "contextType": "variable",
              "element": "recordTarget",
              "variable": "recordTarget"
            },
            {
              "context": "cda",
              "contextType": "variable",
              "element": "author",
              "variable": "author"
            }
          ],
          "dependent": [
            {
              "name": "BundleToClinicalDocument",
              "variable": [
                "bundle",
                "recordTarget",
                "author",
                "cda"
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "BundleToClinicalDocument",
      "typeMode": "none",
      "input": [
        {
          "name": "bundle",
          "type": "Bundle",
          "mode": "source"
        },
        {
          "name": "recordTarget",
          "type": "RecordTarget",
          "mode": "target"
        },
        {
          "name": "author",
          "type": "Author",
          "mode": "target"
        },
        {
          "name": "cda",
          "type": "ClinicalDocument",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "typeId",
          "source": [
            {
              "context": "bundle"
            }
          ],
          "target": [
            {
              "context": "cda",
              "contextType": "variable",
              "element": "typeId",
              "variable": "typeId"
            }
          ],
          "rule": [
            {
              "name": "root",
              "source": [
                {
                  "context": "bundle"
                }
              ],
              "target": [
                {
                  "context": "typeId",
                  "contextType": "variable",
                  "element": "root",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "2.16.840.1.113883.1.3"
                    }
                  ]
                }
              ]
            },
            {
              "name": "extension",
              "source": [
                {
                  "context": "bundle"
                }
              ],
              "target": [
                {
                  "context": "typeId",
                  "contextType": "variable",
                  "element": "extension",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "POCD_HD000040"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "id",
          "source": [
            {
              "context": "bundle",
              "element": "identifier",
              "variable": "identifier"
            }
          ],
          "target": [
            {
              "context": "cda",
              "contextType": "variable",
              "element": "id",
              "variable": "id"
            }
          ],
          "dependent": [
            {
              "name": "IdentifierII",
              "variable": [
                "identifier",
                "id"
              ]
            }
          ]
        },
        {
          "name": "effectiveTime",
          "source": [
            {
              "context": "bundle",
              "element": "timestamp",
              "variable": "timestamp"
            }
          ],
          "target": [
            {
              "context": "cda",
              "contextType": "variable",
              "element": "effectiveTime",
              "variable": "effectiveTime"
            }
          ],
          "dependent": [
            {
              "name": "InstantTS",
              "variable": [
                "timestamp",
                "effectiveTime"
              ]
            }
          ]
        },
        {
          "name": "entry",
          "source": [
            {
              "context": "bundle",
              "element": "entry",
              "variable": "entry"
            }
          ],
          "rule": [
            {
              "name": "resource",
              "source": [
                {
                  "context": "entry",
                  "element": "resource",
                  "variable": "resource",
                  "condition": "$this.ofType(FHIR.Composition)"
                }
              ],
              "dependent": [
                {
                  "name": "CompositionClinicalDocument",
                  "variable": [
                    "bundle",
                    "resource",
                    "recordTarget",
                    "author",
                    "cda"
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "SectionCdaSection",
      "typeMode": "none",
      "documentation": "_________________________ Section Level Templates _________________________",
      "input": [
        {
          "name": "bundle",
          "type": "Bundle",
          "mode": "source"
        },
        {
          "name": "section",
          "type": "BackboneElement",
          "mode": "source"
        },
        {
          "name": "cdasection",
          "type": "CdaSection",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "valueIdentifier",
          "source": [
            {
              "context": "section",
              "element": "extension",
              "variable": "extension",
              "condition": "$this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-sectionid'"
            }
          ],
          "target": [
            {
              "context": "cdasection",
              "contextType": "variable",
              "element": "id",
              "variable": "id"
            }
          ],
          "rule": [
            {
              "name": "IdentifierII",
              "source": [
                {
                  "context": "extension",
                  "element": "valueIdentifier",
                  "variable": "valueIdentifier"
                }
              ],
              "dependent": [
                {
                  "name": "IdentifierII",
                  "variable": [
                    "valueIdentifier",
                    "id"
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "sectionid",
          "source": [
            {
              "context": "section",
              "variable": "section",
              "condition": "$this.extension.where(url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-sectionid').exists() = false"
            }
          ],
          "target": [
            {
              "context": "cdasection",
              "contextType": "variable",
              "element": "id",
              "variable": "id"
            }
          ],
          "rule": [
            {
              "name": "setId",
              "source": [
                {
                  "context": "bundle",
                  "element": "identifier",
                  "variable": "identifier"
                }
              ],
              "target": [
                {
                  "context": "cdasection",
                  "contextType": "variable",
                  "element": "id",
                  "variable": "id"
                }
              ],
              "dependent": [
                {
                  "name": "IdentifierII",
                  "variable": [
                    "identifier",
                    "id"
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "code",
          "source": [
            {
              "context": "section",
              "element": "code",
              "variable": "code"
            }
          ],
          "rule": [
            {
              "name": "codingsection",
              "source": [
                {
                  "context": "code",
                  "element": "coding",
                  "variable": "coding",
                  "condition": "$this.system = 'http://loinc.org'"
                }
              ],
              "target": [
                {
                  "context": "cdasection",
                  "contextType": "variable",
                  "element": "code",
                  "variable": "cdacode"
                }
              ],
              "dependent": [
                {
                  "name": "CodingCE",
                  "variable": [
                    "coding",
                    "cdacode"
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "title",
          "source": [
            {
              "context": "section",
              "element": "title",
              "variable": "title"
            }
          ],
          "target": [
            {
              "context": "cdasection",
              "contextType": "variable",
              "element": "title",
              "variable": "cdatitle"
            },
            {
              "context": "cdatitle",
              "contextType": "variable",
              "element": "data",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "title"
                }
              ]
            }
          ]
        },
        {
          "name": "text",
          "source": [
            {
              "context": "section",
              "element": "text",
              "variable": "text"
            }
          ],
          "rule": [
            {
              "name": "div",
              "source": [
                {
                  "context": "text",
                  "element": "div",
                  "variable": "div"
                }
              ],
              "target": [
                {
                  "context": "cdasection",
                  "contextType": "variable",
                  "element": "text",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "div"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "CompositionClinicalDocument",
      "typeMode": "none",
      "documentation": "_________________________ Entry Level Templates   ________________________\r\n_________________________ Header Level Templates _________________________",
      "input": [
        {
          "name": "bundle",
          "type": "Bundle",
          "mode": "source"
        },
        {
          "name": "composition",
          "type": "Composition",
          "mode": "source"
        },
        {
          "name": "recordTarget",
          "type": "RecordTarget",
          "mode": "target"
        },
        {
          "name": "author",
          "type": "Author",
          "mode": "target"
        },
        {
          "name": "cda",
          "type": "ClinicalDocument",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "type",
          "source": [
            {
              "context": "composition",
              "element": "type",
              "variable": "type"
            }
          ],
          "rule": [
            {
              "name": "code",
              "source": [
                {
                  "context": "type",
                  "element": "coding",
                  "variable": "coding",
                  "condition": "$this.system = 'http://loinc.org'"
                }
              ],
              "target": [
                {
                  "context": "cda",
                  "contextType": "variable",
                  "element": "code",
                  "variable": "code",
                  "listMode": [
                    "share"
                  ],
                  "listRuleId": "docCode"
                }
              ],
              "dependent": [
                {
                  "name": "CodingCE",
                  "variable": [
                    "coding",
                    "code"
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "title",
          "source": [
            {
              "context": "composition",
              "element": "title",
              "variable": "title"
            }
          ],
          "target": [
            {
              "context": "cda",
              "contextType": "variable",
              "element": "title",
              "variable": "t"
            }
          ],
          "rule": [
            {
              "name": "titleInner",
              "source": [
                {
                  "context": "title"
                }
              ],
              "target": [
                {
                  "context": "t",
                  "contextType": "variable",
                  "element": "data",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "title"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "confidentialityCode",
          "source": [
            {
              "context": "composition",
              "element": "confidentiality",
              "variable": "conf"
            }
          ],
          "target": [
            {
              "context": "cda",
              "contextType": "variable",
              "element": "confidentialityCode",
              "variable": "cdaconf"
            }
          ],
          "rule": [
            {
              "name": "conf",
              "source": [
                {
                  "context": "conf"
                }
              ],
              "target": [
                {
                  "context": "cdaconf",
                  "contextType": "variable",
                  "element": "code",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "conf"
                    }
                  ]
                }
              ]
            },
            {
              "name": "codeSystem",
              "source": [
                {
                  "context": "conf"
                }
              ],
              "target": [
                {
                  "context": "cdaconf",
                  "contextType": "variable",
                  "element": "codeSystem",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "2.16.840.1.113883.5.25"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "languageCode",
          "source": [
            {
              "context": "composition",
              "element": "language",
              "variable": "language"
            }
          ],
          "target": [
            {
              "context": "cda",
              "contextType": "variable",
              "element": "languageCode",
              "variable": "languageCode"
            },
            {
              "context": "languageCode",
              "contextType": "variable",
              "element": "code",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "language"
                }
              ]
            }
          ]
        },
        {
          "name": "patient",
          "source": [
            {
              "context": "bundle",
              "element": "entry",
              "variable": "entry"
            }
          ],
          "rule": [
            {
              "name": "uuid",
              "source": [
                {
                  "context": "entry",
                  "element": "fullUrl",
                  "condition": "($this in %composition.subject.reference) and $this.startsWith('urn:uuid')"
                }
              ],
              "rule": [
                {
                  "name": "patient",
                  "source": [
                    {
                      "context": "entry",
                      "type": "Patient",
                      "element": "resource",
                      "variable": "patient"
                    }
                  ],
                  "dependent": [
                    {
                      "name": "PatientRecordTarget",
                      "variable": [
                        "patient",
                        "bundle",
                        "recordTarget"
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "patient",
              "source": [
                {
                  "context": "entry",
                  "element": "resource",
                  "variable": "patient",
                  "condition": "('Patient' + '/' + $this.id) in %composition.subject.reference"
                }
              ],
              "dependent": [
                {
                  "name": "PatientRecordTarget",
                  "variable": [
                    "patient",
                    "bundle",
                    "recordTarget"
                  ]
                }
              ]
            },
            {
              "name": "uuid",
              "source": [
                {
                  "context": "entry",
                  "element": "fullUrl",
                  "condition": "($this in %composition.custodian.reference) and $this.startsWith('urn:uuid')"
                }
              ],
              "rule": [
                {
                  "name": "custodian",
                  "source": [
                    {
                      "context": "entry",
                      "type": "Organization",
                      "element": "resource",
                      "variable": "organization"
                    }
                  ],
                  "target": [
                    {
                      "context": "cda",
                      "contextType": "variable",
                      "element": "custodian",
                      "variable": "custodian"
                    }
                  ],
                  "dependent": [
                    {
                      "name": "OrganizationCustodian",
                      "variable": [
                        "organization",
                        "custodian"
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "custodian",
              "source": [
                {
                  "context": "entry",
                  "element": "resource",
                  "variable": "organization",
                  "condition": "('Organization' + '/' + $this.id) in %composition.custodian.reference"
                }
              ],
              "target": [
                {
                  "context": "cda",
                  "contextType": "variable",
                  "element": "custodian",
                  "variable": "custodian"
                }
              ],
              "dependent": [
                {
                  "name": "OrganizationCustodian",
                  "variable": [
                    "organization",
                    "custodian"
                  ]
                }
              ]
            },
            {
              "name": "uuid",
              "source": [
                {
                  "context": "entry",
                  "element": "fullUrl",
                  "condition": "($this in %composition.author.reference) and $this.startsWith('urn:uuid')"
                }
              ],
              "rule": [
                {
                  "name": "author",
                  "source": [
                    {
                      "context": "entry",
                      "type": "Practitioner",
                      "element": "resource",
                      "variable": "practitioner"
                    }
                  ],
                  "dependent": [
                    {
                      "name": "PractitionerAuthor",
                      "variable": [
                        "bundle",
                        "composition",
                        "practitioner",
                        "author"
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "author",
              "source": [
                {
                  "context": "entry",
                  "element": "resource",
                  "variable": "practitioner",
                  "condition": "('Practitioner' + '/' + $this.id) in %composition.author.reference"
                }
              ],
              "dependent": [
                {
                  "name": "PractitionerAuthor",
                  "variable": [
                    "bundle",
                    "composition",
                    "practitioner",
                    "author"
                  ]
                }
              ]
            },
            {
              "name": "uuid",
              "source": [
                {
                  "context": "entry",
                  "element": "fullUrl",
                  "condition": "($this in %composition.attester.party.reference) and $this.startsWith('urn:uuid')"
                }
              ],
              "rule": [
                {
                  "name": "legalAuthenticator",
                  "source": [
                    {
                      "context": "entry",
                      "type": "Practitioner",
                      "element": "resource",
                      "variable": "practitioner"
                    }
                  ],
                  "target": [
                    {
                      "context": "cda",
                      "contextType": "variable",
                      "element": "legalAuthenticator",
                      "variable": "legalAuthenticator"
                    }
                  ],
                  "dependent": [
                    {
                      "name": "PractitionerLegalAuthenticator",
                      "variable": [
                        "bundle",
                        "composition",
                        "practitioner",
                        "legalAuthenticator"
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "legalAuthenticator",
              "source": [
                {
                  "context": "entry",
                  "element": "resource",
                  "variable": "practitioner",
                  "condition": "('Practitioner' + '/' + $this.id) in %composition.attester.party.reference"
                }
              ],
              "target": [
                {
                  "context": "cda",
                  "contextType": "variable",
                  "element": "legalAuthenticator",
                  "variable": "legalAuthenticator"
                }
              ],
              "dependent": [
                {
                  "name": "PractitionerLegalAuthenticator",
                  "variable": [
                    "bundle",
                    "composition",
                    "practitioner",
                    "legalAuthenticator"
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "section",
          "source": [
            {
              "context": "composition",
              "element": "section",
              "variable": "section",
              "condition": "$this.code.exists() = false"
            }
          ],
          "target": [
            {
              "context": "cda",
              "contextType": "variable",
              "element": "component",
              "variable": "component"
            }
          ],
          "rule": [
            {
              "name": "contextConductionInd",
              "source": [
                {
                  "context": "section"
                }
              ],
              "target": [
                {
                  "context": "component",
                  "contextType": "variable",
                  "element": "contextConductionInd",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueBoolean": true
                    }
                  ]
                }
              ]
            },
            {
              "name": "cdasection",
              "source": [
                {
                  "context": "section"
                }
              ],
              "target": [
                {
                  "context": "component",
                  "contextType": "variable",
                  "element": "structuredBody",
                  "variable": "structuredBody"
                },
                {
                  "context": "structuredBody",
                  "contextType": "variable",
                  "element": "component",
                  "variable": "component"
                },
                {
                  "context": "component",
                  "contextType": "variable",
                  "element": "section",
                  "variable": "cdasection"
                }
              ],
              "dependent": [
                {
                  "name": "SectionCdaSection",
                  "variable": [
                    "bundle",
                    "section",
                    "cdasection"
                  ]
                }
              ]
            }
          ],
          "documentation": "source.date -> tgt.effectiveTime \"effectiveTime\";"
        }
      ]
    },
    {
      "name": "PatientRecordTarget",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "Patient",
          "mode": "source"
        },
        {
          "name": "bundle",
          "type": "Bundle",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "RecordTarget",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "patientRole",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "patientRole",
              "variable": "patientRole"
            }
          ],
          "rule": [
            {
              "name": "identifier",
              "source": [
                {
                  "context": "src",
                  "element": "identifier",
                  "variable": "identifier"
                }
              ],
              "target": [
                {
                  "context": "patientRole",
                  "contextType": "variable",
                  "element": "id",
                  "variable": "id"
                }
              ],
              "dependent": [
                {
                  "name": "IdentifierII",
                  "variable": [
                    "identifier",
                    "id"
                  ]
                }
              ]
            },
            {
              "name": "address",
              "source": [
                {
                  "context": "src",
                  "element": "address",
                  "variable": "address"
                }
              ],
              "target": [
                {
                  "context": "patientRole",
                  "contextType": "variable",
                  "element": "addr",
                  "variable": "ad"
                }
              ],
              "dependent": [
                {
                  "name": "AddressAD",
                  "variable": [
                    "address",
                    "ad"
                  ]
                }
              ]
            },
            {
              "name": "patient",
              "source": [
                {
                  "context": "src"
                }
              ],
              "target": [
                {
                  "context": "patientRole",
                  "contextType": "variable",
                  "element": "patient",
                  "variable": "patient"
                }
              ],
              "rule": [
                {
                  "name": "name",
                  "source": [
                    {
                      "context": "src",
                      "element": "name",
                      "variable": "humanname"
                    }
                  ],
                  "target": [
                    {
                      "context": "patient",
                      "contextType": "variable",
                      "element": "name",
                      "variable": "en"
                    }
                  ],
                  "dependent": [
                    {
                      "name": "HumanNameEN",
                      "variable": [
                        "humanname",
                        "en"
                      ]
                    }
                  ]
                },
                {
                  "name": "birthDate",
                  "source": [
                    {
                      "context": "src",
                      "element": "birthDate",
                      "variable": "birthDate"
                    }
                  ],
                  "target": [
                    {
                      "context": "patient",
                      "contextType": "variable",
                      "element": "birthTime",
                      "variable": "birthTime"
                    }
                  ],
                  "dependent": [
                    {
                      "name": "DateTS",
                      "variable": [
                        "birthDate",
                        "birthTime"
                      ]
                    }
                  ]
                },
                {
                  "name": "gender",
                  "source": [
                    {
                      "context": "src",
                      "element": "gender",
                      "variable": "v",
                      "logMessage": "$this"
                    }
                  ],
                  "target": [
                    {
                      "context": "patient",
                      "contextType": "variable",
                      "element": "administrativeGenderCode",
                      "variable": "adminGender"
                    }
                  ],
                  "rule": [
                    {
                      "name": "gender",
                      "source": [
                        {
                          "context": "v"
                        }
                      ],
                      "target": [
                        {
                          "context": "adminGender",
                          "contextType": "variable",
                          "element": "code",
                          "transform": "translate",
                          "parameter": [
                            {
                              "valueId": "v"
                            },
                            {
                              "valueString": "http://hl7.org/fhir/ConceptMap/cm-administrative-gender-v3"
                            },
                            {
                              "valueString": "code"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "codeSytem",
                      "source": [
                        {
                          "context": "v"
                        }
                      ],
                      "target": [
                        {
                          "context": "adminGender",
                          "contextType": "variable",
                          "element": "codeSystem",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "2.16.840.1.113883.5.1"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "codeSystemName",
                      "source": [
                        {
                          "context": "v"
                        }
                      ],
                      "target": [
                        {
                          "context": "adminGender",
                          "contextType": "variable",
                          "element": "codeSystemName",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "HL7 AdministrativeGender"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "male",
                      "source": [
                        {
                          "context": "v",
                          "variable": "v",
                          "condition": "$this = 'male'"
                        }
                      ],
                      "target": [
                        {
                          "context": "adminGender",
                          "contextType": "variable",
                          "element": "displayName",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "Male"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "female",
                      "source": [
                        {
                          "context": "v",
                          "variable": "v",
                          "condition": "$this = 'female'"
                        }
                      ],
                      "target": [
                        {
                          "context": "adminGender",
                          "contextType": "variable",
                          "element": "displayName",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "Female"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "other",
                      "source": [
                        {
                          "context": "v",
                          "variable": "v",
                          "condition": "$this = 'other'"
                        }
                      ],
                      "target": [
                        {
                          "context": "adminGender",
                          "contextType": "variable",
                          "element": "displayName",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "Undifferentiated"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "telecom",
              "source": [
                {
                  "context": "src",
                  "element": "telecom",
                  "variable": "telecom"
                }
              ],
              "target": [
                {
                  "context": "patientRole",
                  "contextType": "variable",
                  "element": "telecom",
                  "variable": "tel"
                }
              ],
              "dependent": [
                {
                  "name": "ContactPointTEL",
                  "variable": [
                    "telecom",
                    "tel"
                  ]
                }
              ]
            },
            {
              "name": "managingOrganization",
              "source": [
                {
                  "context": "src",
                  "element": "managingOrganization",
                  "variable": "managingOrganization"
                }
              ],
              "rule": [
                {
                  "name": "entry",
                  "source": [
                    {
                      "context": "bundle",
                      "element": "entry",
                      "variable": "entry"
                    }
                  ],
                  "rule": [
                    {
                      "name": "providerOrganization",
                      "source": [
                        {
                          "context": "entry",
                          "element": "fullUrl",
                          "condition": "($this in %managingOrganization.reference) and $this.startsWith('urn:uuid')"
                        }
                      ],
                      "target": [
                        {
                          "context": "patientRole",
                          "contextType": "variable",
                          "element": "providerOrganization",
                          "variable": "providerOrganization"
                        }
                      ],
                      "dependent": [
                        {
                          "name": "Organization2CdaOrganization",
                          "variable": [
                            "managingOrganization",
                            "providerOrganization"
                          ]
                        }
                      ]
                    },
                    {
                      "name": "providerOrganization",
                      "source": [
                        {
                          "context": "entry",
                          "element": "resource",
                          "variable": "organization",
                          "condition": "('Organization' + '/' + $this.id) in %managingOrganization.reference"
                        }
                      ],
                      "target": [
                        {
                          "context": "patientRole",
                          "contextType": "variable",
                          "element": "providerOrganization",
                          "variable": "providerOrganization"
                        }
                      ],
                      "dependent": [
                        {
                          "name": "Organization2CdaOrganization",
                          "variable": [
                            "managingOrganization",
                            "providerOrganization"
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "PractitionerAuthor",
      "typeMode": "none",
      "input": [
        {
          "name": "bundle",
          "type": "Bundle",
          "mode": "source"
        },
        {
          "name": "composition",
          "type": "Composition",
          "mode": "source"
        },
        {
          "name": "src",
          "type": "Practitioner",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "Author",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "srcAuthor",
          "source": [
            {
              "context": "composition",
              "element": "author",
              "variable": "srcauthor"
            }
          ],
          "rule": [
            {
              "name": "extensionTime",
              "source": [
                {
                  "context": "srcauthor",
                  "element": "extension",
                  "variable": "extensionTime",
                  "condition": "$this.url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-time'"
                }
              ],
              "rule": [
                {
                  "name": "DateTime",
                  "source": [
                    {
                      "context": "extensionTime",
                      "element": "valueDateTime",
                      "variable": "valueDateTime"
                    }
                  ],
                  "target": [
                    {
                      "context": "tgt",
                      "contextType": "variable",
                      "element": "time",
                      "variable": "time"
                    }
                  ],
                  "dependent": [
                    {
                      "name": "DateTimeTS",
                      "variable": [
                        "valueDateTime",
                        "time"
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "DateTimeBundle",
          "source": [
            {
              "context": "bundle",
              "element": "timestamp",
              "variable": "valueDateTime",
              "condition": "composition.author.extension.where(url = 'http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-time').empty()"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "time",
              "variable": "time"
            }
          ],
          "dependent": [
            {
              "name": "DateTimeTS",
              "variable": [
                "valueDateTime",
                "time"
              ]
            }
          ]
        },
        {
          "name": "assignedAuthor",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "assignedAuthor",
              "variable": "assignedAuthor"
            }
          ],
          "rule": [
            {
              "name": "id",
              "source": [
                {
                  "context": "src",
                  "element": "identifier",
                  "variable": "identifier"
                }
              ],
              "target": [
                {
                  "context": "assignedAuthor",
                  "contextType": "variable",
                  "element": "id",
                  "variable": "id"
                }
              ],
              "dependent": [
                {
                  "name": "IdentifierII",
                  "variable": [
                    "identifier",
                    "id"
                  ]
                }
              ]
            },
            {
              "name": "telecom",
              "source": [
                {
                  "context": "src",
                  "element": "telecom",
                  "listMode": "first",
                  "variable": "telecom"
                }
              ],
              "target": [
                {
                  "context": "assignedAuthor",
                  "contextType": "variable",
                  "element": "telecom",
                  "variable": "tel"
                }
              ],
              "dependent": [
                {
                  "name": "ContactPointTEL",
                  "variable": [
                    "telecom",
                    "tel"
                  ]
                }
              ]
            },
            {
              "name": "address",
              "source": [
                {
                  "context": "src",
                  "element": "address",
                  "variable": "address"
                }
              ],
              "target": [
                {
                  "context": "assignedAuthor",
                  "contextType": "variable",
                  "element": "addr",
                  "variable": "ad"
                }
              ],
              "dependent": [
                {
                  "name": "AddressAD",
                  "variable": [
                    "address",
                    "ad"
                  ]
                }
              ]
            },
            {
              "name": "name",
              "source": [
                {
                  "context": "src",
                  "element": "name",
                  "variable": "name"
                }
              ],
              "target": [
                {
                  "context": "assignedAuthor",
                  "contextType": "variable",
                  "element": "assignedPerson",
                  "variable": "assignedPerson"
                },
                {
                  "context": "assignedPerson",
                  "contextType": "variable",
                  "element": "name",
                  "variable": "en"
                }
              ],
              "dependent": [
                {
                  "name": "HumanNameEN",
                  "variable": [
                    "name",
                    "en"
                  ]
                }
              ]
            },
            {
              "name": "patient",
              "source": [
                {
                  "context": "bundle",
                  "element": "entry",
                  "variable": "entry"
                }
              ],
              "rule": [
                {
                  "name": "uuid",
                  "source": [
                    {
                      "context": "entry",
                      "element": "fullUrl",
                      "condition": "($this in %composition.author.reference) and $this.startsWith('urn:uuid')"
                    }
                  ],
                  "rule": [
                    {
                      "name": "organization",
                      "source": [
                        {
                          "context": "entry",
                          "type": "Organization",
                          "element": "resource",
                          "variable": "organization"
                        }
                      ],
                      "target": [
                        {
                          "context": "assignedAuthor",
                          "contextType": "variable",
                          "element": "representedOrganization",
                          "variable": "cdaorganization"
                        }
                      ],
                      "dependent": [
                        {
                          "name": "Organization2CdaOrganization",
                          "variable": [
                            "organization",
                            "cdaorganization"
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "organization",
                  "source": [
                    {
                      "context": "entry",
                      "element": "resource",
                      "variable": "organization",
                      "condition": "('Organization' + '/' + $this.id) in %composition.author.reference"
                    }
                  ],
                  "target": [
                    {
                      "context": "assignedAuthor",
                      "contextType": "variable",
                      "element": "representedOrganization",
                      "variable": "cdaorganization"
                    }
                  ],
                  "dependent": [
                    {
                      "name": "Organization2CdaOrganization",
                      "variable": [
                        "organization",
                        "cdaorganization"
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "OrganizationCustodian",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "Organization",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "Custodian",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "assignedCustodian",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "assignedCustodian",
              "variable": "assignedCustodian"
            }
          ],
          "rule": [
            {
              "name": "representedCustodianOrganization",
              "source": [
                {
                  "context": "src"
                }
              ],
              "target": [
                {
                  "context": "assignedCustodian",
                  "contextType": "variable",
                  "element": "representedCustodianOrganization",
                  "variable": "representedCustodianOrganization"
                }
              ],
              "dependent": [
                {
                  "name": "Organization2CdaOrganizationCustodian",
                  "variable": [
                    "src",
                    "representedCustodianOrganization"
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Organization2CdaOrganizationCustodian",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "Organization",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "CdaOrganization",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "id",
          "source": [
            {
              "context": "src",
              "element": "identifier",
              "variable": "identifier"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "id",
              "variable": "id"
            }
          ],
          "dependent": [
            {
              "name": "IdentifierII",
              "variable": [
                "identifier",
                "id"
              ]
            }
          ]
        },
        {
          "name": "name",
          "source": [
            {
              "context": "src",
              "element": "name",
              "variable": "name"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "name",
              "variable": "orgname"
            },
            {
              "context": "orgname",
              "contextType": "variable",
              "element": "other",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "name"
                }
              ]
            }
          ]
        },
        {
          "name": "address",
          "source": [
            {
              "context": "src",
              "element": "address",
              "variable": "address"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "addr",
              "variable": "ad"
            }
          ],
          "dependent": [
            {
              "name": "AddressAD",
              "variable": [
                "address",
                "ad"
              ]
            }
          ]
        },
        {
          "name": "telecom",
          "source": [
            {
              "context": "src",
              "element": "telecom",
              "listMode": "first",
              "variable": "telecom"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "telecom",
              "variable": "tel"
            }
          ],
          "dependent": [
            {
              "name": "ContactPointTEL",
              "variable": [
                "telecom",
                "tel"
              ]
            }
          ],
          "documentation": "target telecom is 0..1"
        }
      ]
    },
    {
      "name": "Organization2CdaOrganization",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "Organization",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "CdaOrganization",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "id",
          "source": [
            {
              "context": "src",
              "element": "identifier",
              "variable": "identifier"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "id",
              "variable": "id"
            }
          ],
          "dependent": [
            {
              "name": "IdentifierII",
              "variable": [
                "identifier",
                "id"
              ]
            }
          ]
        },
        {
          "name": "name",
          "source": [
            {
              "context": "src",
              "element": "name",
              "variable": "name"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "name",
              "variable": "orgname"
            },
            {
              "context": "orgname",
              "contextType": "variable",
              "element": "other",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "name"
                }
              ]
            }
          ]
        },
        {
          "name": "address",
          "source": [
            {
              "context": "src",
              "element": "address",
              "variable": "address"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "addr",
              "variable": "ad"
            }
          ],
          "dependent": [
            {
              "name": "AddressAD",
              "variable": [
                "address",
                "ad"
              ]
            }
          ]
        },
        {
          "name": "telecom",
          "source": [
            {
              "context": "src",
              "element": "telecom",
              "variable": "telecom"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "telecom",
              "variable": "tel"
            }
          ],
          "dependent": [
            {
              "name": "ContactPointTEL",
              "variable": [
                "telecom",
                "tel"
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "PractitionerLegalAuthenticator",
      "typeMode": "none",
      "input": [
        {
          "name": "bundle",
          "type": "Bundle",
          "mode": "source"
        },
        {
          "name": "composition",
          "type": "Composition",
          "mode": "source"
        },
        {
          "name": "src",
          "type": "Practitioner",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "LegalAuthenticator",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "templateId",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "templateId",
              "variable": "templateId"
            },
            {
              "context": "templateId",
              "contextType": "variable",
              "element": "root",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "2.16.756.5.30.1.1.10.2.5"
                }
              ]
            }
          ]
        },
        {
          "name": "time",
          "source": [
            {
              "context": "composition",
              "element": "attester",
              "variable": "attester"
            }
          ],
          "rule": [
            {
              "name": "timestamp",
              "source": [
                {
                  "context": "attester",
                  "element": "time",
                  "variable": "srcTime"
                }
              ],
              "target": [
                {
                  "context": "tgt",
                  "contextType": "variable",
                  "element": "time",
                  "variable": "time"
                }
              ],
              "dependent": [
                {
                  "name": "InstantTS",
                  "variable": [
                    "srcTime",
                    "time"
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "signature",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "signatureCode",
              "variable": "signatureCode"
            },
            {
              "context": "signatureCode",
              "contextType": "variable",
              "element": "code",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "S"
                }
              ]
            }
          ],
          "documentation": "src -> tgt.signatureCode = 'S' \"S\";"
        },
        {
          "name": "assignedEntity",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "assignedEntity",
              "variable": "assignedEntity"
            }
          ],
          "rule": [
            {
              "name": "identifier",
              "source": [
                {
                  "context": "src",
                  "element": "identifier",
                  "variable": "identifier"
                }
              ],
              "target": [
                {
                  "context": "assignedEntity",
                  "contextType": "variable",
                  "element": "id",
                  "variable": "id"
                }
              ],
              "dependent": [
                {
                  "name": "IdentifierII",
                  "variable": [
                    "identifier",
                    "id"
                  ]
                }
              ]
            },
            {
              "name": "name",
              "source": [
                {
                  "context": "src",
                  "element": "name",
                  "variable": "name"
                }
              ],
              "target": [
                {
                  "context": "assignedEntity",
                  "contextType": "variable",
                  "element": "assignedPerson",
                  "variable": "assignedPerson"
                },
                {
                  "context": "assignedPerson",
                  "contextType": "variable",
                  "element": "name",
                  "variable": "en"
                }
              ],
              "dependent": [
                {
                  "name": "HumanNameEN",
                  "variable": [
                    "name",
                    "en"
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}