// 模拟供者维护API
|
const maintenanceData = {
|
rows: [
|
{
|
id: 1,
|
maintenanceId: 'WH202512001',
|
caseNo: 'QJ202512001',
|
donorName: '张某某',
|
gender: '0',
|
age: '45',
|
diagnosis: '重型颅脑损伤',
|
hospitalName: '青岛大学附属医院',
|
patientStatus: '1',
|
admissionTime: '2025-12-01 08:00:00',
|
dischargeTime: '',
|
coordinator: '协调员A',
|
latestCultureResult: '阴性',
|
lastRecordTime: '2025-12-03 14:30:00',
|
bloodType: 'A',
|
rhFactor: 'positive',
|
specialMedicalHistory: '无特殊病史',
|
incompleteReason: ''
|
},
|
{
|
id: 2,
|
maintenanceId: 'WH202512002',
|
caseNo: 'QJ202512002',
|
donorName: '李某某',
|
gender: '1',
|
age: '32',
|
diagnosis: '脑出血',
|
hospitalName: '青岛大学附属医院',
|
patientStatus: '2',
|
admissionTime: '2025-11-28 10:30:00',
|
dischargeTime: '',
|
coordinator: '协调员B',
|
latestCultureResult: '阳性',
|
lastRecordTime: '2025-12-03 16:20:00',
|
bloodType: 'B',
|
rhFactor: 'positive',
|
specialMedicalHistory: '高血压病史5年',
|
incompleteReason: ''
|
},
|
{
|
id: 3,
|
maintenanceId: 'WH202512003',
|
caseNo: 'QJ202512003',
|
donorName: '王某某',
|
gender: '0',
|
age: '58',
|
diagnosis: '心脏骤停后脑损伤',
|
hospitalName: '青岛大学附属医院',
|
patientStatus: '4',
|
admissionTime: '2025-11-25 09:15:00',
|
dischargeTime: '2025-12-02 14:00:00',
|
coordinator: '协调员C',
|
latestCultureResult: '阴性',
|
lastRecordTime: '2025-12-02 10:00:00',
|
bloodType: 'O',
|
rhFactor: 'negative',
|
specialMedicalHistory: '糖尿病史10年',
|
incompleteReason: ''
|
},
|
{
|
id: 4,
|
maintenanceId: 'WH202512004',
|
caseNo: 'QJ202512004',
|
donorName: '赵某某',
|
gender: '1',
|
age: '29',
|
diagnosis: '交通事故颅脑损伤',
|
hospitalName: '青岛大学附属医院',
|
patientStatus: '5',
|
admissionTime: '2025-12-01 15:45:00',
|
dischargeTime: '2025-12-04 11:20:00',
|
coordinator: '协调员D',
|
latestCultureResult: '阴性',
|
lastRecordTime: '2025-12-03 09:15:00',
|
bloodType: 'AB',
|
rhFactor: 'positive',
|
specialMedicalHistory: '无',
|
incompleteReason: '家属临时改变决定'
|
}
|
],
|
total: 4
|
};
|
|
// 护理核查记录数据
|
const nursingRecordsData = {
|
rows: [
|
{
|
id: 1,
|
maintenanceId: 'WH202512001',
|
recordTime: '2025-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: 'WH202512001',
|
recordTime: '2025-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: 'WH202512001',
|
cultureType: '1',
|
sampleTime: '2025-12-01 10:00:00',
|
result: '阴性',
|
bacteria: '',
|
drugSensitivity: '',
|
testingInstitution: '检验科',
|
specimenType: '血液',
|
collectionMethod: '静脉采血'
|
},
|
{
|
id: 2,
|
maintenanceId: 'WH202512001',
|
cultureType: '2',
|
sampleTime: '2025-12-02 14:30:00',
|
result: '阳性',
|
bacteria: '肺炎克雷伯菌',
|
drugSensitivity: '对头孢类敏感,对青霉素耐药',
|
testingInstitution: '微生物室',
|
specimenType: '痰液',
|
collectionMethod: '深部咳痰'
|
},
|
{
|
id: 3,
|
maintenanceId: 'WH202512002',
|
cultureType: '1',
|
sampleTime: '2025-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);
|
});
|
}
|