Instance: MessageADT_A01toBundle

InstanceOf: ConceptMap

Title: "Message ADT_A01 to Bundle Map"

* description = "This ConceptMap represents the mapping from the HL7 V2 ADT_A01 Message to the FHIR Message Bundle."

* id = "message-adt-a01-to-bundle"

* url = "http://hl7.org/fhir/v2-tofhir/message-adt-a01-to-bundle"

* version = "1.0"

* name = " HL7 Message FHIRR4 _ ADT_A01 _Map "

* title = “HL7 Message – FHIR R4: ADT_A01

* status = # draft active

* experimental = true

* date = "2020-03-16"

* publisher = "HL7 International, Inc"

* contact.telecom.system = #email

* contact.telecom.value = "v2-to-fhir@lists.hl7.org"

* copyright = "Copyright (c) 2020, HL7 International, Inc., All Rights Reserved."

* sourceUri = "ADT_A01"

* targetUri = "Bundle"

 

* group.element [0].extension- sortOrder = “1”

* group.element [0].code = #ADT_A01.MSH

* group.element [0].extension-syntax = “MSH”

* group.element [0].display = "Message Header"

* group.element [0].extension- cardinalityMinimum = “1”

* group.element [0].extension- cardinalityMaximum = “1”

* group element[2]. noMap = #false

* group.element [0].target [0] . relationship = #equivalent

* group.element [0].target [0] .code = # Bundle

* group.element [0].target [0] .display = " Bundle "

* group.element [0] .target [0] . dependsOn [0] .property = # segment-map

* group.element [0].target [0] . dependsOn [0] .value = “MSH[ Bundle ]”

* group.element[ 0 ].code = #ADT_A01.MSH

* group.element[ 0 ].display = "Message Header"

* group.element[ 0 0 ].target [1] . equivalence relationship = #equivalent

* group.element[ 0 0 ].target [1] .code = #MessageHeader[1]

* group.element[ 0 0 ].target [1] .display = "MessageHeader[1]"

* group.element [ 0 ].target [1] .comment = “ Processing of the MSH segment results in the creation of a new MessageHeader resource

* group.element [ 0 ].target [1] . dependsOn [0] .property = #segment-map

* group.element [ 0 ].target [1] . dependsOn [0] .value = “MSH[General]”

* group.element[ 1 ].code = #ADT_A01.MSH

* group.element[ 1 ].display = "Message Header"

* group.element[ 1 ].target.equivalence relationship   = #equivalent

* group.element [0].target[ 2 ]. relationship = #equivalent

* group.element [ 0 1 ].target [2] .code = #Provenance[ 1 ]

* group.element [ 0 1 ].target [2] .display = "Provenance[ 1 ]"

* group.element [ 0 ]. target [2] . dependsOn [0] .property = #segment-map

* group.element [ 0 ].target [2] . de pendsOn [0] .value = “MSH[Provenance – Orginator ]

* group.element [ 0 ].target [2] . dependsOn [1] .property = #references

* group.element [ 0 ].target [2] . dependsOn [1] .value = “ Provenance.target =Bundle”

* group.element [ 0 ].target [2] . dependsOn [2] .property = #references

* group.element [ 0 ].target [2] . dependsOn [2] .value = Provenance.target = MessageHeader [MSH]

* group.element [ 2 ] .code = #ADT_A01.MSH

* group.element [ 2 ] .display = "Message Header"

* group.element [ 2 ] [ 0 ] .target [3] . equivalence relationship = #equivalent

* group.element [ 2 ] [ 0 ] .target [3] .code = #Provenance [ 2 ] [ 2 ]

* group.element [ 2 ] [ 0 ] .target [3] .display = "Provenance [ 2 ] [ 2 ] "

* group.element [ 0 ].target [3] . dependsOn [0] .property = #segment-map

* group.element [ 0 ].target [3] . dependsOn [0] .value = “MSH[Provenance – Translator ]

* group.element [ 0 ].target [3] . dependsOn [1] .property = #references

* group.element [ 0 ].target [3] . dependsOn [1] .value = “ Provenance.target =Bundle”

* group.element [ 0 ].target [3] . dependsOn [2] .property = #references

* group.element [ 0 ].target [3] . dependsOn [2] .value = Provenance.target = MessageHeader [MSH]

 

