// 模拟供者维护API const maintenanceData = { rows: [ { id: 1, maintenanceId: 'WH202312001', caseNo: 'QJ202312001', donorName: '张某某', gender: '0', age: '45', diagnosis: '重型颅脑损伤', hospitalName: '北京市第一人民医院', patientStatus: '1', admissionTime: '2023-12-01 08:00:00', dischargeTime: '', coordinator: '协调员A', latestCultureResult: '阴性', lastRecordTime: '2023-12-03 14:30:00', bloodType: 'A', rhFactor: 'positive', specialMedicalHistory: '无特殊病史', incompleteReason: '' }, { id: 2, maintenanceId: 'WH202312002', caseNo: 'QJ202312002', donorName: '李某某', gender: '1', age: '32', diagnosis: '脑出血', hospitalName: '上海市中心医院', patientStatus: '2', admissionTime: '2023-11-28 10:30:00', dischargeTime: '', coordinator: '协调员B', latestCultureResult: '阳性', lastRecordTime: '2023-12-03 16:20:00', bloodType: 'B', rhFactor: 'positive', specialMedicalHistory: '高血压病史5年', incompleteReason: '' }, { id: 3, maintenanceId: 'WH202312003', caseNo: 'QJ202312003', donorName: '王某某', gender: '0', age: '58', diagnosis: '心脏骤停后脑损伤', hospitalName: '广州市人民医院', patientStatus: '4', admissionTime: '2023-11-25 09:15:00', dischargeTime: '2023-12-02 14:00:00', coordinator: '协调员C', latestCultureResult: '阴性', lastRecordTime: '2023-12-02 10:00:00', bloodType: 'O', rhFactor: 'negative', specialMedicalHistory: '糖尿病史10年', incompleteReason: '' }, { id: 4, maintenanceId: 'WH202312004', caseNo: 'QJ202312004', donorName: '赵某某', gender: '1', age: '29', diagnosis: '交通事故颅脑损伤', hospitalName: '深圳市中心医院', patientStatus: '5', admissionTime: '2023-12-01 15:45:00', dischargeTime: '2023-12-04 11:20:00', coordinator: '协调员D', latestCultureResult: '阴性', lastRecordTime: '2023-12-03 09:15:00', bloodType: 'AB', rhFactor: 'positive', specialMedicalHistory: '无', incompleteReason: '家属临时改变决定' } ], total: 4 }; // 护理核查记录数据 const nursingRecordsData = { rows: [ { id: 1, maintenanceId: 'WH202312001', recordTime: '2023-12-03 08:00:00', recorder: '张护士', temperature: '36.5', heartRate: '78', bloodPressure: '120/80', respirationRate: '18', oxygenSaturation: '98', urineOutput: '50', consciousness: '清醒', pupilLeft: '2.5mm', pupilRight: '2.5mm', lightReflexLeft: '灵敏', lightReflexRight: '灵敏', ventilatorMode: 'SIMV', fio2: '40%', peep: '5cmH2O', cvp: '8mmHg', bloodSugar: '5.6', remarks: '生命体征平稳' }, { id: 2, maintenanceId: 'WH202312001', recordTime: '2023-12-03 12:00:00', recorder: '李护士', temperature: '36.8', heartRate: '82', bloodPressure: '118/76', respirationRate: '16', oxygenSaturation: '99', urineOutput: '45', consciousness: '清醒', pupilLeft: '2.5mm', pupilRight: '2.5mm', lightReflexLeft: '灵敏', lightReflexRight: '灵敏', ventilatorMode: 'SIMV', fio2: '40%', peep: '5cmH2O', cvp: '9mmHg', bloodSugar: '5.8', remarks: '情况稳定' } ], total: 2 }; // 培养结果数据 const cultureResultsData = { rows: [ { id: 1, maintenanceId: 'WH202312001', cultureType: '1', sampleTime: '2023-12-01 10:00:00', result: '阴性', bacteria: '', drugSensitivity: '', testingInstitution: '检验科', specimenType: '血液', collectionMethod: '静脉采血' }, { id: 2, maintenanceId: 'WH202312001', cultureType: '2', sampleTime: '2023-12-02 14:30:00', result: '阳性', bacteria: '肺炎克雷伯菌', drugSensitivity: '对头孢类敏感,对青霉素耐药', testingInstitution: '微生物室', specimenType: '痰液', collectionMethod: '深部咳痰' }, { id: 3, maintenanceId: 'WH202312002', cultureType: '1', sampleTime: '2023-12-03 09:15:00', result: '阳性', bacteria: '金黄色葡萄球菌', drugSensitivity: '对万古霉素敏感', testingInstitution: '检验科', specimenType: '血液', collectionMethod: '中心静脉采血' } ], total: 3 }; // 获取供者维护列表 export function listMaintenance(params) { return new Promise((resolve) => { setTimeout(() => { const { pageNum = 1, pageSize = 10, donorName, hospitalName, patientStatus, medicalStaff } = params; // 深拷贝数据避免污染 let filteredData = JSON.parse(JSON.stringify(maintenanceData.rows)); // 模拟筛选逻辑 if (donorName) { filteredData = filteredData.filter(item => item.donorName && item.donorName.includes(donorName) ); } if (hospitalName) { filteredData = filteredData.filter(item => item.hospitalName && item.hospitalName.includes(hospitalName) ); } if (patientStatus) { filteredData = filteredData.filter(item => item.patientStatus === patientStatus); } if (medicalStaff) { filteredData = filteredData.filter(item => item.coordinator && item.coordinator.includes(medicalStaff) ); } // 分页处理 const start = (pageNum - 1) * pageSize; const end = start + pageSize; const pageData = filteredData.slice(start, end); resolve({ code: 200, data: { rows: pageData, total: filteredData.length, pageNum: parseInt(pageNum), pageSize: parseInt(pageSize) }, message: '获取成功' }); }, 500); }); } // 获取供者维护详情 export function getMaintenanceDetail(id) { return new Promise((resolve) => { setTimeout(() => { const detail = maintenanceData.rows.find(item => item.id == id); if (detail) { resolve({ code: 200, data: detail, message: '获取成功' }); } else { resolve({ code: 404, data: null, message: '数据不存在' }); } }, 300); }); } // 更新供者维护信息 export function updateMaintenance(data) { return new Promise((resolve) => { setTimeout(() => { const index = maintenanceData.rows.findIndex(item => item.id === data.id); if (index !== -1) { maintenanceData.rows[index] = { ...maintenanceData.rows[index], ...data }; resolve({ code: 200, message: '更新成功', data: maintenanceData.rows[index] }); } else { resolve({ code: 404, message: '数据不存在', data: null }); } }, 300); }); } // 删除供者维护 export function delMaintenance(ids) { return new Promise((resolve) => { setTimeout(() => { const originalLength = maintenanceData.rows.length; maintenanceData.rows = maintenanceData.rows.filter( item => !ids.includes(item.id) ); maintenanceData.total = maintenanceData.rows.length; if (maintenanceData.rows.length < originalLength) { resolve({ code: 200, message: '删除成功', data: { deletedCount: originalLength - maintenanceData.rows.length } }); } else { resolve({ code: 404, message: '未找到要删除的数据', data: null }); } }, 300); }); } // 导出供者维护数据 export function exportMaintenance(params) { return new Promise((resolve) => { setTimeout(() => { // 模拟导出数据处理 const exportData = maintenanceData.rows.map(item => ({ '案例编号': item.caseNo, '捐献者姓名': item.donorName, '性别': item.gender === '0' ? '男' : '女', '年龄': item.age, '疾病诊断': item.diagnosis, '医疗机构': item.hospitalName, '患者状态': getPatientStatusText(item.patientStatus), '入院时间': item.admissionTime, '出院时间': item.dischargeTime || '', '最新培养结果': item.latestCultureResult, '协调员': item.coordinator })); resolve({ code: 200, data: { downloadUrl: '/download/maintenance_export.xlsx', fileName: `供者维护数据_${new Date().toISOString().split('T')[0]}.xlsx`, recordCount: exportData.length }, message: '导出成功' }); }, 1000); }); } // 工具函数 function getPatientStatusText(status) { const statusMap = { '1': 'DCD', '2': 'DBD', '3': 'DBCD', '4': '已完成捐献', '5': '未完成捐献' }; return statusMap[status] || '未知'; } // 批量操作 export function batchUpdateMaintenance(updateData) { return new Promise((resolve) => { setTimeout(() => { const { ids, updateFields } = updateData; let successCount = 0; maintenanceData.rows.forEach(item => { if (ids.includes(item.id)) { Object.assign(item, updateFields); successCount++; } }); resolve({ code: 200, data: { successCount, totalCount: ids.length }, message: `成功更新${successCount}条记录` }); }, 500); }); } // 培养结果相关API export function listCultureResults(maintenanceId, params = {}) { return new Promise((resolve) => { setTimeout(() => { const { pageNum = 1, pageSize = 10 } = params; let filteredData = cultureResultsData.rows.filter(item => item.maintenanceId === maintenanceId ); // 按采样时间倒序排列 filteredData.sort((a, b) => new Date(b.sampleTime) - new Date(a.sampleTime)); const start = (pageNum - 1) * pageSize; const end = start + pageSize; const pageData = filteredData.slice(start, end); resolve({ code: 200, data: { rows: pageData, total: filteredData.length, pageNum: parseInt(pageNum), pageSize: parseInt(pageSize) }, message: '获取成功' }); }, 300); }); } export function addCultureResult(cultureData) { return new Promise((resolve) => { setTimeout(() => { const newCulture = { id: Date.now(), ...cultureData, createTime: new Date().toISOString() }; cultureResultsData.rows.unshift(newCulture); cultureResultsData.total = cultureResultsData.rows.length; resolve({ code: 200, data: newCulture, message: '新增成功' }); }, 300); }); } export function updateCultureResult(cultureData) { return new Promise((resolve) => { setTimeout(() => { const index = cultureResultsData.rows.findIndex(item => item.id === cultureData.id); if (index !== -1) { cultureResultsData.rows[index] = { ...cultureResultsData.rows[index], ...cultureData, updateTime: new Date().toISOString() }; resolve({ code: 200, data: cultureResultsData.rows[index], message: '更新成功' }); } else { resolve({ code: 404, data: null, message: '数据不存在' }); } }, 300); }); } export function deleteCultureResult(id) { return new Promise((resolve) => { setTimeout(() => { const index = cultureResultsData.rows.findIndex(item => item.id === id); if (index !== -1) { cultureResultsData.rows.splice(index, 1); cultureResultsData.total = cultureResultsData.rows.length; resolve({ code: 200, message: '删除成功' }); } else { resolve({ code: 404, message: '数据不存在' }); } }, 300); }); } // 护理核查记录相关API export function listNursingRecords(maintenanceId, params = {}) { return new Promise((resolve) => { setTimeout(() => { const { pageNum = 1, pageSize = 10 } = params; let filteredData = nursingRecordsData.rows.filter(item => item.maintenanceId === maintenanceId ); // 按记录时间倒序排列 filteredData.sort((a, b) => new Date(b.recordTime) - new Date(a.recordTime)); const start = (pageNum - 1) * pageSize; const end = start + pageSize; const pageData = filteredData.slice(start, end); resolve({ code: 200, data: { rows: pageData, total: filteredData.length, pageNum: parseInt(pageNum), pageSize: parseInt(pageSize) }, message: '获取成功' }); }, 300); }); } export function addNursingRecord(recordData) { return new Promise((resolve) => { setTimeout(() => { const newRecord = { id: Date.now(), ...recordData, createTime: new Date().toISOString() }; nursingRecordsData.rows.unshift(newRecord); nursingRecordsData.total = nursingRecordsData.rows.length; resolve({ code: 200, data: newRecord, message: '新增成功' }); }, 300); }); } export function updateNursingRecord(recordData) { return new Promise((resolve) => { setTimeout(() => { const index = nursingRecordsData.rows.findIndex(item => item.id === recordData.id); if (index !== -1) { nursingRecordsData.rows[index] = { ...nursingRecordsData.rows[index], ...recordData, updateTime: new Date().toISOString() }; resolve({ code: 200, data: nursingRecordsData.rows[index], message: '更新成功' }); } else { resolve({ code: 404, data: null, message: '数据不存在' }); } }, 300); }); } export function deleteNursingRecord(id) { return new Promise((resolve) => { setTimeout(() => { const index = nursingRecordsData.rows.findIndex(item => item.id === id); if (index !== -1) { nursingRecordsData.rows.splice(index, 1); nursingRecordsData.total = nursingRecordsData.rows.length; resolve({ code: 200, message: '删除成功' }); } else { resolve({ code: 404, message: '数据不存在' }); } }, 300); }); }