StructureMap-RadOrderQrToBundle

Sourcech.fhir.ig.ch-rad-order#1.0.0:CH RAD-Order (R4) (v4.0.1)
resourceTypeStructureMap
idRadOrderQrToBundle
canonicalhttp://fhir.ch/ig/ch-rad-order/StructureMap/RadOrderQrToBundle
version1.0.0
statusdraft
publisherHL7 Switzerland
nameRadOrderQrToBundle
date2022-02-22T11:41:58+01:00
descriptionRadiologoy QuestionnaireResponse to Bundle
copyrightCC-BY-SA-4.0
jurisdictionsch
Usages(none)

    
/// url = 
    
    'http://fhir.ch/ig/ch-rad-order/StructureMap/RadOrderQrToBundle'

    
/// name = 
    
    'RadOrderQrToBundle'

    
/// status = 
    
    'draft'


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

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

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

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

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

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

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

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


    imports
     "
    http://fhir.ch/ig/ch-orf/StructureMap/OrfQrToBundle
    "


    group 
RadOrderQrToBundle    (
    source
     qr
     : 
QuestionnaireResponse,     target
     bundle
     : 
Bundle    )
     {

  qr    
 ->     
 bundle.identifier     as 
    documentIdentifier
    , 
 documentIdentifier.system =     'urn:ietf:rfc:3986'
    , 
     uuid
    (
    )
     as 
    uuidDoc
    , 
 documentIdentifier.value =     (
'urn:uuid:' + uuidDoc    )
     "documentIdentifier"
    ;

  qr     as 
    qrcp
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Composition'
    )
     as 
    composition
    , 
 composition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 composition.title =     'Radiologieauftrag'
    , 
 composition.type     as 
    type
    , 
 type.coding     as 
    coding
    , 
 coding.code =     '2161000195103'
    , 
 coding.system =     'urn:oid:2.16.756.5.30.1.127.3.4'
    , 
 coding.display =     'Imaging order (record artifact)'
    , 
 composition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     '721963009'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Order (record artifact)'
    , 
 bundle.entry     as 
    e2
    , 
 bundle.timestamp =     (
now()    )
     as 
    timestamp
    , 
 composition.date =     timestamp
    , 
 e2.resource =     create
    (
    'Patient'
    )
     as 
    patient
    , 
 patient.id =     uuid
    (
    )
     as 
    uuid2
    , 
 e2.fullUrl =     (
'urn:uuid:' + uuid2    )
    , 
 bundle.entry     as 
    e4
    , 
 e4.resource =     qrcp
     as 
    questionnaireresp
    , 
 questionnaireresp.id =     uuid
    (
    )
     as 
    uuid4
    , 
 e4.fullUrl =     (
'urn:uuid:' + uuid4    )
    , 
 bundle.entry     as 
    e5
    , 
 e5.resource =     create
    (
    'ServiceRequest'
    )
     as 
    servicerequest
    , 
 servicerequest.id =     uuid
    (
    )
     as 
    uuid5
    , 
 e5.fullUrl =     (
'urn:uuid:' + uuid5    )
     then
     {

    qr.questionnaire     as 
    can
    
 ->     
 bundle.entry     as 
    e6
    , 
 e6.resource =     (
can.resolve()    )
     as 
    q
    , 
 q.id =     uuid
    (
    )
     as 
    uuid6
    , 
 e6.fullUrl =     append
    (
    'urn:uuid:'
    , 
    uuid6
    )
     then 
QrToBundle    (
    qr
    , 
    q
    , 
    patient
    , 
    questionnaireresp
    , 
    servicerequest
    , 
    composition
    , 
    bundle
    )
     "orfbundle"
    ;

    qr     then 
RadOrderQrToServiceRequest    (
    qr
    , 
    patient
    , 
    bundle
    , 
    composition
    , 
    servicerequest
    )
     "servicerequest"
    ;

      }
     "orfbundle"
    ;

    }


    group 
