Mappings for the athena-observation-profile resource profile.
AthenaObservation |
Observation | FHIRR4_OBSERVATIONVIEW |
id | %RESOURCEID% |
meta | |
versionId | %RESOURCEID% |
lastUpdated | %WHENUPDATED% |
profile (US Core Observation Lab Profile) | IfEqual(MapLabCoding(r.HG_GROUPID.getBigDecimal(rs),r.HDID.getBigDecimal(rs), "OBSHIERGRPSTOCATEGORY") != null ? MapLabCoding(r.HG_GROUPID.getBigDecimal(rs),r.HDID.getBigDecimal(rs), "OBSHIERGRPSTOCATEGORY").getCode() : null,"laboratory").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab") |
profile (US Core Pediatric BMI For Age Profile) | IfEqual(%HDID%,"22346").Then("http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age") |
profile (US Core Pulse Oximetry Profile) | IfEqual(getParentHdid(%HDID%) != null ? getParentHdid(%HDID%) : %HDID%,"2173").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry") |
profile (US Core Pediatric Head Occipital-frontal Circumference Percentile Profile) | IfEqual(%HDID%,"5346").Then("http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile") |
profile (US Core Pediatric Weight For Height Profile) | IfEqual(%HDID%,"29139").Then("http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height") |
profile (US Core Smokingstatus Profile) | IfEqual(isSmokingStatusProfile(r.HDID.getBigDecimal(rs), "72166-2"),"true").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus") |
profile (US Core Blood Pressure Profile) | IfEqual(getParentHdid(%HDID%),"85354-9").Then("http://hl7.org/fhir/StructureDefinition/bp") |
security | |
security (SENSITIVECHART) | CheckSensitive(%SENSITIVECHART%) |
security (CONFABBR) | |
system | getSiteCodeSystem("ConfidentialDocument") |
code | %CONFABBR% |
tag | MakeChangeTagList(%CHANGE%) |
identifier | MakeIdentifier("U",getSiteSystem("ObservationId"),%RESOURCEID%) |
status | MapCode(%STATE%,"OBSSTATUS") |
category | |
category (FHIRCATEGORY) | |
coding | MakeObservationCategoryList(%HDID%,"FSVIEWTOCATEGORY") |
category (PANELCATEGORY) | |
coding | MakeCodingWithSystem(%LOP_CODE%,getMapLabOrderPanelSystem(%LOP_CODETYPE%,"OIDTOURL"), %LOP_NAME%) |
category (HG_GROUPID) | |
coding | MakeCodingWithSystem(%HG_GROUPID%, getSiteCodeSystem("HIERGRPS"), %HG_GROUPNAME%) |
text | %HG_GROUPNAME%,%HDID% |
code | |
coding (TOCODE) | MakeObservationCodingList(%HDID%, %OBSHEAD_DESCRIPTION%) |
coding (HDID) | MakeRecentCoding(%HDID%,getSiteCodeSystem("HDID"),%NAME%) |
coding (C1_CODE) | MakeCodingList(%C1_CODE%, %C1_CODING_SYSTEM_NAME%,%C1_DESCRIPTION%, "OIDTOURL") |
coding (C2_CODE) | MakeCodingList(%C2_CODE%, %C2_CODING_SYSTEM_NAME%,%C2_DESCRIPTION%, "OIDTOURL") |
text | %OBSHEAD_DESCRIPTION% |
subject | MakeReference("PERSON",%PID%,"Patient") |
encounter | MakeReference("DOCUMENT",%SDID%,"Encounter") |
effective[x] | %OBSDATE% |
issued | %WHENUPDATED% |
performer (PractitionerPerformer) | MakeReference("USR",%CREATOR%,%USRID%,"Practitioner") |
performer (OrganizationPerformer) | MakeLabReference(%SDID%, %C1_CODE%, %C2_CODE%) |
value[x] | IfEqual( %OBSTYPE%,"N").Then(Context::MakeQuantity,%OBSVALUE%,%UNIT%,%HDID%) |
IfNotEqual(%OBSTYPE%,"N").Then(Context::MakeObservationValue,%HDID%, %OBSVALUE%) |
dataAbsentReason | MakeObservationConcept("unknown", "http://terminology.hl7.org/CodeSystem/data-absent-reason", "Unknown", %HDID%) |
interpretation | MapConcept(%ABNORMAL%,"OBSABNORMAL") |
note | makeAnnotation(%DESCRIPTION%) |
referenceRange | |
text | %RANGE% |
component | |
code | |
coding (TOCODE) | MakeObservationComponentCodingList(%HDID%, %OBSHEAD_DESCRIPTION%) |
coding (HDID) | MakeComponentCoding(%HDID%,getSiteCodeSystem("HDID"),%NAME%) |
value[x] | IfEqual( %OBSTYPE%,"N").Then(MakeComponentQuantity(%OBSVALUE%,%UNIT%, %HDID%,%SDID%,%PID%,%OBSDATE%)) |
dataAbsentReason | MakeObservationComponentDataAbsentConcept(%OBSVALUE%,%UNIT%, %HDID%,%SDID%,%PID%,%OBSDATE%) |
AthenaObservation |
Observation | FHIRR4_OBSERVATIONVIEW |
id | %RESOURCEID% |
meta | |
versionId | %RESOURCEID% |
lastUpdated | %WHENUPDATED% |
profile (US Core Observation Lab Profile) | IfEqual(MapLabCoding(r.HG_GROUPID.getBigDecimal(rs),r.HDID.getBigDecimal(rs), "OBSHIERGRPSTOCATEGORY") != null ? MapLabCoding(r.HG_GROUPID.getBigDecimal(rs),r.HDID.getBigDecimal(rs), "OBSHIERGRPSTOCATEGORY").getCode() : null,"laboratory").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab") |
profile (US Core Pediatric BMI For Age Profile) | IfEqual(%HDID%,"22346").Then("http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age") |
profile (US Core Pulse Oximetry Profile) | IfEqual(getParentHdid(%HDID%) != null ? getParentHdid(%HDID%) : %HDID%,"2173").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry") |
profile (US Core Pediatric Head Occipital-frontal Circumference Percentile Profile) | IfEqual(%HDID%,"5346").Then("http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile") |
profile (US Core Pediatric Weight For Height Profile) | IfEqual(%HDID%,"29139").Then("http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height") |
profile (US Core Smokingstatus Profile) | IfEqual(isSmokingStatusProfile(r.HDID.getBigDecimal(rs), "72166-2"),"true").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus") |
profile (US Core Blood Pressure Profile) | IfEqual(getParentHdid(%HDID%),"85354-9").Then("http://hl7.org/fhir/StructureDefinition/bp") |
security | |
security (SENSITIVECHART) | CheckSensitive(%SENSITIVECHART%) |
security (CONFABBR) | |
system | getSiteCodeSystem("ConfidentialDocument") |
code | %CONFABBR% |
tag | MakeChangeTagList(%CHANGE%) |
identifier | MakeIdentifier("U",getSiteSystem("ObservationId"),%RESOURCEID%) |
status | MapCode(%STATE%,"OBSSTATUS") |
category | |
category (FHIRCATEGORY) | |
coding | MakeObservationCategoryList(%HDID%,"FSVIEWTOCATEGORY") |
category (PANELCATEGORY) | |
coding | MakeCodingWithSystem(%LOP_CODE%,getMapLabOrderPanelSystem(%LOP_CODETYPE%,"OIDTOURL"), %LOP_NAME%) |
category (HG_GROUPID) | |
coding | MakeCodingWithSystem(%HG_GROUPID%, getSiteCodeSystem("HIERGRPS"), %HG_GROUPNAME%) |
text | %HG_GROUPNAME%,%HDID% |
code | |
coding (TOCODE) | MakeObservationCodingList(%HDID%, %OBSHEAD_DESCRIPTION%) |
coding (HDID) | MakeRecentCoding(%HDID%,getSiteCodeSystem("HDID"),%NAME%) |
coding (C1_CODE) | MakeCodingList(%C1_CODE%, %C1_CODING_SYSTEM_NAME%,%C1_DESCRIPTION%, "OIDTOURL") |
coding (C2_CODE) | MakeCodingList(%C2_CODE%, %C2_CODING_SYSTEM_NAME%,%C2_DESCRIPTION%, "OIDTOURL") |
text | %OBSHEAD_DESCRIPTION% |
subject | MakeReference("PERSON",%PID%,"Patient") |
encounter | MakeReference("DOCUMENT",%SDID%,"Encounter") |
effective[x] | %OBSDATE% |
issued | %WHENUPDATED% |
performer (PractitionerPerformer) | MakeReference("USR",%CREATOR%,%USRID%,"Practitioner") |
performer (OrganizationPerformer) | MakeLabReference(%SDID%, %C1_CODE%, %C2_CODE%) |
value[x] | IfEqual( %OBSTYPE%,"N").Then(Context::MakeQuantity,%OBSVALUE%,%UNIT%,%HDID%) |
IfNotEqual(%OBSTYPE%,"N").Then(Context::MakeObservationValue,%HDID%, %OBSVALUE%) |
dataAbsentReason | MakeObservationConcept("unknown", "http://terminology.hl7.org/CodeSystem/data-absent-reason", "Unknown", %HDID%) |
interpretation | MapConcept(%ABNORMAL%,"OBSABNORMAL") |
note | makeAnnotation(%DESCRIPTION%) |
referenceRange | |
text | %RANGE% |
component | |
code | |
coding (TOCODE) | MakeObservationComponentCodingList(%HDID%, %OBSHEAD_DESCRIPTION%) |
coding (HDID) | MakeComponentCoding(%HDID%,getSiteCodeSystem("HDID"),%NAME%) |
value[x] | IfEqual( %OBSTYPE%,"N").Then(MakeComponentQuantity(%OBSVALUE%,%UNIT%, %HDID%,%SDID%,%PID%,%OBSDATE%)) |
dataAbsentReason | MakeObservationComponentDataAbsentConcept(%OBSVALUE%,%UNIT%, %HDID%,%SDID%,%PID%,%OBSDATE%) |
AthenaObservation |
Observation | OBX |
meta | |
security | |
security (SENSITIVECHART) | |
security (CONFABBR) | |
system | C*E.3 |
version | C*E.7 |
code | C*E.1 |
display | C*E.2 - but note this is not well followed |
userSelected | Sometimes implied by being first |
identifier | OBX.21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 2) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4. |
basedOn | ORC |
partOf | Varies by domain |
status | OBX-11 |
category | |
category (FHIRCATEGORY) | |
coding | C*E.1-8, C*E.10-22 |
text | C*E.9. But note many systems use C*E.2 for this |
category (PANELCATEGORY) | |
coding | C*E.1-8, C*E.10-22 |
text | C*E.9. But note many systems use C*E.2 for this |
category (HG_GROUPID) | |
coding | C*E.1-8, C*E.10-22 |
text | C*E.9. But note many systems use C*E.2 for this |
code | OBX-3 |
coding | C*E.1-8, C*E.10-22 |
coding (TOCODE) | C*E.1-8, C*E.10-22 |
coding (HDID) | C*E.1-8, C*E.10-22 |
coding (C1_CODE) | C*E.1-8, C*E.10-22 |
coding (C2_CODE) | C*E.1-8, C*E.10-22 |
text | C*E.9. But note many systems use C*E.2 for this |
subject | PID-3 |
focus | OBX-3 |
encounter | PV1 |
effective[x] | OBX-14, and/or OBX-19 after v2.4 (depends on who observation made) |
issued | OBR.22 (or MSH.7), or perhaps OBX-19 (depends on who observation made) |
performer | OBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO' |
performer (PractitionerPerformer) | OBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO' |
performer (OrganizationPerformer) | OBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO' |
value[x] | OBX.2, OBX.5, OBX.6 |
dataAbsentReason | N/A |
interpretation | OBX-8 |
note | NTE.3 (partner NTE to OBX, or sometimes another (child?) OBX) |
bodySite | OBX-20 |
method | OBX-17 |
specimen | SPM segment |
device | OBX-17 / PRT -10 |
referenceRange | OBX.7 |
low | OBX-7 |
high | OBX-7 |
type | OBX-10 |
appliesTo | OBX-10 |
text | OBX-7 |
hasMember | Relationships established by OBX-4 usage |
derivedFrom | Relationships established by OBX-4 usage |
component | containment by OBX-4? |
code | OBX-3 |
coding | C*E.1-8, C*E.10-22 |
coding (TOCODE) | C*E.1-8, C*E.10-22 |
coding (HDID) | C*E.1-8, C*E.10-22 |
text | C*E.9. But note many systems use C*E.2 for this |
value[x] | OBX.2, OBX.5, OBX.6 |
dataAbsentReason | N/A |
interpretation | OBX-8 |
referenceRange | OBX.7 |
AthenaObservation |
Observation | Entity. Role, or Act, Observation[classCode=OBS, moodCode=EVN] |
meta | |
id | n/a |
extension | n/a |
security | |
security (SENSITIVECHART) | |
security (CONFABBR) | |
id | n/a |
extension | n/a |
system | ./codeSystem |
version | ./codeSystemVersion |
code | ./code |
display | CV.displayName |
userSelected | CD.codingRationale |
text | Act.text? |
contained | N/A |
extension | N/A |
modifierExtension | N/A |
identifier | id |
basedOn | .inboundRelationship[typeCode=COMP].source[moodCode=EVN] |
partOf | .outboundRelationship[typeCode=FLFS].target |
status | status Amended & Final are differentiated by whether it is the subject of a ControlAct event with a type of "revise" |
category | .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code |
category (FHIRCATEGORY) | .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code |
id | n/a |
extension | n/a |
coding | union(., ./translation) |
text | ./originalText[mediaType/code="text/plain"]/data |
category (PANELCATEGORY) | .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code |
id | n/a |
extension | n/a |
coding | union(., ./translation) |
text | ./originalText[mediaType/code="text/plain"]/data |
category (HG_GROUPID) | .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code |
id | n/a |
extension | n/a |
coding | union(., ./translation) |
text | ./originalText[mediaType/code="text/plain"]/data |
code | code |
id | n/a |
extension | n/a |
coding | union(., ./translation) |
coding (TOCODE) | union(., ./translation) |
coding (HDID) | union(., ./translation) |
coding (C1_CODE) | union(., ./translation) |
coding (C2_CODE) | union(., ./translation) |
text | ./originalText[mediaType/code="text/plain"]/data |
subject | participation[typeCode=RTGT] |
focus | participation[typeCode=SBJ] |
encounter | inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN] |
effective[x] | effectiveTime |
issued | participation[typeCode=AUT].time |
performer | participation[typeCode=PRF] |
performer (PractitionerPerformer) | participation[typeCode=PRF] |
performer (OrganizationPerformer) | participation[typeCode=PRF] |
value[x] | value |
dataAbsentReason | value.nullFlavor |
interpretation | interpretationCode |
note | subjectOf.observationEvent[code="annotation"].value |
bodySite | targetSiteCode |
method | methodCode |
specimen | participation[typeCode=SPC].specimen |
device | participation[typeCode=DEV] |
referenceRange | outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN] |
id | n/a |
extension | n/a |
modifierExtension | N/A |
low | value:IVL_PQ.low |
high | value:IVL_PQ.high |
type | interpretationCode |
appliesTo | interpretationCode |
age | outboundRelationship[typeCode=PRCN].targetObservationCriterion[code="age"].value |
text | value:ST |
hasMember | outBoundRelationship |
derivedFrom | .targetObservation |
component | outBoundRelationship[typeCode=COMP] |
id | n/a |
extension | n/a |
modifierExtension | N/A |
code | code |
id | n/a |
extension | n/a |
coding | union(., ./translation) |
coding (TOCODE) | union(., ./translation) |
coding (HDID) | union(., ./translation) |
text | ./originalText[mediaType/code="text/plain"]/data |
value[x] | value |
dataAbsentReason | value.nullFlavor |
interpretation | interpretationCode |
referenceRange | outboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN] |