解决合并冲突
This commit is contained in:
@@ -1,8 +1,4 @@
|
||||
/*
|
||||
* @Author: sjjh
|
||||
* @Date: 2025-09-07 12:09:26
|
||||
* @Description:
|
||||
*/
|
||||
|
||||
import request from '@/utils/request'
|
||||
// 申请单相关接口
|
||||
|
||||
@@ -48,6 +44,46 @@ export function getSurgery(queryParams) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询护理医嘱信息
|
||||
*/
|
||||
export function getNursingOrdersInfos() {
|
||||
return request({
|
||||
url: '/reg-doctorstation/special-advice/nursing-orders',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存护理医嘱信息
|
||||
* @param {Object} data - 护理医嘱数据
|
||||
* @param {number} data.encounterId - 就诊id
|
||||
* @param {number} data.patientId - 患者id
|
||||
* @param {number} data.conditionId - 诊断ID
|
||||
* @param {number} data.encounterDiagnosisId - 就诊诊断id
|
||||
* @param {string} data.startTime - 医嘱开始时间 (yyyy-MM-dd HH:mm:ss)
|
||||
* @param {Array} data.nursingOrdersSaveDetailDtoList - 护理医嘱详情保存集合
|
||||
* @param {number} data.nursingOrdersSaveDetailDtoList[].definitionId - 护理项目定义ID
|
||||
* @param {number} data.nursingOrdersSaveDetailDtoList[].categoryEnum - 护理项目类别编码:
|
||||
* 26(护理级别)、38(病情)、39(护理常规)、27(膳食)、40(体位)、41(陪护)、42(隔离等级)
|
||||
*/
|
||||
export function saveNursingOrders(data) {
|
||||
return request({
|
||||
url: '/reg-doctorstation/special-advice/nursing-orders',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取患者护理状态信息(用于回显)
|
||||
*/
|
||||
export function getEncounterNursingOrders(params) {
|
||||
return request({
|
||||
url: '/reg-doctorstation/special-advice/encounter-nursing-orders',
|
||||
method: 'get',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,7 @@
|
||||
<div>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="4" :xs="24">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="diagnosis"
|
||||
placeholder="诊断名称"
|
||||
@@ -23,40 +24,40 @@
|
||||
:filter-node-method="filterNode"
|
||||
@node-click="handleNodeClick"
|
||||
>
|
||||
=======
|
||||
<div style="height: 44px; display: flex; align-items: center; flex: none">
|
||||
<el-input v-model="diagnosis" placeholder="诊断名称" clearable style="width: 100%"
|
||||
@keyup.enter="queryDiagnosisUse">
|
||||
<template #append>
|
||||
<el-button icon="Search" @click="queryDiagnosisUse" />
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<el-tree ref="treeRef" :data="tree" node-key="id" :props="{ label: 'name', children: 'children' }"
|
||||
highlight-current default-expand-all :filter-node-method="filterNode" @node-click="handleNodeClick">
|
||||
>>>>>>> upstream/develop
|
||||
<template #default="{ node, data }">
|
||||
<div class="custom-tree-node">
|
||||
<span>{{ node.label }}</span>
|
||||
<span class="tree-node-actions">
|
||||
<template v-if="node.level === 1 && data.name != '常用' && data.name != '历史'">
|
||||
<el-button
|
||||
style="color: #000000"
|
||||
type="text"
|
||||
size="small"
|
||||
@click.stop="addChild(data)"
|
||||
>
|
||||
<el-icon><Plus /></el-icon>
|
||||
<el-button style="color: #000000" type="text" size="small" @click.stop="addChild(data)">
|
||||
<el-icon>
|
||||
<Plus />
|
||||
</el-icon>
|
||||
</el-button>
|
||||
</template>
|
||||
<el-popconfirm
|
||||
width="200"
|
||||
:hide-after="10"
|
||||
title="确认删除此常用诊断吗"
|
||||
placement="top-start"
|
||||
@confirm="deleteChild(data)"
|
||||
>
|
||||
<el-popconfirm width="200" :hide-after="10" title="确认删除此常用诊断吗" placement="top-start"
|
||||
@confirm="deleteChild(data)">
|
||||
<template #reference>
|
||||
<el-button
|
||||
style="color: #000000"
|
||||
v-if="
|
||||
node.level === 2 &&
|
||||
node.parent.data.name != '常用' &&
|
||||
node.parent.data.name != '历史'
|
||||
"
|
||||
type="text"
|
||||
size="small"
|
||||
@click.stop=""
|
||||
>
|
||||
<el-icon><Minus /></el-icon>
|
||||
<el-button style="color: #000000" v-if="
|
||||
node.level === 2 &&
|
||||
node.parent.data.name != '常用' &&
|
||||
node.parent.data.name != '历史'
|
||||
" type="text" size="small" @click.stop="">
|
||||
<el-icon>
|
||||
<Minus />
|
||||
</el-icon>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
@@ -82,32 +83,17 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="诊断排序" align="center" prop="diagSrtNo" width="120">
|
||||
<template #default="scope">
|
||||
<el-form-item
|
||||
:prop="`diagnosisList.${scope.$index}.diagSrtNo`"
|
||||
:rules="rules.diagSrtNo"
|
||||
>
|
||||
<el-input-number
|
||||
v-model="scope.row.diagSrtNo"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
style="width: 80px"
|
||||
/>
|
||||
<el-form-item :prop="`diagnosisList.${scope.$index}.diagSrtNo`" :rules="rules.diagSrtNo">
|
||||
<el-input-number v-model="scope.row.diagSrtNo" controls-position="right" :controls="false"
|
||||
style="width: 80px" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="诊断类别" align="center" prop="diagSrtNo" width="180">
|
||||
<template #default="scope">
|
||||
<el-form-item
|
||||
:prop="`diagnosisList.${scope.$index}.medTypeCode`"
|
||||
:rules="rules.medTypeCode"
|
||||
>
|
||||
<el-form-item :prop="`diagnosisList.${scope.$index}.medTypeCode`" :rules="rules.medTypeCode">
|
||||
<el-select v-model="scope.row.medTypeCode" placeholder=" " style="width: 150px">
|
||||
<el-option
|
||||
v-for="item in med_type"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
<el-option v-for="item in med_type" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</template>
|
||||
@@ -115,25 +101,12 @@
|
||||
<el-table-column label="诊断名称" align="center" prop="name">
|
||||
<template #default="scope">
|
||||
<el-form-item :prop="`diagnosisList.${scope.$index}.name`" :rules="rules.name">
|
||||
<el-popover
|
||||
:popper-style="{ padding: '0' }"
|
||||
placement="bottom-start"
|
||||
:visible="scope.row.showPopover"
|
||||
trigger="manual"
|
||||
:width="800"
|
||||
>
|
||||
<diagnosislist
|
||||
:diagnosisSearchkey="diagnosisSearchkey"
|
||||
@selectDiagnosis="handleSelsectDiagnosis"
|
||||
/>
|
||||
<el-popover :popper-style="{ padding: '0' }" placement="bottom-start" :visible="scope.row.showPopover"
|
||||
trigger="manual" :width="800">
|
||||
<diagnosislist :diagnosisSearchkey="diagnosisSearchkey" @selectDiagnosis="handleSelsectDiagnosis" />
|
||||
<template #reference>
|
||||
<el-input
|
||||
v-model="scope.row.name"
|
||||
placeholder="请选择诊断"
|
||||
@input="handleChange"
|
||||
@focus="handleFocus(scope.row, scope.$index)"
|
||||
@blur="handleBlur(scope.row)"
|
||||
/>
|
||||
<el-input v-model="scope.row.name" placeholder="请选择诊断" @input="handleChange"
|
||||
@focus="handleFocus(scope.row, scope.$index)" @blur="handleBlur(scope.row)" />
|
||||
</template>
|
||||
</el-popover>
|
||||
</el-form-item>
|
||||
@@ -145,6 +118,7 @@
|
||||
<el-table-column label="诊断代码" align="center" prop="ybNo" width="180" />
|
||||
<el-table-column label="诊断类型" align="center" prop="maindiseFlag" width="120">
|
||||
<template #default="scope">
|
||||
<<<<<<< HEAD
|
||||
<div style="display:flex;flex-direction:column;align-items:center;gap:5px;">
|
||||
<el-checkbox
|
||||
label="主诊断"
|
||||
@@ -167,17 +141,21 @@
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
=======
|
||||
<el-checkbox label="主诊断" :trueLabel="1" :falseLabel="0" v-model="scope.row.maindiseFlag" border
|
||||
size="small" @change="(value) => handleMaindise(value, scope.$index)" />
|
||||
<el-select v-model="scope.row.verificationStatusEnum" placeholder=" "
|
||||
style="width: 40%; padding-bottom: 5px; padding-left: 10px" size="small">
|
||||
<el-option v-for="item in diagnosisOptions" :key="item.value" :label="item.label"
|
||||
:value="item.value" />
|
||||
>>>>>>> upstream/develop
|
||||
</el-select>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="130">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
@click="handleDeleteDiagnosis(scope.row, scope.$index)"
|
||||
>
|
||||
<el-button link type="primary" @click="handleDeleteDiagnosis(scope.row, scope.$index)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
@@ -186,6 +164,7 @@
|
||||
</el-form>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<<<<<<< HEAD
|
||||
<diagnosisdialog
|
||||
:openDiagnosis="openDiagnosis"
|
||||
@close="closeDiagnosisDialog"
|
||||
@@ -196,6 +175,11 @@
|
||||
:patientInfo="props.patientInfo"
|
||||
@close="closeDiagnosisDialog"
|
||||
/>
|
||||
=======
|
||||
<diagnosisdialog :openDiagnosis="openDiagnosis" @close="closeDiagnosisDialog" :radio="orgOrUser" />
|
||||
<AddDiagnosisDialog :openAddDiagnosisDialog="openAddDiagnosisDialog" :patientInfo="patientInfo"
|
||||
@close="closeDiagnosisDialog" />
|
||||
>>>>>>> upstream/develop
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -292,7 +276,6 @@ function getList() {
|
||||
|
||||
form.value.diagnosisList = diagnosisList;
|
||||
emits('diagnosisSave', false);
|
||||
console.log(form.value.diagnosisList);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -321,7 +304,6 @@ function getList() {
|
||||
});
|
||||
}
|
||||
emits('diagnosisSave', false);
|
||||
console.log(form.value.diagnosisList);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -594,7 +576,7 @@ function closeDiagnosisDialog(str) {
|
||||
getTree();
|
||||
}
|
||||
|
||||
function queryDiagnosisUse(value) {}
|
||||
function queryDiagnosisUse(value) { }
|
||||
|
||||
function handleChange(value) {
|
||||
diagnosisSearchkey.value = value;
|
||||
@@ -658,6 +640,7 @@ defineExpose({ getList, getDetail, handleSaveDiagnosis });
|
||||
.el-checkbox.is-bordered.el-checkbox--small {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.custom-tree-node {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -93,6 +93,17 @@ export function geturger(data) {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 住院患者转科
|
||||
*/
|
||||
export function transferOrganization(data) {
|
||||
return request({
|
||||
url: '/reg-doctorstation/special-advice/transfer-organization-orders',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -121,7 +121,6 @@ const submitApplicationForm = () => {
|
||||
}
|
||||
};
|
||||
const submitOk = () => {
|
||||
debugger;
|
||||
applicationFormDialogVisible.value = false;
|
||||
applicationFormName.value = null;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-model="dialogVisible"
|
||||
destroy-on-close
|
||||
width="600px"
|
||||
:close-on-click-modal="false"
|
||||
title="出院申请"
|
||||
@close="closeDialog"
|
||||
>
|
||||
<div style="padding: 0 80px">
|
||||
<el-form :model="form" :rules="rules" ref="formRef">
|
||||
<el-form-item label="出院方式">
|
||||
<el-select v-model="form.outpatientType">
|
||||
<el-option
|
||||
v-for="(item, index) in dscg_way"
|
||||
:key="index"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="出院时间">
|
||||
<el-radio-group v-model="form.outpatientTime">
|
||||
<el-radio value="1">今日</el-radio>
|
||||
<el-radio value="2">明日</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="出院描述"
|
||||
><el-input v-model="form.outpatientDescription" type="textarea" rows="5" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="submitApplicationForm"> 确认 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { dscg_way } = proxy.useDict('dscg_way');
|
||||
const dialogVisible = ref(false);
|
||||
const form = reactive({
|
||||
outpatientType: [],
|
||||
outpatientTime: '',
|
||||
outpatientDescription: '',
|
||||
});
|
||||
|
||||
function openDialog() {
|
||||
dialogVisible.value = true;
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
openDialog,
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,148 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-model="dialogVisible"
|
||||
destroy-on-close
|
||||
width="600px"
|
||||
:close-on-click-modal="false"
|
||||
title="转科申请"
|
||||
@close="closeDialog"
|
||||
>
|
||||
<div style="padding: 0 80px">
|
||||
<el-form :model="form" :rules="rules" ref="formRef">
|
||||
<el-form-item label="转入科室" prop="targetOrganizationId">
|
||||
<el-select
|
||||
v-model="form.targetOrganizationId"
|
||||
@change="fetchWardList"
|
||||
placeholder="请选择转入科室"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in deptList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="转入病区" prop="targetLocationId">
|
||||
<el-select v-model="form.targetLocationId" no-data-text="请先选择科室" placeholder="请选择转入病区">
|
||||
<el-option
|
||||
v-for="item in wardList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="转科时间" prop="startTime">
|
||||
<el-radio-group v-model="form.startTime">
|
||||
<el-radio :value="today">今日</el-radio>
|
||||
<el-radio :value="tomorrow">明日</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="转科原因" prop="reasonText">
|
||||
<el-input
|
||||
v-model="form.reasonText"
|
||||
type="textarea"
|
||||
rows="5"
|
||||
placeholder="请输入转科原因"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="submitApplicationForm"> 确认 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { transferOrganization } from './api.js';
|
||||
import { getWardList, getOrgList } from '@/api/public.js';
|
||||
import { patientInfo } from '../../../store/patient.js';
|
||||
const { proxy } = getCurrentInstance();
|
||||
const dialogVisible = ref(false);
|
||||
const deptList = ref([]); // 科室列表
|
||||
const wardList = ref([]); // 病区列表
|
||||
const today = ref(proxy.formatDateStr(new Date(),'YYYY-MM-DD HH:mm:ss'))
|
||||
const tomorrow = ref(proxy.formatDateStr(new Date().setDate(new Date + 1),'YYYY-MM-DD HH:mm:ss'))
|
||||
|
||||
const form = reactive({
|
||||
targetOrganizationId: '',
|
||||
targetLocationId: '',
|
||||
startTime: '',
|
||||
reasonText: '',
|
||||
});
|
||||
|
||||
// 表单校验规则
|
||||
const rules = ref({
|
||||
targetOrganizationId: [{ required: true, message: '请选择转入科室', trigger: 'change' }],
|
||||
targetLocationId: [{ required: true, message: '请选择转入病区', trigger: 'change' }],
|
||||
startTime: [{ required: true, message: '请选择转科时间', trigger: 'change' }],
|
||||
reasonText: [{ required: false }],
|
||||
});
|
||||
|
||||
// 获取科室列表
|
||||
function fetchDeptList() {
|
||||
getOrgList().then((response) => {
|
||||
deptList.value = response.data;
|
||||
});
|
||||
}
|
||||
|
||||
// 获取病区列表
|
||||
function fetchWardList() {
|
||||
getWardList({ orgId: form.targetOrganizationId }).then((response) => {
|
||||
wardList.value = response.data;
|
||||
});
|
||||
}
|
||||
|
||||
function openDialog() {
|
||||
dialogVisible.value = true;
|
||||
// 打开对话框时获取数据
|
||||
fetchDeptList();
|
||||
}
|
||||
|
||||
// 提交表单
|
||||
function submitApplicationForm() {
|
||||
proxy.$refs.formRef.validate((valid) => {
|
||||
console.log(patientInfo.value);
|
||||
if (valid) {
|
||||
form.encounterId = patientInfo.value.encounterId
|
||||
form.patientId = patientInfo.value.patientId
|
||||
// 表单校验通过,执行提交逻辑
|
||||
transferOrganization(form).then((res) => {
|
||||
if (res.code == 200) {
|
||||
proxy.$modal.msgSuccess('转科申请已提交');
|
||||
dialogVisible.value = false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// 表单校验不通过
|
||||
proxy.$modal.msgWarning('请完善必填信息');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 关闭对话框
|
||||
function closeDialog() {
|
||||
// 重置表单
|
||||
proxy.$refs.formRef.resetFields();
|
||||
// 重置数据
|
||||
Object.assign(form, {
|
||||
targetOrganizationId: '',
|
||||
targetLocationId: '',
|
||||
startTime: '',
|
||||
reasonText: '',
|
||||
});
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
openDialog,
|
||||
});
|
||||
</script>
|
||||
@@ -10,10 +10,20 @@
|
||||
<el-button type="warning" plain @click="handleSingOut()" :disabled="false">
|
||||
撤回
|
||||
</el-button>
|
||||
<el-button type="primary" plain @click="proxy.$refs.orderFroupRef.handleOpen()" :disabled="false">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
@click="proxy.$refs.orderFroupRef.handleOpen()"
|
||||
:disabled="false"
|
||||
>
|
||||
组套
|
||||
</el-button>
|
||||
<el-button type="primary" plain :disabled="false" @click="proxy.$refs.prescriptionHistoryRef.handleOpen()">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
:disabled="false"
|
||||
@click="proxy.$refs.prescriptionHistoryRef.handleOpen()"
|
||||
>
|
||||
历史
|
||||
</el-button>
|
||||
<el-button type="default" @click="combination()" :disabled="false"> 组合 </el-button>
|
||||
@@ -24,13 +34,22 @@
|
||||
<el-button type="danger" plain @click="handleDelete()" :disabled="false"> 删除 </el-button>
|
||||
<span class="descriptions-item-label"> 诊断: </span>
|
||||
<el-select v-model="conditionDefinitionId" placeholder="诊断" style="width: 180px">
|
||||
<el-option v-for="item in diagnosisList" :key="item.conditionId" :label="item.name" :value="item.definitionId"
|
||||
@click="handleDiagnosisChange(item)" />
|
||||
<el-option
|
||||
v-for="item in diagnosisList"
|
||||
:key="item.conditionId"
|
||||
:label="item.name"
|
||||
:value="item.definitionId"
|
||||
@click="handleDiagnosisChange(item)"
|
||||
/>
|
||||
</el-select>
|
||||
<span class="descriptions-item-label"> 费用性质: </span>
|
||||
<el-select v-model="accountId" placeholder="费用性质" style="width: 180px">
|
||||
<el-option v-for="item in contractList" :key="item.accountId" :label="item.contractName"
|
||||
:value="item.accountId" />
|
||||
<el-option
|
||||
v-for="item in contractList"
|
||||
:key="item.accountId"
|
||||
:label="item.contractName"
|
||||
:value="item.accountId"
|
||||
/>
|
||||
</el-select>
|
||||
<span class="descriptions-item-label">
|
||||
合计金额:{{ totalAmount ? totalAmount.toFixed(2) : 0 }}元
|
||||
@@ -47,19 +66,38 @@
|
||||
<el-radio-button label="临时" value="2" />
|
||||
</el-radio-group>
|
||||
<el-select v-model="orderClassCode" placeholder="医嘱类型" style="width: 240px">
|
||||
<el-option v-for="item in adviceTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
<el-option
|
||||
v-for="item in adviceTypeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select v-model="orderStatus" placeholder="医嘱状态" style="width: 240px"> </el-select>
|
||||
<el-button link type="primary" @click="handleTransferOrg">转科</el-button>
|
||||
<el-button link type="primary" @click="handleLeaveHospital">出院</el-button>
|
||||
</el-space>
|
||||
</div>
|
||||
</div>
|
||||
<div class="inpatientDoctor-order-table">
|
||||
<el-table max-height="650" ref="prescriptionRef" :data="prescriptionList" row-key="uniqueKey" border
|
||||
@cell-click="clickRow" @row-dblclick="clickRowDb" v-loading="loading" :expand-row-keys="expandOrder">
|
||||
<el-table
|
||||
max-height="650"
|
||||
ref="prescriptionRef"
|
||||
:data="prescriptionList"
|
||||
row-key="uniqueKey"
|
||||
border
|
||||
@cell-click="clickRow"
|
||||
@row-dblclick="clickRowDb"
|
||||
v-loading="loading"
|
||||
:expand-row-keys="expandOrder"
|
||||
>
|
||||
<el-table-column type="expand" width="1" style="width: 0">
|
||||
<template #default="scope">
|
||||
<el-form :model="scope.row" :rules="rowRules" :ref="'formRef' + scope.$index">
|
||||
<div class="expend_div" style="padding: 16px; background: #f8f9fa; border-radius: 8px">
|
||||
<div
|
||||
class="expend_div"
|
||||
style="padding: 16px; background: #f8f9fa; border-radius: 8px"
|
||||
>
|
||||
<template v-if="scope.row.adviceType == 1">
|
||||
<div style="display: flex; align-items: center; margin-bottom: 16px; gap: 16px">
|
||||
<span class="medicine-title">
|
||||
@@ -92,10 +130,17 @@
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item prop="lotNumber" label="药房:">
|
||||
<el-select v-model="scope.row.inventoryId" style="width: 180px; margin-right: 20px"
|
||||
placeholder="药房">
|
||||
<el-option v-for="item in scope.row.stockList" :key="item.inventoryId" :value="item.inventoryId"
|
||||
:label="item.locationName +
|
||||
<el-select
|
||||
v-model="scope.row.inventoryId"
|
||||
style="width: 180px; margin-right: 20px"
|
||||
placeholder="药房"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in scope.row.stockList"
|
||||
:key="item.inventoryId"
|
||||
:value="item.inventoryId"
|
||||
:label="
|
||||
item.locationName +
|
||||
' ' +
|
||||
'批次号: ' +
|
||||
item.lotNumber +
|
||||
@@ -111,19 +156,32 @@
|
||||
item.price.toFixed(2) +
|
||||
'/' +
|
||||
item.unitCode_dictText
|
||||
" @click="handleNumberClick(item, scope.$index)" />
|
||||
"
|
||||
@click="handleNumberClick(item, scope.$index)"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="执行次数:" prop="executeNum" class="required-field" data-prop="executeNum"
|
||||
v-if="scope.row.injectFlag == 1">
|
||||
<el-input-number :min="1" v-model="scope.row.executeNum" controls-position="right"
|
||||
:controls="false" :ref="(el) => (inputRefs.executeNum = el)"
|
||||
<el-form-item
|
||||
label="执行次数:"
|
||||
prop="executeNum"
|
||||
class="required-field"
|
||||
data-prop="executeNum"
|
||||
v-if="scope.row.injectFlag == 1"
|
||||
>
|
||||
<el-input-number
|
||||
:min="1"
|
||||
v-model="scope.row.executeNum"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
:ref="(el) => (inputRefs.executeNum = el)"
|
||||
@keyup.enter.prevent="handleEnter('executeNum', scope.row, scope.$index)"
|
||||
style="width: 70px; margin-right: 20px" />
|
||||
</el-form-item>x
|
||||
<span class="medicine-info"> 诊断:{{ diagnosisName }} </span>x
|
||||
style="width: 70px; margin-right: 20px"
|
||||
/> </el-form-item
|
||||
>x <span class="medicine-info"> 诊断:{{ diagnosisName }} </span>x
|
||||
<span class="medicine-info"> 皮试:{{ scope.row.skinTestFlag_enumText }} </span>
|
||||
<span class="medicine-info"> 注射药品:{{ scope.row.injectFlag_enumText }} </span>
|
||||
<span class="medicine-info">
|
||||
注射药品:{{ scope.row.injectFlag_enumText }}
|
||||
</span>
|
||||
<span class="total-amount">
|
||||
总金额:{{ scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元' }}
|
||||
</span>
|
||||
@@ -131,104 +189,200 @@
|
||||
<div style="display: flex; align-items: center; gap: 12px; flex-wrap: wrap">
|
||||
<div class="form-group">
|
||||
<!-- 单次剂量 -->
|
||||
<el-form-item label="单次用量:" prop="doseQuantity" class="required-field" data-prop="doseQuantity">
|
||||
<el-input-number :min="0" v-model="scope.row.doseQuantity" controls-position="right"
|
||||
:controls="false" style="width: 70px; margin-right: 20px"
|
||||
:ref="(el) => (inputRefs.doseQuantity = el)" @input="convertValues(scope.row, scope.$index)"
|
||||
@keyup.enter.prevent="handleEnter('doseQuantity', scope.row, scope.$index)" />
|
||||
<el-form-item
|
||||
label="单次用量:"
|
||||
prop="doseQuantity"
|
||||
class="required-field"
|
||||
data-prop="doseQuantity"
|
||||
>
|
||||
<el-input-number
|
||||
:min="0"
|
||||
v-model="scope.row.doseQuantity"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
style="width: 70px; margin-right: 20px"
|
||||
:ref="(el) => (inputRefs.doseQuantity = el)"
|
||||
@input="convertValues(scope.row, scope.$index)"
|
||||
@keyup.enter.prevent="
|
||||
handleEnter('doseQuantity', scope.row, scope.$index)
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 剂量单位 -->
|
||||
<el-select v-model="scope.row.minUnitCode" style="width: 70px; margin-right: 20px"
|
||||
placeholder=" ">
|
||||
<el-select
|
||||
v-model="scope.row.minUnitCode"
|
||||
style="width: 70px; margin-right: 20px"
|
||||
placeholder=" "
|
||||
>
|
||||
<template v-for="item in scope.row.unitCodeList" :key="item.value">
|
||||
<el-option v-if="
|
||||
scope.row.unitCodeList.length == 3
|
||||
? item.type == unitMap['minUnit']
|
||||
: item.type == unitMap['unit']
|
||||
" :value="item.value" :label="item.label" />
|
||||
<el-option
|
||||
v-if="
|
||||
scope.row.unitCodeList.length == 3
|
||||
? item.type == unitMap['minUnit']
|
||||
: item.type == unitMap['unit']
|
||||
"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</template>
|
||||
</el-select>
|
||||
<span>=</span>
|
||||
<!-- 单次剂量 -->
|
||||
<el-form-item prop="dose" class="required-field" data-prop="dose">
|
||||
<el-input-number v-model="scope.row.dose" controls-position="right" :controls="false"
|
||||
style="width: 70px; margin: 0 20px" :ref="(el) => (inputRefs.dose = el)"
|
||||
<el-input-number
|
||||
v-model="scope.row.dose"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
style="width: 70px; margin: 0 20px"
|
||||
:ref="(el) => (inputRefs.dose = el)"
|
||||
@input="convertDoseValues(scope.row, scope.$index)"
|
||||
@keyup.enter.prevent="handleEnter('dose', scope.row, scope.$index)" />
|
||||
@keyup.enter.prevent="handleEnter('dose', scope.row, scope.$index)"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 全部单位 -->
|
||||
<el-select v-model="scope.row.doseUnitCode" style="width: 70px" placeholder=" "
|
||||
@change="convertValues(scope.row, scope.$index)">
|
||||
<el-option v-for="item in scope.row.unitCodeList" :value="item.value" :label="item.label"
|
||||
:key="item.value" />
|
||||
<el-select
|
||||
v-model="scope.row.doseUnitCode"
|
||||
style="width: 70px"
|
||||
placeholder=" "
|
||||
@change="convertValues(scope.row, scope.$index)"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in scope.row.unitCodeList"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
:key="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<el-form-item label="给药途径:" prop="methodCode" class="required-field" data-prop="methodCode">
|
||||
<el-select v-model="scope.row.methodCode" placeholder="给药途径" clearable filterable
|
||||
:ref="(el) => (inputRefs.methodCode = el)" @keyup.enter.prevent="
|
||||
<el-form-item
|
||||
label="给药途径:"
|
||||
prop="methodCode"
|
||||
class="required-field"
|
||||
data-prop="methodCode"
|
||||
>
|
||||
<el-select
|
||||
v-model="scope.row.methodCode"
|
||||
placeholder="给药途径"
|
||||
clearable
|
||||
filterable
|
||||
:ref="(el) => (inputRefs.methodCode = el)"
|
||||
@keyup.enter.prevent="
|
||||
() => {
|
||||
inputRefs.methodCode.blur();
|
||||
}
|
||||
" @visible-change="
|
||||
(value) => {
|
||||
if (!value) {
|
||||
handleEnter('methodCode', scope.row, scope.$index);
|
||||
"
|
||||
@visible-change="
|
||||
(value) => {
|
||||
if (!value) {
|
||||
handleEnter('methodCode', scope.row, scope.$index);
|
||||
}
|
||||
}
|
||||
}
|
||||
">
|
||||
<el-option v-for="dict in method_code" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value" />
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in method_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="用药频次:" prop="rateCode" class="required-field" data-prop="rateCode">
|
||||
<el-select v-model="scope.row.rateCode" placeholder="频次" style="width: 120px" filterable
|
||||
<el-form-item
|
||||
label="用药频次:"
|
||||
prop="rateCode"
|
||||
class="required-field"
|
||||
data-prop="rateCode"
|
||||
>
|
||||
<el-select
|
||||
v-model="scope.row.rateCode"
|
||||
placeholder="频次"
|
||||
style="width: 120px"
|
||||
filterable
|
||||
@keyup.enter.prevent="
|
||||
() => {
|
||||
inputRefs.rateCode.blur();
|
||||
}
|
||||
" @change="calculateTotalAmount(scope.row, scope.$index)" @visible-change="
|
||||
(value) => {
|
||||
if (!value) {
|
||||
handleEnter('rateCode', scope.row, scope.$index);
|
||||
"
|
||||
@change="calculateTotalAmount(scope.row, scope.$index)"
|
||||
@visible-change="
|
||||
(value) => {
|
||||
if (!value) {
|
||||
handleEnter('rateCode', scope.row, scope.$index);
|
||||
}
|
||||
}
|
||||
}
|
||||
" :ref="(el) => (inputRefs.rateCode = el)">
|
||||
<el-option v-for="dict in rate_code" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value" />
|
||||
"
|
||||
:ref="(el) => (inputRefs.rateCode = el)"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in rate_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div style="
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 10px;
|
||||
">
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 10px;
|
||||
"
|
||||
>
|
||||
<div class="form-group">
|
||||
<el-form-item label="用药天数:" prop="dispensePerDuration" class="required-field"
|
||||
data-prop="dispensePerDuration">
|
||||
<el-input-number v-model="scope.row.dispensePerDuration" style="width: 80px" :min="1"
|
||||
controls-position="right" :controls="false"
|
||||
:ref="(el) => (inputRefs.dispensePerDuration = el)" @keyup.enter.prevent="
|
||||
<el-form-item
|
||||
label="用药天数:"
|
||||
prop="dispensePerDuration"
|
||||
class="required-field"
|
||||
data-prop="dispensePerDuration"
|
||||
>
|
||||
<el-input-number
|
||||
v-model="scope.row.dispensePerDuration"
|
||||
style="width: 80px"
|
||||
:min="1"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
:ref="(el) => (inputRefs.dispensePerDuration = el)"
|
||||
@keyup.enter.prevent="
|
||||
handleEnter('dispensePerDuration', scope.row, scope.$index)
|
||||
">
|
||||
"
|
||||
>
|
||||
<template #suffix>天</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="总量:" prop="quantity" class="required-field" data-prop="quantity">
|
||||
<el-input-number v-model="scope.row.quantity" style="width: 70px" controls-position="right"
|
||||
:controls="false" :ref="(el) => (inputRefs.quantity = el)"
|
||||
<el-form-item
|
||||
label="总量:"
|
||||
prop="quantity"
|
||||
class="required-field"
|
||||
data-prop="quantity"
|
||||
>
|
||||
<el-input-number
|
||||
v-model="scope.row.quantity"
|
||||
style="width: 70px"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
:ref="(el) => (inputRefs.quantity = el)"
|
||||
@keyup.enter.prevent="handleEnter('quantity', scope.row, scope.$index)"
|
||||
@input="calculateTotalPrice(scope.row, scope.$index)" />
|
||||
@input="calculateTotalPrice(scope.row, scope.$index)"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-select v-model="scope.row.unitCode" style="width: 70px; margin-right: 20px" placeholder=" "
|
||||
@change="calculateTotalAmount(scope.row, scope.$index)">
|
||||
<el-select
|
||||
v-model="scope.row.unitCode"
|
||||
style="width: 70px; margin-right: 20px"
|
||||
placeholder=" "
|
||||
@change="calculateTotalAmount(scope.row, scope.$index)"
|
||||
>
|
||||
<template v-for="item in scope.row.unitCodeList" :key="item.value">
|
||||
<el-option v-if="item.type != unitMap['dose']" :value="item.value" :label="item.label" />
|
||||
<el-option
|
||||
v-if="item.type != unitMap['dose']"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
/>
|
||||
</template>
|
||||
</el-select>
|
||||
</div>
|
||||
@@ -251,10 +405,17 @@
|
||||
}}
|
||||
</span>
|
||||
<div class="form-group">
|
||||
<el-select v-model="scope.row.lotNumber" style="width: 180px; margin-right: 20px"
|
||||
placeholder="药房">
|
||||
<el-option v-for="item in scope.row.stockList" :key="item.lotNumber" :value="item.lotNumber"
|
||||
:label="item.locationName +
|
||||
<el-select
|
||||
v-model="scope.row.lotNumber"
|
||||
style="width: 180px; margin-right: 20px"
|
||||
placeholder="药房"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in scope.row.stockList"
|
||||
:key="item.lotNumber"
|
||||
:value="item.lotNumber"
|
||||
:label="
|
||||
item.locationName +
|
||||
' ' +
|
||||
'批次号: ' +
|
||||
item.lotNumber +
|
||||
@@ -270,26 +431,49 @@
|
||||
item.price.toFixed(2) +
|
||||
'/' +
|
||||
item.unitCode_dictText
|
||||
" @click="handleNumberClick(item, scope.$index)" />
|
||||
"
|
||||
@click="handleNumberClick(item, scope.$index)"
|
||||
/>
|
||||
</el-select>
|
||||
<el-form-item label="数量:" prop="quantity" class="required-field" data-prop="quantity">
|
||||
<el-input-number placeholder="数量" v-model="scope.row.quantity" style="width: 70px"
|
||||
controls-position="right" :controls="false"
|
||||
<el-form-item
|
||||
label="数量:"
|
||||
prop="quantity"
|
||||
class="required-field"
|
||||
data-prop="quantity"
|
||||
>
|
||||
<el-input-number
|
||||
placeholder="数量"
|
||||
v-model="scope.row.quantity"
|
||||
style="width: 70px"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
@keyup.enter.prevent="handleEnter('quantity', scope.row, scope.$index)"
|
||||
@input="calculateTotalAmount(scope.row, scope.$index)" />
|
||||
@input="calculateTotalAmount(scope.row, scope.$index)"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-select v-model="scope.row.unitCode" style="width: 70px; margin-right: 20px" placeholder=" "
|
||||
@change="calculateTotalAmount(scope.row, scope.$index)">
|
||||
<el-select
|
||||
v-model="scope.row.unitCode"
|
||||
style="width: 70px; margin-right: 20px"
|
||||
placeholder=" "
|
||||
@change="calculateTotalAmount(scope.row, scope.$index)"
|
||||
>
|
||||
<template v-for="item in scope.row.unitCodeList" :key="item.value">
|
||||
<el-option v-if="item.type != unitMap['dose']" :value="item.value" :label="item.label" @click="
|
||||
() => {
|
||||
scope.row.unitCode_dictText = item.label;
|
||||
}
|
||||
" />
|
||||
<el-option
|
||||
v-if="item.type != unitMap['dose']"
|
||||
:value="item.value"
|
||||
:label="item.label"
|
||||
@click="
|
||||
() => {
|
||||
scope.row.unitCode_dictText = item.label;
|
||||
}
|
||||
"
|
||||
/>
|
||||
</template>
|
||||
</el-select>
|
||||
<span class="total-amount">
|
||||
总金额:{{ scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元' }}
|
||||
总金额:{{
|
||||
scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元'
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
<el-button type="primary" @click="handleSaveSign(scope.row, scope.$index)">
|
||||
@@ -308,20 +492,45 @@
|
||||
}}
|
||||
</span>
|
||||
<div class="form-group">
|
||||
<el-form-item label="执行次数:" prop="quantity" class="required-field" data-prop="quantity">
|
||||
<el-input-number placeholder="执行次数" style="width: 100px; margin: 0 20px"
|
||||
v-model="scope.row.quantity" controls-position="right" :controls="false"
|
||||
<el-form-item
|
||||
label="执行次数:"
|
||||
prop="quantity"
|
||||
class="required-field"
|
||||
data-prop="quantity"
|
||||
>
|
||||
<el-input-number
|
||||
placeholder="执行次数"
|
||||
style="width: 100px; margin: 0 20px"
|
||||
v-model="scope.row.quantity"
|
||||
controls-position="right"
|
||||
:controls="false"
|
||||
@keyup.enter.prevent="handleEnter('quantity', scope.row, scope.$index)"
|
||||
@input="calculateTotalPrice(scope.row, scope.$index)" />
|
||||
@input="calculateTotalPrice(scope.row, scope.$index)"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="执行科室:" prop="orgId" class="required-field" data-prop="orgId">
|
||||
<el-tree-select clearable v-model="scope.row.orgId" style="width: 200px" :data="organization"
|
||||
:props="{ value: 'id', label: 'name', children: 'children' }" value-key="id" check-strictly
|
||||
default-expand-all @change="(value) => handleOrgChange(value, scope.$index)"
|
||||
placeholder="请选择执行科室" />
|
||||
<el-form-item
|
||||
label="执行科室:"
|
||||
prop="orgId"
|
||||
class="required-field"
|
||||
data-prop="orgId"
|
||||
>
|
||||
<el-tree-select
|
||||
clearable
|
||||
v-model="scope.row.orgId"
|
||||
style="width: 200px"
|
||||
:data="organization"
|
||||
:props="{ value: 'id', label: 'name', children: 'children' }"
|
||||
value-key="id"
|
||||
check-strictly
|
||||
default-expand-all
|
||||
@change="(value) => handleOrgChange(value, scope.$index)"
|
||||
placeholder="请选择执行科室"
|
||||
/>
|
||||
</el-form-item>
|
||||
<span class="total-amount">
|
||||
总金额:{{ scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元' }}
|
||||
总金额:{{
|
||||
scope.row.totalPrice ? scope.row.totalPrice + ' 元' : '0.00 元'
|
||||
}}
|
||||
</span>
|
||||
<span style="font-size: 16px; font-weight: 600">
|
||||
<!-- 金额: {{ scope.row.priceList[0].price }} -->
|
||||
@@ -338,18 +547,25 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="" align="center" prop="groupId" width="60">
|
||||
<template #header>
|
||||
<el-checkbox v-model="checkAll" @change="
|
||||
(value) => {
|
||||
prescriptionList.forEach((item, index) => {
|
||||
groupIndexList.push(index);
|
||||
item.check = value;
|
||||
});
|
||||
}
|
||||
" />
|
||||
<el-checkbox
|
||||
v-model="checkAll"
|
||||
@change="
|
||||
(value) => {
|
||||
prescriptionList.forEach((item, index) => {
|
||||
groupIndexList.push(index);
|
||||
item.check = value;
|
||||
});
|
||||
}
|
||||
"
|
||||
/>
|
||||
</template>
|
||||
<template #default="scope">
|
||||
<el-checkbox v-model="scope.row.check" @dblclick.stop="" placeholder=""
|
||||
@change="(value) => handleCheckBoxChange(value, scope.$index, scope.row)" />
|
||||
<el-checkbox
|
||||
v-model="scope.row.check"
|
||||
@dblclick.stop=""
|
||||
placeholder=""
|
||||
@change="(value) => handleCheckBoxChange(value, scope.$index, scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="组" align="center" width="60">
|
||||
@@ -363,11 +579,18 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="类型" align="center" prop="" width="120">
|
||||
<template #default="scope">
|
||||
<el-radio-group v-model="scope.row.therapyEnum" size="small" v-if="getRowDisabled(scope.row)">
|
||||
<el-radio-group
|
||||
v-model="scope.row.therapyEnum"
|
||||
size="small"
|
||||
v-if="getRowDisabled(scope.row)"
|
||||
>
|
||||
<el-radio-button label="长期" value="1" />
|
||||
<el-radio-button label="临时" value="2" />
|
||||
</el-radio-group>
|
||||
<span v-else :style="scope.row.therapyEnum == '1' ? 'color: #a6745c' : 'color: #3787a5'">
|
||||
<span
|
||||
v-else
|
||||
:style="scope.row.therapyEnum == '1' ? 'color: #a6745c' : 'color: #3787a5'"
|
||||
>
|
||||
{{ scope.row.therapyEnum_enumText }}
|
||||
</span>
|
||||
</template>
|
||||
@@ -375,31 +598,54 @@
|
||||
<el-table-column label="医嘱" align="center" prop="productName" width="300">
|
||||
<template #default="scope">
|
||||
<template v-if="getRowDisabled(scope.row)">
|
||||
<el-select style="width: 35%; margin-right: 20px" v-model="scope.row.adviceType"
|
||||
:ref="'adviceTypeRef' + scope.$index" @change="
|
||||
<el-select
|
||||
style="width: 35%; margin-right: 20px"
|
||||
v-model="scope.row.adviceType"
|
||||
:ref="'adviceTypeRef' + scope.$index"
|
||||
@change="
|
||||
(value) => {
|
||||
expandOrder = [];
|
||||
prescriptionList[scope.$index].adviceName = undefined;
|
||||
adviceQueryParams.adviceType = value;
|
||||
}
|
||||
">
|
||||
<el-option v-for="item in adviceTypeList" :key="item.value" :label="item.label" :value="item.value"
|
||||
"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in adviceTypeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
@click="
|
||||
() => {
|
||||
prescriptionList[scope.$index].adviceType = item.value;
|
||||
prescriptionList[scope.$index].adviceType_dictText = item.label;
|
||||
}
|
||||
" />
|
||||
"
|
||||
/>
|
||||
</el-select>
|
||||
<el-popover :popper-style="{ padding: '0' }" placement="bottom-start" :visible="scope.row.showPopover"
|
||||
:width="1200">
|
||||
<adviceBaseList ref="adviceTableRef" :popoverVisible="scope.row.showPopover"
|
||||
:adviceQueryParams="adviceQueryParams" :patientInfo="patientInfo"
|
||||
@selectAdviceBase="(row) => selectAdviceBase(scope.row.uniqueKey, row)" />
|
||||
<el-popover
|
||||
:popper-style="{ padding: '0' }"
|
||||
placement="bottom-start"
|
||||
:visible="scope.row.showPopover"
|
||||
:width="1200"
|
||||
>
|
||||
<adviceBaseList
|
||||
ref="adviceTableRef"
|
||||
:popoverVisible="scope.row.showPopover"
|
||||
:adviceQueryParams="adviceQueryParams"
|
||||
:patientInfo="patientInfo"
|
||||
@selectAdviceBase="(row) => selectAdviceBase(scope.row.uniqueKey, row)"
|
||||
/>
|
||||
<template #reference>
|
||||
<el-input :ref="'adviceRef' + scope.$index" style="width: 50%" v-model="scope.row.adviceName"
|
||||
placeholder="请选择项目" @input="handleChange" @click="handleFocus(scope.row, scope.$index)"
|
||||
@keyup.enter.stop="handleFocus(scope.row, scope.$index)" @keydown="
|
||||
<el-input
|
||||
:ref="'adviceRef' + scope.$index"
|
||||
style="width: 50%"
|
||||
v-model="scope.row.adviceName"
|
||||
placeholder="请选择项目"
|
||||
@input="handleChange"
|
||||
@click="handleFocus(scope.row, scope.$index)"
|
||||
@keyup.enter.stop="handleFocus(scope.row, scope.$index)"
|
||||
@keydown="
|
||||
(e) => {
|
||||
if (!scope.row.showPopover) return;
|
||||
// 拦截上下键和回车事件
|
||||
@@ -409,7 +655,9 @@
|
||||
adviceTableRef.handleKeyDown(e);
|
||||
}
|
||||
}
|
||||
" @blur="handleBlur(scope.row)" />
|
||||
"
|
||||
@blur="handleBlur(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-popover>
|
||||
</template>
|
||||
@@ -464,11 +712,11 @@
|
||||
{{
|
||||
scope.row.rateCode_dictText
|
||||
? scope.row.rateCode_dictText +
|
||||
' ' +
|
||||
scope.row.dispensePerDuration +
|
||||
'天' +
|
||||
' ' +
|
||||
scope.row.methodCode_dictText
|
||||
' ' +
|
||||
scope.row.dispensePerDuration +
|
||||
'天' +
|
||||
' ' +
|
||||
scope.row.methodCode_dictText
|
||||
: ''
|
||||
}}
|
||||
</span>
|
||||
@@ -510,8 +758,8 @@
|
||||
:patientInfo="patientInfo.value"
|
||||
@userPrescriptionHistory="handleSaveHistory"
|
||||
/> -->
|
||||
|
||||
|
||||
<LeaveHospitalDialog ref="leaveHospitalDialogRef" />
|
||||
<TransferOrganizationDialog ref="transferOrganizationRef" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -537,6 +785,8 @@ import { patientInfo } from '../../store/patient.js';
|
||||
import Decimal from 'decimal.js';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import ApplicationFormBottomBtn from './applicationForm/applicationFormBottomBtn.vue';
|
||||
import LeaveHospitalDialog from './applicationForm/leaveHospitalDialog.vue';
|
||||
import TransferOrganizationDialog from './applicationForm/transferOrganizationDialog.vue';
|
||||
const emit = defineEmits(['selectDiagnosis']);
|
||||
const total = ref(0);
|
||||
const queryParams = ref({});
|
||||
@@ -1376,7 +1626,7 @@ function handleSingOut() {
|
||||
function handleStopAdvice() {
|
||||
let requestIdList = prescriptionList.value
|
||||
.filter((item) => {
|
||||
return item.check && item.therapyEnum == '1';
|
||||
return item.check;
|
||||
})
|
||||
.map((item) => {
|
||||
return {
|
||||
@@ -1384,10 +1634,10 @@ function handleStopAdvice() {
|
||||
adviceType: item.adviceType,
|
||||
};
|
||||
});
|
||||
if (requestIdList.length == 0) {
|
||||
proxy.$modal.msgWarning('仅长期医嘱可停止');
|
||||
return;
|
||||
}
|
||||
// if (requestIdList.length == 0) {
|
||||
// proxy.$modal.msgWarning('仅长期医嘱可停止');
|
||||
// return;
|
||||
// }
|
||||
stopAdvice(requestIdList).then((res) => {
|
||||
if (res.code == 200) {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
@@ -1743,10 +1993,12 @@ function sortPrescriptionList() {
|
||||
});
|
||||
}
|
||||
|
||||
// 获取全部选中行
|
||||
// function getSelectRows() {
|
||||
// return prescriptionList.value.filter((item) => item.check);
|
||||
// }
|
||||
function handleLeaveHospital() {
|
||||
proxy.$refs['leaveHospitalDialogRef'].openDialog();
|
||||
}
|
||||
function handleTransferOrg() {
|
||||
proxy.$refs['transferOrganizationRef'].openDialog();
|
||||
}
|
||||
|
||||
// 处理行chexkbox选中
|
||||
function handleCheckBoxChange(value, index, row) {
|
||||
@@ -1893,7 +2145,7 @@ defineExpose({ getListInfo, getDiagnosisInfo });
|
||||
.order-operate-btn {
|
||||
flex: none;
|
||||
}
|
||||
.inpatientDoctor-order-table{
|
||||
.inpatientDoctor-order-table {
|
||||
flex: auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -5,26 +5,31 @@
|
||||
-->
|
||||
<template>
|
||||
<div class="emr-use-container">
|
||||
<div class="template-tree-container">
|
||||
<div class="search-box">
|
||||
<el-input placeholder="病历名称搜索..." v-model="queryParams.name">
|
||||
<template #append>
|
||||
<el-button @click="queryTemplateTree">查询</el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
<div class="disBtn" :class="{'disLeftBtnNor':leftShow,'disLeftBtnAct':!leftShow}" @click="disNode"><img src="../../../../assets/icons/svg/foldup.svg"></div>
|
||||
<div class="disBtn" :class="{'disRightBtnNor':rightShow,'disRightBtnAct':!rightShow}" @click="disNode_R"><img src="../../../../assets/icons/svg/foldup.svg"></div>
|
||||
<transition name="el-zoom-in-left">
|
||||
<div class="template-tree-container" v-if="leftShow">
|
||||
<div class="search-box">
|
||||
<el-input placeholder="病历名称搜索..." v-model="queryParams.name">
|
||||
<template #append>
|
||||
<el-button @click="queryTemplateTree">查询</el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<el-scrollbar class="template-tree-scrollbar">
|
||||
<el-tree
|
||||
ref="templateTree"
|
||||
:data="templateData"
|
||||
:props="defaultProps"
|
||||
auto-expand-parent
|
||||
node-key="id"
|
||||
@node-click="handleNodeClick"
|
||||
class="template-tree"
|
||||
></el-tree>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<el-scrollbar class="template-tree-scrollbar">
|
||||
<el-tree
|
||||
ref="templateTree"
|
||||
:data="templateData"
|
||||
:props="defaultProps"
|
||||
auto-expand-parent
|
||||
node-key="id"
|
||||
@node-click="handleNodeClick"
|
||||
class="template-tree"
|
||||
></el-tree>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
<div class="operate-container">
|
||||
<div class="operate-btns">
|
||||
<el-space>
|
||||
@@ -40,25 +45,29 @@
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</div>
|
||||
<div class="quickly-container">
|
||||
<el-tabs v-model="quicklyactiveName" type="card">
|
||||
<el-tab-pane label="历史" name="history">
|
||||
<History
|
||||
@historyClick="handleHistoryClick"
|
||||
ref="historyRef"
|
||||
v-model:definitionId="currentSelectTemplate.id"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="模版" name="model">
|
||||
<Template
|
||||
@templateClick="handleTemplateClick"
|
||||
ref="templateRef"
|
||||
v-model:definitionId="currentSelectTemplate.id"
|
||||
@edit="templateEdit"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
<transition name="el-zoom-in-left">
|
||||
<div class="quickly-container" v-if="rightShow">
|
||||
<el-tabs v-model="quicklyactiveName" type="card">
|
||||
<el-tab-pane label="历史" name="history">
|
||||
<History
|
||||
@historyClick="handleHistoryClick"
|
||||
ref="historyRef"
|
||||
v-model:definitionId="currentSelectTemplate.id"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="模版" name="model">
|
||||
<Template
|
||||
@templateClick="handleTemplateClick"
|
||||
ref="templateRef"
|
||||
v-model:definitionId="currentSelectTemplate.id"
|
||||
@edit="templateEdit"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
<TemplateEdit
|
||||
ref="templateEditRef"
|
||||
:formData="editTemplateForm"
|
||||
@@ -93,6 +102,9 @@ const currentSelectTemplate = ref({
|
||||
const currentComponent = ref('');
|
||||
const emrComponentRef = ref(null);
|
||||
const quicklyactiveName = ref('history');
|
||||
const leftShow = ref(true);
|
||||
const rightShow = ref(true);
|
||||
|
||||
|
||||
// 树配置(模板树)
|
||||
const defaultProps = {
|
||||
@@ -175,7 +187,6 @@ const handleSubmitOk = async (data) => {
|
||||
if (currentOperate.value === 'add') {
|
||||
//
|
||||
try {
|
||||
// debugger;
|
||||
if (!patientInfo.value?.encounterId || !patientInfo.value?.patientId) {
|
||||
ElMessage.error('请先选择患者!');
|
||||
return;
|
||||
@@ -263,11 +274,77 @@ onMounted(() => {
|
||||
});
|
||||
|
||||
defineExpose({ state });
|
||||
|
||||
const disNode = () => {
|
||||
leftShow.value = !leftShow.value;
|
||||
}
|
||||
const disNode_R = () => {
|
||||
rightShow.value = !rightShow.value;
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.emr-use-container {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
img {
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
}
|
||||
.disBtn {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
.disLeftBtnNor {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 18%;
|
||||
width: 20px;
|
||||
height: 60px;
|
||||
z-index: 1111;
|
||||
img {
|
||||
transform: rotate(-90deg) ;
|
||||
}
|
||||
}
|
||||
.disLeftBtnAct {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 0;
|
||||
width: 20px;
|
||||
height: 60px;
|
||||
z-index: 1111;
|
||||
img {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
.disRightBtnNor {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
right: 18.5%;
|
||||
width: 20px;
|
||||
height: 60px;
|
||||
z-index: 1111;
|
||||
img {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
.disRightBtnAct {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
right: 0;
|
||||
width: 20px;
|
||||
height: 60px;
|
||||
z-index: 1111;
|
||||
img {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
}
|
||||
|
||||
.template-tree-container {
|
||||
border-right: 1px solid #ebeef5;
|
||||
@@ -293,8 +370,9 @@ defineExpose({ state });
|
||||
}
|
||||
|
||||
.operate-container {
|
||||
width: 300px;
|
||||
flex: auto;
|
||||
width: 100%;
|
||||
//width: 300px;
|
||||
//flex: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 8px 8px 8px;
|
||||
@@ -323,4 +401,12 @@ defineExpose({ state });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@layer utilities {
|
||||
.transition-width {
|
||||
transition-property: width;
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition-duration: 300ms;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -11,4 +11,5 @@ import BloodTtransfusionAapplication from './components/applicationShow/bloodTtr
|
||||
import ExamineApplication from './components/applicationShow/examineApplication.vue'
|
||||
import SurgeryApplication from './components/applicationShow/surgeryApplication.vue'
|
||||
import TestApplication from './components/applicationShow/testApplication.vue'
|
||||
export { PatientList, PatientCard, Advice,Diagnose, BloodTtransfusionAapplication, ExamineApplication, SurgeryApplication, TestApplication }
|
||||
import NursingStatus from './components/applicationShow/nursingStatus.vue'
|
||||
export { PatientList, PatientCard, Advice,Diagnose, BloodTtransfusionAapplication, ExamineApplication, SurgeryApplication, TestApplication, NursingStatus }
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
<el-tab-pane label="诊断录入" name="diagnosis">
|
||||
<Diagnose ref="diagnosisRef" :patientInfo="patientInfo" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="住院病历" name="emr">
|
||||
<emr />
|
||||
<el-tab-pane label="住院病历" name="inhospitalEmr">
|
||||
<Emr ref="inhospitalEmrRef"/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="医技报告" name="fourth">Task</el-tab-pane>
|
||||
<el-tab-pane label="检验申请" name="test">
|
||||
@@ -37,6 +37,9 @@
|
||||
<el-tab-pane label="输血申请" name="blood">
|
||||
<BloodTtransfusionAapplication />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="护理状态" name="nursing">
|
||||
<NursingStatus />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-main>
|
||||
</el-container>
|
||||
@@ -48,7 +51,7 @@ import { getCurrentInstance, onBeforeMount, onMounted, reactive, ref } from 'vue
|
||||
// const { proxy } = getCurrentInstance()
|
||||
// const emits = defineEmits([])
|
||||
// const props = defineProps({})
|
||||
import Emr from "./emr/index.vue";
|
||||
import Emr from './emr/index.vue';
|
||||
import inPatientBarDoctorFold from '@/components/patientBar/inPatientBarDoctorFold.vue';
|
||||
import {
|
||||
PatientList,
|
||||
@@ -58,6 +61,7 @@ import {
|
||||
ExamineApplication,
|
||||
SurgeryApplication,
|
||||
TestApplication,
|
||||
NursingStatus,
|
||||
} from './index.js';
|
||||
const state = reactive({});
|
||||
onBeforeMount(() => {});
|
||||
|
||||
Reference in New Issue
Block a user