RadOrderQrToServiceRequest    (
    source
     qr
     : 
QuestionnaireResponse,     target
     patient
     : 
Patient,     target
     bundle
     : 
Bundle,     target
     composition
     : 
Composition,     target
     serviceRequest
     : 
ServiceRequest    )
     {

  qr.item     as 
    grp
     where 
linkId = 'requestedService'     then 
RequestedServiceItems    (
    grp
    , 
    serviceRequest
    )
     "requestedService"
    ;

  qr.item     as 
    grp
     where 
linkId = 'reason'     then 
ReasonServiceItems    (
    grp
    , 
    serviceRequest
    )
     "reason"
    ;

  qr.item     as 
    grp
     where 
linkId = 'imagingService'     then 
ImagingServiceItems    (
    grp
    , 
    serviceRequest
    )
     "imagingService"
    ;

  qr.item     as 
    grp
     where 
linkId = 'orderDetail'     then 
OrderDetailServiceItems    (
    grp
    , 
    serviceRequest
    )
     "orderDetail"
    ;

  qr.item     as 
    grp
     where 
linkId = 'desiredRadiologist'     then 
DesiredRadiologistServiceItems    (
    grp
    , 
    bundle
    , 
    serviceRequest
    )
     "desiredRadiologist"
    ;

  qr.item     as 
    grp
     where 
linkId = 'diagnosisList'     then 
DiagnosisListServiceItems    (
    grp
    , 
    patient
    , 
    bundle
    , 
    serviceRequest
    )
     "diagnosisList"
    ;

  qr.item     as 
    grp
     where 
linkId = 'caveat'     then 
CaveatServiceItems    (
    grp
    , 
    patient
    , 
    bundle
    , 
    serviceRequest
    )
     "Caveat"
    ;

  qr.item     as 
    grp
     where 
linkId = 'previousResults'     then 
PreviousImagingStudyResults    (
    grp
    , 
    bundle
    , 
    serviceRequest
    , 
    patient
    )
     "previousResults"
    ;

    }


    group 
RequestedServiceItems    (
    source
     src
     : 
BackboneElement,     target
     serviceRequest
     : 
ServiceRequest    )
     {

  src.item     as 
    item
     where 
((linkId.value = 'requestedService.service') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    coding
    
 ->     
 serviceRequest.category     as 
    cc
    , 
 cc.coding =     coding
     "service"
    ;

        }
     "valueCoding"
    ;

      }
     "answer"
    ;

    }


    group 
ReasonServiceItems    (
    source
     src
     : 
BackboneElement,     target
     serviceRequest
     : 
ServiceRequest    )
     {

  src.item     as 
    item
     where 
((linkId.value = 'reason.question') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
string     as 
    value
    
 ->     
 serviceRequest.reasonCode     as 
    reasonCode
    , 
 reasonCode.text =     value
     "question"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

    }


    group 
ImagingServiceItems    (
    source
     src
     : 
BackboneElement,     target
     serviceRequest
     : 
ServiceRequest    )
     {

  src.item     as 
    item
     where 
((linkId.value = 'imagingService.type') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    coding
    
 ->     
 serviceRequest.code     as 
    code
    , 
 code.coding =     coding
     "service"
    ;

        }
     "valueCoding"
    ;

      }
     "answer"
    ;

    }


    group 
OrderDetailServiceItems    (
    source
     src
     : 
BackboneElement,     target
     serviceRequest
     : 
ServiceRequest    )
     {

  src.item     as 
    item
     where 
((linkId.value = 'orderDetail.imagingRegion') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    coding
    
 ->     
 serviceRequest.orderDetail     as 
    cc
    , 
 cc.extension     as 
    ext
    , 
 ext.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-order-detail-type'
    , 
 ext.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.system =     'http://fhir.ch/ig/ch-rad-order/CodeSystem/ch-rad-order-order-detail-type'
    , 
 coding.code =     'imagingRegion'
    , 
 cc.coding =     coding
     "imagingRegion"
    ;

        }
     "valueCoding"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'orderDetail.imagingFocus') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    coding
    
 ->     
 serviceRequest.bodySite     as 
    cc
    , 
 cc.coding =     coding
     "imagingFocus"
    ;

        }
     "valueCoding"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'orderDetail.laterality') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    coding
    
 ->     
 serviceRequest.orderDetail     as 
    cc
    , 
 cc.extension     as 
    ext
    , 
 ext.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-order-detail-type'
    , 
 ext.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.system =     'http://fhir.ch/ig/ch-rad-order/CodeSystem/ch-rad-order-order-detail-type'
    , 
 coding.code =     'laterality'
    , 
 cc.coding =     coding
     "laterality"
    ;

        }
     "valueCoding"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'orderDetail.viewType') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    coding
    
 ->     
 serviceRequest.orderDetail     as 
    cc
    , 
 cc.extension     as 
    ext
    , 
 ext.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-order-detail-type'
    , 
 ext.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.system =     'http://fhir.ch/ig/ch-rad-order/CodeSystem/ch-rad-order-order-detail-type'
    , 
 coding.code =     'viewType'
    , 
 cc.coding =     coding
     "viewType"
    ;

        }
     "valueCoding"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'orderDetail.maneuverType') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    coding
    
 ->     
 serviceRequest.orderDetail     as 
    cc
    , 
 cc.extension     as 
    ext
    , 
 ext.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-order-detail-type'
    , 
 ext.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.system =     'http://fhir.ch/ig/ch-rad-order/CodeSystem/ch-rad-order-order-detail-type'
    , 
 coding.code =     'maneuverType'
    , 
 cc.coding =     coding
     "maneuverType"
    ;

        }
     "valueCoding"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'orderDetail.guidanceForAction') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    coding
    
 ->     
 serviceRequest.orderDetail     as 
    cc
    , 
 cc.extension     as 
    ext
    , 
 ext.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-order-detail-type'
    , 
 ext.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.system =     'http://fhir.ch/ig/ch-rad-order/CodeSystem/ch-rad-order-order-detail-type'
    , 
 coding.code =     'guidanceForAction'
    , 
 cc.coding =     coding
     "guidanceForAction"
    ;

        }
     "valueCoding"
    ;

      }
     "answer"
    ;

    }


    group 
