Encounter Summary
Encounter Summary is a compilation of different records assembled during a patient's healthcare encounter event. It can be as holistic and detailed from the start to the end of an encounter with multiple records being created and updated as an encounter progresses (from arrived to in-progress to finished) or as a single snapshot of an encounter where information is sufficient enough for meaningful information exchange such as at the end of an encounter in a form of a discharge/visit summary 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 Composition (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 referral summary can be shared within the Composition 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.
Scenarios
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.
Composition only
This scenario only requires a composition record to be shared. Source system can send record in multiple section in a composition or in a single section "Clinical Information" Composition.section.where (code.coding.code = '55752-0').text
However, Composition (MY Core) mandatories that;
- a patient record must first exist
Composition.subject
to be referenced. - a custodian (facility that maintains the composition) must first exist
Composition.custodian
to be referenced.
Related Profile: 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 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 Composition only | 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 |
Composition with supporting records
This method of data sharing uses Bundle opearation 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.
Related profile: 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 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 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 |
Amend Composition
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 | JSON | PUT | [base]/Composition/@compositionId |
Amend composition with supporting record | JSON | PUT | [base] |
Delete Composition
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 | JSON | PUT | [base]/Composition/@compositionId |
External Reference
Refer "Composition 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.
Data Elements | Description | Cardinality | FHIR Element ID |
---|---|---|---|
Document Set - Profile:Composition (MY Core) | |||
Document unique id | A unique identifier of the document | 0..1 | Composition.id |
Document repositpry 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 |
Custodian - Profile: Composition (MY Core) | |||
OID | Unique ID assign to facility | Composition.custodian.reference | |
Name | Composition.custodian.display | ||
Address | Address Type refer Telecommunication Address Use table | N/A | Composition.custodian.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 | Address 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 | IC | 0..1 | Patient.identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/my-kad-no').value |
Author - Profile: Composition (MY Core) | |||
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 |
Cosultant - Profile: Composition (MY Core) | |||
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 |
Visit/Encounter - Profile: Encounter (MY Core) | |||
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 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 id | Refer DSDLOC table | 1..1 | Encounter.type.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/specialty-my-core').code |
Allergies - Profile: AllergyIntolerance (MY Core) | |||
Allergies 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') | |
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 | |
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 Discharge Studies Summary | 0..* | DiagnosticReport.coding.code | |
Plans of Care - Profile: Composition (MY Core) | |||
Care Plan | 0..1 | Composition.section.where (code.coding.code = '18776-5').text | |
Correspondence Facility - Profile: | |||
OID | Unique ID assign to facility | ||
Name | |||
Address | Address Type refer Telecommunication Address Use table |
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 Composition (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 referral summary can be shared within the Composition 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.
Scenarios
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.
Composition only
This scenario only requires a composition record to be shared. Source system can send record in multiple section in a composition or in a single section "Clinical Information" Composition.section.where (code.coding.code = '55752-0').text
However, Composition (MY Core) mandatories that;
- a patient record must first exist
Composition.subject
to be referenced. - a custodian (facility that maintains the composition) must first exist
Composition.custodian
to be referenced.
Related Profile: 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 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 Composition only | 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 |
Composition with supporting records
This method of data sharing uses Bundle opearation 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.
Related profile: 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 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 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 |
Amend Composition
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 | JSON | PUT | [base]/Composition/@compositionId |
Amend composition with supporting record | JSON | PUT | [base] |
Delete Composition
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 | JSON | PUT | [base]/Composition/@compositionId |
External Reference
Refer "Composition 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.
Data Elements | Description | Cardinality | FHIR Element ID |
---|---|---|---|
Document Set - Profile:Composition (MY Core) | |||
Document unique id | A unique identifier of the document | 0..1 | Composition.id |
Document repositpry 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 |
Custodian - Profile: Composition (MY Core) | |||
OID | Unique ID assign to facility | Composition.custodian.reference | |
Name | Composition.custodian.display | ||
Address | Address Type refer Telecommunication Address Use table | N/A | Composition.custodian.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 | Address 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 | IC | 0..1 | Patient.identifier.where (system = 'http://fhir.hie.moh.gov.my/sid/my-kad-no').value |
Author - Profile: Composition (MY Core) | |||
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 |
Cosultant - Profile: Composition (MY Core) | |||
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 |
Visit/Encounter - Profile: Encounter (MY Core) | |||
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 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 id | Refer DSDLOC table | 1..1 | Encounter.type.coding.where (system = 'http://fhir.hie.moh.gov.my/CodeSystem/specialty-my-core').code |
Allergies - Profile: AllergyIntolerance (MY Core) | |||
Allergies 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') | |
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 | |
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 Discharge Studies Summary | 0..* | DiagnosticReport.coding.code | |
Plans of Care - Profile: Composition (MY Core) | |||
Care Plan | 0..1 | Composition.section.where (code.coding.code = '18776-5').text | |
Correspondence Facility - Profile: | |||
OID | Unique ID assign to facility | ||
Name | |||
Address | Address Type refer Telecommunication Address Use table |