// 模拟捐献进程数据 const mockDonationProcessData = { caseInfo: { id: "202512001", caseNo: "C202512001", hospitalNo: "D202512001", donorName: "张三", gender: "0", age: 45, bloodType: "A", diagnosis: "脑外伤", status: "in_progress", createTime: "2025-12-01 08:00:00", registrant: "李协调员", currentStage: "organ_allocation", // 新增基本信息 height: 175, weight: 70, bloodPressure: "120/80", contactPerson: "张父", contactPhone: "13800138000", hospital: "青岛大学附属医院", department: "神经外科", attendingDoctor: "王主任" }, processStages: [ { key: "donor_maintenance", name: "供者维护", status: "completed", completeTime: "2025-12-01 10:00:00", updateTime: "2025-12-01 10:00:00", operator: "张医生", details: { maintenanceRecords: 5, lastCheckup: "2025-12-01 09:30:00", vitalSigns: { heartRate: 75, bloodPressure: "118/76", temperature: 36.5, oxygenSaturation: 98 }, medications: [ { name: "多巴胺", dosage: "5μg/kg/min", time: "2025-12-01 08:00:00" }, { name: "甘露醇", dosage: "125ml", time: "2025-12-01 09:00:00" } ], labResults: { wbc: 8.5, hgb: 12.5, plt: 250, na: 140, k: 4.0 } } }, { key: "donation_confirm", name: "捐献意愿", status: "completed", completeTime: "2025-12-03 11:00:00", updateTime: "2025-12-03 11:00:00", operator: "赵协调员", details: { familyConsent: { mainRelative: "张父", relationship: "父子", consentTime: "2025-12-03 10:45:00", consentForm: "已签署", witness: "李护士" }, donationType: "多器官捐献", organs: ["肝脏", "肾脏", "心脏", "角膜"], legalDocuments: ["器官捐献同意书", "家属关系证明", "医疗免责声明"], coordinator: "赵协调员", confirmationTime: "2025-12-03 11:00:00" } }, { key: "medical_assessment", name: "医学评估", status: "completed", completeTime: "2025-12-02 14:30:00", updateTime: "2025-12-02 14:30:00", operator: "李主任", details: { assessmentItems: [ { name: "神经系统评估", result: "脑死亡确认", status: "completed" }, { name: "心血管系统评估", result: "功能正常", status: "completed" }, { name: "呼吸系统评估", result: "呼吸机维持", status: "completed" }, { name: "肝肾功能评估", result: "功能良好", status: "completed" }, { name: "感染性疾病筛查", result: "阴性", status: "completed" } ], imagingResults: { ctBrain: "脑水肿,脑干反射消失", chestXRay: "双肺清晰", abdominalUS: "肝胆胰脾未见异常" }, conclusion: "符合器官捐献医学标准", contraindications: "无绝对禁忌症" } }, { key: "death_judgment", name: "死亡判定", status: "completed", completeTime: "2025-12-03 09:15:00", updateTime: "2025-12-03 09:15:00", operator: "王医生", details: { judgmentType: "脑死亡判定", judgmentTime: "2025-12-03 09:00:00", doctors: ["张主任", "王医生"], testResults: [ { test: "自主呼吸测试", result: "无自主呼吸", time: "2025-12-03 08:30:00" }, { test: "瞳孔对光反射", result: "反射消失", time: "2025-12-03 08:45:00" }, { test: "脑干听觉诱发电位", result: "脑干功能丧失", time: "2025-12-03 09:00:00" } ], certificateNo: "SW20251203001", legalDocuments: ["死亡证明书", "脑死亡判定书"] } }, { key: "ethical_review", name: "伦理审查", status: "in_progress", completeTime: "2025-12-03 15:20:00", updateTime: "2025-12-03 15:20:00", operator: "伦理委员会", details: { committee: "医院伦理审查委员会", meetingTime: "2025-12-03 14:00:00", members: ["张教授", "李主任", "王医生", "赵委员", "钱专家"], reviewItems: [ { item: "捐献意愿真实性", result: "确认真实", vote: "全票通过" }, { item: "医学评估准确性", result: "确认准确", vote: "全票通过" }, { item: "法律文件完整性", result: "确认完整", vote: "全票通过" } ], conclusion: "符合伦理要求,同意进行器官捐献", resolutionNo: "LL20251203001" } }, { key: "organ_allocation", name: "器官分配", status: "pending", updateTime: "2025-12-04 10:00:00", operator: "分配系统", details: { allocationStartTime: "2025-12-04 09:00:00", allocationSystem: "中国人体器官分配与共享计算机系统", organs: [ { organ: "肝脏", status: "分配中", matchScore: 95, recommendedRecipient: "王先生", recipientAge: 45, recipientBloodType: "A", hospital: "青岛大学附属医院", urgency: "紧急" }, { organ: "肾脏", status: "匹配完成", matchScore: 92, recommendedRecipient: "李女士", recipientAge: 38, recipientBloodType: "A", hospital: "青岛市市立医院", urgency: "高" }, { organ: "心脏", status: "待分配", matchScore: 88, recommendedRecipient: "陈先生", recipientAge: 52, recipientBloodType: "O", hospital: "山东大学齐鲁医院", urgency: "紧急" } ], allocationFactors: [ { factor: "病情危重程度", weight: 35 }, { factor: "组织配型匹配", weight: 25 }, { factor: "等待时间", weight: 15 }, { factor: "地理因素", weight: 10 }, { factor: "年龄因素", weight: 15 } ] } }, { key: "organ_procurement", name: "器官获取", status: "pending", updateTime: "2025-12-03 16:00:00", operator: "待分配", details: { scheduledTime: "2025-12-04 14:00:00", operationRoom: "手术室一号", surgicalTeam: { surgeon: "待分配", assistant: "待分配", anesthesiologist: "待分配", nurse: "待分配" }, preservationPlan: { method: "低温机械灌注", solution: "UW保存液", temperature: "4°C" }, organs: [ { organ: "肝脏", planned: true, preservation: "待准备", estimatedTime: "4小时" }, { organ: "肾脏", planned: true, preservation: "待准备", estimatedTime: "3小时" }, { organ: "心脏", planned: true, preservation: "待准备", estimatedTime: "5小时" } ] } }, { key: "organ_utilization", name: "器官利用", status: "pending", updateTime: "2025-12-03 16:00:00", operator: "待分配", details: { transplantCenters: [ { hospital: "青岛大学附属医院", organ: "肝脏", recipient: "王先生", scheduledTime: "2025-12-04 18:00:00", surgicalTeam: "待确认" }, { hospital: "青岛市市立医院", organ: "肾脏", recipient: "李女士", scheduledTime: "2025-12-04 19:00:00", surgicalTeam: "待确认" } ], followupPlan: { frequency: "术后1个月、3个月、6个月、1年", items: ["肝功能检查", "免疫抑制剂浓度", "影像学检查"], coordinator: "待分配" }, qualityMetrics: { expectedSurvivalRate: 92, complicationRisk: "中等", successRate: 95 } } } ], // 新增时间线事件 timelineEvents: [ { time: "2025-12-01 08:00:00", event: "案例登记", operator: "李协调员", description: "捐献案例正式登记启动" }, { time: "2025-12-01 10:00:00", event: "供者维护完成", operator: "张医生", description: "完成供者生命体征维护和医疗管理" }, { time: "2025-12-02 14:30:00", event: "医学评估完成", operator: "李主任", description: "全面医学评估确认符合捐献标准" }, { time: "2025-12-03 09:15:00", event: "死亡判定完成", operator: "王医生", description: "脑死亡判定程序完成" }, { time: "2025-12-03 11:00:00", event: "捐献确认完成", operator: "赵协调员", description: "家属签署捐献同意书" }, { time: "2025-12-03 15:20:00", event: "伦理审查通过", operator: "伦理委员会", description: "伦理审查委员会全票通过" } ], // 新增统计信息 statistics: { totalStages: 8, completedStages: 5, completionRate: 62.5, timeElapsed: "2天6小时", estimatedCompletion: "2025-12-04 20:00:00", organsToDonate: 4, potentialRecipients: 3 } }; // 获取捐献进程详情 export const getDonationProcessDetail = async caseId => { await new Promise(resolve => setTimeout(resolve, 500)); // 模拟根据caseId返回不同数据 const data = JSON.parse(JSON.stringify(mockDonationProcessData)); data.caseInfo.id = caseId; return { code: 200, message: "success", data: data }; }; // 更新阶段状态 export const updateStageStatus = async (caseId, stageKey, status) => { await new Promise(resolve => setTimeout(resolve, 300)); // 模拟更新逻辑 const stage = mockDonationProcessData.processStages.find( s => s.key === stageKey ); if (stage) { stage.status = status; stage.updateTime = new Date() .toISOString() .replace("T", " ") .substring(0, 19); if (status === "completed") { stage.completeTime = stage.updateTime; } } return { code: 200, message: "阶段状态更新成功", data: { caseId, stageKey, status, updateTime: stage.updateTime } }; }; // 获取阶段详情 export const getStageDetail = async (caseId, stageKey) => { await new Promise(resolve => setTimeout(resolve, 200)); const stage = mockDonationProcessData.processStages.find( s => s.key === stageKey ); if (!stage) { return { code: 404, message: "阶段不存在", data: null }; } return { code: 200, message: "success", data: stage }; }; // 获取时间线事件 export const getTimelineEvents = async caseId => { await new Promise(resolve => setTimeout(resolve, 150)); return { code: 200, message: "success", data: mockDonationProcessData.timelineEvents }; }; // 获取案例统计信息 export const getCaseStatistics = async caseId => { await new Promise(resolve => setTimeout(resolve, 100)); return { code: 200, message: "success", data: mockDonationProcessData.statistics }; }; // 提交阶段审核 export const submitStageReview = async (caseId, stageKey, reviewData) => { await new Promise(resolve => setTimeout(resolve, 400)); return { code: 200, message: "审核提交成功", data: { caseId, stageKey, reviewId: `REV${Date.now()}`, submitTime: new Date() .toISOString() .replace("T", " ") .substring(0, 19), ...reviewData } }; }; // 上传阶段文件 export const uploadStageFile = async (caseId, stageKey, fileInfo) => { await new Promise(resolve => setTimeout(resolve, 500)); return { code: 200, message: "文件上传成功", data: { caseId, stageKey, fileId: `FILE${Date.now()}`, fileName: fileInfo.name, fileSize: fileInfo.size, uploadTime: new Date() .toISOString() .replace("T", " ") .substring(0, 19), url: `/files/${caseId}/${stageKey}/${fileInfo.name}` } }; }; export default { getDonationProcessDetail, updateStageStatus, getStageDetail, getTimelineEvents, getCaseStatistics, submitStageReview, uploadStageFile };