729 【住院护士站-入出转管理】待转科列表“入院病区/入院病房”下拉筛选项无数据,未正确读取转科申请数据
This commit is contained in:
@@ -123,5 +123,12 @@ public interface IATDManageAppService {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
R<?> cancelBedAssignment(Long encounterId);
|
R<?> cancelBedAssignment(Long encounterId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取转科筛选选项(转入病区、转入科室)
|
||||||
|
*
|
||||||
|
* @return 转科筛选选项
|
||||||
|
*/
|
||||||
|
R<?> getTransferOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,11 +17,14 @@ import com.healthlink.his.administration.domain.ChargeItem;
|
|||||||
import com.healthlink.his.administration.service.IChargeItemService;
|
import com.healthlink.his.administration.service.IChargeItemService;
|
||||||
import com.healthlink.his.administration.domain.EncounterLocation;
|
import com.healthlink.his.administration.domain.EncounterLocation;
|
||||||
import com.healthlink.his.administration.domain.EncounterParticipant;
|
import com.healthlink.his.administration.domain.EncounterParticipant;
|
||||||
|
import com.healthlink.his.administration.domain.Location;
|
||||||
|
import com.healthlink.his.administration.domain.Organization;
|
||||||
import com.healthlink.his.administration.domain.Practitioner;
|
import com.healthlink.his.administration.domain.Practitioner;
|
||||||
import com.healthlink.his.administration.service.IEncounterLocationService;
|
import com.healthlink.his.administration.service.IEncounterLocationService;
|
||||||
import com.healthlink.his.administration.service.IEncounterParticipantService;
|
import com.healthlink.his.administration.service.IEncounterParticipantService;
|
||||||
import com.healthlink.his.administration.service.IEncounterService;
|
import com.healthlink.his.administration.service.IEncounterService;
|
||||||
import com.healthlink.his.administration.service.ILocationService;
|
import com.healthlink.his.administration.service.ILocationService;
|
||||||
|
import com.healthlink.his.administration.service.IOrganizationService;
|
||||||
import com.healthlink.his.administration.service.IPractitionerService;
|
import com.healthlink.his.administration.service.IPractitionerService;
|
||||||
import com.healthlink.his.common.constant.CommonConstants;
|
import com.healthlink.his.common.constant.CommonConstants;
|
||||||
import com.healthlink.his.common.enums.*;
|
import com.healthlink.his.common.enums.*;
|
||||||
@@ -114,6 +117,9 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
@Resource
|
@Resource
|
||||||
private IPractitionerService practitionerService;
|
private IPractitionerService practitionerService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IOrganizationService organizationService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ApplicationEventPublisher eventPublisher;
|
private ApplicationEventPublisher eventPublisher;
|
||||||
|
|
||||||
@@ -166,12 +172,25 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
String searchKey, HttpServletRequest request) {
|
String searchKey, HttpServletRequest request) {
|
||||||
// 获取当前登录用户的科室 ID
|
// 获取当前登录用户的科室 ID
|
||||||
Long currentUserOrgId = SecurityUtils.getLoginUser().getOrgId();
|
Long currentUserOrgId = SecurityUtils.getLoginUser().getOrgId();
|
||||||
|
|
||||||
|
// 提取转科筛选条件(字段名与 SQL 列别名不一致,需手动处理)
|
||||||
|
Long transferTargetWardId = admissionPageParam.getTransferTargetWardId();
|
||||||
|
Long transferTargetOrgId = admissionPageParam.getTransferTargetOrgId();
|
||||||
|
admissionPageParam.setTransferTargetWardId(null);
|
||||||
|
admissionPageParam.setTransferTargetOrgId(null);
|
||||||
|
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<AdmissionPageParam> queryWrapper = HisQueryUtils.buildQueryWrapper(admissionPageParam, searchKey,
|
QueryWrapper<AdmissionPageParam> queryWrapper = HisQueryUtils.buildQueryWrapper(admissionPageParam, searchKey,
|
||||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientWbStr, CommonConstants.FieldName.PatientPyStr,
|
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientWbStr, CommonConstants.FieldName.PatientPyStr,
|
||||||
CommonConstants.FieldName.PatientName, CommonConstants.FieldName.BusNo)),
|
CommonConstants.FieldName.PatientName, CommonConstants.FieldName.BusNo)),
|
||||||
request);
|
request);
|
||||||
|
// 手动添加转科目标筛选条件
|
||||||
|
if (transferTargetWardId != null) {
|
||||||
|
queryWrapper.apply("ii.target_ward_id = {0}", transferTargetWardId);
|
||||||
|
}
|
||||||
|
if (transferTargetOrgId != null) {
|
||||||
|
queryWrapper.apply("ii.target_org_id = {0}", transferTargetOrgId);
|
||||||
|
}
|
||||||
// 入院患者分页列表
|
// 入院患者分页列表
|
||||||
Page<AdmissionPatientPageDto> admissionPatientPage = atdManageAppMapper.selectAdmissionPatientPage(
|
Page<AdmissionPatientPageDto> admissionPatientPage = atdManageAppMapper.selectAdmissionPatientPage(
|
||||||
new Page<>(pageNo, pageSize), queryWrapper, EncounterClass.IMP.getValue(),
|
new Page<>(pageNo, pageSize), queryWrapper, EncounterClass.IMP.getValue(),
|
||||||
@@ -1008,6 +1027,88 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取转科筛选选项(转入病区、转入科室)
|
||||||
|
*
|
||||||
|
* @return 转科筛选选项
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public R<?> getTransferOptions() {
|
||||||
|
Long currentUserOrgId = SecurityUtils.getLoginUser().getOrgId();
|
||||||
|
String delFlagNo = DelFlag.NO.getCode();
|
||||||
|
|
||||||
|
// 查询当前科室下所有待转科患者
|
||||||
|
List<Encounter> pendingTransfers = encounterService.list(
|
||||||
|
new LambdaQueryWrapper<Encounter>()
|
||||||
|
.eq(Encounter::getStatusEnum, EncounterZyStatus.PENDING_TRANSFER.getValue())
|
||||||
|
.eq(Encounter::getOrganizationId, currentUserOrgId)
|
||||||
|
.eq(Encounter::getDeleteFlag, delFlagNo));
|
||||||
|
if (pendingTransfers.isEmpty()) {
|
||||||
|
return R.ok(new TransferOptionsDto());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Long> encounterIds = pendingTransfers.stream().map(Encounter::getId).toList();
|
||||||
|
|
||||||
|
// 查询这些患者的转科申请,获取转入病区和转入科室
|
||||||
|
List<OrderProcess> orderProcessList = orderProcessService.list(
|
||||||
|
new LambdaQueryWrapper<OrderProcess>()
|
||||||
|
.in(OrderProcess::getEncounterId, encounterIds)
|
||||||
|
.eq(OrderProcess::getDeleteFlag, delFlagNo)
|
||||||
|
.isNotNull(OrderProcess::getTargetLocationId));
|
||||||
|
|
||||||
|
// 去重收集转入病区
|
||||||
|
Set<Long> wardIdSet = new LinkedHashSet<>();
|
||||||
|
Set<Long> orgIdSet = new LinkedHashSet<>();
|
||||||
|
Map<Long, String> wardNameMap = new HashMap<>();
|
||||||
|
Map<Long, String> orgNameMap = new HashMap<>();
|
||||||
|
|
||||||
|
for (OrderProcess op : orderProcessList) {
|
||||||
|
if (op.getTargetLocationId() != null) {
|
||||||
|
wardIdSet.add(op.getTargetLocationId());
|
||||||
|
}
|
||||||
|
if (op.getTargetOrganizationId() != null) {
|
||||||
|
orgIdSet.add(op.getTargetOrganizationId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询病区名称
|
||||||
|
if (!wardIdSet.isEmpty()) {
|
||||||
|
List<Location> locations = locationService.listByIds(wardIdSet);
|
||||||
|
for (Location loc : locations) {
|
||||||
|
wardNameMap.put(loc.getId(), loc.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询科室名称
|
||||||
|
if (!orgIdSet.isEmpty()) {
|
||||||
|
List<Organization> orgs = organizationService.listByIds(orgIdSet);
|
||||||
|
if (orgs != null) {
|
||||||
|
for (Organization org : orgs) {
|
||||||
|
orgNameMap.put(org.getId(), org.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建转入病区选项
|
||||||
|
List<TransferOptionsDto.OptionItem> wardOptions = new ArrayList<>();
|
||||||
|
for (Long wardId : wardIdSet) {
|
||||||
|
String name = wardNameMap.getOrDefault(wardId, String.valueOf(wardId));
|
||||||
|
wardOptions.add(new TransferOptionsDto.OptionItem(wardId, name));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建转入科室选项
|
||||||
|
List<TransferOptionsDto.OptionItem> orgOptions = new ArrayList<>();
|
||||||
|
for (Long orgId : orgIdSet) {
|
||||||
|
String name = orgNameMap.getOrDefault(orgId, String.valueOf(orgId));
|
||||||
|
orgOptions.add(new TransferOptionsDto.OptionItem(orgId, name));
|
||||||
|
}
|
||||||
|
|
||||||
|
TransferOptionsDto dto = new TransferOptionsDto();
|
||||||
|
dto.setWardListOptions(wardOptions);
|
||||||
|
dto.setDepartmentListOptions(orgOptions);
|
||||||
|
return R.ok(dto);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退床 (取消分床)
|
* 退床 (取消分床)
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -177,5 +177,15 @@ public class ATDManageController {
|
|||||||
public R<?> cancelBedAssignment(Long encounterId) {
|
public R<?> cancelBedAssignment(Long encounterId) {
|
||||||
return atdManageAppService.cancelBedAssignment(encounterId);
|
return atdManageAppService.cancelBedAssignment(encounterId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取转科筛选选项(转入病区、转入科室)
|
||||||
|
*
|
||||||
|
* @return 转科筛选选项
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/transfer-options")
|
||||||
|
public R<?> getTransferOptions() {
|
||||||
|
return atdManageAppService.getTransferOptions();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,12 @@ public class AdmissionPageParam {
|
|||||||
/** 入院病房 */
|
/** 入院病房 */
|
||||||
private Long houseId;
|
private Long houseId;
|
||||||
|
|
||||||
|
/** 转科目标病区(待转科患者筛选) */
|
||||||
|
private Long transferTargetWardId;
|
||||||
|
|
||||||
|
/** 转科目标科室(待转科患者筛选) */
|
||||||
|
private Long transferTargetOrgId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 入院类型
|
* 入院类型
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -146,4 +146,18 @@ public class AdmissionPatientPageDto {
|
|||||||
*/
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long patientId;
|
private Long patientId;
|
||||||
|
|
||||||
|
/** 转科目标病区ID(转入病区) */
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long targetWardId;
|
||||||
|
|
||||||
|
/** 转科目标病区名称 */
|
||||||
|
private String targetWardName;
|
||||||
|
|
||||||
|
/** 转科目标科室ID(转入科室) */
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long targetOrgId;
|
||||||
|
|
||||||
|
/** 转科目标科室名称 */
|
||||||
|
private String targetOrgName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package com.healthlink.his.web.inhospitalnursestation.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转科筛选选项 DTO
|
||||||
|
*
|
||||||
|
* @author system
|
||||||
|
* @date 2025-06-25
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class TransferOptionsDto {
|
||||||
|
|
||||||
|
/** 入院病区选项(转入病区) */
|
||||||
|
private List<OptionItem> wardListOptions = new ArrayList<>();
|
||||||
|
|
||||||
|
/** 入院病房选项(转入科室) */
|
||||||
|
private List<OptionItem> departmentListOptions = new ArrayList<>();
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class OptionItem {
|
||||||
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
|
private Long id;
|
||||||
|
private String name;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -24,7 +24,11 @@
|
|||||||
ii.bed_name,
|
ii.bed_name,
|
||||||
ii.organization_name,
|
ii.organization_name,
|
||||||
ii.contract_name,
|
ii.contract_name,
|
||||||
COALESCE(ii.time1, ii.time2, ii.time3) AS admission_time
|
COALESCE(ii.time1, ii.time2, ii.time3) AS admission_time,
|
||||||
|
ii.target_ward_id,
|
||||||
|
ii.target_org_id,
|
||||||
|
ii.target_ward_name,
|
||||||
|
ii.target_org_name
|
||||||
FROM (
|
FROM (
|
||||||
WITH locations AS (
|
WITH locations AS (
|
||||||
SELECT ael.encounter_id,
|
SELECT ael.encounter_id,
|
||||||
@@ -63,7 +67,11 @@
|
|||||||
fc.contract_name,
|
fc.contract_name,
|
||||||
alw.admission_time as time1,
|
alw.admission_time as time1,
|
||||||
alh.admission_time as time2,
|
alh.admission_time as time2,
|
||||||
alb.admission_time as time3
|
alb.admission_time as time3,
|
||||||
|
dop.target_location_id AS target_ward_id,
|
||||||
|
dop.target_organization_id AS target_org_id,
|
||||||
|
al_target."name" AS target_ward_name,
|
||||||
|
ao_target."name" AS target_org_name
|
||||||
FROM adm_encounter ae
|
FROM adm_encounter ae
|
||||||
LEFT JOIN adm_patient ap
|
LEFT JOIN adm_patient ap
|
||||||
ON ae.patient_id = ap.id
|
ON ae.patient_id = ap.id
|
||||||
@@ -87,6 +95,22 @@
|
|||||||
LEFT JOIN fin_contract fc
|
LEFT JOIN fin_contract fc
|
||||||
ON aa.contract_no = fc.bus_no
|
ON aa.contract_no = fc.bus_no
|
||||||
AND fc.delete_flag = '0'
|
AND fc.delete_flag = '0'
|
||||||
|
LEFT JOIN LATERAL (
|
||||||
|
SELECT encounter_id,
|
||||||
|
target_location_id,
|
||||||
|
target_organization_id
|
||||||
|
FROM doc_order_process dop2
|
||||||
|
WHERE dop2.encounter_id = ae.id
|
||||||
|
AND dop2.delete_flag = '0'
|
||||||
|
ORDER BY dop2.create_time DESC
|
||||||
|
LIMIT 1
|
||||||
|
) dop ON true
|
||||||
|
LEFT JOIN adm_location al_target
|
||||||
|
ON al_target.id = dop.target_location_id
|
||||||
|
AND al_target.delete_flag = '0'
|
||||||
|
LEFT JOIN adm_organization ao_target
|
||||||
|
ON ao_target.id = dop.target_organization_id
|
||||||
|
AND ao_target.delete_flag = '0'
|
||||||
WHERE ae.delete_flag = '0'
|
WHERE ae.delete_flag = '0'
|
||||||
AND ae.class_enum = #{imp}
|
AND ae.class_enum = #{imp}
|
||||||
AND ae.status_enum != #{toBeRegistered}
|
AND ae.status_enum != #{toBeRegistered}
|
||||||
@@ -115,7 +139,11 @@
|
|||||||
fc.contract_name,
|
fc.contract_name,
|
||||||
alw.admission_time,
|
alw.admission_time,
|
||||||
alh.admission_time,
|
alh.admission_time,
|
||||||
alb.admission_time
|
alb.admission_time,
|
||||||
|
dop.target_location_id,
|
||||||
|
dop.target_organization_id,
|
||||||
|
al_target."name",
|
||||||
|
ao_target."name"
|
||||||
ORDER BY ae.bus_no DESC
|
ORDER BY ae.bus_no DESC
|
||||||
) AS ii
|
) AS ii
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
|
|||||||
@@ -135,6 +135,16 @@ export function updateOutHospital(encounterId) {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 获取转科筛选选项(转入病区、转入科室)
|
||||||
|
*/
|
||||||
|
export function getTransferOptions() {
|
||||||
|
return request({
|
||||||
|
url: '/nurse-station/atd-manage/transfer-options',
|
||||||
|
method: 'get',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//清床
|
//清床
|
||||||
export function terminalCleaning(encounterId) {
|
export function terminalCleaning(encounterId) {
|
||||||
return request({
|
return request({
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
v-model="queryParams.houseId"
|
v-model="queryParams.houseId"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
|
@change="changeHouseId"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in wardLocationList"
|
v-for="item in wardLocationList"
|
||||||
@@ -596,6 +597,7 @@ import {
|
|||||||
getPersonAccount,
|
getPersonAccount,
|
||||||
getPractitionerWard,
|
getPractitionerWard,
|
||||||
getPrescriptionList,
|
getPrescriptionList,
|
||||||
|
getTransferOptions,
|
||||||
terminalCleaning,
|
terminalCleaning,
|
||||||
updateOutHospital,
|
updateOutHospital,
|
||||||
updateTransferDepartment,
|
updateTransferDepartment,
|
||||||
@@ -641,6 +643,8 @@ const queryParams = ref({
|
|||||||
searchKey: '',
|
searchKey: '',
|
||||||
wardId: '',
|
wardId: '',
|
||||||
houseId: '',
|
houseId: '',
|
||||||
|
transferTargetWardId: undefined,
|
||||||
|
transferTargetOrgId: undefined,
|
||||||
});
|
});
|
||||||
const detailLoading = ref(false);
|
const detailLoading = ref(false);
|
||||||
|
|
||||||
@@ -705,8 +709,21 @@ const handleCardClick = (item: any, index: number) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 入院病房切换事件
|
||||||
|
const changeHouseId = () => {
|
||||||
|
if (currentOperationType.value === 'transfer') {
|
||||||
|
getPatientList();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// 病区切换事件
|
// 病区切换事件
|
||||||
const changeWardLocationId = (id) => {
|
const changeWardLocationId = (id) => {
|
||||||
|
if (currentOperationType.value === 'transfer') {
|
||||||
|
// 转科模式:入院病房独立数据源,选中后刷新患者列表
|
||||||
|
queryParams.value.houseId = '';
|
||||||
|
getPatientList();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (id) {
|
if (id) {
|
||||||
const params = {
|
const params = {
|
||||||
locationId: id,
|
locationId: id,
|
||||||
@@ -740,14 +757,31 @@ const resetSearchForm = () => {
|
|||||||
getPractitionerWard().then((res) => {
|
getPractitionerWard().then((res) => {
|
||||||
initInfoOptions.value.wardListOptions = res.data || [];
|
initInfoOptions.value.wardListOptions = res.data || [];
|
||||||
});
|
});
|
||||||
|
// 转科页面:额外获取转科申请数据覆盖下拉框
|
||||||
|
if (currentOperationType.value === 'transfer') {
|
||||||
|
getTransferOptions().then((res) => {
|
||||||
|
if (res.data && res.data.wardListOptions) {
|
||||||
|
initInfoOptions.value.wardListOptions = res.data.wardListOptions || [];
|
||||||
|
wardLocationList.value = res.data.departmentListOptions || [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
getPatientList();
|
getPatientList();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 获取患者列表
|
// 获取患者列表
|
||||||
function getPatientList() {
|
function getPatientList() {
|
||||||
console.log('queryParams==========>', JSON.stringify(queryParams.value));
|
// 根据操作类型构建请求参数:转科模式使用 transferTargetWardId/transferTargetOrgId
|
||||||
|
let params = { ...queryParams.value };
|
||||||
|
if (currentOperationType.value === 'transfer') {
|
||||||
|
params.transferTargetWardId = queryParams.value.wardId || undefined;
|
||||||
|
params.transferTargetOrgId = queryParams.value.houseId || undefined;
|
||||||
|
delete params.wardId;
|
||||||
|
delete params.houseId;
|
||||||
|
}
|
||||||
|
console.log('queryParams==========>', JSON.stringify(params));
|
||||||
// 根据操作类型筛选不同状态的患者
|
// 根据操作类型筛选不同状态的患者
|
||||||
getPendingInfo(queryParams.value).then((res) => {
|
getPendingInfo(params).then((res) => {
|
||||||
console.log('res==========>', JSON.stringify(res.data));
|
console.log('res==========>', JSON.stringify(res.data));
|
||||||
let filteredPatients = [];
|
let filteredPatients = [];
|
||||||
if (currentOperationType.value === 'transfer') {
|
if (currentOperationType.value === 'transfer') {
|
||||||
@@ -970,7 +1004,7 @@ function handleGetDRMedication() {
|
|||||||
|
|
||||||
const initData = async () => {
|
const initData = async () => {
|
||||||
try {
|
try {
|
||||||
// 并行获取初始化数据和科室数据
|
// 并行获取初始化数据和科室数据(保留原有调用链路)
|
||||||
const [initRes, wardRes] = await Promise.all([
|
const [initRes, wardRes] = await Promise.all([
|
||||||
getInit(),
|
getInit(),
|
||||||
getPractitionerWard()
|
getPractitionerWard()
|
||||||
@@ -979,7 +1013,7 @@ const initData = async () => {
|
|||||||
// 处理初始化数据
|
// 处理初始化数据
|
||||||
initInfoOptions.value = initRes.data;
|
initInfoOptions.value = initRes.data;
|
||||||
|
|
||||||
// 处理科室数据
|
// 处理科室数据(保持原有逻辑不变)
|
||||||
queryParams.value.wardId = wardRes[0]?.id || '';
|
queryParams.value.wardId = wardRes[0]?.id || '';
|
||||||
initInfoOptions.value.wardListOptions = wardRes;
|
initInfoOptions.value.wardListOptions = wardRes;
|
||||||
|
|
||||||
@@ -988,6 +1022,22 @@ const initData = async () => {
|
|||||||
changeWardLocationId(wardRes[0].id);
|
changeWardLocationId(wardRes[0].id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 转科页面:额外获取转科申请数据覆盖下拉框,清除 wardId/houseId
|
||||||
|
if (currentOperationType.value === 'transfer') {
|
||||||
|
try {
|
||||||
|
const transferRes = await getTransferOptions();
|
||||||
|
if (transferRes.data && transferRes.data.wardListOptions) {
|
||||||
|
initInfoOptions.value.wardListOptions = transferRes.data.wardListOptions || [];
|
||||||
|
wardLocationList.value = transferRes.data.departmentListOptions || [];
|
||||||
|
// 转科模式不预设筛选值,让护士自行选择
|
||||||
|
queryParams.value.wardId = '';
|
||||||
|
queryParams.value.houseId = '';
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error('获取转科筛选选项失败', e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 最后获取患者列表
|
// 最后获取患者列表
|
||||||
getPatientList();
|
getPatientList();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user