-- 优化会诊申请表结构以满足需求文档 (PostgreSQL格式) -- 添加缺失的字段 DO $$ BEGIN -- 检查并添加字段 IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'visit_id') THEN ALTER TABLE consultation_request ADD COLUMN visit_id BIGINT; END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'order_id') THEN ALTER TABLE consultation_request ADD COLUMN order_id BIGINT; END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'patient_name') THEN ALTER TABLE consultation_request ADD COLUMN patient_name VARCHAR(100); END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'gender') THEN ALTER TABLE consultation_request ADD COLUMN gender VARCHAR(10); END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'age') THEN ALTER TABLE consultation_request ADD COLUMN age INTEGER; END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'provisional_diagnosis') THEN ALTER TABLE consultation_request ADD COLUMN provisional_diagnosis TEXT; END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'consultation_opinion') THEN ALTER TABLE consultation_request ADD COLUMN consultation_opinion TEXT; END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'confirming_physician') THEN ALTER TABLE consultation_request ADD COLUMN confirming_physician VARCHAR(100); END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'confirming_physician_id') THEN ALTER TABLE consultation_request ADD COLUMN confirming_physician_id BIGINT; END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'confirming_date') THEN ALTER TABLE consultation_request ADD COLUMN confirming_date TIMESTAMP; END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'consultation_urgency') THEN ALTER TABLE consultation_request ADD COLUMN consultation_urgency VARCHAR(20) DEFAULT '一般'; END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'consultation_status') THEN ALTER TABLE consultation_request ADD COLUMN consultation_status INTEGER DEFAULT 0; END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'consultation_request_date') THEN ALTER TABLE consultation_request ADD COLUMN consultation_request_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP; END IF; 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); END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'signature') THEN ALTER TABLE consultation_request ADD COLUMN signature VARCHAR(100); END IF; IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'consultation_request' AND column_name = 'signature_date') THEN ALTER TABLE consultation_request ADD COLUMN signature_date TIMESTAMP; 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); 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); END IF; -- 更新注释 COMMENT ON COLUMN consultation_request.consultation_status IS '会诊状态:0-新开,10-已提交,20-已确认,30-已签名,40-已完成,50-已取消'; END $$;