* group.element [ 1 ].extension- sortOrder = “2”

* group.element [ 1 3 ].code = #ADT_A01.SFT

* group.element [ 1 3 ].display = "Software Segment"

* group.element [ 1 ].extension- cardinalityMinimum = “ 0

* group.element [ 1 ].extension- cardinalityMaximum = “ - 1”

* group element[ 1 ]. noMap = #false

* group.element [ 1 3 ]. target. equivalence relationship = #equivalent

* group.element [ 1 3 ]. target.code = # MessageHeader [ 1 ]

* group.element [ 1 3 ]. target.display = " MessageHeader [ 1 ]"

* group.elemnet [1]. target.comment = Incorporate SFT content for each of the SFT instances into the MessageHeader created from the MSH segment.”

* group.element [ 1 ]. target.dependsOn.property = #segment-map

* group.element [ 1 ]. target.dependsOn.value = “SFT”

 

* group.element [ 2 ].extension- sortOrder = “3”

*   group.element [ 2 ].code = #ADT_A01.UAC

*   group.element [ 2 ].display = " User Authentication Credential "

* group.element [ 2 ].extension- cardinalityMinimum = “ 0

* group.element [ 2 ].extension- cardinalityMaximum = “1”

* group element[2]. noMap = #true

 

* group.element [ 3 ].extension- sortOrder = “4”

*   group.element [ 3 ].code = #ADT_A01.EVN

*   group.element [ 3 ].display = " Event "

* group.element [ 3 ].extension- cardinalityMinimum = “ 1

* group.element [ 3 ].extension- cardinalityMaximum = “1”

* group element[ 3 ]. noMap = # false

*   group.element [ 3 ].target[ 0 ]. relationship   = #equivalent

*   group.element [ 3 ].target[ 0 ].code = #Provenance[ 3 ]

*   group.element [ 3 ].target[ 0 ].display = "Provenance[ 3 ]"

* group.element [ 3 ].target[ 0 ]. dependsOn [0].property = #segment-map

* group.element [ 3 ].target[ 0 ]. dependsOn [0].value = “EVN”

* group.element [ 3 ].target[ 0 ]. dependsOn [1].property = #references

* group.element [ 3 ].target[ 0 ]. dependsOn [1].value = “ Provenance.target =Bundle”

* group.element [ 3 ].target[ 0 ]. dependsOn [2].property = #references

* group.element [ 3 ].target[ 0 ]. dependsOn [2].value = Provenance.target = MessageHeader [MSH]

 

* group.element [4].extension- sortOrder = “5”

* group.element [ 4 ].code = #ADT_A01.PID

* group.element [ 4 ].display = "Patient Identification"

* group.element [ 4 ].extension- cardinalityMinimum = “1”

* group.element [ 4 ].extension- cardinalityMaximum = “1”

* group element[ 4 ]. noMap = #false

* group.element [ 4 ]. target. equivalence relationship = #equivalent

* group.element [ 4 ]. target.code = #Patient[ 1 ]

* group.element [ 4 ]. target.display = "Patient[ 1 ]"

* group.element [4]. target.comment = “ Processing of the PID segment results in the creation of a new Patient resource”

* group.element [4].target[0]. dependsOn [0].property = #segment-map

* group.element [4].target[0]. dependsOn [0].value = “PID”

 

 

* group.element [ 5 ].extension- sortOrder = “ 6

* group.element [ 5 ].code = #ADT_A01.PD1

* group.element [ 5 ].display = "Additional Demographics"

* group.element [ 5 ].extension- cardinalityMinimum = “ 0

* group.element [ 5 ].extension- cardinalityMaximum = “1”

* group element[ 5 ]. noMap = #false

* group.element [ 5 ].target [0] . equivalence relationship = #equivalent

* group.element [ 5 ].target [0] .code = #Patient[ 1 ]

* group.element [ 5 ].target [0] .display = "Patient[ 1 ]"

* group.element [ 5 ].target [0] .comment = “ Incorporate PD1 content into the Patient created from the PID segment.

* group.element [ 5 ].target[0]. dependsOn [0].property = #segment-map

* group.element [ 5 ].target[0]. dependsOn [0].value = “PD1”

 

* group.element [ 6 ].extension- sortOrder = “ 7

