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
- 术后一站式结算功能待后续开发
This commit is contained in:
2026-02-05 23:47:02 +08:00
parent f3d56bff45
commit 89bf85fd97
117 changed files with 30248 additions and 44 deletions

View File

@@ -0,0 +1,63 @@
-- 为现有的consultation_request表添加缺失的字段
DO $$
BEGIN
-- 检查并添加缺失的字段
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'confirming_physician_name') THEN
ALTER TABLE consultation_request ADD COLUMN confirming_physician_name VARCHAR(100);
COMMENT ON COLUMN consultation_request.confirming_physician_name IS '确认会诊的医生姓名';
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'confirming_department_name') THEN
ALTER TABLE consultation_request ADD COLUMN confirming_department_name VARCHAR(100);
COMMENT ON COLUMN consultation_request.confirming_department_name IS '代表科室';
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'confirming_physician_participation') THEN
ALTER TABLE consultation_request ADD COLUMN confirming_physician_participation VARCHAR(100);
COMMENT ON COLUMN consultation_request.confirming_physician_participation IS '会诊确认参加医师';
END IF;
-- 检查并更新consultation_status字段的注释
DROP COMMENT ON COLUMN consultation_request.consultation_status;
COMMENT ON COLUMN consultation_request.consultation_status IS '会诊状态0-新开10-已提交20-已确认30-已签名40-已完成50-已取消';
-- 检查并更新consultation_urgency字段的默认值
ALTER TABLE consultation_request ALTER COLUMN consultation_urgency SET DEFAULT '一般';
-- 检查并更新字段注释
COMMENT ON COLUMN consultation_request.consultation_id IS '会诊申请单号CS+年月日时分秒+4位随机数';
COMMENT ON COLUMN consultation_request.consultation_request_date IS '会诊申请时间';
COMMENT ON COLUMN consultation_request.consultation_date IS '会诊时间';
COMMENT ON COLUMN consultation_request.consultation_purpose IS '简要病史及会诊目的';
COMMENT ON COLUMN consultation_request.consultation_opinion IS '会诊意见';
COMMENT ON COLUMN consultation_request.consultation_status IS '会诊状态0-新开10-已提交20-已确认30-已签名40-已完成50-已取消';
COMMENT ON COLUMN consultation_request.consultation_urgency IS '是否紧急:一般/紧急';
COMMENT ON COLUMN consultation_request.confirming_physician IS '提交会诊的医生姓名';
COMMENT ON COLUMN consultation_request.confirming_physician_id IS '提交会诊的医生ID';
COMMENT ON COLUMN consultation_request.confirming_date IS '提交会诊日期';
COMMENT ON COLUMN consultation_request.signature IS '结束会诊医生姓名/签名医生';
COMMENT ON COLUMN consultation_request.signature_physician_id IS '结束会诊医生ID';
COMMENT ON COLUMN consultation_request.signature_date IS '结束会诊日期/签名时间';
COMMENT ON COLUMN consultation_request.cancel_nature_date IS '作废会诊日期';
COMMENT ON COLUMN consultation_request.cancel_reason IS '作废原因';
COMMENT ON COLUMN consultation_request.consultation_activity_id IS '会诊项目ID关联wor_activity_definition表用于确定会诊类型和价格';
COMMENT ON COLUMN consultation_request.consultation_activity_name IS '会诊项目名称,如:院内会诊、远程会诊等';
END $$;
-- 为现有表添加必要的索引
DO $$
BEGIN
-- 检查并创建索引
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'consultation_request' AND indexname = 'idx_consultation_request_status_date') THEN
CREATE INDEX idx_consultation_request_status_date ON consultation_request (consultation_status, consultation_request_date);
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'consultation_request' AND indexname = 'idx_consultation_request_physician') THEN
CREATE INDEX idx_consultation_request_physician ON consultation_request (requesting_physician_id);
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'consultation_request' AND indexname = 'idx_consultation_request_invited_object') THEN
CREATE INDEX idx_consultation_request_invited_object ON consultation_request (invited_object);
END IF;
END $$;