ข้ามไปที่เนื้อหา

Database Schema Design

ระบบการเงิน (Financial Management System)

โรงพยาบาลค่ายธนรัชน์


เอกสารเลขที่: SRS-1.2.14-SCHEMA
เวอร์ชัน: 1.0
วันที่: 8 ตุลาคม 2568
ผู้จัดทำ: ทีมพัฒนาระบบ
ผู้อนุมัติ: ผู้อำนวยการโรงพยาบาลค่ายธนรัชน์
การปรับปรุง: ใหม่ - ครอบคลุมการจัดการการเงินและการชำระเงินครบวงจร


Database Schema Design

ระบบการเงินเป็นระบบที่ทำหน้าที่เป็นศูนย์กลางการจัดการการเงิน การรับชำระเงิน การออกใบเสร็จ และการบริหารจัดการสิทธิการรักษาพยาบาลทางการเงิน โดยเชื่อมโยงกับระบบอื่นผ่าน API Integration:

  • ระบบเวชระเบียน (1.2.1): การดึงข้อมูลผู้ป่วยและการเข้ารับบริการ
  • ระบบตรวจสอบสิทธิ (1.2.15): การตรวจสอบและยืนยันสิทธิการรักษา
  • ระบบห้องตรวจแพทย์ (1.2.3): การรับค่าบริการจากการตรวจรักษา
  • ระบบเภสัชกรรม (1.2.13): การคิดค่ายาและเวชภัณฑ์
  • ระบบผู้ป่วยใน (1.2.17): การคิดค่าห้องและค่ารักษาผู้ป่วยใน
  • ระบบห้องฉุกเฉิน (1.2.4): การรับชำระค่าบริการฉุกเฉิน

8.2.1 ตารางหลัก (Core Tables)

8.2.1.1 ข้อมูลสิทธิการรักษาทางการเงิน

Table: FINANCIAL_RIGHTS (สิทธิการรักษาพยาบาล)

วัตถุประสงค์: เก็บข้อมูลสิทธิการรักษาพยาบาลทางการเงิน รวมถึงการกำหนดผังการคิดค่าบริการและส่วนลดตามสิทธิ

Field Type Key Description
RightID VARCHAR(10) PK รหัสสิทธิการรักษา
RightName NVARCHAR(100) ชื่อสิทธิการรักษา
RightDescription NTEXT คำอธิบายสิทธิ
PaymentTypeCode VARCHAR(10) FK ประเภทการชำระเงิน (อ้างอิง PAYMENT_TYPE)
NHSO_Code VARCHAR(10) รหัสสิทธิ สนย. (43 แฟ้ม)
NHSO_StandardName NVARCHAR(100) ชื่อสิทธิมาตรฐาน สปสช.
CopaymentAmount DECIMAL(10,2) ค่าธรรมเนียมสิทธิที่ต้องชำระเอง
PaymentMethod ENUM('FEE_FOR_SERVICE','DRG','GLOBAL_BUDGET','CAPITATION','MIXED') วิธีการคิดค่าบริการ
IsActive BIT ใช้งานได้
EffectiveDate DATE วันที่เริ่มใช้
ExpiryDate DATE วันที่หมดอายุ
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง
LastModified DATETIME วันที่แก้ไขล่าสุด
ModifiedBy VARCHAR(50) ผู้แก้ไขล่าสุด

Table: PAYMENT_CHART (ผังการคิดค่าบริการ)

วัตถุประสงค์: กำหนดสูตรการคำนวณค่าบริการสำหรับแต่ละสิทธิและหมวดค่ารักษา

Field Type Key Description
ChartID VARCHAR(20) PK รหัสผังการคิด
RightID VARCHAR(10) FK รหัสสิทธิการรักษา
CategoryCode VARCHAR(10) FK รหัสหมวดค่ารักษา
CalculationMethod ENUM('PERCENTAGE','FIXED_AMOUNT','FORMULA','EXEMPTION') วิธีการคำนวณ
DiscountPercent DECIMAL(5,2) เปอร์เซ็นต์ส่วนลด (0-100)
FixedAmount DECIMAL(10,2) จำนวนเงินคงที่
CalculationFormula TEXT สูตรการคำนวณ (สำหรับกรณีซับซ้อน)
MinimumAmount DECIMAL(10,2) จำนวนเงินขั้นต่ำ
MaximumAmount DECIMAL(10,2) จำนวนเงินสูงสุด
RoundingRule ENUM('ROUND_UP','ROUND_DOWN','ROUND_NEAREST') กฎการปัดเศษ
TaxIncluded BIT รวมภาษีแล้ว
EffectiveDate DATE วันที่เริ่มใช้
ExpiryDate DATE วันที่หมดอายุ
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

Table: FINANCIAL_CATEGORY (หมวดค่ารักษาพยาบาล)

วัตถุประสงค์: จัดประเภทค่าใช้จ่ายทางการแพทย์ทั้ง OPD และ IPD

Field Type Key Description
CategoryCode VARCHAR(10) PK รหัสหมวดค่ารักษา
CategoryName NVARCHAR(100) ชื่อหมวดค่ารักษา
CategoryType ENUM('OPD','IPD','BOTH') ประเภทการใช้งาน
ParentCategoryCode VARCHAR(10) FK หมวดหลัก (สำหรับหมวดย่อย)
DisplayOrder INT ลำดับการแสดงผล
IsChargeable BIT คิดค่าบริการได้
IsActive BIT ใช้งานได้
Description NTEXT คำอธิบาย
NHSO_CategoryCode VARCHAR(10) รหัสหมวดตาม สปสช.
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

Table: DISCOUNT_TYPE (ประเภทส่วนลด)

วัตถุประสงค์: กำหนดประเภทการลดหย่อนและยกเว้นค่ารักษาพยาบาล

