FHIR © HL7.org  |  FHIRsmith 4.0.1  |  Server Home  |  XIG Home  |  XIG Stats  | 

FHIR IG analytics

Packagesilfhirprofileig
Resource TypeStructureMap
IdStructureMap-ExtractDischargeClearanceFinancialClearance.json
FHIR VersionR5
Sourcehttps://build.fhir.org/ig/savannahghi/sil_fhir_profile_ig/StructureMap-ExtractDischargeClearanceFinancialClearance.html
URLhttps://fhir.slade360.co.ke/fhir/StructureMap/ExtractDischargeClearanceFinancialClearance
Version0.1.0
Statusactive
Date2026-09-11T12:18:36+00:00
NameExtractDischargeClearanceFinancialClearance
TitleDischarge Clearance: Financial Clearance Extraction
DescriptionTurns the cashier's record that the account was dealt with into one survey Observation, with the clerk's note against it. A Task is the FHIR-correct home for work that has to be done, and this clearance is born completed -- a Task created in the `completed` state carries no workflow, and SGHITask would force an owner, a requester and a requestedPerformer that all resolve to the facility asking itself to settle the account. So this follows the other two clearances and stays an Observation, which keeps one extraction pattern across the three forms. It carries no balance: the figure belongs to billing, and one restated here would be signed against as though this were the authority for it. If billing later wants a workable item, a Task rule can be added to this map without changing anything the frontend sends.

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

Generated Narrative: StructureMap ExtractDischargeClearanceFinancialClearance

/// url = 'https://fhir.slade360.co.ke/fhir/StructureMap/ExtractDischargeClearanceFinancialClearance'
/// name = 'ExtractDischargeClearanceFinancialClearance'
/// title = 'Discharge Clearance: Financial Clearance Extraction'
/// status = 'active'
/// description = 'Turns the cashier\'s record that the account was dealt with into one survey Observation, with the clerk\'s note against it. A Task is the FHIR-correct home for work that has to be done, and this clearance is born completed -- a Task created in the `completed` state carries no workflow, and SGHITask would force an owner, a requester and a requestedPerformer that all resolve to the facility asking itself to settle the account. So this follows the other two clearances and stays an Observation, which keeps one extraction pattern across the three forms. It carries no balance: the figure belongs to billing, and one restated here would be signed against as though this were the authority for it. If billing later wants a workable item, a Task rule can be added to this map without changing anything the frontend sends.'

uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QR as source
uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target
uses "http://hl7.org/fhir/StructureDefinition/Observation" alias Observation as target

group ExtractDischargeClearanceFinancialClearance(source qr : QR, target bundle : Bundle) {
  qr -> bundle.type = 'transaction' "setBundleType";
  // linkId 398664818229 — "How the account was settled"
  qr.item as it where ((linkId = '398664818229') and answer.value.exists()) then {
    it.answer first as a then {
      a ->  bundle.entry as entry,  entry.resource = create('Observation') as obs then {
        qr ->  obs,  entry then BuildClearanceObs(qr, obs, entry) "settlementBase";
        qr -> obs.code as settlementCodeCc then {
          qr -> settlementCodeCc.coding as settlementCodeCoding then {
            qr -> settlementCodeCoding.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/inpatient-clinical-concept-codesystem' "settlementCodeSystem";
            qr -> settlementCodeCoding.code = 'account-settlement-at-discharge' "settlementCodeCode";
            qr -> settlementCodeCoding.display = 'How the account was settled at discharge' "settlementCodeDisplay";
          } "settlementCodeCodingRule";
        } "settlementCode";
        a -> obs then SetCodedValue(a, obs) "settlementValue";
        // linkId 818765459000 — "Note"
        qr.item as itNote where ((linkId = '818765459000') and answer.value.exists()) then {
          itNote.answer first as aNote then {
            aNote.value as nv -> obs.note as note then {
              nv -> note.text = nv "financeNoteText";
              qr.authored as t -> note.time = t "financeNoteTime";
            } "financeNote";
          } "financeNoteAnswer";
        } "financeNoteRule";
      } "settlementObs";
    } "settlementAnswer";
  } "settlementRule";
}

