feat(yb): 创建医保模拟数据库表结构
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
-- V105__create_yb_mock_tables.sql
|
||||
-- 创建医保模拟服务器所需的数据库表
|
||||
|
||||
-- 1. 参保人信息表
|
||||
CREATE TABLE IF NOT EXISTS yb_psn_info (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
psn_no VARCHAR(50) NOT NULL UNIQUE,
|
||||
psn_name VARCHAR(100),
|
||||
sex_code VARCHAR(10),
|
||||
sex_name VARCHAR(20),
|
||||
birth_date VARCHAR(20),
|
||||
id_card VARCHAR(20),
|
||||
insur_type VARCHAR(100),
|
||||
insur_area VARCHAR(100),
|
||||
card_no VARCHAR(50),
|
||||
balance DECIMAL(12,2) DEFAULT 0,
|
||||
status VARCHAR(20) DEFAULT '正常',
|
||||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 2. 电子处方表
|
||||
CREATE TABLE IF NOT EXISTS yb_recipe (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
recipe_no VARCHAR(50) NOT NULL UNIQUE,
|
||||
psn_no VARCHAR(50),
|
||||
encounter_no VARCHAR(50),
|
||||
recipe_type VARCHAR(20),
|
||||
total_amount DECIMAL(12,2),
|
||||
self_pay DECIMAL(12,2),
|
||||
insurance_pay DECIMAL(12,2),
|
||||
status VARCHAR(20) DEFAULT '待结算',
|
||||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 3. 事前事中商品库
|
||||
CREATE TABLE IF NOT EXISTS yb_product (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
item_code VARCHAR(50) NOT NULL UNIQUE,
|
||||
item_name VARCHAR(200),
|
||||
item_type VARCHAR(50),
|
||||
spec VARCHAR(100),
|
||||
unit VARCHAR(20),
|
||||
price DECIMAL(12,2),
|
||||
manufacturer VARCHAR(200),
|
||||
approval_no VARCHAR(100),
|
||||
status VARCHAR(20) DEFAULT '正常',
|
||||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 4. 结算记录表
|
||||
CREATE TABLE IF NOT EXISTS yb_settle_record (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
settle_no VARCHAR(50) NOT NULL UNIQUE,
|
||||
psn_no VARCHAR(50),
|
||||
encounter_no VARCHAR(50),
|
||||
settle_type VARCHAR(20),
|
||||
total_amount DECIMAL(12,2),
|
||||
insurance_pay DECIMAL(12,2),
|
||||
self_pay DECIMAL(12,2),
|
||||
account_pay DECIMAL(12,2),
|
||||
cash_pay DECIMAL(12,2),
|
||||
status VARCHAR(20) DEFAULT '成功',
|
||||
settle_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 5. 签到签退记录表
|
||||
CREATE TABLE IF NOT EXISTS yb_sign_record (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
psn_no VARCHAR(50),
|
||||
sign_type VARCHAR(20),
|
||||
sign_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
terminal_no VARCHAR(50),
|
||||
status VARCHAR(20) DEFAULT '成功'
|
||||
);
|
||||
|
||||
-- 6. 插入测试数据 - 参保人信息
|
||||
INSERT INTO yb_psn_info (psn_no, psn_name, sex_code, sex_name, birth_date, id_card, insur_type, insur_area, card_no, balance, status) VALUES
|
||||
('P100001', '张三', '1', '男', '1980-01-15', '450123198001151234', '职工基本医疗保险', '南宁市', 'C2024000001', 12580.50, '正常'),
|
||||
('P100002', '李四', '2', '女', '1985-03-20', '450123198503201234', '城乡居民基本医疗保险', '柳州市', 'C2024000002', 5620.00, '正常'),
|
||||
('P100003', '王五', '1', '男', '1990-06-10', '450123199006101234', '职工基本医疗保险', '桂林市', 'C2024000003', 8950.25, '正常'),
|
||||
('P100004', '赵六', '2', '女', '1975-12-25', '450123197512251234', '离休人员医疗保险', '梧州市', 'C2024000004', 25000.00, '正常'),
|
||||
('P100005', '孙七', '1', '男', '1995-08-08', '450123199508081234', '城乡居民基本医疗保险', '北海市', 'C2024000005', 3200.75, '暂停');
|
||||
|
||||
-- 7. 插入测试数据 - 电子处方
|
||||
INSERT INTO yb_recipe (recipe_no, psn_no, encounter_no, recipe_type, total_amount, self_pay, insurance_pay, status) VALUES
|
||||
('CF20240601001', 'P100001', 'MZ20240601001', '西药处方', 156.80, 23.52, 133.28, '已结算'),
|
||||
('CF20240601002', 'P100002', 'MZ20240601002', '中药处方', 238.50, 71.55, 166.95, '待结算'),
|
||||
('CF20240601003', 'P100003', 'ZY20240601001', '住院处方', 2580.50, 258.05, 2322.45, '已结算');
|
||||
|
||||
-- 8. 插入测试数据 - 结算记录
|
||||
INSERT INTO yb_settle_record (settle_no, psn_no, encounter_no, settle_type, total_amount, insurance_pay, self_pay, account_pay, cash_pay, status) VALUES
|
||||
('JZ20240601001', 'P100001', 'MZ20240601001', '门诊结算', 156.80, 133.28, 23.52, 20.00, 3.52, '成功'),
|
||||
('ZYJS20240601001', 'P100003', 'ZY20240601001', '住院结算', 15680.50, 14112.45, 1568.05, 1200.00, 368.05, '成功');
|
||||
|
||||
-- 9. 创建索引
|
||||
CREATE INDEX IF NOT EXISTS idx_yb_psn_info_psn_no ON yb_psn_info(psn_no);
|
||||
CREATE INDEX IF NOT EXISTS idx_yb_recipe_psn_no ON yb_recipe(psn_no);
|
||||
CREATE INDEX IF NOT EXISTS idx_yb_recipe_encounter ON yb_recipe(encounter_no);
|
||||
CREATE INDEX IF NOT EXISTS idx_yb_settle_psn_no ON yb_settle_record(psn_no);
|
||||
CREATE INDEX IF NOT EXISTS idx_yb_settle_encounter ON yb_settle_record(encounter_no);
|
||||
CREATE INDEX IF NOT EXISTS idx_yb_sign_psn_no ON yb_sign_record(psn_no);
|
||||
Reference in New Issue
Block a user