Database Schema Design
ระบบเภสัชกรรม (Pharmacy Information System)
โรงพยาบาลค่ายธนรัชน์
เอกสารเลขที่: SRS-1.2.13-SCHEMA
เวอร์ชัน: 1.0
วันที่: 30 ตุลาคม 2568
ผู้จัดทำ: ทีมพัฒนาระบบ
ผู้อนุมัติ: ผู้อำนวยการโรงพยาบาลค่ายธนรัชน์
Database Schema Design
ER Diagram: รายละเอียด Entity-Relationship Diagram และความสัมพันธ์ระหว่างตารางแบบละเอียด ดูได้ในไฟล์ ER Diagram.md
ระบบเภสัชกรรมเป็นระบบศูนย์กลางการจัดการยาและเวชภัณฑ์ทั้งหมดของโรงพยาบาล ทำหน้าที่เป็น Pharmacy Hub System ที่รองรับการรับคำสั่งยาจากหน่วยตรวจต่างๆ การตรวจสอบความปลอดภัยของยา การจ่ายยา และการเชื่อมโยงกับระบบอื่นๆ ผ่าน API Integration:
- ระบบเวชระเบียน (1.2.1): ข้อมูลผู้ป่วยหลักและการเข้ารับบริการ
- ระบบซักประวัติ (1.2.2): ข้อมูลการแพ้ยาและประวัติการใช้ยา
- ระบบห้องตรวจแพทย์ (1.2.3): การสั่งยาผู้ป่วยนอก (OPD)
- ระบบห้องฉุกเฉิน (1.2.4): การสั่งยาฉุกเฉิน (STAT/ASAP)
- ระบบทันตกรรม (1.2.5): การสั่งยาทันตกรรม
- ระบบนัดหมาย (1.2.6): การคำนวณจำนวนยาตามวันนัด
- ระบบงานชันสูตร (1.2.7): การดูผล Lab ประกอบการสั่งยา
- ระบบการเงิน (1.2.14): การคำนวณค่าใช้จ่ายยาและเวชภัณฑ์
- ระบบตรวจสอบสิทธิ (1.2.15): การกำหนดราคาตามสิทธิการรักษา
- ระบบผู้ป่วยใน (1.2.17): การสั่งยาผู้ป่วยใน (IPD) และยากลับบ้าน
🔑 Pharmacy Hub Architecture
การระบุแหล่งที่มาของคำสั่งยา:
SourceSystem: ระบุระบบต้นทาง ('OPD', 'IPD', 'ER', 'DENTAL', 'CLINIC')SourceID: รหัสอ้างอิงไปยัง ExaminationID, EmergencyCaseID, AdmissionIDPatientType: ประเภทผู้ป่วย ('OPD', 'IPD', 'ER')
การจัดการ Shared Integration:
- การตรวจสอบ Drug Interaction แบบ Real-time
- การเชื่อมโยงประวัติการแพ้ยาจากระบบซักประวัติ
- การคำนวณราคาตามสิทธิการรักษา
- การส่งข้อมูลค่าใช้จ่ายไปยังระบบการเงิน
8.2.13 ตารางหลัก (Core Tables)
หมายเหตุ: ตาราง PATIENT, VISIT, DRUG_ALLERGY จะอยู่ในระบบเวชระเบียน (1.2.1) และระบบซักประวัติ (1.2.2) ระบบเภสัชกรรมจะอ้างอิงผ่าน Foreign Key เท่านั้น
8.2.13.1 ข้อมูลทะเบียนยาและเวชภัณฑ์หลัก
8.2.13.1.1 ตารางข้อมูลยาหลัก
Table: DRUG_MASTER (ข้อมูลทะเบียนยาและเวชภัณฑ์)
วัตถุประสงค์: เก็บข้อมูลทะเบียนยาและเวชภัณฑ์ครบถ้วน รวมถึงรหัสมาตรฐานต่างๆ รายละเอียดการใช้งาน และการเชื่อมโยงกับระบบอื่น ตาม TOR ข้อ 1.2.13.1.1-1.2.13.1.17
| Field | Type | Key | Description |
|---|---|---|---|
| DrugCode | VARCHAR(20) | PK | รหัสยาของโรงพยาบาล (Primary) |
| GPOCode | VARCHAR(20) | รหัสยา GPO (องค์การเภสัชกรรม) | |
| INVCode | VARCHAR(20) | รหัสยา INV (ระบบคลัง) | |
| TMTCode | VARCHAR(20) | รหัสยา TMT (Thai Medical Terminology) | |
| Standard24Code | VARCHAR(24) | รหัสยามาตรฐาน 24 หลัก (สปสช.) | |
| GenericName | NVARCHAR(200) | ชื่อสามัญของยา (Generic Name) | |
| TradeName | NVARCHAR(200) | ชื่อการค้า (Trade Name) | |
| SearchKeywords | NTEXT | คำช่วยค้นหา (หลายชื่อ คั่นด้วย ;) | |
| DrugCategoryID | VARCHAR(20) | FK | รหัสหมวดหมู่ยา (อ้างอิง DRUG_CATEGORY) |
| TherapeuticGroupID | VARCHAR(20) | FK | รหัสกลุ่มการออกฤทธิ์ (อ้างอิง THERAPEUTIC_GROUP) |
| DosageFormID | VARCHAR(20) | FK | รหัสรูปแบบเภสัชภัณฑ์ (อ้างอิง DOSAGE_FORM) |
| Strength | NVARCHAR(50) | ความแรงของยา | |
| StrengthUnit | NVARCHAR(20) | หน่วยความแรง (mg, g, ml, %) | |
| Volume | DECIMAL(10,2) | ปริมาตร/ขนาด | |
| VolumeUnit | VARCHAR(20) | หน่วยปริมาตร (ml, tablet, capsule) | |
| UnitOfMeasure | NVARCHAR(20) | หน่วยนับ (เม็ด, แคปซูล, ขวด) | |
| PackageSize | INT | จำนวนบรรจุต่อ Unit | |
| DefaultQuantity | INT | จำนวนการสั่งเริ่มต้น | |
| MaxQuantity | INT | จำนวนสั่งสูงสุด | |
| TherapeuticUseThai | NTEXT | ประโยชน์ในการรักษา (ไทย) | |
| TherapeuticUseEng | NTEXT | ประโยชน์ในการรักษา (อังกฤษ) | |
| DirectionForUseThai | NTEXT | วิธีใช้ยา (ไทย) | |
| DirectionForUseEng | NTEXT | วิธีใช้ยา (อังกฤษ) | |
| LabelHelperThai | NTEXT | ฉลากช่วย (ไทย) | |
| LabelHelperEng | NTEXT | ฉลากช่วย (อังกฤษ) | |
| IsNationalList | BIT | ยาในบัญชียาหลักแห่งชาติ | |
| IsControlledDrug | BIT | ยาควบคุมพิเศษ | |
| ControlledDrugTypeID | VARCHAR(10) | FK | ประเภทยาควบคุม (อ้างอิง CONTROLLED_DRUG_TYPE) |
| IsHighAlert | BIT | ยาเสี่ยงสูง (High Alert Medication) | |
| IsRefrigerated | BIT | ต้องเก็บในตู้เย็น | |
| IsNarcotic | BIT | ยาเสพติดให้โทษ | |
| CostPrice | DECIMAL(10,2) | ราคาทุน | |
| SellingPriceOPD | DECIMAL(10,2) | ราคาขายผู้ป่วยนอก | |
| SellingPriceIPD | DECIMAL(10,2) | ราคาขายผู้ป่วยใน | |
| IsActive | BIT | ใช้งานได้ | |
| IsDiscontinued | BIT | หยุดจำหน่าย | |
| DiscontinuedMessage | NTEXT | ข้อความแจ้งเตือนเมื่อหยุดจำหน่าย | |
| IsOutOfStock | BIT | ยาหมดในโรงพยาบาล | |
| OutOfStockMessage | NTEXT | ข้อความแจ้งเตือนเมื่อยาหมด | |
| AutoCalculateDays | BIT | คำนวณจำนวนเม็ดตามวันนัด | |
| ImagePath | VARCHAR(255) | path รูปภาพยา | |
| CreatedDate | DATETIME | วันที่สร้าง | |
| CreatedBy | VARCHAR(50) | ผู้สร้าง | |
| LastModified | DATETIME | วันที่แก้ไขล่าสุด | |
| ModifiedBy | VARCHAR(50) | ผู้แก้ไขล่าสุด |
Table: DRUG_INGREDIENT (ส่วนประกอบสำคัญของยา)
วัตถุประสงค์: เก็บรายละเอียดส่วนประกอบสำคัญ (Active Ingredient) ของยาแต่ละรายการ ตาม TOR ข้อ 1.2.13.1.7
| Field | Type | Key | Description |
|---|---|---|---|
| IngredientID | VARCHAR(20) | PK | รหัสส่วนประกอบ |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิง DRUG_MASTER) |
| IngredientName | NVARCHAR(200) | ชื่อส่วนประกอบ | |
| IngredientStrength | NVARCHAR(50) | ความแรงของส่วนประกอบ | |
| IngredientUnit | NVARCHAR(20) | หน่วยความแรง | |
| IsActive | BIT | ใช้งานได้ |
Table: DRUG_PRICE (ราคายาตามสิทธิ)
วัตถุประสงค์: เก็บข้อมูลราคายาตามสิทธิการรักษาต่างๆ และประเภทการชำระเงิน ตาม TOR ข้อ 1.2.13.1.13-1.2.13.1.14
| Field | Type | Key | Description |
|---|---|---|---|
| DrugPriceID | VARCHAR(20) | PK | รหัสราคายา |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิง DRUG_MASTER) |
| RightTypeID | VARCHAR(20) | FK | รหัสสิทธิการรักษา (อ้างอิง RIGHT_TYPES จาก 1.2.15) |
| Price | DECIMAL(10,2) | ราคาขาย | |
| Copayment | DECIMAL(10,2) | ค่าใช้จ่ายส่วนตัว (Copayment) | |
| PaymentType | VARCHAR(20) | ประเภทการชำระเงิน (FREE/PARTIAL/FULL) | |
| EffectiveDate | DATE | วันที่เริ่มใช้ราคา | |
| ExpiryDate | DATE | วันที่สิ้นสุด | |
| IsActive | BIT | ใช้งานได้ |
Table: DRUG_AUTHORIZATION (สิทธิการสั่งใช้ยา)
วัตถุประสงค์: กำหนดสิทธิการสั่งใช้ยาตามกลุ่มผู้ใช้งาน ผู้ป่วย และสิทธิการรักษา ตาม TOR ข้อ 1.2.13.1.6
| Field | Type | Key | Description |
|---|---|---|---|
| AuthorizationID | VARCHAR(20) | PK | รหัสสิทธิการสั่งใช้ |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิง DRUG_MASTER) |
| UserGroupID | VARCHAR(20) | FK | รหัสกลุ่มผู้ใช้งาน (DOCTOR/DENTIST/NURSE/PHARMACIST) |
| SpecialistTypeID | VARCHAR(20) | FK | รหัสแพทย์เฉพาะทาง (ถ้ามี) |
| PatientTypeAllowed | VARCHAR(50) | ประเภทผู้ป่วยที่อนุญาต (OPD/IPD/ER) | |
| RightTypeAllowed | VARCHAR(255) | สิทธิที่อนุญาต (คั่นด้วย ;) | |
| RequireApproval | BIT | ต้องขออนุมัติ | |
| IsActive | BIT | ใช้งานได้ |
8.2.13.1.2 ตารางความปลอดภัยและการตรวจสอบยา
Table: DRUG_INTERACTION (อันตรกิริยาระหว่างยา)
วัตถุประสงค์: เก็บข้อมูล Drug Interaction ระหว่างยา 2 รายการที่มีผลต่อกัน พร้อมระดับความรุนแรง ตาม TOR ข้อ 1.2.13.1.18-1.2.13.1.20
| Field | Type | Key | Description |
|---|---|---|---|
| InteractionID | VARCHAR(20) | PK | รหัสอันตรกิริยา |
| DrugCode1 | VARCHAR(20) | FK | รหัสยาตัวที่ 1 (อ้างอิง DRUG_MASTER) |
| DrugCode2 | VARCHAR(20) | FK | รหัสยาตัวที่ 2 (อ้างอิง DRUG_MASTER) |
| InteractionName | NVARCHAR(200) | ชื่ออันตรกิริยา | |
| SeverityLevel | VARCHAR(20) | ระดับความรุนแรง (MILD/MODERATE/SEVERE/CONTRAINDICATED) | |
| ClinicalEffect | NTEXT | ผลทางคลินิก | |
| Mechanism | NTEXT | กลไกการเกิดอันตรกิริยา | |
| Management | NTEXT | การจัดการ | |
| ShowWarning | BIT | แสดงคำเตือน | |
| BlockPrescription | BIT | บล็อกการสั่งยา | |
| WarningMessageThai | NTEXT | ข้อความเตือน (ไทย) | |
| WarningMessageEng | NTEXT | ข้อความเตือน (อังกฤษ) | |
| ReferenceSource | NVARCHAR(200) | แหล่งอ้างอิง | |
| IsActive | BIT | ใช้งานได้ | |
| CreatedDate | DATETIME | วันที่สร้าง | |
| CreatedBy | VARCHAR(50) | ผู้สร้าง |
Table: DRUG_CONTRAINDICATION (ข้อห้ามใช้ยากับโรค)
วัตถุประสงค์: เก็บข้อมูลตัวยาที่ห้ามสั่งจ่ายกับรหัสโรค (ICD10) ตาม TOR ข้อ 1.2.13.1.17
| Field | Type | Key | Description |
|---|---|---|---|
| ContraindicationID | VARCHAR(20) | PK | รหัสข้อห้ามใช้ |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิง DRUG_MASTER) |
| ICDCode | VARCHAR(10) | FK | รหัส ICD-10 (อ้างอิง ICD_CODES) |
| ContraindicationType | VARCHAR(20) | ประเภท (ABSOLUTE/RELATIVE) | |
| SeverityLevel | VARCHAR(20) | ระดับความรุนแรง (MILD/MODERATE/SEVERE) | |
| ClinicalReason | NTEXT | เหตุผลทางคลินิก | |
| ShowWarning | BIT | แสดงคำเตือน | |
| BlockPrescription | BIT | บล็อกการสั่งยา | |
| WarningMessage | NTEXT | ข้อความเตือน | |
| IsActive | BIT | ใช้งานได้ |
Table: DRUG_ALERT_CONFIG (การตั้งค่าการแจ้งเตือน)
วัตถุประสงค์: กำหนดการแจ้งเตือน Notify สำหรับกลุ่มผู้ป่วยพิเศษ ตาม TOR ข้อ 1.2.13.1.12
| Field | Type | Key | Description |
|---|---|---|---|
| AlertConfigID | VARCHAR(20) | PK | รหัสการตั้งค่าเตือน |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิง DRUG_MASTER) |
| AlertType | VARCHAR(20) | ประเภทการเตือน (PREGNANCY/BREASTFEEDING/PEDIATRIC/G6PD/GENDER/ELDERLY) | |
| SeverityLevel | VARCHAR(20) | ระดับความรุนแรง (MILD/MODERATE/SEVERE/CONTRAINDICATED) | |
| PregnancyCategory | VARCHAR(5) | หมวด FDA Pregnancy (A/B/C/D/X) | |
| MinAge | INT | อายุต่ำสุด (สำหรับ PEDIATRIC) | |
| MaxAge | INT | อายุสูงสุด (สำหรับ ELDERLY) | |
| Gender | CHAR(1) | เพศที่เกี่ยวข้อง (M/F) | |
| ShowWarning | BIT | แสดงคำเตือน | |
| BlockPrescription | BIT | บล็อกการสั่งยา | |
| WarningMessageThai | NTEXT | ข้อความเตือน (ไทย) | |
| WarningMessageEng | NTEXT | ข้อความเตือน (อังกฤษ) | |
| Recommendation | NTEXT | ข้อแนะนำ | |
| IsActive | BIT | ใช้งานได้ |
Table: INTERACTION_CHECK_LOG (บันทึกการตรวจสอบอันตรกิริยา)
วัตถุประสงค์: บันทึกการตรวจสอบ Drug Interaction และการแพ้ยาทุกครั้งที่มีการสั่งยา เพื่อความปลอดภัยและการตรวจสอบย้อนหลัง
| Field | Type | Key | Description |
|---|---|---|---|
| CheckLogID | VARCHAR(20) | PK | รหัสบันทึกการตรวจสอบ |
| PrescriptionOrderID | VARCHAR(20) | FK | รหัสคำสั่งยา (อ้างอิง PRESCRIPTION_ORDER) |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| CheckDateTime | DATETIME | วันเวลาที่ตรวจสอบ | |
| CheckType | VARCHAR(50) | ประเภทการตรวจสอบ (DRUG_INTERACTION/ALLERGY/CONTRAINDICATION/ALERT) | |
| DrugCode1 | VARCHAR(20) | FK | รหัสยาตัวที่ 1 |
| DrugCode2 | VARCHAR(20) | FK | รหัสยาตัวที่ 2 (ถ้ามี) |
| InteractionID | VARCHAR(20) | FK | รหัสอันตรกิริยา (ถ้ามี) |
| SeverityLevel | VARCHAR(20) | ระดับความรุนแรง | |
| WarningMessage | NTEXT | ข้อความเตือน | |
| UserResponse | VARCHAR(20) | การตอบสนองของผู้ใช้ (PROCEED/CANCEL/MODIFY) | |
| OverrideReason | NTEXT | เหตุผลการข้ามคำเตือน | |
| CheckedBy | VARCHAR(50) | ผู้ตรวจสอบ | |
| IsWarningShown | BIT | แสดงคำเตือนแล้ว |
8.2.13.2 ตารางการสั่งยาและจ่ายยา
8.2.13.2.1 ตารางคำสั่งยาหลัก
Table: PRESCRIPTION_ORDER (คำสั่งยาหลัก)
วัตถุประสงค์: เก็บข้อมูลคำสั่งยาหลักจากทุกหน่วยตรวจ (OPD/IPD/ER/Dental) เป็นตารางศูนย์กลางของระบบเภสัชกรรม ตาม TOR ข้อ 1.2.13.2 และ 1.2.13.3
| Field | Type | Key | Description |
|---|---|---|---|
| PrescriptionOrderID | VARCHAR(20) | PK | รหัสคำสั่งยา (RX-XXXXXXXXXXX) |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย (อ้างอิง PATIENT จาก 1.2.1) |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ (อ้างอิง VISIT จาก 1.2.1) |
| SourceSystem | VARCHAR(20) | ระบบต้นทาง (OPD/IPD/ER/DENTAL/CLINIC) | |
| SourceID | VARCHAR(20) | รหัสอ้างอิงต้นทาง (ExaminationID/EmergencyCaseID/AdmissionID) | |
| PatientType | VARCHAR(20) | ประเภทผู้ป่วย (OPD/IPD/ER) | |
| PrescriptionType | VARCHAR(20) | ประเภทการสั่งยา (REGULAR/TEMPLATE/RE_MED/STAT/PRN) | |
| OrderDateTime | DATETIME | วันเวลาที่สั่งยา | |
| DoctorID | VARCHAR(20) | FK | รหัสแพทย์ผู้สั่ง (อ้างอิง DOCTORS) |
| DepartmentCode | VARCHAR(10) | FK | รหัสแผนก |
| RightTypeID | VARCHAR(20) | FK | รหัสสิทธิการรักษา (อ้างอิง 1.2.15) |
| RightsVerificationID | VARCHAR(20) | FK | รหัสการยืนยันสิทธิ (อ้างอิง 1.2.15) |
| OrderStatus | VARCHAR(20) | สถานะคำสั่ง (PENDING/VERIFIED/DISPENSED/CANCELLED) | |
| IPDOrderType | VARCHAR(20) | ประเภทคำสั่ง IPD (CONTINUE/ONE_DAY/STAT/DISCHARGE) | |
| StartDate | DATE | วันเริ่มใช้ยา (สำหรับ IPD Continue Order) | |
| EndDate | DATE | วันสิ้นสุดใช้ยา (สำหรับ IPD Continue Order) | |
| DayDose | INT | จำนวนวันที่ใช้ยา | |
| IsPregnant | BIT | สถานะตั้งครรภ์ | |
| IsBreastfeeding | BIT | สถานะให้นมบุตร | |
| TemplateID | VARCHAR(20) | FK | รหัส Template (ถ้าใช้) |
| TemplateName | NVARCHAR(100) | ชื่อ Template | |
| TotalCost | DECIMAL(10,2) | ค่าใช้จ่ายรวม | |
| Copayment | DECIMAL(10,2) | ค่าใช้จ่ายส่วนตัว | |
| PaymentStatus | VARCHAR(20) | สถานะการชำระเงิน (PENDING/PAID/CANCELLED) | |
| FinanceReferenceID | VARCHAR(20) | FK | รหัสอ้างอิงระบบการเงิน (1.2.14) |
| Notes | NTEXT | หมายเหตุ | |
| CreatedDate | DATETIME | วันที่สร้าง | |
| CreatedBy | VARCHAR(50) | ผู้สร้าง | |
| LastModified | DATETIME | วันที่แก้ไขล่าสุด | |
| ModifiedBy | VARCHAR(50) | ผู้แก้ไขล่าสุด | |
| CancelledDate | DATETIME | วันที่ยกเลิก | |
| CancelledBy | VARCHAR(50) | ผู้ยกเลิก | |
| CancellationReason | NTEXT | เหตุผลการยกเลิก |
Table: PRESCRIPTION_ITEM (รายการยาในใบสั่ง)
วัตถุประสงค์: เก็บรายละเอียดยาแต่ละรายการในคำสั่งยา รองรับการสั่งยา OPD และ IPD ตาม TOR ข้อ 1.2.13.2 และ 1.2.13.3
| Field | Type | Key | Description |
|---|---|---|---|
| PrescriptionItemID | VARCHAR(20) | PK | รหัสรายการยา |
| PrescriptionOrderID | VARCHAR(20) | FK | รหัสคำสั่งยา (อ้างอิง PRESCRIPTION_ORDER) |
| ItemSequence | INT | ลำดับรายการ | |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิง DRUG_MASTER) |
| Quantity | DECIMAL(10,2) | จำนวนที่สั่ง | |
| QuantityUnit | NVARCHAR(20) | หน่วยจำนวน | |
| Dosage | NVARCHAR(50) | ขนาดยา (เช่น 1 เม็ด, 5 ml) | |
| Frequency | NVARCHAR(50) | ความถี่ (เช่น วันละ 3 ครั้ง, TID, QID) | |
| Route | NVARCHAR(50) | วิธีการให้ยา (PO, IV, IM, SC) | |
| Duration | INT | ระยะเวลา (วัน) | |
| DirectionThai | NTEXT | วิธีใช้ยา (ไทย) | |
| DirectionEng | NTEXT | วิธีใช้ยา (อังกฤษ) | |
| SpecialInstruction | NTEXT | คำแนะนำพิเศษ | |
| IsPRN | BIT | ยาเมื่อมีอาการ (PRN) | |
| IsSTAT | BIT | ยาเร่งด่วน (STAT) | |
| IsContinue | BIT | ยาต่อเนื่อง (IPD Continue Order) | |
| IsDischargeOrder | BIT | ยากลับบ้าน | |
| UnitPrice | DECIMAL(10,2) | ราคาต่อหน่วย | |
| TotalPrice | DECIMAL(10,2) | ราคารวม | |
| Copayment | DECIMAL(10,2) | ค่าใช้จ่ายส่วนตัว | |
| ItemStatus | VARCHAR(20) | สถานะรายการ (PENDING/VERIFIED/DISPENSED/CANCELLED) | |
| IsNationalList | BIT | ยาในบัญชี | |
| IsOutOfFormulary | BIT | ยานอกบัญชี | |
| OutOfFormularyReason | NTEXT | เหตุผลขอยานอกบัญชี | |
| RequireApproval | BIT | ต้องขออนุมัติ | |
| ApprovalStatus | VARCHAR(20) | สถานะการอนุมัติ | |
| ApprovedBy | VARCHAR(50) | ผู้อนุมัติ | |
| ApprovalDate | DATETIME | วันที่อนุมัติ | |
| PrintLabel | BIT | พิมพ์สติกเกอร์ | |
| LabelPrinted | BIT | พิมพ์สติกเกอร์แล้ว | |
| DispensedQuantity | DECIMAL(10,2) | จำนวนที่จ่ายจริง | |
| DispensedBy | VARCHAR(50) | ผู้จ่ายยา | |
| DispensedDate | DATETIME | วันที่จ่ายยา | |
| Notes | NTEXT | หมายเหตุ |
Table: PRESCRIPTION_MODIFICATION_LOG (บันทึกการแก้ไขคำสั่งยา)
วัตถุประสงค์: บันทึกประวัติการแก้ไขและยกเลิกคำสั่งยาเพื่อความปลอดภัยและการตรวจสอบ ตาม TOR ข้อ 1.2.13.4
| Field | Type | Key | Description |
|---|---|---|---|
| ModificationLogID | VARCHAR(20) | PK | รหัสบันทึกการแก้ไข |
| PrescriptionOrderID | VARCHAR(20) | FK | รหัสคำสั่งยา (อ้างอิง PRESCRIPTION_ORDER) |
| PrescriptionItemID | VARCHAR(20) | FK | รหัสรายการยา (อ้างอิง PRESCRIPTION_ITEM) |
| ModificationType | VARCHAR(20) | ประเภทการแก้ไข (ADD/EDIT/DELETE/CANCEL/PRICE_CHANGE) | |
| ModificationDateTime | DATETIME | วันเวลาที่แก้ไข | |
| OldValue | NTEXT | ค่าเดิม (JSON Format) | |
| NewValue | NTEXT | ค่าใหม่ (JSON Format) | |
| Reason | NTEXT | เหตุผลการแก้ไข | |
| ModifiedBy | VARCHAR(50) | ผู้แก้ไข | |
| PaymentStatus | VARCHAR(20) | สถานะการชำระเงินขณะแก้ไข | |
| RequireReceiptCancel | BIT | ต้องยกเลิกใบเสร็จรับเงิน | |
| ReceiptCancelReferenceID | VARCHAR(20) | รหัสอ้างอิงการยกเลิกใบเสร็จ |
8.2.13.2.2 ตารางการจ่ายยาและการตรวจสอบ
Table: MEDICATION_DISPENSING (การจ่ายยา)
วัตถุประสงค์: เก็บข้อมูลการจ่ายยาจริงให้กับผู้ป่วยแต่ละครั้ง รองรับการจ่ายยา OPD และ IPD ตาม TOR ข้อ 1.2.13.5
| Field | Type | Key | Description |
|---|---|---|---|
| DispensingID | VARCHAR(20) | PK | รหัสการจ่ายยา (DIS-XXXXXXXXXXX) |
| PrescriptionOrderID | VARCHAR(20) | FK | รหัสคำสั่งยา (อ้างอิง PRESCRIPTION_ORDER) |
| PrescriptionItemID | VARCHAR(20) | FK | รหัสรายการยา (อ้างอิง PRESCRIPTION_ITEM) |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VisitID | VARCHAR(20) | FK | รหัสการเข้ารับบริการ |
| PatientType | VARCHAR(20) | ประเภทผู้ป่วย (OPD/IPD/ER) | |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิง DRUG_MASTER) |
| DispensedQuantity | DECIMAL(10,2) | จำนวนที่จ่าย | |
| DispensedUnit | NVARCHAR(20) | หน่วยที่จ่าย | |
| DispensingDateTime | DATETIME | วันเวลาที่จ่ายยา | |
| DispensingType | VARCHAR(20) | ประเภทการจ่าย (REGULAR/STAT/CONTINUE/DISCHARGE) | |
| PharmacistID | VARCHAR(20) | FK | รหัสเภสัชกรผู้จ่าย (อ้างอิง STAFF) |
| VerifiedBy | VARCHAR(20) | FK | ผู้ตรวจสอบ (เภสัชกร) |
| VerifiedDateTime | DATETIME | วันเวลาที่ตรวจสอบ | |
| BatchNumber | VARCHAR(50) | หมายเลข Batch | |
| ExpiryDate | DATE | วันหมดอายุ | |
| LotNumber | VARCHAR(50) | หมายเลข Lot | |
| StorageLocation | NVARCHAR(100) | ตำแหน่งเก็บยา | |
| UnitPrice | DECIMAL(10,2) | ราคาต่อหน่วย | |
| TotalPrice | DECIMAL(10,2) | ราคารวม | |
| LabelPrinted | BIT | พิมพ์ฉลากยาแล้ว | |
| LabelPrintCount | INT | จำนวนครั้งที่พิมพ์ฉลาก | |
| PatientCounseling | BIT | ให้คำปรึกษาแล้ว | |
| CounselingNotes | NTEXT | หมายเหตุการให้คำปรึกษา | |
| DispensingStatus | VARCHAR(20) | สถานะการจ่าย (COMPLETED/PARTIAL/RETURNED) | |
| Notes | NTEXT | หมายเหตุ |
Table: MEDICATION_VERIFICATION (การตรวจสอบยา)
วัตถุประสงค์: เก็บข้อมูลการตรวจสอบความถูกต้องของคำสั่งยาโดยเภสัชกรก่อนการจ่ายยา ตาม TOR ข้อ 1.2.13.5
| Field | Type | Key | Description |
|---|---|---|---|
| VerificationID | VARCHAR(20) | PK | รหัสการตรวจสอบ (VRF-XXXXXXXXXXX) |
| PrescriptionOrderID | VARCHAR(20) | FK | รหัสคำสั่งยา (อ้างอิง PRESCRIPTION_ORDER) |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| VerificationDateTime | DATETIME | วันเวลาที่ตรวจสอบ | |
| PharmacistID | VARCHAR(20) | FK | รหัสเภสัชกรผู้ตรวจสอบ |
| VerificationType | VARCHAR(20) | ประเภทการตรวจสอบ (INITIAL/FINAL/DOUBLE_CHECK) | |
| DrugInteractionChecked | BIT | ตรวจสอบ Drug Interaction แล้ว | |
| AllergyChecked | BIT | ตรวจสอบการแพ้ยาแล้ว | |
| ContraindicationChecked | BIT | ตรวจสอบข้อห้ามใช้แล้ว | |
| DoseChecked | BIT | ตรวจสอบขนาดยาแล้ว | |
| RouteChecked | BIT | ตรวจสอบวิธีการให้ยาแล้ว | |
| DuplicationChecked | BIT | ตรวจสอบการสั่งซ้ำแล้ว | |
| VerificationResult | VARCHAR(20) | ผลการตรวจสอบ (APPROVED/REJECTED/PENDING_CLARIFICATION) | |
| Issues | NTEXT | ปัญหาที่พบ | |
| PharmacistNotes | NTEXT | หมายเหตุของเภสัชกร | |
| ClarificationRequested | BIT | ขอชี้แจงจากแพทย์ | |
| ClarificationNotes | NTEXT | หมายเหตุการขอชี้แจง | |
| DoctorResponse | NTEXT | คำตอบจากแพทย์ | |
| FinalDecision | VARCHAR(20) | การตัดสินใจสุดท้าย (PROCEED/CANCEL/MODIFY) |
Table: MEDICATION_PROFILE (ประวัติการใช้ยา)
วัตถุประสงค์: เก็บข้อมูลประวัติการใช้ยาของผู้ป่วยแบบครบวงจร (Profile Sheet) สำหรับผู้ป่วยใน ตาม TOR ข้อ 1.2.13.3.5
| Field | Type | Key | Description |
|---|---|---|---|
| ProfileID | VARCHAR(20) | PK | รหัส Profile |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| AdmissionID | VARCHAR(20) | FK | รหัสการ Admit (อ้างอิง 1.2.17) |
| PrescriptionOrderID | VARCHAR(20) | FK | รหัสคำสั่งยา |
| PrescriptionItemID | VARCHAR(20) | FK | รหัสรายการยา |
| DrugCode | VARCHAR(20) | FK | รหัสยา |
| StartDate | DATE | วันเริ่มใช้ | |
| EndDate | DATE | วันสิ้นสุด | |
| OrderType | VARCHAR(20) | ประเภทคำสั่ง (CONTINUE/ONE_DAY/STAT/PRN) | |
| Dosage | NVARCHAR(50) | ขนาดยา | |
| Frequency | NVARCHAR(50) | ความถี่ | |
| Route | NVARCHAR(50) | วิธีการให้ยา | |
| IsContinuing | BIT | ยังใช้อยู่ | |
| DiscontinuedDate | DATE | วันที่หยุด | |
| DiscontinuedReason | NTEXT | เหตุผลที่หยุด | |
| TotalAdministered | INT | จำนวนครั้งที่ให้แล้ว | |
| LastAdministeredDate | DATETIME | วันเวลาให้ครั้งล่าสุด |
Table: DRUG_ADMINISTRATION_RECORD (บันทึกการให้ยา IPD)
วัตถุประสงค์: บันทึกการให้ยาผู้ป่วยในแต่ละครั้ง (MAR - Medication Administration Record) ตาม TOR ข้อ 1.2.13.3
| Field | Type | Key | Description |
|---|---|---|---|
| AdministrationID | VARCHAR(20) | PK | รหัสการให้ยา (ADM-XXXXXXXXXXX) |
| ProfileID | VARCHAR(20) | FK | รหัส Profile (อ้างอิง MEDICATION_PROFILE) |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| AdmissionID | VARCHAR(20) | FK | รหัสการ Admit |
| PrescriptionItemID | VARCHAR(20) | FK | รหัสรายการยา |
| DrugCode | VARCHAR(20) | FK | รหัสยา |
| ScheduledDateTime | DATETIME | วันเวลาที่กำหนดให้ยา | |
| ActualDateTime | DATETIME | วันเวลาที่ให้ยาจริง | |
| AdministeredQuantity | DECIMAL(10,2) | จำนวนที่ให้ | |
| AdministeredBy | VARCHAR(20) | FK | ผู้ให้ยา (พยาบาล) |
| WitnessedBy | VARCHAR(20) | FK | ผู้เป็นพยาน (สำหรับยาควบคุม) |
| AdministrationRoute | NVARCHAR(50) | วิธีการให้ | |
| AdministrationSite | NVARCHAR(100) | ตำแหน่งที่ให้ (สำหรับ IM, SC) | |
| AdministrationStatus | VARCHAR(20) | สถานะ (GIVEN/REFUSED/HELD/MISSED) | |
| RefusalReason | NTEXT | เหตุผลที่ผู้ป่วยปฏิเสธ | |
| HoldReason | NTEXT | เหตุผลที่งดให้ยา | |
| PatientResponse | NTEXT | อาการของผู้ป่วยหลังได้รับยา | |
| AdverseReaction | BIT | มีอาการไม่พึงประสงค์ | |
| AdverseReactionDetail | NTEXT | รายละเอียดอาการไม่พึงประสงค์ | |
| Notes | NTEXT | หมายเหตุ |
Table: DRUG_RETURN (การคืนยา)
วัตถุประสงค์: เก็บข้อมูลการคืนยาของผู้ป่วยใน ตาม TOR ข้อ 1.2.13.3.6
| Field | Type | Key | Description |
|---|---|---|---|
| ReturnID | VARCHAR(20) | PK | รหัสการคืนยา (RTN-XXXXXXXXXXX) |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| AdmissionID | VARCHAR(20) | FK | รหัสการ Admit |
| PrescriptionOrderID | VARCHAR(20) | FK | รหัสคำสั่งยา |
| PrescriptionItemID | VARCHAR(20) | FK | รหัสรายการยา |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิง DRUG_MASTER) |
| ReturnDateTime | DATETIME | วันเวลาที่คืน | |
| ReturnQuantity | DECIMAL(10,2) | จำนวนที่คืน | |
| ReturnReason | VARCHAR(50) | เหตุผลการคืน (DISCHARGE/DISCONTINUED/EXCESS/EXPIRED) | |
| ReturnReasonDetail | NTEXT | รายละเอียดเหตุผล | |
| ReturnCondition | VARCHAR(20) | สภาพยา (GOOD/DAMAGED/OPENED) | |
| RefundAmount | DECIMAL(10,2) | จำนวนเงินคืน | |
| ReceivedBy | VARCHAR(20) | FK | เภสัชกรผู้รับคืน |
| ReturnedBy | VARCHAR(20) | FK | ผู้คืนยา (พยาบาล/ผู้ป่วย) |
| IsRefunded | BIT | คืนเงินแล้ว | |
| RefundReferenceID | VARCHAR(20) | รหัสอ้างอิงการคืนเงิน | |
| Notes | NTEXT | หมายเหตุ |
8.2.13.3 ตาราง Template และการตั้งค่า
8.2.13.3.1 ตารางชุดยาและ Template
Table: DRUG_TEMPLATE (ชุดยาสำเร็จรูป)
วัตถุประสงค์: เก็บข้อมูลชุดยา (Template) ที่แพทย์กำหนดไว้ล่วงหน้าเพื่อความสะดวกในการสั่งยา ตาม TOR ข้อ 1.2.13.2.2
| Field | Type | Key | Description |
|---|---|---|---|
| TemplateID | VARCHAR(20) | PK | รหัส Template (TPL-XXXXXXXXXXX) |
| TemplateName | NVARCHAR(100) | ชื่อ Template | |
| TemplateDescription | NTEXT | รายละเอียด Template | |
| TemplateType | VARCHAR(20) | ประเภท (PERSONAL/DEPARTMENT/HOSPITAL) | |
| DoctorID | VARCHAR(20) | FK | รหัสแพทย์เจ้าของ (กรณี PERSONAL) |
| DepartmentCode | VARCHAR(10) | FK | รหัสแผนก (กรณี DEPARTMENT) |
| DiseaseCategoryID | VARCHAR(20) | FK | รหัสหมวดโรค (ถ้ามี) |
| ICDCode | VARCHAR(10) | FK | รหัส ICD-10 (ถ้าเฉพาะเจาะจง) |
| IsActive | BIT | ใช้งานได้ | |
| UsageCount | INT | จำนวนครั้งที่ใช้ | |
| CreatedDate | DATETIME | วันที่สร้าง | |
| CreatedBy | VARCHAR(50) | ผู้สร้าง | |
| LastModified | DATETIME | วันที่แก้ไขล่าสุด | |
| ModifiedBy | VARCHAR(50) | ผู้แก้ไขล่าสุด | |
| LastUsedDate | DATETIME | วันที่ใช้ล่าสุด |
Table: DRUG_TEMPLATE_ITEM (รายการยาใน Template)
วัตถุประสงค์: เก็บรายการยาในแต่ละ Template พร้อมรายละเอียดการใช้งาน
| Field | Type | Key | Description |
|---|---|---|---|
| TemplateItemID | VARCHAR(20) | PK | รหัสรายการ Template |
| TemplateID | VARCHAR(20) | FK | รหัส Template (อ้างอิง DRUG_TEMPLATE) |
| ItemSequence | INT | ลำดับรายการ | |
| DrugCode | VARCHAR(20) | FK | รหัสยา (อ้างอิง DRUG_MASTER) |
| DefaultQuantity | DECIMAL(10,2) | จำนวนเริ่มต้น | |
| DefaultDosage | NVARCHAR(50) | ขนาดยาเริ่มต้น | |
| DefaultFrequency | NVARCHAR(50) | ความถี่เริ่มต้น | |
| DefaultRoute | NVARCHAR(50) | วิธีการให้เริ่มต้น | |
| DefaultDuration | INT | ระยะเวลาเริ่มต้น (วัน) | |
| DefaultDirectionThai | NTEXT | วิธีใช้เริ่มต้น (ไทย) | |
| DefaultDirectionEng | NTEXT | วิธีใช้เริ่มต้น (อังกฤษ) | |
| IsMandatory | BIT | บังคับต้องมีในชุด | |
| IsEditable | BIT | แก้ไขได้เมื่อใช้งาน | |
| Notes | NTEXT | หมายเหตุ |
Table: RE_MED_HISTORY (ประวัติการสั่งยาซ้ำ)
วัตถุประสงค์: เก็บข้อมูลการสั่งยาซ้ำ (RE-MED) เพื่อติดตามและวิเคราะห์ ตาม TOR ข้อ 1.2.13.2.3
| Field | Type | Key | Description |
|---|---|---|---|
| ReMedID | VARCHAR(20) | PK | รหัสการสั่งยาซ้ำ |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| OriginalPrescriptionID | VARCHAR(20) | FK | รหัสคำสั่งยาต้นฉบับ |
| NewPrescriptionID | VARCHAR(20) | FK | รหัสคำสั่งยาใหม่ |
| ReMedDateTime | DATETIME | วันเวลาที่สั่งยาซ้ำ | |
| ReMedBy | VARCHAR(50) | ผู้สั่งยาซ้ำ | |
| ItemsSelected | NTEXT | รายการยาที่เลือก (JSON Array) | |
| ItemsModified | NTEXT | รายการที่มีการแก้ไข (JSON Array) | |
| ModificationNotes | NTEXT | หมายเหตุการแก้ไข |
8.2.13.3.2 ตารางการตั้งค่าระบบ
Table: PHARMACY_CONFIG (การตั้งค่าระบบเภสัชกรรม)
วัตถุประสงค์: เก็บการตั้งค่าต่างๆ ของระบบเภสัชกรรม
| Field | Type | Key | Description |
|---|---|---|---|
| ConfigID | VARCHAR(20) | PK | รหัสการตั้งค่า |
| ConfigCategory | VARCHAR(50) | หมวดการตั้งค่า (INTERACTION/DISPENSING/PRICING/PRINTING) | |
| ConfigKey | VARCHAR(100) | รหัสการตั้งค่า | |
| ConfigValue | NTEXT | ค่าตั้งค่า | |
| ConfigDataType | VARCHAR(20) | ประเภทข้อมูล (STRING/NUMBER/BOOLEAN/JSON) | |
| ConfigDescription | NTEXT | คำอธิบาย | |
| IsSystemConfig | BIT | การตั้งค่าระบบ (ไม่ควรแก้ไข) | |
| DepartmentCode | VARCHAR(10) | FK | รหัสแผนก (ถ้าเป็นการตั้งค่าเฉพาะแผนก) |
| LastModified | DATETIME | วันที่แก้ไขล่าสุด | |
| ModifiedBy | VARCHAR(50) | ผู้แก้ไข |
Table: INTERACTION_CHECK_CONFIG (การตั้งค่าการตรวจสอบอันตรกิริยา)
วัตถุประสงค์: กำหนดการตั้งค่าการตรวจสอบ Drug Interaction ตาม TOR ข้อ 1.2.13.1.20
| Field | Type | Key | Description |
|---|---|---|---|
| CheckConfigID | VARCHAR(20) | PK | รหัสการตั้งค่า |
| EnableInteractionCheck | BIT | เปิดใช้งานการตรวจสอบ | |
| CheckHistoryDays | INT | ตรวจสอบย้อนหลังกี่วัน | |
| CheckCurrentVisitOnly | BIT | ตรวจสอบเฉพาะ Visit ปัจจุบัน | |
| CheckIPDOrders | BIT | ตรวจสอบคำสั่งยา IPD | |
| CheckOPDOrders | BIT | ตรวจสอบคำสั่งยา OPD | |
| CheckEROrders | BIT | ตรวจสอบคำสั่งยา ER | |
| MinSeverityToWarn | VARCHAR(20) | ระดับความรุนแรงขั้นต่ำที่แจ้งเตือน | |
| MinSeverityToBlock | VARCHAR(20) | ระดับความรุนแรงขั้นต่ำที่บล็อก | |
| AllowOverride | BIT | อนุญาตให้ข้ามคำเตือน | |
| RequireOverrideReason | BIT | ต้องระบุเหตุผลเมื่อข้าม | |
| NotifyPharmacist | BIT | แจ้งเภสัชกรเมื่อข้ามคำเตือน |
Table: LABEL_PRINT_CONFIG (การตั้งค่าการพิมพ์ฉลากยา)
วัตถุประสงค์: กำหนดรูปแบบและการตั้งค่าการพิมพ์ฉลากยา ตาม TOR ข้อ 1.2.13.6
| Field | Type | Key | Description |
|---|---|---|---|
| LabelConfigID | VARCHAR(20) | PK | รหัสการตั้งค่า |
| LabelType | VARCHAR(20) | ประเภทฉลาก (STANDARD/CONTROLLED/REFRIGERATED/HIGH_ALERT) | |
| LabelSize | VARCHAR(20) | ขนาดฉลาก (SMALL/MEDIUM/LARGE) | |
| PrintLanguage | VARCHAR(20) | ภาษา (THAI/ENGLISH/BOTH) | |
| IncludeBarcode | BIT | พิมพ์บาร์โค้ด | |
| IncludeDrugImage | BIT | พิมพ์รูปยา | |
| IncludePatientInfo | BIT | พิมพ์ข้อมูลผู้ป่วย | |
| IncludeWarnings | BIT | พิมพ์คำเตือน | |
| AutoPrintOnDispense | BIT | พิมพ์อัตโนมัติเมื่อจ่าย | |
| PrinterName | NVARCHAR(100) | ชื่อเครื่องพิมพ์ | |
| LabelTemplate | NTEXT | Template ฉลาก | |
| IsDefault | BIT | การตั้งค่าเริ่มต้น |
8.2.13.4 ตาราง Master Data และการจำแนกประเภท
8.2.13.4.1 ตารางหมวดหมู่และการจำแนกยา
Table: DRUG_CATEGORY (หมวดหมู่ยา)
วัตถุประสงค์: จัดหมวดหมู่ยาตามประเภทและการใช้งาน
| Field | Type | Key | Description |
|---|---|---|---|
| DrugCategoryID | VARCHAR(20) | PK | รหัสหมวดหมู่ยา |
| CategoryName | NVARCHAR(100) | ชื่อหมวดหมู่ (ไทย) | |
| CategoryNameEng | NVARCHAR(100) | ชื่อหมวดหมู่ (อังกฤษ) | |
| ParentCategoryID | VARCHAR(20) | FK | รหัสหมวดหมู่แม่ (สำหรับ Sub-category) |
| CategoryLevel | INT | ระดับหมวดหมู่ | |
| Description | NTEXT | รายละเอียด | |
| IsActive | BIT | ใช้งานได้ |
Table: THERAPEUTIC_GROUP (กลุ่มการออกฤทธิ์)
วัตถุประสงค์: จัดกลุ่มยาตามกลไกการออกฤทธิ์ทางเภสัชวิทยา ตาม TOR ข้อ 1.2.13.1.4
| Field | Type | Key | Description |
|---|---|---|---|
| TherapeuticGroupID | VARCHAR(20) | PK | รหัสกลุ่มการออกฤทธิ์ |
| GroupName | NVARCHAR(100) | ชื่อกลุ่ม (ไทย) | |
| GroupNameEng | NVARCHAR(100) | ชื่อกลุ่ม (อังกฤษ) | |
| ATCCode | VARCHAR(10) | รหัส ATC (Anatomical Therapeutic Chemical) | |
| ParentGroupID | VARCHAR(20) | FK | รหัสกลุ่มแม่ |
| GroupLevel | INT | ระดับกลุ่ม (1-5 ตาม ATC) | |
| Description | NTEXT | รายละเอียด | |
| IsActive | BIT | ใช้งานได้ |
Table: DOSAGE_FORM (รูปแบบเภสัชภัณฑ์)
วัตถุประสงค์: กำหนดรูปแบบเภสัชภัณฑ์ต่างๆ ตาม TOR ข้อ 1.2.13.1.4
| Field | Type | Key | Description |
|---|---|---|---|
| DosageFormID | VARCHAR(20) | PK | รหัสรูปแบบเภสัชภัณฑ์ |
| FormName | NVARCHAR(100) | ชื่อรูปแบบ (ไทย) | |
| FormNameEng | NVARCHAR(100) | ชื่อรูปแบบ (อังกฤษ) | |
| FormType | VARCHAR(20) | ประเภทรูปแบบ (SOLID/LIQUID/SEMISOLID/GAS/OTHER) | |
| RouteOfAdministration | NVARCHAR(100) | วิธีการให้ยาทั่วไป | |
| Description | NTEXT | รายละเอียด | |
| IsActive | BIT | ใช้งานได้ |
Table: CONTROLLED_DRUG_TYPE (ประเภทยาควบคุม)
วัตถุประสงค์: จำแนกประเภทยาควบคุมพิเศษตามกฎหมาย ตาม TOR ข้อ 1.2.13.1.4
| Field | Type | Key | Description |
|---|---|---|---|
| ControlledDrugTypeID | VARCHAR(10) | PK | รหัสประเภทยาควบคุม |
| TypeName | NVARCHAR(100) | ชื่อประเภท | |
| LegalCategory | VARCHAR(20) | หมวดตามกฎหมาย (NARCOTIC_1/NARCOTIC_2/PSYCHOTROPIC_1/etc) | |
| ControlLevel | INT | ระดับการควบคุม (1=สูงสุด, 5=ต่ำสุด) | |
| RequireSpecialForm | BIT | ต้องใช้แบบฟอร์มพิเศษ | |
| RequireWitness | BIT | ต้องมีพยาน | |
| MaxPrescriptionDays | INT | จำนวนวันสูงสุดที่สั่งได้ | |
| RequireLicense | BIT | ต้องมีใบอนุญาต | |
| StorageRequirement | NTEXT | ข้อกำหนดการเก็บรักษา | |
| Description | NTEXT | รายละเอียด | |
| IsActive | BIT | ใช้งานได้ |
Table: DRUG_ROUTE (วิธีการให้ยา)
วัตถุประสงค์: กำหนดวิธีการให้ยามาตรฐาน
| Field | Type | Key | Description |
|---|---|---|---|
| RouteID | VARCHAR(10) | PK | รหัสวิธีการให้ยา |
| RouteCode | VARCHAR(10) | รหัสย่อ (PO, IV, IM, SC, etc.) | |
| RouteName | NVARCHAR(100) | ชื่อวิธีการให้ยา (ไทย) | |
| RouteNameEng | NVARCHAR(100) | ชื่อวิธีการให้ยา (อังกฤษ) | |
| RouteType | VARCHAR(20) | ประเภท (ORAL/PARENTERAL/TOPICAL/INHALATION/OTHER) | |
| Description | NTEXT | รายละเอียด | |
| IsActive | BIT | ใช้งานได้ |
Table: DRUG_FREQUENCY (ความถี่การใช้ยา)
วัตถุประสงค์: กำหนดความถี่การใช้ยามาตรฐาน
| Field | Type | Key | Description |
|---|---|---|---|
| FrequencyID | VARCHAR(10) | PK | รหัสความถี่ |
| FrequencyCode | VARCHAR(10) | รหัสย่อ (OD, BID, TID, QID, etc.) | |
| FrequencyName | NVARCHAR(100) | ชื่อความถี่ (ไทย) | |
| FrequencyNameEng | NVARCHAR(100) | ชื่อความถี่ (อังกฤษ) | |
| TimesPerDay | INT | จำนวนครั้งต่อวัน | |
| IntervalHours | INT | ช่วงเวลา (ชั่วโมง) | |
| ScheduledTimes | VARCHAR(100) | เวลาที่กำหนด (เช่น 08:00,12:00,18:00) | |
| Description | NTEXT | รายละเอียด | |
| IsActive | BIT | ใช้งานได้ |
Table: DRUG_UNIT (หน่วยยา)
วัตถุประสงค์: กำหนดหน่วยนับและหน่วยวัดยามาตรฐาน
| Field | Type | Key | Description |
|---|---|---|---|
| UnitID | VARCHAR(10) | PK | รหัสหน่วย |
| UnitCode | VARCHAR(10) | รหัสย่อหน่วย | |
| UnitName | NVARCHAR(50) | ชื่อหน่วย (ไทย) | |
| UnitNameEng | NVARCHAR(50) | ชื่อหน่วย (อังกฤษ) | |
| UnitType | VARCHAR(20) | ประเภทหน่วย (COUNT/WEIGHT/VOLUME/OTHER) | |
| BaseUnit | VARCHAR(10) | หน่วยพื้นฐาน | |
| ConversionFactor | DECIMAL(10,4) | อัตราการแปลงเป็นหน่วยพื้นฐาน | |
| IsActive | BIT | ใช้งานได้ |
8.2.13.4.2 ตารางข้อมูลเอกสารและการพิมพ์
Table: PRESCRIPTION_DOCUMENT (เอกสารใบสั่งยา)
วัตถุประสงค์: เก็บข้อมูลเอกสารที่พิมพ์และสถานะการพิมพ์ ตาม TOR ข้อ 1.2.13.6
| Field | Type | Key | Description |
|---|---|---|---|
| DocumentID | VARCHAR(20) | PK | รหัสเอกสาร (DOC-XXXXXXXXXXX) |
| PrescriptionOrderID | VARCHAR(20) | FK | รหัสคำสั่งยา (อ้างอิง PRESCRIPTION_ORDER) |
| DocumentType | VARCHAR(20) | ประเภทเอกสาร (PRESCRIPTION/LABEL/OUT_OF_FORMULARY_CERTIFICATE) | |
| DocumentLanguage | VARCHAR(20) | ภาษา (THAI/ENGLISH/BOTH) | |
| PrintDateTime | DATETIME | วันเวลาที่พิมพ์ | |
| PrintedBy | VARCHAR(50) | ผู้พิมพ์ | |
| PrintCount | INT | จำนวนครั้งที่พิมพ์ | |
| DocumentPath | VARCHAR(255) | path ไฟล์เอกสาร | |
| DocumentFormat | VARCHAR(10) | รูปแบบไฟล์ (PDF/HTML/IMAGE) | |
| DocumentStatus | VARCHAR(20) | สถานะเอกสาร (GENERATED/PRINTED/CANCELLED) | |
| PrinterName | NVARCHAR(100) | ชื่อเครื่องพิมพ์ | |
| Notes | NTEXT | หมายเหตุ |
Table: OUT_OF_FORMULARY_REQUEST (คำขอยานอกบัญชี)
วัตถุประสงค์: เก็บข้อมูลการขอยานอกบัญชียาหลักแห่งชาติ ตาม TOR ข้อ 1.2.13.6.3
| Field | Type | Key | Description |
|---|---|---|---|
| RequestID | VARCHAR(20) | PK | รหัสคำขอ (OOF-XXXXXXXXXXX) |
| PrescriptionOrderID | VARCHAR(20) | FK | รหัสคำสั่งยา |
| PrescriptionItemID | VARCHAR(20) | FK | รหัสรายการยา |
| HN | VARCHAR(10) | FK | รหัสผู้ป่วย |
| DrugCode | VARCHAR(20) | FK | รหัสยานอกบัญชี |
| RequestDateTime | DATETIME | วันเวลาที่ขอ | |
| RequestedBy | VARCHAR(20) | FK | แพทย์ผู้ขอ |
| ClinicalIndication | NTEXT | เหตุผลทางคลินิก | |
| AlternativeTried | NTEXT | ยาทางเลือกที่ลองแล้ว | |
| WhyAlternativeNotSuitable | NTEXT | เหตุผลที่ยาทางเลือกไม่เหมาะสม | |
| RequestStatus | VARCHAR(20) | สถานะคำขอ (PENDING/APPROVED/REJECTED) | |
| ReviewedBy | VARCHAR(20) | FK | ผู้พิจารณา (เภสัชกร/คณะกรรมการ) |
| ReviewDateTime | DATETIME | วันเวลาที่พิจารณา | |
| ReviewNotes | NTEXT | หมายเหตุการพิจารณา | |
| CertificateIssued | BIT | ออกหนังสือรับรองแล้ว | |
| CertificateID | VARCHAR(20) | รหัสหนังสือรับรอง | |
| CertificateIssuedDate | DATETIME | วันที่ออกหนังสือรับรอง |
8.2.13.5 ตารางการเชื่อมโยงระบบภายนอก
8.2.13.5.1 External System References
หมายเหตุ: ตารางต่อไปนี้อยู่ในระบบอื่นๆ ระบบเภสัชกรรมจะอ้างอิงผ่าน Foreign Key และ API Integration เท่านั้น
External Tables (จากระบบอื่น):
- จากระบบเวชระเบียน (1.2.1)
PATIENT- ข้อมูลผู้ป่วย (HN, Demographics)VISIT- การเข้ารับบริการ (VisitID, VisitDate)-
PATIENT_CONTACT- ผู้ติดต่อฉุกเฉิน -
จากระบบซักประวัติ (1.2.2)
HISTORY_TAKING- ประวัติการซักประวัติDRUG_ALLERGY- ประวัติการแพ้ยา (สำคัญมาก!)-
VITAL_SIGNS- สัญญาณชีพ -
จากระบบห้องตรวจแพทย์ (1.2.3)
EXAMINATION_SESSION- เซสชันการตรวจ (ExaminationID)MEDICAL_DIAGNOSIS- การวินิจฉัยโรค (ICD-10)LAB_ORDER- การสั่ง Lab-
RADIOLOGY_ORDER- การสั่ง X-Ray -
จากระบบห้องฉุกเฉิน (1.2.4)
EMERGENCY_CASE- เคสฉุกเฉิน (EmergencyCaseID)-
TRIAGE_ASSESSMENT- การประเมินคัดกรอง -
จากระบบทันตกรรม (1.2.5)
-
DENTAL_TREATMENT- การรักษาทันตกรรม -
จากระบบนัดหมาย (1.2.6)
PATIENT_APPOINTMENT- การนัดหมาย (สำหรับคำนวณจำนวนยา)-
DOCTOR_SCHEDULE- ตารางเวรแพทย์ -
จากระบบงานชันสูตร (1.2.7)
LAB_RESULT- ผล Lab (สำหรับดูประกอบการสั่งยา)-
LAB_TEST_MASTER- รายการตรวจ Lab -
จากระบบการเงิน (1.2.14)
BILLING- รายการค่าใช้จ่ายPAYMENT- การชำระเงิน-
RECEIPT- ใบเสร็จรับเงิน -
จากระบบตรวจสอบสิทธิ (1.2.15)
RIGHT_TYPES- ประเภทสิทธิการรักษาPATIENT_RIGHTS- สิทธิของผู้ป่วย-
RIGHTS_VERIFICATION- การยืนยันสิทธิ -
จากระบบผู้ป่วยใน (1.2.17)
IPD_ADMISSION- การรับเข้าผู้ป่วยใน (AdmissionID)IPD_DISCHARGE- การจำหน่ายผู้ป่วยในWARD- หอผู้ป่วย
-
Master Data ร่วมกัน
DOCTORS- แพทย์NURSES- พยาบาลSTAFF- เจ้าหน้าที่DEPARTMENT- แผนกICD_CODES- รหัสโรค ICD-10
9. Indexes และ Performance Optimization
9.1 Primary Indexes
-- DRUG_MASTER
CREATE INDEX IDX_DRUG_MASTER_GPO ON DRUG_MASTER(GPOCode);
CREATE INDEX IDX_DRUG_MASTER_TMT ON DRUG_MASTER(TMTCode);
CREATE INDEX IDX_DRUG_MASTER_24CODE ON DRUG_MASTER(Standard24Code);
CREATE INDEX IDX_DRUG_MASTER_ACTIVE ON DRUG_MASTER(IsActive, IsDiscontinued);
CREATE INDEX IDX_DRUG_MASTER_CATEGORY ON DRUG_MASTER(DrugCategoryID);
-- PRESCRIPTION_ORDER
CREATE INDEX IDX_PRESCRIPTION_HN ON PRESCRIPTION_ORDER(HN, OrderDateTime);
CREATE INDEX IDX_PRESCRIPTION_VISIT ON PRESCRIPTION_ORDER(VisitID);
CREATE INDEX IDX_PRESCRIPTION_DOCTOR ON PRESCRIPTION_ORDER(DoctorID, OrderDateTime);
CREATE INDEX IDX_PRESCRIPTION_STATUS ON PRESCRIPTION_ORDER(OrderStatus);
CREATE INDEX IDX_PRESCRIPTION_SOURCE ON PRESCRIPTION_ORDER(SourceSystem, SourceID);
CREATE INDEX IDX_PRESCRIPTION_DATE ON PRESCRIPTION_ORDER(OrderDateTime);
-- PRESCRIPTION_ITEM
CREATE INDEX IDX_PRESCRIPTION_ITEM_ORDER ON PRESCRIPTION_ITEM(PrescriptionOrderID);
CREATE INDEX IDX_PRESCRIPTION_ITEM_DRUG ON PRESCRIPTION_ITEM(DrugCode);
CREATE INDEX IDX_PRESCRIPTION_ITEM_STATUS ON PRESCRIPTION_ITEM(ItemStatus);
-- DRUG_INTERACTION
CREATE INDEX IDX_INTERACTION_DRUG1 ON DRUG_INTERACTION(DrugCode1);
CREATE INDEX IDX_INTERACTION_DRUG2 ON DRUG_INTERACTION(DrugCode2);
CREATE INDEX IDX_INTERACTION_SEVERITY ON DRUG_INTERACTION(SeverityLevel);
CREATE INDEX IDX_INTERACTION_ACTIVE ON DRUG_INTERACTION(IsActive);
-- MEDICATION_DISPENSING
CREATE INDEX IDX_DISPENSING_HN ON MEDICATION_DISPENSING(HN, DispensingDateTime);
CREATE INDEX IDX_DISPENSING_PRESCRIPTION ON MEDICATION_DISPENSING(PrescriptionOrderID);
CREATE INDEX IDX_DISPENSING_PHARMACIST ON MEDICATION_DISPENSING(PharmacistID, DispensingDateTime);
CREATE INDEX IDX_DISPENSING_DATE ON MEDICATION_DISPENSING(DispensingDateTime);
-- INTERACTION_CHECK_LOG
CREATE INDEX IDX_CHECK_LOG_PRESCRIPTION ON INTERACTION_CHECK_LOG(PrescriptionOrderID);
CREATE INDEX IDX_CHECK_LOG_HN ON INTERACTION_CHECK_LOG(HN, CheckDateTime);
CREATE INDEX IDX_CHECK_LOG_TYPE ON INTERACTION_CHECK_LOG(CheckType);
9.2 Composite Indexes
-- สำหรับการค้นหาประวัติการใช้ยา
CREATE INDEX IDX_PRESCRIPTION_HISTORY ON PRESCRIPTION_ORDER(HN, OrderDateTime, OrderStatus);
-- สำหรับการตรวจสอบ Drug Interaction
CREATE INDEX IDX_ACTIVE_PRESCRIPTIONS ON PRESCRIPTION_ITEM(HN, ItemStatus, DrugCode);
-- สำหรับ Medication Profile ผู้ป่วยใน
CREATE INDEX IDX_MEDICATION_PROFILE_IPD ON MEDICATION_PROFILE(AdmissionID, IsContinuing);
-- สำหรับการพิมพ์ฉลากยา
CREATE INDEX IDX_LABEL_PRINT ON PRESCRIPTION_ITEM(PrescriptionOrderID, PrintLabel, LabelPrinted);
10. Business Rules และ Constraints
10.1 Data Validation Rules
- DRUG_MASTER:
DrugCodeต้องไม่ซ้ำ- ต้องมีอย่างน้อย 1 รหัสมาตรฐาน (GPO, TMT, หรือ 24 หลัก)
- ราคาขายต้องมากกว่าหรือเท่ากับราคาทุน
-
DefaultQuantity≤MaxQuantity -
PRESCRIPTION_ORDER:
OrderDateTime≤ ปัจจุบัน- สำหรับ IPD Continue Order:
StartDate≤EndDate DayDose> 0-
ต้องมี
SourceSystemและSourceIDที่ถูกต้อง -
PRESCRIPTION_ITEM:
Quantity> 0UnitPrice≥ 0TotalPrice=Quantity×UnitPrice-
DispensedQuantity≤Quantity -
DRUG_INTERACTION:
DrugCode1≠DrugCode2-
ต้องมี
SeverityLevel -
MEDICATION_DISPENSING:
DispensingDateTime≤ ปัจจุบันDispensedQuantity> 0- ต้องมี
PharmacistID(เภสัชกรผู้จ่าย) ExpiryDate>DispensingDateTime
10.2 Business Logic Rules
- การตรวจสอบการแพ้ยา:
- ก่อนบันทึก
PRESCRIPTION_ITEMต้องตรวจสอบDRUG_ALLERGYจากระบบซักประวัติ (1.2.2) -
หาก
IsContraindicated= TRUE → แสดงคำเตือนและบล็อกการสั่ง -
การตรวจสอบ Drug Interaction:
- ตรวจสอบกับยาที่ใช้อยู่ปัจจุบันในช่วงเวลาที่กำหนดใน
INTERACTION_CHECK_CONFIG - บันทึกผลการตรวจสอบใน
INTERACTION_CHECK_LOG -
แสดงคำเตือนตาม
SeverityLevel -
การตรวจสอบข้อห้ามใช้:
- ตรวจสอบ
DRUG_CONTRAINDICATIONกับMEDICAL_DIAGNOSISจากระบบห้องตรวจ -
แสดงคำเตือนถ้าพบข้อห้ามใช้
-
การตรวจสอบกลุ่มผู้ป่วยพิเศษ:
-
ตรวจสอบ
DRUG_ALERT_CONFIGตาม:IsPregnant→ Pregnancy CategoryIsBreastfeeding→ Breastfeeding Alert- อายุผู้ป่วย → Pediatric/Elderly Alert
- G6PD deficiency
- เพศ
-
การคำนวณราคา:
- ดึงราคาจาก
DRUG_PRICEตามRightTypeID - คำนวณ
Copaymentตามสิทธิ -
ส่งข้อมูลไปยังระบบการเงิน (1.2.14)
-
การสั่งยา IPD Continue Order:
- ต้องระบุ
StartDateและEndDate - สร้าง
MEDICATION_PROFILEอัตโนมัติ -
สร้าง schedule ใน
DRUG_ADMINISTRATION_RECORD -
การยกเลิกคำสั่งยา:
- ถ้ายังไม่ชำระเงิน → แก้ไขได้โดยตรง
- ถ้าชำระเงินแล้ว → ต้องยกเลิกใบเสร็จที่ระบบการเงินก่อน
-
บันทึกการแก้ไขทุกครั้งใน
PRESCRIPTION_MODIFICATION_LOG -
การพิมพ์ฉลากยา:
- ตรวจสอบ
LABEL_PRINT_CONFIGตามDrugCode - บันทึกการพิมพ์ใน
PRESCRIPTION_DOCUMENT LabelPrintCountเพิ่มขึ้นทุกครั้งที่พิมพ์
11. API Integration Points
11.1 Inbound APIs (รับข้อมูลเข้า)
- GET /api/pharmacy/patient/{HN}
- รับข้อมูลผู้ป่วยจากระบบเวชระเบียน (1.2.1)
-
รวมถึงข้อมูล Demographics, Contact
-
GET /api/pharmacy/allergy/{HN}
- รับประวัติการแพ้ยาจากระบบซักประวัติ (1.2.2)
-
Real-time check ก่อนสั่งยา
-
GET /api/pharmacy/diagnosis/{VisitID}
- รับข้อมูลการวินิจฉัยจากระบบห้องตรวจ (1.2.3)
-
สำหรับตรวจสอบ Contraindication
-
GET /api/pharmacy/appointment/{HN}
- รับข้อมูลการนัดหมายจากระบบนัดหมาย (1.2.6)
-
สำหรับคำนวณจำนวนยาตามวันนัด
-
GET /api/pharmacy/lab/{HN}
- รับผล Lab จากระบบงานชันสูตร (1.2.7)
-
แสดงผลประกอบการสั่งยา
-
GET /api/pharmacy/rights/{HN}
- รับข้อมูลสิทธิจากระบบตรวจสอบสิทธิ (1.2.15)
-
สำหรับคำนวณราคาและ Copayment
-
GET /api/pharmacy/admission/{AdmissionID}
- รับข้อมูลผู้ป่วยในจากระบบผู้ป่วยใน (1.2.17)
- สำหรับการสั่งยา IPD
11.2 Outbound APIs (ส่งข้อมูลออก)
- POST /api/billing/pharmacy-charges
- ส่งรายการค่าใช้จ่ายยาไปยังระบบการเงิน (1.2.14)
-
จาก
PRESCRIPTION_ITEM→BILLING -
POST /api/pharmacy/interaction-alert
- ส่งการแจ้งเตือน Drug Interaction ไปยังระบบห้องตรวจ
-
Real-time notification
-
POST /api/pharmacy/dispensing-status
- อัปเดตสถานะการจ่ายยาไปยังระบบที่เกี่ยวข้อง
-
จาก
MEDICATION_DISPENSING -
POST /api/pharmacy/medication-profile
- ส่ง Medication Profile ไปยังระบบผู้ป่วยใน (1.2.17)
- สำหรับผู้ป่วยใน
11.3 Webhook Events
- patient.allergy.updated
- เมื่อมีการเพิ่ม/แก้ไขการแพ้ยา
-
Trigger: ตรวจสอบคำสั่งยาที่ใช้อยู่
-
prescription.status.changed
- เมื่อสถานะคำสั่งยาเปลี่ยน
-
Notify: ระบบที่เกี่ยวข้อง
-
medication.dispensed
- เมื่อจ่ายยาเสร็จสิ้น
- Trigger: อัปเดตสถานะการเงิน
12. Security และ Audit Trail
12.1 Data Security
- ข้อมูลที่ละเอียดอ่อน:
DRUG_ALLERGY- ประวัติการแพ้ยาMEDICATION_PROFILE- ประวัติการใช้ยา-
CONTROLLED_DRUG_TYPE- ยาควบคุมพิเศษ -
การเข้าถึงข้อมูล:
- แพทย์: ดูและสั่งยาได้ตามสิทธิ์
- เภสัชกร: ดู ตรวจสอบ และจ่ายยาได้ทั้งหมด
- พยาบาล: ดูและบันทึกการให้ยา IPD
- เจ้าหน้าที่การเงิน: ดูข้อมูลราคาเท่านั้น
12.2 Audit Trail Tables
ตารางที่มีการ Audit Trail:
- PRESCRIPTION_ORDER - บันทึกการสั่งยา
- PRESCRIPTION_ITEM - บันทึกรายการยา
- PRESCRIPTION_MODIFICATION_LOG - บันทึกการแก้ไข (มีอยู่แล้ว)
- MEDICATION_DISPENSING - บันทึกการจ่ายยา
- DRUG_ADMINISTRATION_RECORD - บันทึกการให้ยา
- INTERACTION_CHECK_LOG - บันทึกการตรวจสอบ (มีอยู่แล้ว)
Fields สำหรับ Audit:
- CreatedDate / CreatedBy
- LastModified / ModifiedBy
- CancelledDate / CancelledBy
13. Performance Considerations
13.1 Caching Strategy
- Drug Master Data:
- Cache
DRUG_MASTERที่IsActive = TRUE -
Refresh ทุก 1 ชั่วโมง
-
Drug Interaction:
- Cache
DRUG_INTERACTIONที่ใช้บ่อย -
Refresh ทุกวัน
-
Master Data:
- Cache
DRUG_CATEGORY,DOSAGE_FORM,DRUG_ROUTE,DRUG_FREQUENCY - Refresh เมื่อมีการแก้ไข
13.2 Query Optimization
- Prescription History:
- Partition ตามปี
-
Archive ข้อมูลที่เก่ากว่า 5 ปี
-
Dispensing Records:
- Partition ตามเดือน
-
Index on
HN+DispensingDateTime -
Interaction Check:
- Use stored procedure สำหรับการตรวจสอบ
- Cache ผลการตรวจสอบ 5 นาที
14. Backup และ Recovery
14.1 Backup Strategy
- Full Backup:
- ทุกวันเวลา 02:00 น.
-
เก็บ 30 วัน
-
Incremental Backup:
- ทุก 4 ชั่วโมง
-
เก็บ 7 วัน
-
Transaction Log Backup:
- ทุก 15 นาที
- เก็บ 24 ชั่วโมง
14.2 Critical Tables (ต้อง Backup พิเศษ)
DRUG_MASTERPRESCRIPTION_ORDERPRESCRIPTION_ITEMMEDICATION_DISPENSINGDRUG_ALLERGY(จากระบบซักประวัติ)
15. สรุปความสัมพันธ์ระหว่างตาราง
15.1 Core Relationships
PATIENT (1.2.1)
└── VISIT (1.2.1)
├── EXAMINATION_SESSION (1.2.3)
├── EMERGENCY_CASE (1.2.4)
└── IPD_ADMISSION (1.2.17)
└── PRESCRIPTION_ORDER
├── PRESCRIPTION_ITEM
│ ├── DRUG_MASTER
│ └── MEDICATION_DISPENSING
├── MEDICATION_VERIFICATION
└── MEDICATION_PROFILE (IPD)
└── DRUG_ADMINISTRATION_RECORD
15.2 Drug Safety Relationships
DRUG_MASTER
├── DRUG_INTERACTION
├── DRUG_CONTRAINDICATION
│ └── ICD_CODES
├── DRUG_ALERT_CONFIG
└── DRUG_INGREDIENT
PRESCRIPTION_ORDER
└── INTERACTION_CHECK_LOG
├── DRUG_INTERACTION
└── DRUG_ALLERGY (1.2.2)
15.3 Integration Relationships
ระบบเภสัชกรรม (1.2.13)
├── → ระบบเวชระเบียน (1.2.1): HN, VisitID
├── → ระบบซักประวัติ (1.2.2): DRUG_ALLERGY
├── → ระบบห้องตรวจ (1.2.3): ExaminationID, DIAGNOSIS
├── → ระบบห้องฉุกเฉิน (1.2.4): EmergencyCaseID
├── → ระบบนัดหมาย (1.2.6): APPOINTMENT
├── → ระบบงานชันสูตร (1.2.7): LAB_RESULT
├── ← ระบบการเงิน (1.2.14): BILLING, PAYMENT
├── → ระบบตรวจสอบสิทธิ (1.2.15): RIGHT_TYPES, RIGHTS_VERIFICATION
└── → ระบบผู้ป่วยใน (1.2.17): AdmissionID, MEDICATION_PROFILE
16. Change Log
| Version | Date | Author | Description |
|---|---|---|---|
| 1.0 | 30 ต.ค. 2568 | ทีมพัฒนาระบบ | เอกสาร Schema ฉบับแรก ครอบคลุม TOR ทั้ง 6 หัวข้อ |
เอกสารนี้จัดทำขึ้นเพื่อใช้ในการพัฒนาระบบเภสัชกรรมสำหรับโรงพยาบาลค่ายธนรัชต์ และต้องได้รับการอนุมัติจากผู้มีอำนาจก่อนนำไปใช้ในการพัฒนาระบบ