From 15d32134e29171e1474c87a73b6738a1b9765825 Mon Sep 17 00:00:00 2001 From: nanyangbreeze <1955231298@qq.com> Date: Tue, 13 Jan 2026 14:48:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=82=E5=8F=B7=E8=A1=A5=E5=8D=95=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=9A=84=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OutpatientRegistrationAppMapper.xml | 5 +- .../202601090000 add_identifier_no_column.sql | 32 +++++++++++ .../check_identifier_no_column.sql | 28 +++++++++ .../202512251200 add_table adm_doctor_schedule.sql | 57 +++++++++++++++++++ 4 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 sql/迁移记录-DB变更记录/202601090000 add_identifier_no_column.sql create mode 100644 sql/迁移记录-DB变更记录/check_identifier_no_column.sql create mode 100644 迁移记录-DB变更记录/202512251200 add_table adm_doctor_schedule.sql diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml index 9754e61c..a2464ede 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/chargemanage/OutpatientRegistrationAppMapper.xml @@ -66,7 +66,7 @@ T9.payment_id AS paymentId, T9.picture_url AS pictureUrl, T9.birth_date AS birthDate, - T9.identifier_no AS identifierNo + COALESCE(T9.identifier_no, T9.patient_bus_no, '') AS identifierNo from ( SELECT T1.tenant_id AS tenant_id, T1.id AS encounter_id, @@ -90,6 +90,7 @@ T13.id AS payment_id, ai.picture_url AS picture_url, T8.birth_date AS birth_date, + T8.bus_no AS patient_bus_no, T18.identifier_no AS identifier_no FROM adm_encounter AS T1 LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0' @@ -129,6 +130,8 @@ ROW_NUMBER() OVER (PARTITION BY patient_id ORDER BY create_time ASC) AS rn FROM adm_patient_identifier WHERE delete_flag = '0' + AND identifier_no IS NOT NULL + AND identifier_no != '' ) t WHERE rn = 1 ) AS T18 ON T8.id = T18.patient_id diff --git a/sql/迁移记录-DB变更记录/202601090000 add_identifier_no_column.sql b/sql/迁移记录-DB变更记录/202601090000 add_identifier_no_column.sql new file mode 100644 index 00000000..ef2fd53f --- /dev/null +++ b/sql/迁移记录-DB变更记录/202601090000 add_identifier_no_column.sql @@ -0,0 +1,32 @@ +-- 检查并添加 adm_patient_identifier 表的 identifier_no 列(如果不存在) +-- 执行方式:使用Navicat Premium或其他PostgreSQL客户端工具连接到数据库后执行 + +-- 检查列是否存在,如果不存在则添加 +DO $$ +BEGIN + -- 检查列是否存在 + IF NOT EXISTS ( + SELECT 1 + FROM information_schema.columns + WHERE table_schema = 'hisdev' + AND table_name = 'adm_patient_identifier' + AND column_name = 'identifier_no' + ) THEN + -- 如果列不存在,则添加列 + ALTER TABLE adm_patient_identifier + ADD COLUMN identifier_no VARCHAR(255); + + -- 添加注释 + COMMENT ON COLUMN adm_patient_identifier.identifier_no IS '标识号(就诊卡号)'; + + RAISE NOTICE '已添加 identifier_no 列'; + ELSE + RAISE NOTICE 'identifier_no 列已存在,无需添加'; + END IF; +END $$; + +-- 插入迁移记录 +INSERT INTO "__migrationshistory" ("version", "description") +VALUES ('202601090000 add_identifier_no_column', '1.0.0') +ON CONFLICT (version) DO NOTHING; + diff --git a/sql/迁移记录-DB变更记录/check_identifier_no_column.sql b/sql/迁移记录-DB变更记录/check_identifier_no_column.sql new file mode 100644 index 00000000..f85563e1 --- /dev/null +++ b/sql/迁移记录-DB变更记录/check_identifier_no_column.sql @@ -0,0 +1,28 @@ +-- 检查 adm_patient_identifier 表是否存在 identifier_no 列 +-- 执行方式:使用Navicat Premium或其他PostgreSQL客户端工具连接到数据库后执行 + +-- 检查列是否存在 +SELECT + column_name, + data_type, + character_maximum_length, + is_nullable +FROM information_schema.columns +WHERE table_schema = 'hisdev' + AND table_name = 'adm_patient_identifier' + AND column_name = 'identifier_no'; + +-- 如果上面的查询返回空结果,说明列不存在,需要执行以下SQL添加列: +-- ALTER TABLE adm_patient_identifier ADD COLUMN identifier_no VARCHAR(255); +-- COMMENT ON COLUMN adm_patient_identifier.identifier_no IS '标识号(就诊卡号)'; + +-- 检查表的所有列 +SELECT + column_name, + data_type, + character_maximum_length +FROM information_schema.columns +WHERE table_schema = 'hisdev' + AND table_name = 'adm_patient_identifier' +ORDER BY ordinal_position; + diff --git a/迁移记录-DB变更记录/202512251200 add_table adm_doctor_schedule.sql b/迁移记录-DB变更记录/202512251200 add_table adm_doctor_schedule.sql new file mode 100644 index 00000000..175bfd84 --- /dev/null +++ b/迁移记录-DB变更记录/202512251200 add_table adm_doctor_schedule.sql @@ -0,0 +1,57 @@ +-- adm_doctor_schedule definition + +-- Drop table + +-- DROP TABLE adm_doctor_schedule; + +CREATE TABLE adm_doctor_schedule ( + id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + weekday VARCHAR(50) NULL, + time_period VARCHAR(50) NULL, + doctor VARCHAR(100) NULL, + clinic VARCHAR(100) NULL, + start_time TIME NULL, + end_time TIME NULL, + limit_number INTEGER NULL, + call_sign_record VARCHAR(500) NOT NULL DEFAULT '', + register_item VARCHAR(200) NULL, + register_fee INTEGER NULL, + diagnosis_item VARCHAR(200) NULL, + diagnosis_fee INTEGER NULL, + is_online BOOLEAN NULL, + is_stopped BOOLEAN NULL, + stop_reason VARCHAR(500) NULL, + dept_id INTEGER NULL, + create_time TIMESTAMPTZ(6) NULL, + update_time TIMESTAMPTZ(6) NULL +); + +COMMENT ON TABLE adm_doctor_schedule IS '医生排班表'; + +-- Column comments + +COMMENT ON COLUMN adm_doctor_schedule.id IS '主键ID(GENERATED ALWAYS)'; +COMMENT ON COLUMN adm_doctor_schedule.weekday IS '星期'; +COMMENT ON COLUMN adm_doctor_schedule.time_period IS '时段(上午/下午)'; +COMMENT ON COLUMN adm_doctor_schedule.doctor IS '医生姓名'; +COMMENT ON COLUMN adm_doctor_schedule.clinic IS '诊室'; +COMMENT ON COLUMN adm_doctor_schedule.start_time IS '开始时间'; +COMMENT ON COLUMN adm_doctor_schedule.end_time IS '结束时间'; +COMMENT ON COLUMN adm_doctor_schedule.limit_number IS '限号数量'; +COMMENT ON COLUMN adm_doctor_schedule.call_sign_record IS '号源记录'; +COMMENT ON COLUMN adm_doctor_schedule.register_item IS '挂号项目'; +COMMENT ON COLUMN adm_doctor_schedule.register_fee IS '挂号费'; +COMMENT ON COLUMN adm_doctor_schedule.diagnosis_item IS '诊查项目'; +COMMENT ON COLUMN adm_doctor_schedule.diagnosis_fee IS '诊疗费'; +COMMENT ON COLUMN adm_doctor_schedule.is_online IS '是否线上挂号'; +COMMENT ON COLUMN adm_doctor_schedule.is_stopped IS '是否停诊'; +COMMENT ON COLUMN adm_doctor_schedule.stop_reason IS '停诊原因'; +COMMENT ON COLUMN adm_doctor_schedule.dept_id IS '关联科室ID'; +COMMENT ON COLUMN adm_doctor_schedule.create_time IS '创建时间'; +COMMENT ON COLUMN adm_doctor_schedule.update_time IS '更新时间'; + +-- 插入迁移记录 +INSERT INTO __MigrationsHistory (MigrationId, ProductVersion) +VALUES ('202512251200 add_table adm_doctor_schedule', '1.0.0'); + +