DesiredRadiologistServiceItems    (
    source
     src
     : 
BackboneElement,     target
     bundle
     : 
Bundle,     target
     serviceRequest
     : 
ServiceRequest    )
     {

  src    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Practitioner'
    )
     as 
    practitioner
    , 
 practitioner.id =     uuid
    (
    )
     as 
    uuid
    , 
 serviceRequest.performer     as 
    performer
    , 
 performer.reference =     (
'urn:uuid:' + uuid    )
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
     then
     {

    src.item     as 
    item
     where 
((linkId.value = 'desiredRadiologist.familyName') and answer.exists())    
 ->     
 practitioner.name     as 
    name
     share
     name
    , 
 name.family =     (
item.answer.value    )
    ;

    src.item     as 
    item
     where 
((linkId.value = 'desiredRadiologist.givenName') and answer.exists())    
 ->     
 practitioner.name     as 
    name
     share
     name
    , 
 name.given =     (
item.answer.value    )
    ;

      }
     "performer"
    ;

    }


    group 
DiagnosisListServiceItems    (
    source
     src
     : 
BackboneElement,     target
     patient
     : 
Patient,     target
     bundle
     : 
Bundle,     target
     serviceRequest
     : 
ServiceRequest    )
     {

  src.item     as 
    item
     where 
((linkId.value = 'diagnosisList.primaryDiagnosis') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
string     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.reasonReference     as 
    reasonReference
    , 
 reasonReference.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.text =     value
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "primaryDiagnosis"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'diagnosisList.secondaryDiagnosis') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
string     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.text =     value
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "secondaryDiagnosis"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'diagnosisList.bodyHeight') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Quantity     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Observation'
    )
     as 
    observation
    , 
 observation.status =     'final'
    , 
 observation.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 observation.status =     'final'
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 observation.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'vital-signs'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/observation-category'
    , 
 observation.value =     value
    , 
 observation.code     as 
    cc
    , 
 cc.coding     as 
    c
    , 
 c.system =     'http://loinc.org'
    , 
 c.code =     '8302-2'
    , 
 observation.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "bodyHeight"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'diagnosisList.bodyWeight') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Quantity     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Observation'
    )
     as 
    observation
    , 
 observation.status =     'final'
    , 
 observation.id =     uuid
    (
    )
     as 
    uuid
    , 
 observation.status =     'final'
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 observation.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'vital-signs'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/observation-category'
    , 
 observation.value =     value
    , 
 observation.code     as 
    cc
    , 
 cc.coding     as 
    c
    , 
 c.system =     'http://loinc.org'
    , 
 c.code =     '29463-7'
    , 
 observation.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "bodyWeight"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

    }


    group 
