Encounters represent interactions between a patient and a healthcare provider.

At its core, it represents a documented contact between a patient and healthcare provider, serving as a container for clinical events and activities.

Key Purpose

Resource Structure

Version 1

{
	"id": "str", // Unique ID in the system.
	"status": "options", // Planned | In-progress | On-hold | Completed | Discahrged ... Refer to [<https://hl7.org/fhir/valueset-encounter-status.html>](<https://hl7.org/fhir/valueset-encounter-status.html>)
	"status_history": [{"status": "options", "period": {"start": "datetime", "end": "datetime" }}] // 
	"class": { "system": "str", "code": "str", "display": "str" } // Ambulatory, Inpatient, Emergency, Virtual, Home Health, Other. Refer to <http://terminology.hl7.org/ValueSet/encounter-class>
	"class_history": [{"class": {"str"}, "period": {"start": "datetime", "end": "datetime" }}] // 
	"subject": "id|str", // Reference to the patient (binding to the Patient resource).
	//"participant": [{
	//	"type": [{ "system": "str", "code": "str", "display": "str" }],
	//	"period": {"start": "datetime", "end": "datetime" }
	//	"individual": "id|str" // Reference to user (doctor, nurse, volunteer)
	//}], // Add users involved in the care, it can also be possible to have a volunteer or home nurse at a later version
	"period": { "start": "datetime", "end": "datetime" }, // Start time & End time of the encounter, end time is optional if ongoing
	"length": { "value": "int", "unit": "minutes" }, // Duration of encounter. (Computed and stored in the server)
	//"diagnosis": [{
	//	"condition": "id|fk", // Reference to Condition (link to diagnoses made during the encounter)
	//"use": { "system": "str", "code": "str", "display": "str" } // refer "[<http://terminology.hl7.org/CodeSystem/diagnosis-role>](<http://terminology.hl7.org/CodeSystem/diagnosis-role>)"
	//"rank": "int" // Ranking to signify the primary diagnosis (1), secondary, etc. 
	"serviceProvider": "id|fk", // Orgnaisation link
	"facility": "id|fk" // Facility Link
	"appointment": "id|fk", // Reference to Appointment if it was planned
	"hospitalization": {
	  "readmission": "bool" // True indicated that its a readmission
		"admitSource": "" // ENUM <https://www.hl7.org/fhir/r4/valueset-encounter-admit-source.html>
		"dischargeDisposition": "" // ENUM <https://www.hl7.org/fhir/r4/valueset-encounter-discharge-disposition.html>
		"dietPreference":  "" // <https://www.hl7.org/fhir/r4/valueset-encounter-diet.html>
	}, 
	"location": [{
		"location": "id|fk", // Reference to the Location (ward, room, etc.)
		"status": "active|completed" // Active if the patient is currently in that location
	}], // Can be our bed history
	"priority": "", // ENUM Priority of encounter (Routine, Urgent, Emergency). <https://www.hl7.org/fhir/r4/v3/ActPriority/vs.html>
	"external_identifier" : "",
	"note": [{
		"authorReference": "id|fk", // Who made the note
		"time": "datetime",
		"text": "str" // Free text for any clinical notes related to the encounter.
	}] // This can be our patient notes 
}

We plan to use encounters for both OP and IP workflows.

Problems with using encounters solely for IP workflows