24.绑定排班的 不管有没有号源 都要在 医生端 显示出来

main
鹿和sa0ChunLuyu 3 days ago
parent 2a95953731
commit 3f71eb569c

@ -156,46 +156,49 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
$appointment_dates_placeholders = implode(',', array_fill(0, count($appointment_date_arr), '?')); $appointment_dates_placeholders = implode(',', array_fill(0, count($appointment_date_arr), '?'));
if ($isDeviceMode) { if ($isDeviceMode) {
//设备模式:不限制科室,只按单渠道查号源,渠道合路后置处理 //设备模式以排班资源为主表LEFT JOIN 排班明细
$patientType = $commPatientType[0] ?? '0';
if ($useScopeDept && !empty($deptIds)) { if ($useScopeDept && !empty($deptIds)) {
$deptPlaceholders = implode(',', array_fill(0, count($deptIds), '?')); $deptPlaceholders = implode(',', array_fill(0, count($deptIds), '?'));
$canshu = array_merge($commonDevice, $appointment_date_arr, $deptIds, [$appointment_type]); $canshu = array_merge($commonDevice, [$patientType], $appointment_date_arr, [$appointment_type], $commonDevice, $deptIds);
$deptCondition = "AND a.department_id IN ($deptPlaceholders)"; $deptCondition = "AND b.department_id IN ($deptPlaceholders)";
} else { } else {
$canshu = array_merge($commonDevice, $appointment_date_arr, [$appointment_type]); $canshu = array_merge($commonDevice, [$patientType], $appointment_date_arr, [$appointment_type], $commonDevice);
$deptCondition = ''; $deptCondition = '';
} }
$plan = DB::select("SELECT $plan = DB::select("SELECT
a.*, b.id AS resource_id,
dd.devices,
b.department_resources_name, b.department_resources_name,
b.department_id AS resource_department_id,
dept.department_number,
a.*,
c.roster_detail_id, c.roster_detail_id,
c.count, c.count,
c.used_count, c.used_count,
c.locked_count c.locked_count,
dd.devices
FROM FROM
s_source_roster_detail AS a s_department_resources AS b
LEFT JOIN s_department_resources AS b ON a.resources_id = b.id JOIN s_department_resources_device AS rd ON b.id = rd.rsourece_id AND rd.device_id IN ($placeholders)
LEFT JOIN s_source_roster_detail_count AS c ON a.id = c.roster_detail_id LEFT JOIN s_department AS dept ON b.department_id = dept.id
JOIN ( LEFT JOIN s_source_roster_detail AS a ON a.resources_id = b.id AND FIND_IN_SET(?, a.patient_type) AND a.date IN ($appointment_dates_placeholders) AND a.is_del = 0
LEFT JOIN s_source_roster_detail_count AS c ON c.roster_detail_id = a.id AND c.appointment_type_id = ?
LEFT JOIN (
SELECT SELECT
roster_detail_id, rd2.rsourece_id,
GROUP_CONCAT( e.device_name SEPARATOR ', ' ) AS devices GROUP_CONCAT( e.device_name SEPARATOR ', ' ) AS devices
FROM FROM
s_source_roster_detail_device AS d s_department_resources_device AS rd2
LEFT JOIN s_devices AS e ON d.device_id = e.id LEFT JOIN s_devices AS e ON rd2.device_id = e.id
WHERE WHERE
d.device_id IN ($placeholders) rd2.device_id IN ($placeholders)
GROUP BY GROUP BY
d.roster_detail_id rd2.rsourece_id
) AS dd ON a.id = dd.roster_detail_id ) AS dd ON b.id = dd.rsourece_id
WHERE WHERE
a.date IN ($appointment_dates_placeholders) b.is_del = 0
$deptCondition
AND a.STATUS = 1
AND a.is_del = 0
AND b.is_del = 0
AND b.appointment_enabled = 1 AND b.appointment_enabled = 1
$deptCondition
AND ( AND (
b.execute_department_id IS NULL b.execute_department_id IS NULL
OR b.execute_department_id = 0 OR b.execute_department_id = 0
@ -206,55 +209,59 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
AND appointment_enabled = 1 AND appointment_enabled = 1
AND department_status = 1 AND department_status = 1
) )
) )", $canshu);
AND c.appointment_type_id = ?", $canshu);
foreach ($plan as $p) { foreach ($plan as $p) {
if (!empty($p->id)) {
$p->used_count = $p->used_count + ($p->locked_count ?? 0); $p->used_count = $p->used_count + ($p->locked_count ?? 0);
} }
}
$plan = $this->mergeChannelsPerDepartment($plan, $appointment_type); $plan = $this->mergeChannelsPerDepartment($plan, $appointment_type);
} else { } else {
//科室模式:原有逻辑 //科室模式以排班资源为主表LEFT JOIN 排班明细
$patientType = $commPatientType[0] ?? '0';
if ($useScopeDept) { if ($useScopeDept) {
$deptPlaceholders = implode(',', array_fill(0, count($deptIds), '?')); $deptPlaceholders = implode(',', array_fill(0, count($deptIds), '?'));
$canshu = array_merge($commonDevice, $deptIds, $appointment_date_arr, $appointment_types); $canshu = array_merge($commonDevice, [$patientType], $appointment_date_arr, $appointment_types, $commonDevice, $deptIds);
$deptCondition = "a.department_id IN ($deptPlaceholders)"; $deptCondition = "b.department_id IN ($deptPlaceholders)";
} else { } else {
$canshu = array_merge($commonDevice, [$department_id->id], $appointment_date_arr, $appointment_types); $canshu = array_merge($commonDevice, [$patientType], $appointment_date_arr, $appointment_types, $commonDevice, [$department_id->id]);
$deptCondition = "a.department_id = ?"; $deptCondition = "b.department_id = ?";
} }
$plan = DB::select("SELECT $plan = DB::select("SELECT
a.*, b.id AS resource_id,
dd.devices,
b.department_resources_name, b.department_resources_name,
b.department_id AS resource_department_id,
dept.department_number,
a.*,
c.roster_detail_id, c.roster_detail_id,
c.count, c.count,
c.used_count, c.used_count,
c.locked_count c.locked_count,
dd.devices
FROM FROM
s_source_roster_detail AS a s_department_resources AS b
LEFT JOIN s_department_resources AS b ON a.resources_id = b.id JOIN s_department_resources_device AS rd ON b.id = rd.rsourece_id AND rd.device_id IN ($placeholders)
LEFT JOIN s_source_roster_detail_count AS c ON a.id = c.roster_detail_id LEFT JOIN s_department AS dept ON b.department_id = dept.id
JOIN ( LEFT JOIN s_source_roster_detail AS a ON a.resources_id = b.id AND FIND_IN_SET(?, a.patient_type) AND a.date IN ($appointment_dates_placeholders) AND a.is_del = 0
LEFT JOIN s_source_roster_detail_count AS c ON c.roster_detail_id = a.id AND c.appointment_type_id IN ($appointment_types_placeholders)
LEFT JOIN (
SELECT SELECT
roster_detail_id, rd2.rsourece_id,
GROUP_CONCAT( e.device_name SEPARATOR ', ' ) AS devices GROUP_CONCAT( e.device_name SEPARATOR ', ' ) AS devices
FROM FROM
s_source_roster_detail_device AS d s_department_resources_device AS rd2
LEFT JOIN s_devices AS e ON d.device_id = e.id LEFT JOIN s_devices AS e ON rd2.device_id = e.id
WHERE WHERE
d.device_id IN ($placeholders) rd2.device_id IN ($placeholders)
GROUP BY GROUP BY
d.roster_detail_id rd2.rsourece_id
) AS dd ON a.id = dd.roster_detail_id ) AS dd ON b.id = dd.rsourece_id
WHERE WHERE
$deptCondition b.is_del = 0
AND a.date IN ($appointment_dates_placeholders)
AND a.STATUS = 1
AND a.is_del = 0
AND b.is_del = 0
AND b.appointment_enabled = 1 AND b.appointment_enabled = 1
AND $deptCondition
AND ( AND (
b.execute_department_id IS NULL b.execute_department_id IS NULL
OR b.execute_department_id = 0 OR b.execute_department_id = 0
@ -265,11 +272,11 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
AND appointment_enabled = 1 AND appointment_enabled = 1
AND department_status = 1 AND department_status = 1
) )
) )", $canshu);
AND c.appointment_type_id IN ($appointment_types_placeholders)", $canshu);
$mergedPlan = []; $mergedPlan = [];
foreach ($plan as $key => $p) { foreach ($plan as $key => $p) {
if (!empty($p->id)) {
$p->used_count = $p->used_count + ($p->locked_count ?? 0); $p->used_count = $p->used_count + ($p->locked_count ?? 0);
if (isset($mergedPlan[$p->roster_detail_id])) { if (isset($mergedPlan[$p->roster_detail_id])) {
$mergedPlan[$p->roster_detail_id]->count += $p->count; $mergedPlan[$p->roster_detail_id]->count += $p->count;
@ -277,6 +284,10 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
} else { } else {
$mergedPlan[$p->roster_detail_id] = $p; $mergedPlan[$p->roster_detail_id] = $p;
} }
} else {
// 排班明细为 NULL暂无号源不参与渠道合并直接保留
$mergedPlan[] = $p;
}
} }
$plan = array_values($mergedPlan); $plan = array_values($mergedPlan);
@ -293,6 +304,8 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
$debugPassed = []; // 记录通过的 $debugPassed = []; // 记录通过的
$pl1 = []; $pl1 = [];
$pl2 = []; $pl2 = [];
$disabledPlans = []; // status=0 的排班明细
$enabledResourceIds = []; // 有 status=1 明细的排班资源ID集合
$pp = []; $pp = [];
$nowtime = date('Y-m-d H:i:s'); $nowtime = date('Y-m-d H:i:s');
@ -320,13 +333,24 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
]); ]);
foreach ($plan as $key => $p) { foreach ($plan as $key => $p) {
// //病人类型不符合的过滤掉 // 排班明细为 NULL无排班明细或患者类型不匹配直接丢弃
$planPatientType = explode(",", $p->patient_type); if (empty($p->id)) {
$diff = array_diff($commPatientType, $planPatientType);
if (!empty($diff)) {
$debugSkipped[] = ['rid' => $p->resources_id, 'reason' => 'patient_type', 'planTypes' => $p->patient_type, 'commTypes' => $commPatientType, 'diff' => array_values($diff)];
continue; continue;
} }
$p->no_plan = false;
// status=0 的排班明细:强制 0/0标记不可用暂存等待分组判定
if ($p->status == 0) {
$p->count = 0;
$p->used_count = 0;
$p->locked_count = 0;
$p->plan_enable = false;
$disabledPlans[] = $p;
continue;
}
// 记录该排班资源存在 status=1 的明细
$enabledResourceIds[$p->resource_id] = true;
//检查项目时段规则过滤 //检查项目时段规则过滤
if (!empty($allItemRules)) { if (!empty($allItemRules)) {
@ -353,6 +377,18 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
} }
} }
// status=0 的排班明细分流:同资源存在 status=1 的归入 $pl2全部 status=0 的归入第二段
$allDisabledPlans = []; // 第二段:排班资源全部明细 status=0
foreach ($disabledPlans as $dp) {
if (isset($enabledResourceIds[$dp->resource_id])) {
// 该资源还有 status=1 的明细 → 部分禁用,参与正常排序
$pl2[] = $dp;
} else {
// 该资源全部明细 status=0 → 全部禁用,进入第二段
$allDisabledPlans[] = $dp;
}
}
usort($pl1, function($a, $b) { usort($pl1, function($a, $b) {
$timeA = $a->date . ' ' . ($a->start_time ?? $a->end_time); // 兼容性处理 $timeA = $a->date . ' ' . ($a->start_time ?? $a->end_time); // 兼容性处理
$timeB = $b->date . ' ' . ($b->start_time ?? $b->end_time); $timeB = $b->date . ' ' . ($b->start_time ?? $b->end_time);
@ -371,12 +407,20 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
$pp = array_merge($pl1, $pl2); $pp = array_merge($pl1, $pl2);
// 诊室排序:按最早可用时间升序 → 最早时段剩余号源降序 → 随机 // 诊室排序:按最早可用时间升序 → 最早时段剩余号源降序 → 随机
// 统一构建诊室分组:第一段 + 第二段 + 第三段
$grouped = []; $grouped = [];
$nowTimestamp = time(); $nowTimestamp = time();
foreach ($pp as $plan) {
// 辅助函数:把一批记录加入 $grouped
$addToGrouped = function($records, $priority) use (&$grouped, $nowTimestamp) {
foreach ($records as $plan) {
$name = $plan->department_resources_name; $name = $plan->department_resources_name;
if (!isset($grouped[$name])) { if (!isset($grouped[$name])) {
$grouped[$name] = ['plans' => [], 'remaining' => 0, 'earliest_remaining' => 0]; $grouped[$name] = ['plans' => [], 'remaining' => 0, 'earliest_remaining' => 0, 'priority' => $priority];
}
// priority 取最小值(如果有同名的记录分属不同段,以更靠前的段为准)
if ($priority < $grouped[$name]['priority']) {
$grouped[$name]['priority'] = $priority;
} }
$grouped[$name]['plans'][] = $plan; $grouped[$name]['plans'][] = $plan;
@ -384,7 +428,8 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
$remaining = ($plan->count ?? 0) - ($plan->used_count ?? 0); $remaining = ($plan->count ?? 0) - ($plan->used_count ?? 0);
$grouped[$name]['remaining'] += max($remaining, 0); $grouped[$name]['remaining'] += max($remaining, 0);
// 判断是否未过期,收集最早开始时间及该时段剩余 // 收集 earliest仅 status=1 且 remaining>0 且未过期
if (($plan->status ?? 1) == 1 && $remaining > 0) {
$endDateTime = $plan->date . ' ' . ($plan->end_time ?? '23:59:59'); $endDateTime = $plan->date . ' ' . ($plan->end_time ?? '23:59:59');
if (strtotime($endDateTime) > $nowTimestamp) { if (strtotime($endDateTime) > $nowTimestamp) {
$startDateTime = $plan->date . ' ' . ($plan->begin_time ?? '00:00:00'); $startDateTime = $plan->date . ' ' . ($plan->begin_time ?? '00:00:00');
@ -398,6 +443,11 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
} }
} }
} }
}
};
$addToGrouped($pp, 0); // 第一段:可用 + 部分禁用
$addToGrouped($allDisabledPlans, 1); // 第二段:全部 status=0
// 诊室排序:先转为索引数组,再手动排序 // 诊室排序:先转为索引数组,再手动排序
$grouped = array_values($grouped); $grouped = array_values($grouped);
@ -408,27 +458,34 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
$hasEarliest[$idx] = isset($g['earliest']); $hasEarliest[$idx] = isset($g['earliest']);
} }
// 简单冒泡排序(只有 2 个诊室时足够) // 简单冒泡排序
for ($i = 0; $i < count($grouped) - 1; $i++) { for ($i = 0; $i < count($grouped) - 1; $i++) {
for ($j = $i + 1; $j < count($grouped); $j++) { for ($j = $i + 1; $j < count($grouped); $j++) {
$a = $grouped[$i]; $a = $grouped[$i];
$b = $grouped[$j]; $b = $grouped[$j];
$aHas = isset($a['earliest']);
$bHas = isset($b['earliest']);
$swap = false; $swap = false;
// 1. priority 不同 → 小的排前面
if ($a['priority'] != $b['priority']) {
$swap = ($a['priority'] > $b['priority']);
} else {
$aHas = isset($a['earliest']);
$bHas = isset($b['earliest']);
// 2. 同 priority有 earliest 排前面
if ($aHas != $bHas) { if ($aHas != $bHas) {
$swap = $bHas; // 有可用号源的排前面 $swap = $bHas;
} elseif ($aHas) { } elseif ($aHas) {
// 3. 都有 earliest → 时间升序 → remaining 降序 → 随机
if ($a['earliest'] != $b['earliest']) { if ($a['earliest'] != $b['earliest']) {
$swap = ($a['earliest'] > $b['earliest']); // 最早时间升序 $swap = ($a['earliest'] > $b['earliest']);
} elseif ($a['earliest_remaining'] != $b['earliest_remaining']) { } elseif ($a['earliest_remaining'] != $b['earliest_remaining']) {
$swap = ($a['earliest_remaining'] < $b['earliest_remaining']); // 最早时段剩余号源降序 $swap = ($a['earliest_remaining'] < $b['earliest_remaining']);
} else { } else {
$swap = (rand(0, 1) == 1); // 随机 $swap = (rand(0, 1) == 1);
} }
} else { } else {
$swap = (rand(0, 1) == 1); // 都无可用号源,随机 $swap = (rand(0, 1) == 1);
}
} }
if ($swap) { if ($swap) {
@ -2351,7 +2408,13 @@ private function mergeChannelsPerDepartment($plan, $appointment_type)
} }
$mergedPlan = []; $mergedPlan = [];
$noPlanRecords = []; // 排班明细为 NULL 的记录,不参与渠道合并
foreach ($plan as $p) { foreach ($plan as $p) {
// 排班明细为 NULL暂无号源不参与渠道合并直接保留
if (empty($p->roster_detail_id)) {
$noPlanRecords[] = $p;
continue;
}
$rid = $p->roster_detail_id; $rid = $p->roster_detail_id;
$deptChannels = $mergeConfigs[$p->department_id] ?? []; $deptChannels = $mergeConfigs[$p->department_id] ?? [];
@ -2378,7 +2441,7 @@ private function mergeChannelsPerDepartment($plan, $appointment_type)
} }
} }
return array_values($mergedPlan); return array_merge(array_values($mergedPlan), $noPlanRecords);
} }
//判断是否在互斥组内 //判断是否在互斥组内

