Compare commits
7 Commits
bug463-fix
...
fd8319204f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fd8319204f | ||
|
|
637c7efd94 | ||
|
|
973b61bc28 | ||
|
|
fb33353962 | ||
|
|
ad69578cc3 | ||
|
|
c39c8faa5c | ||
|
|
659db997fd |
@@ -147,8 +147,8 @@ public class OrganizationLocationAppServiceImpl implements IOrganizationLocation
|
|||||||
for (OrganizationLocation organizationLocation : organizationLocationList)
|
for (OrganizationLocation organizationLocation : organizationLocationList)
|
||||||
if (DateTimeUtils.isOverlap(organizationLocation.getStartTime(), organizationLocation.getEndTime(),
|
if (DateTimeUtils.isOverlap(organizationLocation.getStartTime(), organizationLocation.getEndTime(),
|
||||||
orgLoc.getStartTime(), orgLoc.getEndTime())) {
|
orgLoc.getStartTime(), orgLoc.getEndTime())) {
|
||||||
String organizationName =
|
Organization org = organizationService.getById(organizationLocation.getOrganizationId());
|
||||||
organizationService.getById(organizationLocation.getOrganizationId()).getName();
|
String organizationName = org != null ? org.getName() : "未知科室";
|
||||||
return R.fail("当前诊疗:" + activityName + CommonConstants.Common.DASH + orgLoc.getStartTime()
|
return R.fail("当前诊疗:" + activityName + CommonConstants.Common.DASH + orgLoc.getStartTime()
|
||||||
+ CommonConstants.Common.DASH + orgLoc.getEndTime() + "与" + organizationName + "时间冲突");
|
+ CommonConstants.Common.DASH + orgLoc.getEndTime() + "与" + organizationName + "时间冲突");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,6 +132,10 @@ function onCancel() {
|
|||||||
|
|
||||||
// 批量添加
|
// 批量添加
|
||||||
async function onConfirm() {
|
async function onConfirm() {
|
||||||
|
if (!props.organizationId) {
|
||||||
|
proxy.$message.error('请先在左侧选择科室');
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!formEl) return;
|
if (!formEl) return;
|
||||||
formEl.value.validate(async (valid) => {
|
formEl.value.validate(async (valid) => {
|
||||||
if (!valid) return;
|
if (!valid) return;
|
||||||
|
|||||||
@@ -366,6 +366,10 @@ function handleBlur(row, index) {
|
|||||||
|
|
||||||
// 编辑或 保存当前行
|
// 编辑或 保存当前行
|
||||||
function openSaveImplementDepartment(row) {
|
function openSaveImplementDepartment(row) {
|
||||||
|
if (!organizationId.value) {
|
||||||
|
proxy.$message.error('请先在左侧选择科室');
|
||||||
|
return;
|
||||||
|
}
|
||||||
const params = {
|
const params = {
|
||||||
// 科室id
|
// 科室id
|
||||||
organizationId: organizationId.value,
|
organizationId: organizationId.value,
|
||||||
@@ -452,13 +456,12 @@ function handleNodeClick(res, node) {
|
|||||||
|
|
||||||
// 实际的节点点击处理逻辑
|
// 实际的节点点击处理逻辑
|
||||||
function continueHandleNodeClick(node) {
|
function continueHandleNodeClick(node) {
|
||||||
// 新增按钮是否 disable
|
|
||||||
isAddDisable.value = false;
|
|
||||||
// 检查节点是否有子节点
|
// 检查节点是否有子节点
|
||||||
if (node.data.children && node.data.children.length > 0) {
|
if (node.data.children && node.data.children.length > 0) {
|
||||||
// proxy.$message.warning("不能选择父节点");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 新增按钮是否 disable
|
||||||
|
isAddDisable.value = false;
|
||||||
// 选中科室id
|
// 选中科室id
|
||||||
organizationId.value = node.data.id;
|
organizationId.value = node.data.id;
|
||||||
// 获取 右侧 table 信息
|
// 获取 右侧 table 信息
|
||||||
|
|||||||
@@ -313,6 +313,7 @@
|
|||||||
data-prop="dispensePerDuration">
|
data-prop="dispensePerDuration">
|
||||||
<el-input-number v-model="scope.row.dispensePerDuration" style="width: 80px" :min="1"
|
<el-input-number v-model="scope.row.dispensePerDuration" style="width: 80px" :min="1"
|
||||||
controls-position="right" :controls="false" :ref="(el) => (inputRefs.dispensePerDuration = el)"
|
controls-position="right" :controls="false" :ref="(el) => (inputRefs.dispensePerDuration = el)"
|
||||||
|
@change="calculateTotalAmount(scope.row, scope.$index)"
|
||||||
@keyup.enter.prevent="
|
@keyup.enter.prevent="
|
||||||
handleEnter('dispensePerDuration', scope.row, scope.$index)
|
handleEnter('dispensePerDuration', scope.row, scope.$index)
|
||||||
">
|
">
|
||||||
|
|||||||
@@ -122,7 +122,6 @@
|
|||||||
|
|
||||||
<el-table-column label="类型" align="center" prop="" width="120">
|
<el-table-column label="类型" align="center" prop="" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{ console.log(scope.row, 1111) }}
|
|
||||||
<el-radio-group
|
<el-radio-group
|
||||||
v-model="scope.row.therapyEnum"
|
v-model="scope.row.therapyEnum"
|
||||||
size="small"
|
size="small"
|
||||||
@@ -270,7 +269,6 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="频次/用法" align="center" prop="" width="180">
|
<el-table-column label="频次/用法" align="center" prop="" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{ console.log(scope.row) }}
|
|
||||||
<span v-if="!scope.row.isEdit && scope.row.adviceType == 1" style="text-align: right">
|
<span v-if="!scope.row.isEdit && scope.row.adviceType == 1" style="text-align: right">
|
||||||
{{
|
{{
|
||||||
[
|
[
|
||||||
@@ -879,14 +877,12 @@ function handleDiagnosisChange(item) {
|
|||||||
function handleFocus(row, index) {
|
function handleFocus(row, index) {
|
||||||
rowIndex.value = index;
|
rowIndex.value = index;
|
||||||
row.showPopover = true;
|
row.showPopover = true;
|
||||||
// el-popover 懒渲染,需要等两帧组件才会挂载
|
|
||||||
const adviceType = row.adviceType !== undefined ? row.adviceType : adviceQueryParams.value.adviceType;
|
const adviceType = row.adviceType !== undefined ? row.adviceType : adviceQueryParams.value.adviceType;
|
||||||
// 用 adviceType + categoryCode 组合查找匹配的选项
|
// 用 adviceType + categoryCode 组合查找匹配的选项
|
||||||
const selectValue = (adviceType == 1 && row.categoryCode) ? '1-' + row.categoryCode : adviceType;
|
const selectValue = (adviceType == 1 && row.categoryCode) ? '1-' + row.categoryCode : adviceType;
|
||||||
const selectedItem = adviceTypeList.value.find(item => item.value === selectValue) || adviceTypeList.value.find(item => item.adviceType === adviceType);
|
const selectedItem = adviceTypeList.value.find(item => item.value === selectValue) || adviceTypeList.value.find(item => item.adviceType === adviceType);
|
||||||
// 诊疗(3)和手术(6)没有categoryCode,传空字符串给refresh,由子组件转为undefined不发送
|
// 修复Bug #486:当行没有显式选择医嘱类型时,不传categoryCode,让搜索在全药库中进行
|
||||||
// 药品(1)才有categoryCode(如'1'=中成药,'2'=西药,'4'=中草药)
|
const categoryCode = selectedItem ? selectedItem.categoryCode : (row.adviceType !== undefined ? (adviceQueryParams.value.categoryCode || '') : '');
|
||||||
const categoryCode = selectedItem ? selectedItem.categoryCode : (adviceQueryParams.value.categoryCode || '');
|
|
||||||
const searchKey = row.adviceName || '';
|
const searchKey = row.adviceName || '';
|
||||||
|
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
@@ -923,8 +919,8 @@ function handleChange(value) {
|
|||||||
// 用 adviceType + categoryCode 组合查找匹配的选项
|
// 用 adviceType + categoryCode 组合查找匹配的选项
|
||||||
const selectValue = (adviceType == 1 && row?.categoryCode) ? '1-' + row.categoryCode : adviceType;
|
const selectValue = (adviceType == 1 && row?.categoryCode) ? '1-' + row.categoryCode : adviceType;
|
||||||
const selectedItem = adviceTypeList.value.find(item => item.value === selectValue) || adviceTypeList.value.find(item => item.adviceType === adviceType);
|
const selectedItem = adviceTypeList.value.find(item => item.value === selectValue) || adviceTypeList.value.find(item => item.adviceType === adviceType);
|
||||||
// 诊疗/手术的categoryCode为空字符串,由子组件转为undefined不发送
|
// 修复Bug #486:当行没有显式选择医嘱类型时,不传categoryCode,让搜索在全药库中进行
|
||||||
const categoryCode = selectedItem ? selectedItem.categoryCode : (adviceQueryParams.value.categoryCode || '');
|
const categoryCode = selectedItem ? selectedItem.categoryCode : (row?.adviceType !== undefined ? (adviceQueryParams.value.categoryCode || '') : '');
|
||||||
tableRef.refresh(adviceType, categoryCode, value);
|
tableRef.refresh(adviceType, categoryCode, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1214,12 +1210,8 @@ function handleSave() {
|
|||||||
getListInfo(false);
|
getListInfo(false);
|
||||||
bindMethod.value = {};
|
bindMethod.value = {};
|
||||||
nextId.value == 1;
|
nextId.value == 1;
|
||||||
|
|
||||||
// 处方保存成功后,自动将医嘱信息同步至患者处置记录
|
|
||||||
// handleEmrTreatment();
|
|
||||||
} else {
|
} else {
|
||||||
proxy.$modal.msgError(res.message);
|
proxy.$modal.msgError(res.message);
|
||||||
conso;
|
|
||||||
isSaving.value = false;
|
isSaving.value = false;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1319,22 +1311,26 @@ function handleCancelEdit(row, index) {
|
|||||||
function handleSaveSign(row, index) {
|
function handleSaveSign(row, index) {
|
||||||
if (row.adviceType != 2) {
|
if (row.adviceType != 2) {
|
||||||
let itemNo = row.adviceType == 1 ? row.methodCode : row.adviceDefinitionId;
|
let itemNo = row.adviceType == 1 ? row.methodCode : row.adviceDefinitionId;
|
||||||
getBindDevice({ typeCode: row.adviceType, itemNo: itemNo }).then((res) => {
|
if (!itemNo) {
|
||||||
if (res.data.length == 0) {
|
console.warn('绑定设备检查跳过:itemNo为空(adviceType=' + row.adviceType + ', adviceName=' + row.adviceName + ')');
|
||||||
return;
|
} else {
|
||||||
}
|
getBindDevice({ typeCode: row.adviceType, itemNo: itemNo }).then((res) => {
|
||||||
let openBindDialog = localStorage.getItem('doctor' + userStore.id);
|
if (res.data.length == 0) {
|
||||||
if (!JSON.parse(openBindDialog)) {
|
return;
|
||||||
proxy.$refs['orderBindInfoRef'].open(res.data);
|
|
||||||
} else {
|
|
||||||
// 如果弹窗不提示带出的项目,自动带出
|
|
||||||
// 如果有未签发的项目,并且当前的项目没有带出过绑定项目,则自动带出
|
|
||||||
if (!bindMethod.value[itemNo]) {
|
|
||||||
handleOrderBindInfo(res.data);
|
|
||||||
bindMethod.value[itemNo] = true;
|
|
||||||
}
|
}
|
||||||
}
|
let openBindDialog = localStorage.getItem('doctor' + userStore.id);
|
||||||
});
|
if (!JSON.parse(openBindDialog)) {
|
||||||
|
proxy.$refs['orderBindInfoRef'].open(res.data);
|
||||||
|
} else {
|
||||||
|
// 如果弹窗不提示带出的项目,自动带出
|
||||||
|
// 如果有未签发的项目,并且当前的项目没有带出过绑定项目,则自动带出
|
||||||
|
if (!bindMethod.value[itemNo]) {
|
||||||
|
handleOrderBindInfo(res.data);
|
||||||
|
bindMethod.value[itemNo] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新UI状态
|
// 更新UI状态
|
||||||
|
|||||||
@@ -273,8 +273,9 @@ function handleSearch() {
|
|||||||
// 清除缓存(搜索时需要重新加载)
|
// 清除缓存(搜索时需要重新加载)
|
||||||
patientDataCache.value.clear();
|
patientDataCache.value.clear();
|
||||||
|
|
||||||
// 重新加载所有已展开病区的患者列表
|
// 通过递增 key 强制重新渲染树组件,触发重新加载所有病区患者列表
|
||||||
reloadAllPatients();
|
// 此时 searchKey 已有值,loadPatientList 会将 searchKey 传给后端进行过滤
|
||||||
|
treeKey.value += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 暴露方法供外部调用
|
// 暴露方法供外部调用
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ function handleGetPrescription() {
|
|||||||
getPrescriptionList({
|
getPrescriptionList({
|
||||||
encounterIds: encounterIds,
|
encounterIds: encounterIds,
|
||||||
requestStatus: props.requestStatus,
|
requestStatus: props.requestStatus,
|
||||||
therapyEnum: type.value === 1 ? undefined : type.value === 2 ? 1 : 2, // 1=全部(不传), 2=长期(1), 3=临时(2)
|
...(type.value !== undefined ? { therapyEnum: type.value } : {}),
|
||||||
pageSize: 10000,
|
pageSize: 10000,
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user