| Package | hl7.fhir.uv.sdc |
| Resource Type | StructureMap |
| Id | ExtractComplexSmap |
| FHIR Version | R4 |
| Source | http://hl7.org/fhir/uv/sdc/https://build.fhir.org/ig/HL7/sdc/StructureMap-ExtractComplexSmap.html |
| URL | http://hl7.org/fhir/uv/sdc/StructureMap/ExtractComplexSmap |
| Version | 4.0.0-ballot |
| Status | draft |
| Date | 2025-08-07T06:58:13+00:00 |
| Name | ExtractComplexSmap |
| Realm | uv |
| Authority | hl7 |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
/// url = "http://hl7.org/fhir/uv/sdc/StructureMap/ExtractComplexSmap"
/// name = "ExtractComplexSmap"
/// status = "active"
/// title = "Complex extraction structure map example"
/// description = "An example of a StructureMap used to support extraction from a QuestionnaireResponse"
/// experimental = "true"
map "http://hl7.org/fhir/uv/sdc/StructureMap/ExtractComplexSmap" = "ExtractComplexSmap"
uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" as source
uses "http://hl7.org/fhir/StructureDefinition/Bundle" as target
uses "http://hl7.org/fhir/StructureDefinition/Patient" as target
uses "http://hl7.org/fhir/StructureDefinition/RelatedPerson" as target
uses "http://hl7.org/fhir/StructureDefinition/Observation" as target
uses "http://hl7.org/fhir/StructureDefinition/Coding" as target
group ExtractBundle(source src : QuestionnaireResponse, target tgt : Bundle) {
// Patient
src.item as patientItem where (linkId = 'patient') -> tgt.entry as patientEntry, uuid() as patientFullUrl then {
src -> patientEntry.resource = create('Patient') as pat //, pat.id = (%patientFullUrl)
then PopulatePatient(src, patientItem, pat), PopulateBundleEntry(src, patientEntry, patientFullUrl) "popPatient";
// Related Person(s)
src.item as rpItem where (linkId = 'contacts') -> tgt.entry as entry, uuid() as fullUrl then {
src -> entry.resource = create('RelatedPerson') as rp //, rp.id = (%fullUrl)
then PopulateRelatedPerson(src, rpItem, rp, patientFullUrl), PopulateBundleEntry(src, entry, fullUrl) "popRelatedPerson";
} "CreateRelatedPersonEntry";
src.item as obsItems where (linkId = 'obs') -> tgt then {
// Height Observation
obsItems.item as heightItem where (linkId = 'height') -> tgt.entry as entry, uuid() as fullUrl then {
src -> entry.resource = create('Observation') as obs,
cc('http://loinc.org', '8302-2', 'Body height') as coding,
obs.value = create('Quantity') as q, q.value = (%heightItem.answer.value.first()), q.unit = 'm'
then PopulateObservation(src, heightItem, obs, coding, patientFullUrl),
PopulateBundleEntry(src, entry, fullUrl) "popObs";
} "CreateHeightObsEntry";
// Weight Observation
obsItems.item as weightItem where (linkId = 'weight') -> tgt.entry as entry, uuid() as fullUrl then {
src -> entry.resource = create('Observation') as obs,
cc('http://loinc.org', '29463-7', 'Weight') as coding,
obs.value = create('Quantity') as q, q.value = (%weightItem.answer.value.first()), q.unit = 'kg'
then PopulateObservation(src, weightItem, obs, coding, patientFullUrl),
PopulateBundleEntry(src, entry, fullUrl) "popObs";
} "CreateWeightObsEntry";
// Prepare the bundle entry
obsItems.item as complicationItem where (linkId = 'complication') -> tgt.entry as entry, uuid() as fullUrl then {
src -> entry.resource = create('Observation') as obs,
cc('http://example.org/sdh/demo/CodeSystem/cc-screening-codes', 'sigmoidoscopy-complication') as coding,
obs.value = (%complicationItem.answer.value.first())
then PopulateObservation(src, complicationItem, obs, coding, patientFullUrl),
PopulateBundleEntry(src, entry, fullUrl) "popObs";
} "CreateComplicationObsEntry";
};
} "CreatePatientEntry";
}
group PopulateBundleEntry(source src : QuestionnaireResponse, target entry, target fullUrl) {
src -> entry.fullUrl = ('urn:uuid:' & %fullUrl) "SetFullUrl";
src -> entry.request as req then {
src -> req.method = 'POST' "setMethod";
} "SetRequest";
}
group PopulatePatient(source src: QuestionnaireResponse, source patientItem, target pat : Patient) {
patientItem.item as gender where (linkId = 'gender') -> pat.gender = (%gender.answer.value.first().code) "SetGender";
patientItem.item as dob where (linkId = 'dob') -> pat.birthDate = (%dob.answer.value) "SetBirthDate";
// name
patientItem.item as name where (linkId = 'name') -> pat.name as tgtName then {
name -> tgtName.text = (%name.item.where(linkId='given' or linkId='family').answer.value.join(' ')) "SetNameText";
name.item as family where (linkId = 'family') -> tgtName.family = (%family.answer.value) "SetFamily";
name.item as given where (linkId = 'given') then {
given.answer as answer -> tgtName.given = (%answer.value) "AnswerValue";
} "SetGiven";
} "SetName";
// identifier
patientItem.item as itemIdentifier where (linkId = 'ihi') -> pat.identifier as tgtIdentifier then {
itemIdentifier -> tgtIdentifier.type as t, t.text = 'National Identifier (IHI)' "SetIdentifierType";
itemIdentifier -> tgtIdentifier.system = 'http://example.org/nhio' "SetIdentifierSystem";
itemIdentifier -> tgtIdentifier.value = (%itemIdentifier.answer.value) "SetIdentifierValue";
} "SetIdentifier";
// telecom
patientItem.item as itemMobile where (linkId = 'mobile-phone') -> pat.telecom as t, t.system='phone', t.value = (%itemMobile.answer.value), t.use = 'mobile' "SetTelecom";
}
group PopulateRelatedPerson(source src: QuestionnaireResponse, source rpItem, target rp : RelatedPerson, target patientFullUrl) {
rpItem -> rp.patient as p, p.reference = (%patientFullUrl) "SetPatientRef";
rpItem.item as name where (linkId = 'contact-name') -> rp.name as n, n.text = (%name.answer.value) "SetName";
rpItem.item as rel where (linkId = 'relationship') -> rp.relationship as r, r.coding = (%rel.answer.value) "SetRelationship";
rpItem.item as phone where (linkId = 'phone') -> rp.telecom as t, t.system = 'phone', t.value = (%phone.answer.value), t.use = 'mobile' "SetPhone";
}
group PopulateObservation(source src : QuestionnaireResponse, source complicationItem, target tgt : Observation, target coding : Coding, target patientFullUrl) {
src -> tgt.code = (%coding) "SetObservationCode";
src -> tgt.status = 'final' "SetStatus";
// src.subject as s -> tgt.subject = s; // not using the the subject, as this is intended to be created from the data instead (as is outgoing referral)
src.subject as s -> tgt.subject as p, p.reference = (%patientFullUrl) "SetSubjectRef";
src.authored as s -> tgt.issued = s "SetAuthored";
src.authored as s -> tgt.effective = s "SetEffective";
src.author as s -> tgt.performer = s;
src.id -> tgt.derivedFrom as df, df.reference = ('QuestionnaireResponse/' & %src.id) "SetDerivedFrom";
}
{
"resourceType": "StructureMap",
"id": "ExtractComplexSmap",
"text": {
"status": "additional",
"div": "<!-- snip (see above) -->"
},
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode": "fhir"
}
],
"url": "http://hl7.org/fhir/uv/sdc/StructureMap/ExtractComplexSmap",
"identifier": [
{
"system": "urn:ietf:rfc:3986",
"value": "urn:oid:2.16.840.1.113883.4.642.40.17.43.3"
}
],
"version": "4.0.0-ballot",
"name": "ExtractComplexSmap",
"status": "draft",
"date": "2025-08-07T06:58:13+00:00",
"publisher": "HL7 International / FHIR Infrastructure",
"contact": [
{
"name": "HL7 International / FHIR Infrastructure",
"telecom": [
{
"system": "url",
"value": "http://www.hl7.org/Special/committees/fiwg"
}
]
},
{
"telecom": [
{
"system": "url",
"value": "http://www.hl7.org/Special/committees/fiwg"
}
]
}
],
"jurisdiction": [
{
"coding": [
{
"system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
"code": "001",
"display": "World"
}
]
}
],
"structure": [
{
"url": "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
"mode": "source"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Patient",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/RelatedPerson",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Observation",
"mode": "target"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Coding",
"mode": "target"
}
],
"group": [
{
"name": "ExtractBundle",
"typeMode": "none",
"input": [
{
"name": "src",
"type": "QuestionnaireResponse",
"mode": "source"
},
{
"name": "tgt",
"type": "Bundle",
"mode": "target"
}
],
"rule": [
{
"name": "CreatePatientEntry",
"source": [
{
"context": "src",
"element": "item",
"variable": "patientItem",
"condition": "(linkId = 'patient')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "entry",
"variable": "patientEntry"
},
{
"contextType": "variable",
"variable": "patientFullUrl",
"transform": "uuid"
}
],
"rule": [
{
"name": "popPatient",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "patientEntry",
"contextType": "variable",
"element": "resource",
"variable": "pat",
"transform": "create",
"parameter": [
{
"valueString": "Patient"
}
]
}
],
"dependent": [
{
"name": "PopulatePatient",
"variable": [
"src",
"patientItem",
"pat"
]
},
{
"name": "PopulateBundleEntry",
"variable": [
"src",
"patientEntry",
"patientFullUrl"
]
}
]
},
{
"name": "CreateRelatedPersonEntry",
"source": [
{
"context": "src",
"element": "item",
"variable": "rpItem",
"condition": "(linkId = 'contacts')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "entry",
"variable": "entry"
},
{
"contextType": "variable",
"variable": "fullUrl",
"transform": "uuid"
}
],
"rule": [
{
"name": "popRelatedPerson",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "resource",
"variable": "rp",
"transform": "create",
"parameter": [
{
"valueString": "RelatedPerson"
}
]
}
],
"dependent": [
{
"name": "PopulateRelatedPerson",
"variable": [
"src",
"rpItem",
"rp",
"patientFullUrl"
]
},
{
"name": "PopulateBundleEntry",
"variable": [
"src",
"entry",
"fullUrl"
]
}
]
}
]
},
{
"name": "item",
"source": [
{
"context": "src",
"element": "item",
"variable": "obsItems",
"condition": "(linkId = 'obs')"
}
],
"target": [
{
"contextType": "variable",
"transform": "copy",
"parameter": [
{
"valueId": "tgt"
}
]
}
],
"rule": [
{
"name": "CreateHeightObsEntry",
"source": [
{
"context": "obsItems",
"element": "item",
"variable": "heightItem",
"condition": "(linkId = 'height')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "entry",
"variable": "entry"
},
{
"contextType": "variable",
"variable": "fullUrl",
"transform": "uuid"
}
],
"rule": [
{
"name": "popObs",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "resource",
"variable": "obs",
"transform": "create",
"parameter": [
{
"valueString": "Observation"
}
]
},
{
"contextType": "variable",
"variable": "coding",
"transform": "cc",
"parameter": [
{
"valueString": "http://loinc.org"
},
{
"valueString": "8302-2"
},
{
"valueString": "Body height"
}
]
},
{
"context": "obs",
"contextType": "variable",
"element": "value",
"variable": "q",
"transform": "create",
"parameter": [
{
"valueString": "Quantity"
}
]
},
{
"context": "q",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "%heightItem.answer.value.first()"
}
]
},
{
"context": "q",
"contextType": "variable",
"element": "unit",
"transform": "copy",
"parameter": [
{
"valueString": "m"
}
]
}
],
"dependent": [
{
"name": "PopulateObservation",
"variable": [
"src",
"heightItem",
"obs",
"coding",
"patientFullUrl"
]
},
{
"name": "PopulateBundleEntry",
"variable": [
"src",
"entry",
"fullUrl"
]
}
]
}
]
},
{
"name": "CreateWeightObsEntry",
"source": [
{
"context": "obsItems",
"element": "item",
"variable": "weightItem",
"condition": "(linkId = 'weight')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "entry",
"variable": "entry"
},
{
"contextType": "variable",
"variable": "fullUrl",
"transform": "uuid"
}
],
"rule": [
{
"name": "popObs",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "resource",
"variable": "obs",
"transform": "create",
"parameter": [
{
"valueString": "Observation"
}
]
},
{
"contextType": "variable",
"variable": "coding",
"transform": "cc",
"parameter": [
{
"valueString": "http://loinc.org"
},
{
"valueString": "29463-7"
},
{
"valueString": "Weight"
}
]
},
{
"context": "obs",
"contextType": "variable",
"element": "value",
"variable": "q",
"transform": "create",
"parameter": [
{
"valueString": "Quantity"
}
]
},
{
"context": "q",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "%weightItem.answer.value.first()"
}
]
},
{
"context": "q",
"contextType": "variable",
"element": "unit",
"transform": "copy",
"parameter": [
{
"valueString": "kg"
}
]
}
],
"dependent": [
{
"name": "PopulateObservation",
"variable": [
"src",
"weightItem",
"obs",
"coding",
"patientFullUrl"
]
},
{
"name": "PopulateBundleEntry",
"variable": [
"src",
"entry",
"fullUrl"
]
}
]
}
]
},
{
"name": "CreateComplicationObsEntry",
"source": [
{
"context": "obsItems",
"element": "item",
"variable": "complicationItem",
"condition": "(linkId = 'complication')"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "entry",
"variable": "entry"
},
{
"contextType": "variable",
"variable": "fullUrl",
"transform": "uuid"
}
],
"rule": [
{
"name": "popObs",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "resource",
"variable": "obs",
"transform": "create",
"parameter": [
{
"valueString": "Observation"
}
]
},
{
"contextType": "variable",
"variable": "coding",
"transform": "cc",
"parameter": [
{
"valueString": "http://example.org/sdh/demo/CodeSystem/cc-screening-codes"
},
{
"valueString": "sigmoidoscopy-complication"
}
]
},
{
"context": "obs",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "%complicationItem.answer.value.first()"
}
]
}
],
"dependent": [
{
"name": "PopulateObservation",
"variable": [
"src",
"complicationItem",
"obs",
"coding",
"patientFullUrl"
]
},
{
"name": "PopulateBundleEntry",
"variable": [
"src",
"entry",
"fullUrl"
]
}
]
}
]
}
]
}
]
}
]
},
{
"name": "PopulateBundleEntry",
"typeMode": "none",
"input": [
{
"name": "src",
"type": "QuestionnaireResponse",
"mode": "source"
},
{
"name": "entry",
"mode": "target"
},
{
"name": "fullUrl",
"mode": "target"
}
],
"rule": [
{
"name": "SetFullUrl",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "fullUrl",
"transform": "evaluate",
"parameter": [
{
"valueString": "'urn:uuid:' & %fullUrl"
}
]
}
]
},
{
"name": "SetRequest",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "request",
"variable": "req"
}
],
"rule": [
{
"name": "setMethod",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "req",
"contextType": "variable",
"element": "method",
"transform": "copy",
"parameter": [
{
"valueString": "POST"
}
]
}
]
}
]
}
]
},
{
"name": "PopulatePatient",
"typeMode": "none",
"input": [
{
"name": "src",
"type": "QuestionnaireResponse",
"mode": "source"
},
{
"name": "patientItem",
"mode": "source"
},
{
"name": "pat",
"type": "Patient",
"mode": "target"
}
],
"rule": [
{
"name": "SetGender",
"source": [
{
"context": "patientItem",
"element": "item",
"variable": "gender",
"condition": "(linkId = 'gender')"
}
],
"target": [
{
"context": "pat",
"contextType": "variable",
"element": "gender",
"transform": "evaluate",
"parameter": [
{
"valueString": "%gender.answer.value.first().code"
}
]
}
]
},
{
"name": "SetBirthDate",
"source": [
{
"context": "patientItem",
"element": "item",
"variable": "dob",
"condition": "(linkId = 'dob')"
}
],
"target": [
{
"context": "pat",
"contextType": "variable",
"element": "birthDate",
"transform": "evaluate",
"parameter": [
{
"valueString": "%dob.answer.value"
}
]
}
]
},
{
"name": "SetName",
"source": [
{
"context": "patientItem",
"element": "item",
"variable": "name",
"condition": "(linkId = 'name')"
}
],
"target": [
{
"context": "pat",
"contextType": "variable",
"element": "name",
"variable": "tgtName"
}
],
"rule": [
{
"name": "SetNameText",
"source": [
{
"context": "name"
}
],
"target": [
{
"context": "tgtName",
"contextType": "variable",
"element": "text",
"transform": "evaluate",
"parameter": [
{
"valueString": "%name.item.where((linkId = 'given') or (linkId = 'family')).answer.value.join(' ')"
}
]
}
]
},
{
"name": "SetFamily",
"source": [
{
"context": "name",
"element": "item",
"variable": "family",
"condition": "(linkId = 'family')"
}
],
"target": [
{
"context": "tgtName",
"contextType": "variable",
"element": "family",
"transform": "evaluate",
"parameter": [
{
"valueString": "%family.answer.value"
}
]
}
]
},
{
"name": "SetGiven",
"source": [
{
"context": "name",
"element": "item",
"variable": "given",
"condition": "(linkId = 'given')"
}
],
"rule": [
{
"name": "AnswerValue",
"source": [
{
"context": "given",
"element": "answer",
"variable": "answer"
}
],
"target": [
{
"context": "tgtName",
"contextType": "variable",
"element": "given",
"transform": "evaluate",
"parameter": [
{
"valueString": "%answer.value"
}
]
}
]
}
]
}
]
},
{
"name": "SetIdentifier",
"source": [
{
"context": "patientItem",
"element": "item",
"variable": "itemIdentifier",
"condition": "(linkId = 'ihi')"
}
],
"target": [
{
"context": "pat",
"contextType": "variable",
"element": "identifier",
"variable": "tgtIdentifier"
}
],
"rule": [
{
"name": "SetIdentifierType",
"source": [
{
"context": "itemIdentifier"
}
],
"target": [
{
"context": "tgtIdentifier",
"contextType": "variable",
"element": "type",
"variable": "t"
},
{
"context": "t",
"contextType": "variable",
"element": "text",
"transform": "copy",
"parameter": [
{
"valueString": "National Identifier (IHI)"
}
]
}
]
},
{
"name": "SetIdentifierSystem",
"source": [
{
"context": "itemIdentifier"
}
],
"target": [
{
"context": "tgtIdentifier",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://example.org/nhio"
}
]
}
]
},
{
"name": "SetIdentifierValue",
"source": [
{
"context": "itemIdentifier"
}
],
"target": [
{
"context": "tgtIdentifier",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "%itemIdentifier.answer.value"
}
]
}
]
}
]
},
{
"name": "SetTelecom",
"source": [
{
"context": "patientItem",
"element": "item",
"variable": "itemMobile",
"condition": "(linkId = 'mobile-phone')"
}
],
"target": [
{
"context": "pat",
"contextType": "variable",
"element": "telecom",
"variable": "t"
},
{
"context": "t",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "phone"
}
]
},
{
"context": "t",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "%itemMobile.answer.value"
}
]
},
{
"context": "t",
"contextType": "variable",
"element": "use",
"transform": "copy",
"parameter": [
{
"valueString": "mobile"
}
]
}
]
}
]
},
{
"name": "PopulateRelatedPerson",
"typeMode": "none",
"input": [
{
"name": "src",
"type": "QuestionnaireResponse",
"mode": "source"
},
{
"name": "rpItem",
"mode": "source"
},
{
"name": "rp",
"type": "RelatedPerson",
"mode": "target"
},
{
"name": "patientFullUrl",
"mode": "target"
}
],
"rule": [
{
"name": "SetPatientRef",
"source": [
{
"context": "rpItem"
}
],
"target": [
{
"context": "rp",
"contextType": "variable",
"element": "patient",
"variable": "p"
},
{
"context": "p",
"contextType": "variable",
"element": "reference",
"transform": "evaluate",
"parameter": [
{
"valueString": "%patientFullUrl"
}
]
}
]
},
{
"name": "SetName",
"source": [
{
"context": "rpItem",
"element": "item",
"variable": "name",
"condition": "(linkId = 'contact-name')"
}
],
"target": [
{
"context": "rp",
"contextType": "variable",
"element": "name",
"variable": "n"
},
{
"context": "n",
"contextType": "variable",
"element": "text",
"transform": "evaluate",
"parameter": [
{
"valueString": "%name.answer.value"
}
]
}
]
},
{
"name": "SetRelationship",
"source": [
{
"context": "rpItem",
"element": "item",
"variable": "rel",
"condition": "(linkId = 'relationship')"
}
],
"target": [
{
"context": "rp",
"contextType": "variable",
"element": "relationship",
"variable": "r"
},
{
"context": "r",
"contextType": "variable",
"element": "coding",
"transform": "evaluate",
"parameter": [
{
"valueString": "%rel.answer.value"
}
]
}
]
},
{
"name": "SetPhone",
"source": [
{
"context": "rpItem",
"element": "item",
"variable": "phone",
"condition": "(linkId = 'phone')"
}
],
"target": [
{
"context": "rp",
"contextType": "variable",
"element": "telecom",
"variable": "t"
},
{
"context": "t",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "phone"
}
]
},
{
"context": "t",
"contextType": "variable",
"element": "value",
"transform": "evaluate",
"parameter": [
{
"valueString": "%phone.answer.value"
}
]
},
{
"context": "t",
"contextType": "variable",
"element": "use",
"transform": "copy",
"parameter": [
{
"valueString": "mobile"
}
]
}
]
}
]
},
{
"name": "PopulateObservation",
"typeMode": "none",
"input": [
{
"name": "src",
"type": "QuestionnaireResponse",
"mode": "source"
},
{
"name": "complicationItem",
"mode": "source"
},
{
"name": "tgt",
"type": "Observation",
"mode": "target"
},
{
"name": "coding",
"type": "Coding",
"mode": "target"
},
{
"name": "patientFullUrl",
"mode": "target"
}
],
"rule": [
{
"name": "SetObservationCode",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "code",
"transform": "evaluate",
"parameter": [
{
"valueString": "%coding"
}
]
}
]
},
{
"name": "SetStatus",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "status",
"transform": "copy",
"parameter": [
{
"valueString": "final"
}
]
}
]
},
{
"name": "SetSubjectRef",
"source": [
{
"context": "src",
"element": "subject",
"variable": "s"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "subject",
"variable": "p"
},
{
"context": "p",
"contextType": "variable",
"element": "reference",
"transform": "evaluate",
"parameter": [
{
"valueString": "%patientFullUrl"
}
]
}
]
},
{
"name": "SetAuthored",
"source": [
{
"context": "src",
"element": "authored",
"variable": "s"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "issued",
"transform": "copy",
"parameter": [
{
"valueId": "s"
}
]
}
]
},
{
"name": "SetEffective",
"source": [
{
"context": "src",
"element": "authored",
"variable": "s"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "effective",
"transform": "copy",
"parameter": [
{
"valueId": "s"
}
]
}
]
},
{
"name": "author",
"source": [
{
"context": "src",
"element": "author",
"variable": "s"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "performer",
"transform": "copy",
"parameter": [
{
"valueId": "s"
}
]
}
]
},
{
"name": "SetDerivedFrom",
"source": [
{
"context": "src",
"element": "id"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "derivedFrom",
"variable": "df"
},
{
"context": "df",
"contextType": "variable",
"element": "reference",
"transform": "evaluate",
"parameter": [
{
"valueString": "'QuestionnaireResponse/' & %src.id"
}
]
}
]
}
]
}
]
}