HL7® FHIR® Malaysia Core (MY Core) Implementation Guide - Local Development build (v2.0.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
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.
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.
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.
Below are some of the possible use cases depending on the scope of integration.
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:
Composition.subject.Composition.custodian.Related Profiles: 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 registration 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. Composition with multiple sections |
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 |
This method of data sharing uses Bundle operation where multiple resource will be sent 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 systems to assign a unique record ID for each of their record for easier retrieval and updating purposes if able. If no ID is provided the server will auto generate a random unique 32 alphanumerical ID which the source system can store via their own respective methods for later retrieval/updating purposes.
Related profiles: 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 registration 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 | 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 |
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 | Composition | PUT | [base]/Composition/@compositionId |
| Amend Composition with supporting record | Bundle with Composition | PUT | [base] |
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 | Composition | PUT | [base]/Composition/@compositionId |
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 the HIE portal.
| Data Elements | Description | Cardinality | FHIR® Element ID |
|---|---|---|---|
| Document unique ID | A unique identifier of the document | 0..1 | Composition.id |
| Document repository 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 |
| Data Elements | Description | Cardinality | FHIR® Element ID |
|---|---|---|---|
| OID | Unique ID assign to facility | Composition.custodian.reference | |
| Name | Composition.custodian.display | ||
| Address | For address type refer Address DataType (MY Core) | N/A | Composition.custodian.reference:Organization.address |
| Data Elements | Description | Cardinality | FHIR® Element ID |
|---|---|---|---|
| Name | 1..1 | Patient.name.given | |
| Gender | Restricted by FHIR® to male | female | other | unknown | 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 | For address refer Address DataType (MY Core) | 0..1 | Patient.address |
| Phone home | For phone type refer ContactPoint | 0..1 | Patient.telecom.where(use='home').where(system='phone').value |
| Phone office | For phone type refer ContactPoint | 0..1 | Patient.telecom.where(use='work').where(system='phone').value |
| Fax | For fax refer ContactPoint | 0..1 | Patient.telecom.where(system='fax').value |
| Email address | For email refer ContactPoint | 0..1 | Patient.telecom.where(system='email').value |
| National ID | MyKad/MyKid | 0..1 | Patient.identifier.where(system='http://fhir.hie.moh.gov.my/sid/my-kad-no').value |
| 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 |
| 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 |
| 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 requests for service. | 0..1 | Encounter.statusHistory.where(status='planned').period.start |
| Assigned doctor's name | 0..1 | Encounter.participant.where(type.coding.code='PPRF').individual.display | |
| Assigned doctor's MMC Reg No. | 0..1 | Encounter.participant.where(type.coding.code='PPRF').individual.identifier.where(system='http://fhir.hie.moh.gov.my/sid/mmc-no').value | |
| Assigned doctor's 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 |
| 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 |
| Data Elements | Description | Cardinality | FHIR® Element ID |
|---|---|---|---|
| Hospital Admission Diagnosis | 0..* | Encounter.diagnosis.where(use.coding.code='AD').condition.reference |
| 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 |
| Data Elements | Description | Cardinality | FHIR® Element ID |
|---|---|---|---|
| Medications | 0..* | MedicationRequest.medicationCodeableConcept.coding.code |
| Data Elements | Description | Cardinality | FHIR® Element ID |
|---|---|---|---|
| Results | 0..* | Observation.code.coding.code | |
| Hospital Discharge Studies Summary | 0..* | DiagnosticReport.coding.code |
| Data Elements | Description | Cardinality | FHIR® Element ID |
|---|---|---|---|
| Care Plan | 0..1 | Composition.section.where(code.coding.code='18776-5').text |
IG © 2022+ MHNexus Sdn Bhd. Package hl7.fhir.MyCore#2.0.1 based on FHIR 4.0.1. Generated 2025-08-27
Links: Table of Contents |
QA Report
| Version History |
|
Propose a change