CaveatServiceItems    (
    source
     src
     : 
BackboneElement,     target
     patient
     : 
Patient,     target
     bundle
     : 
Bundle,     target
     serviceRequest
     : 
ServiceRequest    )
     {

  src.item     as 
    item
     where 
((linkId.value = 'caveat.bloodCoagulation') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '64779008'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Blood coagulation disorder (disorder)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '64779008'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Blood coagulation disorder (disorder)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     then
     {

        answer.item     as 
    subitem
     where 
(linkId.value = 'caveat.bloodCoagulation.INR')    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Observation'
    )
     as 
    observation
    , 
 observation.id =     uuid
    (
    )
     as 
    uuid
    , 
 observation.status =     'final'
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 condition.evidence     as 
    evidence
    , 
 evidence.detail     as 
    detail
    , 
 detail.reference =     (
'urn:uuid:' + uuid    )
    , 
 observation.code     as 
    cc
    , 
 cc.coding     as 
    c
    , 
 c.system =     'http://loinc.org'
    , 
 c.code =     '34714-6'
    , 
 observation.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     then
     {

          subitem.item     as 
    quantityitem
     where 
((linkId.value = 'caveat.bloodCoagulation.INR.quantity') and answer.exists())     then
     {

            quantityitem.answer     as 
    answer
     then
     {

              answer.value     : 
Quantity     as 
    value
    
 ->     
observation.value =     value
    ;

                }
     "value"
    ;

              }
     "quantity"
    ;

          subitem.item     as 
    datetimeitem
     where 
((linkId.value = 'caveat.bloodCoagulation.INR.dateTime') and answer.exists())     then
     {

            datetimeitem.answer     as 
    answer
     then
     {

              answer.value     : 
dateTime     as 
    value
    
 ->     
observation.effective =     value
    ;

                }
     "value"
    ;

              }
     "dateTime"
    ;

            }
     "INR"
    ;

        answer.item     as 
    subitem
     where 
(linkId.value = 'caveat.bloodCoagulation.platelets')    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Observation'
    )
     as 
    observation
    , 
 observation.id =     uuid
    (
    )
     as 
    uuid
    , 
 observation.status =     'final'
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 condition.evidence     as 
    evidence
    , 
 evidence.detail     as 
    detail
    , 
 detail.reference =     (
'urn:uuid:' + uuid    )
    , 
 observation.code     as 
    cc
    , 
 cc.coding     as 
    c
    , 
 c.system =     'http://loinc.org'
    , 
 c.code =     '26515-7'
    , 
 observation.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     then
     {

          subitem.item     as 
    quantityitem
     where 
((linkId.value = 'caveat.bloodCoagulation.platelets.quantity') and answer.exists())     then
     {

            quantityitem.answer     as 
    answer
     then
     {

              answer.value     : 
Quantity     as 
    value
    
 ->     
observation.value =     value
    ;

                }
     "value"
    ;

              }
     "platelets"
    ;

          subitem.item     as 
    datetimeitem
     where 
((linkId.value = 'caveat.bloodCoagulation.platelets.dateTime') and answer.exists())     then
     {

            datetimeitem.answer     as 
    answer
     then
     {

              answer.value     : 
dateTime     as 
    value
    
 ->     
observation.effective =     value
    ;

                }
     "value"
    ;

              }
     "platelets"
    ;

            }
     "INR"
    ;

          }
     "bloodCoagulation"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'caveat.renalInsufficiency') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '723188008'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Renal insufficiency (disorder)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '723188008'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Renal insufficiency (disorder)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     then
     {

        answer.item     as 
    subitem
     where 
(linkId.value = 'caveat.renalInsufficiency.creatinineClearance')    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Observation'
    )
     as 
    observation
    , 
 observation.status =     'final'
    , 
 observation.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 condition.evidence     as 
    evidence
    , 
 evidence.detail     as 
    detail
    , 
 detail.reference =     (
'urn:uuid:' + uuid    )
    , 
 observation.code     as 
    cc
    , 
 cc.coding     as 
    c
    , 
 c.system =     'http://loinc.org'
    , 
 c.code =     '33558-8'
    , 
 observation.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     then
     {

          subitem.item     as 
    quantityitem
     where 
((linkId.value = 'caveat.renalInsufficiency.creatinineClearance.quantity') and answer.exists())     then
     {

            quantityitem.answer     as 
    answer
     then
     {

              answer.value     : 
Quantity     as 
    value
    
 ->     
observation.value =     value
    ;

                }
     "value"
    ;

              }
     "quantity"
    ;

          subitem.item     as 
    datetimeitem
     where 
((linkId.value = 'caveat.renalInsufficiency.creatinineClearance.dateTime') and answer.exists())     then
     {

            datetimeitem.answer     as 
    answer
     then
     {

              answer.value     : 
dateTime     as 
    value
    
 ->     
observation.effective =     value
    ;

                }
     "value"
    ;

              }
     "creatinineClearancedateTime"
    ;

            }
     "INR"
    ;

        answer.item     as 
    subitem
     where 
