HL7 FHIR Malaysia Core (MY Core) Implementation Guide
2.0.0 - ci-build

HL7 FHIR Malaysia Core (MY Core) Implementation Guide - Local Development build (v2.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Encounter Summaries

An Encounter Summary is a compilation of several records assembled during the course of a patient's healthcare encounter. It can be as detailed as an end-to-end encounter report with multiple records being created and updated as an encounter progresses (from arrived to in-progress to finished) or as simple as a single snapshot of the encounter, where information obtained is just sufficient for meaningful information exchange. An example of this would be a summary made at the end of an encounter, such as a discharge/visit summary.


Scope and Usage

This section of the use case is meant to propose a general scope of integration that can be used as a baseline of information sharing with regards to the MY Core profile and base FHIR standard.


Boundaries and Relationship

The main resources used for retrieving/referencing supporting resources are the Composition (MY Core) and Encounter (MY Core).

Other supporting resources such as Condition (MY Core), AllergyIntolerance (MY Core), MedicationRequest (MY Core), DiagnosticReport (MY Core) or Observation profile will reference or be referenced by the main resources to link the records for easier record retrieval.

If the integration scope is limited, the referral summary can be shared within the Composition resource as a narrative xhtml instead of referencing multiple resources. This would ensure that the information shared can at least achieve the objective of the HIE project, which is continuity of care. However, this scope of integration will most likely result in difficulty retrieving reliable granular data for operational or analytical purposes.

Scenarios

Below are some of the possible use cases depending on the scope of integration.

Composition only

This scenario only requires a composition record to be shared. The source system can send the information in multiple sections within a composition or in a single section "Clinical Information" Composition.section.where (code.coding.code = '55752-0').text

However, Composition (MY Core) mandates that:

  • a Patient record must first exist Composition.subject to be referenced.
  • a custodian (Organization that maintains the Composition) must first exist Composition.custodian to be referenced.

Related Profile: Composition (MY Core), Patient (MY Core), Encounter (MY Core) and Organization (MY Core).


[base] = address url e.g. "https://fhir.hie.moh.gov.my/baseR4/"
[type] = resource type e.g. "Patient | Encounter | Compostion"
@recordId = unique record id defined from source system e.g. "composition-sample"
@encounterId = unique encounter id defined from source system e.g. "encounter-sample"
@encounterIdentifier = encounter registrtion number defined from source system e.g "HTJ-ENC-2211000036"
@patientId = unique patient id defined from source system e.g "patient-sample"
@patientIdentifier = patient identifier such as mykad number or MRN e.g "HIE-00000003"

Sample Description Sample Body API Method API
Create/Update Composition only

1.multiple section sample,

2.single section template (MyHix),

3.single section sample (MyHix)

PUT [base]/Composition/@recordId
Retrieve by record id - GET [base]/[type]/@recordId
Retrieve record by encounter id - GET [base]/[type]?encounter=@encounterId
Retrieve record by encounter identifier - GET [base]/[type]?encounter.identifier=@encounterIdentifier
Retrieve record by patient id - GET [base]/[type]?subject=@patientId
Retrieve record by patient identifier - GET [base]/[type]?subject.identifier=@patientIdentifier

Composition with supporting records

This method of data sharing uses Bundle opearation where multiple resource will be send together within a single request.

The supporting document sent varies depending on the integration scope of each project.

A Bundle transaction is not stored in the server as it is only created transiently as a means of trasporting records. Thus, it is highly recommended for source system to assign a unique record id for each of their record for easier retrieval and updating purposes if able. Else, if no id is provided the server will auto generate a random unique 32 alphanumerical id which source system can store via their own respective method for later retrieval/updating purposes.

Related profile: Patient (MY Core), Composition (MY Core), Encounter (MY Core), Condition (MY Core), AllergyIntolerance (MY Core), Medication (MY Core), Observation profile, DiagnosticReport (MY Core) and Procedure (MY Core)


[base] = address url e.g. "https://fhir.hie.moh.gov.my/baseR4/"
[type] = resource type e.g. "Patient | Encounter | Compostion"
@recordId = unique record id defined from source system e.g. "composition-sample"
@encounterId = unique encounter id defined from source system e.g. "encounter-sample"
@encounterIdentifier = encounter registrtion number defined from source system e.g "HTJ-ENC-2211000036"
@patientId = unique patient id defined from source system e.g "patient-sample"
@patientIdentifier = patient identifier such as mykad number or MRN e.g "HIE-00000003"
@panelObservationId = unique observation panel id defined from source system e.g. "obs-vs-sample"

Sample Description Sample Body API Method API
Create/Update encounter bundle

1.bundle with id,

2.bundle without id

POST [base]
Retrieve by record id - GET [base]/[type]/@recordId
Retrieve record by encounter id - GET [base]/[type]?encounter=@encounterId
Retrieve record by encounter identifier - GET [base]/[type]?encounter.identifier=@encounterIdentifier
Retrieve record by patient id - GET [base]/[type]?subject=@patientId
Retrieve record by patient identifier - GET [base]/[type]?subject.identifier=@patientIdentifier
Retrieve observation panel record with its has-member record - GET [base]/Observation?_include=Observation:has-member&_id=@panelObservationId

Amend Composition

A composition record can also be amended, the initial amended composition will be updated to amended status Composition.status=amended and if an appended attachment record exist, record will be store in an amended section in Composition with section code Composition.section.where (code.coding.code = '55107-7').text

Any supporting record can also be updated if required either individually or together within a bundle.

Related Profile: Composition (MY Core)


[base] = address url e.g. "https://fhir.hie.moh.gov.my/baseR4/"
[type] = resource type e.g. "Patient | Encounter | Compostion"
@compositionId = unique composition id defined from source system e.g. "composition-sample"

Sample Description Sample Body API Method API
Amend composition only JSON PUT [base]/Composition/@compositionId
Amend composition with supporting record JSON PUT [base]

Delete Composition

A composition record can be logically deleted by updating the status Composition.status=entered-in-error

Related Profile: Composition (MY Core)


[base] = address url e.g. "https://fhir.hie.moh.gov.my/baseR4/"
[type] = resource type e.g. "Patient | Encounter | Compostion"
@compositionId = unique composition id defined from source system e.g. "composition-sample"

Sample Description Sample Body API Method API
Delete composition only JSON PUT [base]/Composition/@compositionId



External Reference

Refer to "Composition only" section under Scenarios for sample JSON.

The JSON template is only meant as a suggestion, it is up to each respective source system to decide on the method/scope of integration and entry of record template as long as data can be properly shared and viewed in HIE portal.

Document Set - Profile:Composition (MY Core)

Data Elements Description Cardinality FHIR Element Id
Document unique id A unique identifier of the document 0..1 Composition.id
Document repositpry unique id A repository unique identifier of the document (UUID) 0..1 Composition.identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/composition-id').value
Document title A descriptive title of the document (eg: Hospital Discharge Summary) 1..1 Composition.title
Document confidentiality R=Restricted, V=Very Restricted 0..1 Composition.meta.security
Document creation time Time-stamp when original document was created 1..1 Composition.date
Parent document id A unique identifier of previous document (when applicable) 0..* Composition.relatesTo.targetReference
Parent document relationship Identifier on how document is related to previous version (when applicable) 0..1 Composition.relatesTo.code

Custodian - Profile: Composition (MY Core)

Data Elements Description Cardinality FHIR Element Id
OID Unique ID assign to facility Composition.custodian.reference
Name Composition.custodian.display
Address Address Type refer Telecommunication Address Use table N/A Composition.custodian.reference:Organization.address

Patient - Profile: Patient (MY Core)

Data Elements Description Cardinality FHIR Element Id
Name 1..1 Patient.name.given
Gender Gender code refer Patient Gender table 1..1 Patient.gender
DOB 1..1 Patient.birthDate
Race 0..1 Patient.extension.where (url = 'http://fhir.hie.moh.gov.my/StructureDefinition/ethnic-my-core')
MRN 1..1 Patient.identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/patient-mrn').value
Address Address Type refer Telecommunication Address Use table 0..1 Patient.address
Phone home Phone Type refer Telecommunication Address Use table 0..1 Patient.telecom.where (use = 'home').where (system ='phone').value
Phone office Phone Type refer Telecommunication Address Use table 0..1 Patient.telecom.where (use = 'work').where (system ='phone').value
Fax Phone Type refer Telecommunication Address Use table 0..1 Patient.telecom.where (system ='fax').value
Email address Phone Type refer Telecommunication Address Use table 0..1 Patient.telecom.where (system ='email').value
National Id IC 0..1 Patient.identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/my-kad-no').value

Author - Profile: Composition (MY Core)

Data Elements Description Cardinality FHIR Element Id
Name 0..1 Composition.author.where (type= 'PractitionerRole').display
MMC MMC registration number 0..1 Composition.author.where (type= 'PractitionerRole').identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/mmc-no').value
Facility OID Composition.custodian.reference
Facility name Composition.custodian.display
Time Time-stamp when the original document was saved 0..1 Composition.event.period.start

Cosultant - Profile: Composition (MY Core)

Data Elements Description Cardinality FHIR Element Id
Name 0..1 Composition.attester.party.where (type = 'PractitionerRole').display
MMC 0..1 Composition.attester.party.where (type = 'PractitionerRole').identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/mmc-no').value
Facility OID Composition.custodian.reference
Facility name Composition.custodian.display
Time Time-stamp when the original document was approved 0..1 Composition.attester.time

Visit/Encounter - Profile: Encounter (MY Core)

Data Elements Description Cardinality FHIR Element Id
Admission date 1..0 Encounter.period.start
Discharge date 0..1 Encounter.period.end
Visit id 0..1 Encounter.identifier.where (system ='http://fhir.hie.moh.gov.my/sid/encounter-id').value
Time Time-stamp when patient request for service. 0..1 Encounter.statusHistory.where (status = 'planned').period.start
Assign doctor name 0..1 Encounter.participant.where (type.coding.code = 'PPRF').individual.display
Assign doctor MMC 0..1 Encounter.participant.where (type.coding.code = 'PPRF').individual.identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/mmc-no').value
Assign doctor facility OID 1..1 Encounter.serviceProvider.reference
Assign doctor facility name 1..1 Encounter.serviceProvider.display
Service id Refer DSDLOC table 1..1 Encounter.type.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/specialty-my-core').code

Allergies - Profile: AllergyIntolerance (MY Core)

Data Elements Description Cardinality FHIR Element Id
Allergies and Other Adverse Reactions 0..1 AllergyIntolerance.code.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/active-ingredient-my-core').code

Reason for care - Profile: Encounter (MY Core)

Data Elements Description Cardinality FHIR Element Id
Hospital Admission Diagnosis 0..* Encounter.diagnosis.where (use.coding.code = 'AD').condition.reference

Other Condition Histories - Profile: Encounter (MY Core)

Data Elements Description Cardinality FHIR Element Id
Active Problems 0..* Encounter.diagnosis.where (use.coding.code = '08' or use.coding.code = '01')
Discharge Diagnosis 0..* Encounter.diagnosis.where (use.coding.code = 'DD').condition.reference
Resolved Problems 0..* Encounter.diagnosis.reference:Condition.clinicalStatus=resolved
List of Surgeries 0..* Encounter.diagnosis.condition.where (type = 'Procedure').reference:Procedure.code.coding.code

Medication - Profile: Medication (MY Core)

Data Elements Description Cardinality FHIR Element Id
Medications 0..* MedicationRequest.medicationCodeableConcept.coding.code

Relevant Studies - Profile: Observation profile, DiagnosticReport (MY Core)

Data Elements Description Cardinality FHIR Element Id
Results 0..* Observation.code.coding.code
Hospital Discharge Studies Summary 0..* DiagnosticReport.coding.code

Plans of Care - Profile: Composition (MY Core)

Data Elements Description Cardinality FHIR Element Id
Care Plan 0..1 Composition.section.where (code.coding.code = '18776-5').text

Correspondence Facility - Profile:

Data Elements Description Cardinality FHIR Element Id
OID Unique ID assign to facility
Name
Address Address Type refer Telecommunication Address Use table
Close