Skip to content

[Hobby Project] Work In Progress | Example api on go in clinic management usecaase and ER Diagram

Notifications You must be signed in to change notification settings

billowdev/golang-api-clinic-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api-clinic-management

Example api on go in clinic management usecaase and ER Diagram

Business Context

ER Diagram

dbdiagram

Employee Table

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."]
}

Doctor Table

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."]
}

Patient Management

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."]
}

Appointment Management

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."]
}

Material Management

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."]
}

Material Order Management

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."]
}

Material Order Detail Management

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."]
}

Material Disbursement Management

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."]
}

Material Disburse Detail Management

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: "āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļ–āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļžāļ™āļąāļāļ‡āļēāļ™āļ—āļĩāđˆāļ—āļģāļāļēāļĢāđ€āļšāļīāļāļˆāđˆāļēāļĒ."]
}

Agent Management

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."]
}

Medicine Management

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."]
}

Medicine Type Management

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: "āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļ–āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ­āđ€āļĒāđˆāļ™āļ•āđŒ."]
}

Medicine Order Management

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: "āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļ–āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļąāļ§āđāļ—āļ™āļˆāļģāļŦāļ™āđˆāļēāļĒ."]
}

Medicine Order Detail Management

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: "āļˆāļģāļ™āļ§āļ™āļ„āđ‰āļēāļ‡āļĢāļąāļš."]
}

Medicine Stock Management

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: "āļ§āļąāļ™āļŦāļĄāļ”āļ­āļēāļĒāļļāļ‚āļ­āļ‡āļĒāļē."]
}

Prescription Table

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: "āļ„āļģāđāļ™āļ°āļ™āļģāļāļēāļĢāđƒāļŠāđ‰āļĒāļē."]
}

Medicine Disburse Management

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: "āļ§āļąāļ™āļ—āļĩāđˆāļˆāđˆāļēāļĒāļĒāļē."]
}

Medicine Disburse Detail Management

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: "āđ€āļ§āļĨāļēāđƒāļŠāđ‰āļĒāļē."]
}

Course Management

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: "āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļ–āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļžāļ™āļąāļāļ‡āļēāļ™."]
}

Receipt Management

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: "āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļ–āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļžāļ™āļąāļāļ‡āļēāļ™."]
}

Email Log Management

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')."]
}

Database Movement Log

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: "āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļ–āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļœāļđāđ‰āđƒāļŠāđ‰āļ—āļĩāđˆāļ—āļģāļāļēāļĢāđ€āļ„āļĨāļ·āđˆāļ­āļ™āđ„āļŦāļ§."]
}

Feedback Table

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."]
}

Insurance Table

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: "āļ§āļąāļ™āļŦāļĄāļ”āļ­āļēāļĒāļļāļ‚āļ­āļ‡āļāļĢāļĄāļ˜āļĢāļĢāļĄāđŒ."]
}

Referral Table

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: "āļ§āļąāļ™āļ—āļĩāđˆāļŠāđˆāļ‡āļ•āđˆāļ­."]
}

About

[Hobby Project] Work In Progress | Example api on go in clinic management usecaase and ER Diagram

Topics

Resources

Stars

Watchers

Forks

Languages