Improve patient list OCR cleanup

This commit is contained in:
2026-06-11 20:31:11 +08:00
parent fde8e11cd1
commit 939c34be19
3 changed files with 155 additions and 15 deletions

View File

@@ -49,6 +49,37 @@ CREATE INDEX IF NOT EXISTS idx_patient_lists_patient_name ON "Patient_Lists"(pat
CREATE INDEX IF NOT EXISTS idx_patient_lists_review_status ON "Patient_Lists"(review_status);
CREATE INDEX IF NOT EXISTS idx_patient_lists_audit_result ON "Patient_Lists"(audit_result);
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conrelid = '"Patient_Lists"'::regclass
AND conname = 'ck_patient_lists_inpatient_no_present'
) THEN
ALTER TABLE "Patient_Lists"
ADD CONSTRAINT ck_patient_lists_inpatient_no_present
CHECK (btrim(inpatient_no) <> '') NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conrelid = '"Patient_Lists"'::regclass
AND conname = 'ck_patient_lists_admission_before_discharge'
) THEN
ALTER TABLE "Patient_Lists"
ADD CONSTRAINT ck_patient_lists_admission_before_discharge
CHECK (
COALESCE(discharge_time, '') = ''
OR COALESCE(admission_time, '') = ''
OR admission_time !~ '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
OR discharge_time !~ '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
OR admission_time <= discharge_time
OR review_status = '需人工复核'
) NOT VALID;
END IF;
END
$$;
COMMENT ON TABLE "Patient_Lists" IS 'HIS患者列表图片OCR归档后的正式患者记录单表';
COMMENT ON COLUMN "Patient_Lists".record_id IS '患者记录主键,数据库自动生成';
COMMENT ON COLUMN "Patient_Lists".batch_name IS '处理批次名称,通常为原始图片集群文件夹名';