* group.element [ 6 ].code = #ADT_A01 : follow : PID.ARV

* group.element [ 6 ].display = "Access Restrictions"

* group.element [ 6 ].extension- cardinalityMinimum = “ 0

* group.element [ 6 ].extension- cardinalityMaximum = “ - 1”

* group element[ 6 ]. noMap = #false

* group.element [ 6 ].target [0] . equivalence relationship = #equivalent

* group.element [ 6 ].target [ 0] .code = #Patient[ 1 ]

* group.element [ 6 ].target [0] .display = "Patient[ 1 ]"

* group.element [6 ].target [0] .comment = “ FHIR does not yet support field level security tags. The ARV, when located with the PID/PD1 in the v2 message, is meant to only apply to the patient. However, technically it could point to other places in the messageas as well. That is considered out of scope as.

* group.element [ 6 ].target[0]. dependsOn [0].property = #segment-map

* group.element [ 6 ].target[0]. dependsOn [0].value = “ ARV

* group.element [ 6 ].target[0]. dependsOn [1 ].property = # references

* group.element [ 6 ].target[0]. dependsOn [ 1 ].value = “ Resource=Patient[1]

* group.element [ 6 ].target [0] . dependsOn [ 2 0 ].property = # antlr "value"

* group.element [ 6 ].target [0] . dependsOn [ 2 0 ].value = " ""# IF ARV - 1 IN ("PID", "PD1") AND ARV - 3 NOT VALUED \ " ""

 

* group.element [ 7 ].extension- sortOrder = “ 8

* group.element [ 7 ].code = #ADT_A01 : follow : PID.ROL

* group.element [ 7 ].display = "Role"

* group.element [ 7 ].extension- cardinalityMinimum = “ 0

* group.element [ 7 ].extension- cardinalityMaximum = “ - 1”

* group element[ 7 ]. noMap = #false

* group.element [ 7 ].target [0] . equivalence relationship = #equivalent

* group.element [ 7 ].target [0] .code = #Patient[ 1 ]. generalPractitioner

* group.element [ 7 ].target [0] .display = "Patient[ 1 ]. generalPractitioner "

* group.element [ 7 ].target [0] . dependsOn [ 0 ].property = #segment-map "value"

* group.element [7].target [0] . dependsOn [0]. value = ROL[PID/PD1-PractitionerRole]

* group.element [7].target [0] . dependsOn [ 1 ].property = # antlr

* group.element [7].target [0] . dependsOn [ 1 ]. value = IF ROL-3.1 EQUALS "PP" AND ROL-3.3 EQUALS "HL70443"\"

* group.element [7].target [0] . dependsOn [ 2 ].property = # FHIRpath

* group.element [ 7 ].target [0] . dependsOn [ 2 0 ].value = " ""( ( element(" 3.1 ") = "PP")and(element(" 3.3 ") = "HL70443") # IF ROL - 3.1 EQUALS "PP" AND ROL - 3.3 EQUALS "HL70443"\"""

* group.element [7].target [1] . relationship = #equivalent

* group.element [7].target [1] .code = # RelatedPerson [1]

* group.element [7].target [1] .display = " RelatedPerson [1] "

* group.element [7].target [1] . dependsOn [0].property = #segment-map

* group.element [7].target [1] . dependsOn [0]. value = “ROL[PID/PD1- RelatedPerson ]

* group.element [7].target [1] . dependsOn [ 1 ].property = # antlr

* group.element [7].target [1] . dependsOn [ 1 ]. value = IF ROL-3.1 NOT EQUALS "PP" OR ROL-3.3 NOT EQUALS "HL70443" "

* group.element [7].target [1] . dependsOn [ 2 ].property = # FHIRpath

* group.element [7].target [1] . dependsOn [ 2 ].value =   " (element("3.1")!="PP")or(element("3.3")!="HL70443")  

* group.element [7].target [1] . dependsOn [ 3 ].property = #narrative

* group.element [7].target [1] . dependsOn [ 3 ].value =   While most likely all other HL70443 values go to RelatedPerson , the implementation needs to determine whether that is fully accurate.

* group.element [7].target [1] . dependsOn [ 4 ].property = #references

* group.element [7].target [1] . dependsOn [ 4 ].value =   RelatedPerson [1]. patient.reference =Patient[1].id”