Field Type Key Description
DiscountTypeCode VARCHAR(10) PK รหัสประเภทส่วนลด
DiscountTypeName NVARCHAR(100) ชื่อประเภทส่วนลด
DiscountCategory ENUM('DISCOUNT','EXEMPTION','SPECIAL') หมวดการลด
CalculationMethod ENUM('PERCENTAGE','FIXED_AMOUNT','FULL_EXEMPTION') วิธีการคำนวณ
DefaultPercent DECIMAL(5,2) เปอร์เซ็นต์เริ่มต้น
DefaultAmount DECIMAL(10,2) จำนวนเงินเริ่มต้น
MaxDiscountPercent DECIMAL(5,2) เปอร์เซ็นต์สูงสุด
MaxDiscountAmount DECIMAL(10,2) จำนวนเงินสูงสุด
RequiresApproval BIT ต้องขออนุมัติ
ApprovalLevel INT ระดับการอนุมัติ
IsActive BIT ใช้งานได้
Description NTEXT คำอธิบาย
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

8.2.1.2 ข้อมูลการรับชำระเงิน

Table: PAYMENT_TRANSACTION (รายการการรับชำระเงิน)

วัตถุประสงค์: ตารางหลักที่เก็บข้อมูลการรับชำระเงินทุกรายการ รองรับการชำระหลายสิทธิและหลายรูปแบบ

Field Type Key Description
PaymentID VARCHAR(20) PK รหัสการรับชำระเงิน (AUTO)
HN VARCHAR(10) FK หมายเลขผู้ป่วย (อ้างอิง PATIENT)
AN VARCHAR(15) FK หมายเลขผู้ป่วยใน (สำหรับ IPD)
VisitID VARCHAR(20) FK รหัสการเข้ารับบริการ (อ้างอิง VISIT)
PaymentDate DATE วันที่รับชำระเงิน
PaymentTime TIME เวลาที่รับชำระเงิน
TotalAmount DECIMAL(10,2) ยอดรวมทั้งหมด
DiscountAmount DECIMAL(10,2) ยอดส่วนลด
ExemptionAmount DECIMAL(10,2) ยอดยกเว้น
Copayment DECIMAL(10,2) ยอดที่ผู้ป่วยต้องจ่าย
RightsAmount DECIMAL(10,2) ยอดที่สิทธิจ่าย
PaidAmount DECIMAL(10,2) ยอดที่ได้รับชำระ
ChangeAmount DECIMAL(10,2) เงินทอน
PaymentStatus ENUM('PAID','PENDING','CANCELLED','PARTIAL') สถานะการชำระ
PatientType ENUM('OPD','IPD','ER','CHECKUP') ประเภทผู้ป่วย
CashierID VARCHAR(10) FK รหัสเจ้าหน้าที่การเงิน
TerminalID VARCHAR(10) FK รหัสจุดรับชำระเงิน
Remarks TEXT หมายเหตุ
CreatedAt TIMESTAMP วันเวลาที่สร้าง
UpdatedAt TIMESTAMP วันเวลาที่แก้ไขล่าสุด

Table: PAYMENT_METHOD (วิธีการชำระเงิน)

วัตถุประสงค์: เก็บข้อมูลวิธีการชำระเงินในแต่ละรายการ รองรับการชำระแบบผสมผสาน

Field Type Key Description
PaymentMethodID VARCHAR(20) PK รหัสวิธีการชำระ
PaymentID VARCHAR(20) FK รหัสการรับชำระเงิน
MethodType ENUM('CASH','CARD','TRANSFER','QR','DEPOSIT','RIGHTS') ประเภทการชำระ
Amount DECIMAL(10,2) จำนวนเงิน
SequenceNo INT ลำดับที่ (สำหรับการชำระแบบผสม)
ReferenceNumber VARCHAR(50) หมายเลขอ้างอิง
BankCode VARCHAR(10) รหัสธนาคาร
CardNumber VARCHAR(20) หมายเลขบัตร (4 หลักสุดท้าย)
ApprovalCode VARCHAR(20) รหัสอนุมัติ
TerminalID VARCHAR(20) หมายเลขเครื่อง EDC
SlipNumber VARCHAR(30) หมายเลขสลิป
ProcessedDate DATETIME วันเวลาที่ประมวลผล
CreatedAt TIMESTAMP วันเวลาที่สร้าง

Table: PAYMENT_DETAIL (รายละเอียดการชำระเงิน)

วัตถุประสงค์: เก็บรายละเอียดการชำระเงินแยกตามหมวดค่ารักษาและบริการ

Field Type Key Description
PaymentDetailID VARCHAR(20) PK รหัสรายละเอียดการชำระ
PaymentID VARCHAR(20) FK รหัสการรับชำระเงิน
CategoryCode VARCHAR(10) FK รหัสหมวดค่ารักษา
ServiceCode VARCHAR(20) รหัสบริการ
ServiceName VARCHAR(200) ชื่อบริการ
Quantity DECIMAL(8,2) จำนวน
UnitPrice DECIMAL(10,2) ราคาต่อหน่วย
TotalPrice DECIMAL(10,2) ราคารวม
DiscountPercent DECIMAL(5,2) เปอร์เซ็นต์ส่วนลด
DiscountAmount DECIMAL(10,2) จำนวนเงินส่วนลด
NetAmount DECIMAL(10,2) ราคาสุทธิ
DepartmentCode VARCHAR(10) รหัสแผนก
ServiceDate DATE วันที่ให้บริการ
RightID VARCHAR(10) FK รหัสสิทธิที่ใช้
CreatedAt TIMESTAMP วันเวลาที่สร้าง

8.2.1.3 ข้อมูลใบเสร็จและเอกสารทางการเงิน

Table: RECEIPT (ใบเสร็จรับเงิน)

วัตถุประสงค์: เก็บข้อมูลใบเสร็จรับเงิน รองรับการออกใบเสร็จหลายภาษาและหลายรูปแบบ

Field Type Key Description
ReceiptID VARCHAR(20) PK รหัสใบเสร็จ
ReceiptNumber VARCHAR(30) UK เลขที่ใบเสร็จ (เรียงตามรูปแบบที่กำหนด)
PaymentID VARCHAR(20) FK รหัสการรับชำระเงิน
ReceiptDate DATE วันที่ออกใบเสร็จ
ReceiptTime TIME เวลาที่ออกใบเสร็จ
ReceiptType ENUM('ORIGINAL','COPY','REPRINT') ประเภทใบเสร็จ
PrintCount INT จำนวนครั้งที่พิมพ์
FormatType VARCHAR(20) FK รูปแบบใบเสร็จ (อ้างอิง RECEIPT_FORMAT)
Language ENUM('TH','EN') ภาษาใบเสร็จ
IsCancelled BIT สถานะยกเลิก
CancelledDate TIMESTAMP วันเวลาที่ยกเลิก
CancelledBy VARCHAR(10) FK ผู้ยกเลิก
CancelReason TEXT เหตุผลการยกเลิก
NewReceiptID VARCHAR(20) FK รหัสใบเสร็จใหม่ (กรณีแก้ไข)
PrinterID VARCHAR(20) รหัสเครื่องพิมพ์
CreatedAt TIMESTAMP วันเวลาที่สร้าง