// ─────────────────────────────────────────────────────────────────────────────
// Shared scaffolding. Repeated in each clearance map rather than imported: the
// transform engine resolves `imports` against whatever StructureMaps happen to
// be on the server, and a clearance that stops extracting because a shared map
// was not uploaded is a worse failure than a duplicated group.
// Source parameters are left untyped on purpose. Writing `: Element` makes the
// publisher's StructureMap validator compare QuestionnaireResponse.item against
// the literal 'Element' and report them as incompatible, which is noise.
// ─────────────────────────────────────────────────────────────────────────────
group BuildClearanceObs(source qr : QR, target obs : Observation, target entry) {
  qr -> obs.id = uuid() then SetObservationFullUrl(obs, entry) "idAndFullUrl";
  qr -> entry.request as request then {
    qr -> request.method = 'POST' "requestMethod";
    qr -> request.url = 'Observation' "requestUrl";
  } "entryRequest";
  qr -> obs.status = 'final' "status";
  qr -> obs.category as categoryCc then {
    qr -> categoryCc.coding as categoryCoding then {
      qr -> categoryCoding.system = 'http://terminology.hl7.org/CodeSystem/observation-category' "categorySystem";
      qr -> categoryCoding.code = 'survey' "categoryCode";
      qr -> categoryCoding.display = 'Survey' "categoryDisplay";
    } "categoryCodingRule";
  } "category";
  qr.subject as s -> obs.subject = s;
  qr.encounter as e -> obs.encounter = e;
  // `effective`, not `effectiveInstant`: the R5 transform engine writes choice
  // elements by their base name and rejects the typed form.
  // Advantage stamps `authored` when the clearances are submitted, not when each
  // was signed, so a clearance signed at two in the morning and submitted at the
  // handover carries the handover time. Sending the signature time on the
  // response would fix it at the source; there is nothing on the response for a
  // map to read it from.
  qr.authored as t -> obs.effective = t "effective";
  qr.authored as t -> obs.issued = cast(t, 'instant') "issued";
  // The facility, not the person who signed: SGHIObservation admits only an
  // Organization or a Patient as performer, and the form's signature is a typed
  // name that resolves to neither. On this form the signer is routinely a
  // cashier, who has no practitioner record to reference in any case.
  qr.source as src -> obs.performer = create('Reference') as perf then {
    src.reference as ref -> perf.reference = ref "performerRef";
    src.display as disp -> perf.display = disp "performerDisplay";
  } "performer";
  // One identifier per resource. Copying the response's own would give every
  // Observation from a single form the same business identity.
  qr -> obs.identifier as ident then {
    qr -> ident.use = 'official' "identifierUse";
    qr -> ident.type as identifierTypeCc then {
      qr -> identifierTypeCc.coding as identifierTypeCoding then {
        qr -> identifierTypeCoding.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/default-identifier-codesystem' "identifierTypeSystem";
        qr -> identifierTypeCoding.code = 'default-id' "identifierTypeCode";
        qr -> identifierTypeCoding.display = 'Default Resource Identifier' "identifierTypeDisplay";
      } "identifierTypeCodingRule";
    } "identifierType";
    qr -> ident.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/default-identifier-codesystem' "identifierSystem";
    qr -> ident.value = uuid() "identifierValue";
    qr.source as src -> ident.assigner = src "identifierAssigner";
  } "identifier";
  // No append: under this engine `qr.id` already resolves to the type-qualified
  // relative reference, so prefixing it again produces a reference to nothing.
  qr -> obs.derivedFrom = create('Reference') as ref then {
    qr.id as qid -> ref.reference = qid "derivedFromRef";
  } "linkQuestionnaireResponse";
}

group SetCodedValue(source a, target obs : Observation) {
  a.value as cv -> obs.value = create('CodeableConcept') as concept then {
    cv -> concept.coding = cv "valueCoding";
    cv.display as d -> concept.text = d "valueText";
  } "codedValue";
}

group SetObservationFullUrl(source obs : Observation, target entry) {
  obs.id as id -> entry.fullUrl = append('https://fhir.slade360.co.ke/fhir/Observation/', id) "assignFullUrl";
}


Source1

