Files
his/openhis-server-new/create_consultation_tables_postgresql_final.sql
chenqi 89bf85fd97 feat: 门诊手术中计费功能
- 数据库:在adm_charge_item表添加SourceBillNo字段
- 后端实体类:更新ChargeItem.java添加SourceBillNo字段
- 前端组件:创建手术计费界面(基于门诊划价界面)
- 后端API:扩展PrePrePaymentDto支持手术计费标识
- 后端Service:扩展getChargeItems方法支持手术计费过滤
- 门诊手术安排界面:添加【计费】按钮

注意事项:
- 需要手动执行SQL脚本:openhis-server-new/sql/add_source_bill_no_to_adm_charge_item.sql
- 术后一站式结算功能待后续开发
2026-02-05 23:47:02 +08:00

135 lines
6.8 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 会诊申请表
CREATE TABLE IF NOT EXISTS consultation_request (
id BIGSERIAL PRIMARY KEY,
patient_id VARCHAR(50) NOT NULL, -- 患者ID
patient_name VARCHAR(100), -- 患者姓名
gender VARCHAR(10), -- 患者性别
age INTEGER, -- 患者年龄
visit_id BIGINT, -- 门诊就诊流水号
order_id BIGINT, -- 门诊医嘱表主键
department_id BIGINT, -- 申请科室ID
department_name VARCHAR(100), -- 申请科室名称
attending_doctor_id BIGINT, -- 主管医生ID
attending_doctor_name VARCHAR(100), -- 主管医生姓名
consultation_purpose TEXT, -- 会诊目的
provisional_diagnosis TEXT, -- 门诊诊断
current_condition TEXT, -- 目前病情
consultation_department_ids TEXT, -- 申请会诊科室ID列表逗号分隔
consultation_doctor_ids TEXT, -- 申请会诊医生ID列表逗号分隔
consultation_type INTEGER DEFAULT 1, -- 会诊类型1-普通会诊2-紧急会诊3-多学科会诊
priority_level INTEGER DEFAULT 1, -- 优先级1-低2-中3-高
consultation_status INTEGER DEFAULT 0, -- 会诊状态0-新开10-已提交20-已确认30-已签名40-已完成50-已取消
consultation_opinion TEXT, -- 会诊意见
confirming_physician VARCHAR(100), -- 提交会诊的医生
confirming_physician_id BIGINT, -- 提交会诊的医生ID
confirming_date TIMESTAMP, -- 提交会诊时间
consultation_urgency VARCHAR(20) DEFAULT '一般', -- 是否紧急
application_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 申请日期
consultation_request_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 会诊申请时间
confirmed_date TIMESTAMP, -- 确认日期
scheduled_date TIMESTAMP, -- 计划会诊日期
actual_date TIMESTAMP, -- 实际会诊日期
location VARCHAR(200), -- 会诊地点
confirming_physician_name VARCHAR(100), -- 确认会诊的医生姓名
signature VARCHAR(100), -- 签名医生
signature_date TIMESTAMP, -- 签名时间
confirming_department_name VARCHAR(100), -- 代表科室
confirming_physician_participation VARCHAR(100), -- 会诊确认参加医师
creator_id BIGINT, -- 创建人ID
creator_name VARCHAR(100), -- 创建人姓名
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 创建时间
updater_id BIGINT, -- 更新人ID
updater_name VARCHAR(100), -- 更新人姓名
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 更新时间
valid_flag INTEGER DEFAULT 1, -- 有效标志1-有效0-无效
tenant_id INTEGER DEFAULT 1 -- 租户ID
);
-- 会诊确认表
CREATE TABLE IF NOT EXISTS consultation_confirmation (
id BIGSERIAL PRIMARY KEY,
consultation_request_id BIGINT, -- 会诊申请ID
confirming_department_id BIGINT NOT NULL, -- 确认科室ID
confirming_department_name VARCHAR(100) NOT NULL, -- 确认科室名称
confirming_doctor_id BIGINT NOT NULL, -- 确认医生ID
confirming_doctor_name VARCHAR(100) NOT NULL, -- 确认医生姓名
confirmation_status INTEGER DEFAULT 1, -- 确认状态1-待确认2-同意3-拒绝
confirmation_reason TEXT, -- 确认/拒绝理由
confirmation_date TIMESTAMP, -- 确认日期
consultation_opinion TEXT, -- 会诊意见
confirming_physician_participation VARCHAR(100), -- 会诊确认参加医师
confirming_physician_name VARCHAR(100), -- 所属医生
confirming_department_name_field VARCHAR(100), -- 代表科室
signature VARCHAR(100), -- 签名医生
signature_date TIMESTAMP, -- 签名时间
creator_id BIGINT NOT NULL, -- 创建人ID
creator_name VARCHAR(100) NOT NULL, -- 创建人姓名
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 创建时间
updater_id BIGINT, -- 更新人ID
updater_name VARCHAR(100), -- 更新人姓名
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 更新时间
valid_flag INTEGER DEFAULT 1, -- 有效标志1-有效0-无效
tenant_id INTEGER DEFAULT 1 -- 租户ID
);
-- 会诊记录表
CREATE TABLE IF NOT EXISTS consultation_record (
id BIGSERIAL PRIMARY KEY,
consultation_request_id BIGINT, -- 会诊申请ID
participant_doctor_id BIGINT NOT NULL, -- 参与医生ID
participant_doctor_name VARCHAR(100) NOT NULL, -- 参与医生姓名
participant_department_id BIGINT NOT NULL, -- 参与科室ID
participant_department_name VARCHAR(100) NOT NULL, -- 参与科室名称
opinion TEXT, -- 会诊意见
suggestion TEXT, -- 会诊建议
record_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 记录日期
creator_id BIGINT NOT NULL, -- 创建人ID
creator_name VARCHAR(100) NOT NULL, -- 创建人姓名
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 创建时间
updater_id BIGINT, -- 更新人ID
updater_name VARCHAR(100), -- 更新人姓名
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 更新时间
valid_flag INTEGER DEFAULT 1, -- 有效标志1-有效0-无效
tenant_id INTEGER DEFAULT 1 -- 租户ID
);
-- 创建索引
CREATE INDEX IF NOT EXISTS idx_consultation_request_patient_id ON consultation_request(patient_id);
CREATE INDEX IF NOT EXISTS idx_consultation_request_dept_id ON consultation_request(department_id);
CREATE INDEX IF NOT EXISTS idx_consultation_request_status ON consultation_request(consultation_status);
CREATE INDEX IF NOT EXISTS idx_consultation_request_date ON consultation_request(application_date);
CREATE INDEX IF NOT EXISTS idx_consultation_confirmation_req_id ON consultation_confirmation(consultation_request_id);
CREATE INDEX IF NOT EXISTS idx_consultation_confirmation_doctor_id ON consultation_confirmation(confirming_doctor_id);
CREATE INDEX IF NOT EXISTS idx_consultation_confirmation_status ON consultation_confirmation(confirmation_status);
CREATE INDEX IF NOT EXISTS idx_consultation_record_req_id ON consultation_record(consultation_request_id);
CREATE INDEX IF NOT EXISTS idx_consultation_record_doctor_id ON consultation_record(participant_doctor_id);
-- 添加外键约束
DO $$
BEGIN
-- 为consultation_confirmation表添加外键约束
IF NOT EXISTS (
SELECT 1
FROM information_schema.table_constraints
WHERE constraint_name = 'fk_consultation_confirmation_request'
AND table_name = 'consultation_confirmation'
) THEN
ALTER TABLE consultation_confirmation
ADD CONSTRAINT fk_consultation_confirmation_request
FOREIGN KEY (consultation_request_id) REFERENCES consultation_request(id);
END IF;
-- 为consultation_record表添加外键约束
IF NOT EXISTS (
SELECT 1
FROM information_schema.table_constraints
WHERE constraint_name = 'fk_consultation_record_request'
AND table_name = 'consultation_record'
) THEN
ALTER TABLE consultation_record
ADD CONSTRAINT fk_consultation_record_request
FOREIGN KEY (consultation_request_id) REFERENCES consultation_request(id);
END IF;
END $$;