Table: INVOICE (ใบแจ้งหนี้)

วัตถุประสงค์: เก็บข้อมูลใบแจ้งหนี้สำหรับการเรียกเก็บเงินจากสิทธิการรักษาและผู้ป่วย

Field Type Key Description
InvoiceID VARCHAR(20) PK รหัสใบแจ้งหนี้
InvoiceNumber VARCHAR(30) UK เลขที่ใบแจ้งหนี้
HN VARCHAR(10) FK หมายเลขผู้ป่วย
AN VARCHAR(15) FK หมายเลขผู้ป่วยใน
InvoiceDate DATE วันที่ออกใบแจ้งหนี้
DueDate DATE วันที่ครบกำหนด
InvoiceType ENUM('OPD','IPD','RIGHTS','INSURANCE') ประเภทใบแจ้งหนี้
BillToType ENUM('PATIENT','RIGHTS','INSURANCE') ผู้รับบิล
BillToCode VARCHAR(20) รหัสผู้รับบิล
BillToName VARCHAR(200) ชื่อผู้รับบิล
TotalAmount DECIMAL(10,2) ยอดรวม
PaidAmount DECIMAL(10,2) ยอดที่ชำระแล้ว
BalanceAmount DECIMAL(10,2) ยอดคงเหลือ
InvoiceStatus ENUM('PENDING','SENT','PAID','OVERDUE','CANCELLED') สถานะใบแจ้งหนี้
Language ENUM('TH','EN') ภาษาใบแจ้งหนี้
CreatedBy VARCHAR(10) FK ผู้สร้าง
CreatedAt TIMESTAMP วันเวลาที่สร้าง

Table: RECEIPT_FORMAT (รูปแบบใบเสร็จ)

วัตถุประสงค์: กำหนดรูปแบบการพิมพ์ใบเสร็จตามที่แต่ละสถานพยาบาลกำหนด

Field Type Key Description
FormatID VARCHAR(20) PK รหัสรูปแบบ
FormatName NVARCHAR(100) ชื่อรูปแบบ
FormatType ENUM('STANDARD','THERMAL','A4','CUSTOM') ประเภทรูปแบบ
PaperSize VARCHAR(20) ขนาดกระดาษ
HeaderTemplate TEXT แม่แบบส่วนหัว
BodyTemplate TEXT แม่แบบเนื้อหา
FooterTemplate TEXT แม่แบบส่วนท้าย
LogoPath VARCHAR(255) ที่อยู่โลโก้
IsDefault BIT รูปแบบเริ่มต้น
IsActive BIT ใช้งานได้
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

8.2.1.4 ข้อมูลเงินรับฝากและค้างชำระ

Table: DEPOSIT_TRANSACTION (รายการเงินรับฝาก)

วัตถุประสงค์: เก็บข้อมูลการทำรายการเงินรับฝาก การฝาก-ถอน-คืนเงิน

Field Type Key Description
DepositTransactionID VARCHAR(20) PK รหัสรายการเงินรับฝาก
HN VARCHAR(10) FK หมายเลขผู้ป่วย
AN VARCHAR(15) FK หมายเลขผู้ป่วยใน
TransactionType ENUM('DEPOSIT','WITHDRAW','REFUND','TRANSFER') ประเภทรายการ
Amount DECIMAL(10,2) จำนวนเงิน
BalanceBefore DECIMAL(10,2) ยอดคงเหลือก่อนทำรายการ
BalanceAfter DECIMAL(10,2) ยอดคงเหลือหลังทำรายการ
DepositDate DATE วันที่ทำรายการ
DepositTime TIME เวลาที่ทำรายการ
DepositorName VARCHAR(200) ชื่อผู้ฝากเงิน
PaymentMethod ENUM('CASH','TRANSFER','CARD') วิธีการชำระ
ReferenceNumber VARCHAR(50) หมายเลขอ้างอิง
ReceiptNumber VARCHAR(30) เลขที่ใบรับฝากเงิน
Remarks TEXT หมายเหตุ
CashierID VARCHAR(10) FK รหัสเจ้าหน้าที่
TerminalID VARCHAR(10) FK รหัสจุดรับชำระเงิน
RelatedPaymentID VARCHAR(20) FK รหัสการชำระที่เกี่ยวข้อง
CreatedAt TIMESTAMP วันเวลาที่สร้าง

Table: OUTSTANDING_BALANCE (ยอดค้างชำระ)

วัตถุประสงค์: เก็บข้อมูลยอดค้างชำระของผู้ป่วย พร้อมระบบแจ้งเตือน

Field Type Key Description
OutstandingID VARCHAR(20) PK รหัสยอดค้างชำระ
HN VARCHAR(10) FK หมายเลขผู้ป่วย
VisitID VARCHAR(20) FK รหัสการเข้ารับบริการ
AN VARCHAR(15) FK หมายเลขผู้ป่วยใน
ServiceDate DATE วันที่ใช้บริการ
TotalAmount DECIMAL(10,2) ยอดรวม
PaidAmount DECIMAL(10,2) ยอดที่ชำระแล้ว
BalanceAmount DECIMAL(10,2) ยอดคงเหลือ
DueDate DATE วันที่ครบกำหนด
OverdueDays INT จำนวนวันค้างชำระ
Status ENUM('PENDING','PARTIAL','PAID','WRITTEN_OFF','DISPUTED') สถานะ
AlertSent BIT ส่งการแจ้งเตือนแล้ว
LastAlertDate DATE วันที่แจ้งเตือนครั้งสุดท้าย
AlertCount INT จำนวนครั้งที่แจ้งเตือน
Remarks TEXT หมายเหตุ
CreatedAt TIMESTAMP วันเวลาที่สร้าง
UpdatedAt TIMESTAMP วันเวลาที่แก้ไขล่าสุด

