Line 14: | Line 14: | ||
!Resource | !Resource | ||
!Property | !Property | ||
!References | !References | ||
!Condition | !Condition | ||
Line 22: | Line 21: | ||
|Encounter | |Encounter | ||
|patient | |patient | ||
|Patient | |Patient | ||
| | | | ||
Line 30: | Line 28: | ||
|EpisodeOfCare | |EpisodeOfCare | ||
|patient | |patient | ||
|Patient | |Patient | ||
| | | | ||
Line 38: | Line 35: | ||
|Patient | |Patient | ||
|identifier.value | |identifier.value | ||
| | | | ||
|if PID:3.4 == "MRN" then set to PID:3.1 | |if PID:3.4 == "MRN" then set to PID:3.1 | ||
Line 46: | Line 42: | ||
|Patient | |Patient | ||
|identifier.system | |identifier.system | ||
| | | | ||
| | | | ||
Line 54: | Line 49: | ||
|Patient | |Patient | ||
|identifier.value | |identifier.value | ||
| | | | ||
|if PID:3.4 == "NHS" then set to PID.3.1 | |if PID:3.4 == "NHS" then set to PID.3.1 | ||
Line 62: | Line 56: | ||
|Patient | |Patient | ||
|name.family | |name.family | ||
| | | | ||
| | | | ||
Line 70: | Line 63: | ||
|Patient | |Patient | ||
|name.given | |name.given | ||
| | | | ||
| | | | ||
Line 78: | Line 70: | ||
|Patient | |Patient | ||
|name.middle | |name.middle | ||
| | | | ||
| | | | ||
Line 86: | Line 77: | ||
|Patient | |Patient | ||
|name.prefix | |name.prefix | ||
| | | | ||
| | | | ||
Line 94: | Line 84: | ||
|Patient | |Patient | ||
|birthDate | |birthDate | ||
| | | | ||
| | | | ||
Line 102: | Line 91: | ||
|Patient | |Patient | ||
|gender | |gender | ||
| | | | ||
| | | | ||
Line 110: | Line 98: | ||
|Patient | |Patient | ||
|address.line | |address.line | ||
| | | | ||
| | | | ||
Line 118: | Line 105: | ||
|Patient | |Patient | ||
|address.line | |address.line | ||
| | | | ||
| | | | ||
Line 126: | Line 112: | ||
|Patient | |Patient | ||
|address.city | |address.city | ||
| | | | ||
| | | | ||
Line 134: | Line 119: | ||
|Patient | |Patient | ||
|address.postalCode | |address.postalCode | ||
| | | | ||
| | | | ||
Line 142: | Line 126: | ||
|Patient | |Patient | ||
|address.country | |address.country | ||
| | | | ||
| | | | ||
Line 150: | Line 133: | ||
|Patient | |Patient | ||
|address.district | |address.district | ||
| | | | ||
| | | | ||
Line 158: | Line 140: | ||
|Patient | |Patient | ||
|telecom.value | |telecom.value | ||
| | | | ||
| | | | ||
Line 166: | Line 147: | ||
|Patient | |Patient | ||
|telecom.use | |telecom.use | ||
| | | | ||
|if PID:13.2 == 'PRS' then set to "mobile" | |if PID:13.2 == 'PRS' then set to "mobile" | ||
Line 175: | Line 155: | ||
|Patient | |Patient | ||
|telecom.value | |telecom.value | ||
| | | | ||
|if PID:13.2 == 'NET' then set to PID:13.4 | |if PID:13.2 == 'NET' then set to PID:13.4 | ||
Line 183: | Line 162: | ||
|Patient | |Patient | ||
|telecom.value | |telecom.value | ||
| | | | ||
| | | | ||
Line 191: | Line 169: | ||
|Patient | |Patient | ||
|telecom.value | |telecom.value | ||
| | | | ||
|if PID:14.2 == 'NET' then set to PID:14.4 | |if PID:14.2 == 'NET' then set to PID:14.4 | ||
Line 199: | Line 176: | ||
|Patient | |Patient | ||
|communication.language | |communication.language | ||
| | | | ||
| | | | ||
Line 207: | Line 183: | ||
|Patient | |Patient | ||
|communication.language | |communication.language | ||
| | | | ||
| | | | ||
Line 215: | Line 190: | ||
|Encounter | |Encounter | ||
|contained.Parameters.parameter.valueCodeableConcept.coding.code | |contained.Parameters.parameter.valueCodeableConcept.coding.code | ||
|Patient | |Patient | ||
| | | | ||
Line 222: | Line 196: | ||
|PID:22.1 | |PID:22.1 | ||
|Patient | |Patient | ||
|http://endeavourhealth.org/fhir/StructureDefinition/primarycare-ethnic-category-extension | |http://endeavourhealth.org/fhir/StructureDefinition/primarycare-ethnic-category-extension | ||
| | | | ||
Line 231: | Line 204: | ||
|Patient | |Patient | ||
|deceased | |deceased | ||
| | | | ||
| | | | ||
Line 241: | Line 213: | ||
!Resource | !Resource | ||
!Property | !Property | ||
!References | !References | ||
!Condition | !Condition | ||
Line 249: | Line 220: | ||
|Organization | |Organization | ||
|identifier.name | |identifier.name | ||
| | | | ||
| | | | ||
Line 257: | Line 227: | ||
|Organization | |Organization | ||
|identifier.value | |identifier.value | ||
| | | | ||
| | | | ||
Line 265: | Line 234: | ||
|Patient | |Patient | ||
|careProvider | |careProvider | ||
|Organization | |Organization | ||
| | | | ||
Line 273: | Line 241: | ||
|Patient | |Patient | ||
|careProvider | |careProvider | ||
|Practitioner | |Practitioner | ||
| | | | ||
Line 283: | Line 250: | ||
!Resource | !Resource | ||
!Property | !Property | ||
!References | !References | ||
!Condition | !Condition | ||
Line 291: | Line 257: | ||
|Encounter | |Encounter | ||
|class | |class | ||
| | | | ||
| | | | ||
Line 299: | Line 264: | ||
|Encounter | |Encounter | ||
|location (current) | |location (current) | ||
|Location | |Location | ||
| | | | ||
Line 307: | Line 271: | ||
|Location | |Location | ||
|identifier | |identifier | ||
| | | | ||
| | | | ||
Line 315: | Line 278: | ||
|Location | |Location | ||
|name | |name | ||
| | | | ||
| | | | ||
Line 323: | Line 285: | ||
|Location | |Location | ||
|description | |description | ||
| | | | ||
| | | | ||
Line 331: | Line 292: | ||
|Encounter | |Encounter | ||
|contained.Parameters.parameter.name | |contained.Parameters.parameter.name | ||
| | | | ||
|if PV1:4 is not empty then set to "DM_methodOfAdmssion" | |if PV1:4 is not empty then set to "DM_methodOfAdmssion" | ||
Line 339: | Line 299: | ||
|Encounter | |Encounter | ||
|contained.Parameters.parameter.valueCodeableConcept.coding.code | |contained.Parameters.parameter.valueCodeableConcept.coding.code | ||
| | | | ||
| | | | ||
Line 347: | Line 306: | ||
|Encounter | |Encounter | ||
|location (prior) | |location (prior) | ||
|Location | |Location | ||
| | | | ||
Line 355: | Line 313: | ||
|Location | |Location | ||
|identifier | |identifier | ||
| | | | ||
| | | | ||
Line 363: | Line 320: | ||
|Encounter | |Encounter | ||
|participant (attending clinician) | |participant (attending clinician) | ||
|Practitioner | |Practitioner | ||
| | | | ||
Line 371: | Line 327: | ||
|Practitioner | |Practitioner | ||
|identifier.value | |identifier.value | ||
| | | | ||
| | | | ||
Line 379: | Line 334: | ||
|Practitioner | |Practitioner | ||
|identifier.system | |identifier.system | ||
| | | | ||
|if PV1:7 is not empty then set to ? (need to find a type system) | |if PV1:7 is not empty then set to ? (need to find a type system) | ||
Line 387: | Line 341: | ||
|Practitioner | |Practitioner | ||
|name.family | |name.family | ||
| | | | ||
| | | | ||
Line 395: | Line 348: | ||
|Practitioner | |Practitioner | ||
|name.given | |name.given | ||
| | | | ||
| | | | ||
Line 403: | Line 355: | ||
|Practitioner | |Practitioner | ||
|name.given | |name.given | ||
| | | | ||
| | | | ||
Line 411: | Line 362: | ||
|Practitioner | |Practitioner | ||
|name.prefix | |name.prefix | ||
| | | | ||
| | | | ||
Line 419: | Line 369: | ||
|Encounter | |Encounter | ||
|participant (consulting clinician) | |participant (consulting clinician) | ||
|Practitioner | |Practitioner | ||
| | | | ||
Line 427: | Line 376: | ||
|Practitioner | |Practitioner | ||
|identifier.value | |identifier.value | ||
| | | | ||
| | | | ||
Line 435: | Line 383: | ||
|Practitioner | |Practitioner | ||
|name.family | |name.family | ||
| | | | ||
| | | | ||
Line 443: | Line 390: | ||
|Practitioner | |Practitioner | ||
|name.given | |name.given | ||
| | | | ||
| | | | ||
Line 451: | Line 397: | ||
|Practitioner | |Practitioner | ||
|name.given | |name.given | ||
| | | | ||
| | | | ||
Line 459: | Line 404: | ||
|Practitioner | |Practitioner | ||
|name.prefix | |name.prefix | ||
| | | | ||
| | | | ||
Line 467: | Line 411: | ||
|EpisodeOfCare | |EpisodeOfCare | ||
|careManager | |careManager | ||
| | | | ||
| | | | ||
Line 475: | Line 418: | ||
|Encounter | |Encounter | ||
|participant (referring clinician) | |participant (referring clinician) | ||
|Practitioner | |Practitioner | ||
| | | | ||
Line 483: | Line 425: | ||
|Practitioner | |Practitioner | ||
|identifier.value | |identifier.value | ||
| | | | ||
| | | | ||
Line 491: | Line 432: | ||
|Practitioner | |Practitioner | ||
|name.family | |name.family | ||
| | | | ||
| | | | ||
Line 499: | Line 439: | ||
|Practitioner | |Practitioner | ||
|name.given | |name.given | ||
| | | | ||
| | | | ||
Line 507: | Line 446: | ||
|Practitioner | |Practitioner | ||
|name.given | |name.given | ||
| | | | ||
| | | | ||
Line 515: | Line 453: | ||
|Practitioner | |Practitioner | ||
|name.prefix | |name.prefix | ||
| | | | ||
| | | | ||
Line 523: | Line 460: | ||
|Encounter | |Encounter | ||
|contained.Parameters.parameter.valueCodeableConcept.coding.code | |contained.Parameters.parameter.valueCodeableConcept.coding.code | ||
| | | | ||
| | | | ||
Line 531: | Line 467: | ||
|Encounter | |Encounter | ||
|type | |type | ||
| | | | ||
| | | | ||
Line 539: | Line 474: | ||
|Encounter | |Encounter | ||
|episodeOfCare | |episodeOfCare | ||
|EpisodeOfCare | |EpisodeOfCare | ||
| | | | ||
Line 547: | Line 481: | ||
|Encounter | |Encounter | ||
|contained.Parameters.parameter.valueCodeableConcept.coding.code | |contained.Parameters.parameter.valueCodeableConcept.coding.code | ||
| | | | ||
| | | | ||
Line 555: | Line 488: | ||
|Encounter | |Encounter | ||
|contained.Parameters.parameter.valueCodeableConcept.coding.code | |contained.Parameters.parameter.valueCodeableConcept.coding.code | ||
| | | | ||
| | | | ||
Line 563: | Line 495: | ||
|Encounter | |Encounter | ||
|period.start | |period.start | ||
| | | | ||
| | | | ||
Line 571: | Line 502: | ||
|EpisodeOfCare | |EpisodeOfCare | ||
|startDt | |startDt | ||
| | | | ||
| | | | ||
Line 579: | Line 509: | ||
|Encounter | |Encounter | ||
|period.end | |period.end | ||
| | | | ||
| | | | ||
Line 587: | Line 516: | ||
|EpisodeOfCare | |EpisodeOfCare | ||
|endDt | |endDt | ||
| | | | ||
| | | | ||
Line 597: | Line 525: | ||
!Resource | !Resource | ||
!Property | !Property | ||
!References | !References | ||
!Condition | !Condition | ||
Line 605: | Line 532: | ||
|EpisodeOfCare | |EpisodeOfCare | ||
|managingOrganization | |managingOrganization | ||
|Organization | |Organization | ||
| | | | ||
Line 613: | Line 539: | ||
|Organization | |Organization | ||
|identifier.name | |identifier.name | ||
| | | | ||
| | | | ||
Line 621: | Line 546: | ||
|Organization | |Organization | ||
|identifier.value | |identifier.value | ||
| | | | ||
| | | |
Revision as of 15:29, 23 June 2021
Introduction
This page describes the mapping between the HL7v2 segments that DDS can ingest and the FHIR Resources (TODO link to profiles) that DDS uses to represent them internally.
There are two kinds ways that values are written into the internal FHIR store when mapping from an inbound HL7v2 message -
- Dynamic values - here the raw value from the inbound HL7v2 message is copied into a property on a FHIR resource
- Fixed values - here the value that is inserted into a FHIR resource is fixed and is not copied from the source message. Instead the value that is inserted is likely to be contingent on the presence and/or value of a field from the source message
Dynamic Values
PID - Patient Identification
Field | Component | Resource | Property | References | Condition |
---|---|---|---|---|---|
PID:3 | PID:3.1 | Encounter | patient | Patient | |
PID:3 | PID:3.1 | EpisodeOfCare | patient | Patient | |
PID:3 | PID:3.1 | Patient | identifier.value | if PID:3.4 == "MRN" then set to PID:3.1 | |
PID:3 | PID:3.4 | Patient | identifier.system | ||
PID:3 | PID:3.1 | Patient | identifier.value | if PID:3.4 == "NHS" then set to PID.3.1 | |
PID:5 | PID:5.1 | Patient | name.family | ||
PID:5 | PID:5.2 | Patient | name.given | ||
PID:5 | PID:5.3 | Patient | name.middle | ||
PID:5 | PID:5.5 | Patient | name.prefix | ||
PID:7 | PID:7.1 | Patient | birthDate | ||
PID:8 | PID:8.1 | Patient | gender | ||
PID:11 | PID:11.1 | Patient | address.line | ||
PID:11 | PID:11.2 | Patient | address.line | ||
PID:11 | PID:11.3 | Patient | address.city | ||
PID:11 | PID:11.5 | Patient | address.postalCode | ||
PID:11 | PID:11.6 | Patient | address.country | ||
PID:11 | PID:11.9 | Patient | address.district | ||
PID:13 | PID:13.1 | Patient | telecom.value | ||
PID:13 | PID:13.2 | Patient | telecom.use | if PID:13.2 == 'PRS' then set to "mobile"
if PID:13.2 == 'PRN' then set to "home" | |
PID:13 | PID:13.4 | Patient | telecom.value | if PID:13.2 == 'NET' then set to PID:13.4 | |
PID:14 | PID:14.1 | Patient | telecom.value | ||
PID:14 | PID:14.4 | Patient | telecom.value | if PID:14.2 == 'NET' then set to PID:14.4 | |
PID:15 | PID:15.1 | Patient | communication.language | ||
PID:15 | PID:15.4 | Patient | communication.language | ||
PID:18 | PID:18.1 | Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.code | Patient | |
PID:22 | PID:22.1 | Patient | http://endeavourhealth.org/fhir/StructureDefinition/primarycare-ethnic-category-extension | ||
PID:29 | PID:29.1 | Patient | deceased |
PD1 - Patient Additional Demographic
Field | Component | Resource | Property | References | Condition |
---|---|---|---|---|---|
PD1:3 | PD1:3.1 | Organization | identifier.name | ||
PD1:3 | PD1:3.3 | Organization | identifier.value | ||
PD1:3 | PD1:3.3 | Patient | careProvider | Organization | |
PD1:4 | PD1:4.1 | Patient | careProvider | Practitioner |
PV1 - Patient Visit
Field | Component | Resource | Property | References | Condition |
---|---|---|---|---|---|
PV1:2 | PV1:2.1 | Encounter | class | ||
PV1:3 | PV1:3.9 | Encounter | location (current) | Location | |
PV1:3 | PV1:3.9 | Location | identifier | ||
PV1:3 | PV1:3.9 | Location | name | ||
PV1:3 | PV1:3.9 | Location | description | ||
PV1:4 | PV1:4.1 | Encounter | contained.Parameters.parameter.name | if PV1:4 is not empty then set to "DM_methodOfAdmssion" | |
PV1:4 | PV1:4.1 | Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.code | ||
PV1:6 | PV1:6.9 | Encounter | location (prior) | Location | |
PV1:6 | PV1:6.9 | Location | identifier | ||
PV1:7 | PV1:7.1 | Encounter | participant (attending clinician) | Practitioner | |
PV1:7 | PV1:7.1 | Practitioner | identifier.value | ||
PV1:7 | Practitioner | identifier.system | if PV1:7 is not empty then set to ? (need to find a type system) | ||
PV1:7 | PV1:7.2 | Practitioner | name.family | ||
PV1:7 | PV1:7.3 | Practitioner | name.given | ||
PV1:7 | PV1:7.4 | Practitioner | name.given | ||
PV1:7 | PV1:7.6 | Practitioner | name.prefix | ||
PV1:8 | PV1:8.1 | Encounter | participant (consulting clinician) | Practitioner | |
PV1:8 | PV1:8.1 | Practitioner | identifier.value | ||
PV1:8 | PV1:8.2 | Practitioner | name.family | ||
PV1:8 | PV1:8.3 | Practitioner | name.given | ||
PV1:8 | PV1:8.4 | Practitioner | name.given | ||
PV1:8 | PV1:8.6 | Practitioner | name.prefix | ||
PV1:9 | PV1:9.1 | EpisodeOfCare | careManager | ||
PV1:9 | PV1:9.1 | Encounter | participant (referring clinician) | Practitioner | |
PV1:9 | PV1:9.1 | Practitioner | identifier.value | ||
PV1:9 | PV1:9.2 | Practitioner | name.family | ||
PV1:9 | PV1:9.3 | Practitioner | name.given | ||
PV1:9 | PV1:9.4 | Practitioner | name.given | ||
PV1:9 | PV1:9.6 | Practitioner | name.prefix | ||
PV1:14 | PV1:14.1 | Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.code | ||
PV1:18 | PV1:18.1 | Encounter | type | ||
PV1:19 | PV1:19.1 | Encounter | episodeOfCare | EpisodeOfCare | |
PV1:36 | PV1:36.1 | Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.code | ||
PV1:37 | PV1:37.1 | Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.code | ||
PV1:44 | PV1:44.1 | Encounter | period.start | ||
PV1:44 | PV1:44.1 | EpisodeOfCare | startDt | ||
PV1:45 | PV1:45.1 | Encounter | period.end | ||
PV1:45 | PV1:45.1 | EpisodeOfCare | endDt |
MSH - Message Header
Field | Component | Resource | Property | References | Condition |
---|---|---|---|---|---|
MSH:3 | MSH:3.1 | EpisodeOfCare | managingOrganization | Organization | |
MSH:3 | MSH:3.1 | Organization | identifier.name | ||
MSH:3 | MSH:3.3 | Organization | identifier.value |
Fixed Values
PID - Patient Identification
Resource | Property | Value |
---|---|---|
Patient | identifier.system | if PID:3.4 == "NHS" then set to "https://fhir.hl7.org.uk/Id/nhs-number" |
Patient | address.use | if PID:11.7 == 'TEMPORARY' then set to 'temp' else set to 'home' |
Patient | telecom.use | set to "work" |
Patient | communication.preferred | if PID:15.1 is not empty then set to "true" |
Patient | communication.preferred | if PID:15.4 is not empty then set to "false" |
Encounter | contained.Parameters.parameter.name | if PID:18 is not empty then set to "CM_PatientFIN" |
Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.system | if PID:18 is not empty then set to ? (need a code system here) |
PD1 - Patient Additional Demographic
Resource | Property | Value |
---|---|---|
Organization | identifier.system | if PD1:3.3 is not empty then set to "http://fhir.nhs.net/Id/ods-organization-code" |
Organization | identifier.type | if PD1:3.3 is not empty then set to "official" |
Organization | type.system | if PD1:3.3 is not empty then set to "http://endeavourhealth.org/fhir/ValueSet/primarycare-organization-type" |
Organization | type.code | if PD1:3.3 is not empty then set to "PR" |
Organization | type.display | if PD1:3.3 is not empty then set to "GP Practices in England and Wales" |
PV1 - Patient Visit
Resource | Property | Value |
---|---|---|
Location | status | if PV1:3.9 is not empty then set to "ACTIVE" |
Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.system | if PV1:4 is not empty then set to ? (need a code system here) |
Location | status | if PV1:6.9 is not empty then set to "ACTIVE" |
Practitioner | identifier.system | if PV1:8 is not empty then set to "http://endeavourhealth.org/fhir/Identifier/gmp-ppd-code" |
Practitioner | identifier.system | if PV1:9 is not empty then set to "http://endeavourhealth.org/fhir/Identifier/gmp-ppd-code" |
Encounter | contained.Parameters.parameter.name | if PV1:14 is not empty then set to "DM_sourceOfAdmission" |
Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.system | if PV1:14 is not empty then set to ? (need a code system here) |
Encounter | contained.Parameters.parameter.name | if PV1:36 is not empty then set to "DM_dischargeMethod" |
Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.system | if PV1:36 is not empty then set to ? (need a code system here) |
Encounter | contained.Parameters.parameter.name | if PV1:37 is not empty then set to "DM_destination" |
Encounter | contained.Parameters.parameter.valueCodeableConcept.coding.system | if PV1:37 is not empty then set to ? (need a code system here) |
MSH - Message Header
Resource | Property | Value |
---|---|---|
Organization | identifier.system | if MSH:3.3 is not empty then set to "http://fhir.nhs.net/Id/ods-organization-code" |
Organization | identifier.system | if MSH:3.3 is not empty then set to "official" |