Laboratory
Introduction
The HIE portal provides a laboratory module to order a laboratory test investigation, create and review the lab report and result. This function is enable for both internal and external type or ordering.
Click MY Core postman API link to view common API used in HIE.
[base] = address url e.g. "https://fhir.hie.moh.gov.my/baseR4/" [type] = resource type e.g. "DiagnosticReport | Observation" @patientIdentifier = unique patient identifier defined from source system e.g "HIE-00000003" @recordId = unique record id defined from source system e.g. "dr-sample" | "obs-labsample" @recordIdentifier = record identifier defined from source system e.g. "0000001000" | "00021"
Sample Description | Sample Body | API Method | API |
---|---|---|---|
Create/Update Lab Order | POST | [base] | |
Create/Update Lab Report And Result | POST | [base] | |
Retrieve Lab Report And Result by patient identifier | - | GET | [base]/DiagnosticReport?subject.identifier=@patientIdentifier&_include=DiagnosticReport:result |
Retrieve Any Record By ID | - | GET | [base]/[type]/@recordId |
Retrieve Any Record By Identifier | - | GET | [base]/[type]?identifier=@recordIdentifier |
Resource Breakdown
Using HIE, FHIR resources are used to store the ordering process up to the lab result and reporting process.
Based on the diagram below, the FHIR resources is broken down and used as described;
Lab Service Request
Using HealthcareService (MY Core) and SpecimenDefinition (MY Core), each facility will define what laboratory orderable are available for their respective healthcare worker to request.
Lab Request List | Phlebotomy Station
When a request is made, it will be stored using ServiceRequest (MY Core) and Specimen (MY Core).
The ServiceRequest status will be "draft" ServiceRequest.status:"draft"
A QuestionnaireResponse (MY Core) related to PER-PAT 301 Questionnaire (Malaysia standard form for general laboratory ordering) form can be attached to the ServiceRequest (MY Core) to assist the operational flow.
Once user confirms and intiates their request a Task (MY Core) will be created.
- The ServiceRequest status will be updated to "active"
ServiceRequest.status:"active"
- The Task status will be initiate with status "initiate"
Task.status:"initiate"
Laboratory Console
Task (MY Core) will then track and execute the operational business flow up until its intended or alternative destination is achieved.
As the Task moves to each check point it will update its status as defined in the diagram
Report Form
Once a report is to be stored in HIE, it will be stored as DiagnosticReport (MY Core) while the result is stored as Observation Lab.
If integration is from an analyzer machine, it is expected to send both DiagnosticReport & Observation.
Source System Integration Point
There are 2 possible use case where a source system can consider exchanging lab records between HIE. During;
- External Ordering
- Retrieving Laboratory Report & Result
For further details on the flow of sending data and/or retrieving can refer to Integration Overview under Care Coordination (CC) category.
External Order (Integration Point 1)
An external order towards another facility/source system can be done through HIE using the MY Core Standard. The profile related to lab ordering is ServiceRequest (MY Core) and Specimen (MY Core). Both record must exist when sending to HIE.
The ServiceRequest (MY Core) record must have;
- A status fix as "active"
status:"active"
- An intent
intent
- The category fix as "108252007" (lab order)
category.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/servicerequest-category-my-core').code:"108252007"
- The test specialty
category.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/lab-sub-group-my-core').code
- The test code
code.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/lab-my-core').code
- (Optional) The tes LOINC code
code.coding.where (system = 'http://loinc.org').code
- A subject referenced
subject
- An encounter referenced
encounter
- Date order authored
authoredOn
- Type of order fixed as "affiliate"
performerType:"affiliate"
- Practitioner who requested
requester
- Requesting facility referenced
performer.where (identifier.value = 'requester-facility').reference
- Performing facility
performer.where (identifier.value = 'requester-facility').reference
The Specimen (MY Core) record must have;
- An identifier assigned for lab
accessionIdentifier.where (url = 'http://fhir.hie.moh.gov.my/sid/service-request-id').value
- A specimen type
type
- A subject referenced
subject
- The type of container.
container.type
Laboratory Report & Result (Integration Point 2)
A lab report and result can be sent to HIE for record exchange or to fulfil another requesting source system order (Integration Point 1). The profile related to lab reporting is DiagnosticReport (MY Core) while lab results is Lab Results (MY Core)
The lab report (DiagnosticReport (MY Core)) must have;
- A status fixed as "final"
status:"final"
- The category fixed as "108252007" (lab order)
category.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/servicerequest-category-my-core').code:"108252007"
- The test code
code.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/lab-my-core').code
- (Optional) The test LOINC code
code.coding.where (system = 'http://loinc.org').code
- A subject referenced
subject
- An encounter referenced
encounter
- A report conclusion
conclusion
The lab result (Lab Results (MY Core)) must have;
- A status fixed as final
status:"final"
- The category fixed as "108252007" (lab order)
category.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/servicerequest-category-my-core').code:"108252007"
- The test code
code.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/lab-my-core').code
- (Optional) The test LOINC code
code.coding.where (system = 'http://loinc.org').code
- A subject referenced
subject
Lab Analyzer Integration Point
Related to lab analyzer, it is expected to send both lab report and result. However, the status of both DiagnosticReport is draft status.draft
The lab report (DiagnosticReport) must have;
- A status fixed as draft
status:"draft"
- The category fixed as "108252007" (lab order)
category.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/servicerequest-category-my-core').code:"108252007"
- The test code
code.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/lab-my-core').code
- (Optional) The test LOINC code
code.coding.where (system = 'http://loinc.org').code
- A subject referenced
subject
- An encounter referenced
encounter
- A report conclusion
conclusion
The lab result (Observation) must have;
- A status fixed as draft
status:"draft"
- The category fixed as "108252007" (lab order)
category.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/servicerequest-category-my-core').code:"108252007"
- The test code
code.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/lab-my-core').code
- (Optional) The test LOINC code
code.coding.where (system = 'http://loinc.org').code
- A subject referenced
subject