fix(db): V100迁移脚本简化SQL避免依赖不存在的表
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user