(linkId.value = 'caveat.renalInsufficiency.creatinine')    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Observation'
    )
     as 
    observation
    , 
 observation.status =     'final'
    , 
 observation.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 condition.evidence     as 
    evidence
    , 
 evidence.detail     as 
    detail
    , 
 detail.reference =     (
'urn:uuid:' + uuid    )
    , 
 observation.code     as 
    cc
    , 
 cc.coding     as 
    c
    , 
 c.system =     'http://loinc.org'
    , 
 c.code =     '77140-2'
    , 
 observation.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     then
     {

          subitem.item     as 
    quantityitem
     where 
((linkId.value = 'caveat.renalInsufficiency.creatinine.quantity') and answer.exists())     then
     {

            quantityitem.answer     as 
    answer
     then
     {

              answer.value     : 
Quantity     as 
    value
    
 ->     
observation.value =     value
    ;

                }
     "value"
    ;

              }
     "creatinine"
    ;

          subitem.item     as 
    datetimeitem
     where 
((linkId.value = 'caveat.renalInsufficiency.creatinine.dateTime') and answer.exists())     then
     {

            datetimeitem.answer     as 
    answer
     then
     {

              answer.value     : 
dateTime     as 
    value
    
 ->     
observation.effective =     value
    ;

                }
     "ue"
    ;

              }
     "platelets"
    ;

            }
     "creatinine"
    ;

          }
     "bloodCoagulation"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'caveat.claustrophobia') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '19887002'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Claustrophobia (finding)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '19887002'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Claustrophobia (finding)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "claustrophobia"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'caveat.bodyPiercing') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '879862001'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Body piercing (finding)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '879862001'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Body piercing (finding)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "bodyPiercing"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
(linkId.value = 'caveat.device')    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
     then
     {

    item.item     as 
    subitem
     where 
((linkId.value = 'caveat.device.choice') and answer.exists())     then
     {

      subitem.answer     as 
    answer
     then
     {

        answer.value     : 
Coding     as 
    value
    
 ->     
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '397578001'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Device in situ (finding)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "device"
    ;

          }
     "choise"
    ;

      item.item     as 
    subitem
     where 
((linkId.value = 'caveat.device.specifictype') and answer.exists())     then
     {

        subitem.answer     as 
    answer
     then
     {

          answer.value     : 
Coding     as 
    value
    
 ->     
 condition.code     as 
    code
    , 
 code.coding =     value
     "devicespecific"
    ;

            }
     "specifictype"
    ;

          }
     "devicespecific"
    ;

        }
     "device"
    ;

      }
     "device"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'caveat.hyperthyroidism') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '34486009'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Hyperthyroidism (disorder)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '34486009'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Hyperthyroidism (disorder)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "hyperthyroidism"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'caveat.diabetes') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '73211009'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Diabetes mellitus (disorder)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '73211009'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Diabetes mellitus (disorder)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "diabetes"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'caveat.gravida') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '366321006'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Finding of gravida (finding)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '366321006'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Finding of gravida (finding)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "gravida"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
((linkId.value = 'caveat.contrastMediaAllergy') and answer.exists())     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '293637006'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Allergy to contrast media (finding)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '293637006'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Allergy to contrast media (finding)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "contrastMediaAllergy"
    ;

        }
     "valueString"
    ;

      }
     "answer"
    ;

  src.item     as 
    item
     where 
(linkId.value = 'caveat.drugPrescription')     then 
DesiredRadiologistServiceItemsDrugDescription    (
    item
    , 
    bundle
    , 
    serviceRequest
    , 
    patient
    )
     "DrugPrescription"
    ;
     // 
    "caveat.drugPrescription.metformin"

    }


    group 
DesiredRadiologistServiceItemsDrugDescription    (
    source
     src
     : 
BackboneElement,     target
     bundle
     : 
Bundle,     target
     serviceRequest
     : 
ServiceRequest,     target
     patient
     : 
Patient    )
     {

  src.item     as 
    item
     where 
(linkId.value = 'caveat.drugPrescription.metformin')     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '182817000'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Drug prescription (situation)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '372567009'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Metformin (substance)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "drugPrescription"
    ;

        }
     "valueString"
    ;

      }
     "metformin"
    ;

  src.item     as 
    item
     where 
