Draft Design · Planning Package

ระบบสารสนเทศโรงพยาบาล (Hospital HIS)

5 โมดูลเชื่อมโยง: ลงทะเบียน → ตรวจสุขภาพ → ออกผล → ส่ง Lab → Billing

เอกสารชุดนี้สำหรับคุยกับผู้ว่าจ้าง / คนร่าง TOR — ระบบ digital-first ที่พิมพ์เอกสารได้ และทุกโมดูลทำงานร่วมกันบนฐานข้อมูลผู้ป่วยเดียว

สปสช. 43 แฟ้ม / e-Claim ICD-10-TM + TMT HL7 v2 / FHIR HA (สรพ.) + TMI PDPA ใบรับรองแพทย์ (TMC)
📌 นี่คือ draft design รายละเอียดคร่าว ๆ จาก requirement เท่าที่ทราบ — ใช้เป็นจุดตั้งต้นคุยกับผู้ว่าจ้าง ไม่ใช่ spec สุดท้าย

01 Product Requirements (PRD)

บทสรุปผู้บริหาร

ระบบนี้คือ HIS แบบ modular monolith ที่รวม 5 งานหลักของโรงพยาบาลบนฐานข้อมูลผู้ป่วยเดียว (single patient master) ผู้ป่วยมี HN เดียว ที่ทุกโมดูลใช้ร่วมกัน ทำให้ข้อมูลไหลต่อเนื่องไม่ต้องคีย์ซ้ำ และพิมพ์เอกสารราชการได้ทุกจุด

คุณค่าหลัก
  • ลดการคีย์ซ้ำ + ลดข้อผิดพลาด
  • Compliance ครบ (43 แฟ้ม → HDC, e-Claim → สปสช. ในตัว)
  • Lean — รันบนเครื่อง ~4–8 GB RAM, ทีมดูแล 1–2 คน
  • โตได้ — greenfield ได้ + เชื่อม HIS/LIS เดิมผ่าน Mirth
Non-Goals (ไม่ทำในเฟสนี้)
  • IPD/ward, ห้องผ่าตัด, เภสัชเต็มรูปแบบ
  • PACS / ภาพรังสี (เก็บแค่ผลอ่าน)
  • Telemedicine / patient app (roadmap)
  • เขียน HL7/ASTM parser เอง (ใช้ Mirth)

ผู้ใช้งานและบทบาท (RBAC)

Roleหน้าที่หลักโมดูลที่เข้าถึง
เวชระเบียน (Registrar)ลงทะเบียน, ออก HN, ตรวจสอบสิทธิRegistration
พยาบาล (Nurse)vital signs, ซักประวัติ, จัดคิวRegistration, Checkup
แพทย์ (Doctor)ตรวจ, สั่ง Lab, อ่านผล, ลงนามCheckup, Result, Lab
นักเทคนิคการแพทย์ (Lab Tech)รับ specimen, run, validate ผลLab
การเงิน (Cashier)คิดเงิน, รับชำระ, ออกใบเสร็จBilling
ผู้ดูแลระบบ (Admin)ตั้งค่า master, จัดการ user, export สปสช.ทั้งหมด
DPO / Auditorตรวจ audit log, จัดการ consentAudit (read)
RBAC = role → permission ต่อ (module × action). ทุก access ถูก log. ข้อมูล sensitive (HIV/จิตเวช) มี field-level access เพิ่ม

ภาพรวมการไหลของข้อมูล (End-to-End)

[ลงทะเบียน] → ออก HN/VN + ตรวจสอบสิทธิ
     │ (patient_id, visit_id, สิทธิ)
     ▼
[ตรวจสุขภาพ] → vital signs + เลือก package + ตรวจร่างกาย
     │ (สั่งตรวจ)
     ▼
[ส่ง Lab] → order (ORM) → specimen+barcode → run → result (ORU) → validate
     │ (lab_result)
     ▼
[ออกผลตรวจ] → รวมผลทุกสถานี → แพทย์ลงนาม → เล่มผล/ใบรับรองแพทย์
     │ (charges สะสมจากทุกจุด)
     ▼
