Referral Summary
Referral Summary is a summarize patient health record with identified issues and/or other information related to assist in a referral. The information is usually summarized to detail information which is sufficient enough to allow meaningful information depending on the feasibilty and integration scope of an agreed information exhange project.
Scope and usage
This section of use case is meant to outline a general proposed scope of integeration 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 retrieval/referencing supporting resources are ServiceRequest (MY Core) and Encounter (MY Core).
Other supporting resource 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 encounter summary can be shared within the ServiceRequest resource as a narrative xhtml instead of multiple resources. This would at least ensure that information shared can achieve the continuation of care objective of the HIE project. However, this scope of integration will most likely result in difficulties and less reliable data for later operational or analytical purposes.
A referral summary does not directly encourage amendment or appending by base FHIR standard. One of the reason is due to it being part of a workflow resource which may affect the operational flow. It is highly recommended to send a final referral summary only and if amendment is required to reject the initial referral ServiceRequest.status=revoked
and create a new referral record instead.
Referral Summary
Below in the overview flow for referral process which align to the Care Coordination concept
- The referring source system will first send a referral (ServiceRequest) record using the relevant API in HIE.
- HIE will receive the record and duplicate a copy in Kafka under a specified topic criteria.
- The referred source system that is subscribed to the defined criteria will receive the record in Kafka and will retrieve the record for further action.
- Once an referral has been acknowledged, the requesting system will send an outcome record ServiceRequest through HIE API.
- HIE will again duplicate the updated refferal record in Kafka.
- The reffering 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.
Click MY Core postman API link to view common API used in HIE.
Referral only
This scenario only requires a ServiceRequest record to be shared. Source system can send ServiceRequest record individually and later send other supporting records through different API request if required.
However, ServiceRequest (MY Core) mandatories that;
- a patient record must first exist
ServiceRequest.subject
to be referenced. - an encounter must first exist
ServiceRequest.encounter
to be referenced.
Main Related Profile: 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 | Compostion" @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 referral only | PUT | [base]/ServiceRequest/@referralId | |
Retrieve by record id | - | GET | [base]/[type]/@recordId |
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 Bundle operation 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.
Main Related Profile: 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 | Compostion" @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 referral bundle | POST | [base] | |
Retrieve by record id | - | GET | [base]/[type]/@recordId |
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.
Shift + middle mouse to scroll
Data Elements | Description | Cardinality | FHIR Element Id |
---|---|---|---|
Document set - Profile:ServiceRequest (MY Core) | |||
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) | |||
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) | |||
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) | |||
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) | |||
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) | |||
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) | |||
Reason for Referral | 0..1 | ServiceRequest.reasonReference.reference | |
Allergies - Profile: AllergyIntolerance (MY Core) | |||
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) | |||
Hospital Admission Diagnosis | 0..* | Encounter.diagnosis.where (use.coding.code = 'AD').condition.reference | |
Other Condition Histories - Profile: Encounter (MY Core) | |||
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) | |||
Medications | 0..* | MedicationRequest.medicationCodeableConcept.coding.code | |
Relevant Studies - Profile: Observation profile, DiagnosticReport (MY Core) | |||
Results | 0..* | Observation.code.coding.code | |
Hospital Referral Studies Summary | 0..* | DiagnosticReport.coding.code | |
Plans of Care - Profile: ServiceRequest (MY Core) | |||
Care Plan | 0..1 | ServiceRequest.note.text | |
Correspondence Facility - Profile: | |||
OID | Unique ID assign to facility | ||
Name | |||
Address | Address Type refer Telecommunication Address Use table |