(linkId.value = 'caveat.drugPrescription.betaBlocker')     then
     {

    item.answer     as 
    answer
     then
     {

      answer.value     : 
Coding     as 
    value
    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'Condition'
    )
     as 
    condition
    , 
 condition.id =     uuid
    (
    )
     as 
    uuid
    , 
 e.fullUrl =     (
'urn:uuid:' + uuid    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
    , 
 condition.extension     as 
    ext1
    , 
 ext1.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-caveat-type'
    , 
 ext1.value =     create
    (
    'Coding'
    )
     as 
    coding
    , 
 coding.code =     '182817000'
    , 
 coding.system =     'http://snomed.info/sct'
    , 
 coding.display =     'Drug prescription (situation)'
    , 
 condition.extension     as 
    ext2
    , 
 ext2.url =     'http://fhir.ch/ig/ch-rad-order/StructureDefinition/ch-rad-order-qualifier-value'
    , 
 ext2.value =     value
    , 
 condition.category     as 
    category
    , 
 category.coding     as 
    coding
    , 
 coding.code =     'problem-list-item'
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/condition-category'
    , 
 coding.display =     'Problem List Item'
    , 
 condition.code     as 
    code
    , 
 code.coding     as 
    coding2
    , 
 coding2.code =     '373254001'
    , 
 coding2.system =     'http://snomed.info/sct'
    , 
 coding2.display =     'Substance with beta adrenergic receptor antagonist mechanism of action (substance)'
    , 
 condition.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
     "drugPrescription"
    ;

        }
     "valueString"
    ;

      }
     "betaBlocker"
    ;

    }


    group 
PreviousImagingStudyResults    (
    source
     grp
     : 
BackboneElement,     target
     bundle
     : 
Bundle,     target
     serviceRequest
     : 
ServiceRequest,     target
     patient
     : 
Patient    )
     {

  grp.item     as 
    item
     where 
(linkId.value = 'previousResults.imagingStudy')    
 ->     
 bundle.entry     as 
    e
    , 
 e.resource =     create
    (
    'ImagingStudy'
    )
     as 
    imagingStudy
    , 
 imagingStudy.id =     uuid
    (
    )
     as 
    uuid
    , 
 imagingStudy.status =     'available'
    , 
 imagingStudy.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
    , 
 e.fullUrl =     append
    (
    'urn:uuid:'
    , 
    uuid
    )
    , 
 serviceRequest.subject     as 
    subject
    , 
 subject.reference =     (
'urn:uuid:' + patient.id    )
    , 
 serviceRequest.supportingInfo     as 
    supportingInfo
    , 
 supportingInfo.reference =     (
'urn:uuid:' + uuid    )
     then
     {

    item.item     as 
    dictomitem
     where 
((linkId.value = 'previousResults.imagingStudy.StudyInstanceUid') and answer.exists())    
 ->     
 imagingStudy.identifier     as 
    uid
    , 
 uid.system =     'urn:dicom:uid'
    , 
 uid.use =     'official'
    , 
 uid.value =     (
'urn:oid:' + dictomitem.answer.value    )
     "uid"
    ;

    item.item     as 
    dictomitem
     where 
((linkId.value = 'previousResults.imagingStudy.acsn') and answer.exists())    
 ->     
 imagingStudy.identifier     as 
    acsn
    , 
 acsn.type     as 
    type
    , 
 type.coding     as 
    coding
    , 
 coding.system =     'http://terminology.hl7.org/CodeSystem/v2-0203'
    , 
 coding.code =     'ACSN'
    , 
 acsn.use =     'usual'
    , 
 acsn.value =     (
dictomitem.answer.value    )
     "acsn"
    ;

    item.item     as 
    dictomitem
     where 
((linkId.value = 'previousResults.imagingStudy.SeriesInstanceUid') and answer.exists())    
 ->     
imagingStudy.series     as 
    series
     then
     {

      dictomitem.answer     as 
    answer
     then
     {

        answer.value     : 
string     as 
    value
    
 ->     
series.uid =     value
     "uid"
    ;

        item.item     as 
    dictomitem
     where 
((linkId.value = 'previousResults.imagingStudy.SopInstanceUid') and answer.exists())    
 ->     
series.instance     as 
    instance
     then
     {

          dictomitem.answer     as 
    answer
     then
     {

            answer.value     : 
string     as 
    value
    
 ->     
instance.uid =     value
     "uid"
    ;

              }
    ;

            }
     "answer"
    ;

          }
     "series"
    ;

        }
     "imagingStudy"
    ;

      }
     "previousResult"
    ;

    }


  

Produced 06 Apr 2023