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

FHIR IG Statistics: StructureMap/ProcedureRequestDO3to2

Packagehl7.fhir.uv.xver
Resource TypeStructureMap
IdProcedureRequestDO3to2
FHIR VersionR5
Sourcehttp://hl7.org/fhir/extensions/https://build.fhir.org/ig/HL7/fhir-cross-version/StructureMap-ProcedureRequestDO3to2.html
URLhttp://hl7.org/fhir/StructureMap/ProcedureRequestDO3to2
Version0.1.0
Statusactive
Date2024-02-22T03:16:50+00:00
NameProcedureRequestDO3to2
TitleDiagnosticOrder Transforms: R3 to R2
Realmuv
Authorityhl7
DescriptionDiagnosticOrderTransformsR3toR2

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

/// url = 'http://hl7.org/fhir/StructureMap/ProcedureRequestDO3to2'
/// name = 'ProcedureRequestDO3to2'
/// title = 'DiagnosticOrder Transforms: R3 to R2'
/// status = 'active'

uses "http://hl7.org/fhir/3.0/ProcedureRequest" alias DiagnosticRequest as source
uses "http://hl7.org/fhir/1.0/DiagnosticOrder" alias DiagnosticOrderR2 as target

imports "http://hl7.org/fhir/StructureMap/*3to2"

// in R3, DiagnosticOrder is folded into ProcedureRequest, and there's no easy
// way to tell them apart. it requires special knowledge to decide to convert
// a procedure request back to a DiagnosticOrder, but they are marked with an
// extension in case this helps
group DiagnosticOrder(source src : ProcedureRequest, target tgt : DiagnosticOrderR2) extends DomainResource <<type+>> {
  src.subject -> tgt.subject "DiagnosticOrder-subject";
  src.requester as v then {
    v.agent -> tgt.orderer "DiagnosticOrder-orderer-inner";
  } "DiagnosticOrder-orderer";
  src.identifier -> tgt.identifier "DiagnosticOrder-identifier";
  src.context -> tgt.encounter "DiagnosticOrder-encounter";
  src.reasonCode -> tgt.reason "DiagnosticOrder-reason";
  src.supportingInfo -> tgt.supportingInformation "DiagnosticOrder-supportingInformation";
  src.status where src.intent = 'proposal' -> tgt.status = 'proposed' "DiagnosticOrder-status1";
  src.status where src.intent = 'plan' -> tgt.status = 'planned' "DiagnosticOrder-status2";
  src.status as v where (src.intent != 'proposal') and (src.intent != 'plan') -> tgt.status = translate(v, 'http://hl7.org/fhir/ConceptMap/ProcedureRequest.status-R3toR2', 'code') "DiagnosticOrder-status3";
  src.priority -> tgt.priority "DiagnosticOrder-priority";
  src where src.authoredOn.exists() or src.requester.exists() -> tgt.event as ev then doEvent(src, ev) "DiagnosticOrder-event";
  src where src.code.exists() -> tgt.item as it then doItem(src, it) "DiagnosticOrder-item";
  src.note -> tgt.note "DiagnosticOrder-note";
}

group doEvent(source src, target tgt) {
  src -> tgt.status = 'requested' "event-status";
  src.authoredOn -> tgt.dateTime "event-dateTime";
}

group doItem(source src, target tgt) {
  src.code -> tgt.code "item-code";
}


Source

