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
A Referral Summary is a summarized patient health record with identified issues and other related information to assist in a referral. It aims to give sufficient information for meaningful transfer of data according to the agreed integration scope of an information exhange project.
This use case is meant to outline a general proposed scope of integeration that can be used as a baseline for information sharing with regards to the MY Core profile and base FHIR standard.
The two main resources used for retrieving/referencing supporting resources are ServiceRequest (MY Core) and Encounter (MY Core).
The 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 two main resources to connect all relevant information for convenient retrieval.
If the integration scope is limited, an encounter summary can be shared within the ServiceRequest resource as a narrative .xhtml instead of using multiple resources. This will ensure that the information shared can at least achieve the primary objective of the HIE project, which is continuity of care. However, this option will likely result in less complete data for later operational or analytical purposes.
In a referral summary, amendment or appending is discouraged by base FHIR standards, as it is part of a workflow resource and adjustments may affect the operational flow. It is highly
recommended to send a referral summary only after it has been finalised. If an amendment is required, the initial referral should be revoked ServiceRequest.status=revoked
, and a new referral record created instead.
Below is the overview flow for referral processes which align with the Care Coordination concept:
Below are some of the use case scenarios that can be used depending on the scope of integration:
This scenario only requires a ServiceRequest record to be shared. The source system can send a standalone ServiceRequest record and follow-up with other supporting records through a different API request later if necessary.
However, ServiceRequest (MY Core) mandates that:
ServiceRequest.subject
to be
referenced.ServiceRequest.encounter
to be
referenced.Main Related Profiles: ServiceRequest (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 | ServiceRequest"
@encounterId = unique encounter ID defined by the source system e.g.
"encounter-sample"
@encounterIdentifier = encounter registration number defined by the source
system e.g "HTJ-ENC-2211000036"
@patientId = unique patient ID defined by the source system e.g
"patient-sample"
@patientIdentifier = patient identifier such as a MyKad number or MRN e.g
"HIE-00000003"
Sample Description | Sample Body | API Method | API |
---|---|---|---|
Create/Update referral only | PUT | [base]/ServiceRequest/@referralId | |
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 a Bundle operation where multiple resources will be sent within a single request.
The supporting documents sent varies depending on the integration scope of each project.
A Bundle transaction is not stored in the server as it is only created temporarily as a means of transporting records. Thus, it is recommended that the source system assigns a unique record id for each resource for easier retrieval and updating purposes. If no id is provided, the server will auto-generate a random unique 32-digit alphanumerical id which the source system can store for later retrieval/updating purposes.
Main Related Profiles: ServiceRequest (MY Core) and Encounter (MY Core)
[base] = address url e.g. "https://fhir.hie.moh.gov.my/baseR4/"
[type] = resource type e.g. "Patient | Encounter | ServiceRequest"
@encounterId = unique encounter ID defined by the source system e.g.
"encounter-sample"
@encounterIdentifier = encounter registration number defined by the source
system e.g "HTJ-ENC-2211000036"
@patientId = unique patient ID defined by the source system e.g
"patient-sample"
@patientIdentifier = patient identifier such as a MyKad number or MRN e.g
"HIE-00000003"
@panelObservationId = unique observation panel ID defined by the source system
e.g. "obs-vs-sample"
Sample Description | Sample Body | API Method | API |
---|---|---|---|
Create/Update referral bundle | POST | [base] | |
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 |
Refer "Referral only" 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.
(Please hold Shift + scroll wheel to scroll horizontally)
Data Elements | Description | Cardinality | FHIR Element Id |
---|---|---|---|
Document unique Id | A unique identifier of the document | 0..1 | ServiceRequest.id |
Document repository unique id | A repository unique identifier of the document | 0..* | ServiceRequest.identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/service-request-id').value |
Document title | A descriptive title of the document (eg: Hospital Referral Summary) | 0..1 | ServiceRequest.code.display |
Document confidentiality | R=Restricted, V=Very Restricted | 0..1 | ServiceRequest.meta.security.code |
Document creation time | Time-stamp when original document was created | 1..1 | ServiceRequest.authoredOn |
Parent document id | A unique identifier of previous document (when applicable) | - | Field not available in MY Core profile |
Parent document relationship | Identifier on how document is related to previous version (when applicable) | - | Field not available in MY Core profile |
Data Elements | Description | Cardinality | FHIR Element Id |
---|---|---|---|
OID | Unique ID assign to facility | 1..1 | ServiceRequest.encounter.reference:Encounter.serviceProvider.reference |
Name | 1..1 | ServiceRequest.encounter.reference:Encounter.serviceProvider.display | |
Address | Address Type refer Telecommunication Address Use table | 0..1 | ServiceRequest.encounter.reference:Encounter.serviceProvider.reference:Organization.address |
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 | AAddress 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 | 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 | ServiceRequest.requester.where (type= 'PractitionerRole')display | |
MMC | 0..1 | ServiceRequest.requester.where (type= 'PractitionerRole').identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/mmc-no').value | |
Facility OID | ServiceRequest.encounter.reference:Encounter.serviceProvider.reference | ||
Facility name | ServiceRequest.encounter.reference:Encounter.serviceProvider.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 | ServiceRequest.requester.where (type= 'PractitionerRole')display | |
MMC | 0..1 | ServiceRequest.requester.where (type= 'PractitionerRole').identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/mmc-no').value | |
Facility OID | ServiceRequest.encounter.reference:Encounter.serviceProvider.reference | ||
Facility name | ServiceRequest.encounter.reference:Encounter.serviceProvider.display | ||
Time | Time-stamp when the original document was approved | 0..1 | ServiceRequest.extension.where (url = 'http://fhir.hie.moh.gov.my/StructureDefinition/attester-my-core').extension.where (url = 'time').valueDateTime |
Data Elements | Description | Cardinality | FHIR Element Id |
---|---|---|---|
Admission date | 1..1 | Encounter.period.start | |
Referral 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 code | Refer DSDLOC table | 1..1 | Encounter.type.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/specialty-my-core').code |
Service name | Refer DSDLOC table | 0..1 | Encounter.type.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/specialty-my-core').code |
Data Elements | Description | Cardinality | FHIR Element Id |
---|---|---|---|
Reason for Referral | 0..1 | ServiceRequest.reasonReference.reference |
Data Elements | Description | Cardinality | FHIR Element Id |
---|---|---|---|
AAllergies 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') | |
Referral 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 Referral Studies Summary | 0..* | DiagnosticReport.coding.code |
Data Elements | Description | Cardinality | FHIR Element Id |
---|---|---|---|
Care Plan | 0..1 | ServiceRequest.note.text |
Data Elements | Description | Cardinality | FHIR Element Id |
---|---|---|---|
OID | Unique ID assign to facility | ||
Name | |||
Address | Address Type refer Telecommunication Address Use table |
IG © 2022+ MHNexus Sdn Bhd. Package MyCore#2.0.0 based on FHIR 4.0.1. Generated 2025-03-27
Links: Table of Contents |
QA Report