[Billing] → คิดเงินตามสิทธิ → ใบเสร็จ/ใบแจ้งหนี้ → e-Claim/สปส.
     │
     ▼
[Export] → 43 แฟ้ม → HDC | e-Claim → สปสช. | audit log

ทุกลูกศร = event ภายในระบบ (in-process event / outbox) ไม่ต้องคีย์ซ้ำ

โมดูล 1 — ลงทะเบียนตรวจผู้ป่วย

จุดเริ่มของทุก visit: ระบุตัวผู้ป่วย, ออก/ค้น HN, สร้าง visit (VN), ตรวจสอบสิทธิ, ออกบัตร/sticker

#RequirementPriority
R1.1ค้นผู้ป่วยด้วยเลข ปชช. 13 หลัก / HN / ชื่อ / คิวP0
R1.2ผู้ป่วยใหม่ → ออก HN อัตโนมัติ + บันทึก demographicP0
R1.3อ่านบัตร ปชช. ผ่าน smart card readerP0
R1.4ตรวจสอบสิทธิ real-time กับ NHSO (UC/สปส./ข้าราชการ/เงินสด)P0
R1.5รองรับ multiple coverage + confirm สิทธิทุก visitP0
R1.6สร้าง VN + ส่งเข้าคิวจุดตรวจP0
R1.7บันทึกแพ้ยา/โรคประจำตัว/เสียชีวิต + แจ้งเตือนP0
R1.8พิมพ์ OPD card + sticker/label (barcode)P0
R1.9รองรับ "บัตรประชาชนใบเดียว / 30 บาทรักษาทุกที่"P1
R1.10บันทึก consent (PDPA) ครั้งแรกที่ลงทะเบียนP0

เอกสารพิมพ์: OPD card · Sticker/label (HN/VN + ชื่อ + barcode)

โมดูล 2 — ตรวจสุขภาพ (Package-driven)

จัดการ "ตรวจสุขภาพ" แบบ package (ต่างจาก OPD ที่เป็น chief-complaint): ตรวจประจำปี, ก่อนเข้างาน, เพื่อใบรับรอง, ทำประกัน, วีซ่า

#RequirementPriority
R2.1Package builder — กำหนดชุดรายการตรวจ + ราคา + เงื่อนไข (อายุ/เพศ)P0
R2.2เลือก package → สร้าง worklist อัตโนมัติP0
R2.3บันทึก vital signs (นน./สส./BMI/BP/ชีพจร)P0
R2.4บันทึกตรวจร่างกายโดยแพทย์ (PE, impression)P0
R2.5Station worklist — ติดตามทำครบทุกสถานีหรือยังP0
R2.6สั่ง Lab/X-ray/EKG จาก package อัตโนมัติP0
R2.7แจ้งเงื่อนไขเตรียมตัว (งดอาหาร 8–10 ชม.)P1
R2.8ใช้ patient master + HN เดียวกับ OPDP0

โมดูล 3 — ออกผลการตรวจสุขภาพ + ใบรับรองแพทย์

#RequirementPriority
R3.1รวมผล vital + Lab (reference range + flag H/L) + CXR/EKGP0
R3.2บันทึก impression + recommendationP0
R3.3Doctor sign-off (digital signature / Provider ID Cert)P0
R3.4ออกเล่มรายงานผลตรวจสุขภาพ (PDF)P0
R3.5ออกใบรับรองแพทย์ฟอร์ม TMC (เลขที่ running, เลข ว., ลายเซ็น)P0
R3.6รองรับฉบับ ไทย/อังกฤษ (วีซ่า/work permit)P1
R3.7ใบรับรองแพทย์ 5 โรค (สมัครงาน/ใบขับขี่)P1
R3.8ผลล็อกหลังลงนาม (immutable) + เก็บประวัติแก้ไขP0

เอกสารพิมพ์: เล่มผลตรวจสุขภาพ · ใบรับรองแพทย์ (ฟอร์มแพทยสภา)

โมดูล 4 — ส่งผลให้ห้อง Labs (Lab Order / LIS)