{
  "resourceType": "StructureMap",
  "id": "ExtractDischargeClearanceFinancialClearance",
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "url": "https://fhir.slade360.co.ke/fhir/StructureMap/ExtractDischargeClearanceFinancialClearance",
  "version": "0.1.0",
  "name": "ExtractDischargeClearanceFinancialClearance",
  "title": "Discharge Clearance: Financial Clearance Extraction",
  "status": "active",
  "date": "2026-09-11T12:18:36+00:00",
  "publisher": "Kathurima Kimathi",
  "contact": [
    {
      "name": "Kathurima Kimathi",
      "telecom": [
        {
          "system": "url",
          "value": "https://www.linkedin.com/in/kathurima-kimathi/"
        },
        {
          "system": "email",
          "value": "kathurimakimathi415@gmail.com"
        }
      ]
    },
    {
      "name": "Oscar John",
      "telecom": [
        {
          "system": "email",
          "value": "oscarjohnotieno@gmail.com",
          "use": "work"
        }
      ]
    },
    {
      "name": "Kennedy Omondi",
      "telecom": [
        {
          "system": "email",
          "value": "kennankole@gmail.com",
          "use": "work"
        }
      ]
    }
  ],
  "description": "Turns the cashier's record that the account was dealt with into one survey Observation, with the clerk's note against it. A Task is the FHIR-correct home for work that has to be done, and this clearance is born completed -- a Task created in the `completed` state carries no workflow, and SGHITask would force an owner, a requester and a requestedPerformer that all resolve to the facility asking itself to settle the account. So this follows the other two clearances and stays an Observation, which keeps one extraction pattern across the three forms. It carries no balance: the figure belongs to billing, and one restated here would be signed against as though this were the authority for it. If billing later wants a workable item, a Task rule can be added to this map without changing anything the frontend sends.",
  "structure": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
      "mode": "source",
      "alias": "QR"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/Bundle",
      "mode": "target",
      "alias": "Bundle"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/Observation",
      "mode": "target",
      "alias": "Observation"
    }
  ],
  "group": [
    {
      "name": "ExtractDischargeClearanceFinancialClearance",
      "input": [
        {
          "name": "qr",
          "type": "QR",
          "mode": "source"
        },
        {
          "name": "bundle",
          "type": "Bundle",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "setBundleType",
          "source": [
            {
              "context": "qr"
            }
          ],
          "target": [
            {
              "context": "bundle",
              "element": "type",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "transaction"
                }
              ]
            }
          ]
        },
        {
          "name": "settlementRule",
          "source": [
            {
              "context": "qr",
              "element": "item",
              "variable": "it",
              "condition": "(linkId = '398664818229') and answer.value.exists()"
            }
          ],
          "rule": [
            {
              "name": "settlementAnswer",
              "source": [
                {
                  "context": "it",
                  "element": "answer",
                  "listMode": "first",
                  "variable": "a"
                }
              ],
              "rule": [
                {
                  "name": "settlementObs",
                  "source": [
                    {
                      "context": "a"
                    }
                  ],
                  "target": [
                    {
                      "context": "bundle",
                      "element": "entry",
                      "variable": "entry"
                    },
                    {
                      "context": "entry",
                      "element": "resource",
                      "variable": "obs",
                      "transform": "create",
                      "parameter": [
                        {
                          "valueString": "Observation"
                        }
                      ]
                    }
                  ],
                  "rule": [
                    {
                      "name": "settlementBase",
                      "source": [
                        {
                          "context": "qr"
                        }
                      ],
                      "target": [
                        {
                          "context": "obs"
                        },
                        {
                          "context": "entry"
                        }
                      ],
                      "dependent": [
                        {
                          "name": "BuildClearanceObs",
                          "parameter": [
                            {
                              "valueId": "qr"
                            },
                            {
                              "valueId": "obs"
                            },
                            {
                              "valueId": "entry"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "settlementCode",
                      "source": [
                        {
                          "context": "qr"
                        }
                      ],
                      "target": [
                        {
                          "context": "obs",
                          "element": "code",
                          "variable": "settlementCodeCc"
                        }
                      ],
                      "rule": [
                        {
                          "name": "settlementCodeCodingRule",
                          "source": [
                            {
                              "context": "qr"
                            }
                          ],
                          "target": [
                            {
                              "context": "settlementCodeCc",
                              "element": "coding",
                              "variable": "settlementCodeCoding"
                            }
                          ],
                          "rule": [
                            {
                              "name": "settlementCodeSystem",
                              "source": [
                                {
                                  "context": "qr"
                                }
                              ],
                              "target": [
                                {
                                  "context": "settlementCodeCoding",
                                  "element": "system",
                                  "transform": "copy",
                                  "parameter": [
                                    {
                                      "valueString": "https://fhir.slade360.co.ke/fhir/CodeSystem/inpatient-clinical-concept-codesystem"
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "name": "settlementCodeCode",
                              "source": [
                                {
                                  "context": "qr"
                                }
                              ],
                              "target": [
                                {
                                  "context": "settlementCodeCoding",
                                  "element": "code",
                                  "transform": "copy",
                                  "parameter": [
                                    {
                                      "valueString": "account-settlement-at-discharge"
                                    }
                                  ]
                                }
                              ]
                            },
                            {
                              "name": "settlementCodeDisplay",
                              "source": [
                                {
                                  "context": "qr"
                                }
                              ],
                              "target": [
                                {
                                  "context": "settlementCodeCoding",
                                  "element": "display",
                                  "transform": "copy",
                                  "parameter": [
                                    {
                                      "valueString": "How the account was settled at discharge"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "settlementValue",
                      "source": [
                        {
                          "context": "a"
                        }
                      ],
                      "target": [
                        {
                          "context": "obs"
                        }
                      ],
                      "dependent": [
                        {
                          "name": "SetCodedValue",
                          "parameter": [
                            {
                              "valueId": "a"
                            },
                            {
                              "valueId": "obs"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "financeNoteRule",
                      "source": [
                        {
                          "context": "qr",
                          "element": "item",
                          "variable": "itNote",
                          "condition": "(linkId = '818765459000') and answer.value.exists()"
                        }
                      ],
                      "rule": [
                        {
                          "name": "financeNoteAnswer",
                          "source": [
                            {
                              "context": "itNote",
                              "element": "answer",
                              "listMode": "first",
                              "variable": "aNote"
                            }
                          ],
                          "rule": [
                            {
                              "name": "financeNote",
                              "source": [
                                {
                                  "context": "aNote",
                                  "element": "value",
                                  "variable": "nv"
                                }
                              ],
                              "target": [
                                {
                                  "context": "obs",
                                  "element": "note",
                                  "variable": "note"
                                }
                              ],
                              "rule": [
                                {
                                  "name": "financeNoteText",
                                  "source": [
                                    {
                                      "context": "nv"
                                    }
                                  ],
                                  "target": [
                                    {
                                      "context": "note",
                                      "element": "text",
                                      "transform": "copy",
                                      "parameter": [
                                        {
                                          "valueId": "nv"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                {
                                  "name": "financeNoteTime",
                                  "source": [
                                    {
                                      "context": "qr",
                                      "element": "authored",
                                      "variable": "t"
                                    }
                                  ],
                                  "target": [
                                    {
                                      "context": "note",
                                      "element": "time",
                                      "transform": "copy",
                                      "parameter": [
                                        {
                                          "valueId": "t"
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ],
                      "documentation": "linkId 818765459000 — \"Note\""
                    }
                  ]
                }
              ]
            }
          ],
          "documentation": "linkId 398664818229 — \"How the account was settled\""
        }
      ]
    },
    {
      "name": "BuildClearanceObs",
      "documentation": "─────────────────────────────────────────────────────────────────────────────\r\nShared scaffolding. Repeated in each clearance map rather than imported: the\r\ntransform engine resolves `imports` against whatever StructureMaps happen to\r\nbe on the server, and a clearance that stops extracting because a shared map\r\nwas not uploaded is a worse failure than a duplicated group.\r\nSource parameters are left untyped on purpose. Writing `: Element` makes the\r\npublisher's StructureMap validator compare QuestionnaireResponse.item against\r\nthe literal 'Element' and report them as incompatible, which is noise.\r\n─────────────────────────────────────────────────────────────────────────────",
      "input": [
        {
          "name": "qr",
          "type": "QR",
          "mode": "source"
        },
        {
          "name": "obs",
          "type": "Observation",
          "mode": "target"
        },
        {
          "name": "entry",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "idAndFullUrl",
          "source": [
            {
              "context": "qr"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "id",
              "transform": "uuid"
            }
          ],
          "dependent": [
            {
              "name": "SetObservationFullUrl",
              "parameter": [
                {
                  "valueId": "obs"
                },
                {
                  "valueId": "entry"
                }
              ]
            }
          ]
        },
        {
          "name": "entryRequest",
          "source": [
            {
              "context": "qr"
            }
          ],
          "target": [
            {
              "context": "entry",
              "element": "request",
              "variable": "request"
            }
          ],
          "rule": [
            {
              "name": "requestMethod",
              "source": [
                {
                  "context": "qr"
                }
              ],
              "target": [
                {
                  "context": "request",
                  "element": "method",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "POST"
                    }
                  ]
                }
              ]
            },
            {
              "name": "requestUrl",
              "source": [
                {
                  "context": "qr"
                }
              ],
              "target": [
                {
                  "context": "request",
                  "element": "url",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "Observation"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "status",
          "source": [
            {
              "context": "qr"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "status",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "final"
                }
              ]
            }
          ]
        },
        {
          "name": "category",
          "source": [
            {
              "context": "qr"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "category",
              "variable": "categoryCc"
            }
          ],
          "rule": [
            {
              "name": "categoryCodingRule",
              "source": [
                {
                  "context": "qr"
                }
              ],
              "target": [
                {
                  "context": "categoryCc",
                  "element": "coding",
                  "variable": "categoryCoding"
                }
              ],
              "rule": [
                {
                  "name": "categorySystem",
                  "source": [
                    {
                      "context": "qr"
                    }
                  ],
                  "target": [
                    {
                      "context": "categoryCoding",
                      "element": "system",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueString": "http://terminology.hl7.org/CodeSystem/observation-category"
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "categoryCode",
                  "source": [
                    {
                      "context": "qr"
                    }
                  ],
                  "target": [
                    {
                      "context": "categoryCoding",
                      "element": "code",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueString": "survey"
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "categoryDisplay",
                  "source": [
                    {
                      "context": "qr"
                    }
                  ],
                  "target": [
                    {
                      "context": "categoryCoding",
                      "element": "display",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueString": "Survey"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "subject",
          "source": [
            {
              "context": "qr",
              "element": "subject",
              "variable": "s"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "subject",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "s"
                }
              ]
            }
          ]
        },
        {
          "name": "encounter",
          "source": [
            {
              "context": "qr",
              "element": "encounter",
              "variable": "e"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "encounter",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "e"
                }
              ]
            }
          ]
        },
        {
          "name": "effective",
          "source": [
            {
              "context": "qr",
              "element": "authored",
              "variable": "t"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "effective",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "t"
                }
              ]
            }
          ],
          "documentation": "`effective`, not `effectiveInstant`: the R5 transform engine writes choice\r\nelements by their base name and rejects the typed form.\r\nAdvantage stamps `authored` when the clearances are submitted, not when each\r\nwas signed, so a clearance signed at two in the morning and submitted at the\r\nhandover carries the handover time. Sending the signature time on the\r\nresponse would fix it at the source; there is nothing on the response for a\r\nmap to read it from."
        },
        {
          "name": "issued",
          "source": [
            {
              "context": "qr",
              "element": "authored",
              "variable": "t"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "issued",
              "transform": "cast",
              "parameter": [
                {
                  "valueId": "t"
                },
                {
                  "valueString": "instant"
                }
              ]
            }
          ]
        },
        {
          "name": "performer",
          "source": [
            {
              "context": "qr",
              "element": "source",
              "variable": "src"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "performer",
              "variable": "perf",
              "transform": "create",
              "parameter": [
                {
                  "valueString": "Reference"
                }
              ]
            }
          ],
          "rule": [
            {
              "name": "performerRef",
              "source": [
                {
                  "context": "src",
                  "element": "reference",
                  "variable": "ref"
                }
              ],
              "target": [
                {
                  "context": "perf",
                  "element": "reference",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "ref"
                    }
                  ]
                }
              ]
            },
            {
              "name": "performerDisplay",
              "source": [
                {
                  "context": "src",
                  "element": "display",
                  "variable": "disp"
                }
              ],
              "target": [
                {
                  "context": "perf",
                  "element": "display",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "disp"
                    }
                  ]
                }
              ]
            }
          ],
          "documentation": "The facility, not the person who signed: SGHIObservation admits only an\r\nOrganization or a Patient as performer, and the form's signature is a typed\r\nname that resolves to neither. On this form the signer is routinely a\r\ncashier, who has no practitioner record to reference in any case."
        },
        {
          "name": "identifier",
          "source": [
            {
              "context": "qr"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "identifier",
              "variable": "ident"
            }
          ],
          "rule": [
            {
              "name": "identifierUse",
              "source": [
                {
                  "context": "qr"
                }
              ],
              "target": [
                {
                  "context": "ident",
                  "element": "use",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "official"
                    }
                  ]
                }
              ]
            },
            {
              "name": "identifierType",
              "source": [
                {
                  "context": "qr"
                }
              ],
              "target": [
                {
                  "context": "ident",
                  "element": "type",
                  "variable": "identifierTypeCc"
                }
              ],
              "rule": [
                {
                  "name": "identifierTypeCodingRule",
                  "source": [
                    {
                      "context": "qr"
                    }
                  ],
                  "target": [
                    {
                      "context": "identifierTypeCc",
                      "element": "coding",
                      "variable": "identifierTypeCoding"
                    }
                  ],
                  "rule": [
                    {
                      "name": "identifierTypeSystem",
                      "source": [
                        {
                          "context": "qr"
                        }
                      ],
                      "target": [
                        {
                          "context": "identifierTypeCoding",
                          "element": "system",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "https://fhir.slade360.co.ke/fhir/CodeSystem/default-identifier-codesystem"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "identifierTypeCode",
                      "source": [
                        {
                          "context": "qr"
                        }
                      ],
                      "target": [
                        {
                          "context": "identifierTypeCoding",
                          "element": "code",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "default-id"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "identifierTypeDisplay",
                      "source": [
                        {
                          "context": "qr"
                        }
                      ],
                      "target": [
                        {
                          "context": "identifierTypeCoding",
                          "element": "display",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "Default Resource Identifier"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "identifierSystem",
              "source": [
                {
                  "context": "qr"
                }
              ],
              "target": [
                {
                  "context": "ident",
                  "element": "system",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "https://fhir.slade360.co.ke/fhir/CodeSystem/default-identifier-codesystem"
                    }
                  ]
                }
              ]
            },
            {
              "name": "identifierValue",
              "source": [
                {
                  "context": "qr"
                }
              ],
              "target": [
                {
                  "context": "ident",
                  "element": "value",
                  "transform": "uuid"
                }
              ]
            },
            {
              "name": "identifierAssigner",
              "source": [
                {
                  "context": "qr",
                  "element": "source",
                  "variable": "src"
                }
              ],
              "target": [
                {
                  "context": "ident",
                  "element": "assigner",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "src"
                    }
                  ]
                }
              ]
            }
          ],
          "documentation": "One identifier per resource. Copying the response's own would give every\r\nObservation from a single form the same business identity."
        },
        {
          "name": "linkQuestionnaireResponse",
          "source": [
            {
              "context": "qr"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "derivedFrom",
              "variable": "ref",
              "transform": "create",
              "parameter": [
                {
                  "valueString": "Reference"
                }
              ]
            }
          ],
          "rule": [
            {
              "name": "derivedFromRef",
              "source": [
                {
                  "context": "qr",
                  "element": "id",
                  "variable": "qid"
                }
              ],
              "target": [
                {
                  "context": "ref",
                  "element": "reference",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "qid"
                    }
                  ]
                }
              ]
            }
          ],
          "documentation": "No append: under this engine `qr.id` already resolves to the type-qualified\r\nrelative reference, so prefixing it again produces a reference to nothing."
        }
      ]
    },
    {
      "name": "SetCodedValue",
      "input": [
        {
          "name": "a",
          "mode": "source"
        },
        {
          "name": "obs",
          "type": "Observation",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "codedValue",
          "source": [
            {
              "context": "a",
              "element": "value",
              "variable": "cv"
            }
          ],
          "target": [
            {
              "context": "obs",
              "element": "value",
              "variable": "concept",
              "transform": "create",
              "parameter": [
                {
                  "valueString": "CodeableConcept"
                }
              ]
            }
          ],
          "rule": [
            {
              "name": "valueCoding",
              "source": [
                {
                  "context": "cv"
                }
              ],
              "target": [
                {
                  "context": "concept",
                  "element": "coding",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "cv"
                    }
                  ]
                }
              ]
            },
            {
              "name": "valueText",
              "source": [
                {
                  "context": "cv",
                  "element": "display",
                  "variable": "d"
                }
              ],
              "target": [
                {
                  "context": "concept",
                  "element": "text",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "d"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "SetObservationFullUrl",
      "input": [
        {
          "name": "obs",
          "type": "Observation",
          "mode": "source"
        },
        {
          "name": "entry",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "assignFullUrl",
          "source": [
            {
              "context": "obs",
              "element": "id",
              "variable": "id"
            }
          ],
          "target": [
            {
              "context": "entry",
              "element": "fullUrl",
              "transform": "append",
              "parameter": [
                {
                  "valueString": "https://fhir.slade360.co.ke/fhir/Observation/"
                },
                {
                  "valueId": "id"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}