Changelog
Version 1.2 (Current)
Production 2026-03-24Version Status
This version is currently in development and features may change before release.
Data Quality Enhancements
High Impact Changes
The following changes are marked as high impact and may require significant updates to your EMR integration.
New Features
Surgeries - Required fields (high impact):
- theater_name
- service_type
- started_at
- ended_at
- reason
- procedure_notes
- surgeon_name
Surgeries - New attributes:
pre_operative_diagnosis- The clinical diagnosis made BEFORE surgery, based on symptoms, physical examination, and investigations.post_operative_diagnosis- The final diagnosis confirmed AFTER the surgery, based on what the surgeon actually found during the operation.surgeries.details.position- how the patient lies during surgery
surgeries Example Structure
"surgeries": [
{
"visit_code": "00V00332",
"encounter_code": "00E00333",
"code": "00C00322",
"symptoms": ["Swelling of the abdomen", "Red skin"], //optional
"theater_name": "Operating Theater 2",
"service_type": "Laparoscopic Cholecystectomy",
"started_at": "2026-01-17T10:45:00.000+07:00",
"ended_at": "2026-01-17T13:15:00.000+07:00",
"reason": "Symptomatic gallstones with recurrent biliary colic",
"anesthesia_type": "General Endotracheal",
"procedure_notes": "Patient positioned supine. Pneumoperitoneum established with Veress needle. Four ports were placed. Gallbladder dissected from liver bed with hook cautery. Cystic duct and artery identified, clipped and divided. Gallbladder removed through umbilical port. Hemostasis confirmed. No bile leak. Ports removed under direct visualization. Wounds closed with 3-0 Vicryl and 4-0 Monocryl. Patient tolerated procedure well.",
"complications": [
"Mild bleeding from liver bed, controlled with electrocautery"
],
"specimens": [
"Gallbladder with multiple stones",
"Cystic fluid sample"
],
"pre_operative_diagnosis": "Ancienne Sign nail du fémur gauche avec plaie infecté (3ans)",
"post_operative_diagnosis": "Ancienne Sign nail du fémur gauche avec plaie infecté (3ans)",
"details": {
"position": "Décubitus dorsale"
},
"blood_loss": "5cl",
"surgeon_name": "Dr. Sok Chanmaly",
"anesthetist_name": "Dr. Chea Sokunthea",
"assistant_names": ["Dr. Chhan Sokun", "Nurse Van Chea"],
"created_at": "2026-01-17T10:45:00.000+07:00",
"updated_at": "2026-01-17T13:15:00.000+07:00"
}
]Version 1.1
New Features
Data Integrity Improvements
Introduced Submission Block Rules to enhance data integrity:
| Rule | Description |
|---|---|
| Duplication Submission | Prevents patient admission at the same time with different codes |
| Abnormal Submission | Blocks attempts to update previous submission data |
Data Quality Enhancements
High Impact Changes
The following changes are marked as high impact and may require significant updates to your EMR integration.
Triage - Required fields (high impact):
- Height
- Weight
Vital Signs - Required fields (high impact):
- Systolic Blood Pressure
- Diastolic Blood Pressure
- Heart Rate
- Respiratory Rate
- Temperature
- Blood Oxygen
SOAP Notes - New attributes:
code- Unique identifierrecorded_at- Timestamprecorded_by- Healthcare provider nametitle- Provider title/role
SOAP Example Structure
"SOAPS": [
{
"encounter_code": "EN123",
"code": "EN123-SP1",
"subjective": "Descriptive Subject",
"objective": "Descriptive Object",
"assessment": "Descriptive assessment",
"plan": "Treatment plan details",
"evaluation": "Evaluation could be diagnosis or more",
"recorded_at": "2026-01-01T00:00:00+07:00",
"recorded_by": "John Doe",
"title": "Doctor"
}
]Prescriptions - Required fields (high impact):
medication.daysmedication.code- Refer to drug code, must be unique (no duplicate drug codes)
Invoice - Required fields:
payment_type- use NPCA standard for payment type, can be code or name
Clinical Encounters (Progress Notes, Outpatient, Inpatient, Emergency, Surgery):
- Added optional
symptomsarray property - Added optional
is_newboolean field to distinguish new cases from follow-ups
Changed Features
Migration Guide
These changes may require updates to your existing integration. See migration notes below.
Triage
- Must have only one item per visit
- If patient is triaged multiple times during wait, use the latest one before admission or consultation
Vital Signs
- Must link to another encounter:
- At least one link to a Triage encounter (
triage.code = vital_sign.encounter_code) - Remaining vital signs must link to Progress Notes encounters (
progress_notes.code = vital_signs.encounter_code)
- At least one link to a Triage encounter (
Migration Note
If your EMR records daily vital signs but submits them as Triage data, convert those to Progress Notes (except the first one). Progress Notes don't require chief_complaint, height, or weight fields, making this conversion easier.
Progress Notes
- For IPD visits:
- Must have at least one Progress Note
- Should have at least one SOAPS reference linked to the Progress Note
SOAPS Notes
- OPD visits: Should have 1 SOAPS per encounter (
soap.encounter_codelinks tooutpatient.code) - IPD visits: Should have multiple SOAPS based on length of stay (
soap.encounter_codelinks toinpatient.codeorprogress_note.code)
Referrals
- Introduced
health_facilityobject structure:
Referrals Structure Example
"referrals": {
"referred_from": null,
"referred_to": {
"code": "",
"referral_number": "",
"transportation": "",
"health_facility": {
"name": "", // required
"code": "", // required
"label": "string", // optional
"type": "string" // optional
},
"reason": "",
"has_called": true,
"caretaker_name": "",
"caretaker_phone": "",
"referred_by": "",
"referred_by_phone": null,
"referred_at": null,
"received_by": null,
"received_at": null,
"medications": ""
}
}Bug Fixes
Fixed Issues
- Fixed issue where vital sign notes could not be created under core encounters
- Resolved duplicate SOAP notes creation under IPD visits
- Corrected edge cases in encounter transitions that bypassed validation rules
Deprecated
Deprecated Features
The following features are deprecated and will be removed in future versions:
- Allowing multiple triage notes
- Allowing multiple SOAP notes without strict visit-type validation
Important Clarifications
Prescriptions
Prescriptions serve as containers for all medications with the following characteristics:
- Medication dispenses during hospitalization: Require
encounter_codelinking toprogress_notes,out.patient,inpatient,surgery, oremergency - Medication dispensed for home use: Require
encounter_codeto benull - Validation: Medications submitted without
encounter_codeare treated as home medications and may be rejected
Diagnosis
The standard supports detailed diagnosis tracking per encounter:
- Requirements:
- At least 1 diagnosis_in required
- At least 1 diagnosis_out required (type "primary" treated as diagnosis_out)
- Behavior:
- Diagnosis with
encounter_codesaved as submitted - Single diagnosis submissions saved as both diagnosis_in and diagnosis_out
- Diagnosis with