#RequirementPriority
R4.1CPOE — แพทย์สั่ง Lab → สร้าง orderP0
R4.2สร้าง barcode/label ต่อ specimen (sample tracking)P0
R4.3รับผลจาก analyzer/LIS ผ่าน HL7 v2 ORU (ผ่าน Mirth)P0
R4.4รองรับ analyzer เก่าผ่าน ASTM E1381/E1394 (ผ่าน Mirth)P1
R4.5นักเทคนิคการแพทย์ validate/approve ก่อนส่งกลับP0
R4.6Auto-flag H/L + critical value alertP0
R4.7Map ผลโรคเรื้อรัง → LABFU (43 แฟ้ม) + TMLTP1
R4.8ผล route กลับเข้าโมดูลออกผล + แสดงให้แพทย์P0
สถาปัตยกรรมสำคัญ: ไม่เขียน HL7/ASTM parser เอง — ใช้ Mirth Connect เป็น interface engine แยก. ถ้า greenfield ล้วน นักเทคนิคคีย์ผลเข้าตรง แล้วเปิด Mirth เมื่อมี analyzer จริง

โมดูล 5 — Billing ค่ารักษา

#RequirementPriority
R5.1Charge capture — ทุก service/drug/procedure/lab สร้าง charge อัตโนมัติP0
R5.2Coverage rules engine — price/coverage ตามสิทธิP0
R5.3คำนวณ copay / ส่วนเกินที่ผู้ป่วยจ่ายP0
R5.4ออกใบเสร็จ + ใบแจ้งหนี้ + ใบรายละเอียดค่ายาP0
R5.5e-Receipt (e-signature + e-Timestamp ตาม ETDA/สรรพากร)P1
R5.6Export e-Claim ไป สปสช. (≤30 วันหลัง discharge)P0
R5.7เบิกประกันสังคม / เบิกตรงกรมบัญชีกลาง (CSMBS)P1
R5.8รองรับชำระหลายช่องทาง (เคาน์เตอร์/Kiosk/mobile)P2

Non-Functional + Compliance Checklist

ด้านข้อกำหนด
Compliance43 แฟ้ม → HDC, e-Claim → สปสช., ICD-10-TM + TMT, ใบรับรองแพทย์ฟอร์ม TMC
PDPAconsent management, audit log ทุก access, DPO, retention 5 ปี (10 ปี กรณีเสียชีวิต/คดี)
SecurityRBAC, field-level access, encryption at rest/in transit, e-signature
HA / TMIdata governance, availability, BCP, medical record audit
Performance~500–1,000 visit/วัน บนเครื่องเดียว, response < 1s
Resource~4–8 GB RAM / 2 vCPU (on-prem)
LocalizationUI ภาษาไทย, เอกสาร ไทย/อังกฤษ, ปฏิทิน พ.ศ.
Data residencyon-prem หรือ Thai-region cloud (PDPA cross-border)

02 สถาปัตยกรรมระบบ (Architecture)

สรุป 1 บรรทัด: Modular monolith เป็น Go (Fiber v3 หรือ Echo) + Svelte/React + PostgreSQL เดียว multi-schema, PDF ด้วย Gotenberg (ฟอนต์ Sarabun), label ด้วย ZPL raw, LIS ผ่าน Mirth Connect, deploy on-prem Docker Compose บนเครื่อง ~4–8 GB RAM

Recommended Stack