{
  "resourceType": "StructureMap",
  "id": "ProcedureRequestDO3to2",
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode": "fhir"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger": 1,
      "_valueInteger": {
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
            "valueCanonical": "http://hl7.org/fhir/extensions/ImplementationGuide/hl7.fhir.uv.xver"
          }
        ]
      }
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
      "valueCode": "draft",
      "_valueCode": {
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
            "valueCanonical": "http://hl7.org/fhir/extensions/ImplementationGuide/hl7.fhir.uv.xver"
          }
        ]
      }
    }
  ],
  "url": "http://hl7.org/fhir/StructureMap/ProcedureRequestDO3to2",
  "version": "0.1.0",
  "name": "ProcedureRequestDO3to2",
  "title": "DiagnosticOrder Transforms: R3 to R2",
  "status": "active",
  "date": "2024-02-22T03:16:50+00:00",
  "publisher": "HL7 International / FHIR Infrastructure",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://www.hl7.org/Special/committees/fiwg"
        }
      ]
    }
  ],
  "description": "DiagnosticOrderTransformsR3toR2",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code": "001"
        }
      ]
    }
  ],
  "structure": [
    {
      "url": "http://hl7.org/fhir/3.0/ProcedureRequest",
      "mode": "source",
      "alias": "DiagnosticRequest"
    },
    {
      "url": "http://hl7.org/fhir/1.0/DiagnosticOrder",
      "mode": "target",
      "alias": "DiagnosticOrderR2"
    }
  ],
  "import": [
    "http://hl7.org/fhir/StructureMap/*3to2"
  ],
  "group": [
    {
      "name": "DiagnosticOrder",
      "extends": "DomainResource",
      "typeMode": "type-and-types",
      "documentation": "in R3, DiagnosticOrder is folded into ProcedureRequest, and there's no easy\r\nway to tell them apart. it requires special knowledge to decide to convert\r\na procedure request back to a DiagnosticOrder, but they are marked with an\r\nextension in case this helps",
      "input": [
        {
          "name": "src",
          "type": "ProcedureRequest",
          "mode": "source"
        },
        {
          "name": "tgt",
          "type": "DiagnosticOrderR2",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "DiagnosticOrder-subject",
          "source": [
            {
              "context": "src",
              "element": "subject",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "subject",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "dependent": [
            {
              "name": "DefaultMappingGroupAnonymousAlias",
              "parameter": [
                {
                  "valueId": "vvv"
                },
                {
                  "valueId": "vvv"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-orderer",
          "source": [
            {
              "context": "src",
              "element": "requester",
              "variable": "v"
            }
          ],
          "rule": [
            {
              "name": "DiagnosticOrder-orderer-inner",
              "source": [
                {
                  "context": "v",
                  "element": "agent",
                  "variable": "vvv"
                }
              ],
              "target": [
                {
                  "context": "tgt",
                  "element": "orderer",
                  "variable": "vvv",
                  "transform": "create"
                }
              ],
              "dependent": [
                {
                  "name": "DefaultMappingGroupAnonymousAlias",
                  "parameter": [
                    {
                      "valueId": "vvv"
                    },
                    {
                      "valueId": "vvv"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-identifier",
          "source": [
            {
              "context": "src",
              "element": "identifier",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "identifier",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "dependent": [
            {
              "name": "DefaultMappingGroupAnonymousAlias",
              "parameter": [
                {
                  "valueId": "vvv"
                },
                {
                  "valueId": "vvv"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-encounter",
          "source": [
            {
              "context": "src",
              "element": "context",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "encounter",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "dependent": [
            {
              "name": "DefaultMappingGroupAnonymousAlias",
              "parameter": [
                {
                  "valueId": "vvv"
                },
                {
                  "valueId": "vvv"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-reason",
          "source": [
            {
              "context": "src",
              "element": "reasonCode",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "reason",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "dependent": [
            {
              "name": "DefaultMappingGroupAnonymousAlias",
              "parameter": [
                {
                  "valueId": "vvv"
                },
                {
                  "valueId": "vvv"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-supportingInformation",
          "source": [
            {
              "context": "src",
              "element": "supportingInfo",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "supportingInformation",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "dependent": [
            {
              "name": "DefaultMappingGroupAnonymousAlias",
              "parameter": [
                {
                  "valueId": "vvv"
                },
                {
                  "valueId": "vvv"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-status1",
          "source": [
            {
              "context": "src",
              "element": "status",
              "condition": "src.intent = 'proposal'"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "status",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "proposed"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-status2",
          "source": [
            {
              "context": "src",
              "element": "status",
              "condition": "src.intent = 'plan'"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "status",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "planned"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-status3",
          "source": [
            {
              "context": "src",
              "element": "status",
              "variable": "v",
              "condition": "(src.intent != 'proposal') and (src.intent != 'plan')"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "status",
              "transform": "translate",
              "parameter": [
                {
                  "valueId": "v"
                },
                {
                  "valueString": "http://hl7.org/fhir/ConceptMap/ProcedureRequest.status-R3toR2"
                },
                {
                  "valueString": "code"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-priority",
          "source": [
            {
              "context": "src",
              "element": "priority",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "priority",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "dependent": [
            {
              "name": "DefaultMappingGroupAnonymousAlias",
              "parameter": [
                {
                  "valueId": "vvv"
                },
                {
                  "valueId": "vvv"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-event",
          "source": [
            {
              "context": "src",
              "condition": "src.authoredOn.exists() or src.requester.exists()"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "event",
              "variable": "ev"
            }
          ],
          "dependent": [
            {
              "name": "doEvent",
              "parameter": [
                {
                  "valueId": "src"
                },
                {
                  "valueId": "ev"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-item",
          "source": [
            {
              "context": "src",
              "condition": "src.code.exists()"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "item",
              "variable": "it"
            }
          ],
          "dependent": [
            {
              "name": "doItem",
              "parameter": [
                {
                  "valueId": "src"
                },
                {
                  "valueId": "it"
                }
              ]
            }
          ]
        },
        {
          "name": "DiagnosticOrder-note",
          "source": [
            {
              "context": "src",
              "element": "note",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "note",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "dependent": [
            {
              "name": "DefaultMappingGroupAnonymousAlias",
              "parameter": [
                {
                  "valueId": "vvv"
                },
                {
                  "valueId": "vvv"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "doEvent",
      "input": [
        {
          "name": "src",
          "mode": "source"
        },
        {
          "name": "tgt",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "event-status",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "status",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "requested"
                }
              ]
            }
          ]
        },
        {
          "name": "event-dateTime",
          "source": [
            {
              "context": "src",
              "element": "authoredOn",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "dateTime",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "dependent": [
            {
              "name": "DefaultMappingGroupAnonymousAlias",
              "parameter": [
                {
                  "valueId": "vvv"
                },
                {
                  "valueId": "vvv"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "doItem",
      "input": [
        {
          "name": "src",
          "mode": "source"
        },
        {
          "name": "tgt",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "item-code",
          "source": [
            {
              "context": "src",
              "element": "code",
              "variable": "vvv"
            }
          ],
          "target": [
            {
              "context": "tgt",
              "element": "code",
              "variable": "vvv",
              "transform": "create"
            }
          ],
          "dependent": [
            {
              "name": "DefaultMappingGroupAnonymousAlias",
              "parameter": [
                {
                  "valueId": "vvv"
                },
                {
                  "valueId": "vvv"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}