@ -159,6 +159,7 @@
title="提示" title="提示"
width="500" width="500"
> >
<div style="margin-bottom: 12px; font-weight: 700; color: #f56c6c;">以下检查暂不可打印申请单</div>
<el-table :data="TanChuangMsg" style="width: 100%;" row-key="id"> <el-table :data="TanChuangMsg" style="width: 100%;" row-key="id">
<el-table-column prop="item_name" label="项目名称" /> <el-table-column prop="item_name" label="项目名称" />
<el-table-column prop="msg" label="异常提示" /> <el-table-column prop="msg" label="异常提示" />
@ -289,6 +290,7 @@
let auto_print = ref(['1']); let auto_print = ref(['1']);
let buttonsDisabled = ref(true) let buttonsDisabled = ref(true)
let zhenShiList = ref([]); let zhenShiList = ref([]);
let cachedZhenShiOrder = ref([]); //
let activeZhenShi = ref(''); let activeZhenShi = ref('');
let selectedPlanId = ref(0) let selectedPlanId = ref(0)
let selectedMianListId = ref([]) //id let selectedMianListId = ref([]) //id
@ -364,6 +366,7 @@ let TanChuangMsgDialogVisible=ref(false)
selectedMianListId.value = [] selectedMianListId.value = []
selectedEntrustId.value = [] selectedEntrustId.value = []
zhenShiList.value = [] zhenShiList.value = []
cachedZhenShiOrder.value = []
planTableData.value = [] planTableData.value = []
activeZhenShi.value = '' activeZhenShi.value = ''
@ -693,6 +696,10 @@ let TanChuangMsgDialogVisible=ref(false)
const timeSlotsSet = new Set(); const timeSlotsSet = new Set();
const zhenshiSet = new Set(); const zhenshiSet = new Set();
plans.forEach(v => { plans.forEach(v => {
if (v.no_plan) {
zhenshiSet.add(v.department_resources_name)
return
}
if (v.department_resources_name == activeZhenShi.value) { if (v.department_resources_name == activeZhenShi.value) {
const timeRange = const timeRange =
`${v.begin_time.substring(0,5)}-${v.end_time.substring(0,5)}`; `${v.begin_time.substring(0,5)}-${v.end_time.substring(0,5)}`;
@ -700,7 +707,24 @@ let TanChuangMsgDialogVisible=ref(false)
} }
zhenshiSet.add(v.department_resources_name) zhenshiSet.add(v.department_resources_name)
}); });
zhenShiList.value = zhenshiSet
//
const currentDepts = Array.from(zhenshiSet)
if (cachedZhenShiOrder.value.length > 0) {
const ordered = []
const remaining = [...currentDepts]
cachedZhenShiOrder.value.forEach(cached => {
const idx = remaining.indexOf(cached)
if (idx !== -1) {
ordered.push(cached)
remaining.splice(idx, 1)
}
})
zhenShiList.value = [...ordered, ...remaining]
} else {
zhenShiList.value = currentDepts
}
cachedZhenShiOrder.value = [...zhenShiList.value]
const timeSlots = Array.from(timeSlotsSet).sort(); // const timeSlots = Array.from(timeSlotsSet).sort(); //
@ -715,6 +739,7 @@ let TanChuangMsgDialogVisible=ref(false)
date_list.value.forEach(date => { date_list.value.forEach(date => {
const matchingPlan = plans.find( const matchingPlan = plans.find(
v => v =>
!v.no_plan &&
`${v.begin_time.substring(0,5)}-${v.end_time.substring(0,5)}` === `${v.begin_time.substring(0,5)}-${v.end_time.substring(0,5)}` ===
timeRange && v.date === date && v timeRange && v.date === date && v
.department_resources_name == activeZhenShi.value .department_resources_name == activeZhenShi.value
@ -902,6 +927,7 @@ let TanChuangMsgDialogVisible=ref(false)
const result = {}; const result = {};
data.forEach(record => { data.forEach(record => {
if (record.no_plan) return
const deptName = record.department_resources_name; const deptName = record.department_resources_name;
if (!result[deptName]) { if (!result[deptName]) {
result[deptName] = {}; result[deptName] = {};
@ -1836,7 +1862,12 @@ let TanChuangMsgDialogVisible=ref(false)
// //
const invalidRows = selectedRows.value.filter(r => ids.includes(r.entrust_id) && r.list_status != 1) const invalidRows = selectedRows.value.filter(r => ids.includes(r.entrust_id) && r.list_status != 1)
if (invalidRows.length > 0) { if (invalidRows.length > 0) {
ElMessage.error(invalidRows.map(r => r.entrust).join('、') + " 不可打印,请重新选择") const statusMap = {0: '未预约', 2: '登记', 3: '完成'}
TanChuangMsg.value = invalidRows.map(r => ({
item_name: r.entrust,
msg: statusMap[r.list_status] || '未知状态'
}))
TanChuangMsgDialogVisible.value = true
return return
} }
const params = ids.map(id => 'OrderNoList[]=' + id).join('&') const params = ids.map(id => 'OrderNoList[]=' + id).join('&')
@ -2038,7 +2069,8 @@ let TanChuangMsgDialogVisible=ref(false)
background-color: #fff; background-color: #fff;
border: 1px solid #e8e8e8; border: 1px solid #e8e8e8;
width: 120px; width: 120px;
cursor: default; align-self: stretch;
cursor: pointer;
display: flex; display: flex;
justify-content: center; /* 水平居中 */ justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */ align-items: center; /* 垂直居中 */

@ -0,0 +1,342 @@
{
"status": true,
"msg": "查询完成",
"data": [
{
"list_status": 1,
"is_nullify": 0,
"reg_num": "0000570390",
"user_name": "徐淑杰",
"user_sex": "2",
"user_brithday": "1972-03-20",
"user_phone": "13903340320",
"entrust_code": "F000021434",
"entrust": "甲状腺、甲状旁腺、引流区淋巴结彩超",
"is_pay": "1",
"reservation_department": "肿瘤一科门诊",
"entrust_date": "2026-08-02",
"entrust_time": "08:47:34",
"doctor": "张毅鹏",
"patient_type": "1",
"implement_department": "超声科",
"entrust_id": "18531881",
"episodeid": "3478222",
"RISRAcceptDeptCode": "1316",
"reservation_date": "2026-08-02",
"reservation_time": "09:30:01",
"cancel_time": null,
"warddesc": null,
"wardcode": null,
"bedname": null,
"bedno": null,
"app_num": "611399774",
"medicalHistory": "直肠癌术后10年,16年直肠癌根治术造瘘术定期复查未见转移及复发",
"diagnosisName": null,
"idCardNumber": "130302197203201129",
"reservation_sources_id": "10",
"reservation_department_code": "1050",
"doctor_code": "1097",
"reservation_sources_name": "门诊三楼(门诊)",
"info": {
"deptId": "353",
"deptName": "超声科",
"roomId": "353",
"roomName": "超声科",
"scheduleName": "门诊三楼(门诊)",
"reservationDepartmentCode": "1050",
"reservationDepartment": "肿瘤一科门诊",
"entrustCode": "F000021434",
"entrust": "甲状腺、甲状旁腺、引流区淋巴结彩超",
"doctorCode": "1097",
"doctor": "张毅鹏",
"implementDepartment": "超声科",
"wardcode": "",
"warddesc": "",
"RISRAcceptDeptCode": "1316"
},
"requestTypeCode": "33",
"requestTypeName": "超声",
"orderDeptCode": "1050"
},
{
"list_status": 1,
"is_nullify": 0,
"reg_num": "0000570390",
"user_name": "徐淑杰",
"user_sex": "2",
"user_brithday": "1972-03-20",
"user_phone": "13903340320",
"entrust_code": "F000021449",
"entrust": "双侧乳腺、引流区淋巴结彩超",
"is_pay": "1",
"reservation_department": "肿瘤一科门诊",
"entrust_date": "2026-08-02",
"entrust_time": "08:47:34",
"doctor": "张毅鹏",
"patient_type": "1",
"implement_department": "超声科",
"entrust_id": "18531882",
"episodeid": "3478222",
"RISRAcceptDeptCode": "1316",
"reservation_date": "2026-08-02",
"reservation_time": "10:30:01",
"cancel_time": null,
"warddesc": null,
"wardcode": null,
"bedname": null,
"bedno": null,
"app_num": "611399775",
"medicalHistory": "直肠癌术后10年,16年直肠癌根治术造瘘术定期复查未见转移及复发",
"diagnosisName": null,
"idCardNumber": "130302197203201129",
"reservation_sources_id": "10",
"reservation_department_code": "1050",
"doctor_code": "1097",
"reservation_sources_name": "门诊三楼(门诊)",
"info": {
"deptId": "353",
"deptName": "超声科",
"roomId": "353",
"roomName": "超声科",
"scheduleName": "门诊三楼(门诊)",
"reservationDepartmentCode": "1050",
"reservationDepartment": "肿瘤一科门诊",
"entrustCode": "F000021449",
"entrust": "双侧乳腺、引流区淋巴结彩超",
"doctorCode": "1097",
"doctor": "张毅鹏",
"implementDepartment": "超声科",
"wardcode": "",
"warddesc": "",
"RISRAcceptDeptCode": "1316"
},
"requestTypeCode": "33",
"requestTypeName": "超声",
"orderDeptCode": "1050"
},
{
"list_status": 1,
"is_nullify": 0,
"reg_num": "0000570390",
"user_name": "徐淑杰",
"user_sex": "2",
"user_brithday": "1972-03-20",
"user_phone": "13903340320",
"entrust_code": "F000097462",
"entrust": "胸部CT平扫",
"is_pay": "1",
"reservation_department": "肿瘤一科门诊",
"entrust_date": "2026-08-02",
"entrust_time": "08:47:34",
"doctor": "张毅鹏",
"patient_type": "1",
"implement_department": "新楼CT室",
"entrust_id": "18531883",
"episodeid": "3478222",
"RISRAcceptDeptCode": "1491",
"reservation_date": "2026-08-02",
"reservation_time": "09:00:01",
"cancel_time": null,
"warddesc": null,
"wardcode": null,
"bedname": null,
"bedno": null,
"app_num": "611399776",
"medicalHistory": "直肠癌术后10年,16年直肠癌根治术造瘘术定期复查未见转移及复发",
"diagnosisName": null,
"idCardNumber": "130302197203201129",
"reservation_sources_id": "39",
"reservation_department_code": "1050",
"doctor_code": "1097",
"reservation_sources_name": "新楼CT室",
"info": {
"deptId": "56",
"deptName": "放射二科",
"roomId": "475",
"roomName": "新楼CT室",
"scheduleName": "新楼CT室-(门诊平扫)",
"reservationDepartmentCode": "1050",
"reservationDepartment": "肿瘤一科门诊",
"entrustCode": "F000097462",
"entrust": "胸部CT平扫",
"doctorCode": "1097",
"doctor": "张毅鹏",
"implementDepartment": "新楼CT室",
"wardcode": "",
"warddesc": "",
"RISRAcceptDeptCode": "1491"
},
"requestTypeCode": "66-100",
"requestTypeName": "CT",
"orderDeptCode": "1050"
},
{
"list_status": 1,
"is_nullify": 0,
"reg_num": "0000570390",
"user_name": "徐淑杰",
"user_sex": "2",
"user_brithday": "1972-03-20",
"user_phone": "13903340320",
"entrust_code": "F000097469",
"entrust": "下腹部CT平扫",
"is_pay": "1",
"reservation_department": "肿瘤一科门诊",
"entrust_date": "2026-08-02",
"entrust_time": "08:47:35",
"doctor": "张毅鹏",
"patient_type": "1",
"implement_department": "新楼CT室",
"entrust_id": "18531945",
"episodeid": "3478222",
"RISRAcceptDeptCode": "1491",
"reservation_date": "2026-08-02",
"reservation_time": "09:00:01",
"cancel_time": null,
"warddesc": null,
"wardcode": null,
"bedname": null,
"bedno": null,
"app_num": "611399778",
"medicalHistory": "直肠癌术后10年,16年直肠癌根治术造瘘术定期复查未见转移及复发",
"diagnosisName": null,
"idCardNumber": "130302197203201129",
"reservation_sources_id": "39",
"reservation_department_code": "1050",
"doctor_code": "1097",
"reservation_sources_name": "新楼CT室",
"info": {
"deptId": "56",
"deptName": "放射二科",
"roomId": "475",
"roomName": "新楼CT室",
"scheduleName": "新楼CT室-(门诊平扫)",
"reservationDepartmentCode": "1050",
"reservationDepartment": "肿瘤一科门诊",
"entrustCode": "F000097469",
"entrust": "下腹部CT平扫",
"doctorCode": "1097",
"doctor": "张毅鹏",
"implementDepartment": "新楼CT室",
"wardcode": "",
"warddesc": "",
"RISRAcceptDeptCode": "1491"
},
"requestTypeCode": "66-100",
"requestTypeName": "CT",
"orderDeptCode": "1050"
},
{
"list_status": 1,
"is_nullify": 0,
"reg_num": "0000570390",
"user_name": "徐淑杰",
"user_sex": "2",
"user_brithday": "1972-03-20",
"user_phone": "13903340320",
"entrust_code": "F000097473",
"entrust": "盆腔CT平扫",
"is_pay": "1",
"reservation_department": "肿瘤一科门诊",
"entrust_date": "2026-08-02",
"entrust_time": "08:47:35",
"doctor": "张毅鹏",
"patient_type": "1",
"implement_department": "新楼CT室",
"entrust_id": "18531946",
"episodeid": "3478222",
"RISRAcceptDeptCode": "1491",
"reservation_date": "2026-08-02",
"reservation_time": "09:00:01",
"cancel_time": null,
"warddesc": null,
"wardcode": null,
"bedname": null,
"bedno": null,
"app_num": "611399779",
"medicalHistory": "直肠癌术后10年,16年直肠癌根治术造瘘术定期复查未见转移及复发",
"diagnosisName": null,
"idCardNumber": "130302197203201129",
"reservation_sources_id": "39",
"reservation_department_code": "1050",
"doctor_code": "1097",
"reservation_sources_name": "新楼CT室",
"info": {
"deptId": "56",
"deptName": "放射二科",
"roomId": "475",
"roomName": "新楼CT室",
"scheduleName": "新楼CT室-(门诊平扫)",
"reservationDepartmentCode": "1050",
"reservationDepartment": "肿瘤一科门诊",
"entrustCode": "F000097473",
"entrust": "盆腔CT平扫",
"doctorCode": "1097",
"doctor": "张毅鹏",
"implementDepartment": "新楼CT室",
"wardcode": "",
"warddesc": "",
"RISRAcceptDeptCode": "1491"
},
"requestTypeCode": "66-100",
"requestTypeName": "CT",
"orderDeptCode": "1050"
},
{
"list_status": 1,
"is_nullify": 0,
"reg_num": "0000570390",
"user_name": "徐淑杰",
"user_sex": "2",
"user_brithday": "1972-03-20",
"user_phone": "13903340320",
"entrust_code": "F000097466",
"entrust": "上腹部CT平扫",
"is_pay": "1",
"reservation_department": "肿瘤一科门诊",
"entrust_date": "2026-08-02",
"entrust_time": "09:03:41",
"doctor": "张毅鹏",
"patient_type": "1",
"implement_department": "新楼CT室",
"entrust_id": "18533919",
"episodeid": "3478222",
"RISRAcceptDeptCode": "1491",
"reservation_date": "2026-08-02",
"reservation_time": "09:00:01",
"cancel_time": null,
"warddesc": null,
"wardcode": null,
"bedname": null,
"bedno": null,
"app_num": "611400923",
"medicalHistory": "直肠癌术后10年,16年直肠癌根治术造瘘术定期复查未见转移及复发",
"diagnosisName": null,
"idCardNumber": "130302197203201129",
"reservation_sources_id": "39",
"reservation_department_code": "1050",
"doctor_code": "1097",
"reservation_sources_name": "新楼CT室",
"info": {
"deptId": "56",
"deptName": "放射二科",
"roomId": "475",
"roomName": "新楼CT室",
"scheduleName": "新楼CT室-(门诊平扫)",
"reservationDepartmentCode": "1050",
"reservationDepartment": "肿瘤一科门诊",
"entrustCode": "F000097466",
"entrust": "上腹部CT平扫",
"doctorCode": "1097",
"doctor": "张毅鹏",
"implementDepartment": "新楼CT室",
"wardcode": "",
"warddesc": "",
"RISRAcceptDeptCode": "1491"
},
"requestTypeCode": "66-100",
"requestTypeName": "CT",
"orderDeptCode": "1050"
}
]
}
Loading…
Cancel
Save