Layerเลือกเหตุผลสั้น
BackendGo + Echo (หรือ Fiber v3)net/http ecosystem ครบ, RAM idle ~25 MB
FrontendReact (default) / SvelteReact = hiring pool + data-grid; Svelte = bundle เล็ก
DatabasePostgreSQL เดียว, multi-schemamodular แต่ JOIN ได้, pgAudit + partitioning
PDF (A4)Gotenberg + Sarabunจัดการ shaping ภาษาไทยดีสุด (Chromium)
LabelZPL raw → TCP 9100reliable ใน hospital LAN
LIS / HL7Mirth Connect (แยก)อย่าเขียน HL7/ASTM parser เอง
ArchitectureModular Monolith, REST, RBACทีมเล็ก, ops 1–2 คน
DeployOn-prem Docker Compose + nginxPDPA data residency + footprint เล็ก
3 จุดชี้ขาด
  1. ถ้าเลือก Fiber ต้องเป็น v3 เท่านั้น — v1/v2 สร้างบน fasthttp → ไม่มี HTTP/2 native, middleware Go ใช้ตรง ๆ ไม่ได้, adaptor เดิมไม่ flush ทันที (กระทบ SSE/live update ของ order→result loop). ทางปลอดภัยกว่าคือ Echo
  2. อย่าเขียน HL7/ASTM เอง — ใช้ Mirth — vendor variation ของ analyzer เยอะ Mirth จัดการ parse/map/queue/retry ให้
  3. Gotenberg + Sarabun = คำตอบเอกสารไทย — wkhtmltopdf ตายแล้ว, gofpdf จัดการสระลอย/วรรณยุกต์ซ้อนได้แย่กว่า engine เบราว์เซอร์

System Context

โรงพยาบาล (on-prem) HIS — Modular Monolith (Go) 1. Registration 2. Checkup 3. Result 4. Lab Order 5. Billing core: Patient Master + Auth + Audit PostgreSQLmulti-schema GotenbergPDF A4 Mirth ConnectHL7/ASTM Label PrinterZPL / TCP 9100 Lab Analyzers/ LIS เดิม ระบบภายนอก NHSO / สปสช.ตรวจสอบสิทธิ + e-Claim MoPH HDC43 แฟ้ม สปส./บัญชีกลาง Smart Card Readerบัตร ปชช. ผู้ใช้: เวชระเบียน / พยาบาล / แพทย์ / Lab / การเงิน

Modular Monolith — โครงสร้างภายใน

Go Binary เดียว REST API Layer — Echo / Fiber v3 + RBAC Modules (แยก schema) registration checkup result lab billing corepatient · auth · audit · events In-process Event Bus + Outbox Export Layer — 43 แฟ้ม / e-Claim

Data Model

Schema layout (1 PostgreSQL, หลาย schema)

core         → patient (MPI), user, role, permission, audit_log, consent, event_outbox
registration → visit, eligibility_check, coverage
checkup      → checkup_package, checkup_order, vital_sign, physical_exam
lab          → lab_order, specimen, lab_result
result       → checkup_report, medical_certificate, signature
billing      → charge, invoice, receipt, payment, claim_export
  • Patient Master (MPI): core.patient เป็น single source of truth — ทุก module อ้าง patient_id กลาง ไม่ duplicate. Matching: deterministic (เลข ปชช. + DOB) สำหรับ greenfield
  • Partitioning: lab_result + charge ใช้ range partition by month (pg_partman) — query prune ตามวันที่, ลบเก่าด้วย DETACH+DROP
  • Audit (PDPA) 2 ชั้น: pgAudit (statement log) + trigger-based row audit เก็บ before/after บนตารางวิกฤต

ER Diagram (ย่อ)

has สิทธิ สั่งตรวจ สั่ง lab ตัวอย่าง ผล รวมผล ใบรับรอง ค่าใช้จ่าย รวมบิล ใบเสร็จ PATIENTnational_idhn (PK) VISITvisit_id PKpatient_id FKvn · visit_type COVERAGEตรวจสอบสิทธิ CHECKUP_ORDERจาก package LAB_ORDERorder SPECIMENbarcode LAB_RESULTloinc · valueflag · validated CHECKUP_REPORTรวมผล MEDICAL_CERTเลข ว. · sign CHARGEitem · amountcoverage_type INVOICEรวมบิล RECEIPTe-receipt

Deployment + Phasing

Deployment footprint

docker-compose:
  nginx     → reverse proxy, TLS, HTTP/2
  api       → Go binary (idle ~25 MB)
  db        → PostgreSQL (ตัวกิน RAM หลัก)
  pdf       → Gotenberg (Chromium)
  mirth     → Mirth Connect (เปิดเมื่อมี LIS)

