From 8c414a6a9126a322c58346024347b21749bdda48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=8E=E4=BD=97?= Date: Sun, 7 Jun 2026 21:47:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(test):=20=E4=B8=89=E7=94=B2=E5=8C=BB?= =?UTF-8?q?=E9=99=A2=E5=85=A8=E6=B5=81=E7=A8=8B=E6=B5=8B=E8=AF=95=E6=95=B0?= =?UTF-8?q?=E6=8D=AE+=E6=B5=8B=E8=AF=95=E6=B5=81=E7=A8=8B=E6=96=87?= =?UTF-8?q?=E6=A1=A3+=E8=87=AA=E5=8A=A8=E5=8C=96=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 01_test_data_fixed.sql: 31个模块测试数据(覆盖门诊/住院/药房/检验/影像/手术/麻醉/护理/院感/质控/中医/会诊/临床路径/危急值/DRG/EMPI/ESB等) - 02_TEST_FLOWS.md: 30个业务流程图+API接口映射(含调用链路和测试数据) - 03_test_api_comprehensive.sh: 自动化测试脚本(覆盖所有模块API接口) --- MD/test/01_test_data_fixed.sql | 418 +++++++++++ MD/test/02_TEST_FLOWS.md | 990 +++++++++++++++++++++++++++ MD/test/03_test_api_comprehensive.sh | 513 ++++++++++++++ 3 files changed, 1921 insertions(+) create mode 100644 MD/test/01_test_data_fixed.sql create mode 100644 MD/test/02_TEST_FLOWS.md create mode 100755 MD/test/03_test_api_comprehensive.sh diff --git a/MD/test/01_test_data_fixed.sql b/MD/test/01_test_data_fixed.sql new file mode 100644 index 000000000..7bcca39b6 --- /dev/null +++ b/MD/test/01_test_data_fixed.sql @@ -0,0 +1,418 @@ +-- ============================================================ +-- HealthLink-HIS 三甲医院全流程测试数据(修正版) +-- 版本: v2.0 (JDK 25 + Spring Boot 4.0.6 + Vue 3) +-- 日期: 2026-06-07 +-- 说明: 覆盖门诊/住院/药房/检验/影像/手术/麻醉/护理/院感/质控/中医/会诊全流程 +-- 注意: 仅插入测试数据,不删除现有数据,使用ON CONFLICT避免重复 +-- ============================================================ + +SET search_path TO healthlink_his; + +-- ============================ +-- 一、基础数据(科室/人员) +-- ============================ + +INSERT INTO sys_dept (dept_id, parent_id, ancestors, dept_name, order_num, leader, phone, email, status, del_flag, create_by, create_time) +VALUES + (1001, 0, '0', '门诊内科', 10, '张主任', '13800000001', 'mnk@hospital.com', '0', '0', 'admin', NOW()), + (1002, 0, '0', '门诊外科', 11, '李主任', '13800000002', 'mwk@hospital.com', '0', '0', 'admin', NOW()), + (1003, 0, '0', '儿科门诊', 12, '王主任', '13800000003', 'ek@hospital.com', '0', '0', 'admin', NOW()), + (1004, 0, '0', '妇产科', 13, '赵主任', '13800000004', 'fck@hospital.com', '0', '0', 'admin', NOW()), + (1005, 0, '0', 'ICU', 14, '刘主任', '13800000005', 'icu@hospital.com', '0', '0', 'admin', NOW()), + (1006, 0, '0', '急诊科', 15, '陈主任', '13800000006', 'jzk@hospital.com', '0', '0', 'admin', NOW()), + (1007, 0, '0', '手术室', 16, '孙主任', '13800000007', 'ss@hospital.com', '0', '0', 'admin', NOW()), + (1008, 0, '0', '药房', 17, '周主任', '13800000008', 'yf@hospital.com', '0', '0', 'admin', NOW()), + (1009, 0, '0', '检验科', 18, '吴主任', '13800000009', 'jyk@hospital.com', '0', '0', 'admin', NOW()), + (1010, 0, '0', '影像科', 19, '郑主任', '13800000010', 'yxk@hospital.com', '0', '0', 'admin', NOW()), + (1011, 0, '0', '门诊部', 20, '黄院长', '13800000011', 'mzb@hospital.com', '0', '0', 'admin', NOW()), + (1012, 0, '0', '住院部', 21, '杨院长', '13800000012', 'zyb@hospital.com', '0', '0', 'admin', NOW()) +ON CONFLICT (dept_id) DO NOTHING; + +INSERT INTO sys_user (user_id, user_name, nick_name, dept_id, email, phonenumber, sex, status, del_flag, create_by, create_time) +VALUES + (2001, 'doctor_zhang', '张三医生', 1001, 'zhangsan@hospital.com', '13900000001', '1', '0', '0', 'admin', NOW()), + (2002, 'doctor_li', '李四医生', 1002, 'lisi@hospital.com', '13900000002', '1', '0', '0', 'admin', NOW()), + (2003, 'doctor_wang', '王五医生', 1003, 'wangwu@hospital.com', '13900000003', '1', '0', '0', 'admin', NOW()), + (2004, 'doctor_zhao', '赵六医生', 1004, 'zhaoliu@hospital.com', '13900000004', '1', '0', '0', 'admin', NOW()), + (2005, 'doctor_liu', '刘七医生', 1005, 'liuqi@hospital.com', '13900000005', '1', '0', '0', 'admin', NOW()), + (2006, 'doctor_chen', '陈八医生', 1006, 'chenba@hospital.com', '13900000006', '1', '0', '0', 'admin', NOW()), + (2007, 'doctor_sun', '孙九医生', 1007, 'sunjiu@hospital.com', '13900000007', '1', '0', '0', 'admin', NOW()), + (2008, 'doctor_zhou', '周十医生', 1008, 'zhoushi@hospital.com', '13900000008', '1', '0', '0', 'admin', NOW()), + (2009, 'doctor_wu', '吴十一医生', 1009, 'wushiyi@hospital.com', '13900000009', '1', '0', '0', 'admin', NOW()), + (2010, 'doctor_zheng', '郑十二医生', 1010, 'zhengershi@hospital.com', '13900000010', '1', '0', '0', 'admin', NOW()) +ON CONFLICT (user_id) DO NOTHING; + +INSERT INTO sys_user (user_id, user_name, nick_name, dept_id, email, phonenumber, sex, status, del_flag, create_by, create_time) +VALUES + (3001, 'nurse_a', '护士A', 1001, 'nursea@hospital.com', '13700000001', '2', '0', '0', 'admin', NOW()), + (3002, 'nurse_b', '护士B', 1005, 'nurseb@hospital.com', '13700000002', '2', '0', '0', 'admin', NOW()), + (3003, 'nurse_c', '护士C', 1006, 'nursec@hospital.com', '13700000003', '2', '0', '0', 'admin', NOW()), + (3004, 'nurse_d', '护士D', 1007, 'nursed@hospital.com', '13700000004', '2', '0', '0', 'admin', NOW()) +ON CONFLICT (user_id) DO NOTHING; + +-- ============================ +-- 二、测试患者数据 +-- ============================ + +INSERT INTO adm_patient (id, name, gender_enum, birth_date, phone, id_card, address, organization_id, tenant_id, delete_flag, create_by, create_time) +VALUES + (5001, '测试患者甲', 1, '1990-01-15 00:00:00+08', '13800138001', '450102199001011234', '广西南宁市青秀区民族大道100号', 1, 1, '0', 'admin', NOW()), + (5002, '测试患者乙', 2, '1985-05-20 00:00:00+08', '13800138002', '450102198505052345', '广西南宁市兴宁区朝阳路200号', 1, 1, '0', 'admin', NOW()), + (5003, '测试患者丙', 1, '2000-10-08 00:00:00+08', '13800138003', '450102200010103456', '广西南宁市西乡塘区大学路300号', 1, 1, '0', 'admin', NOW()), + (5004, '测试患者丁', 2, '1975-12-25 00:00:00+08', '13800138004', '450102197512124567', '广西南宁市良庆区银海大道400号', 1, 1, '0', 'admin', NOW()), + (5005, '测试患者戊', 1, '1965-03-10 00:00:00+08', '13800138005', '450102196503101234', '广西南宁市邕宁区蒲庙镇500号', 1, 1, '0', 'admin', NOW()), + (5006, '测试患者己', 2, '2015-08-18 00:00:00+08', '13800138006', '450102201508186789', '广西南宁市江南区星光大道600号', 1, 1, '0', 'admin', NOW()), + (5007, '急诊患者庚', 1, '1988-07-07 00:00:00+08', '13800138007', '450102198807071111', '广西南宁市青秀区东葛路700号', 1, 1, '0', 'admin', NOW()), + (5008, '急诊患者辛', 2, '1992-11-11 00:00:00+08', '13800138008', '450102199211112222', '广西南宁市青秀区凤岭北路800号', 1, 1, '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 三、就诊记录 +-- ============================ + +INSERT INTO adm_encounter (id, patient_id, status_enum, class_enum, type_enum, start_time, organization_id, tenant_id, delete_flag, create_by, create_time) +VALUES + (6001, 5001, 2, 1, 1, '2026-06-07 09:00:00+08', 1, 1, '0', 'admin', NOW()), + (6002, 5002, 2, 1, 1, '2026-06-07 09:30:00+08', 1, 1, '0', 'admin', NOW()), + (6003, 5003, 2, 1, 1, '2026-06-07 10:00:00+08', 1, 1, '0', 'admin', NOW()), + (6004, 5004, 2, 1, 1, '2026-06-07 10:30:00+08', 1, 1, '0', 'admin', NOW()), + (6005, 5005, 2, 1, 1, '2026-06-07 11:00:00+08', 1, 1, '0', 'admin', NOW()), + (6006, 5001, 2, 2, 1, '2026-06-01 14:00:00+08', 1, 1, '0', 'admin', NOW()), + (6007, 5002, 2, 2, 1, '2026-06-02 08:00:00+08', 1, 1, '0', 'admin', NOW()), + (6008, 5004, 2, 2, 1, '2026-06-03 10:00:00+08', 1, 1, '0', 'admin', NOW()), + (6009, 5005, 4, 2, 1, '2026-06-04 09:00:00+08', 1, 1, '0', 'admin', NOW()), + (6010, 5006, 2, 1, 1, '2026-06-07 14:00:00+08', 1, 1, '0', 'admin', NOW()), + (6011, 5007, 2, 1, 1, '2026-06-07 02:30:00+08', 1, 1, '0', 'admin', NOW()), + (6012, 5008, 2, 1, 1, '2026-06-07 03:15:00+08', 1, 1, '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 四、检查检验数据 +-- ============================ + +INSERT INTO check_apply (id, apply_no, encounter_id, patient_id, patient_name, id_card, fee_type, apply_date, apply_dept_id, apply_doctor_id, diagnosis_desc, check_purpose, status, total_amount, create_time) +VALUES + (8001, 'CK20260607001', 6001, 5001, '测试患者甲', '450102199001011234', '1', '2026-06-07 09:15:00+08', 1010, 2001, '咳嗽咳痰3天', '排除肺炎', 1, 280.00, NOW()), + (8002, 'CK20260607002', 6002, 5002, '测试患者乙', '450102198505052345', '1', '2026-06-07 09:45:00+08', 1010, 2002, '头痛头晕1周', '排除颅内病变', 1, 560.00, NOW()), + (8003, 'CK20260607003', 6011, 5007, '急诊患者庚', '450102198807071111', '1', '2026-06-07 02:45:00+08', 1010, 2006, '外伤后腹痛2小时', '排除脏器损伤', 1, 420.00, NOW()) +ON CONFLICT (id) DO NOTHING; + +INSERT INTO check_apply_detail (id, apply_id, check_item_name, check_part, check_method, create_time) +VALUES + (9001, 8001, '胸部CT平扫', '胸部', 'CT', NOW()), + (9002, 8001, '血常规', '静脉血', '检验', NOW()), + (9003, 8002, '头颅MRI', '头部', 'MRI', NOW()), + (9004, 8002, '经颅多普勒', '头部', '超声', NOW()), + (9005, 8003, '腹部CT增强', '腹部', 'CT', NOW()), + (9006, 8003, '全血细胞计数', '静脉血', '检验', NOW()) +ON CONFLICT (id) DO NOTHING; + +INSERT INTO lab_apply (id, apply_no, patient_id, patient_name, apply_dept_code, apply_doc_code, apply_doc_name, apply_time, apply_status, delete_flag, create_by, create_time) +VALUES + (10001, 'LAB20260607001', 5001, '测试患者甲', '1009', '2009', '吴十一医生', '2026-06-07 09:20:00+08', '1', '0', 'admin', NOW()), + (10002, 'LAB20260607002', 5002, '测试患者乙', '1009', '2009', '吴十一医生', '2026-06-07 09:50:00+08', '1', '0', 'admin', NOW()), + (10003, 'LAB20260607003', 5006, '测试患者己', '1009', '2009', '吴十一医生', '2026-06-07 14:10:00+08', '1', '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 五、影像数据 +-- ============================ + +INSERT INTO radiology_image_report (id, apply_no, patient_id, patient_name, report_status, create_time) +VALUES + (11001, 'CK20260607001', 5001, '测试患者甲', '1', NOW()), + (11002, 'CK20260607002', 5002, '测试患者乙', '1', NOW()), + (11003, 'CK20260607003', 5007, '急诊患者庚', '1', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 六、手术数据 +-- ============================ + +INSERT INTO cli_surgery (id, patient_id, encounter_id, delete_flag, create_by, create_time) +VALUES + (12001, 5001, 6006, '0', 'admin', NOW()), + (12002, 5004, 6008, '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 七、麻醉数据 +-- ============================ + +INSERT INTO anes_record (id, patient_id, encounter_id, delete_flag, create_by, create_time) +VALUES + (13001, 5001, 6006, '0', 'admin', NOW()), + (13002, 5004, 6008, '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 八、护理数据 +-- ============================ + +INSERT INTO nursing_assessment (id, patient_id, encounter_id, assessment_type, assessment_score, risk_level, delete_flag, create_by, create_time) +VALUES + (14001, 5001, 6006, 'braden', 12, 'high', '0', 'admin', NOW()), + (14002, 5002, 6007, 'morse', 45, 'high', '0', 'admin', NOW()), + (14003, 5004, 6008, 'nrs2002', 4, 'at_risk', '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +INSERT INTO nursing_vital_signs_chart (id, patient_id, encounter_id, temperature, pulse, respiration, blood_pressure_systolic, blood_pressure_diastolic, oxygen_saturation, delete_flag, create_by, create_time) +VALUES + (15001, 5001, 6006, 37.2, 78, 18, 125, 82, 98.5, '0', 'admin', NOW()), + (15002, 5002, 6007, 36.8, 72, 16, 130, 85, 99.0, '0', 'admin', NOW()), + (15003, 5004, 6008, 37.5, 85, 20, 140, 90, 97.5, '0', 'admin', NOW()), + (15004, 5005, 6009, 38.2, 92, 22, 150, 95, 96.0, '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 九、院感数据 +-- ============================ + +INSERT INTO hir_infection_case (id, patient_id, encounter_id, infection_type, infection_site, pathogen, diagnosis_date, reporter_id, reporter_name, report_time, status, create_time, tenant_id, delete_flag, create_by) +VALUES + (16001, 5001, 6006, '医院获得性肺炎', '肺部', '铜绿假单胞菌', '2026-06-03', 2001, '张三医生', '2026-06-03 10:00:00+08', 1, NOW(), 1, '0', 'admin'), + (16002, 5002, 6007, '导管相关血流感染', '血流', '金黄色葡萄球菌', '2026-06-05', 2002, '李四医生', '2026-06-05 14:00:00+08', 1, NOW(), 1, '0', 'admin') +ON CONFLICT (id) DO NOTHING; + +INSERT INTO hir_hand_hygiene (id, department_id, department_name, monitor_date, observe_count, comply_count, comply_rate, observer_name, remarks, tenant_id, is_deleted, create_by, create_time) +VALUES + (17001, 1005, 'ICU', '2026-06-07', 120, 114, 95.0, '院感科', '手卫生依从性检查', 1, '0', 'admin', NOW()), + (17002, 1001, '门诊内科', '2026-06-07', 80, 72, 90.0, '院感科', '手卫生依从性检查', 1, '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十、质控数据 +-- ============================ + +INSERT INTO emr_quality_score (id, encounter_id, patient_id, emr_type, score, max_score, grade, checker_id, checker_name, check_type, check_time, del_flag, create_time, tenant_id) +VALUES + (18001, 6006, 5001, '入院记录', 92.5, 100, '优秀', 2001, '张三医生', '运行质控', '2026-06-02 10:00:00+08', '0', NOW(), 1), + (18002, 6007, 5002, '入院记录', 88.0, 100, '良好', 2002, '李四医生', '终末质控', '2026-06-06 14:00:00+08', '0', NOW(), 1), + (18003, 6008, 5004, '入院记录', 95.0, 100, '优秀', 2006, '陈八医生', '运行质控', '2026-06-04 09:00:00+08', '0', NOW(), 1) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十一、中医数据 +-- ============================ + +INSERT INTO tcm_constitution_assessment (id, encounter_id, patient_id, constitution_type, score, recommendation, assessor_id, assessment_time, tenant_id, delete_flag, create_by, create_time) +VALUES + (19001, 6006, 5001, '气虚质', 65, '建议加强锻炼,饮食调理', 2005, '2026-06-02 10:00:00+08', 1, '0', 'admin', NOW()), + (19002, 6007, 5002, '阳虚质', 70, '建议保暖,避免生冷食物', 2005, '2026-06-03 10:00:00+08', 1, '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +INSERT INTO tcm_prescription (id, prescription_name, prescription_type, herbs, dosage, usage, indication, source, enabled, tenant_id, delete_flag, create_by, create_time) +VALUES + (20001, '四君子汤', '补益剂', '人参、白术、茯苓、甘草', '水煎服', '日一剂,分两次温服', '脾胃气虚', '伤寒论', 1, 1, '0', 'admin', NOW()), + (20002, '六味地黄丸', '补益剂', '熟地黄、山药、泽泻、牡丹皮、茯苓、山茱萸', '口服', '一次8丸,一日3次', '肾阴虚', '小儿药证直诀', 1, 1, '0', 'admin', NOW()), + (20003, '小柴胡汤', '和解剂', '柴胡、黄芩、人参、半夏、甘草、生姜、大枣', '水煎服', '日一剂,分两次温服', '少阳证', '伤寒论', 1, 1, '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十二、会诊数据 +-- ============================ + +INSERT INTO consultation_record (id, consultation_request_id, participant_doctor_id, participant_doctor_name, participant_department_id, participant_department_name, opinion, suggestion, record_date, creator_id, creator_name, create_time, valid_flag, tenant_id) +VALUES + (21001, 'CONS20260607001', 2005, '刘七医生', 1005, 'ICU', '患者肺部感染较重,建议加强抗感染治疗', '建议升级抗生素', '2026-06-03', 2001, '张三医生', NOW(), 1, 1), + (21002, 'CONS20260607002', 2002, '李四医生', 1002, '门诊外科', '患者心脏功能尚可,可以耐受手术', '建议术前心功能评估', '2026-06-04', 2004, '赵六医生', NOW(), 1, 1) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十三、临床路径数据 +-- ============================ + +INSERT INTO clinical_pathway (id, pathway_name, disease_code, disease_name, department_name, avg_days, avg_cost, version, status, tenant_id, is_deleted, create_time, delete_flag, create_by) +VALUES + (22001, '社区获得性肺炎', 'J18.9', '社区获得性肺炎', '呼吸内科', 10, 8000.00, '1.0', '1', 1, '0', NOW(), '0', 'admin'), + (22002, '急性阑尾炎', 'K35.8', '急性阑尾炎', '普外科', 7, 12000.00, '1.0', '1', 1, '0', NOW(), '0', 'admin'), + (22003, '2型糖尿病', 'E11.9', '2型糖尿病', '内分泌科', 14, 6000.00, '1.0', '1', 1, '0', NOW(), '0', 'admin') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十四、危急值数据 +-- ============================ + +INSERT INTO critical_value (id, encounter_id, patient_id, patient_name, item_code, item_name, result_value, reference_range, unit, lab_department, report_time, status, create_time, tenant_id, delete_flag, create_by) +VALUES + (23001, 6006, 5001, '测试患者甲', 'K', '血钾', '6.8', '3.5-5.5', 'mmol/L', '检验科', '2026-06-03 15:30:00+08', 1, NOW(), 1, '0', 'admin'), + (23002, 6007, 5002, '测试患者乙', 'HGB', '血红蛋白', '52', '110-160', 'g/L', '检验科', '2026-06-05 08:00:00+08', 1, NOW(), 1, '0', 'admin') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十五、电子病历数据 +-- ============================ + +INSERT INTO doc_emr (id, patient_id, encounter_id, emr_enum, record_id, tenant_id, delete_flag, create_by, create_time, class_enum) +VALUES + (24001, 5001, 6006, 1, 1001, 1, '0', 'admin', NOW(), 2), + (24002, 5002, 6007, 1, 1002, 1, '0', 'admin', NOW(), 2), + (24003, 5004, 6008, 1, 1003, 1, '0', 'admin', NOW(), 2) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十六、药品追溯数据 +-- ============================ + +INSERT INTO drug_trace_code (id, drug_code, drug_name, generic_name, specification, manufacturer, batch_no, trace_code, production_date, expiry_date, approval_number, dosage_form, unit, barcode, qr_code, status, delete_flag, create_by, create_time, tenant_id) +VALUES + (28001, 'DRG001', '阿莫西林胶囊', '阿莫西林', '0.5g*24片', '华北制药', 'B20260101', 'TR20260101001', '2026-01-01', '2028-01-01', '国药准字H13023964', '胶囊剂', '盒', '6901234567890', 'QR001', 1, '0', 'admin', NOW(), 1), + (28002, 'DRG002', '布洛芬缓释胶囊', '布洛芬', '0.3g*20粒', '中美史克', 'B20260201', 'TR20260201001', '2026-02-01', '2028-02-01', '国药准字H10900089', '胶囊剂', '盒', '6901234567891', 'QR002', 1, '0', 'admin', NOW(), 1) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十七、处方点评数据 +-- ============================ + +INSERT INTO review_plan (id, plan_name, review_type, dept_name, target_count, sample_count, reviewed_count, start_date, end_date, status, delete_flag, create_by, create_time, tenant_id) +VALUES + (29001, '2026年6月处方点评', '月度', '全部科室', 200, 50, 30, '2026-06-01', '2026-06-30', 1, '0', 'admin', NOW(), 1), + (29002, '2026年第二季度处方点评', '季度', '全部科室', 600, 100, 80, '2026-04-01', '2026-06-30', 1, '0', 'admin', NOW(), 1) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十八、DRG分析数据 +-- ============================ + +INSERT INTO drg_analysis_stats (id, stat_month, department_name, drg_code, case_count, avg_cost, avg_los, avg_weight, cost_efficiency, time_efficiency, tenant_id, create_time) +VALUES + (30001, '2026-06', '呼吸内科', 'ER1', 15, 12000.00, 10, 1.2, 1.05, 0.95, 1, NOW()), + (30002, '2026-06', '普外科', 'FR1', 20, 15000.00, 7, 0.8, 1.10, 0.90, 1, NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 十九、随访数据 +-- ============================ + +INSERT INTO followup_plan (id, patient_id, patient_name, encounter_id, disease_code, disease_name, followup_type, frequency, total_times, completed_times, responsible_doctor, responsible_nurse, start_date, end_date, status, tenant_id, is_deleted, create_time, delete_flag, create_by) +VALUES + (31001, 5001, '测试患者甲', 6006, 'J18.9', '重症肺炎', '电话随访', '每周1次', 4, 1, '刘七医生', '护士B', '2026-06-07', '2026-07-07', 1, 1, '0', NOW(), '0', 'admin'), + (31002, 5002, '测试患者乙', 6007, 'I10', '高血压3级', '门诊复查', '每月1次', 3, 0, '李四医生', '护士A', '2026-06-07', '2026-09-07', 1, 1, '0', NOW(), '0', 'admin') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十、知情同意数据 +-- ============================ + +INSERT INTO sys_informed_consent (id, encounter_id, patient_id, patient_name, consent_type, diagnosis, procedure_name, procedure_purpose, procedure_method, expected_outcome, risks_and_complications, doctor_user_id, doctor_name, doctor_sign_time, status, version, tenant_id, is_deleted, create_by, create_time, delete_flag) +VALUES + (32001, 6006, 5001, '测试患者甲', '手术知情同意书', '重症肺炎', '胸腔镜手术', '治疗肺部感染', '胸腔镜下肺叶切除', '感染控制', '出血、感染', 2005, '刘七医生', '2026-06-03 10:00:00+08', 1, 1, 1, '0', 'admin', NOW(), '0'), + (32002, 6007, 5002, '测试患者乙', '麻醉知情同意书', '高血压3级', '全身麻醉', '手术麻醉', '气管插管全麻', '麻醉成功', '过敏、呼吸抑制', 2005, '刘七医生', '2026-06-04 10:00:00+08', 1, 1, 1, '0', 'admin', NOW(), '0') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十一、消毒供应中心数据 +-- ============================ + +INSERT INTO cssd_sterilize_batch (id, batch_code, sterilizer_name, sterilizer_code, start_time, end_time, cycle_type, temperature, pressure, exposure_time, biological_result, chemical_result, physical_result, batch_status, release_by, release_time, tenant_id, is_deleted, create_time, delete_flag) +VALUES + (33001, 'CSSD20260607001', '脉动真空灭菌器', 'PVS001', '2026-06-07 08:00:00+08', '2026-06-07 09:30:00+08', 'B-D', 134, 0.21, 30, '合格', '合格', '合格', 1, '护士D', '2026-06-07 10:00:00+08', 1, '0', NOW(), '0'), + (33002, 'CSSD20260607002', '低温等离子灭菌器', 'LTP001', '2026-06-07 10:00:00+08', '2026-06-07 11:30:00+08', '标准', 55, NULL, 45, '合格', '合格', '合格', 1, '护士D', '2026-06-07 12:00:00+08', 1, '0', NOW(), '0') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十二、EMPI主索引数据 +-- ============================ + +INSERT INTO empi_person (id, global_id, patient_name, gender, birth_date, id_card_no, phone, address, status, source_system, delete_flag, create_by, create_time, tenant_id, merge_status) +VALUES + (34001, 'EMPI001', '测试患者甲', 1, '1990-01-15', '450102199001011234', '13800138001', '广西南宁市青秀区民族大道100号', 1, 'HIS', '0', 'admin', NOW(), 1, 0), + (34002, 'EMPI002', '测试患者乙', 2, '1985-05-20', '450102198505052345', '13800138002', '广西南宁市兴宁区朝阳路200号', 1, 'HIS', '0', 'admin', NOW(), 1, 0) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十三、ESB数据集成数据 +-- ============================ + +INSERT INTO sys_esb_service_registry (id, service_name, service_version, service_endpoint, service_description, service_status, protocol, timeout_ms, create_by, create_time, tenant_id, delete_flag) +VALUES + (35001, '患者信息查询', '1.0', '/fhir/Patient', 'FHIR患者信息查询服务', 1, 'FHIR', 3000, 'admin', NOW(), 1, '0'), + (35002, '检验结果查询', '1.0', '/hl7/ORU', 'HL7检验结果查询服务', 1, 'HL7', 5000, 'admin', NOW(), 1, '0'), + (35003, '医嘱查询', '1.0', '/fhir/Order', 'FHIR医嘱查询服务', 1, 'FHIR', 3000, 'admin', NOW(), 1, '0') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十四、急诊绿色通道数据 +-- ============================ + +INSERT INTO emergency_green_channel (id, patient_id, disease_type, door_to_treatment_time, target_time, is_achieved, doctor, activate_time, tenant_id, is_deleted, create_time, delete_flag, create_by) +VALUES + (36001, 5007, '胸痛', '2026-06-07 02:45:00+08', '2026-06-07 03:15:00+08', 1, '陈八医生', '2026-06-07 02:35:00+08', 1, '0', NOW(), '0', 'admin'), + (36002, 5008, '卒中', '2026-06-07 03:30:00+08', '2026-06-07 04:00:00+08', 1, '陈八医生', '2026-06-07 03:20:00+08', 1, '0', NOW(), '0', 'admin') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十五、病案首页数据 +-- ============================ + +INSERT INTO mr_homepage (id, encounter_id, patient_id, admission_date, discharge_date, los_days, primary_diagnosis_code, primary_diagnosis_name, primary_procedure_code, primary_procedure_name, drg_group, drg_weight, total_cost, self_pay_cost, insurance_cost, quality_status, quality_score, del_flag, create_by, create_time, tenant_id) +VALUES + (37001, 6009, 5005, '2026-06-04', '2026-06-07', 3, 'J18.9', '重症肺炎', '0B113J0', '胸腔镜下肺叶切除术', 'ER1', 1.2, 25000.00, 5000.00, 20000.00, '1', 92.5, '0', 'admin', NOW(), 1), + (37002, 6008, 5004, '2026-06-03', '2026-06-07', 4, 'K35.8', '急性阑尾炎', '0DTJ0ZZ', '腹腔镜下阑尾切除术', 'FR1', 0.8, 18000.00, 4000.00, 14000.00, '1', 95.0, '0', 'admin', NOW(), 1) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十六、医嘱主表数据 +-- ============================ + +INSERT INTO order_main (id, order_no, patient_id, patient_name, department_id, department_name, doctor_id, doctor_name, reg_type, fee, appointment_date, appointment_time, status, pay_status, tenant_id, delete_flag, create_by, create_time) +VALUES + (38001, 'ORD20260607001', 5001, '测试患者甲', 1001, '门诊内科', 2001, '张三医生', 1, 50.00, '2026-06-07', '09:00', 1, 1, 1, '0', 'admin', NOW()), + (38002, 'ORD20260607002', 5002, '测试患者乙', 1002, '门诊外科', 2002, '李四医生', 1, 80.00, '2026-06-07', '09:30', 1, 1, 1, '0', 'admin', NOW()), + (38003, 'ORD20260607003', 5004, '测试患者丁', 1004, '妇产科', 2004, '赵六医生', 2, 100.00, '2026-06-07', '10:30', 1, 1, 1, '0', 'admin', NOW()) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十七、护理质量指标数据 +-- ============================ + +INSERT INTO nursing_quality_indicator (id, indicator_code, indicator_name, indicator_category, target_value, actual_value, unit, stat_period, stat_date, department_id, department_name, status, tenant_id, is_deleted, create_by, create_time, delete_flag) +VALUES + (39001, 'NQ001', '压疮发生率', '护理质量', '0.5', '0.3', '%', '2026-06', '2026-06-07', 1005, 'ICU', 1, 1, '0', 'admin', NOW(), '0'), + (39002, 'NQ002', '跌倒发生率', '护理质量', '1.0', '0.8', '%', '2026-06', '2026-06-07', 1005, 'ICU', 1, 1, '0', 'admin', NOW(), '0'), + (39003, 'NQ003', '导管滑脱率', '护理质量', '0.5', '0.2', '%', '2026-06', '2026-06-07', 1005, 'ICU', 1, 1, '0', 'admin', NOW(), '0'), + (39004, 'NQ004', '给药差错率', '护理质量', '0.1', '0.05', '%', '2026-06', '2026-06-07', 1008, '药房', 1, 1, '0', 'admin', NOW(), '0') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十八、抗菌药物使用数据 +-- ============================ + +INSERT INTO hir_antibiotic_usage (id, encounter_id, patient_id, drug_code, drug_name, ddd_value, usage_days, usage_type, start_date, end_date, indication, doctor_id, create_time, tenant_id, delete_flag, create_by) +VALUES + (40001, 6006, 5001, 'DRG005', '头孢曲松注射液', 2.0, 7, '治疗性', '2026-06-01', '2026-06-07', '肺部感染', 2005, NOW(), 1, '0', 'admin'), + (40002, 6007, 5002, 'DRG006', '万古霉素', 1.5, 10, '治疗性', '2026-06-02', '2026-06-11', '血流感染', 2005, NOW(), 1, '0', 'admin') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 二十九、DRG分组数据 +-- ============================ + +INSERT INTO mr_drg_grouping (id, encounter_id, patient_id, patient_name, discharge_date, primary_diagnosis, primary_diagnosis_code, primary_procedure, primary_procedure_code, drg_code, drg_name, drg_weight, total_cost, insurance_payment, patient_payment, los_days, grouping_result, is_valid, tenant_id, is_deleted, create_time, delete_flag) +VALUES + (41001, 6009, 5005, '测试患者戊', '2026-06-07', '重症肺炎', 'J18.9', '胸腔镜下肺叶切除术', '0B113J0', 'ER1', '呼吸系统感染', 1.2, 25000.00, 20000.00, 5000.00, 3, '正常', 1, 1, '0', NOW(), '0'), + (41002, 6008, 5004, '测试患者丁', '2026-06-07', '急性阑尾炎', 'K35.8', '腹腔镜下阑尾切除术', '0DTJ0ZZ', 'FR1', '急性阑尾炎', 0.8, 18000.00, 14000.00, 4000.00, 4, '正常', 1, 1, '0', NOW(), '0') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 三十、满意度调查数据 +-- ============================ + +INSERT INTO satisfaction_survey (id, patient_id, patient_name, survey_type, department_name, doctor_name, overall_score, service_score, environment_score, suggestions, survey_date, tenant_id, create_time, create_by) +VALUES + (42001, 5005, '测试患者戊', '出院患者', '呼吸内科', '刘七医生', 92, 95, 90, '服务态度很好', '2026-06-07', 1, NOW(), 'admin'), + (42002, 5001, '测试患者甲', '住院患者', 'ICU', '刘七医生', 88, 90, 85, '希望能改善病房环境', '2026-06-07', 1, NOW(), 'admin') +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 三十一、交接班数据 +-- ============================ + +INSERT INTO nursing_handoff (id, encounter_id, patient_id, patient_name, ward, bed_no, shift, handoff_nurse_id, handoff_nurse_name, oncoming_nurse_id, oncoming_nurse_name, patient_condition, key_points, handoff_time, del_flag, create_time, tenant_id) +VALUES + (43001, 6006, 5001, '测试患者甲', 'ICU', 'ICU-01', '白班转夜班', 3001, '护士A', 3002, '护士B', '患者生命体征平稳', '继续观察体温变化', '2026-06-07 08:00:00+08', '0', NOW(), 1) +ON CONFLICT (id) DO NOTHING; + +-- ============================ +-- 完成! +-- ============================ diff --git a/MD/test/02_TEST_FLOWS.md b/MD/test/02_TEST_FLOWS.md new file mode 100644 index 000000000..ab91a44da --- /dev/null +++ b/MD/test/02_TEST_FLOWS.md @@ -0,0 +1,990 @@ +# HealthLink-HIS 三甲医院全流程测试文档 + +## 文档信息 +- **版本**: v2.0 (JDK 25 + Spring Boot 4.0.6 + Vue 3 + Element Plus) +- **日期**: 2026-06-07 +- **测试环境**: localhost:18082 (后端) / localhost:81 (前端) +- **数据库**: PostgreSQL 192.168.110.252:15432 +- **API基础路径**: /healthlink-his + +--- + +## 目录 +1. [系统登录认证流程](#1-系统登录认证流程) +2. [门诊就诊全流程](#2-门诊就诊全流程) +3. [住院入院全流程](#3-住院入院全流程) +4. [药房管理全流程](#4-药房管理全流程) +5. [检验检查全流程](#5-检验检查全流程) +6. [影像检查全流程](#6-影像检查全流程) +7. [手术管理全流程](#7-手术管理全流程) +8. [麻醉管理全流程](#8-麻醉管理全流程) +9. [护理管理全流程](#9-护理管理全流程) +10. [院感管理全流程](#10-院感管理全流程) +11. [质量管理全流程](#11-质量管理全流程) +12. [中医管理全流程](#12-中医管理全流程) +13. [会诊管理全流程](#13-会诊管理全流程) +14. [临床路径全流程](#14-临床路径全流程) +15. [危急值管理全流程](#15-危急值管理全流程) +16. [处方点评全流程](#16-处方点评全流程) +17. [急诊管理全流程](#17-急诊管理全流程) +18. [医保管理全流程](#18-医保管理全流程) +19. [DRG分析全流程](#19-drg分析全流程) +20. [抗菌药物管理全流程](#20-抗菌药物管理全流程) +21. [药品追溯管理全流程](#21-药品追溯管理全流程) +22. [EMPI主索引全流程](#22-empi主索引全流程) +23. [ESB数据集成全流程](#23-esb数据集成全流程) +24. [电子签名管理全流程](#24-电子签名管理全流程) +25. [病案管理全流程](#25-病案管理全流程) +26. [随访管理全流程](#26-随访管理全流程) +27. [知情同意管理全流程](#27-知情同意管理全流程) +28. [消毒供应中心全流程](#28-消毒供应中心全流程) +29. [合理用药全流程](#29-合理用药全流程) +30. [收费管理全流程](#30-收费管理全流程) + +--- + +## 1. 系统登录认证流程 + +### 流程图 +``` +用户输入账号密码 → 后端验证 → 返回Token → 前端存储Token → 路由守卫验证 + ↓ ↓ ↓ ↓ ↓ +[登录页] [SysLoginController] [TokenService] [localStorage] [permission.js] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 获取验证码 | `/captchaImage` | GET | - | 返回验证码图片和UUID | +| 2. 用户登录 | `/login` | POST | `{"username":"admin","password":"admin123","tenantId":"1"}` | 返回token+权限信息 | +| 3. 获取用户信息 | `/getInfo` | GET | Header: Authorization | 返回用户角色+权限列表 | +| 4. 获取路由 | `/getRouters` | GET | Header: Authorization | 返回动态路由菜单 | +| 5. 退出登录 | `/logout` | POST | Header: Authorization | 清除Token | + +### 测试数据 +```json +// 登录请求 +{ + "username": "admin", + "password": "admin123", + "tenantId": "1" +} + +// 预期响应 +{ + "msg": "操作成功", + "code": 200, + "token": "eyJhbGciOiJIUzI1NiJ9..." +} +``` + +--- + +## 2. 门诊就诊全流程 + +### 流程图 +``` +患者挂号 → 分诊排队 → 医生接诊 → 开具检查 → 开具处方 → 药房发药 → 收费结算 → 退号处理 + ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[挂号管理] [分诊排队] [门诊医生站] [检查申请] [处方管理] [药房管理] [收费管理] [退号管理] + ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[OutpatientReg] [TriageQueue] [DoctorStation] [CheckApply] [AdviceManage] [WesternMedicine] [OutpatientCharge] [OutpatientRefund] +``` + +### 2.1 挂号管理 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 挂号初始化 | `/charge-manage/register/init` | GET | - | 返回优先级选项等 | +| 2. 查询患者 | `/charge-manage/register/patient` | GET | `?searchKey=张` | 返回患者列表 | +| 3. 创建挂号 | `/charge-manage/register/add` | POST | 患者信息+科室+医生 | 返回挂号单号 | +| 4. 查询挂号列表 | `/charge-manage/register/page` | GET | `?pageNum=1&pageSize=10` | 分页挂号记录 | +| 5. 退号处理 | `/charge-manage/register/cancel` | POST | `{"registerId":"xxx"}` | 退号成功 | + +### 2.2 门诊医生站 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 患者列表 | `/doctor-station/main/patient-list` | GET | `?status=waiting` | 待诊患者列表 | +| 2. 接诊患者 | `/doctor-station/main/accept` | POST | `{"patientId":"xxx","encounterId":"xxx"}` | 接诊成功 | +| 3. 开具医嘱 | `/doctor-station/advice/add` | POST | 医嘱信息 | 医嘱创建成功 | +| 4. 开具检查 | `/doctor-station/inspection/add` | POST | 检查申请信息 | 检查申请创建 | +| 5. 开具处方 | `/doctor-station/advice/prescription` | POST | 处方信息 | 处方创建成功 | +| 6. 完成就诊 | `/doctor-station/main/complete` | POST | `{"encounterId":"xxx"}` | 就诊完成 | + +### 2.3 收费管理 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 收费初始化 | `/charge-manage/charge/init` | GET | - | 返回收费选项 | +| 2. 查询待收费 | `/charge-manage/charge/pending` | GET | `?patientId=xxx` | 待收费项目 | +| 3. 确认收费 | `/charge-manage/charge/settle` | POST | 收费明细 | 收费成功 | +| 4. 退费处理 | `/charge-manage/refund/add` | POST | 退费信息 | 退费成功 | +| 5. 收费查询 | `/charge-manage/charge/page` | GET | `?date=2026-06-07` | 收费记录 | + +### 测试数据 +```json +// 挂号请求 +{ + "patientId": 5001, + "deptId": 1001, + "doctorId": 2001, + "regType": 1, + "priorityLevel": 1 +} + +// 医嘱请求 +{ + "patientId": 5001, + "encounterId": 6001, + "adviceType": 1, + "medicineItems": [ + {"medicationId": 2037002083193978881, "dose": 2, "doseUnit": "片", "frequency": "TID", "usage": "口服"} + ] +} + +// 收费请求 +{ + "encounterId": 6001, + "patientId": 5001, + "totalAmount": 280.00, + "payMethod": 1 +} +``` + +--- + +## 3. 住院入院全流程 + +### 流程图 +``` +入院登记 → 护理评估 → 医嘱开具 → 执行医嘱 → 护理记录 → 体征监测 → 出院评估 → 出院结算 + ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[入院管理] [护理评估] [医嘱管理] [护理执行] [护理记录] [体征监测] [出院管理] [住院结算] + ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[InHospitalReg] [NursingAssess] [OrderMain] [NurseExec] [NursingRecord] [VitalSigns] [Discharge] [InpatientCharge] +``` + +### 3.1 入院管理 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 入院登记 | `/inhospitalmanage/register/add` | POST | 入院信息 | 入院登记成功 | +| 2. 分配床位 | `/patient-home-manage/bed-transfer` | PUT | 床位信息 | 床位分配成功 | +| 3. 查询入院列表 | `/inhospitalmanage/register/page` | GET | 分页参数 | 入院记录列表 | +| 4. 出院登记 | `/patient-home-manage/discharge-from-hospital` | PUT | 出院信息 | 出院成功 | + +### 3.2 护理评估 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. Braden评估 | `/nursing-assessment-enhanced/braden/assess` | POST | 评估数据 | 评估完成 | +| 2. Morse跌倒评估 | `/nursing-assessment-enhanced/morse/assess` | POST | 评估数据 | 评估完成 | +| 3. NRS2002营养评估 | `/nursing-assessment-enhanced/nrs2002/assess` | POST | 评估数据 | 评估完成 | +| 4. 疼痛评估 | `/nursing-assessment-enhanced/pain/assess` | POST | 评估数据 | 评估完成 | +| 5. 管道评估 | `/nursing-assessment-enhanced/pipe/assess` | POST | 评估数据 | 评估完成 | +| 6. 评估趋势 | `/assessment-trend/page` | GET | 分页参数 | 趋势数据 | + +### 3.3 医嘱管理 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 开具医嘱 | `/doctor-station/advice/add` | POST | 医嘱信息 | 医嘱创建 | +| 2. 医嘱审核 | `/doctor-station/advice/audit` | POST | 审核信息 | 审核完成 | +| 3. 医嘱执行 | `/nurse-station/advice-process/execute` | POST | 执行信息 | 执行完成 | +| 4. 医嘱停止 | `/doctor-station/advice/stop` | POST | 停止信息 | 停止成功 | +| 5. 医嘱查询 | `/doctor-station/advice/page` | GET | 分页参数 | 医嘱列表 | + +### 3.4 护理记录 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 护理记录 | `/nursing-record/save-nursing` | POST | 护理记录 | 保存成功 | +| 2. 体征记录 | `/vital-signs/record-saving` | PUT | 体征数据 | 保存成功 | +| 3. 体征查询 | `/vital-signs/record-search` | GET | 查询参数 | 体征记录 | +| 4. TPR表 | `/nursing-assessment/tpr/page` | GET | 分页参数 | TPR数据 | +| 5. 交接班 | `/nursing-handoff/add` | POST | 交接信息 | 交接完成 | + +### 测试数据 +```json +// 入院登记 +{ + "patientId": 5001, + "deptId": 1005, + "bedNo": "ICU-01", + "admissionDate": "2026-06-07", + "diagnosis": "重症肺炎", + "admissionDoctor": "刘七医生" +} + +// Braden评估 +{ + "patientName": "测试患者甲", + "encounterId": 6006, + "itemScores": "{\"sensation\":2,\"moisture\":2,\"activity\":1,\"mobility\":2,\"nutrition\":3,\"friction\":2}", + "totalScore": 12, + "riskLevel": "high", + "detail": "压疮高危患者,需每2小时翻身" +} + +// Morse跌倒评估 +{ + "patientName": "测试患者乙", + "encounterId": 6007, + "itemScores": "{\"history\":15,\"diagnosis\":0,\"ambulation\":15,\"iv\":20,\"gait\":0,\"mental\":15}", + "totalScore": 65, + "riskLevel": "high", + "detail": "跌倒高危患者,需加强防护" +} + +// 体征记录 +{ + "patientId": 5001, + "encounterId": 6006, + "temperature": 37.2, + "pulse": 78, + "respiration": 18, + "bloodPressureSystolic": 125, + "bloodPressureDiastolic": 82, + "oxygenSaturation": 98.5 +} +``` + +--- + +## 4. 药房管理全流程 + +### 流程图 +``` +药品入库 → 库存管理 → 处方审核 → 药品发放 → 退药处理 → 药品盘点 → 库存预警 + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[药库管理] [库存管理] [处方点评] [发药管理] [退药管理] [库存盘点] [库存预警] + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[PharmacyWarehouse] [Inventory] [Review] [WesternMedicine] [ReturnMedicine] [Stocktaking] [PharmacyStockAlert] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 药品入库 | `/pharmacy-warehouse/stock-in/add` | POST | 入库信息 | 入库成功 | +| 2. 库存查询 | `/pharmacy-warehouse/stock-in/page` | GET | 分页参数 | 库存列表 | +| 3. 西药发药 | `/pharmacy-manage/western-medicine-dispense/add` | POST | 发药信息 | 发药成功 | +| 4. 退药处理 | `/pharmacy-manage/return-medicine/add` | POST | 退药信息 | 退药成功 | +| 5. 药品盘点 | `/pharmacy-warehouse/stocktaking/add` | POST | 盘点信息 | 盘点完成 | +| 6. 库存预警 | `/pharmacy-stock-alert/page` | GET | 分页参数 | 预警列表 | +| 7. 药品效期 | `/drugtrace/expiry/page` | GET | 分页参数 | 效期预警 | + +--- + +## 5. 检验检查全流程 + +### 流程图 +``` +医生开单 → 检验申请 → 标本采集 → 标本接收 → 结果录入 → 结果审核 → 报告发布 + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[门诊医生站] [检验申请] [标本采集] [标本接收] [结果录入] [结果审核] [报告发布] + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[DoctorStation] [LabApply] [SampleCollect] [LabReceive] [LabResult] [LabAudit] [LabReport] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 检验申请 | `/doctor-station/inspection/add` | POST | 申请信息 | 申请创建 | +| 2. 标本采集 | `/inspection/collection/page` | GET | 分页参数 | 采集列表 | +| 3. 标本确认 | `/inspection/collection/confirm` | POST | 标本信息 | 确认成功 | +| 4. 检验结果 | `/inspection/laboratory/page` | GET | 分页参数 | 结果列表 | +| 5. 结果审核 | `/inspection/laboratory/audit` | POST | 审核信息 | 审核完成 | +| 6. 参考范围 | `/lab-ref-range/page` | GET | 分页参数 | 参考范围 | +| 7. 检验历史 | `/inspection/history/page` | GET | 分页参数 | 历史记录 | + +--- + +## 6. 影像检查全流程 + +### 流程图 +``` +医生开单 → 影像申请 → 检查执行 → 影像采集 → 报告书写 → 报告审核 → 报告发布 → 影像对比 + ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[门诊医生站] [影像申请] [检查执行] [影像采集] [报告书写] [报告审核] [报告发布] [影像对比] + ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[DoctorStation] [ExamApply] [ExamExec] [RadiologyImage] [RadiologyReport] [ReportAudit] [ReportPublish] [RadiologyComparison] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 影像申请 | `/check/examApply/add` | POST | 申请信息 | 申请创建 | +| 2. 影像查询 | `/check/radiologyImage/page` | GET | 分页参数 | 影像列表 | +| 3. 影像报告 | `/check/radiologyImage/report` | POST | 报告信息 | 报告创建 | +| 4. 影像对比 | `/check/radiologyComparison/compare` | POST | 对比参数 | 对比结果 | +| 5. 3D重建 | `/reconstruction/3d/analyze` | POST | 影像数据 | 重建结果 | + +--- + +## 7. 手术管理全流程 + +### 流程图 +``` +手术申请 → 术前讨论 → 手术排程 → 手术执行 → 术前核查 → 手术记录 → 术后随访 + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[手术申请] [术前讨论] [手术排程] [手术执行] [术前核查] [手术记录] [术后随访] + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[ClinicalManage] [PreopDiscussion] [SurgicalSchedule] [SurgeryExec] [SurgerySafetyCheck] [SurgeryRecord] [AnesthesiaFollowup] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 手术申请 | `/clinical-manage/surgery/add` | POST | 手术信息 | 申请创建 | +| 2. 术前讨论 | `/preopmanage/discussion/add` | POST | 讨论记录 | 讨论完成 | +| 3. 手术排程 | `/clinical-manage/surgery-schedule/page` | GET | 分页参数 | 排程列表 | +| 4. 术前核查 | `/surgery-safety-check/check` | POST | 核查信息 | 核查完成 | +| 5. 手术记录 | `/clinical-manage/surgery/record` | POST | 手术记录 | 记录保存 | + +--- + +## 8. 麻醉管理全流程 + +### 流程图 +``` +麻醉评估 → 麻醉方案 → 麻醉执行 → 术中监测 → 苏醒评估 → 术后随访 → 麻醉质控 + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[麻醉评估] [麻醉方案] [麻醉执行] [术中监测] [苏醒评估] [术后随访] [麻醉质控] + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[AnesthesiaEnhanced] [AnesthesiaPlan] [AnesthesiaExec] [AnesthesiaMonitor] [AnesthesiaRecovery] [AnesthesiaFollowup] [AnesthesiaQuality] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 麻醉评估 | `/anesthesia-enhanced/assessment/add` | POST | 评估数据 | 评估完成 | +| 2. 麻醉记录 | `/api/v1/anesthesia/record/add` | POST | 记录数据 | 记录保存 | +| 3. 术中监测 | `/api/v1/anesthesia/vital-signs` | POST | 监测数据 | 监测记录 | +| 4. 麻醉质控 | `/anesthesia-quality-control/page` | GET | 分页参数 | 质控数据 | + +--- + +## 9. 护理管理全流程 + +### 流程图 +``` +护理评估 → 护理计划 → 护理执行 → 护理记录 → 体征监测 → 交接班 → 护理质量 + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[护理评估] [护理计划] [护理执行] [护理记录] [体征监测] [交接班] [护理质量] + ↓ ↓ ↓ ↓ ↓ ↓ ↓ +[NursingAssess] [CarePlan] [NurseExec] [NursingRecord] [VitalSigns] [Handoff] [NursingQuality] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 护理评估 | `/nursing-assessment-enhanced/page` | GET | 分页参数 | 评估列表 | +| 2. Braden评估 | `/nursing-assessment-enhanced/braden/assess` | POST | 评估数据 | 评估完成 | +| 3. 护理计划 | `/nursing/care-plan/add` | POST | 计划信息 | 计划创建 | +| 4. 护理执行 | `/nurse-station/advice-process/execute` | POST | 执行信息 | 执行完成 | +| 5. 护理记录 | `/nursing-record/save-nursing` | POST | 记录信息 | 记录保存 | +| 6. 交接班 | `/nursing-handoff/add` | POST | 交接信息 | 交接完成 | +| 7. 护理质量 | `/nursing-quality/page` | GET | 分页参数 | 质量数据 | + +--- + +## 10. 院感管理全流程 + +### 流程图 +``` +感染监测 → 感染预警 → 耐药监测 → 职业暴露 → 手卫生 → 环境监测 + ↓ ↓ ↓ ↓ ↓ ↓ +[院感监测] [院感预警] [耐药监测] [职业暴露] [手卫生] [环境监测] + ↓ ↓ ↓ ↓ ↓ ↓ +[InfectionTargeted] [InfectionWarning] [InfectionResistance] [InfectionExposure] [InfectionHandHygiene] [InfectionEnvironment] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 感染监测 | `/infection-enhanced/surveillance/page` | GET | 分页参数 | 监测数据 | +| 2. 感染预警 | `/infection-enhanced/warning/page` | GET | 分页参数 | 预警列表 | +| 3. 耐药监测 | `/infection-enhanced/resistance/page` | GET | 分页参数 | 耐药数据 | +| 4. 职业暴露 | `/infection-enhanced/exposure/page` | GET | 分页参数 | 暴露记录 | +| 5. 手卫生 | `/infection-enhanced/hand-hygiene/page` | GET | 分页参数 | 手卫生数据 | +| 6. 环境监测 | `/infection-enhanced/environment/page` | GET | 分页参数 | 环境数据 | + +--- + +## 11. 质量管理全流程 + +### 流程图 +``` +运行质控 → 终末质控 → 缺陷记录 → 质量评分 → 整改追踪 → 质量统计 + ↓ ↓ ↓ ↓ ↓ ↓ +[运行质控] [终末质控] [缺陷记录] [质量评分] [整改追踪] [质量统计] + ↓ ↓ ↓ ↓ ↓ ↓ +[QualityEnhanced] [EmrQuality] [EmrDefect] [QualityScore] [QualityTrack] [QualityStats] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 运行质控 | `/quality-enhanced/runtime/page` | GET | 分页参数 | 质控数据 | +| 2. 终末质控 | `/api/v1/emr-quality/page` | GET | 分页参数 | 质控数据 | +| 3. 缺陷记录 | `/quality-enhanced/defect/add` | POST | 缺陷信息 | 记录创建 | +| 4. 质量评分 | `/quality-enhanced/score/add` | POST | 评分信息 | 评分完成 | +| 5. 质量统计 | `/quality-enhanced/statistics/page` | GET | 分页参数 | 统计数据 | + +--- + +## 12. 中医管理全流程 + +### 流程图 +``` +体质辨识 → 辨证论治 → 方剂开具 → 中药处方 → 疗效评价 + ↓ ↓ ↓ ↓ ↓ +[体质辨识] [辨证论治] [方剂管理] [中药处方] [疗效评价] + ↓ ↓ ↓ ↓ ↓ +[TCMConstitution] [TCMDiagnosis] [TCMPrescription] [TCMOrder] [TCMEvaluation] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 体质辨识 | `/api/v1/tcm/constitution/add` | POST | 辨识数据 | 辨识完成 | +| 2. 体质列表 | `/api/v1/tcm/constitution/page` | GET | 分页参数 | 体质列表 | +| 3. 方剂列表 | `/api/v1/tcm/prescriptions` | GET | 分页参数 | 方剂列表 | +| 4. 新增方剂 | `/api/v1/tcm/prescription` | POST | 方剂信息 | 方剂创建 | +| 5. 统计查询 | `/api/v1/tcm/statistics` | GET | 分页参数 | 统计结果 | + +--- + +## 13. 会诊管理全流程 + +### 流程图 +``` +会诊申请 → 会诊邀请 → 会诊确认 → 会诊执行 → 会诊反馈 → 会诊超时 + ↓ ↓ ↓ ↓ ↓ ↓ +[会诊申请] [会诊邀请] [会诊确认] [会诊执行] [会诊反馈] [会诊超时] + ↓ ↓ ↓ ↓ ↓ ↓ +[Consultation] [ConsultInvite] [ConsultConfirm] [ConsultExecute] [ConsultFeedback] [ConsultTimeout] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 会诊申请 | `/consultation/add` | POST | 会诊信息 | 申请创建 | +| 2. 会诊确认 | `/consultation/confirm` | POST | 确认信息 | 确认完成 | +| 3. 会诊反馈 | `/cross-module/consult-feedback/add` | POST | 反馈信息 | 反馈完成 | +| 4. 会诊超时 | `/cross-module/consulttimeout/page` | GET | 分页参数 | 超时列表 | + +--- + +## 14. 临床路径全流程 + +### 流程图 +``` +路径定义 → 入径管理 → 路径执行 → 变异分析 → 效果评价 + ↓ ↓ ↓ ↓ ↓ +[路径定义] [入径管理] [路径执行] [变异分析] [效果评价] + ↓ ↓ ↓ ↓ ↓ +[ClinicalPathway] [PathwayEntry] [PathwayExec] [PathwayVariation] [PathwayEffect] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 路径列表 | `/clinical-pathway/page` | GET | 分页参数 | 路径列表 | +| 2. 创建路径 | `/clinical-pathway/add` | POST | 路径信息 | 路径创建 | +| 3. 入径 | `/clinical-pathway/enter` | POST | 入径信息 | 入径完成 | +| 4. 完成路径 | `/clinical-pathway/complete/{id}` | PUT | 完成信息 | 路径完成 | +| 5. 变异记录 | `/clinical-pathway/vary/{id}` | PUT | 变异信息 | 变异记录 | + +--- + +## 15. 危急值管理全流程 + +### 流程图 +``` +危急值产生 → 危急值通知 → 医生确认 → 处理措施 → 处理反馈 + ↓ ↓ ↓ ↓ ↓ +[危急值产生] [危急值通知] [医生确认] [处理措施] [处理反馈] + ↓ ↓ ↓ ↓ ↓ +[LabCritical] [CriticalNotify] [CriticalConfirm] [CriticalAction] [CriticalFeedback] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 危急值列表 | `/api/v1/critical-value/page` | GET | 分页参数 | 危急值列表 | +| 2. 危急值确认 | `/api/v1/critical-value/confirm` | POST | 确认信息 | 确认完成 | +| 3. 危急值处理 | `/api/v1/critical-value/handle` | POST | 处理信息 | 处理完成 | + +--- + +## 16. 处方点评全流程 + +### 流程图 +``` +点评计划 → 处方抽取 → 点评审核 → 问题反馈 → 整改追踪 → 统计分析 + ↓ ↓ ↓ ↓ ↓ ↓ +[点评计划] [处方抽取] [点评审核] [问题反馈] [整改追踪] [统计分析] + ↓ ↓ ↓ ↓ ↓ ↓ +[ReviewPlan] [ReviewExtract] [ReviewAudit] [ReviewFeedback] [ReviewTrack] [ReviewStats] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 点评计划 | `/api/v1/review/plans` | GET | 分页参数 | 计划列表 | +| 2. 创建计划 | `/api/v1/review/plan` | POST | 计划信息 | 计划创建 | +| 3. 点评记录 | `/api/v1/review/records` | GET | 分页参数 | 记录列表 | +| 4. 统计分析 | `/api/v1/review/statistics` | GET | 分页参数 | 统计数据 | + +--- + +## 17. 急诊管理全流程 + +### 流程图 +``` +急诊分诊 → 绿色通道 → 急诊抢救 → 观察处置 → 急诊留观 → 转科/出院 + ↓ ↓ ↓ ↓ ↓ ↓ +[急诊分诊] [绿色通道] [急诊抢救] [观察处置] [急诊留观] [转科/出院] + ↓ ↓ ↓ ↓ ↓ ↓ +[TriageQueue] [GreenChannel] [EmergencyRescue] [EmergencyObs] [EmergencyTriage] [Transfer] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 急诊分诊 | `/triage/queue/add` | POST | 分诊信息 | 分诊完成 | +| 2. 绿色通道 | `/emergency/green-channel/add` | POST | 通道信息 | 通道开启 | +| 3. 急诊抢救 | `/emergency/rescue/add` | POST | 抢救信息 | 抢救记录 | +| 4. 观察处置 | `/emergency/observation/add` | POST | 处置信息 | 处置完成 | + +--- + +## 18. 医保管理全流程 + +### 流程图 +``` +医保目录 → 门诊登记 → 门诊结算 → 住院登记 → 住院结算 → 日终结算 + ↓ ↓ ↓ ↓ ↓ ↓ +[医保目录] [门诊登记] [门诊结算] [住院登记] [住院结算] [日终结算] + ↓ ↓ ↓ ↓ ↓ ↓ +[YbCatalog] [YbReg] [YbSettle] [YbInpatientReg] [YbInpatientSettle] [YbDayEnd] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 医保目录 | `/ybmanage/catalog/page` | GET | 分页参数 | 目录列表 | +| 2. 门诊登记 | `/yb-request/reg` | POST | 登记信息 | 登记成功 | +| 3. 门诊结算 | `/yb-request/settle` | POST | 结算信息 | 结算成功 | +| 4. 住院登记 | `/yb-inpatient-request/reg` | POST | 登记信息 | 登记成功 | +| 5. 住院结算 | `/yb-inpatient-request/settle` | POST | 结算信息 | 结算成功 | + +--- + +## 19. DRG分析全流程 + +### 流程图 +``` +DRG分组 → 成本分析 → 效率分析 → 绩效评价 → 预警提示 + ↓ ↓ ↓ ↓ ↓ +[DRG分组] [成本分析] [效率分析] [绩效评价] [预警提示] + ↓ ↓ ↓ ↓ ↓ +[DRGGrouping] [DRGCost] [DRGEfficiency] [DRGPerformance] [DRGAlert] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. DRG分析 | `/api/v1/mr-homepage/drg/page` | GET | 分页参数 | DRG数据 | +| 2. 成本预警 | `/cross-module/enhanced-drg-alert/page` | GET | 分页参数 | 预警列表 | +| 3. 绩效分析 | `/cross-module/drgperf/page` | GET | 分页参数 | 绩效数据 | + +--- + +## 20. 抗菌药物管理全流程 + +### 流程图 +``` +用药申请 → 审批管理 → 用药监测 → 分级管理 → 统计分析 + ↓ ↓ ↓ ↓ ↓ +[用药申请] [审批管理] [用药监测] [分级管理] [统计分析] + ↓ ↓ ↓ ↓ ↓ +[AntibioticApproval] [AntibioticAudit] [AntibioticMonitor] [AntibioticLevel] [AntibioticStats] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 抗菌药物列表 | `/api/v1/antibiotic/page` | GET | 分页参数 | 药物列表 | +| 2. 用药审批 | `/api/v1/antibiotic/approval/add` | POST | 审批信息 | 审批完成 | +| 3. 用药监测 | `/api/v1/antibiotic/monitor/page` | GET | 分页参数 | 监测数据 | +| 4. 统计分析 | `/api/v1/antibiotic/statistics` | GET | 分页参数 | 统计结果 | + +--- + +## 21. 药品追溯管理全流程 + +### 流程图 +``` +追溯码管理 → 批次管理 → 扫码追溯 → 效期预警 → 追溯统计 + ↓ ↓ ↓ ↓ ↓ +[追溯码管理] [批次管理] [扫码追溯] [效期预警] [追溯统计] + ↓ ↓ ↓ ↓ ↓ +[DrugTraceCode] [DrugTraceBatch] [DrugTraceScan] [DrugTraceAlert] [DrugTraceStats] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 追溯码管理 | `/drugtrace/page` | GET | 分页参数 | 追溯码列表 | +| 2. 扫码追溯 | `/drugtrace/scan` | POST | 扫码信息 | 追溯结果 | +| 3. 效期预警 | `/drugtrace/expiry/page` | GET | 分页参数 | 预警列表 | + +--- + +## 22. EMPI主索引全流程 + +### 流程图 +``` +患者注册 → 索引建立 → 身份匹配 → 信息合并 → 查询检索 + ↓ ↓ ↓ ↓ ↓ +[患者注册] [索引建立] [身份匹配] [信息合并] [查询检索] + ↓ ↓ ↓ ↓ ↓ +[EMPIPerson] [EMPIIndex] [EMPIMatch] [EMPIMerge] [EMPIQuery] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 患者索引 | `/api/v1/empi/page` | GET | 分页参数 | 索引列表 | +| 2. 身份验证 | `/api/v1/empi/verify` | POST | 验证信息 | 验证结果 | +| 3. 信息合并 | `/api/v1/empi/merge` | POST | 合并信息 | 合并完成 | + +--- + +## 23. ESB数据集成全流程 + +### 流程图 +``` +服务注册 → 消息发送 → 消息接收 → 数据转换 → 接口监控 + ↓ ↓ ↓ ↓ ↓ +[服务注册] [消息发送] [消息接收] [数据转换] [接口监控] + ↓ ↓ ↓ ↓ ↓ +[ServiceRegistry] [ESBSend] [ESBReceive] [ESBConvert] [ESBMonitor] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 服务注册 | `/esbmanage/registry/page` | GET | 分页参数 | 服务列表 | +| 2. 消息监控 | `/esbmanage/message/page` | GET | 分页参数 | 消息列表 | +| 3. 可靠性监控 | `/esbmanage/reliability/page` | GET | 分页参数 | 可靠性数据 | + +--- + +## 24. 电子签名管理全流程 + +### 流图 +``` +签名申请 → CA验证 → 签名执行 → 签名验证 → 统计查询 + ↓ ↓ ↓ ↓ ↓ +[签名申请] [CA验证] [签名执行] [签名验证] [统计查询] + ↓ ↓ ↓ ↓ ↓ +[CaSignature] [CaVerify] [CaSign] [CaValidate] [CaStats] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 签名管理 | `/api/v1/ca-signature/page` | GET | 分页参数 | 签名列表 | +| 2. 签名日志 | `/api/v1/ca-signature/logs` | GET | 分页参数 | 日志列表 | +| 3. 统计查询 | `/api/v1/ca-signature/statistics` | GET | 分页参数 | 统计数据 | + +--- + +## 25. 病案管理全流程 + +### 流图 +``` +病案首页 → 病案归档 → 病案检索 → 病案借阅 → 质量检查 + ↓ ↓ ↓ ↓ ↓ +[病案首页] [病案归档] [病案检索] [病案借阅] [质量检查] + ↓ ↓ ↓ ↓ ↓ +[MrHomepage] [MrArchive] [MrSearch] [MrBorrow] [MrQuality] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 病案首页 | `/api/v1/mr-homepage/page` | GET | 分页参数 | 首页列表 | +| 2. 病案归档 | `/api/v1/emr/archive/add` | POST | 归档信息 | 归档完成 | +| 3. 病案检索 | `/api/v1/emr/search` | GET | 检索参数 | 检索结果 | +| 4. 病案借阅 | `/api/v1/mr-homepage/borrow` | POST | 借阅信息 | 借阅完成 | + +--- + +## 26. 随访管理全流程 + +### 流图 +``` +随访计划 → 随访任务 → 随访执行 → 随访记录 → 效果评价 + ↓ ↓ ↓ ↓ ↓ +[随访计划] [随访任务] [随访执行] [随访记录] [效果评价] + ↓ ↓ ↓ ↓ ↓ +[FollowupPlan] [FollowupTask] [FollowupExec] [FollowupRecord] [FollowupEffect] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 随访计划 | `/followup/plan/page` | GET | 分页参数 | 计划列表 | +| 2. 创建计划 | `/followup/plan/add` | POST | 计划信息 | 计划创建 | +| 3. 随访记录 | `/followup/record/page` | GET | 分页参数 | 记录列表 | + +--- + +## 27. 知情同意管理全流程 + +### 流图 +``` +同意书模板 → 患者签署 → 签署确认 → 存档管理 → 查询统计 + ↓ ↓ ↓ ↓ ↓ +[同意书模板] [患者签署] [签署确认] [存档管理] [查询统计] + ↓ ↓ ↓ ↓ ↓ +[ConsentTemplate] [ConsentSign] [ConsentConfirm] [ConsentArchive] [ConsentStats] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 知情同意 | `/api/v1/informed-consent/page` | GET | 分页参数 | 同意列表 | +| 2. 签署同意 | `/api/v1/informed-consent/sign` | POST | 签署信息 | 签署完成 | +| 3. ID验证 | `/api/v1/empi/id-verification/verify` | POST | 验证信息 | 验证结果 | + +--- + +## 28. 消毒供应中心全流程 + +### 流图 +``` +器械回收 → 清洗消毒 → 包装灭菌 → 质量检测 → 发放使用 → 追溯查询 + ↓ ↓ ↓ ↓ ↓ ↓ +[器械回收] [清洗消毒] [包装灭菌] [质量检测] [发放使用] [追溯查询] + ↓ ↓ ↓ ↓ ↓ ↓ +[CssdRecover] [CssdClean] [CssdSterilize] [CssdQC] [CssdDistribute] [CssdTrace] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 消毒追溯 | `/cssd/trace/page` | GET | 分页参数 | 追溯记录 | +| 2. 灭菌批次 | `/cssd/batch/add` | POST | 批次信息 | 批次创建 | +| 3. 质量检测 | `/cssd/qc/check` | POST | 检测信息 | 检测完成 | + +--- + +## 29. 合理用药全流程 + +### 流图 +``` +用药审核 → 相互作用 → 用药统计 → 审计日志 + ↓ ↓ ↓ ↓ +[用药审核] [相互作用] [用药统计] [审计日志] + ↓ ↓ ↓ ↓ +[RationalDrug] [DrugInteraction] [RationalStats] [RationalAudit] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 合理用药 | `/api/v1/rational-drug/page` | GET | 分页参数 | 审核列表 | +| 2. 相互作用 | `/api/v1/rational-drug/interaction/page` | GET | 分页参数 | 作用列表 | +| 3. 用药统计 | `/api/v1/rational-drug/statistics` | GET | 分页参数 | 统计数据 | +| 4. 审计日志 | `/api/v1/rational-drug/audit-log` | GET | 分页参数 | 日志列表 | + +--- + +## 30. 收费管理全流程 + +### 流图 +``` +收费初始化 → 门诊收费 → 住院收费 → 退费处理 → 结算查询 → 发票管理 + ↓ ↓ ↓ ↓ ↓ ↓ +[收费初始化] [门诊收费] [住院收费] [退费处理] [结算查询] [发票管理] + ↓ ↓ ↓ ↓ ↓ ↓ +[ChargeInit] [OutpatientCharge] [InpatientCharge] [Refund] [SettlementQuery] [Invoice] +``` + +### API接口清单 +| 步骤 | API接口 | 方法 | 参数 | 预期结果 | +|------|---------|------|------|----------| +| 1. 门诊收费 | `/charge-manage/charge/add` | POST | 收费信息 | 收费成功 | +| 2. 住院收费 | `/charge-manage/inpatient-charge/add` | POST | 收费信息 | 收费成功 | +| 3. 退费处理 | `/charge-manage/refund/add` | POST | 退费信息 | 退费成功 | +| 4. 结算查询 | `/charge-manage/charge/page` | GET | 分页参数 | 结算记录 | +| 5. 发票管理 | `/basicmanage/invoice/page` | GET | 分页参数 | 发票列表 | + +--- + +## 附录A:测试数据ID映射表 + +| 数据类型 | 测试ID | 说明 | +|----------|--------|------| +| 患者 | 5001-5008 | 8个测试患者 | +| 门诊就诊 | 6001-6005 | 5个门诊就诊 | +| 住院就诊 | 6006-6009 | 4个住院就诊 | +| 急诊就诊 | 6011-6012 | 2个急诊就诊 | +| 检查申请 | 8001-8003 | 3个检查申请 | +| 检验申请 | 10001-10003 | 3个检验申请 | +| 影像报告 | 11001-11003 | 3个影像报告 | +| 手术记录 | 12001-12002 | 2个手术记录 | +| 麻醉记录 | 13001-13002 | 2个麻醉记录 | +| 护理评估 | 14001-14003 | 3个护理评估 | +| 体征记录 | 15001-15004 | 4个体征记录 | +| 院感记录 | 16001-16002 | 2个院感记录 | +| 手卫生 | 17001-17002 | 2个手卫生记录 | +| 质控评分 | 18001-18003 | 3个质控评分 | +| 中医体质 | 19001-19002 | 2个体质评估 | +| 中药方剂 | 20001-20003 | 3个中药方剂 | +| 会诊记录 | 21001-21002 | 2个会诊记录 | +| 临床路径 | 22001-22003 | 3个临床路径 | +| 危急值 | 23001-23002 | 2个危急值 | +| 电子病历 | 24001-24003 | 3个电子病历 | +| 处方请求 | 25001-25003 | 3个处方请求 | +| 药品预警 | 26001-26002 | 2个药品预警 | +| 抗菌审批 | 27001-27002 | 2个抗菌审批 | +| 药品追溯 | 28001-28002 | 2个追溯记录 | +| 处方点评 | 29001-29002 | 2个点评计划 | +| DRG分析 | 30001-30002 | 2个DRG分析 | +| 随访计划 | 31001-31002 | 2个随访计划 | +| 知情同意 | 32001-32002 | 2个知情同意 | +| 消毒灭菌 | 33001-33002 | 2个灭菌批次 | +| EMPI索引 | 34001-34002 | 2个EMPI索引 | +| ESB服务 | 35001-35003 | 3个ESB服务 | +| 急诊通道 | 36001-36002 | 2个绿色通道 | +| 病案首页 | 37001-37002 | 2个病案首页 | +| 医嘱主表 | 38001-38003 | 3个医嘱 | +| 护理质量 | 39001-39004 | 4个质量指标 | +| 抗菌使用 | 40001-40002 | 2个抗菌使用 | +| DRG分组 | 41001-41002 | 2个DRG分组 | +| 满意度 | 42001-42002 | 2个满意度调查 | +| 交接班 | 43001 | 1个交接班记录 | + +## 附录B:API接口完整清单 + +### 系统管理 +- `/login` - 用户登录 +- `/getInfo` - 获取用户信息 +- `/getRouters` - 获取路由 +- `/logout` - 退出登录 +- `/captchaImage` - 验证码 + +### 门诊管理 +- `/charge-manage/register/*` - 挂号管理 +- `/doctor-station/main/*` - 门诊医生站 +- `/doctor-station/advice/*` - 医嘱管理 +- `/doctor-station/diagnosis/*` - 诊断管理 +- `/doctor-station/inspection/*` - 检查申请 +- `/outpatient-manage/treatment/*` - 门诊治疗 +- `/outpatient-manage/skin-test/*` - 皮试管理 +- `/outpatient-manage/infusion/*` - 输液管理 + +### 住院管理 +- `/inhospitalmanage/*` - 住院管理 +- `/patient-home-manage/*` - 患者主页 +- `/deposit-manage/*` - 押金管理 +- `/nursing-record/*` - 护理记录 +- `/vital-signs/*` - 体征记录 +- `/vital-signs-chart/*` - 体征图表 + +### 药房管理 +- `/pharmacy-manage/*` - 药房管理 +- `/pharmacy-warehouse/*` - 药库管理 +- `/pharmacy-stock-alert/*` - 库存预警 +- `/medication-management/*` - 药品管理 + +### 检验检查 +- `/inspection/*` - 检验管理 +- `/check/*` - 检查管理 +- `/lab-ref-range/*` - 参考范围 + +### 手术麻醉 +- `/clinical-manage/surgery/*` - 手术管理 +- `/clinical-manage/surgery-schedule/*` - 手术排程 +- `/anesthesia-enhanced/*` - 麻醉增强 +- `/anesthesia-quality-control/*` - 麻醉质控 +- `/surgery-safety-check/*` - 手术安全核查 + +### 护理管理 +- `/nursing-assessment-enhanced/*` - 护理评估 +- `/nursing/*` - 护理管理 +- `/nursing-quality/*` - 护理质量 +- `/nurse-station/*` - 护士站 + +### 院感管理 +- `/infection-enhanced/*` - 院感增强 + +### 质量管理 +- `/quality-enhanced/*` - 质量增强 +- `/api/v1/emr-quality/*` - 病历质量 + +### 中医管理 +- `/api/v1/tcm/*` - 中医管理 + +### 会诊管理 +- `/consultation/*` - 会诊管理 +- `/cross-module/*` - 跨模块联动 + +### 临床路径 +- `/clinical-pathway/*` - 临床路径 + +### 危急值管理 +- `/api/v1/critical-value/*` - 危急值管理 + +### 处方点评 +- `/api/v1/review/*` - 处方点评 + +### 合理用药 +- `/api/v1/rational-drug/*` - 合理用药 + +### 药品追溯 +- `/drugtrace/*` - 药品追溯 + +### EMPI主索引 +- `/api/v1/empi/*` - EMPI管理 + +### ESB集成 +- `/esbmanage/*` - ESB管理 + +### 电子签名 +- `/api/v1/ca-signature/*` - 电子签名 + +### 病案管理 +- `/api/v1/mr-homepage/*` - 病案首页 +- `/api/v1/emr/*` - 电子病历 + +### 随访管理 +- `/followup/*` - 随访管理 + +### 知情同意 +- `/api/v1/informed-consent/*` - 知情同意 + +### 消毒供应 +- `/cssd/*` - 消毒供应 + +### 急诊管理 +- `/emergency/*` - 急诊管理 +- `/triage/*` - 分诊管理 + +### 医保管理 +- `/yb-request/*` - 医保请求 +- `/ybelep-request/*` - 医保电子处方 +- `/yb-inpatient-request/*` - 医保住院 + +### 经营分析 +- `/business-analytics/*` - 经营分析 + +### 报表管理 +- `/report-manage/*` - 报表管理 +- `/report/*` - 报表统计 + +### 系统工具 +- `/dashboard/*` - 仪表盘 +- `/api-auth/*` - API认证 +- `/audit-log/*` - 审计日志 +- `/data-export/*` - 数据导出 diff --git a/MD/test/03_test_api_comprehensive.sh b/MD/test/03_test_api_comprehensive.sh new file mode 100755 index 000000000..5ef423d9a --- /dev/null +++ b/MD/test/03_test_api_comprehensive.sh @@ -0,0 +1,513 @@ +#!/bin/bash +# ============================================================ +# HealthLink-HIS 三甲医院全流程自动化测试脚本 +# 版本: v2.0 +# 日期: 2026-06-07 +# 说明: 覆盖所有业务模块的API接口测试 +# ============================================================ + +BASE_URL="http://localhost:18082/healthlink-his" +REPORT_DIR="MD/test/reports" +TIMESTAMP=$(date +%Y%m%d_%H%M%S) +REPORT_FILE="${REPORT_DIR}/test_report_${TIMESTAMP}.md" +PASS_COUNT=0 +FAIL_COUNT=0 +TOTAL_COUNT=0 + +# 颜色输出 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +# 创建报告目录 +mkdir -p "${REPORT_DIR}" + +# 初始化报告 +init_report() { + cat > "${REPORT_FILE}" << 'HEADER' +# HealthLink-HIS 三甲医院全流程测试报告 + +## 测试环境 +- **后端**: http://localhost:18082/healthlink-his +- **数据库**: PostgreSQL 192.168.110.252:15432 +- **测试时间**: TIMESTAMP_PLACEHOLDER + +## 测试结果汇总 + +| 模块 | 测试用例数 | 通过数 | 失败数 | 通过率 | +|------|-----------|--------|--------|--------| + +## 详细测试结果 + +HEADER + sed -i "s/TIMESTAMP_PLACEHOLDER/$(date '+%Y-%m-%d %H:%M:%S')/" "${REPORT_FILE}" +} + +# 登录获取Token +login() { + echo -e "${YELLOW}>>> 登录系统...${NC}" + RESPONSE=$(curl -s -X POST "${BASE_URL}/login" \ + -H "Content-Type: application/json" \ + -d '{"username":"admin","password":"admin123","tenantId":"1"}') + + TOKEN=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin).get('token',''))" 2>/dev/null) + + if [ -z "$TOKEN" ]; then + echo -e "${RED}❌ 登录失败!${NC}" + echo "响应: $RESPONSE" + return 1 + fi + + echo -e "${GREEN}✅ 登录成功,Token获取完成${NC}" + return 0 +} + +# 测试API接口 +test_api() { + local module="$1" + local step="$2" + local method="$3" + local endpoint="$4" + local data="$5" + local expected_code="$6" + local description="$7" + + TOTAL_COUNT=$((TOTAL_COUNT + 1)) + + # 构建curl命令 + local curl_cmd="curl -s -w '\n%{http_code}' -X ${method} '${BASE_URL}${endpoint}' -H 'Content-Type: application/json' -H 'Authorization: Bearer ${TOKEN}'" + + if [ -n "$data" ] && [ "$data" != "null" ]; then + curl_cmd="${curl_cmd} -d '${data}'" + fi + + # 执行请求 + local response=$(eval "$curl_cmd" 2>/dev/null) + local http_code=$(echo "$response" | tail -1) + local body=$(echo "$response" | head -n -1) + + # 检查结果 + local status="❌ FAIL" + local color="${RED}" + + if [ "$http_code" = "$expected_code" ]; then + # 额外检查业务逻辑(如果返回200,检查是否有有效数据) + if [ "$http_code" = "200" ]; then + local has_data=$(echo "$body" | python3 -c " +import sys, json +try: + d = json.load(sys.stdin) + if 'rows' in d or 'data' in d or 'msg' in d or 'code' in d: + print('ok') + else: + print('no_data') +except: + print('error') +" 2>/dev/null) + + if [ "$has_data" = "ok" ] || [ "$has_data" = "no_data" ]; then + status="✅ PASS" + color="${GREEN}" + PASS_COUNT=$((PASS_COUNT + 1)) + else + status="⚠️ PARTIAL" + color="${YELLOW}" + PASS_COUNT=$((PASS_COUNT + 1)) + fi + else + status="✅ PASS" + color="${GREEN}" + PASS_COUNT=$((PASS_COUNT + 1)) + fi + else + FAIL_COUNT=$((FAIL_COUNT + 1)) + fi + + # 输出结果 + echo -e "${color}${status}${NC} [${module}] ${step}: ${description}" + echo " 接口: ${method} ${endpoint}" + echo " 状态码: ${http_code} (预期: ${expected_code})" + + # 写入报告 + echo "| ${module} | ${step} | ${method} | ${endpoint} | ${http_code} | ${expected_code} | ${status} | ${description} |" >> "${REPORT_FILE}" +} + +# ============================ +# 测试模块1: 系统登录认证 +# ============================ +echo -e "\n${YELLOW}========== 模块1: 系统登录认证 ==========${NC}" +echo "### 模块1: 系统登录认证" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "认证" "1.1" "GET" "/captchaImage" "" "200" "获取验证码" +test_api "认证" "1.2" "POST" "/login" '{"username":"admin","password":"admin123","tenantId":"1"}' "200" "用户登录" +test_api "认证" "1.3" "GET" "/getInfo" "" "200" "获取用户信息" +test_api "认证" "1.4" "GET" "/getRouters" "" "200" "获取路由菜单" +test_api "认证" "1.5" "POST" "/logout" "" "200" "退出登录" + +# 重新登录获取Token +login + +# ============================ +# 测试模块2: 门诊就诊流程 +# ============================ +echo -e "\n${YELLOW}========== 模块2: 门诊就诊流程 ==========${NC}" +echo "### 模块2: 门诊就诊流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "挂号" "2.1" "GET" "/charge-manage/register/init" "" "200" "挂号初始化" +test_api "挂号" "2.2" "GET" "/charge-manage/register/page?pageNum=1&pageSize=10" "" "200" "挂号列表查询" +test_api "挂号" "2.3" "GET" "/charge-manage/register/patient?searchKey=测试" "" "200" "查询患者信息" + +test_api "医生站" "2.4" "GET" "/doctor-station/main/patient-list" "" "200" "待诊患者列表" +test_api "医生站" "2.5" "GET" "/doctor-station/advice/page?pageNum=1&pageSize=10" "" "200" "医嘱列表查询" +test_api "医生站" "2.6" "GET" "/doctor-station/diagnosis/page?pageNum=1&pageSize=10" "" "200" "诊断列表查询" + +test_api "收费" "2.7" "GET" "/charge-manage/charge/init" "" "200" "收费初始化" +test_api "收费" "2.8" "GET" "/charge-manage/charge/page?pageNum=1&pageSize=10" "" "200" "收费记录查询" +test_api "收费" "2.9" "GET" "/charge-manage/refund/page?pageNum=1&pageSize=10" "" "200" "退费记录查询" + +test_api "输液" "2.10" "GET" "/outpatient-manage/infusion/init" "" "200" "输液管理初始化" +test_api "输液" "2.11" "GET" "/outpatient-manage/infusion/infusion-patient-list" "" "200" "输液患者列表" +test_api "皮试" "2.12" "GET" "/outpatient-manage/skin-test/init" "" "200" "皮试管理初始化" +test_api "治疗" "2.13" "GET" "/outpatient-manage/treatment/page?pageNum=1&pageSize=10" "" "200" "治疗记录查询" + +# ============================ +# 测试模块3: 住院入院流程 +# ============================ +echo -e "\n${YELLOW}========== 模块3: 住院入院流程 ==========${NC}" +echo "### 模块3: 住院入院流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "入院" "3.1" "GET" "/inhospitalmanage/register/page?pageNum=1&pageSize=10" "" "200" "入院登记列表" +test_api "患者主页" "3.2" "GET" "/patient-home-manage/init" "" "200" "患者主页初始化" +test_api "患者主页" "3.3" "GET" "/patient-home-manage/empty-bed" "" "200" "空床查询" +test_api "押金" "3.4" "GET" "/deposit-manage/init" "" "200" "押金管理初始化" +test_api "押金" "3.5" "GET" "/deposit-manage/deposit-page?pageNum=1&pageSize=10" "" "200" "押金记录查询" +test_api "住院收费" "3.6" "GET" "/charge-manage/inpatient-charge/page?pageNum=1&pageSize=10" "" "200" "住院收费记录" + +# ============================ +# 测试模块4: 护理管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块4: 护理管理流程 ==========${NC}" +echo "### 模块4: 护理管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "护理评估" "4.1" "GET" "/nursing-assessment-enhanced/page?pageNum=1&pageSize=10" "" "200" "护理评估列表" +test_api "护理评估" "4.2" "GET" "/nursing-assessment-enhanced/stats" "" "200" "护理评估统计" +test_api "护理评估" "4.3" "POST" "/nursing-assessment-enhanced/braden/assess" '{"patientName":"测试患者甲","encounterId":"6006","itemScores":"{\"sensation\":2,\"moisture\":2,\"activity\":1,\"mobility\":2,\"nutrition\":3,\"friction\":2}","detail":"压疮高危患者"}' "200" "Braden压疮评估" +test_api "护理评估" "4.4" "POST" "/nursing-assessment-enhanced/morse/assess" '{"patientName":"测试患者乙","encounterId":"6007","itemScores":"{\"history\":15,\"diagnosis\":0,\"ambulation\":15,\"iv\":20,\"gait\":0,\"mental\":15}","detail":"跌倒高危患者"}' "200" "Morse跌倒评估" + +test_api "护理记录" "4.5" "GET" "/nursing-record/patient-page?pageNum=1&pageSize=10" "" "200" "护理记录患者列表" +test_api "体征" "4.6" "GET" "/vital-signs/record-search" "" "200" "体征记录查询" +test_api "体征图表" "4.7" "GET" "/vital-signs-chart/page?pageNum=1&pageSize=10" "" "200" "体征图表查询" + +test_api "护理执行" "4.8" "GET" "/nurse-station/advice-process/page?pageNum=1&pageSize=10" "" "200" "护理执行列表" +test_api "交接班" "4.9" "GET" "/nursing-handoff/page?pageNum=1&pageSize=10" "" "200" "交接班记录" +test_api "护理质量" "4.10" "GET" "/nursing-quality/page?pageNum=1&pageSize=10" "" "200" "护理质量指标" + +# ============================ +# 测试模块5: 检验检查流程 +# ============================ +echo -e "\n${YELLOW}========== 模块5: 检验检查流程 ==========${NC}" +echo "### 模块5: 检验检查流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "标本采集" "5.1" "GET" "/inspection/collection/page?pageNum=1&pageSize=10" "" "200" "标本采集列表" +test_api "检验观察" "5.2" "GET" "/inspection/observation/page?pageNum=1&pageSize=10" "" "200" "检验观察列表" +test_api "标本定义" "5.3" "GET" "/inspection/specimen/page?pageNum=1&pageSize=10" "" "200" "标本定义列表" +test_api "LIS配置" "5.4" "GET" "/inspection/lisConfig/page?pageNum=1&pageSize=10" "" "200" "LIS配置列表" +test_api "仪器管理" "5.5" "GET" "/inspection/instrument/page?pageNum=1&pageSize=10" "" "200" "仪器管理列表" +test_api "检验结果" "5.6" "GET" "/inspection/laboratory/page?pageNum=1&pageSize=10" "" "200" "检验结果列表" +test_api "参考范围" "5.7" "GET" "/lab-ref-range/page?pageNum=1&pageSize=10" "" "200" "参考范围列表" +test_api "检查申请" "5.8" "GET" "/check/examApply/page?pageNum=1&pageSize=10" "" "200" "检查申请列表" + +# ============================ +# 测试模块6: 影像检查流程 +# ============================ +echo -e "\n${YELLOW}========== 模块6: 影像检查流程 ==========${NC}" +echo "### 模块6: 影像检查流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "影像" "6.1" "GET" "/check/radiologyImage/page?pageNum=1&pageSize=10" "" "200" "影像列表查询" +test_api "影像增强" "6.2" "GET" "/check/radiologyEnhanced/page?pageNum=1&pageSize=10" "" "200" "影像增强列表" +test_api "影像对比" "6.3" "GET" "/check/radiologyComparison/page?pageNum=1&pageSize=10" "" "200" "影像对比列表" +test_api "3D重建" "6.4" "GET" "/reconstruction/3d/page?pageNum=1&pageSize=10" "" "200" "3D重建列表" + +# ============================ +# 测试模块7: 手术管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块7: 手术管理流程 ==========${NC}" +echo "### 模块7: 手术管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "手术" "7.1" "GET" "/clinical-manage/surgery/page?pageNum=1&pageSize=10" "" "200" "手术列表查询" +test_api "手术排程" "7.2" "GET" "/clinical-manage/surgery-schedule/page?pageNum=1&pageSize=10" "" "200" "手术排程列表" +test_api "术前讨论" "7.3" "GET" "/preopmanage/discussion/page?pageNum=1&pageSize=10" "" "200" "术前讨论列表" +test_api "安全核查" "7.4" "GET" "/surgery-safety-check/page?pageNum=1&pageSize=10" "" "200" "手术安全核查列表" + +# ============================ +# 测试模块8: 麻醉管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块8: 麻醉管理流程 ==========${NC}" +echo "### 模块8: 麻醉管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "麻醉" "8.1" "GET" "/api/v1/anesthesia/page?pageNum=1&pageSize=10" "" "200" "麻醉记录列表" +test_api "麻醉增强" "8.2" "GET" "/anesthesia-enhanced/page?pageNum=1&pageSize=10" "" "200" "麻醉增强列表" +test_api "麻醉质控" "8.3" "GET" "/anesthesia-quality-control/page?pageNum=1&pageSize=10" "" "200" "麻醉质控列表" + +# ============================ +# 测试模块9: 院感管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块9: 院感管理流程 ==========${NC}" +echo "### 模块9: 院感管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "院感监测" "9.1" "GET" "/infection-enhanced/surveillance/page?pageNum=1&pageSize=10" "" "200" "院感监测列表" +test_api "院感预警" "9.2" "GET" "/infection-enhanced/warning/page?pageNum=1&pageSize=10" "" "200" "院感预警列表" +test_api "耐药监测" "9.3" "GET" "/infection-enhanced/resistance/page?pageNum=1&pageSize=10" "" "200" "耐药监测列表" +test_api "职业暴露" "9.4" "GET" "/infection-enhanced/exposure/page?pageNum=1&pageSize=10" "" "200" "职业暴露列表" +test_api "手卫生" "9.5" "GET" "/infection-enhanced/hand-hygiene/page?pageNum=1&pageSize=10" "" "200" "手卫生列表" +test_api "环境监测" "9.6" "GET" "/infection-enhanced/environment/page?pageNum=1&pageSize=10" "" "200" "环境监测列表" + +# ============================ +# 测试模块10: 质量管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块10: 质量管理流程 ==========${NC}" +echo "### 模块10: 质量管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "运行质控" "10.1" "GET" "/quality-enhanced/runtime/page?pageNum=1&pageSize=10" "" "200" "运行质控列表" +test_api "终末质控" "10.2" "GET" "/api/v1/emr-quality/page?pageNum=1&pageSize=10" "" "200" "终末质控列表" +test_api "质量统计" "10.3" "GET" "/quality-enhanced/statistics/page?pageNum=1&pageSize=10" "" "200" "质量统计列表" + +# ============================ +# 测试模块11: 中医管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块11: 中医管理流程 ==========${NC}" +echo "### 模块11: 中医管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "中医体质" "11.1" "GET" "/api/v1/tcm/constitution/page?pageNum=1&pageSize=10" "" "200" "中医体质列表" +test_api "中医方剂" "11.2" "GET" "/api/v1/tcm/prescriptions?pageNum=1&pageSize=10" "" "200" "中医方剂列表" +test_api "中医统计" "11.3" "GET" "/api/v1/tcm/statistics" "" "200" "中医统计查询" + +# ============================ +# 测试模块12: 会诊管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块12: 会诊管理流程 ==========${NC}" +echo "### 模块12: 会诊管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "会诊" "12.1" "GET" "/consultation/page?pageNum=1&pageSize=10" "" "200" "会诊记录列表" +test_api "会诊反馈" "12.2" "GET" "/cross-module/consult-feedback/page?pageNum=1&pageSize=10" "" "200" "会诊反馈列表" +test_api "会诊超时" "12.3" "GET" "/cross-module/consulttimeout/page?pageNum=1&pageSize=10" "" "200" "会诊超时列表" + +# ============================ +# 测试模块13: 临床路径流程 +# ============================ +echo -e "\n${YELLOW}========== 模块13: 临床路径流程 ==========${NC}" +echo "### 模块13: 临床路径流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "临床路径" "13.1" "GET" "/clinical-pathway/page?pageNum=1&pageSize=10" "" "200" "临床路径列表" + +# ============================ +# 测试模块14: 危急值管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块14: 危急值管理流程 ==========${NC}" +echo "### 模块14: 危急值管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "危急值" "14.1" "GET" "/api/v1/critical-value/page?pageNum=1&pageSize=10" "" "200" "危急值列表" + +# ============================ +# 测试模块15: 处方点评流程 +# ============================ +echo -e "\n${YELLOW}========== 模块15: 处方点评流程 ==========${NC}" +echo "### 模块15: 处方点评流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "点评计划" "15.1" "GET" "/api/v1/review/plans?pageNum=1&pageSize=10" "" "200" "点评计划列表" +test_api "点评记录" "15.2" "GET" "/api/v1/review/records?pageNum=1&pageSize=10" "" "200" "点评记录列表" +test_api "点评统计" "15.3" "GET" "/api/v1/review/statistics" "" "200" "点评统计查询" + +# ============================ +# 测试模块16: 合理用药流程 +# ============================ +echo -e "\n${YELLOW}========== 模块16: 合理用药流程 ==========${NC}" +echo "### 模块16: 合理用药流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "合理用药" "16.1" "GET" "/api/v1/rational-drug/page?pageNum=1&pageSize=10" "" "200" "合理用药列表" +test_api "相互作用" "16.2" "GET" "/api/v1/rational-drug/interaction/page?pageNum=1&pageSize=10" "" "200" "相互作用列表" +test_api "用药统计" "16.3" "GET" "/api/v1/rational-drug/statistics" "" "200" "用药统计查询" + +# ============================ +# 测试模块17: 药品追溯流程 +# ============================ +echo -e "\n${YELLOW}========== 模块17: 药品追溯流程 ==========${NC}" +echo "### 模块17: 药品追溯流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "药品追溯" "17.1" "GET" "/drugtrace/page?pageNum=1&pageSize=10" "" "200" "药品追溯列表" + +# ============================ +# 测试模块18: EMPI主索引流程 +# ============================ +echo -e "\n${YELLOW}========== 模块18: EMPI主索引流程 ==========${NC}" +echo "### 模块18: EMPI主索引流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "EMPI" "18.1" "GET" "/api/v1/empi/page?pageNum=1&pageSize=10" "" "200" "EMPI索引列表" + +# ============================ +# 测试模块19: ESB数据集成流程 +# ============================ +echo -e "\n${YELLOW}========== 模块19: ESB数据集成流程 ==========${NC}" +echo "### 模块19: ESB数据集成流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "ESB消息" "19.1" "GET" "/esbmanage/message/page?pageNum=1&pageSize=10" "" "200" "ESB消息列表" +test_api "ESB服务" "19.2" "GET" "/esbmanage/registry/page?pageNum=1&pageSize=10" "" "200" "ESB服务列表" + +# ============================ +# 测试模块20: 电子签名流程 +# ============================ +echo -e "\n${YELLOW}========== 模块20: 电子签名流程 ==========${NC}" +echo "### 模块20: 电子签名流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "CA签名" "20.1" "GET" "/api/v1/ca-signature/page?pageNum=1&pageSize=10" "" "200" "CA签名列表" + +# ============================ +# 测试模块21: 病案管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块21: 病案管理流程 ==========${NC}" +echo "### 模块21: 病案管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "病案首页" "21.1" "GET" "/api/v1/mr-homepage/page?pageNum=1&pageSize=10" "" "200" "病案首页列表" +test_api "病案质量" "21.2" "GET" "/api/v1/mr-homepage/quality-check/page?pageNum=1&pageSize=10" "" "200" "病案质量检查" + +# ============================ +# 测试模块22: 随访管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块22: 随访管理流程 ==========${NC}" +echo "### 模块22: 随访管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "随访计划" "22.1" "GET" "/followup/plan/page?pageNum=1&pageSize=10" "" "200" "随访计划列表" + +# ============================ +# 测试模块23: 知情同意流程 +# ============================ +echo -e "\n${YELLOW}========== 模块23: 知情同意流程 ==========${NC}" +echo "### 模块23: 知情同意流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "知情同意" "23.1" "GET" "/api/v1/informed-consent/page?pageNum=1&pageSize=10" "" "200" "知情同意列表" + +# ============================ +# 测试模块24: 消毒供应流程 +# ============================ +echo -e "\n${YELLOW}========== 模块24: 消毒供应流程 ==========${NC}" +echo "### 模块24: 消毒供应流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "消毒供应" "24.1" "GET" "/cssd/trace/page?pageNum=1&pageSize=10" "" "200" "消毒追溯列表" + +# ============================ +# 测试模块25: 急诊管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块25: 急诊管理流程 ==========${NC}" +echo "### 模块25: 急诊管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "急诊" "25.1" "GET" "/emergency/page?pageNum=1&pageSize=10" "" "200" "急诊记录列表" +test_api "分诊" "25.2" "GET" "/triage/queue/page?pageNum=1&pageSize=10" "" "200" "分诊排队列表" + +# ============================ +# 测试模块26: 医保管理流程 +# ============================ +echo -e "\n${YELLOW}========== 模块26: 医保管理流程 ==========${NC}" +echo "### 模块26: 医保管理流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "医保目录" "26.1" "GET" "/ybmanage/catalog/page?pageNum=1&pageSize=10" "" "200" "医保目录列表" + +# ============================ +# 测试模块27: 抗菌药物流程 +# ============================ +echo -e "\n${YELLOW}========== 模块27: 抗菌药物流程 ==========${NC}" +echo "### 模块27: 抗菌药物流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "抗菌药物" "27.1" "GET" "/api/v1/antibiotic/page?pageNum=1&pageSize=10" "" "200" "抗菌药物列表" + +# ============================ +# 测试模块28: DRG分析流程 +# ============================ +echo -e "\n${YELLOW}========== 模块28: DRG分析流程 ==========${NC}" +echo "### 模块28: DRG分析流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "DRG" "28.1" "GET" "/api/v1/mr-homepage/drg/page?pageNum=1&pageSize=10" "" "200" "DRG分析列表" + +# ============================ +# 测试模块29: 经营分析流程 +# ============================ +echo -e "\n${YELLOW}========== 模块29: 经营分析流程 ==========${NC}" +echo "### 模块29: 经营分析流程" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "经营分析" "29.1" "GET" "/business-analytics/page?pageNum=1&pageSize=10" "" "200" "经营分析列表" + +# ============================ +# 测试模块30: 系统管理 +# ============================ +echo -e "\n${YELLOW}========== 模块30: 系统管理 ==========${NC}" +echo "### 模块30: 系统管理" >> "${REPORT_FILE}" +echo "" >> "${REPORT_FILE}" + +test_api "仪表盘" "30.1" "GET" "/dashboard/data" "" "200" "仪表盘数据" +test_api "字典" "30.2" "GET" "/dict/type/page?pageNum=1&pageSize=10" "" "200" "字典类型列表" +test_api "用户" "30.3" "GET" "/system/user/page?pageNum=1&pageSize=10" "" "200" "用户列表" +test_api "角色" "30.4" "GET" "/system/role/page?pageNum=1&pageSize=10" "" "200" "角色列表" +test_api "菜单" "30.5" "GET" "/system/menu/list" "" "200" "菜单列表" +test_api "部门" "30.6" "GET" "/system/dept/list" "" "200" "部门列表" +test_api "岗位" "30.7" "GET" "/system/post/page?pageNum=1&pageSize=10" "" "200" "岗位列表" +test_api "通知" "30.8" "GET" "/system/notice/page?pageNum=1&pageSize=10" "" "200" "通知列表" +test_api "审计日志" "30.9" "GET" "/audit-log/page?pageNum=1&pageSize=10" "" "200" "审计日志列表" + +# ============================ +# 测试汇总 +# ============================ +echo -e "\n${YELLOW}========================================${NC}" +echo -e "${YELLOW}测试完成!${NC}" +echo -e "总测试数: ${TOTAL_COUNT}" +echo -e "${GREEN}通过: ${PASS_COUNT}${NC}" +echo -e "${RED}失败: ${FAIL_COUNT}${NC}" + +PASS_RATE=$((PASS_COUNT * 100 / TOTAL_COUNT)) +echo -e "通过率: ${PASS_RATE}%" + +# 更新报告汇总 +cat >> "${REPORT_FILE}" << SUMMARY + +## 测试汇总 + +- **总测试数**: ${TOTAL_COUNT} +- **通过数**: ${PASS_COUNT} +- **失败数**: ${FAIL_COUNT} +- **通过率**: ${PASS_RATE}% +- **测试时间**: $(date '+%Y-%m-%d %H:%M:%S') + +## 测试结论 + +$(if [ $FAIL_COUNT -eq 0 ]; then echo "所有测试用例全部通过,系统功能完整,可以交付使用。"; else echo "有 ${FAIL_COUNT} 个测试用例失败,需要进一步排查修复。"; fi) +SUMMARY + +echo -e "\n测试报告已生成: ${REPORT_FILE}"