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

FHIR IG Statistics: StructureMap/3

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

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/MedicationRepeatInformation-Extension-3to4" = "R3 to R4 conversion for CareConnect MedicationRepeatInformation 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-MedicationRepeatInformation-1' ->  tgt.extension as tgtext,  tgtext.url = 'https://fhir.nhs.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation' then {
    ext.extension as vs where $this.url = 'numberOfRepeatPrescriptionsIssued' ->  tgtext.extension = create('Extension') as vt,  vt.url = 'numberOfRepeatPrescriptionsIssued' then ExtensionUnsignedIntValue(vs, vt);
    ext.extension as vs where $this.url = 'authorisationExpiryDate' ->  tgtext.extension = create('Extension') as vt,  vt.url = 'authorisationExpiryDate' then ExtensionDateTimeValue(vs, vt);
  };
  src.extension as ext where $this.url = 'https://fhir.nhs.uk/STU3/StructureDefinition/Extension-CareConnect-MedicationRepeatInformation-1' -> tgt.extension as tgtext then {
    ext.extension as vs where $this.url = 'numberOfRepeatPrescriptionsAllowed' -> tgt.dispenseRequest as vt then DispenseRequest(vs, vt);
  };
}

group ExtensionUnsignedIntValue(source src, target tgt) {
  src.value as vs ->  tgt.value = create('unsignedInt') as vt,  vt.value = vs;
}

group ExtensionDateTimeValue(source src, target tgt) {
  src.value as vs ->  tgt.value = create('dateTime') as vt,  vt.value = vs;
}

group DispenseRequest(source src, target tgt) {
  src.value as vs ->  tgt.numberOfRepeatsAllowed = create('unsignedInt') as vt,  vt.value = vs;
}


Source

{
  "resourceType": "StructureMap",
  "id": "3",
  "status": "draft",
  "meta": {
    "versionId": "1",
    "lastUpdated": "2022-01-13T11:14:54.242+00:00"
  },
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "url": "http://fhir.nhs.uk/StructureMap/MedicationRepeatInformation-Extension-3to4",
  "name": "R3toR4conversionforCareConnectMedicationRepeatInformationextension",
  "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-MedicationRepeatInformation-1'"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "extension",
              "variable": "tgtext"
            },
            {
              "context": "tgtext",
              "contextType": "variable",
              "element": "url",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "https://fhir.nhs.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation"
                }
              ]
            }
          ],
          "rule": [
            {
              "name": "extension",
              "source": [
                {
                  "context": "ext",
                  "element": "extension",
                  "variable": "vs",
                  "condition": "$this.url = 'numberOfRepeatPrescriptionsIssued'"
                }
              ],
              "target": [
                {
                  "context": "tgtext",
                  "contextType": "variable",
                  "element": "extension",
                  "variable": "vt",
                  "transform": "create",
                  "parameter": [
                    {
                      "valueString": "Extension"
                    }
                  ]
                },
                {
                  "context": "vt",
                  "contextType": "variable",
                  "element": "url",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "numberOfRepeatPrescriptionsIssued"
                    }
                  ]
                }
              ],
              "dependent": [
                {
                  "name": "ExtensionUnsignedIntValue",
                  "variable": [
                    "vs",
                    "vt"
                  ]
                }
              ]
            },
            {
              "name": "extension",
              "source": [
                {
                  "context": "ext",
                  "element": "extension",
                  "variable": "vs",
                  "condition": "$this.url = 'authorisationExpiryDate'"
                }
              ],
              "target": [
                {
                  "context": "tgtext",
                  "contextType": "variable",
                  "element": "extension",
                  "variable": "vt",
                  "transform": "create",
                  "parameter": [
                    {
                      "valueString": "Extension"
                    }
                  ]
                },
                {
                  "context": "vt",
                  "contextType": "variable",
                  "element": "url",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "authorisationExpiryDate"
                    }
                  ]
                }
              ],
              "dependent": [
                {
                  "name": "ExtensionDateTimeValue",
                  "variable": [
                    "vs",
                    "vt"
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "extension",
          "source": [
            {
              "context": "src",
              "element": "extension",
              "variable": "ext",
              "condition": "$this.url = 'https://fhir.nhs.uk/STU3/StructureDefinition/Extension-CareConnect-MedicationRepeatInformation-1'"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "extension",
              "variable": "tgtext"
            }
          ],
          "rule": [
            {
              "name": "extension",
              "source": [
                {
                  "context": "ext",
                  "element": "extension",
                  "variable": "vs",
                  "condition": "$this.url = 'numberOfRepeatPrescriptionsAllowed'"
                }
              ],
              "target": [
                {
                  "context": "tgt",
                  "contextType": "variable",
                  "element": "dispenseRequest",
                  "variable": "vt"
                }
              ],
              "dependent": [
                {
                  "name": "DispenseRequest",
                  "variable": [
                    "vs",
                    "vt"
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "ExtensionUnsignedIntValue",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "Extension",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "Extension",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "value",
          "source": [
            {
              "context": "src",
              "element": "value",
              "variable": "vs"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "value",
              "variable": "vt",
              "transform": "create",
              "parameter": [
                {
                  "valueString": "unsignedInt"
                }
              ]
            },
            {
              "context": "vt",
              "contextType": "variable",
              "element": "value",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "vs"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "ExtensionDateTimeValue",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "Extension",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "Extension",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "value",
          "source": [
            {
              "context": "src",
              "element": "value",
              "variable": "vs"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "value",
              "variable": "vt",
              "transform": "create",
              "parameter": [
                {
                  "valueString": "dateTime"
                }
              ]
            },
            {
              "context": "vt",
              "contextType": "variable",
              "element": "value",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "vs"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "DispenseRequest",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "Extension",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "BackboneElement",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "value",
          "source": [
            {
              "context": "src",
              "element": "value",
              "variable": "vs"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "contextType": "variable",
              "element": "numberOfRepeatsAllowed",
              "variable": "vt",
              "transform": "create",
              "parameter": [
                {
                  "valueString": "unsignedInt"
                }
              ]
            },
            {
              "context": "vt",
              "contextType": "variable",
              "element": "value",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "vs"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}