Implementation Guide
25.0.0 - R4 APIs

Publish Box goes here

Resource Profile: AthenaPatient - Mappings

Active as of 2022-03-01

Mappings for the athena-patient-profile resource profile.

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameathenaFlowathenaPracticeRIM MappingCDA (R2)FiveWs Pattern MappingHL7 v2 MappingLOINC code for the elementdoco
.. Patient
FHIRR4_PATIENTVIEW
FHIRR4_PATIENTVIEW
Patient[classCode=PAT]
ClinicalDocument.recordTarget.patientRole
... id
MakeId(%RESOURCEID%)
MakeId(%RESOURCEID%)
... meta
.... id
n/a
.... extension
n/a
.... versionId
.... lastUpdated
%DB_UPDATED_DATE%
%DB_UPDATED_DATE%
.... source
.... profile
.... profile
.... profile
.... security
CheckSensitive(%SENSITIVECHART%)
CheckSensitive(%SENSITIVECHART%)
.... tag
... implicitRules
... language
... text
Act.text?
... contained
N/A
... Slices for extension
.... extension:mothersMaidenName
Role relationship to entity with maiden name (?)
PID-6
..... id
n/a
..... extension
..... url
N/A
..... value[x]
%MOTHERSMAIDEN%
%MOTHERSMAIDEN%
N/A
.... extension:RESPPROVID
..... id
n/a
..... extension
n/a
..... url
N/A
..... value[x]
  • MakeReference("USR"
  • %RESPPROVID%
  • "Practitioner")
  • MakeReference("USR"
  • %RESPPROVID%
  • "Practitioner")
N/A
.... extension:REFDOCID
..... id
n/a
..... extension
n/a
..... url
N/A
..... value[x]
  • MakeReference("USR"
  • %REFDOCID%
  • "Practitioner")
  • MakeReference("USR"
  • %REFDOCID%
  • "Practitioner")
N/A
.... extension:preferredContact
..... id
n/a
..... extension
n/a
..... url
N/A
..... value[x]
  • MapString(%PREFERREDCONTACT%
  • "PREFCONTACT")
%PREFERREDCONTACT%
N/A
.... extension:BIRTHTIME
..... id
n/a
..... extension
..... url
N/A
..... value[x]
  • asBirthTimeType(%DATEOFBIRTH%
  • %TIMEOFBIRTH%)
  • asBirthTimeType(%DATEOFBIRTH%
  • %TIMEOFBIRTH%)
N/A
.... extension:patientAsGuarantor
..... id
n/a
..... extension
n/a
..... url
N/A
..... value[x]
isPatientAsGuarantor(%PATIENTASGUARANTOR%)
N/A
.... extension:genderIdentity
..... id
n/a
..... extension
n/a
..... url
N/A
..... value[x]
  • MakeConceptUsingMedlist(%GENDERIDENTITY%
  • %GENDERIDENTITYTEXT%
  • //snomed.info/sct"
  • "SOGI")
  • MakeConceptUsingMedlist(%GENDERIDENTITY%
  • %GENDERIDENTITYTEXT%
  • //snomed.info/sct"
  • "SOGI")
N/A
.... extension:sexualOrientation
..... id
n/a
..... extension
n/a
..... url
N/A
..... value[x]
  • MakeConceptUsingMedlist(%SEXUALORIENTATION%
  • %SEXUALORIENTATIONTEXT%
  • //docs.mydata.athenahealth.com/fhir-r4/athenaFlex/sexualOrientation"
  • "SOGI")
  • MakeConceptUsingMedlist(%SEXUALORIENTATION%
  • %SEXUALORIENTATIONTEXT%
  • //docs.mydata.athenahealth.com/fhir-r4/athenaFlex/sexualOrientation"
  • "SOGI")
N/A
.... extension:guarantorDetails
..... id
n/a
..... extension
n/a
..... url
N/A
..... value[x]
  • MakeReference("Guarantor"
  • %GUARANTORID%
  • "RelatedPerson")
