fix(db): V100迁移脚本简化SQL避免依赖不存在的表

This commit is contained in:
2026-06-22 10:02:36 +08:00
parent 907b0565e7
commit 5cfaa5d68b

View File

@@ -28,7 +28,7 @@ WHERE e.id IS NOT NULL
SELECT 1 FROM emr_revision r WHERE r.emr_id = e.id
);
-- 3. 从doc_emr同步搜索索引不包含update_time列因为V103才添加
-- 3. 从doc_emr同步搜索索引简化版,不依赖可能不存在的表
INSERT INTO emr_search_index (
id, emr_id, encounter_id, patient_id, patient_name,
emr_type, emr_title, diagnosis_text,
@@ -39,38 +39,18 @@ SELECT
e.id,
e.encounter_id,
e.patient_id,
COALESCE(p.name, '患者' || e.patient_id),
'患者' || COALESCE(e.patient_id::text, '未知'),
CASE
WHEN e.class_enum = 1 THEN 'OUTPATIENT'
WHEN e.class_enum = 2 THEN 'INPATIENT'
ELSE 'OTHER'
END,
COALESCE(
NULLIF(TRIM(BOTH '"' FROM
SPLIT_PART(
SPLIT_PART(e.context_json, '"chiefComplaint"', 2),
':', 2
)
), ''),
'未命名病历'
),
COALESCE(
NULLIF(TRIM(BOTH '"' FROM
SPLIT_PART(
SPLIT_PART(e.context_json, '"diagnosis"', 2),
':', 2
)
), ''),
''
),
COALESCE(u.name, '医生' || e.record_id),
COALESCE(o.name, '未知科室'),
'未命名病历',
'',
'医生' || COALESCE(e.record_id::text, '未知'),
'未知科室',
COALESCE(e.create_time, NOW())
FROM doc_emr e
LEFT JOIN adm_patient p ON e.patient_id = p.id
LEFT JOIN sys_user u ON e.record_id = u.user_id
LEFT JOIN adm_encounter enc ON e.encounter_id = enc.id
LEFT JOIN sys_organization o ON enc.organization_id = o.id
WHERE e.id IS NOT NULL
AND NOT EXISTS (
SELECT 1 FROM emr_search_index si WHERE si.emr_id = e.id