คู่มือ HOSxP X-Ray Worklist
ดึงรายการสั่ง X-Ray จาก HOSxP ส่งต่อให้เครื่อง console หรือระบบอื่น — rev 2
1. ภาพรวม
ระบบเชื่อมต่อฐานข้อมูล HOSxP (MySQL/MariaDB หรือ PostgreSQL) จากตาราง xray_report แล้วแปลงเป็น Worklist ให้:
- ดูรายการบนหน้าเว็บ
/worklist/xray - ดึงผ่าน JSON/CSV API
- เขียนไฟล์ล่าสุดให้ระบบอื่น polling
- ส่งให้เครื่อง X-Ray Console ผ่าน DICOM Modality Worklist (C-FIND)
2. ตั้งค่าใน Admin
ไปที่ จัดการระบบ → ส่วน HOSxP X-Ray Worklist
| รายการ | คำอธิบาย |
|---|---|
| เปิดใช้งาน HOSxP | ต้องเปิดก่อนจึงจะดึง worklist ได้ |
| Database Type / Host / Port | MySQL port 3306, PostgreSQL port 5432 — แนะนำใช้ user อ่านอย่างเดียว |
| Charset | MySQL ใช้ tis620 หรือ utf8mb4 |
| ดึงย้อนหลัง (วัน) | 0 = วันนี้, 1 = รวมเมื่อวาน — ใช้เมื่อ API/Export ไม่ระบุวันที่ (หน้าเว็บค่าเริ่มต้นเป็นวันนี้เสมอ) |
| ดึงทั้งหมดภายในวัน | รวมรายการที่รายงานแล้ว (มี report_date) ไม่ใช่แค่ค้างตรวจ |
| รวม HN เดียวกัน | รวมหลายรายการ X-Ray ครั้งเดียวกันเป็นแถวเดียว ชื่อรายการคั่นด้วย comma เช่น Skull AP,Skull Lat,Knee Rt Lat |
| Worklist Token | ไม่บังคับ — ตั้งแล้ว API ต้องส่ง ?token=... หรือ Bearer header |
| DICOM MWL SCP | เปิด SCP รับ C-FIND จากเครื่อง console — แนะนำ port 11112 บน Windows |
Checkbox ดึงทั้งหมด/รวม HN บันทึกอัตโนมัติเมื่อติ๊ก — ไม่ต้องกดบันทึกหลัก
3. หน้า Worklist บนเว็บ
URL: /worklist/xray
- ค่าเริ่มต้นแสดง วันนี้เท่านั้น (ไม่ดึงเมื่อวาน)
- ตาราง: เวลา, HN, ชื่อผู้ป่วย, รายการ X-Ray, แพทย์/แผนก, Accession
- กรองได้ด้วย Start/End Date, HN, Limit, เฉพาะค้างตรวจ
- โหมดรวม HN: รวมเฉพาะคอลัมน์รายการ X-Ray ตารางยังเป็นแบบเดิม
4. API สำหรับระบบอื่น
JSON
GET /api/worklist/xray
พารามิเตอร์ (ไม่บังคับ):
dateหรือstart_date+end_date— ไม่ใส่ = วันนี้hn— ค้นหา HNpending=1เฉพาะค้างตรวจ /pending=0ทั้งหมดในวันlimit— สูงสุด 1000 (ค่าเริ่มต้น 200)token— ถ้าตั้ง Worklist Token
CSV
GET /api/worklist/xray.csv?date=2026-06-17
Export ไฟล์ล่าสุด (Admin)
กด Export Worklist File ใน Admin หรือ POST /api/worklist/export-file
ไฟล์: data/worklist/xray_worklist_latest.json และ xray_worklist_latest.csv
สถานะ
GET /api/worklist/status
5. DICOM Modality Worklist (MWL)
ตั้งค่าที่เครื่อง X-Ray Console:
- Server IP = IP เครื่องที่รัน XRAY PACS
- Port = MWL Port จาก Admin (ค่าเริ่มต้น 11112)
- Called AE Title = MWL AE Title (ค่าเริ่มต้น XRAYPACS_MWL)
- Query วันที่ปัจจุบัน — ระบบดึงรายการจาก HOSxP ตามวันที่ที่ console ขอ
ทดสอบได้จาก Admin → ปุ่ม ทดสอบ DICOM MWL
6. การรวมรายการ HN
เมื่อเปิด รวมรายการ HN เดียวกัน ระบบจับกลุ่มตาม:
- HN + วันที่สั่ง + VN (ถ้ามี VN)
- HN + วันที่สั่ง + เวลาสั่ง (ถ้าไม่มี VN)
ชื่อรายการ X-Ray หลายรายการจะรวมในฟิลด์ procedure_name คั่นด้วย comma ไม่มีช่องว่าง
หมายเหตุ: ไม่ได้กรองเฉพาะรายการบางประเภท — แสดงทุกรายการ X-Ray ที่สั่งในช่วงวันที่ที่เลือก
7. แก้ปัญหาเบื้องต้น
| อาการ | แนวทาง |
|---|---|
| ยังเห็นข้อมูลเมื่อวาน | รีสตาร์ทโปรแกรมให้เห็น worklist rev 2 ใน console — ถ้าใช้ .exe ต้อง build ใหม่ |
| Checkbox ไม่จำค่า | ตรวจว่ารันโปรแกรมตัวเดียวบนพอร์ต 5000 และ config อยู่ที่ C:\XRAY_PACS\app_config.json |
| เชื่อมต่อ HOSxP ไม่ได้ | กดทดสอบ HOSxP ใน Admin — ตรวจ firewall, user/password, db_type และ port |
| Console ดึง MWL ไม่ได้ | ตรวจ MWL เปิดอยู่, port 11112 ไม่ถูกบล็อก, AE Title ตรงกัน, ทดสอบจาก Admin |
8. ตัวอย่าง JSON response
{
"success": true,
"count": 1,
"items": [{
"hn": "0030887",
"patient_name": "ชื่อผู้ป่วย",
"procedure_name": "Skull AP,Skull Lat,Knee Rt Lat,Knee Rt AP",
"scheduled_datetime": "2026-06-13 09:30:00",
"accession_number": "123456",
"status": "pending",
"grouped": true,
"order_count": 4
}]
}