FHIR Implementation Guide for ABDM CI Build v2.0.1
banner

This Implementation guide is published and maintained by NRCeS for NHA.
This version is based on the ABDM Health Data Interchange Specifications 1.0 and updated periodically.

Mappings for the StructureDefinition-Encounter Profile.

Mappings for Workflow Pattern (http://hl7.org/fhir/workflow)

Encounter
EncounterEvent
   identifierEvent.identifier
   statusEvent.status
   typeEvent.code
   serviceTypeEvent.code
   subjectEvent.subject
   episodeOfCareEvent.context
   basedOnEvent.basedOn
   participantEvent.performer
      typeEvent.performer.function
      individualEvent.performer.actor
   appointmentEvent.basedOn
   periodEvent.occurrence[x]
   lengthEvent.occurrence[x]
   reasonCodeEvent.reasonCode
   reasonReferenceEvent.reasonCode
   diagnosis
      conditionEvent.reasonReference
   location
      locationEvent.location
   serviceProviderEvent.performer.actor
   partOfEvent.partOf

Mappings for RIM Mapping (http://hl7.org/v3)

Encounter
EncounterEntity. Role, or Act, Encounter[@moodCode='EVN']
   textAct.text?
   containedN/A
   extensionN/A
   modifierExtensionN/A
   identifier.id
   status.statusCode
   statusHistoryn/a
      idn/a
      extensionn/a
      modifierExtensionN/A
      statusn/a
      periodn/a
   class.inboundRelationship[typeCode=SUBJ].source[classCode=LIST].code
   classHistoryn/a
      idn/a
      extensionn/a
      modifierExtensionN/A
      classn/a
      periodn/a
   type.code
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   serviceTypen/a
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   priority.priorityCode
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   subject.participation[typeCode=SBJ]/role[classCode=PAT]
   episodeOfCaren/a
   basedOn.reason.ClinicalDocument
   participant.participation[typeCode=PFM]
      idn/a
      extensionn/a
      modifierExtensionN/A
      type.functionCode
         idn/a
         extensionn/a
         codingunion(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      period.time
      individual.role
   appointment.outboundRelationship[typeCode=FLFS].target[classCode=ENC, moodCode=APT]
   period.effectiveTime (low & high)
   length.lengthOfStayQuantity
   reasonCode.reasonCode
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   reasonReference.reasonCode
   diagnosis.outboundRelationship[typeCode=RSON]
      idn/a
      extensionn/a
      modifierExtensionN/A
      condition.outboundRelationship[typeCode=RSON].target
      usen/a
         idn/a
         extensionn/a
         codingunion(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      rank.outboundRelationship[typeCode=RSON].priority
   account.pertains.A_Account
   hospitalization.outboundRelationship[typeCode=COMP].target[classCode=ENC, moodCode=EVN]
      idn/a
      extensionn/a
      modifierExtensionN/A
      preAdmissionIdentifier.id
      origin.participation[typeCode=ORG].role
      admitSource.admissionReferralSourceCode
      reAdmissionn/a
      dietPreference.outboundRelationship[typeCode=COMP].target[classCode=SBADM, moodCode=EVN, code="diet"]
      specialCourtesy.specialCourtesiesCode
      specialArrangement.specialArrangementCode
      destination.participation[typeCode=DST]
      dischargeDisposition.dischargeDispositionCode
   location.participation[typeCode=LOC]
      idn/a
      extensionn/a
      modifierExtensionN/A
      location.role
      status.role.statusCode
      period.time
   serviceProvider.particiaption[typeCode=PFM].role
   partOf.inboundRelationship[typeCode=COMP].source[classCode=COMP, moodCode=EVN]

Mappings for FiveWs Pattern Mapping (http://hl7.org/fhir/fivews)

Encounter
Encounter
   identifierFiveWs.identifier
   statusFiveWs.status
   classFiveWs.class
   typeFiveWs.class
   priorityFiveWs.grade
   subjectFiveWs.subject[x], FiveWs.subject
   episodeOfCareFiveWs.context
   participant
      individualFiveWs.who
   periodFiveWs.done[x]
   reasonCodeFiveWs.why[x]
   reasonReferenceFiveWs.why[x]
   diagnosis
      conditionFiveWs.why[x]
   location
      locationFiveWs.where[x]

Mappings for HL7 v2 Mapping (http://hl7.org/v2)

Encounter
Encounter
   identifierPV1-19
   statusNo clear equivalent in HL7 v2; active/finished could be inferred from PV1-44, PV1-45, PV2-24; inactive could be inferred from PV2-16
   classPV1-2
   typePV1-4 / PV1-18
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   serviceTypePV1-10
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   priorityPV2-25
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   subjectPID-3
   episodeOfCarePV1-54, PV1-53
   participantROL
      typeROL-3 (or maybe PRT-4)
         codingC*E.1-8, C*E.10-22
            systemC*E.3
            versionC*E.7
            codeC*E.1
            displayC*E.2 - but note this is not well followed
            userSelectedSometimes implied by being first
         textC*E.9. But note many systems use C*E.2 for this
      periodROL-5, ROL-6 (or maybe PRT-5)
      individualROL-4
   appointmentSCH-1 / SCH-2
   periodPV1-44, PV1-45
   length(PV1-45 less PV1-44) iff ( (PV1-44 not empty) and (PV1-45 not empty) ); units in minutes
   reasonCodeEVN-4 / PV2-3 (note: PV2-3 is nominally constrained to inpatient admissions; HL7 v2 makes no vocabulary suggestions for PV2-3; would not expect PV2 segment or PV2-3 to be in use in all implementations )
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   reasonReferenceEVN-4 / PV2-3 (note: PV2-3 is nominally constrained to inpatient admissions; HL7 v2 makes no vocabulary suggestions for PV2-3; would not expect PV2 segment or PV2-3 to be in use in all implementations )
   diagnosis
      conditionResources that would commonly referenced at Encounter.indication would be Condition and/or Procedure. These most closely align with DG1/PRB and PR1 respectively.
      use
         codingC*E.1-8, C*E.10-22
            systemC*E.3
            versionC*E.7
            codeC*E.1
            displayC*E.2 - but note this is not well followed
            userSelectedSometimes implied by being first
         textC*E.9. But note many systems use C*E.2 for this
   hospitalization
      preAdmissionIdentifierPV1-5
      admitSourcePV1-14
      reAdmissionPV1-13
      dietPreferencePV1-38
      specialCourtesyPV1-16
      specialArrangementPV1-15 / OBR-30 / OBR-43
      destinationPV1-37
      dischargeDispositionPV1-36
   location
      locationPV1-3 / PV1-6 / PV1-11 / PV1-42 / PV1-43
   serviceProviderPL.6 & PL.1