PackagesCanonicalsLogsProblems
    Packages
    ch.fhir.ig.cda-fhir-maps@0.3.0
    http://fhir.ch/ig/cda-fhir-maps/StructureMap/CdaToFhirTypes
{
  "description": "Adapted from https://github.com/HL7/ccda-to-fhir/tree/master/mappings CDA:  http://build.fhir.org/ig/ahdis/cda-core-2.0/branches/master/index.html FHIR: http://hl7.org/fhir/r4/",
  "_filename": "StructureMap-CdaToFhirTypes.json",
  "package_name": "ch.fhir.ig.cda-fhir-maps",
  "date": "2022-02-11T11:14:39+01:00",
  "group": [ {
    "name": "Any",
    "input": [ {
      "mode": "source",
      "name": "src"
    }, {
      "mode": "target",
      "name": "tgt"
    } ],
    "typeMode": "none"
  }, {
    "name": "II",
    "rule": [ {
      "name": "root1",
      "source": [ {
        "context": "src",
        "element": "root",
        "variable": "r",
        "condition": "src.extension.exists()"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "system",
        "parameter": [ {
          "valueId": "r"
        }, {
          "valueString": "http://hl7.org/fhir/ConceptMap/special-oid2uri"
        }, {
          "valueString": "uri"
        } ],
        "transform": "translate",
        "contextType": "variable"
      } ]
    }, {
      "name": "rootuuid",
      "source": [ {
        "context": "src",
        "element": "root",
        "variable": "r",
        "condition": "src.extension.empty() and src.root.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}')"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "system",
        "parameter": [ {
          "valueString": "urn:ietf:rfc:3986"
        } ],
        "transform": "copy",
        "contextType": "variable"
      }, {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueString": "'urn:uuid:' + r.lower()"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "rootoid",
      "source": [ {
        "context": "src",
        "element": "root",
        "variable": "r",
        "condition": "src.extension.empty() and src.root.contains('.')"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "system",
        "parameter": [ {
          "valueString": "urn:ietf:rfc:3986"
        } ],
        "transform": "copy",
        "contextType": "variable"
      }, {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueString": "urn:oid:"
        }, {
          "valueId": "r"
        } ],
        "transform": "append",
        "contextType": "variable"
      } ]
    }, {
      "name": "extension",
      "source": [ {
        "context": "src",
        "element": "extension",
        "variable": "e"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueId": "e"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "assigningAuthorityName",
      "source": [ {
        "context": "src",
        "element": "assigningAuthorityName",
        "variable": "s"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "assigner",
        "variable": "a",
        "contextType": "variable"
      }, {
        "context": "a",
        "element": "display",
        "parameter": [ {
          "valueId": "s"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "extension",
      "rule": [ {
        "name": "url",
        "source": [ {
          "context": "displayable"
        } ],
        "target": [ {
          "context": "ext",
          "element": "url",
          "parameter": [ {
            "valueString": "http://hl7.org/fhir/cdaStructureDefinition/extension-displayable"
          } ],
          "transform": "copy",
          "contextType": "variable"
        } ]
      }, {
        "name": "value",
        "source": [ {
          "context": "displayable",
          "element": "value",
          "variable": "v"
        } ],
        "target": [ {
          "context": "ext",
          "element": "value",
          "parameter": [ {
            "valueId": "v"
          }, {
            "valueString": "string"
          } ],
          "transform": "cast",
          "contextType": "variable"
        } ]
      } ],
      "source": [ {
        "context": "src",
        "element": "displayable",
        "variable": "displayable"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "extension",
        "variable": "ext",
        "contextType": "variable"
      } ],
      "documentation": "there's no equivalent for displayable in FHIR - and it probably will never matter, but if it does, it might map to Identifier.use."
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "II"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "Identifier"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "INT",
    "rule": [ {
      "name": "integer",
      "source": [ {
        "context": "src",
        "element": "value",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueId": "v"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "INT"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "integer"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "TemplateID",
    "rule": [ {
      "name": "templateId",
      "rule": [ {
        "name": "url",
        "source": [ {
          "context": "template"
        } ],
        "target": [ {
          "context": "ext",
          "element": "url",
          "parameter": [ {
            "valueString": "http://hl7.org/fhir/cda/StructureDefinition/templateID"
          } ],
          "transform": "copy",
          "contextType": "variable"
        } ]
      }, {
        "name": "value",
        "source": [ {
          "context": "template"
        } ],
        "target": [ {
          "context": "ext",
          "element": "value",
          "variable": "value",
          "parameter": [ {
            "valueString": "Identifier"
          } ],
          "transform": "create",
          "contextType": "variable"
        } ],
        "dependent": [ {
          "name": "II",
          "variable": [ "template", "value" ]
        } ]
      } ],
      "source": [ {
        "context": "template"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "extension",
        "variable": "ext",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "template",
      "type": "II"
    }, {
      "mode": "target",
      "name": "tgt"
    } ],
    "typeMode": "none"
  }, {
    "name": "Negation",
    "rule": [ {
      "name": "negation",
      "rule": [ {
        "name": "url",
        "source": [ {
          "context": "negation"
        } ],
        "target": [ {
          "context": "ext",
          "element": "url",
          "parameter": [ {
            "valueString": "http://hl7.org/fhir/cda/StructureDefinition/negationIndicator"
          } ],
          "transform": "copy",
          "contextType": "variable"
        } ]
      }, {
        "name": "value",
        "source": [ {
          "context": "negation",
          "variable": "neg"
        } ],
        "target": [ {
          "context": "ext",
          "element": "value",
          "parameter": [ {
            "valueString": "boolean"
          } ],
          "transform": "create",
          "contextType": "variable"
        }, {
          "context": "ext",
          "element": "value",
          "parameter": [ {
            "valueId": "neg"
          } ],
          "transform": "copy",
          "contextType": "variable"
        } ]
      } ],
      "source": [ {
        "context": "negation"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "modifierExtension",
        "variable": "ext",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "negation",
      "type": "BL"
    }, {
      "mode": "target",
      "name": "tgt"
    } ],
    "typeMode": "none"
  }, {
    "name": "TSInstant",
    "rule": [ {
      "name": "value",
      "source": [ {
        "context": "src",
        "element": "value",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueId": "v"
        }, {
          "valueString": "string"
        } ],
        "transform": "cast",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "TS"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "instant"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "TSDateTime",
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "TS"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "dateTime"
    } ],
    "extends": "TSInstant",
    "typeMode": "types"
  }, {
    "name": "TSDate",
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "TS"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "date"
    } ],
    "extends": "TSInstant",
    "typeMode": "types"
  }, {
    "name": "IVLTSPeriod",
    "rule": [ {
      "name": "low",
      "source": [ {
        "context": "src",
        "element": "low",
        "variable": "vvv"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "start",
        "variable": "vvv",
        "transform": "create",
        "contextType": "variable"
      } ]
    }, {
      "name": "high",
      "source": [ {
        "context": "src",
        "element": "high",
        "variable": "vvv"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "end",
        "variable": "vvv",
        "transform": "create",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "IVL_TS"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "Period"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "IVLTSDateTime",
    "rule": [ {
      "name": "low",
      "source": [ {
        "context": "src",
        "element": "low",
        "variable": "s"
      } ],
      "dependent": [ {
        "name": "TSDateTime",
        "variable": [ "s", "tgt" ]
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "IVL_TS"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "dateTime"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "STstring",
    "rule": [ {
      "name": "value",
      "source": [ {
        "context": "src",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueId": "v"
        }, {
          "valueString": "string"
        } ],
        "transform": "cast",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "ST"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "string"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "EDstring",
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "ED"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "string"
    } ],
    "extends": "STstring",
    "typeMode": "types"
  }, {
    "name": "ONstring",
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "ON"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "string"
    } ],
    "extends": "STstring",
    "typeMode": "types"
  }, {
    "name": "CSCode",
    "rule": [ {
      "name": "code",
      "source": [ {
        "context": "src",
        "element": "code",
        "variable": "c"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueId": "c"
        }, {
          "valueString": "string"
        } ],
        "transform": "cast",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "CS"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "code"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "CECode",
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "CE"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "code"
    } ],
    "extends": "CSCode",
    "typeMode": "types"
  }, {
    "name": "CDCode",
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "CD"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "code"
    } ],
    "extends": "CSCode",
    "typeMode": "types"
  }, {
    "name": "CECodeableConcept",
    "rule": [ {
      "name": "originalText",
      "source": [ {
        "context": "src",
        "element": "originalText",
        "variable": "vvv"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "text",
        "variable": "vvv",
        "transform": "create",
        "contextType": "variable"
      } ]
    }, {
      "name": "code",
      "rule": [ {
        "name": "code",
        "source": [ {
          "context": "src",
          "element": "code",
          "variable": "code"
        } ],
        "target": [ {
          "context": "coding",
          "element": "code",
          "parameter": [ {
            "valueId": "code"
          }, {
            "valueString": "string"
          } ],
          "transform": "cast",
          "contextType": "variable"
        } ]
      }, {
        "name": "codeSystem",
        "source": [ {
          "context": "src",
          "element": "codeSystem",
          "variable": "system"
        } ],
        "target": [ {
          "context": "coding",
          "element": "system",
          "parameter": [ {
            "valueId": "system"
          }, {
            "valueString": "http://hl7.org/fhir/ConceptMap/special-oid2uri"
          }, {
            "valueString": "uri"
          } ],
          "transform": "translate",
          "contextType": "variable"
        } ]
      }, {
        "name": "displayName",
        "source": [ {
          "context": "src",
          "element": "displayName",
          "variable": "display"
        } ],
        "target": [ {
          "context": "coding",
          "element": "display",
          "parameter": [ {
            "valueId": "display"
          }, {
            "valueString": "string"
          } ],
          "transform": "cast",
          "contextType": "variable"
        } ]
      } ],
      "source": [ {
        "context": "src"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "coding",
        "variable": "coding",
        "contextType": "variable"
      } ]
    }, {
      "name": "translation",
      "rule": [ {
        "name": "code",
        "source": [ {
          "context": "translation",
          "element": "code",
          "variable": "code"
        } ],
        "target": [ {
          "context": "coding",
          "element": "code",
          "parameter": [ {
            "valueId": "code"
          }, {
            "valueString": "string"
          } ],
          "transform": "cast",
          "contextType": "variable"
        } ]
      }, {
        "name": "codeSystem",
        "source": [ {
          "context": "translation",
          "element": "codeSystem",
          "variable": "system"
        } ],
        "target": [ {
          "context": "coding",
          "element": "system",
          "parameter": [ {
            "valueId": "system"
          }, {
            "valueString": "http://hl7.org/fhir/ConceptMap/special-oid2uri"
          }, {
            "valueString": "uri"
          } ],
          "transform": "translate",
          "contextType": "variable"
        } ]
      }, {
        "name": "displayName",
        "source": [ {
          "context": "translation",
          "element": "displayName",
          "variable": "display"
        } ],
        "target": [ {
          "context": "coding",
          "element": "display",
          "parameter": [ {
            "valueId": "display"
          }, {
            "valueString": "string"
          } ],
          "transform": "cast",
          "contextType": "variable"
        } ]
      } ],
      "source": [ {
        "context": "src",
        "element": "translation",
        "variable": "translation"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "coding",
        "variable": "coding",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "CE"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "CodeableConcept"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "CSCodeableConcept",
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "CS"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "CodeableConcept"
    } ],
    "extends": "CECodeableConcept",
    "typeMode": "types"
  }, {
    "name": "CDCodeableConcept",
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "CD"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "CodeableConcept"
    } ],
    "extends": "CECodeableConcept",
    "typeMode": "types"
  }, {
    "name": "ENHumanName",
    "rule": [ {
      "name": "family",
      "source": [ {
        "context": "src",
        "element": "family",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "family",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "given",
      "source": [ {
        "context": "src",
        "element": "given",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "given",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "prefix",
      "source": [ {
        "context": "src",
        "element": "prefix",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "prefix",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "suffix",
      "source": [ {
        "context": "src",
        "element": "suffix",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "suffix",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "validTime",
      "source": [ {
        "context": "src",
        "element": "validTime",
        "variable": "vvv"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "period",
        "variable": "vvv",
        "transform": "create",
        "contextType": "variable"
      } ],
      "documentation": "src.use as c -> tgt.use = translate(c, 'http://hl7.org/fhir/ConceptMap/cm-name-use-v3', 'code');"
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "EN"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "HumanName"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "ADAddress",
    "rule": [ {
      "name": "country",
      "source": [ {
        "context": "src",
        "element": "country",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "country",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "state",
      "source": [ {
        "context": "src",
        "element": "state",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "state",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "county",
      "source": [ {
        "context": "src",
        "element": "county",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "district",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "city",
      "source": [ {
        "context": "src",
        "element": "city",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "city",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "postalCode",
      "source": [ {
        "context": "src",
        "element": "postalCode",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "postalCode",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "streetAddress",
      "source": [ {
        "context": "src",
        "element": "streetAddressLine",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "line",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "streetName",
      "source": [ {
        "context": "src",
        "element": "streetName",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "line",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "houseNumber",
      "source": [ {
        "context": "src",
        "element": "houseNumber",
        "variable": "v"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "line",
        "parameter": [ {
          "valueString": "v.dataString"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      } ]
    }, {
      "name": "addressUse",
      "source": [ {
        "context": "src",
        "element": "use",
        "variable": "c"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "use",
        "parameter": [ {
          "valueId": "c"
        }, {
          "valueString": "#addressUse"
        }, {
          "valueString": "code"
        } ],
        "transform": "translate",
        "contextType": "variable"
      } ]
    }, {
      "name": "useablePeriod",
      "source": [ {
        "context": "src",
        "element": "useablePeriod",
        "variable": "vvv"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "period",
        "variable": "vvv",
        "transform": "create",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "AD"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "Address"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "TELContactPoint",
    "rule": [ {
      "name": "valuetel",
      "source": [ {
        "context": "src",
        "element": "value",
        "variable": "v",
        "condition": "(src.value.startsWith('tel:'))"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueString": "v.substring(4)"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      }, {
        "context": "tgt",
        "element": "system",
        "parameter": [ {
          "valueString": "phone"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "valuefax",
      "source": [ {
        "context": "src",
        "element": "value",
        "variable": "v",
        "condition": "(src.value.startsWith('fax:'))"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueString": "v.substring(4)"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      }, {
        "context": "tgt",
        "element": "system",
        "parameter": [ {
          "valueString": "fax"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "valuemail",
      "source": [ {
        "context": "src",
        "element": "value",
        "variable": "v",
        "condition": "(src.value.startsWith('mailto:'))"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueString": "v.substring(7)"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      }, {
        "context": "tgt",
        "element": "system",
        "parameter": [ {
          "valueString": "email"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "valuehttp",
      "source": [ {
        "context": "src",
        "element": "value",
        "variable": "v",
        "condition": "(src.value.startsWith('http:'))"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueString": "v.substring(5)"
        } ],
        "transform": "evaluate",
        "contextType": "variable"
      }, {
        "context": "tgt",
        "element": "system",
        "parameter": [ {
          "valueString": "url"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "usehome",
      "source": [ {
        "context": "src",
        "element": "use",
        "condition": "(src.use.startsWith('H'))"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "use",
        "parameter": [ {
          "valueString": "home"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "usework",
      "source": [ {
        "context": "src",
        "element": "use",
        "condition": "((src.use = 'WP') or (src.use = 'DIR') or (src.use = 'PUB'))"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "use",
        "parameter": [ {
          "valueString": "work"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "usebad",
      "source": [ {
        "context": "src",
        "element": "use",
        "condition": "(src.use = 'BAD')"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "use",
        "parameter": [ {
          "valueString": "old"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "usetmp",
      "source": [ {
        "context": "src",
        "element": "use",
        "condition": "(src.use = 'TMP')"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "use",
        "parameter": [ {
          "valueString": "temp"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "usemobile",
      "source": [ {
        "context": "src",
        "element": "use",
        "condition": "(src.use = 'MC')"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "use",
        "parameter": [ {
          "valueString": "mobile"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    }, {
      "name": "useablePeriod",
      "source": [ {
        "context": "src",
        "element": "useablePeriod",
        "variable": "vvv"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "period",
        "variable": "vvv",
        "transform": "create",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "TEL"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "ContactPoint"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "PQQuantity",
    "rule": [ {
      "name": "unit",
      "source": [ {
        "context": "src",
        "element": "unit",
        "variable": "unit"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "unit",
        "parameter": [ {
          "valueId": "unit"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ],
      "documentation": "src.unit as unit -> tgt.code = unit;"
    }, {
      "name": "value",
      "source": [ {
        "context": "src",
        "element": "value",
        "variable": "value"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "value",
        "parameter": [ {
          "valueId": "value"
        } ],
        "transform": "copy",
        "contextType": "variable"
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "PQ"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "Quantity"
    } ],
    "extends": "Any",
    "typeMode": "types"
  }, {
    "name": "RTOPQPQRatio",
    "rule": [ {
      "name": "numerator",
      "source": [ {
        "context": "src",
        "element": "numerator",
        "variable": "numerator"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "numerator",
        "variable": "targetNumerator",
        "contextType": "variable"
      } ],
      "dependent": [ {
        "name": "PQQuantity",
        "variable": [ "numerator", "targetNumerator" ]
      } ]
    }, {
      "name": "denominator",
      "source": [ {
        "context": "src",
        "element": "denominator",
        "variable": "denominator"
      } ],
      "target": [ {
        "context": "tgt",
        "element": "denominator",
        "variable": "targetDenominator",
        "contextType": "variable"
      } ],
      "dependent": [ {
        "name": "PQQuantity",
        "variable": [ "denominator", "targetDenominator" ]
      } ]
    } ],
    "input": [ {
      "mode": "source",
      "name": "src",
      "type": "RTO_PQ_PQ"
    }, {
      "mode": "target",
      "name": "tgt",
      "type": "Ratio"
    } ],
    "extends": "Any",
    "typeMode": "types"
  } ],
  "publisher": "ahdis",
  "name": "CdaToFhirTypes",
  "copyright": "CC-BY-SA-4.0",
  "type": null,
  "experimental": null,
  "resourceType": "StructureMap",
  "title": null,
  "package_version": "0.3.0",
  "extension": [ {
    "url": "http://fhir.ch/reference",
    "valueReference": {
      "reference": "#addressUse"
    }
  } ],
  "contained": [ {
    "id": "addressUse",
    "group": [ {
      "source": "http://terminology.hl7.org/ValueSet/v3-AddressUse",
      "target": "http://hl7.org/fhir/valueset-address-use.html",
      "element": [ {
        "code": "H",
        "target": [ {
          "code": "home",
          "comment": "home address -> home",
          "equivalence": "equivalent"
        } ]
      }, {
        "code": "HP",
        "target": [ {
          "code": "home",
          "comment": "primary home -> home, http://hl7.org/fhir/v3/AddressUse/cs.html",
          "equivalence": "equivalent"
        } ]
      }, {
        "code": "HV",
        "target": [ {
          "code": "home",
          "comment": "vacation home  -> home, http://hl7.org/fhir/v3/AddressUse/cs.html",
          "equivalence": "equivalent"
        } ]
      }, {
        "code": "WP",
        "target": [ {
          "code": "work",
          "comment": "work place -> work",
          "equivalence": "equivalent"
        } ]
      }, {
        "code": "DIR",
        "target": [ {
          "code": "work",
          "comment": "direct -> work, http://hl7.org/fhir/v3/AddressUse/cs.html",
          "equivalence": "equivalent"
        } ]
      }, {
        "code": "PUB",
        "target": [ {
          "code": "work",
          "comment": "public -> work, http://hl7.org/fhir/v3/AddressUse/cs.html",
          "equivalence": "equivalent"
        } ]
      }, {
        "code": "TMP",
        "target": [ {
          "code": "temp",
          "comment": "temporary address -> Temporary",
          "equivalence": "equivalent"
        } ]
      }, {
        "code": "OLD",
        "target": [ {
          "code": "old",
          "comment": "no longer in use -> Old / Incorrect",
          "equivalence": "equivalent"
        } ]
      }, {
        "code": "BAD",
        "target": [ {
          "code": "old",
          "comment": "bad address -> Old / Incorrect",
          "equivalence": "equivalent"
        } ]
      } ]
    } ],
    "status": "draft",
    "resourceType": "ConceptMap"
  } ],
  "structure": [ {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/ED",
    "mode": "source",
    "alias": "ED"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/II",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/Identifier",
    "mode": "target"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/TS",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/instant",
    "mode": "target"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/CS",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/code",
    "mode": "target"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/CE",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/CodeableConcept",
    "mode": "target"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/ST",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/string",
    "mode": "target"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/EN",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/HumanName",
    "mode": "target"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/AD",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/Address",
    "mode": "target"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/TEL",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/ContactPoint",
    "mode": "target"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/BL",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/boolean",
    "mode": "target"
  }, {
    "url": "http://hl7.org/fhir/cda/StructureDefinition/IVL_TS",
    "mode": "source"
  }, {
    "url": "http://hl7.org/fhir/StructureDefinition/Period",
    "mode": "target"
  } ],
  "status": "draft",
  "id": "7ab4c5a7-d1a6-4bfc-9867-cef3865745e7",
  "kind": null,
  "url": "http://fhir.ch/ig/cda-fhir-maps/StructureMap/CdaToFhirTypes",
  "version": "0.3.0",
  "contact": [ {
    "name": "ahdis",
    "telecom": [ {
      "value": "http://www.ahdis.ch/",
      "system": "url"
    } ]
  } ]
}