ขั้นตอนการรับบริการผู้ป่วยนอก (OPD Patient Flow)
ขั้นตอนเต็มตั้งแต่ผู้ป่วยลงทะเบียนจนชำระเงินกลับบ้าน ผ่าน 8 สถานะใน OPD
Flow
Registration → Arrived → Screening → Consultation → Medical Discharge → Billing → Financial Discharge
1. Registered
2. Arrived
- พยาบาลกดรับผู้ป่วยเข้าแผนก → เปลี่ยนสถานะ
3. Screening Completed
- บันทึก Vital Signs (Charting → Vital Sign Chart)
- Assign Careprovider ถ้ายังไม่มี
- กด Screening Completed → ชื่อส่งไปหน้าแพทย์
4. Consultation Started (สีเขียว)
5. Consultation Completed (สีเหลือง)
- แพทย์ click สิ้นสุดการตรวจ
- พยาบาลตรวจสอบ Order Details: ยา, Lab, X-ray, Tasks, Consults
- Execute Orders สำหรับ Tasks ที่ได้รับ
- ดำเนินการตาม orders: เก็บ Lab, ส่ง Consult, นัดหมาย
6. Medical Discharge
7. Billing In Progress
8. Financial Discharge
- ชำระเงินเสร็จ → จำหน่ายผู้ป่วยกลับบ้าน
ขั้นตอนละเอียด — Screening (สถานะ 1–3)
Registered → Arrived
- พยาบาล/เจ้าหน้าที่ Click ผู้ป่วยใน Registered column → Visit Detail
- กด Status change icon → เลือก Arrived
- สถานะเปลี่ยนจาก Registered → Arrived
บันทึก Vital Signs
- Click Charting icon → หน้า Charting → เลือก Vital Sign Chart ใน PANELS
- กรอกค่า Vital Signs → กด Save
- ข้อมูลแสดงใน EMR (Observation) + Patient Banner (ตามที่ตั้งค่า)
Assign Careprovider (ถ้ายังไม่มีแพทย์)
- Click Assign Careprovider icon → พิมพ์ชื่อแพทย์ → ยืนยัน
Arrived → Screening Completed
- Click Status change icon → เลือก Screening Completed
- ชื่อผู้ป่วยย้ายไปแสดงในหน้าการทำงานของแพทย์
ขั้นตอนละเอียด — Consultation (สถานะ 4–5)
Consultation Started (สีเขียว)
- แพทย์ Click เริ่มตรวจ → แถบรายชื่อผู้ป่วยเปลี่ยนเป็นสีเขียว
Consultation Completed (สีเหลือง)
- แพทย์ Click สิ้นสุดการตรวจ → แถบเปลี่ยนเป็นสีเหลือง
- พยาบาล/เจ้าหน้าที่ตรวจสอบ Order Details ใน Visit Detail:
- ยา → แผนก Pharmacy จ่ายยา
- Lab → เก็บ Specimen (Laboratory → Specimen Collection)
- X-ray → ส่งทำ Radiology
- Tasks → Execute Order (Ordered → Executed)
- Consults → ส่งปรึกษา (REFERRALS tab)
- Appointments → ตรวจสอบวันนัด / พิมพ์บัตรนัด
ขั้นตอนละเอียด — Execute Order (Tasks)
- Visit Detail → Tasks → Status = Ordered
- Click Execute Order icon ด้านหน้ารายการ
- ระบบแสดงหน้า Tasks → Checkbox เลือกรายการ → Status = Execute Order → Save
- Status เปลี่ยนเป็น Executed อัตโนมัติ
Follow-up Tasks: ต้องทำ Appointment ด้วย → Click Appointment icon → เลือก Department/Careprovider/วันเวลา
ขั้นตอนละเอียด — Lab Specimen Collection
- เมนู Laboratory → Specimen Collection → NEW
- Filter: Department / Ward / Careprovider / Patient / Order No. / Date / Status → SEARCH
- Sort: Lab No. / Name / Order Date
- เลือกรายการ → Print Sticker (พิมพ์ Label)
- เลือกรายการ → Collect Specimen → Confirm → Status: Ordered → Specimen Collected (แสดงใน tab COLLECTED)
Batch: Select All Checkbox → Print Sticker batch / Collect Specimen batch → Confirm
ขั้นตอนละเอียด — Consult Workflow
ฝั่งส่ง:
- แพทย์สั่ง Consult → แสดงใน Visit Details → Consults
- ประสานงานส่งเวรไปแผนกที่รับ Consult
ฝั่งรับ:
- OPD → OPD Worklist → Tab REFERRALS
- Click ชื่อผู้ป่วย → Click รับเป็นผู้ป่วย → Confirm “YES”
- กรณีตรวจไม่ได้วันนั้น: Click Appointment → นัดหมาย
ขั้นตอนละเอียด — Appointment
วิธี 1 (เมนูหลัก):
- OPD → Appointments → เลือก Department / Careprovider / Date / Time slot
- Book Appointment form: ระบุ Patient, Referral Details, Future Order, Task
- SAVE → Print Preview → Print บัตรนัด
วิธี 2 (Day View — หลายคลินิก):
- Appointments → Day View → ระบุ Department หลายแห่ง / Careprovider หลายท่าน
- เลือก Date → Click ช่องเวลา (สีฟ้า = นัดแล้ว / สีขาว = ว่าง)
- Book Appointment form → SAVE → Print
ขั้นตอนละเอียด — Medical Discharge (สถานะ 6)
- OPD Worklist → Click ผู้ป่วย (Status: Consultation Completed)
- Click Status change icon → เลือก Medical Discharge
- ชื่อผู้ป่วยส่งไปแผนกการเงินทันที
ขั้นตอนละเอียด — Billing & Financial Discharge (สถานะ 7–8)
- สถานะ 7 Billing In Progress: การเงินล็อคผู้ป่วย → ออกบิล → ชำระเงิน (ดู OP Billing Workflow)
- สถานะ 8 Financial Discharge: ชำระเงินเสร็จ → จำหน่ายกลับบ้าน
Patient Tracking — ตรวจสอบสถานะ
OPD Worklist → Click ผู้ป่วย → Visit Details → Patient Tracking
แสดง: วันที่ / เวลา / Status / ผู้บันทึก (เรียงตาม ascending)
Modules Involved
Registration → OPD → EMR Doctor → LAB / XRAY → Billing
กรณี Admit: OPD → Admission → IPD
กรณี Consult: OPD → OPD (REFERRALS tab ของแผนกรับ)
UAT Verification (Phase 1–5, 2026-04-29)
Source: TCK-001 walkthrough Phases 1–5, see uat-recon/agent-uat-handoff.
Step 4 — Consultation Started (clarification)
The wiki line “แพทย์ Click เริ่มตรวจ” omits a prerequisite. The doctor must first toggle the Consultation md-icon on the action bar (onConsultationClick()) — without the toggle, the START button is not in the DOM. After toggle:
- Pre-flight:
POST /mpi/patientvisit/isopdvisitclosed
vm.startConsultation()
POST /mpi/patientvisit/logvisitjourney with statusuid: VSTSTS4
See Doctor Worklist Screen and OPD EMR Landing.
Step 6 — Medical Discharge (server-side ICD-10 gate)
Pressing Medical Discharge fails with HTTP 500 ERRORS.ICD10ISMANDATORYFORMEDICALDISCHARGE if no diagnosis row exists on the visit. See MEDHIS Server-Side Gates.
Pre-flight before pressing discharge:
POST /emr/diagnosis/getdetails {patientvisituid}
// Empty diagnosis: [] array means the discharge will be rejected.
To persist a diagnosis correctly, see ICD Coding. The fix is vm.addDiagnosisData(prob), which fires POST /emr/diagnosis/create.
Auto-attached service charge
Every OPD visit gets ค่าบริการผู้ป่วยนอก ในเวลาราชการ (chargecode 55020, item uid 6833e0e7c7a8b1000176354a, 150 baht) attached at visit creation regardless of orders placed. Even a fake patient incurs this 150-baht line if it walks the OP loop. See Generate Bill Screen.
Idle session lock
If the operator (or agent) is idle for ~5 minutes, MEDHIS shows a session-locked modal. See MEDHIS Server-Side Gates for recovery. Server state is durable; only Angular scope is lost.