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

Referral Summaries

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.


Scope and usage

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.


Boundaries and Relationship

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.


Scenarios

Below is the overview flow for referral processes which align with the Care Coordination concept:

Referral Flow

  1. The referring source system will first send a referral (ServiceRequest) record using the relevant API in HIE.
  2. HIE will receive the record and duplicate a copy in Kafka under a specified topic.
  3. The referred source system that is subscribed to the defined criteria will receive the record in Kafka and retrieve it for further action.
  4. Once a referral has been acknowledged, the requesting system will send an outcome record ServiceRequest through HIE API.
  5. HIE will again duplicate the updated referral record in Kafka.
  6. The referring source system will receive the updated status through Kafka thus completing the loop.

Below are some of the use case scenarios that can be used depending on the scope of integration:

Referral only

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:

  • a patient record must first exist ServiceRequest.subject to be referenced.
  • an encounter must first exist 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

1.referral template (MyHix),

2.referral sample (MyHix)

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

Referral with supporting records

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

1.bundle with id,

2.bundle without id

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

External Reference

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)

Document set - Profile: ServiceRequest (MY Core)

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

Facility - Profile: ServiceRequest (MY Core)

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

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 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

Author - Profile: ServiceRequest (MY Core), Composition (MY Core)

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

Consultant - Profile: ServiceRequest (MY Core)

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

Visit/Encounter - Profile: Encounter (MY Core)

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

Referral - Profile: ServiceRequest (MY Core)

Data Elements Description Cardinality FHIR Element Id
Reason for Referral 0..1 ServiceRequest.reasonReference.reference

Allergies - Profile: AllergyIntolerance (MY Core)

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

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')
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

Medication - Profile: Medication (MY Core)

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

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

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

Plans of Care - Profile: ServiceRequest (MY Core)

Data Elements Description Cardinality FHIR Element Id
Care Plan 0..1 ServiceRequest.note.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