Minimal spec: เครื่องเดียว ~4 GB RAM / 2 vCPU (greenfield, 1 รพ.); ขยับเป็น 8 GB ถ้ารัน Mirth + traffic จริง. On-prem หรือ Thai-region cloud = default สำหรับ PDPA data residency. Backup: pg_dump + WAL/PITR + off-site

แนวทางเฟสการพัฒนา

เฟสขอบเขตผลลัพธ์
Phase 1 (MVP)core + Registration + Billing พื้นฐาน + พิมพ์ OPD card/ใบเสร็จลงทะเบียน + คิดเงิน end-to-end
Phase 2Checkup + Lab order (greenfield) + พิมพ์ใบสั่ง Lab/stickerflow ตรวจสุขภาพครบ
Phase 3Result + เล่มผล + ใบรับรองแพทย์ + e-signatureออกผล/ใบรับรองได้
Phase 443 แฟ้ม + e-Claim export + validationcompliance สปสช. ครบ
Phase 5Mirth + เชื่อม analyzer จริง + critical alert + e-ReceiptLIS integration เต็ม
RoadmapFHIR profile, Health Link, MOPH/Provider ID, Kiosk/mobileinteroperability

03 Sequence Diagrams

Flow คร่าว ๆ ของแต่ละโมดูล — แก้ได้ง่ายตอนคุยกับผู้ว่าจ้าง

End-to-End — ภาพรวมทั้งระบบ

👤 ผู้ป่วย Registration Checkup Lab Result Billing สปสช. 1. มาตรวจ (ยื่นบัตร ปชช.) 2. ตรวจสอบสิทธิ real-time 3. สิทธิ (UC/สปส./เงินสด) 4. ออก/ค้น HN + สร้าง VN 5. OPD card + sticker (พิมพ์) 6. ส่งเข้าคิว 7. vital signs + เลือก package 8. สั่งตรวจ 9. specimen+barcode→run→validate 10. ผล (event) 11. vital + PE 12. แพทย์รวมผล + ลงนาม 13. เล่มผล + ใบรับรองแพทย์ (พิมพ์) 14. charges 15. คิดเงินตามสิทธิ + copay 16. ใบเสร็จ (พิมพ์) 17. e-Claim export

M1 — ลงทะเบียน + ตรวจสอบสิทธิ

ALT ผู้ป่วยใหม่ [ผู้ป่วยเก่า] 👤 ผู้ป่วย 👤 เวชระเบียน HIS Backend Card Reader PostgreSQL สปสช. Label Printer 1. ยื่นบัตรประชาชน 2. เสียบบัตร 3. เลข ปชช. + demographic 4. ค้นด้วยเลข ปชช. 5. สร้าง patient + ออก HN 6. patient record (HN เดิม) 7. ตรวจสอบสิทธิ 8. สิทธิ + ความครอบคลุม 9. บันทึก coverage+visit+audit+consent 10. ZPL → OPD card + sticker 11. แจ้งเตือน (แพ้ยา) + เข้าคิว

M2 — ตรวจสุขภาพ (Package-driven)

ALT ยังไม่ครบ [ครบแล้ว] 👤 ผู้ป่วย 👤 พยาบาล 👤 แพทย์ Checkup Lab Billing 1. เลือก/มาตาม package 2. สร้าง worklist (สถานีตาม package) 3. บันทึก vital signs 4. สั่ง lab/X-ray/EKG ตาม package 5. ส่งราคา package (charge) 6. ตรวจร่างกาย (PE) + impression 7. update worklist (ครบหรือยัง?) 8. แสดงสถานีที่ค้าง 9. ส่งโมดูล Result

M4 — Lab Order → Result Loop (หัวใจของระบบ)