8.2.2 ตารางรองรับการทำงาน (Support Tables)

8.2.2.1 การอนุมัติและลดหย่อน

Table: PAYMENT_APPROVAL (การอนุมัติการชำระ)

วัตถุประสงค์: เก็บข้อมูลการขออนุมัติการชำระเงิน ส่วนลด และยกเว้น

Field Type Key Description
ApprovalID VARCHAR(20) PK รหัสการขออนุมัติ
PaymentID VARCHAR(20) FK รหัสการรับชำระเงิน
ApprovalType ENUM('DISCOUNT','EXEMPTION','INSTALLMENT','SPECIAL') ประเภทการอนุมัติ
RequestedAmount DECIMAL(10,2) จำนวนเงินที่ขออนุมัติ
ApprovedAmount DECIMAL(10,2) จำนวนเงินที่อนุมัติ
Reason TEXT เหตุผลการขออนุมัติ
SupportingDocument VARCHAR(255) เอกสารประกอบ
RequestedBy VARCHAR(10) FK ผู้ขออนุมัติ
RequestedDate TIMESTAMP วันเวลาที่ขออนุมัติ
ApprovalLevel INT ระดับการอนุมัติ
ApproverID VARCHAR(10) FK ผู้อนุมัติ
ApprovalDate TIMESTAMP วันเวลาที่อนุมัติ
ApprovalStatus ENUM('PENDING','APPROVED','REJECTED','CANCELLED') สถานะการอนุมัติ
ApprovalRemarks TEXT หมายเหตุการอนุมัติ
NextApproverID VARCHAR(10) FK ผู้อนุมัติลำดับถัดไป

Table: DISCOUNT_EXEMPTION (การลดหย่อนและยกเว้น)

วัตถุประสงค์: เก็บข้อมูลการลดหย่อนและยกเว้นค่ารักษาที่ได้รับอนุมัติ

Field Type Key Description
DiscountExemptionID VARCHAR(20) PK รหัสการลดหย่อนและยกเว้น
PaymentID VARCHAR(20) FK รหัสการรับชำระเงิน
Type ENUM('DISCOUNT','EXEMPTION','SPECIAL_PROGRAM') ประเภทการลด
DiscountTypeCode VARCHAR(10) FK รหัสประเภทส่วนลด
ExemptionTypeCode VARCHAR(10) FK รหัสประเภทยกเว้น
CategoryCode VARCHAR(10) FK รหัสหมวดค่ารักษา (ถ้าเฉพาะหมวด)
CalculationMethod ENUM('PERCENTAGE','FIXED_AMOUNT','FULL_EXEMPTION') วิธีคำนวณ
DiscountPercent DECIMAL(5,2) เปอร์เซ็นต์ส่วนลด
DiscountAmount DECIMAL(10,2) จำนวนเงินส่วนลด
OriginalAmount DECIMAL(10,2) ยอดเงินเดิม
DiscountedAmount DECIMAL(10,2) ยอดเงินหลังลด
ApprovalID VARCHAR(20) FK รหัสการอนุมัติ
EffectiveDate DATE วันที่มีผล
ExpiryDate DATE วันที่หมดอายุ
BeneficiaryType ENUM('PATIENT','STAFF','SPECIAL','GOVERNMENT') ประเภทผู้รับสิทธิ
CreatedBy VARCHAR(10) FK ผู้สร้าง
CreatedAt TIMESTAMP วันเวลาที่สร้าง

8.2.2.2 การปิดรอบการเงิน

Table: FINANCIAL_CLOSING (การปิดรอบการเงิน)

วัตถุประสงค์: เก็บข้อมูลการปิดรอบการเงินรายวัน รายเดือน และรายปี

Field Type Key Description
ClosingID VARCHAR(20) PK รหัสการปิดรอบ
ClosingType ENUM('DAILY','MONTHLY','YEARLY') ประเภทการปิดรอบ
ClosingDate DATE วันที่ปิดรอบ
PeriodFrom DATE วันที่เริ่มต้นรอบ
PeriodTo DATE วันที่สิ้นสุดรอบ
TotalTransactions INT จำนวนรายการทั้งหมด
TotalCashAmount DECIMAL(15,2) ยอดเงินสดรวม
TotalCardAmount DECIMAL(15,2) ยอดบัตรเครดิตรวม
TotalTransferAmount DECIMAL(15,2) ยอดเงินโอนรวม
TotalRightsAmount DECIMAL(15,2) ยอดสิทธิรวม
TotalDiscountAmount DECIMAL(15,2) ยอดส่วนลดรวม
TotalExemptionAmount DECIMAL(15,2) ยอดยกเว้นรวม
NetAmount DECIMAL(15,2) ยอดสุทธิ
ClosingStatus ENUM('PENDING','PROCESSING','COMPLETED','VERIFIED') สถานะการปิดรอบ
ClosedBy VARCHAR(10) FK ผู้ปิดรอบ
ClosedAt TIMESTAMP วันเวลาที่ปิดรอบ
VerifiedBy VARCHAR(10) FK ผู้ตรวจสอบ
VerifiedAt TIMESTAMP วันเวลาที่ตรวจสอบ
Remarks TEXT หมายเหตุ

Table: CASH_DRAWER (ลิ้นชักเก็บเงิน)

วัตถุประสงค์: จัดการเงินสดในลิ้นชักของแต่ละจุดรับชำระเงิน

Field Type Key Description
DrawerID VARCHAR(20) PK รหัสลิ้นชัก
TerminalID VARCHAR(10) FK รหัสจุดรับชำระเงิน
CashierID VARCHAR(10) FK รหัสเจ้าหน้าที่
OpeningDate DATE วันที่เปิดลิ้นชัก
OpeningTime TIME เวลาที่เปิดลิ้นชัก
OpeningAmount DECIMAL(10,2) ยอดเงินเริ่มต้น
TotalCashIn DECIMAL(10,2) เงินสดรับเข้าทั้งหมด
TotalCashOut DECIMAL(10,2) เงินสดจ่ายออกทั้งหมด
EndingAmount DECIMAL(10,2) ยอดเงินสิ้นสุด
ActualAmount DECIMAL(10,2) เงินสดจริงที่นับได้
Variance DECIMAL(10,2) ส่วนต่าง (บวก/ลบ)
ClosingDate DATE วันที่ปิดลิ้นชัก
ClosingTime TIME เวลาที่ปิดลิ้นชัก
Status ENUM('OPEN','CLOSED','BALANCED','UNBALANCED') สถานะลิ้นชัก
Remarks TEXT หมายเหตุ