N/A
.... extension:USCORERACE
  • MakeCodingExtension(%RACE%
  • "RACE"
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-race")
  • MakeCodingExtension(%RACE%
  • "RACE"
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-race")
.... extension:USCOREETHNICITY
  • MakeCodingExtension(%ETHNICITY%
  • "ETHNICITY"
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity")
  • MakeCodingExtension(%ETHNICITY%
  • "ETHNICITY"
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity")
.... extension:USCOREBIRTHSEX
  • MakeCodeExtension(%SEX%
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex")
  • MakeCodeExtension(%SEX%
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex")
player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender
.... extension:USCORESEX
  • MakeCodeExtensionForUSCoreSex(%SEX%
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-sex")
  • MakeCodeExtensionForUSCoreSex(%SEX%
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-sex")
.... extension:PATIENTEDUCATUION
  • MakePatientEducation(%PID%
  • //docs.mydata.athenahealth.com/fhir-r4/StructureDefinition/athena-patient-extension-educationProvided")
  • MakePatientEducation(%PID%
  • //docs.mydata.athenahealth.com/fhir-r4/StructureDefinition/athena-patient-extension-educationProvided")
.... extension:OCCUPATION
..... id
n/a
..... extension
n/a
..... url
N/A
..... value[x]
  • MakeConcept(%OCCUPATIONCODE%
  • //terminology.hl7.org/CodeSystem/PHOccupationalDataForHealthODH"
  • %OCCUPATIONDESCRIPTION%)
  • MakeConcept(%OCCUPATIONCODE%
  • //terminology.hl7.org/CodeSystem/PHOccupationalDataForHealthODH"
  • %OCCUPATIONDESCRIPTION%)
N/A
.... extension:OCCUPATIONINDUSTRY
..... id
n/a
..... extension
n/a
..... url
N/A
..... value[x]
  • MakeConcept(%OCCUPATIONINDUSTRYCODE%
  • //terminology.hl7.org/CodeSystem/PHOccupationalDataForHealthODH"
  • %OCCUPATIONINDUSTRYDESCRIPTION%)
  • MakeConcept(%OCCUPATIONINDUSTRYCODE%
  • //terminology.hl7.org/CodeSystem/PHOccupationalDataForHealthODH"
  • %OCCUPATIONINDUSTRYDESCRIPTION%)
N/A
.... extension:TRIBALAFFILIATION
  • MakeExtension(%TRIBALAFFILIATIONCODE%
  • //terminology.hl7.org/CodeSystem/v3-TribalEntityUS"
  • %TRIBALAFFILIATIONDESCRIPTION%
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-tribal-affiliation")
  • MakeExtension(%TRIBALAFFILIATIONCODE%
  • //terminology.hl7.org/CodeSystem/v3-TribalEntityUS"
  • %TRIBALAFFILIATIONDESCRIPTION%
  • //hl7.org/fhir/us/core/StructureDefinition/us-core-tribal-affiliation")
.... extension:PRONOUN
..... id
n/a
..... extension
..... url
N/A
..... value[x]
  • MapConcept(%PRONOUNCODE%
  • "PATIENTPRONOUN")
  • MapConcept(%PRONOUNCODE%
  • "PATIENTPRONOUN")
N/A
... modifierExtension
N/A
... identifier
id
.id
FiveWs.identifier
PID-3
... identifier
id
.id
FiveWs.identifier
PID-3
.... id
n/a
.... extension
n/a
.... use
Role.code or implied by context
N/A
.... type
Role.code or implied by context
CX.5
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
.... system
getSiteIdSystem("PatientId")
getSiteIdSystem("PatientId")
II.root or Role.id.root
CX.4 / EI-2-4
.... value
%PATIENTID%
%PATIENTID%
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
.... period
Role.effectiveTime or implied by context
CX.7 + CX.8
.... assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
... identifier
id
.id
FiveWs.identifier
PID-3
.... id
n/a
.... extension
n/a
.... use
Role.code or implied by context
N/A
.... type
Role.code or implied by context
CX.5
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
.... system
II.root or Role.id.root
CX.4 / EI-2-4
.... value
%SOCSECNO%
%SOCSECNO%
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
.... period
Role.effectiveTime or implied by context
CX.7 + CX.8
.... assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
... identifier
id
.id
FiveWs.identifier
PID-3
.... id
n/a
.... extension
n/a
.... use
Role.code or implied by context
N/A
.... type
Role.code or implied by context
CX.5
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
.... system
getSiteIdSystem("MRN")
getSiteIdSystem("MRN")
II.root or Role.id.root
CX.4 / EI-2-4
.... value
%MEDRECNO%
%MEDRECNO%
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
.... period
Role.effectiveTime or implied by context
CX.7 + CX.8
.... assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
... identifier
id
.id
FiveWs.identifier
PID-3
... active
  • Equals("A"
  • %PSTATUS%)
  • Equals("A"
  • %PSTATUS%)
statusCode
n/a
FiveWs.status
... Slices for name
name
.patient.name
  • PID-5
  • PID-9
.... name:Name
  • MakeSearchName(%FIRSTNAME%
  • %MIDDLENAME%
  • %LASTNAME%
  • %TITLE%
  • %ENTITLEMENTS%)
  • MakeSearchName(%FIRSTNAME%
  • %MIDDLENAME%
  • %LASTNAME%
  • %TITLE%
  • %ENTITLEMENTS%)
name
.patient.name
  • PID-5
  • PID-9
..... id
n/a
..... extension
n/a
..... use
unique(./use)
  • XPN.7
  • but often indicated by which field contains the name
..... text
./formatted
implied by XPN.11
..... family
%LASTNAME%
%LASTNAME%
./part[partType = FAM]
XPN.1/FN.1
..... Slices for given
./part[partType = GIV]
XPN.2 + XPN.3
...... given:First Name
%FIRSTNAME%
%FIRSTNAME%
./part[partType = GIV]
XPN.2 + XPN.3
...... given:Middle Name
%MIDDLENAME%
%MIDDLENAME%
./part[partType = GIV]
XPN.2 + XPN.3
..... prefix
%TITLE%
%TITLE%
./part[partType = PFX]
XPN.5
..... suffix
%ENTITLEMENTS%
%ENTITLEMENTS%
./part[partType = SFX]
XPN/4
..... period
./usablePeriod[type="IVL<TS>"]
XPN.13 + XPN.14
.... name:PreviousName
name
.patient.name
  • PID-5
  • PID-9
..... id
n/a
..... extension
n/a
..... use
unique(./use)
  • XPN.7
  • but often indicated by which field contains the name
..... text
./formatted
implied by XPN.11
..... family
%PREVIOUSLASTNAME%
%PREVIOUSLASTNAME%
./part[partType = FAM]
XPN.1/FN.1
..... Slices for given
./part[partType = GIV]
XPN.2 + XPN.3
...... given:Previous First Name
%PREVIOUSFIRSTNAME%
%PREVIOUSFIRSTNAME%
./part[partType = GIV]
XPN.2 + XPN.3
...... given:Previous Middle Name
%PREVIOUSMIDDLENAME%
%PREVIOUSMIDDLENAME%
./part[partType = GIV]
XPN.2 + XPN.3
..... prefix
./part[partType = PFX]
XPN.5
..... suffix
%PREVIOUSENTITLEMENTS%
%PREVIOUSENTITLEMENTS%
./part[partType = SFX]
XPN/4
..... period
  • MakePeriod(%PreviousNameStartDate%
  • %PreviousNameEndDate%)
  • MakePeriod(%PreviousNameStartDate%
  • %PreviousNameEndDate%)
./usablePeriod[type="IVL<TS>"]
XPN.13 + XPN.14
.... name:Nickname
name
.patient.name
  • PID-5
  • PID-9
..... id
n/a
..... extension
n/a
..... use
"nickname"
"nickname"
unique(./use)
  • XPN.7
  • but often indicated by which field contains the name
..... text
./formatted
implied by XPN.11
..... family
./part[partType = FAM]
XPN.1/FN.1
..... given
%NICKNAME%
%NICKNAME%
./part[partType = GIV]
XPN.2 + XPN.3
..... prefix
./part[partType = PFX]
XPN.5
..... suffix
./part[partType = SFX]
XPN/4
..... period
./usablePeriod[type="IVL<TS>"]
XPN.13 + XPN.14
... Slices for telecom
telecom
.telecom
  • PID-13
  • PID-14
  • PID-40
.... telecom:Work
telecom
.telecom
  • PID-13
  • PID-14
  • PID-40
..... id
n/a
..... extension
n/a
..... system
./scheme
XTN.3
..... value
%WORKPHONE%
%WORKPHONE%
./url
XTN.1 (or XTN.12)
..... use
unique(./use)
XTN.2 - but often indicated by field
..... rank
n/a
n/a
..... period
./usablePeriod[type="IVL<TS>"]
N/A
.... telecom:Home
telecom
.telecom
  • PID-13
  • PID-14
  • PID-40
..... id
n/a
..... extension
n/a
..... system
./scheme
XTN.3
..... value
%ALTPHONE%
%ALTPHONE%
./url
XTN.1 (or XTN.12)
..... use
unique(./use)
XTN.2 - but often indicated by field
..... rank
n/a
n/a
..... period
./usablePeriod[type="IVL<TS>"]
N/A
.... telecom:Mobile
telecom
.telecom
  • PID-13
  • PID-14
  • PID-40
..... id
n/a
..... extension
n/a
..... system
./scheme
XTN.3
..... value
%CELLPHONE%
%CELLPHONE%
./url
XTN.1 (or XTN.12)
..... use
unique(./use)
XTN.2 - but often indicated by field
..... rank
n/a
n/a
..... period
./usablePeriod[type="IVL<TS>"]
N/A
.... telecom:Fax
telecom
.telecom
  • PID-13
  • PID-14
  • PID-40
..... id
n/a
..... extension
n/a
..... system
./scheme
XTN.3
..... value
%FAXPHONE%
%FAXPHONE%
./url
XTN.1 (or XTN.12)
..... use
unique(./use)
XTN.2 - but often indicated by field
..... rank
n/a
n/a
..... period
./usablePeriod[type="IVL<TS>"]
N/A
.... telecom:Pager
telecom
.telecom
  • PID-13
  • PID-14
  • PID-40
..... id
n/a
..... extension
n/a
..... system
./scheme
XTN.3
..... value
%PAGERPHONE%
%PAGERPHONE%
./url
XTN.1 (or XTN.12)
..... use
unique(./use)
XTN.2 - but often indicated by field
..... rank
n/a
n/a
..... period
./usablePeriod[type="IVL<TS>"]
N/A
.... telecom:Email
telecom
.telecom
  • PID-13
  • PID-14
  • PID-40
..... id
n/a
..... extension
n/a
..... system
./scheme
XTN.3
..... value
%EMAIL%
%EMAIL%
./url
XTN.1 (or XTN.12)
..... use
unique(./use)
XTN.2 - but often indicated by field
..... rank
n/a
n/a
..... period
./usablePeriod[type="IVL<TS>"]
N/A
... gender
  • MapCode(%SEX%
  • "GENDER")
  • MapCode(%SEX%
  • "GENDER")
player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender
.patient.administrativeGenderCode
PID-8
... birthDate
%DATEOFBIRTH%
%DATEOFBIRTH%
player[classCode=PSN|ANM and determinerCode=INSTANCE]/birthTime
.patient.birthTime
PID-7
21112-8
... deceased[x]
  • IfNull(%DATEOFDEATH%).Then(Equals("X"
  • %PSTATUS%)) | IfSet(%DATEOFDEATH%).Then(%DATEOFDEATH%)
  • IfNull(%DATEOFDEATH%).Then(Equals("X"
  • %PSTATUS%)) | IfSet(%DATEOFDEATH%).Then(%DATEOFDEATH%)
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedTime
n/a
PID-30 (bool) and PID-29 (datetime)
... Slices for address
addr
.addr
PID-11
.... address:Current Address
  • MakeSearchAddress(%ADDRESS1%
  • %ADDRESS2%
  • %CITY%
  • %STATE%
  • %ZIP%
  • %COUNTRY%)
  • MakeSearchAddress(%ADDRESS1%
  • %ADDRESS2%
  • %CITY%
  • %STATE%
  • %ZIP%
  • %COUNTRY%)
addr
.addr
PID-11
..... id
n/a
..... extension
n/a
..... use
unique(./use)
XAD.7
..... type
unique(./use)
XAD.18
..... text
./formatted
XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6
..... line
AD.part[parttype = AL]
XAD.1 and XAD.2 have different meanings for a company address than for a person address)
..... line
%ADDRESS1%
%ADDRESS1%
AD.part[parttype = AL]
XAD.1 and XAD.2 have different meanings for a company address than for a person address)
..... line
%ADDRESS2%
%ADDRESS2%
AD.part[parttype = AL]
XAD.1 and XAD.2 have different meanings for a company address than for a person address)
..... city
MakeSearchAddressCity(%CITY%)
MakeSearchAddressCity(%CITY%)
AD.part[parttype = CTY]
XAD.3
..... district
AD.part[parttype = CNT | CPA]
XAD.9
..... state
MakeSearchAddressState(%STATE%)
MakeSearchAddressState(%STATE%)
AD.part[parttype = STA]
XAD.4
..... postalCode
MakeSearchAddressZip(%ZIP%)
MakeSearchAddressZip(%ZIP%)
AD.part[parttype = ZIP]
XAD.5
..... country
MakeSearchAddressCountry(%COUNTRY%)
MakeSearchAddressCountry(%COUNTRY%)
AD.part[parttype = CNT]
XAD.6
..... period
./usablePeriod[type="IVL<TS>"]
XAD.12 / XAD.13 + XAD.14
.... address:Previous Address
MakePreviousAddressList(%PREVIOUSADDRESSLIST%)
MakePreviousAddressList(%PREVIOUSADDRESSLIST%)
addr
.addr
PID-11
... maritalStatus
  • MapConcept(%MARITALSTATUS%
  • "MARITALSTATUS")
  • MapConcept(%MARITALSTATUS%
  • "MARITALSTATUS")
player[classCode=PSN]/maritalStatusCode
.patient.maritalStatusCode
PID-16
... multipleBirth[x]
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthOrderNumber
n/a
  • PID-24 (bool)
  • PID-25 (integer)
... photo
  • MakeBinary("Photo"
  • %PHOTO_ID%)
  • MakeBinary("Photo"
  • %PHOTO_ID%)
player[classCode=PSN|ANM and determinerCode=INSTANCE]/desc
n/a
OBX-5 - needs a profile
... contact
MakeContactList(%CONTACTS%)
MakeContactList(%CONTACTS%)
player[classCode=PSN|ANM and determinerCode=INSTANCE]/scopedRole[classCode=CON]
n/a
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... relationship
code
n/a
  • NK1-7
  • NK1-3
.... name
name
n/a
NK1-2
.... telecom
telecom
n/a
  • NK1-5
  • NK1-6
  • NK1-40
.... address
addr
n/a
NK1-4
.... gender
player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender
n/a
NK1-15
.... organization
scoper
n/a
  • NK1-13
  • NK1-30
  • NK1-31
  • NK1-32
  • NK1-41
.... period
effectiveTime
n/a
... communication
LanguageCommunication
patient.languageCommunication
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... language
  • MakeConcept(%LANGCODE%
  • ietf:bcp:47"
  • %PREFLANG%)
  • MakeConcept(%LANGCODE%
  • ietf:bcp:47"
  • %PREFLANG%)
player[classCode=PSN|ANM and determinerCode=INSTANCE]/languageCommunication/code
.languageCode
  • PID-15
  • LAN-2
.... preferred
true
true
preferenceInd
.preferenceInd
PID-15
... generalPractitioner
  • MakeReference("USR"
  • %PRICAREID%
  • "Practitioner")
  • MakeReference("USR"
  • %PRICAREID%
  • "Practitioner")
subjectOf.CareEvent.performer.AssignedEntity
n/a
PD1-4
... managingOrganization
  • MakeReference("LOCREG"
  • %HOMELOCATION%
  • "Organization")
  • MakeReference("LOCREG"
  • %HOMELOCATION%
  • "Organization")
scoper
.providerOrganization
... link
outboundLink
n/a
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... other
id
n/a
  • PID-3
  • MRG-1
.... type
typeCode
n/a

doco Documentation for this format