OPT critical value 👤 แพทย์ 👤นักเทคนิคการแพทย์ HIS (Lab) Label Printer Mirth Connect Analyzer / LIS 1. CPOE — สั่งตรวจ lab 2. สร้าง lab_order + specimen 3. ZPL → specimen barcode เก็บ specimen, ติด barcode 4. ORM (order) HL7 v2 5. ส่ง order 6. run การตรวจ 7. ORU (result) HL7/ASTM 8. result (map LOINC/TMLT) 9. auto-flag H/L + critical check 10. critical alert ทันที 11. validate/approve 12. route → Result + LABFU 13. แสดงผล
ถ้า greenfield (ยังไม่มี analyzer) — ข้าม Mirth/Analyzer, นักเทคนิคคีย์ผลเข้าตรงแล้ว validate. เปิด Mirth เมื่อต่อ analyzer จริง

M3 — ออกผลตรวจ + ใบรับรองแพทย์

OPT ต้องการใบรับรองแพทย์ 👤 แพทย์ Result PostgreSQL e-Signature Gotenberg 👤 ผู้ป่วย 1. ดึงผลทุกสถานี (vital+lab+CXR/EKG) 2. จัดเรียง + reference range + flag 3. impression + recommendation 4. ลงนาม (digital signature) 5. signed 6. ล็อกผล (immutable) 7. template เล่มผล (HTML+Sarabun) 8. PDF เล่มผล 9. ออกใบรับรอง (ฟอร์ม TMC) 10. gen เลขที่ + เลข ว. 11. template ใบรับรอง (TH/EN) 12. PDF ใบรับรอง 13. พิมพ์เล่มผล + ใบรับรอง

M5 — Billing + e-Claim

ทุกโมดูล Billing Coverage Rules 👤 แคชเชียร์ 👤 ผู้ป่วย Gotenberg สปสช./สปส. 1. charge 2. คำนวณตามสิทธิ 3. ราคา + copay + ส่วนเกิน 4. รวมเป็น invoice 5. รับชำระ 6. ใบเสร็จ (e-sign + e-Timestamp) 7. PDF ใบเสร็จ 8. ใบเสร็จ + รายละเอียด (พิมพ์) 9. export e-Claim (≤30 วัน)

Compliance Export — 43 แฟ้ม → HDC

ALT ผ่าน [ไม่ผ่าน] 👤 Admin Export Layer PostgreSQL Validator MoPH HDC 1. trigger export (รายวัน/รายเดือน) 2. ดึงข้อมูล (PERSON, SERVICE, DX...) 3. map → ICD-10-TM + TMT + layout 43 แฟ้ม 4. validate 5. OK 6. ส่งไฟล์ 43 แฟ้ม 7. รายการ error ให้แก้

04 Frontend / Backend Design

Backend — โครงสร้างโปรเจกต์ (Go, Modular Monolith)

his/
├── cmd/server/main.go          # entrypoint, wire modules
├── internal/
│   ├── core/                   # patient master, auth, audit, events
│   ├── registration/           # handler → service → repo (schema "registration")
│   ├── checkup/
│   ├── lab/
│   ├── result/
│   └── billing/
├── pkg/
│   ├── pdf/                    # Gotenberg client
│   ├── label/                  # ZPL generator
│   ├── hl7/                    # Mirth REST client (ไม่ parse เอง)
│   └── export/                 # 43 แฟ้ม / e-Claim
├── migrations/                 # SQL per schema
└── docker-compose.yml

แต่ละ module = handler → service → repo. repo แตะเฉพาะ schema ตัวเอง. cross-module ผ่าน core/events

REST API — ตัวอย่าง endpoints

# Registration
POST  /api/v1/patients                 สร้างผู้ป่วยใหม่ (ออก HN)
GET   /api/v1/patients?nid=...         ค้นผู้ป่วย
POST  /api/v1/visits                   สร้าง visit (VN)
POST  /api/v1/visits/{id}/eligibility  ตรวจสอบสิทธิ NHSO
POST  /api/v1/print/opd-card           พิมพ์ OPD card/sticker

# Checkup
GET   /api/v1/checkup/packages         รายการ package
POST  /api/v1/checkup/orders           สร้าง order จาก package
POST  /api/v1/checkup/{id}/vitals      บันทึก vital signs

# Lab
POST  /api/v1/lab/orders               สั่ง lab (CPOE)
POST  /api/v1/lab/specimens/{id}/label พิมพ์ barcode
POST  /api/v1/lab/results              รับผล (จาก Mirth)
PATCH /api/v1/lab/results/{id}/validate validate ผล

