WXL
2026-03-19 5aa165156994b1b8a601063fa0a1107d1893ea57
src/views/business/course/donationProcess.js
@@ -1,48 +1,48 @@
// 模拟捐献进程数据
const mockDonationProcessData = {
  caseInfo: {
    id: '202512001',
    caseNo: 'C202512001',
    hospitalNo: 'D202512001',
    donorName: '张三',
    gender: '0',
    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',
    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: '王主任'
    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: '张医生',
      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',
        lastCheckup: "2025-12-01 09:30:00",
        vitalSigns: {
          heartRate: 75,
          bloodPressure: '118/76',
          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' }
          { 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,
@@ -54,218 +54,227 @@
      }
    },
    {
      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: 'donation_confirm',
      name: '捐献确认',
      status: 'completed',
      completeTime: '2025-12-03 11:00:00',
      updateTime: '2025-12-03 11:00:00',
      operator: '赵协调员',
      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: '李护士'
          mainRelative: "张父",
          relationship: "父子",
          consentTime: "2025-12-03 10:45:00",
          consentForm: "已签署",
          witness: "李护士"
        },
        donationType: '多器官捐献',
        organs: ['肝脏', '肾脏', '心脏', '角膜'],
        legalDocuments: [
          '器官捐献同意书',
          '家属关系证明',
          '医疗免责声明'
        ],
        coordinator: '赵协调员',
        confirmationTime: '2025-12-03 11:00:00'
        donationType: "多器官捐献",
        organs: ["肝脏", "肾脏", "心脏", "角膜"],
        legalDocuments: ["器官捐献同意书", "家属关系证明", "医疗免责声明"],
        coordinator: "赵协调员",
        confirmationTime: "2025-12-03 11:00:00"
      }
    },
    {
      key: 'ethical_review',
      name: '伦理审查',
      status: 'in_progress',
      completeTime: '2025-12-03 15:20:00',
      updateTime: '2025-12-03 15:20:00',
      operator: '伦理委员会',
      key: "medical_assessment",
      name: "医学评估",
      status: "completed",
      completeTime: "2025-12-02 14:30:00",
      updateTime: "2025-12-02 14:30:00",
      operator: "李主任",
      details: {
        committee: '医院伦理审查委员会',
        meetingTime: '2025-12-03 14:00:00',
        members: ['张教授', '李主任', '王医生', '赵委员', '钱专家'],
        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: '全票通过' }
          { item: "捐献意愿真实性", result: "确认真实", vote: "全票通过" },
          { item: "医学评估准确性", result: "确认准确", vote: "全票通过" },
          { item: "法律文件完整性", result: "确认完整", vote: "全票通过" }
        ],
        conclusion: '符合伦理要求,同意进行器官捐献',
        resolutionNo: 'LL20251203001'
        conclusion: "符合伦理要求,同意进行器官捐献",
        resolutionNo: "LL20251203001"
      }
    },
    {
      key: 'organ_allocation',
      name: '器官分配',
      status: 'pending',
      updateTime: '2025-12-04 10:00:00',
      operator: '分配系统',
      key: "organ_allocation",
      name: "器官分配",
      status: "pending",
      updateTime: "2025-12-04 10:00:00",
      operator: "分配系统",
      details: {
        allocationStartTime: '2025-12-04 09:00:00',
        allocationSystem: '中国人体器官分配与共享计算机系统',
        allocationStartTime: "2025-12-04 09:00:00",
        allocationSystem: "中国人体器官分配与共享计算机系统",
        organs: [
          {
            organ: '肝脏',
            status: '分配中',
            organ: "肝脏",
            status: "分配中",
            matchScore: 95,
            recommendedRecipient: '王先生',
            recommendedRecipient: "王先生",
            recipientAge: 45,
            recipientBloodType: 'A',
            hospital: '北京协和医院',
            urgency: '紧急'
            recipientBloodType: "A",
            hospital: "青岛大学附属医院",
            urgency: "紧急"
          },
          {
            organ: '肾脏',
            status: '匹配完成',
            organ: "肾脏",
            status: "匹配完成",
            matchScore: 92,
            recommendedRecipient: '李女士',
            recommendedRecipient: "李女士",
            recipientAge: 38,
            recipientBloodType: 'A',
            hospital: '上海瑞金医院',
            urgency: '高'
            recipientBloodType: "A",
            hospital: "青岛市市立医院",
            urgency: "高"
          },
          {
            organ: '心脏',
            status: '待分配',
            organ: "心脏",
            status: "待分配",
            matchScore: 88,
            recommendedRecipient: '陈先生',
            recommendedRecipient: "陈先生",
            recipientAge: 52,
            recipientBloodType: 'O',
            hospital: '广州中山医院',
            urgency: '紧急'
            recipientBloodType: "O",
            hospital: "山东大学齐鲁医院",
            urgency: "紧急"
          }
        ],
        allocationFactors: [
          { factor: '病情危重程度', weight: 35 },
          { factor: '组织配型匹配', weight: 25 },
          { factor: '等待时间', weight: 15 },
          { factor: '地理因素', weight: 10 },
          { factor: '年龄因素', weight: 15 }
          { 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: '待分配',
      key: "organ_procurement",
      name: "器官获取",
      status: "pending",
      updateTime: "2025-12-03 16:00:00",
      operator: "待分配",
      details: {
        scheduledTime: '2025-12-04 14:00:00',
        operationRoom: '手术室一号',
        scheduledTime: "2025-12-04 14:00:00",
        operationRoom: "手术室一号",
        surgicalTeam: {
          surgeon: '待分配',
          assistant: '待分配',
          anesthesiologist: '待分配',
          nurse: '待分配'
          surgeon: "待分配",
          assistant: "待分配",
          anesthesiologist: "待分配",
          nurse: "待分配"
        },
        preservationPlan: {
          method: '低温机械灌注',
          solution: 'UW保存液',
          temperature: '4°C'
          method: "低温机械灌注",
          solution: "UW保存液",
          temperature: "4°C"
        },
        organs: [
          {
            organ: '肝脏',
            organ: "肝脏",
            planned: true,
            preservation: '待准备',
            estimatedTime: '4小时'
            preservation: "待准备",
            estimatedTime: "4小时"
          },
          {
            organ: '肾脏',
            organ: "肾脏",
            planned: true,
            preservation: '待准备',
            estimatedTime: '3小时'
            preservation: "待准备",
            estimatedTime: "3小时"
          },
          {
            organ: '心脏',
            organ: "心脏",
            planned: true,
            preservation: '待准备',
            estimatedTime: '5小时'
            preservation: "待准备",
            estimatedTime: "5小时"
          }
        ]
      }
    },
    {
      key: 'organ_utilization',
      name: '器官利用',
      status: 'pending',
      updateTime: '2025-12-03 16:00:00',
      operator: '待分配',
      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 18:00:00",
            surgicalTeam: "待确认"
          },
          {
            hospital: '上海瑞金医院',
            organ: '肾脏',
            recipient: '李女士',
            scheduledTime: '2025-12-04 19:00:00',
            surgicalTeam: '待确认'
            hospital: "青岛市市立医院",
            organ: "肾脏",
            recipient: "李女士",
            scheduledTime: "2025-12-04 19:00:00",
            surgicalTeam: "待确认"
          }
        ],
        followupPlan: {
          frequency: '术后1个月、3个月、6个月、1年',
          items: ['肝功能检查', '免疫抑制剂浓度', '影像学检查'],
          coordinator: '待分配'
          frequency: "术后1个月、3个月、6个月、1年",
          items: ["肝功能检查", "免疫抑制剂浓度", "影像学检查"],
          coordinator: "待分配"
        },
        qualityMetrics: {
          expectedSurvivalRate: 92,
          complicationRisk: '中等',
          complicationRisk: "中等",
          successRate: 95
        }
      }
@@ -274,40 +283,40 @@
  // 新增时间线事件
  timelineEvents: [
    {
      time: '2025-12-01 08:00:00',
      event: '案例登记',
      operator: '李协调员',
      description: '捐献案例正式登记启动'
      time: "2025-12-01 08:00:00",
      event: "案例登记",
      operator: "李协调员",
      description: "捐献案例正式登记启动"
    },
    {
      time: '2025-12-01 10: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-02 14:30:00",
      event: "医学评估完成",
      operator: "李主任",
      description: "全面医学评估确认符合捐献标准"
    },
    {
      time: '2025-12-03 09:15: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 11:00:00",
      event: "捐献确认完成",
      operator: "赵协调员",
      description: "家属签署捐献同意书"
    },
    {
      time: '2025-12-03 15:20:00',
      event: '伦理审查通过',
      operator: '伦理委员会',
      description: '伦理审查委员会全票通过'
      time: "2025-12-03 15:20:00",
      event: "伦理审查通过",
      operator: "伦理委员会",
      description: "伦理审查委员会全票通过"
    }
  ],
  // 新增统计信息
@@ -315,15 +324,15 @@
    totalStages: 8,
    completedStages: 5,
    completionRate: 62.5,
    timeElapsed: '2天6小时',
    estimatedCompletion: '2025-12-04 20:00:00',
    timeElapsed: "2天6小时",
    estimatedCompletion: "2025-12-04 20:00:00",
    organsToDonate: 4,
    potentialRecipients: 3
  }
};
// 获取捐献进程详情
export const getDonationProcessDetail = async (caseId) => {
export const getDonationProcessDetail = async caseId => {
  await new Promise(resolve => setTimeout(resolve, 500));
  // 模拟根据caseId返回不同数据
@@ -332,7 +341,7 @@
  return {
    code: 200,
    message: 'success',
    message: "success",
    data: data
  };
};
@@ -342,19 +351,24 @@
  await new Promise(resolve => setTimeout(resolve, 300));
  // 模拟更新逻辑
  const stage = mockDonationProcessData.processStages.find(s => s.key === stageKey);
  const stage = mockDonationProcessData.processStages.find(
    s => s.key === stageKey
  );
  if (stage) {
    stage.status = status;
    stage.updateTime = new Date().toISOString().replace('T', ' ').substring(0, 19);
    stage.updateTime = new Date()
      .toISOString()
      .replace("T", " ")
      .substring(0, 19);
    if (status === 'completed') {
    if (status === "completed") {
      stage.completeTime = stage.updateTime;
    }
  }
  return {
    code: 200,
    message: '阶段状态更新成功',
    message: "阶段状态更新成功",
    data: {
      caseId,
      stageKey,
@@ -368,40 +382,42 @@
export const getStageDetail = async (caseId, stageKey) => {
  await new Promise(resolve => setTimeout(resolve, 200));
  const stage = mockDonationProcessData.processStages.find(s => s.key === stageKey);
  const stage = mockDonationProcessData.processStages.find(
    s => s.key === stageKey
  );
  if (!stage) {
    return {
      code: 404,
      message: '阶段不存在',
      message: "阶段不存在",
      data: null
    };
  }
  return {
    code: 200,
    message: 'success',
    message: "success",
    data: stage
  };
};
// 获取时间线事件
export const getTimelineEvents = async (caseId) => {
export const getTimelineEvents = async caseId => {
  await new Promise(resolve => setTimeout(resolve, 150));
  return {
    code: 200,
    message: 'success',
    message: "success",
    data: mockDonationProcessData.timelineEvents
  };
};
// 获取案例统计信息
export const getCaseStatistics = async (caseId) => {
export const getCaseStatistics = async caseId => {
  await new Promise(resolve => setTimeout(resolve, 100));
  return {
    code: 200,
    message: 'success',
    message: "success",
    data: mockDonationProcessData.statistics
  };
};
@@ -412,12 +428,15 @@
  return {
    code: 200,
    message: '审核提交成功',
    message: "审核提交成功",
    data: {
      caseId,
      stageKey,
      reviewId: `REV${Date.now()}`,
      submitTime: new Date().toISOString().replace('T', ' ').substring(0, 19),
      submitTime: new Date()
        .toISOString()
        .replace("T", " ")
        .substring(0, 19),
      ...reviewData
    }
  };
@@ -429,14 +448,17 @@
  return {
    code: 200,
    message: '文件上传成功',
    message: "文件上传成功",
    data: {
      caseId,
      stageKey,
      fileId: `FILE${Date.now()}`,
      fileName: fileInfo.name,
      fileSize: fileInfo.size,
      uploadTime: new Date().toISOString().replace('T', ' ').substring(0, 19),
      uploadTime: new Date()
        .toISOString()
        .replace("T", " ")
        .substring(0, 19),
      url: `/files/${caseId}/${stageKey}/${fileInfo.name}`
    }
  };