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

FHIR IG Statistics: StructureMap/4

Packageuk.nhsdigital.r4.test
Resource TypeStructureMap
Id4
FHIR VersionR4
Sourcehttps://simplifier.net/resolve?scope=uk.nhsdigital.r4.test@2.17.0-prerelease&canonical=http://fhir.nhs.uk/StructureMap/MedicationStatusReason-Extension-3to4
URLhttp://fhir.nhs.uk/StructureMap/MedicationStatusReason-Extension-3to4
Statusdraft
NameR3toR4conversionforCareConnectMedicationStatusReasonextension

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.nhs.uk/StructureMap/MedicationStatusReason-Extension-3to4" = "R3 to R4 conversion for CareConnect MedicationStatusReason extension"


uses "http://hl7.org/fhir/StructureDefinition/MedicationRequest" alias MedicationRequest as source
uses "http://hl7.org/fhir/StructureDefinition/MedicationRequest" alias MedicationRequest as target

group MedicationRequest(source src : MedicationRequest, target tgt : MedicationRequest) {
  src.extension as ext where $this.url = 'https://fhir.nhs.uk/STU3/StructureDefinition/Extension-CareConnect-MedicationStatusReason-1' -> tgt.statusReason as vt then {
    ext.extension as vs where $this.url = 'statusReason' -> tgt.statusReason as vt1 then {
      vs.value : CodeableConcept as vs1 -> tgt.statusReason as vt2 then CodeableConceptStatusReason(vs1, vt2);
    };
  };
}

group CodeableConceptStatusReason(source src : CodeableConcept, target tgt : CodeableConcept) {
  // src.coding -> tgt.coding; the short form is only woking when you have a <<type>>
  src.coding -> tgt.coding;
  src.text as text -> tgt.text = text;
}

group Coding(source src : Coding, target tgt : Coding) <<type+>> {
  src.system as system -> tgt.system = system;
  src.version as version -> tgt.version = version;
  src.code as code -> tgt.code = code;
  src.display as display -> tgt.display = display;
  src.userSelected as userSelected -> tgt.userSelected = userSelected;
}


Source

{
  "resourceType": "StructureMap",
  "id": "4",
  "status": "draft",
  "meta": {
    "versionId": "1",
    "lastUpdated": "2022-01-13T11:23:18.359+00:00"
  },
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "url": "http://fhir.nhs.uk/StructureMap/MedicationStatusReason-Extension-3to4",
  "name": "R3toR4conversionforCareConnectMedicationStatusReasonextension",
  "structure": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/MedicationRequest",
      "mode": "source",
      "alias": "MedicationRequestSTU3"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/MedicationRequest",
      "mode": "target",
      "alias": "MedicationRequestR4"
    }
  ],
  "group": [
    {
      "name": "MedicationRequest",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "MedicationRequestSTU3",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "MedicationRequestR4",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "extension",
          "source": [
            {
              "context": "src",
              "element": "extension",
              "variable": "ext",
              "condition": "$this.url = 'https://fhir.nhs.uk/STU3/StructureDefinition/Extension-CareConnect-MedicationStatusReason-1'"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "statusReason",
              "variable": "vt"
            }
          ],
          "rule": [
            {
              "name": "extension",
              "source": [
                {
                  "context": "ext",
                  "element": "extension",
                  "variable": "vs",
                  "condition": "$this.url = 'statusReason'"
                }
              ],
              "target": [
                {
                  "context": "tgt",
                  "contextType": "variable",
                  "element": "statusReason",
                  "variable": "vt1"
                }
              ],
              "rule": [
                {
                  "name": "valueCodeableConcept",
                  "source": [
                    {
                      "context": "vs",
                      "type": "CodeableConcept",
                      "element": "value",
                      "variable": "vs1"
                    }
                  ],
                  "target": [
                    {
                      "context": "tgt",
                      "contextType": "variable",
                      "element": "statusReason",
                      "variable": "vt2"
                    }
                  ],
                  "dependent": [
                    {
                      "name": "CodeableConceptStatusReason",
                      "variable": [
                        "vs1",
                        "vt2"
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "CodeableConceptStatusReason",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "CodeableConcept",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "CodeableConcept",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "coding",
          "source": [
            {
              "context": "src",
              "element": "coding",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "coding",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "documentation": "src.coding -> tgt.coding; the short form is only woking when you have a <<type>>"
        },
        {
          "name": "text",
          "source": [
            {
              "context": "src",
              "element": "text",
              "variable": "text"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "text",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "text"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Coding",
      "typeMode": "type-and-types",
      "input": [
        {
          "name": "src",
          "type": "Coding",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "Coding",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "system",
          "source": [
            {
              "context": "src",
              "element": "system",
              "variable": "system"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "system",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "system"
                }
              ]
            }
          ]
        },
        {
          "name": "version",
          "source": [
            {
              "context": "src",
              "element": "version",
              "variable": "version"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "version",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "version"
                }
              ]
            }
          ]
        },
        {
          "name": "code",
          "source": [
            {
              "context": "src",
              "element": "code",
              "variable": "code"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "code",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "code"
                }
              ]
            }
          ]
        },
        {
          "name": "display",
          "source": [
            {
              "context": "src",
              "element": "display",
              "variable": "display"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "display",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "display"
                }
              ]
            }
          ]
        },
        {
          "name": "userSelected",
          "source": [
            {
              "context": "src",
              "element": "userSelected",
              "variable": "userSelected"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "userSelected",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "userSelected"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}