8.2.2.3 การจัดการเครื่องมือและอุปกรณ์

Table: PAYMENT_TERMINAL (จุดรับชำระเงิน)

วัตถุประสงค์: จัดการข้อมูลจุดรับชำระเงินและอุปกรณ์ที่เกี่ยวข้อง

Field Type Key Description
TerminalID VARCHAR(10) PK รหัสจุดรับชำระเงิน
TerminalName NVARCHAR(100) ชื่อจุดรับชำระ
Location NVARCHAR(100) ตำแหน่งที่ตั้ง
DepartmentCode VARCHAR(10) FK รหัสแผนกที่สังกัด
TerminalType ENUM('CASHIER','KIOSK','MOBILE','BEDSIDE') ประเภทจุด
IPAddress VARCHAR(15) หมายเลข IP
MACAddress VARCHAR(17) หมายเลข MAC
PrinterModel VARCHAR(50) รุ่นเครื่องพิมพ์
PrinterIP VARCHAR(15) IP เครื่องพิมพ์
CashDrawerModel VARCHAR(50) รุ่นลิ้นชักเก็บเงิน
EDCTerminalID VARCHAR(20) รหัสเครื่อง EDC
IsActive BIT ใช้งานได้
LastOnline TIMESTAMP ออนไลน์ครั้งสุดท้าย
ConfigJSON TEXT การตั้งค่าเพิ่มเติม (JSON)
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

Table: PAYMENT_CONFIG (การตั้งค่าระบบการเงิน)

วัตถุประสงค์: เก็บการตั้งค่าต่างๆ ของระบบการเงิน

Field Type Key Description
ConfigID VARCHAR(20) PK รหัสการตั้งค่า
ConfigCategory VARCHAR(50) หมวดการตั้งค่า
ConfigKey VARCHAR(100) คีย์การตั้งค่า
ConfigValue TEXT ค่าการตั้งค่า
DataType ENUM('STRING','INTEGER','DECIMAL','BOOLEAN','JSON') ประเภทข้อมูล
Description NTEXT คำอธิบาย
IsSystem BIT เป็นการตั้งค่าระบบ
IsEditable BIT แก้ไขได้
ValidValues TEXT ค่าที่อนุญาต (สำหรับ dropdown)
DefaultValue TEXT ค่าเริ่มต้น
DisplayOrder INT ลำดับการแสดงผล
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง
LastModified DATETIME วันที่แก้ไขล่าสุด
ModifiedBy VARCHAR(50) ผู้แก้ไขล่าสุด

8.2.3 ตารางจัดการระบบ (System Tables)

8.2.3.1 บันทึกการตรวจสอบและแก้ไข

Table: FINANCIAL_AUDIT_LOG (บันทึกการแก้ไขทางการเงิน)

วัตถุประสงค์: เก็บบันทึกการเปลี่ยนแปลงข้อมูลทางการเงินทั้งหมดเพื่อการตรวจสอบ

Field Type Key Description
LogID VARCHAR(20) PK รหัส Log
TableName VARCHAR(50) ชื่อตาราง
RecordID VARCHAR(20) รหัสระเบียน
HN VARCHAR(10) รหัสผู้ป่วย (ถ้ามี)
PaymentID VARCHAR(20) รหัสการชำระเงิน (ถ้ามี)
Action ENUM('INSERT','UPDATE','DELETE','CANCEL') การกระทำ
FieldName VARCHAR(50) ชื่อฟิลด์ที่เปลี่ยน
OldValue TEXT ค่าเดิม
NewValue TEXT ค่าใหม่
ChangeReason TEXT เหตุผลการเปลี่ยน
IPAddress VARCHAR(15) หมายเลข IP ผู้ใช้
UserAgent VARCHAR(255) ข้อมูล Browser/Device
SessionID VARCHAR(50) รหัส Session
TransactionID VARCHAR(50) รหัสการทำงานกลุ่ม
Timestamp TIMESTAMP วันเวลาที่เกิดเหตุการณ์
UserId VARCHAR(50) รหัสผู้ใช้
UserRole VARCHAR(50) บทบาทผู้ใช้

Table: RECEIPT_CANCEL_LOG (บันทึกการยกเลิกใบเสร็จ)

วัตถุประสงค์: เก็บประวัติการยกเลิกใบเสร็จอย่างละเอียด ตาม TOR 1.2.14.5

Field Type Key Description
CancelLogID VARCHAR(20) PK รหัสบันทึกการยกเลิก
ReceiptID VARCHAR(20) FK รหัสใบเสร็จที่ยกเลิก
OldReceiptNumber VARCHAR(30) เลขที่ใบเสร็จเดิม
NewReceiptID VARCHAR(20) FK รหัสใบเสร็จใหม่ (ถ้ามี)
NewReceiptNumber VARCHAR(30) เลขที่ใบเสร็จใหม่ (ถ้ามี)
CancelDate DATE วันที่ยกเลิก
CancelTime TIME เวลาที่ยกเลิก
HN VARCHAR(10) หมายเลขผู้ป่วย
PatientName NVARCHAR(100) ชื่อ-สกุลผู้ป่วย
CancelledAmount DECIMAL(10,2) จำนวนเงินที่ยกเลิก
CancelReason TEXT สาเหตุของการยกเลิก
CancelType ENUM('ERROR','REFUND','ADJUSTMENT','SYSTEM_ERROR') ประเภทการยกเลิก
CancelledBy VARCHAR(10) FK เจ้าหน้าที่ที่ทำการยกเลิก
ApprovedBy VARCHAR(10) FK ผู้อนุมัติการยกเลิก
TerminalID VARCHAR(10) FK จุดที่ทำการยกเลิก
RefundMethod ENUM('CASH','ORIGINAL_METHOD','DEPOSIT') วิธีการคืนเงิน
DocumentPath VARCHAR(255) เส้นทางเอกสารประกอบ
CreatedAt TIMESTAMP วันเวลาที่บันทึก

