Example api on go in clinic management usecaase and ER Diagram
Description: แสดงรายละเอียดของพนักงานในระบบ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำตัวพนักงานที่ไม่ซ้ำกัน. |
name |
VARCHAR(100) |
ชื่อพนักงาน. | |
surname |
VARCHAR(100) |
นามสกุลพนักงาน. | |
email |
VARCHAR(255) |
อีเมลของพนักงาน. | |
username |
VARCHAR(100) |
ชื่อผู้ใช้สำหรับเข้าระบบ. | |
password |
VARCHAR(255) |
รหัสผ่านของพนักงาน. | |
sex |
VARCHAR(10) |
เพศของพนักงาน. | |
phone |
VARCHAR(20) |
เบอร์โทรศัพท์ของพนักงาน. | |
permission |
PermissionEnum |
สิทธิการเข้าถึงของพนักงาน (เจ้าของ, พนักงาน). | |
address |
VARCHAR(255) |
ที่อยู่เลขที่/หมู่. | |
subdistrict |
VARCHAR(100) |
ตำบลของพนักงาน. | |
district |
VARCHAR(100) |
อำเภอของพนักงาน. | |
province |
VARCHAR(100) |
จังหวัดของพนักงาน. | |
zipcode |
VARCHAR(10) |
รหัสไปรษณีย์ของพนักงาน. | |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
id
: รหัสประจำตัวพนักงานที่ไม่ซ้ำกัน.permission
ใช้เพื่อกำหนดสิทธิการเข้าถึงของพนักงาน.
Table Employee [NOTE: "ข้อมูลพนักงาน แสดงรายละเอียดของพนักงานในระบบ"] {
id UUID [pk, unique, NOTE: "รหัสประจำตัวพนักงานที่ไม่ซ้ำกัน."]
name VARCHAR(100) [NOTE: "ชื่อพนักงาน."]
surname VARCHAR(100) [NOTE: "นามสกุลพนักงาน."]
email VARCHAR(255) [NOTE: "อีเมลของพนักงาน."]
username VARCHAR(100) [NOTE: "ชื่อผู้ใช้สำหรับเข้าระบบ."]
password VARCHAR(255) [NOTE: "รหัสผ่านของพนักงาน."]
sex VARCHAR(10) [NOTE: "เพศของพนักงาน."]
phone VARCHAR(20) [NOTE: "เบอร์โทรศัพท์ของพนักงาน."]
permission PermissionEnum [NOTE: "สิทธิการเข้าถึงของพนักงาน (เจ้าของ, พนักงาน)."]
address VARCHAR(255) [NOTE: "ที่อยู่เลขที่/หมู่."]
subdistrict VARCHAR(100) [NOTE: "ตำบลของพนักงาน."]
district VARCHAR(100) [NOTE: "อำเภอของพนักงาน."]
province VARCHAR(100) [NOTE: "จังหวัดของพนักงาน."]
zipcode VARCHAR(10) [NOTE: "รหัสไปรษณีย์ของพนักงาน."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: ตารางสำหรับข้อมูลแพทย์ แสดงรายละเอียดของแพทย์ในระบบ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY , UNIQUE |
รหัสประจำตัวแพทย์ที่ไม่ซ้ำกัน. |
employee_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลพนักงาน (แพทย์). |
specialization |
VARCHAR(100) |
ความเชี่ยวชาญของแพทย์. | |
license_number |
VARCHAR(100) |
หมายเลขใบอนุญาตแพทย์. | |
registration_date |
TIMESTAMP |
วันที่ลงทะเบียนเป็นแพทย์. | |
experience_years |
INT |
จำนวนปีที่มีประสบการณ์. | |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
id
: รหัสประจำตัวแพทย์ที่ไม่ซ้ำกัน.employee_id
: อ้างอิงถึงข้อมูลพนักงาน (แพทย์).specialization
: ความเชี่ยวชาญของแพทย์.license_number
: หมายเลขใบอนุญาตแพทย์.registration_date
: วันที่ลงทะเบียนเป็นแพทย์.experience_years
: จำนวนปีที่มีประสบการณ์.created_at
: Timestamp when the record was created.updated_at
: Timestamp when the record was last updated.
Table Doctor [NOTE: "ข้อมูลแพทย์ แสดงรายละเอียดของแพทย์ในระบบ"] {
id UUID [pk, unique, NOTE: "รหัสประจำตัวแพทย์ที่ไม่ซ้ำกัน."]
employee_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลพนักงาน (แพทย์)."]
specialization VARCHAR(100) [NOTE: "ความเชี่ยวชาญของแพทย์."]
license_number VARCHAR(100) [NOTE: "หมายเลขใบอนุญาตแพทย์."]
registration_date TIMESTAMP [NOTE: "วันที่ลงทะเบียนเป็นแพทย์."]
experience_years INT [NOTE: "จำนวนปีที่มีประสบการณ์."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: แสดงรายละเอียดของคนไข้ในระบบ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำคนไข้ที่ไม่ซ้ำกัน. |
name |
VARCHAR(100) |
ชื่อคนไข้. | |
surname |
VARCHAR(100) |
นามสกุลคนไข้. | |
id_card |
VARCHAR(20) |
รหัสประจำตัวประชาชนของคนไข้. | |
sex |
VARCHAR(10) |
เพศของคนไข้. | |
birth_date |
DATE |
วันเกิดของคนไข้. | |
blood_type |
VARCHAR(10) |
กรุ๊ปเลือดของคนไข้. | |
disease |
TEXT |
โรคประจำตัวของคนไข้. | |
allergic |
TEXT |
ประวัติการแพ้ของคนไข้. | |
phone |
VARCHAR(20) |
เบอร์โทรศัพท์ของคนไข้. | |
address |
VARCHAR(255) |
ที่อยู่เลขที่/หมู่. | |
subdistrict |
VARCHAR(100) |
ตำบลของคนไข้. | |
district |
VARCHAR(100) |
อำเภอของคนไข้. | |
province |
VARCHAR(100) |
จังหวัดของคนไข้. | |
zipcode |
VARCHAR(10) |
รหัสไปรษณีย์ของคนไข้. | |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
id
: รหัสประจำคนไข้ที่ไม่ซ้ำกัน.
Table Patient [NOTE: "ข้อมูลคนไข้ แสดงรายละเอียดของคนไข้ในระบบ"] {
id UUID [pk, unique, NOTE: "รหัสประจำคนไข้ที่ไม่ซ้ำกัน."]
name VARCHAR(100) [NOTE: "ชื่อคนไข้."]
surname VARCHAR(100) [NOTE: "นามสกุลคนไข้."]
id_card VARCHAR(20) [NOTE: "รหัสประจำตัวประชาชนของคนไข้."]
sex VARCHAR(10) [NOTE: "เพศของคนไข้."]
birth_date DATE [NOTE: "วันเกิดของคนไข้."]
blood_type VARCHAR(10) [NOTE: "กรุ๊ปเลือดของคนไข้."]
disease TEXT [NOTE: "โรคประจำตัวของคนไข้."]
allergic TEXT [NOTE: "ประวัติการแพ้ของคนไข้."]
phone VARCHAR(20) [NOTE: "เบอร์โทรศัพท์ของคนไข้."]
address VARCHAR(255) [NOTE: "ที่อยู่เลขที่/หมู่."]
subdistrict VARCHAR(100) [NOTE: "ตำบลของคนไข้."]
district VARCHAR(100) [NOTE: "อำเภอของคนไข้."]
province VARCHAR(100) [NOTE: "จังหวัดของคนไข้."]
zipcode VARCHAR(10) [NOTE: "รหัสไปรษณีย์ของคนไข้."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: แสดงรายละเอียดการนัดหมายระหว่างพนักงานกับคนไข้
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำตารางการนัดหมายที่ไม่ซ้ำกัน. |
subject |
VARCHAR(255) |
หัวข้อของการนัดหมาย. | |
detail |
TEXT |
รายละเอียดของการนัดหมาย. | |
date |
TIMESTAMP |
วันที่นัดหมาย. | |
status |
VARCHAR(100) |
สถานะการนัดหมาย (เช่น 'Pending', 'Completed'). | |
patient_id |
UUID |
REFERENCES Patient(id) |
อ้างอิงถึงข้อมูลคนไข้ที่นัดหมาย. |
employee_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลพนักงานที่จัดนัดหมาย. |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
id
: รหัสประจำตารางการนัดหมายที่ไม่ซ้ำกัน.
Table Appointment [NOTE: "ข้อมูลการนัดหมาย แสดงรายละเอียดการนัดหมายระหว่างพนักงานกับคนไข้"] {
id UUID [pk, unique, NOTE: "รหัสประจำตารางการนัดหมายที่ไม่ซ้ำกัน."]
subject VARCHAR(255) [NOTE: "หัวข้อของการนัดหมาย."]
detail TEXT [NOTE: "รายละเอียดของการนัดหมาย."]
date TIMESTAMP [NOTE: "วันที่นัดหมาย."]
status VARCHAR(100) [NOTE: "สถานะการนัดหมาย (เช่น 'Pending', 'Completed')."]
patient_id UUID [ref: > Patient.id, NOTE: "อ้างอิงถึงข้อมูลคนไข้ที่นัดหมาย."]
employee_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลพนักงานที่จัดนัดหมาย."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: แสดงรายละเอียดวัสดุในระบบ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำวัสดุที่ไม่ซ้ำกัน. |
name |
VARCHAR(255) |
ชื่อวัสดุ. | |
detail |
TEXT |
รายละเอียดวัสดุ. | |
unit |
VARCHAR(50) |
หน่วยนับของวัสดุ. | |
purchase_price |
DECIMAL(10, 2) |
ราคาซื้อวัสดุ. | |
qty |
INT |
จำนวนวัสดุในสต็อก. | |
agent_id |
UUID |
REFERENCES Agent(id) |
อ้างอิงถึงข้อมูลตัวแทนจำหน่าย. |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
id
: รหัสประจำวัสดุที่ไม่ซ้ำกัน.
Table Material [NOTE: "ข้อมูลวัสดุ แสดงรายละเอียดของวัสดุในระบบ"] {
id UUID [pk, unique, NOTE: "รหัสประจำวัสดุที่ไม่ซ้ำกัน."]
name VARCHAR(255) [NOTE: "ชื่อวัสดุ."]
detail TEXT [NOTE: "รายละเอียดวัสดุ."]
unit VARCHAR(50) [NOTE: "หน่วยนับของวัสดุ."]
purchase_price DECIMAL(10, 2) [NOTE: "ราคาซื้อวัสดุ."]
qty INT [NOTE: "จำนวนวัสดุในสต็อก."]
agent_id UUID [ref: > Agent.id, NOTE: "อ้างอิงถึงข้อมูลตัวแทนจำหน่าย."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: แสดงรายละเอียดการสั่งซื้อวัสดุ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสการสั่งซื้อวัสดุที่ไม่ซ้ำกัน. |
total_price |
DECIMAL(10, 2) |
ราคารวมของการสั่งซื้อ. | |
purchase_date |
DATE |
วันที่ทำการสั่งซื้อ. | |
receive_date |
DATE |
วันที่ได้รับวัสดุ. | |
status |
VARCHAR(100) |
สถานะการสั่งซื้อ. | |
employee_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลพนักงานที่ทำการสั่งซื้อ. |
agent_id |
UUID |
REFERENCES Agent(id) |
อ้างอิงถึงข้อมูลตัวแทนจำหน่าย. |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
id
: รหัสการสั่งซื้อวัสดุที่ไม่ซ้ำกัน.
Table MaterialOrder [NOTE: "ข้อมูลการสั่งซื้อวัสดุ แสดงรายละเอียดการสั่งซื้อวัสดุ"] {
id UUID [pk, unique, NOTE: "รหัสการสั่งซื้อวัสดุที่ไม่ซ้ำกัน."]
total_price DECIMAL(10, 2) [NOTE: "ราคารวมของการสั่งซื้อ."]
purchase_date DATE [NOTE: "วันที่ทำการสั่งซื้อ."]
receive_date DATE [NOTE: "วันที่ได้รับวัสดุ."]
status VARCHAR(100) [NOTE: "สถานะการสั่งซื้อ."]
employee_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลพนักงานที่ทำการสั่งซื้อ."]
agent_id UUID [ref: > Agent.id, NOTE: "อ้างอิงถึงข้อมูลตัวแทนจำหน่าย."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: แสดงรายละเอียดวัสดุที่สั่งซื้อในแต่ละรายการ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
material_order_id |
UUID |
REFERENCES MaterialOrder(id) |
อ้างอิงถึงข้อมูลการสั่งซื้อวัสดุ. |
material_id |
UUID |
REFERENCES Material(id) |
อ้างอิงถึงข้อมูลวัสดุ. |
qty |
INT |
จำนวนวัสดุที่สั่งซื้อ. | |
price |
DECIMAL(10, 2) |
ราคาแต่ละหน่วยของวัสดุ. | |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
material_order_id
: อ้างอิงถึงข้อมูลการสั่งซื้อวัสดุ.material_id
: อ้างอิงถึงข้อมูลวัสดุ.
Table MaterialOrderDetail [NOTE: "ข้อมูลรายละเอียดการสั่งซื้อวัสดุ แสดงรายละเอียดวัสดุที่สั่งซื้อในแต่ละรายการ"] {
material_order_id UUID [ref: > MaterialOrder.id, NOTE: "อ้างอิงถึงข้อมูลการสั่งซื้อวัสดุ."]
material_id UUID [ref: > Material.id, NOTE: "อ้างอิงถึงข้อมูลวัสดุ."]
qty INT [NOTE: "จำนวนวัสดุที่สั่งซื้อ."]
price DECIMAL(10, 2) [NOTE: "ราคาแต่ละหน่วยของวัสดุ."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: แสดงรายละเอียดการเบิกจ่ายวัสดุโดยพนักงาน
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสตารางการเบิกจ่ายวัสดุที่ไม่ซ้ำกัน. |
date |
TIMESTAMP |
วันที่เบิกจ่ายวัสดุ. | |
employee_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลพนักงานที่ทำการเบิกจ่าย. |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
id
: รหัสตารางการเบิกจ่ายวัสดุที่ไม่ซ้ำกัน.
Table MaterialDisburse [NOTE: "ตารางการเบิกจ่ายวัสดุ แสดงรายละเอียดการเบิกจ่ายวัสดุโดยพนักงาน"] {
id UUID [pk, unique, NOTE: "รหัสตารางการเบิกจ่ายวัสดุที่ไม่ซ้ำกัน."]
date TIMESTAMP [NOTE: "วันที่เบิกจ่ายวัสดุ."]
employee_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลพนักงานที่ทำการเบิกจ่าย."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: รายละเอียดการเบิกจ่ายวัสดุ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
qty |
INT |
จำนวนวัสดุที่เบิกจ่าย. | |
material_id |
UUID |
REFERENCES Material(id) |
อ้างอิงถึงข้อมูลวัสดุที่เบิกจ่าย. |
employee_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลพนักงานที่ทำการเบิกจ่าย. |
Notes:
qty
: จำนวนวัสดุที่เบิกจ่าย.
Table MaterialDisburseDetail [NOTE: "รายละเอียดการเบิกจ่ายวัสดุ"] {
qty INT [NOTE: "จำนวนวัสดุที่เบิกจ่าย."]
material_id UUID [ref: > Material.id, NOTE: "อ้างอิงถึงข้อมูลวัสดุที่เบิกจ่าย."]
employee_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลพนักงานที่ทำการเบิกจ่าย."]
}
Description: ข้อมูลตัวแทนจำหน่าย แสดงรายละเอียดของตัวแทนจำหน่ายในระบบ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำตัวตัวแทนจำหน่ายที่ไม่ซ้ำกัน. |
name |
VARCHAR(255) |
ชื่อตัวแทนจำหน่าย. | |
address |
VARCHAR(255) |
ที่อยู่ของตัวแทนจำหน่าย. | |
phone |
VARCHAR(20) |
เบอร์โทรศัพท์ของตัวแทนจำหน่าย. | |
email |
VARCHAR(255) |
อีเมลของตัวแทนจำหน่าย. | |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
id
: รหัสประจำตัวตัวแทนจำหน่ายที่ไม่ซ้ำกัน.
Table Agent [NOTE: "ข้อมูลตัวแทนจำหน่าย แสดงรายละเอียดของตัวแทนจำหน่ายในระบบ"] {
id UUID [pk, unique, NOTE: "รหัสประจำตัวตัวแทนจำหน่ายที่ไม่ซ้ำกัน."]
name VARCHAR(255) [NOTE: "ชื่อตัวแทนจำหน่าย."]
address VARCHAR(255) [NOTE: "ที่อยู่ของตัวแทนจำหน่าย."]
phone VARCHAR(20) [NOTE: "เบอร์โทรศัพท์ของตัวแทนจำหน่าย."]
email VARCHAR(255) [NOTE: "อีเมลของตัวแทนจำหน่าย."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: ข้อมูลยา แสดงรายละเอียดของยาที่มีในระบบ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำยาที่ไม่ซ้ำกัน. |
name |
VARCHAR(255) |
ชื่อยา. | |
detail |
TEXT |
รายละเอียดยา. | |
dosage |
VARCHAR(100) |
ขนาดยา. | |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was created. |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the record was last updated. |
Notes:
id
: รหัสประจำยาที่ไม่ซ้ำกัน.
Table Medicine [NOTE: "ข้อมูลยา แสดงรายละเอียดของยาที่มีในระบบ"] {
id UUID [pk, unique, NOTE: "รหัสประจำยาที่ไม่ซ้ำกัน."]
name VARCHAR(255) [NOTE: "ชื่อยา."]
detail TEXT [NOTE: "รายละเอียดยา."]
dosage VARCHAR(100) [NOTE: "ขนาดยา."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was created."]
updated_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the record was last updated."]
}
Description: ข้อมูลประเภทยา
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำข้อมูลประเภทยา. |
name |
VARCHAR |
ชื่อประเภทยา. | |
detail |
TEXT |
รายละเอียดประเภทยา. | |
agent_id |
UUID |
REFERENCES Agent(id) |
อ้างอิงถึงข้อมูลเอเย่นต์. |
Notes:
id
: รหัสประจำข้อมูลประเภทยา.
Table MedicineType [NOTE: "ข้อมูลประเภทยา"] {
id UUID [pk, unique, NOTE: "รหัสประจำข้อมูลประเภทยา."]
name VARCHAR [NOTE: "ชื่อประเภทยา."]
detail TEXT [NOTE: "รายละเอียดประเภทยา."]
agent_id UUID [ref: > Agent.id, NOTE: "อ้างอิงถึงข้อมูลเอเย่นต์."]
}
Description: ข้อมูลการสั่งซื้อยา
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำข้อมูลการสั่งซื้อยา. |
date |
TIMESTAMP |
วันที่สั่งซื้อ. | |
total_price |
DECIMAL |
ราคารวม. | |
receive_date |
TIMESTAMP |
วันที่รับ. | |
status |
VARCHAR |
สถานะการสั่งซื้อ. | |
employee_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลพนักงานที่ทำการสั่งซื้อ. |
agent_id |
UUID |
REFERENCES Agent(id) |
อ้างอิงถึงข้อมูลตัวแทนจำหน่าย. |
Notes:
id
: รหัสประจำข้อมูลการสั่งซื้อยา.
Table MedicineOrder [NOTE: "ข้อมูลการสั่งซื้อยา"] {
id UUID [pk, unique, NOTE: "รหัสประจำข้อมูลการสั่งซื้อยา."]
date TIMESTAMP [NOTE: "วันที่สั่งซื้อ."]
total_price DECIMAL [NOTE: "ราคารวม."]
receive_date TIMESTAMP [NOTE: "วันที่รับ."]
status VARCHAR [NOTE: "สถานะการสั่งซื้อ."]
employee_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลพนักงานที่ทำการสั่งซื้อ."]
agent_id UUID [ref: > Agent.id, NOTE: "อ้างอิงถึงข้อมูลตัวแทนจำหน่าย."]
}
Description: ข้อมูลรายละเอียดการสั่งซื้อยา
Column Name | Data Type | Constraints | Description |
---|---|---|---|
medicine_order_id |
UUID |
REFERENCES MedicineOrder(id) |
อ้างอิงถึงข้อมูลการสั่งซื้อยา. |
medicine_id |
UUID |
REFERENCES Medicine(id) |
อ้างอิงถึงข้อมูลยา. |
price |
DECIMAL |
ราคายา. | |
qty |
INT |
จำนวนที่สั่งซื้อ. | |
remain |
INT |
จำนวนค้างรับ. |
Notes:
medicine_order_id
: อ้างอิงถึงข้อมูลการสั่งซื้อยา.
Table MedicineOrderDetail [NOTE: "ข้อมูลรายละเอียดการสั่งซื้อยา"] {
medicine_order_id UUID [ref: > MedicineOrder.id, NOTE: "อ้างอิงถึงข้อมูลการสั่งซื้อยา."]
medicine_id UUID [ref: > Medicine.id, NOTE: "อ้างอิงถึงข้อมูลยา."]
price DECIMAL [NOTE: "ราคายา."]
qty INT [NOTE: "จำนวนที่สั่งซื้อ."]
remain INT [NOTE: "จำนวนค้างรับ."]
}
Description: ข้อมูลสต๊อกหรือยาคงเหลือ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำข้อมูลสต๊อก. |
medicine_id |
UUID |
REFERENCES Medicine(id) |
อ้างอิงถึงข้อมูลยา. |
qty |
INT |
จำนวนยาคงเหลือ. | |
expired_date |
DATE |
วันหมดอายุของยา. |
Notes:
id
: รหัสประจำข้อมูลสต๊อก.
Table MedicineStock [NOTE: "ข้อมูลสต๊อกหรือยาคงเหลือ"] {
id UUID [pk, unique, NOTE: "รหัสประจำข้อมูลสต๊อก."]
medicine_id UUID [ref: > Medicine.id, NOTE: "อ้างอิงถึงข้อมูลยา."]
qty INT [NOTE: "จำนวนยาคงเหลือ."]
expired_date DATE [NOTE: "วันหมดอายุของยา."]
}
Description: ตารางสำหรับข้อมูลการสั่งจ่ายยา
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY , UNIQUE |
รหัสการสั่งจ่ายยาที่ไม่ซ้ำกัน. |
patient_id |
UUID |
REFERENCES Patient(id) |
อ้างอิงถึงข้อมูลคนไข้. |
doctor_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลแพทย์. |
course_id |
UUID |
REFERENCES Course(id) |
อ้างอิงถึงข้อมูลการรักษา. |
date |
TIMESTAMP |
วันที่สั่งจ่ายยา. | |
instructions |
TEXT |
คำแนะนำการใช้ยา. |
Notes:
id
: รหัสการสั่งจ่ายยาที่ไม่ซ้ำกัน.patient_id
: อ้างอิงถึงข้อมูลคนไข้.doctor_id
: อ้างอิงถึงข้อมูลแพทย์.course_id
: อ้างอิงถึงข้อมูลการรักษา.date
: วันที่สั่งจ่ายยา.instructions
: คำแนะนำการใช้ยา.
Table Prescription [NOTE: "ข้อมูลการสั่งจ่ายยา"] {
id UUID [pk, unique, NOTE: "รหัสการสั่งจ่ายยาที่ไม่ซ้ำกัน."]
patient_id UUID [ref: > Patient.id, NOTE: "อ้างอิงถึงข้อมูลคนไข้."]
doctor_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลแพทย์."]
course_id UUID [ref: > Course.id, NOTE: "อ้างอิงถึงข้อมูลการรักษา."]
date TIMESTAMP [NOTE: "วันที่สั่งจ่ายยา."]
instructions TEXT [NOTE: "คำแนะนำการใช้ยา."]
}
Description: ข้อมูลการจ่ายยา
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY, UNIQUE |
รหัสประจำข้อมูลการจ่ายยา. |
prescription_id |
UUID |
REFERENCES Prescription(id) |
อ้างอิงถึงข้อมูลการรักษา. |
date |
TIMESTAMP |
วันที่จ่ายยา. |
Notes:
id
: รหัสประจำข้อมูลการจ่ายยา.
Table MedicineDisburse [NOTE: "ข้อมูลการจ่ายยา"] {
id UUID [pk, unique, NOTE: "รหัสประจำข้อมูลการจ่ายยา."]
prescription_id UUID [ref: > Prescription.id, NOTE: "อ้างอิงถึงข้อมูลการสั่งจ่ายยา."]
date TIMESTAMP [NOTE: "วันที่จ่ายยา."]
}
Description: ข้อมูลรายละเอียดการจ่ายยา
Column Name | Data Type | Constraints | Description |
---|---|---|---|
medicine_disburse_id |
UUID |
REFERENCES MedicineDisburse(id) |
อ้างอิงถึงข้อมูลการจ่ายยา. |
medicine_stock_id |
UUID |
REFERENCES MedicineStock(id) |
อ้างอิงถึงข้อมูลสต๊อกยา. |
price |
DECIMAL |
ราคายาที่ขาย. | |
unit |
VARCHAR |
หน่วยนับ. | |
qty |
INT |
จำนวนที่จ่าย. | |
dosage |
VARCHAR |
ขนาดที่รับประทาน. | |
admin_method |
VARCHAR |
วิธีการรับประทาน. | |
apply_method |
VARCHAR |
วิธีการทายา. | |
time_of_admin |
TIMESTAMP |
เวลาใช้ยา. |
Notes:
medicine_disburse_id
: อ้างอิงถึงข้อมูลการจ่ายยา.medicine_stock_id
: อ้างอิงถึงข้อมูลสต๊อกยา.
Table MedicineDisburseDetail [NOTE: "ข้อมูลรายละเอียดการจ่ายยา"] {
medicine_disburse_id UUID [ref: > MedicineDisburse.id, NOTE: "อ้างอิงถึงข้อมูลการจ่ายยา."]
medicine_stock_id UUID [ref: > MedicineStock.id, NOTE: "อ้างอิงถึงข้อมูลสต๊อกยา."]
price DECIMAL [NOTE: "ราคายาที่ขาย."]
unit VARCHAR [NOTE: "หน่วยนับ."]
qty INT [NOTE: "จำนวนที่จ่าย."]
dosage VARCHAR [NOTE: "ขนาดที่รับประทาน."]
admin_method VARCHAR [NOTE: "วิธีการรับประทาน."]
apply_method VARCHAR [NOTE: "วิธีการทายา."]
time_of_admin TIMESTAMP [NOTE: "เวลาใช้ยา."]
}
Description: ข้อมูลคอร์สหรือการรักษา
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY , UNIQUE |
รหัสประจำข้อมูลการรักษา. |
date |
TIMESTAMP |
วันที่รับการรักษา. | |
weight |
DECIMAL |
น้ำหนักของคนไข้. | |
height |
DECIMAL |
ส่วนสูงของคนไข้. | |
systolic |
INT |
ความดันช่วงบน. | |
diastolic |
INT |
ความดันช่วงล่าง. | |
heart_rate |
INT |
อัตราการเต้นของหัวใจ. | |
diagnose |
TEXT |
การวินิจฉัย. | |
total_price |
DECIMAL |
ราคารักษา. | |
status |
VARCHAR |
สถานะการรักษา. | |
patient_id |
UUID |
REFERENCES Patient(id) |
อ้างอิงถึงข้อมูลคนไข้. |
employee_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลพนักงาน. |
Notes:
id
: รหัสประจำข้อมูลการรักษา.patient_id
: อ้างอิงถึงข้อมูลคนไข้.employee_id
: อ้างอิงถึงข้อมูลพนักงาน.
Table Course [NOTE: "ข้อมูลคอร์สหรือการรักษา"] {
id UUID [pk, unique, NOTE: "รหัสประจำข้อมูลการรักษา."]
date TIMESTAMP [NOTE: "วันที่รับการรักษา."]
weight DECIMAL [NOTE: "น้ำหนักของคนไข้."]
height DECIMAL [NOTE: "ส่วนสูงของคนไข้."]
systolic INT [NOTE: "ความดันช่วงบน."]
diastolic INT [NOTE: "ความดันช่วงล่าง."]
heart_rate INT [NOTE: "อัตราการเต้นของหัวใจ."]
diagnose TEXT [NOTE: "การวินิจฉัย."]
total_price DECIMAL [NOTE: "ราคารักษา."]
status VARCHAR [NOTE: "สถานะการรักษา."]
patient_id UUID [ref: > Patient.id, NOTE: "อ้างอิงถึงข้อมูลคนไข้."]
employee_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลพนักงาน."]
}
Description: ใบเสร็จ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY , UNIQUE |
รหัสใบเสร็จ. |
date |
TIMESTAMP |
วันที่ใบเสร็จ. | |
total_price |
DECIMAL |
ราคารวมทั้งหมด ทั้งค่ารักษาและยา. | |
course_id |
UUID |
REFERENCES Course(id) |
อ้างอิงถึงข้อมูลการรักษา. |
medicine_disburse_id |
UUID |
REFERENCES MedicineDisburse(id) |
อ้างอิงถึงข้อมูลการจ่ายยา. |
patient_id |
UUID |
REFERENCES Patient(id) |
อ้างอิงถึงข้อมูลคนไข้. |
employee_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลพนักงาน. |
Notes:
id
: รหัสใบเสร็จ.course_id
: อ้างอิงถึงข้อมูลการรักษา.medicine_disburse_id
: อ้างอิงถึงข้อมูลการจ่ายยา.patient_id
: อ้างอิงถึงข้อมูลคนไข้.employee_id
: อ้างอิงถึงข้อมูลพนักงาน.
Table Receipt [NOTE: "ใบเสร็จ"] {
id UUID [pk, unique, NOTE: "รหัสใบเสร็จ."]
date TIMESTAMP [NOTE: "วันที่ใบเสร็จ."]
total_price DECIMAL [NOTE: "ราคารวมทั้งหมด ทั้งค่ารักษาและยา."]
course_id UUID [ref: > Course.id, NOTE: "อ้างอิงถึงข้อมูลการรักษา."]
medicine_disburse_id UUID [ref: > MedicineDisburse.id, NOTE: "อ้างอิงถึงข้อมูลการจ่ายยา."]
patient_id UUID [ref: > Patient.id, NOTE: "อ้างอิงถึงข้อมูลคนไข้."]
employee_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลพนักงาน."]
}
Description: ตารางการบันทึกอีเมลที่ส่งให้คนไข้
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY , UNIQUE |
รหัสประจำการบันทึกอีเมลที่ไม่ซ้ำกัน. |
patient_id |
UUID |
REFERENCES Patient(id) |
อ้างอิงถึงข้อมูลคนไข้. |
email |
VARCHAR(255) |
อีเมลที่ส่งไปยังคนไข้. | |
subject |
VARCHAR(255) |
หัวข้อของอีเมล. | |
body |
TEXT |
เนื้อหาของอีเมล. | |
sent_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
วันที่และเวลาที่ส่งอีเมล. |
status |
VARCHAR(50) |
สถานะการส่งอีเมล (เช่น "Sent", "Failed"). |
Notes:
id
: รหัสประจำการบันทึกอีเมลที่ไม่ซ้ำกัน.patient_id
: อ้างอิงถึงข้อมูลคนไข้.sent_at
: วันที่และเวลาที่ส่งอีเมล.
Table EmailLog [NOTE: "ตารางการบันทึกอีเมลที่ส่งให้คนไข้"] {
id UUID [pk, unique, NOTE: "รหัสประจำการบันทึกอีเมลที่ไม่ซ้ำกัน."]
patient_id UUID [ref: > Patient.id, NOTE: "อ้างอิงถึงข้อมูลคนไข้."]
email VARCHAR(255) [NOTE: "อีเมลที่ส่งไปยังคนไข้."]
subject VARCHAR(255) [NOTE: "หัวข้อของอีเมล."]
body TEXT [NOTE: "เนื้อหาของอีเมล."]
sent_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "วันที่และเวลาที่ส่งอีเมล."]
status VARCHAR(50) [NOTE: "สถานะการส่งอีเมล (เช่น 'Sent', 'Failed')."]
}
Description: ตารางการบันทึกการเคลื่อนไหวของฐานข้อมูลเพื่อการตรวจสอบและติดตาม
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY , UNIQUE |
รหัสประจำการบันทึกการเคลื่อนไหวที่ไม่ซ้ำกัน. |
table_name |
VARCHAR(255) |
ชื่อของตารางที่มีการเคลื่อนไหว. | |
operation |
VARCHAR(50) |
ประเภทของการดำเนินการ (เช่น "INSERT", "UPDATE", "DELETE"). | |
record_id |
UUID |
รหัสประจำเรคคอร์ดที่ถูกเปลี่ยนแปลง. | |
changed_data |
JSON |
ข้อมูลที่ถูกเปลี่ยนแปลงในรูปแบบ JSON. | |
changed_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
วันที่และเวลาที่มีการเคลื่อนไหว. |
user_id |
UUID |
REFERENCES User(id) |
อ้างอิงถึงข้อมูลผู้ใช้ที่ทำการเคลื่อนไหว. |
Notes:
id
: รหัสประจำการบันทึกการเคลื่อนไหวที่ไม่ซ้ำกัน.table_name
: ชื่อของตารางที่มีการเคลื่อนไหว.operation
: ประเภทของการดำเนินการที่กระทำต่อเรคคอร์ด.record_id
: รหัสประจำเรคคอร์ดที่ถูกเปลี่ยนแปลง.changed_data
: รายละเอียดข้อมูลที่ถูกเปลี่ยนแปลง.
Table DatabaseMovementLog [NOTE: "ตารางการบันทึกการเคลื่อนไหวของฐานข้อมูลเพื่อการตรวจสอบและติดตาม"] {
id UUID [pk, unique, NOTE: "รหัสประจำการบันทึกการเคลื่อนไหวที่ไม่ซ้ำกัน."]
table_name VARCHAR(255) [NOTE: "ชื่อของตารางที่มีการเคลื่อนไหว."]
operation VARCHAR(50) [NOTE: "ประเภทของการดำเนินการ (เช่น 'INSERT', 'UPDATE', 'DELETE')."]
record_id UUID [NOTE: "รหัสประจำเรคคอร์ดที่ถูกเปลี่ยนแปลง."]
changed_data JSON [NOTE: "ข้อมูลที่ถูกเปลี่ยนแปลงในรูปแบบ JSON."]
changed_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "วันที่และเวลาที่มีการเคลื่อนไหว."]
user_id UUID [ref: > User.id, NOTE: "อ้างอิงถึงข้อมูลผู้ใช้ที่ทำการเคลื่อนไหว."]
}
Description: ตารางสำหรับการบันทึกข้อเสนอแนะแพทย์จากคนไข้
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY , UNIQUE |
รหัสข้อเสนอแน่ที่ไม่ซ้ำกัน. |
patient_id |
UUID |
REFERENCES Patient(id) |
อ้างอิงถึงข้อมูลคนไข้. |
feedback_text |
TEXT |
ข้อความข้อเสนอแน. | |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
Timestamp when the feedback was created. |
Notes:
id
: รหัสข้อเสนอแน่ที่ไม่ซ้ำกัน.patient_id
: อ้างอิงถึงข้อมูลคนไข้.feedback_text
: ข้อความข้อเสนอแน.created_at
: วันที่และเวลาที่มีการบันทึกข้อเสนอแนะแพทย์.
Table Feedback [NOTE: "ตารางสำหรับการบันทึกข้อเสนอแนะแพทย์จากคนไข้"] {
id UUID [pk, unique, NOTE: "รหัสข้อเสนอแน่ที่ไม่ซ้ำกัน."]
patient_id UUID [ref: > Patient.id, NOTE: "อ้างอิงถึงข้อมูลคนไข้."]
feedback_text TEXT [NOTE: "ข้อความข้อเสนอแน."]
created_at TIMESTAMP [default: `CURRENT_TIMESTAMP`, NOTE: "Timestamp when the feedback was created."]
}
Description: ตารางสำหรับข้อมูลประกันสุขภาพ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY , UNIQUE |
รหัสประกันสุขภาพที่ไม่ซ้ำกัน. |
patient_id |
UUID |
REFERENCES Patient(id) |
อ้างอิงถึงข้อมูลคนไข้. |
provider |
VARCHAR(255) |
ชื่อบริษัทประกันภัย. | |
policy_number |
VARCHAR(100) |
หมายเลขกรมธรรม์. | |
valid_until |
DATE |
วันหมดอายุของกรมธรรม์. |
Notes:
id
: รหัสประกันสุขภาพที่ไม่ซ้ำกัน.patient_id
: อ้างอิงถึงข้อมูลคนไข้.provider
: ชื่อบริษัทประกันภัย.policy_number
: หมายเลขกรมธรรม์.valid_until
: วันหมดอายุของกรมธรรม์.
Table Insurance [NOTE: "ข้อมูลประกันสุขภาพ"] {
id UUID [pk, unique, NOTE: "รหัสประกันสุขภาพที่ไม่ซ้ำกัน."]
patient_id UUID [ref: > Patient.id, NOTE: "อ้างอิงถึงข้อมูลคนไข้."]
provider VARCHAR(255) [NOTE: "ชื่อบริษัทประกันภัย."]
policy_number VARCHAR(100) [NOTE: "หมายเลขกรมธรรม์."]
valid_until DATE [NOTE: "วันหมดอายุของกรมธรรม์."]
}
Description: ตารางสำหรับข้อมูลการส่งต่อ
Column Name | Data Type | Constraints | Description |
---|---|---|---|
id |
UUID |
PRIMARY KEY , UNIQUE |
รหัสการส่งต่อที่ไม่ซ้ำกัน. |
patient_id |
UUID |
REFERENCES Patient(id) |
อ้างอิงถึงข้อมูลคนไข้. |
referred_doctor_id |
UUID |
REFERENCES Employee(id) |
อ้างอิงถึงข้อมูลแพทย์ที่ถูกส่งต่อ. |
reason |
TEXT |
เหตุผลในการส่งต่อ. | |
referral_date |
TIMESTAMP |
วันที่ส่งต่อ. |
Notes:
id
: รหัสการส่งต่อที่ไม่ซ้ำกัน.patient_id
: อ้างอิงถึงข้อมูลคนไข้.referred_doctor_id
: อ้างอิงถึงข้อมูลแพทย์ที่ถูกส่งต่อ.reason
: เหตุผลในการส่งต่อ.referral_date
: วันที่ส่งต่อ.
Table Referral [NOTE: "ข้อมูลการส่งต่อ"] {
id UUID [pk, unique, NOTE: "รหัสการส่งต่อที่ไม่ซ้ำกัน."]
patient_id UUID [ref: > Patient.id, NOTE: "อ้างอิงถึงข้อมูลคนไข้."]
referred_doctor_id UUID [ref: > Employee.id, NOTE: "อ้างอิงถึงข้อมูลแพทย์ที่ถูกส่งต่อ."]
reason TEXT [NOTE: "เหตุผลในการส่งต่อ."]
referral_date TIMESTAMP [NOTE: "วันที่ส่งต่อ."]
}