# Result
GET   /api/v1/results/{visitId}        รวมผลทุกสถานี
POST  /api/v1/results/{id}/sign        แพทย์ลงนาม
POST  /api/v1/results/{id}/report      gen เล่มผล PDF
POST  /api/v1/certificates             ออกใบรับรองแพทย์

# Billing
POST  /api/v1/billing/invoices         รวมบิล + คิดสิทธิ
POST  /api/v1/billing/payments         รับชำระ
POST  /api/v1/billing/receipts         ออกใบเสร็จ
POST  /api/v1/export/eclaim            export e-Claim

# Admin / Compliance
POST  /api/v1/export/43files           export 43 แฟ้ม
GET   /api/v1/audit/logs               ดู audit (DPO)

ทุก endpoint ผ่าน RBAC middleware + audit log middleware

UI/UX หลักการสำหรับงาน รพ.

  • Keyboard-first — ใช้ tab/enter/shortcut ได้ทั้ง flow
  • ค้นผู้ป่วยเด่นสุด — search bar ใหญ่ (ปชช./HN/ชื่อ/คิว)
  • แจ้งเตือนสำคัญเด่น — แพ้ยา (สีแดง), เสียชีวิต, critical lab value
  • Worklist/คิว real-time — เห็นสถานะผู้ป่วยทุกจุด
  • Print ทุกจุด — ปุ่มชัดเจน, preview ก่อนพิมพ์
  • ปฏิทิน พ.ศ. + ฟอนต์ Sarabun; เน้น desktop (workstation)

เอกสาร/Template ที่ต้อง build

Templateชนิดฟอร์มอ้างอิง
OPD card / sticker / specimen labelZPLNCCLS AUTO2 (specimen)
ใบสั่งตรวจ LabPDF/ZPLLIS standard
เล่มผลตรวจสุขภาพPDFHA.OS / รพ.เอกชน
ใบรับรองแพทย์ (TH/EN) + แบบ 5 โรคPDFแบบฟอร์มแพทยสภา (TMC)
ใบเสร็จ / e-ReceiptPDFdmsic MoPH + ETDA (e-sign + e-Timestamp)
ใบแจ้งหนี้ / statementPDFรพ. format

ทุก A4 template = HTML/CSS + charset=UTF-8 + embed ฟอนต์ Sarabun

ตัวอย่าง Coverage Rules (Billing)

สิทธิ UC (บัตรทอง):
  - ในชุดสิทธิ → เบิก สปสช. (e-Claim), ผู้ป่วยจ่าย 0 หรือ 30 บาท
  - นอกชุดสิทธิ → copay ผู้ป่วยจ่ายเอง
สิทธิประกันสังคม:
  - รพ.ตามสิทธิ → เบิก สปส. (ผู้ป่วยอาจสำรอง+ขอใบเสร็จ)
ข้าราชการ (CSMBS):
  - เบิกตรงกรมบัญชีกลาง
เงินสด / ประกันเอกชน:
  - ผู้ป่วยจ่ายเต็ม → ออกเอกสารให้เคลม

rules engine แยกเป็น config table (เพิ่ม/แก้สิทธิได้โดยไม่แก้โค้ด)

⚠️ ก่อน implement จริง — ต้องดึง spec ตัวจริง

  1. Layout 43 แฟ้ม + e-Claim เวอร์ชันล่าสุด → hdata.moph.go.th / eclaim.nhso.go.th (verify field-level ไม่ได้ในชั้น draft นี้)
  2. ข้อกำหนด IM ใน HA ฉบับ 5/6 + TMI Hospital IT Quality Framework
  3. HL7/ASTM interfacing เฉพาะรุ่น ของ analyzer ที่ รพ. มีจริง

Roadmap (ไม่บังคับวันนี้): FHIR profile (SIL-TH), SNOMED CT, Health Link / หมอพร้อม PHR, MOPH ID / Provider ID Digital Cert — ออกแบบ data model ให้ map ได้ในอนาคต