8.2.3.2 การเชื่อมโยงกับระบบภายนอก

Table: FINANCIAL_INTEGRATION_LOG (บันทึกการเชื่อมโยงระบบ)

วัตถุประสงค์: เก็บบันทึกการส่งข้อมูลไปยังระบบภายนอกและการรับข้อมูลกลับ

Field Type Key Description
IntegrationLogID VARCHAR(20) PK รหัสบันทึกการเชื่อมโยง
SystemName VARCHAR(50) ชื่อระบบปลายทาง
ApiEndpoint VARCHAR(255) URL ของ API
RequestType ENUM('SEND','RECEIVE','SYNC','VERIFY') ประเภทคำขอ
PaymentID VARCHAR(20) FK รหัสการชำระที่เกี่ยวข้อง
HN VARCHAR(10) รหัสผู้ป่วย
RequestData TEXT ข้อมูลที่ส่ง (JSON)
ResponseData TEXT ข้อมูลที่ได้รับ (JSON)
StatusCode VARCHAR(10) รหัสสถานะ HTTP
IsSuccess BIT สำเร็จหรือไม่
ErrorMessage TEXT ข้อความ Error (ถ้ามี)
ProcessingTime INT เวลาประมวลผล (ms)
RetryCount INT จำนวนครั้งที่ลองใหม่
CreatedAt TIMESTAMP วันเวลาที่เกิดเหตุการณ์

Table: EXTERNAL_PAYMENT_API (API การชำระเงินภายนอก)

วัตถุประสงค์: จัดการการเชื่อมต่อกับระบบการชำระเงินภายนอก (บัตรเครดิต, QR Code, etc.)

Field Type Key Description
ApiConfigID VARCHAR(20) PK รหัสการตั้งค่า API
ApiName VARCHAR(100) ชื่อ API
ApiType ENUM('CREDIT_CARD','QR_PAYMENT','BANK_TRANSFER','E_WALLET') ประเภท API
ProviderName VARCHAR(100) ชื่อผู้ให้บริการ
BaseURL VARCHAR(255) URL หลัก
ApiKey VARCHAR(255) API Key (เข้ารหัส)
SecretKey VARCHAR(255) Secret Key (เข้ารหัส)
MerchantID VARCHAR(100) รหัสร้านค้า
TerminalID VARCHAR(100) รหัส Terminal
IsActive BIT ใช้งานได้
IsTestMode BIT โหมดทดสอบ
TimeoutSeconds INT Timeout (วินาที)
MaxRetries INT จำนวนครั้งสูงสุดที่ลองใหม่
ConfigJSON TEXT การตั้งค่าเพิ่มเติม
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

8.2.4 ตาราง Master Data

8.2.4.1 ข้อมูลพื้นฐานทางการเงิน

Table: PAYMENT_TYPE (ประเภทการชำระเงิน)

วัตถุประสงค์: กำหนดประเภทการชำระเงินที่รองรับในระบบ

Field Type Key Description
PaymentTypeCode VARCHAR(10) PK รหัสประเภทการชำระ
PaymentTypeName NVARCHAR(100) ชื่อประเภทการชำระ
PaymentMethod ENUM('CASH','CARD','TRANSFER','QR','DEPOSIT','RIGHTS') วิธีการชำระ
IsActive BIT ใช้งานได้
RequiresApproval BIT ต้องขออนุมัติ
MaxAmountPerDay DECIMAL(12,2) จำนวนเงินสูงสุดต่อวัน
ProcessingFee DECIMAL(8,2) ค่าธรรมเนียมการดำเนินการ
ProcessingFeePercent DECIMAL(5,2) เปอร์เซ็นต์ค่าธรรมเนียม
Description NTEXT คำอธิบาย
DisplayOrder INT ลำดับการแสดงผล
IconPath VARCHAR(255) เส้นทางไอคอน
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

Table: BANK_MASTER (ข้อมูลธนาคาร)

วัตถุประสงค์: เก็บข้อมูลธนาคารสำหรับการโอนเงินและบัตรเครดิต

Field Type Key Description
BankCode VARCHAR(10) PK รหัสธนาคาร
BankName NVARCHAR(100) ชื่อธนาคาร
BankNameEN VARCHAR(100) ชื่อธนาคาร (อังกฤษ)
BankAbbreviation VARCHAR(10) ชื่อย่อ
SwiftCode VARCHAR(11) รหัส SWIFT
LogoPath VARCHAR(255) เส้นทางโลโก้
IsActive BIT ใช้งานได้
SupportsCreditCard BIT รองรับบัตรเครดิต
SupportsTransfer BIT รองรับการโอน
DisplayOrder INT ลำดับการแสดงผล
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

8.2.4.2 ข้อมูลสิทธิและการยกเว้น

Table: EXEMPTION_TYPE (ประเภทการยกเว้น)

วัตถุประสงค์: กำหนดประเภทการยกเว้นค่ารักษาตาม TOR 1.2.14.2

Field Type Key Description
ExemptionTypeCode VARCHAR(10) PK รหัสประเภทยกเว้น
ExemptionTypeName NVARCHAR(100) ชื่อประเภทยกเว้น
ExemptionCategory ENUM('FULL','PARTIAL','CONDITIONAL','STAFF') หมวดการยกเว้น
DefaultPercent DECIMAL(5,2) เปอร์เซ็นต์เริ่มต้น
MaxExemptionPercent DECIMAL(5,2) เปอร์เซ็นต์สูงสุด
RequiresDocument BIT ต้องมีเอกสารประกอบ
RequiresApproval BIT ต้องขออนุมัติ
ApprovalLevel INT ระดับการอนุมัติ
ValidDays INT จำนวนวันที่ใช้ได้
IsActive BIT ใช้งานได้
Description NTEXT คำอธิบาย
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

Table: RIGHTS_VERIFICATION_API (API ตรวจสอบสิทธิ)

วัตถุประสงค์: การเชื่อมโยงกับระบบตรวจสอบสิทธิภายนอก (สปสช., สนย., etc.)

