docker compose up -d
cd frontend
yarn start
Warning Please make sure you rename the environment file from
.env.example
to.env
我跟朋友期望能夠以AI與資訊科技來進軍醫療產業,正好透過這堂課程, 嘗試進行一個小小的處方籤管理系統,用於管理醫療處方籤的資料和流程。 它能記錄每位病人的處方籤資料,包括藥品名稱、劑量、服用頻率等。還能追蹤處方籤的狀態。 處方籤管理系統還能與藥品庫存系統集成,自動更新庫存資料並提醒藥品需要補貨。 透過這種軟體可以改善醫療流程效率,確保病人能按時接受正確的治療,並進而幫助藥師服務病患。
建立病患處方籤管理系統,需要考慮以下幾個因素:
- 病患基本資料表,包含病患的姓名、性別、年齡、聯絡方式等資料。
- 醫生基本資料表,包含醫生的姓名、性別、年齡、聯絡方式等資料。
- 病歷表,記錄病患的病史、診斷、治療方案等資料。
- 處方籤表,記錄病患的處方資料,包括處方藥品名稱、用量、用法、服藥次數等。
- 藥品庫存表,記錄藥品的庫存量、單價、批號、有效日期等資料。
功能方面,病患處方籤管理系統可以提供以下功能:
- 病患資料管理CRUD
- 藥師資料管理CRUD
- 病歷管理CRUD
- 處方籤管理CRUD
- 藥品庫存管理CRUD
- 處方籤打印(?):可以將病患的處方資料打印成處方籤,方便病患到藥房領藥。
- 藥品銷售管理:可以記錄藥品的銷售情況,包括銷售數量、單價、總金額等。
- 統計報表:可以生成各種統計報表,例如病患數量、處方數量、藥品銷售金額等。
- 安全性:系統需要提供足夠的安全措施,防止資料被竄改或泄露。(這邊用Directus處理)
- 二元關係:
- 藥品銷售:必定會有藥品
- 三元關係:
- 病歷管理(medical_record): 必定有醫生與病患
- 處方籤管理(prescriptions): 必定有患者與藥品
CREATE TABLE patients (
patient_id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
gender CHAR(1) NOT NULL,
age INTEGER NOT NULL,
contact_info TEXT
);
CREATE TABLE doctors (
doctor_id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
gender CHAR(1) NOT NULL,
age INTEGER NOT NULL,
contact_info TEXT
);
CREATE TABLE medical_records (
record_id SERIAL PRIMARY KEY,
patient_id INTEGER REFERENCES patients (patient_id),
doctor_id INTEGER REFERENCES doctors (doctor_id),
diagnosis TEXT NOT NULL,
treatment_plan TEXT NOT NULL,
date_created TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE prescriptions (
prescription_id SERIAL PRIMARY KEY,
patient_id INTEGER REFERENCES patients (patient_id),
drug_id INTEGER REFERENCES drug_stocks (drug_id),
dosage REAL NOT NULL,
frequency TEXT NOT NULL,
date_created TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE drug_stocks (
drug_id SERIAL PRIMARY KEY,
drug_name TEXT NOT NULL,
quantity INTEGER NOT NULL,
price REAL NOT NULL,
batch_number TEXT NOT NULL,
expiration_date DATE NOT NULL
);
CREATE TABLE sales (
sale_id SERIAL PRIMARY KEY,
drug_id INTEGER REFERENCES drug_stocks (drug_id),
quantity INTEGER NOT NULL,
price REAL NOT NULL,
total_amount REAL NOT NULL,
date_created TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
- patients 表格記錄病患的基本資料,包括病患 ID、姓名、性別、年齡、聯絡方式等。
- doctors 表格記錄醫生的基本資料,包括醫生 ID、姓名、性別、年齡、聯絡方式等。
- medical_records 表格記錄病歷資料,包括病歷 ID、病患 ID、藥師 ID (?) 、 醫生 ID (?)
- prescriptions 表格記錄處方資料,包括處方 ID、病患 ID、醫生 ID、藥品名稱、用量、用法、建立日期等。
- drug_stocks 表格記錄藥品庫存資料,包括藥品 ID、藥品名稱、數量、單價、批號、有效日期等。
- sales 表格記錄藥品銷售資料,包括銷售 ID、藥品 ID、數量、單價、總金額、建立日期等。
docker exec -it dbms-database-1 pg_dump -n public -U postgres directus > backup.sql