Field Type Key Description
ApiID VARCHAR(20) PK รหัส API
ApiName VARCHAR(100) ชื่อ API
OrganizationCode VARCHAR(10) รหัสหน่วยงาน
OrganizationName NVARCHAR(100) ชื่อหน่วยงาน
BaseURL VARCHAR(255) URL หลัก
ApiVersion VARCHAR(10) เวอร์ชัน API
AuthenticationType ENUM('API_KEY','OAUTH','CERTIFICATE') ประเภทการยืนยันตัวตน
AuthenticationConfig TEXT การตั้งค่าการยืนยัน (JSON)
IsActive BIT ใช้งานได้
IsRealtime BIT ตรวจสอบแบบ Real-time
CacheValidMinutes INT ระยะเวลา Cache (นาที)
TimeoutSeconds INT Timeout (วินาที)
MaxRetries INT จำนวนครั้งสูงสุดที่ลองใหม่
LastSuccessDate DATETIME วันที่สำเร็จครั้งสุดท้าย
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

8.3 ความสัมพันธ์ระหว่างตาราง (Table Relationships)

8.3.1 Primary Relationships

erDiagram
    PATIENT ||--o{ PAYMENT_TRANSACTION : "รับชำระเงิน"
    VISIT ||--o{ PAYMENT_TRANSACTION : "การชำระในแต่ละครั้ง"
    PAYMENT_TRANSACTION ||--o{ PAYMENT_METHOD : "วิธีการชำระ"
    PAYMENT_TRANSACTION ||--o{ PAYMENT_DETAIL : "รายละเอียดการชำระ"
    PAYMENT_TRANSACTION ||--|| RECEIPT : "ออกใบเสร็จ"
    PAYMENT_TRANSACTION ||--o{ PAYMENT_APPROVAL : "ขออนุมัติ"

    FINANCIAL_RIGHTS ||--o{ PAYMENT_CHART : "ผังการคิด"
    FINANCIAL_CATEGORY ||--o{ PAYMENT_CHART : "หมวดค่ารักษา"
    FINANCIAL_CATEGORY ||--o{ PAYMENT_DETAIL : "จัดหมวดรายการ"

    PAYMENT_TERMINAL ||--o{ PAYMENT_TRANSACTION : "จุดรับชำระ"
    PAYMENT_TERMINAL ||--o{ CASH_DRAWER : "ลิ้นชักเงิน"

    OUTSTANDING_BALANCE ||--o{ PAYMENT_TRANSACTION : "ชำระหนี้ค้าง"
    DEPOSIT_TRANSACTION ||--o{ PAYMENT_TRANSACTION : "ใช้เงินฝาก"

8.3.2 Integration Relationships

ความสัมพันธ์กับระบบอื่น:

  1. PATIENT ← ระบบเวชระเบียน (1.2.1)
  2. VISIT ← ระบบเวชระเบียน (1.2.1)
  3. FINANCIAL_RIGHTS ↔ ระบบตรวจสอบสิทธิ (1.2.15)
  4. PAYMENT_DETAIL ← ระบบห้องตรวจ (1.2.3), ระบบเภสัชกรรม (1.2.13)
  5. EXTERNAL_PAYMENT_API ↔ ระบบชำระเงินภายนอก

8.4 Indexes และ Performance Optimization

8.4.1 Primary Indexes

-- Primary Keys (อัตโนมัติ)
CREATE UNIQUE INDEX PK_PAYMENT_TRANSACTION ON PAYMENT_TRANSACTION(PaymentID);
CREATE UNIQUE INDEX PK_RECEIPT ON RECEIPT(ReceiptID);
CREATE UNIQUE INDEX PK_FINANCIAL_RIGHTS ON FINANCIAL_RIGHTS(RightID);

-- Foreign Key Indexes
CREATE INDEX IX_PAYMENT_TRANSACTION_HN ON PAYMENT_TRANSACTION(HN);
CREATE INDEX IX_PAYMENT_TRANSACTION_VISIT ON PAYMENT_TRANSACTION(VisitID);
CREATE INDEX IX_PAYMENT_DETAIL_PAYMENT ON PAYMENT_DETAIL(PaymentID);
CREATE INDEX IX_RECEIPT_PAYMENT ON RECEIPT(PaymentID);

8.4.2 Search Indexes

-- การค้นหาตามวันที่
CREATE INDEX IX_PAYMENT_DATE ON PAYMENT_TRANSACTION(PaymentDate, PaymentTime);
CREATE INDEX IX_RECEIPT_DATE ON RECEIPT(ReceiptDate, ReceiptTime);

-- การค้นหาตามสถานะ  
CREATE INDEX IX_PAYMENT_STATUS ON PAYMENT_TRANSACTION(PaymentStatus);
CREATE INDEX IX_OUTSTANDING_STATUS ON OUTSTANDING_BALANCE(Status);

-- การค้นหาตามผู้ป่วย
CREATE INDEX IX_OUTSTANDING_HN ON OUTSTANDING_BALANCE(HN, Status);
CREATE INDEX IX_DEPOSIT_HN ON DEPOSIT_TRANSACTION(HN, TransactionType);

8.4.3 Composite Indexes

-- การปิดรอบการเงิน
CREATE INDEX IX_PAYMENT_CLOSING ON PAYMENT_TRANSACTION(PaymentDate, TerminalID, PaymentStatus);

-- การค้นหาใบเสร็จ
CREATE INDEX IX_RECEIPT_NUMBER ON RECEIPT(ReceiptNumber, IsCancelled);

-- Audit และรายงาน
CREATE INDEX IX_AUDIT_LOG_DATE ON FINANCIAL_AUDIT_LOG(Timestamp, TableName);

8.5 Security และ Data Protection

8.5.1 การเข้ารหัสข้อมูล

ข้อมูลที่ต้องเข้ารหัส: - API Keys และ Secret Keys ในตาราง EXTERNAL_PAYMENT_API - หมายเลขบัตรเครดิตในตาราง PAYMENT_METHOD - ข้อมูลการยืนยันตัวตนในตาราง RIGHTS_VERIFICATION_API

8.5.2 Data Masking

-- ฟังก์ชันการซ่อนหมายเลขบัตร
FUNCTION MASK_CARD_NUMBER(@CardNumber VARCHAR(20))
RETURNS VARCHAR(20)
AS
BEGIN
    RETURN LEFT(@CardNumber, 4) + 'XXXX-XXXX-' + RIGHT(@CardNumber, 4)
END

8.5.3 Audit Trail

ทุกตารางหลักมี Audit Trail: - CreatedAt, CreatedBy - UpdatedAt, ModifiedBy
- การบันทึกใน FINANCIAL_AUDIT_LOG


8.6 Data Validation Rules

8.6.1 Business Rules

การตรวจสอบยอดเงิน:

-- ยอดชำระต้องไม่เกินยอดรวม
CHECK (PaidAmount <= TotalAmount)

-- เงินทอนต้องไม่ติดลบ
CHECK (ChangeAmount >= 0)

-- ส่วนลดไม่เกิน 100%
CHECK (DiscountPercent BETWEEN 0 AND 100)

การตรวจสอบวันที่:

-- วันที่ชำระไม่เกินวันปัจจุบัน
CHECK (PaymentDate <= GETDATE())

-- วันครบกำหนดต้องหลังวันที่ออกบิล
CHECK (DueDate >= InvoiceDate)

8.6.2 Data Constraints

-- รหัสใบเสร็จไม่ซ้ำ
ALTER TABLE RECEIPT ADD CONSTRAINT UQ_RECEIPT_NUMBER UNIQUE (ReceiptNumber);

-- สถานะการชำระ
ALTER TABLE PAYMENT_TRANSACTION ADD CONSTRAINT CK_PAYMENT_STATUS 
CHECK (PaymentStatus IN ('PAID','PENDING','CANCELLED','PARTIAL'));

-- ประเภทการยกเว้น
ALTER TABLE EXEMPTION_TYPE ADD CONSTRAINT CK_EXEMPTION_PERCENT
CHECK (MaxExemptionPercent BETWEEN 0 AND 100);

8.7 การนำไปใช้งาน (Implementation Notes)

8.7.1 การติดตั้งฐานข้อมูล

  1. สร้างฐานข้อมูล
  2. สร้างตารางตามลำดับ: Master Data → Core Tables → Support Tables → System Tables
  3. สร้าง Indexes และ Constraints
  4. กำหนดสิทธิ์การเข้าถึง
  5. ป้อนข้อมูลเริ่มต้น (Seed Data)

8.7.2 Data Migration

สำหรับการย้ายข้อมูลจากระบบเก่า: 1. ข้อมูลสิทธิและผังการคิดFINANCIAL_RIGHTS, PAYMENT_CHART 2. ข้อมูลการชำระย้อนหลังPAYMENT_TRANSACTION (1-2 ปี) 3. ยอดค้างชำระOUTSTANDING_BALANCE 4. การตั้งค่าระบบPAYMENT_CONFIG

8.7.3 การบำรุงรักษา

การทำความสะอาดข้อมูล: - Archive ข้อมูล Audit Log เก่ากว่า 7 ปี - ลบ Session และ Temporary Data - สำรองข้อมูลการเงินรายเดือน

การตรวจสอบความสมบูรณ์: - ตรวจสอบยอดรวมการปิดรอบ - Validate การเชื่อมโยง Foreign Keys - ตรวจสอบ Audit Trail


หมายเหตุ: เอกสารนี้จัดทำขึ้นเพื่อใช้เป็นแนวทางในการพัฒนาฐานข้อมูลระบบการเงิน ควรทบทวนและปรับปรุงตามความต้องการจริงของโรงพยาบาลก่อนการนำไปใช้งาน | Status | ENUM('OPEN','CLOSED','BALANCED','UNBALANCED') | | สถานะลิ้นชัก | | Remarks | TEXT | | หมายเหตุ |

8.2.2.3 การจัดการเครื่องมือและอุปกรณ์

Table: PAYMENT_TERMINAL (จุดรับชำระเงิน)

วัตถุประสงค์: จัดการข้อมูลจุดรับชำระเงินและอุปกรณ์ที่เกี่ยวข้อง

Field Type Key Description
TerminalID VARCHAR(10) PK รหัสจุดรับชำระเงิน
TerminalName NVARCHAR(100) ชื่อจุดรับชำระ
Location NVARCHAR(100) ตำแหน่งที่ตั้ง
DepartmentCode VARCHAR(10) FK รหัสแผนกที่สังกัด
TerminalType ENUM('CASHIER','KIOSK','MOBILE','BEDSIDE') ประเภทจุด
IPAddress VARCHAR(15) หมายเลข IP
MACAddress VARCHAR(17) หมายเลข MAC
PrinterModel VARCHAR(50) รุ่นเครื่องพิมพ์
PrinterIP VARCHAR(15) IP เครื่องพิมพ์
CashDrawerModel VARCHAR(50) รุ่นลิ้นชักเก็บเงิน
EDCTerminalID VARCHAR(20) รหัสเครื่อง EDC
IsActive BIT ใช้งานได้
LastOnline TIMESTAMP ออนไลน์ครั้งสุดท้าย
ConfigJSON TEXT การตั้งค่าเพิ่มเติม (JSON)
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง

Table: PAYMENT_CONFIG (การตั้งค่าระบบการเงิน)

วัตถุประสงค์: เก็บการตั้งค่าต่างๆ ของระบบการเงิน

Field Type Key Description
ConfigID VARCHAR(20) PK รหัสการตั้งค่า
ConfigCategory VARCHAR(50) หมวดการตั้งค่า
ConfigKey VARCHAR(100) คีย์การตั้งค่า
ConfigValue TEXT ค่าการตั้งค่า
DataType ENUM('STRING','INTEGER','DECIMAL','BOOLEAN','JSON') ประเภทข้อมูล
Description NTEXT คำอธิบาย
IsSystem BIT เป็นการตั้งค่าระบบ
IsEditable BIT แก้ไขได้
ValidValues TEXT ค่าที่อนุญาต (สำหรับ dropdown)
DefaultValue TEXT ค่าเริ่มต้น
DisplayOrder INT ลำดับการแสดงผล
CreatedDate DATETIME วันที่สร้าง
CreatedBy VARCHAR(50) ผู้สร้าง
LastModified DATETIME วันที่แก้ไขล่าสุด
ModifiedBy VARCHAR(50) ผู้แก้ไขล่าสุด