提交merge1.3

This commit is contained in:
2025-12-27 15:30:40 +08:00
parent 088861f66e
commit 3c497417dc
167 changed files with 0 additions and 17577 deletions

View File

@@ -15,11 +15,6 @@
<el-button icon="Search" @click="getPatientList" />
</template>
</el-input>
<<<<<<< HEAD
<el-date-picker v-model="registerTime" @change="handleTimeChange" type="daterange"
style="width: 100%; margin-bottom: 10px" :clearable="false" placeholder="挂号时间" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" />
=======
<el-date-picker
v-model="registerTime"
@change="handleTimeChange"
@@ -30,7 +25,6 @@
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
>>>>>>> v1.3
<el-scrollbar height="700px">
<div v-for="(item, index) in patientList" :class="item.active ? 'patient-card actived' : 'patient-card'"
:key="item.id" @click="handleCardClick(item, index)">
@@ -87,14 +81,6 @@
{{
Object.keys(patientInfo).length !== 0
? patientInfo.patientName +
<<<<<<< HEAD
' / ' +
patientInfo.age +
' / ' +
patientInfo.genderEnum_enumText +
' / ' +
patientInfo.contractName
=======
' / ' +
patientInfo.age +
' / ' +
@@ -105,29 +91,16 @@
patientInfo.phone +
'/' +
patientInfo.busNo
>>>>>>> v1.3
: '-'
}}
</el-descriptions-item>
<el-descriptions-item label="挂号时间:" width="300">
{{ Object.keys(patientInfo).length !== 0 ? formatDate(patientInfo.registerTime) : '-' }}
</el-descriptions-item>
<<<<<<< HEAD
<el-descriptions-item label="医生:" width="150">{{
userStore.name
}}</el-descriptions-item>
<el-descriptions-item label="" width="350">
<!-- 初诊 / 复诊 按钮 -->
<el-radio v-model="visitType" label="FIRST" :disabled="visitTypeDisabled">初诊</el-radio>
<el-radio v-model="visitType" label="FOLLOW_UP" :disabled="visitTypeDisabled">复诊</el-radio>
<!-- 原有按钮 -->
=======
<el-descriptions-item label="医生:" width="250">
{{ userStore.nickName }}
</el-descriptions-item>
<el-descriptions-item label="" width="300">
>>>>>>> v1.3
<el-button type="primary" plain @click.stop="handleFinish(patientInfo.encounterId)">
完诊
</el-button>
@@ -140,31 +113,11 @@
<el-button type="primary" plain @click.stop="getEnPrescription(patientInfo.encounterId)">
处方单
</el-button>
<<<<<<< HEAD
<el-button type="primary" plain @click.stop="openDialog = true">
办理住院
</el-button>
<el-button type="primary" plain @click.stop="handleCancelEncounter">
取消接诊
</el-button>
=======
<el-button type="primary" plain @click.stop="onHospitalization"> 办理住院 </el-button>
>>>>>>> v1.3
</el-descriptions-item>
</el-descriptions>
</div>
<div style="padding: 10px">
<<<<<<< HEAD
<el-tabs type="card" style="width: 100%; height: 100%" v-loading="loading" v-model="activeTab"
@tab-change="handleClick(activeTab)">
<el-tab-pane label="病历" name="emr">
<Emr :patientInfo="patientInfo" ref="emrRef" @save="
(value) => {
saveStatus = value;
}
" :visitType="visitType" :firstVisitDate="firstVisitDate" />
</el-tab-pane>
=======
<el-tabs
type="card"
style="width: 100%; height: 100%"
@@ -190,7 +143,6 @@
"
/>
</el-tab-pane> -->
>>>>>>> v1.3
<el-tab-pane label="诊断" name="diagnosis">
<Diagnosis :patientInfo="patientInfo" ref="diagnosisRef" @diagnosisSave="
(value) => {
@@ -199,16 +151,12 @@
" />
</el-tab-pane>
<el-tab-pane label="医嘱" name="prescription">
<<<<<<< HEAD
<prescriptionlist :patientInfo="patientInfo" ref="prescriptionRef" :activeTab="activeTab" />
=======
<prescriptionlist
:patientInfo="patientInfo"
ref="prescriptionRef"
:activeTab="activeTab"
:outpatientEmrSaved="outpatientEmrSaved"
/>
>>>>>>> v1.3
</el-tab-pane>
<el-tab-pane label="中医" name="tcm">
<tcmAdvice :patientInfo="patientInfo" ref="tcmRef" />
@@ -226,14 +174,6 @@
<el-drawer v-model="drawer" title="患者队列" direction="ltr" @open="handleOpen">
<PatientList ref="patientDrawerRef" @toCurrent="handleReceive" />
</el-drawer>
<<<<<<< HEAD
<RefundListDialog :open="openRefundListDialog" :encounterId="currentEncounterId"
@close="openRefundListDialog = false" />
<HospitalizationDialog :open="openDialog" :patientInfo="patientInfo" :encounterId="currentEncounterId"
@close="openDialog = false" />
<PrescriptionInfo :open="openPrescriptionDialog" :precriptionInfo="prescriptionInfo"
@close="openPrescriptionDialog = false" />
=======
<RefundListDialog
:open="openRefundListDialog"
:encounterId="currentEncounterId"
@@ -252,7 +192,6 @@
:precriptionInfo="prescriptionInfo"
@close="openPrescriptionDialog = false"
/>
>>>>>>> v1.3
</div>
</template>
<script setup>
@@ -263,13 +202,8 @@ import {
leaveEncounter,
completeEncounter,
getEnPrescriptionInfo,
<<<<<<< HEAD
cancelEncounter,
getEmrHistoryList
=======
isHospitalization,
getEncounterDiagnosis,
>>>>>>> v1.3
} from './components/api.js';
import prescriptionlist from './components/prescription/prescriptionlist.vue';
import RefundListDialog from './components/prescription/refundListDialog.vue';
@@ -482,67 +416,6 @@ function handleClick(tab) {
// 查看本次就诊处方单从医嘱Tab页获取已开立的处方单信息
function getEnPrescription(encounterId) {
<<<<<<< HEAD
// 检查是否有选中的患者
if (!patientInfo.value || !patientInfo.value.encounterId) {
proxy.$modal.msgWarning('请先选择患者');
return;
}
// 检查是否在医嘱Tab页如果不在则切换到医嘱Tab页
if (activeTab.value !== 'prescription') {
activeTab.value = 'prescription';
// 等待Tab切换完成后再获取数据
nextTick(() => {
// 确保数据已加载
if (prescriptionRef.value) {
// 先刷新数据,确保获取最新的处方单信息
if (prescriptionRef.value.getListInfo) {
prescriptionRef.value.getListInfo(false);
}
// 等待数据加载完成后再获取处方单信息
setTimeout(() => {
if (prescriptionRef.value && prescriptionRef.value.getSignedPrescriptionInfo) {
const signedPrescriptions = prescriptionRef.value.getSignedPrescriptionInfo();
if (signedPrescriptions && signedPrescriptions.length > 0) {
prescriptionInfo.value = signedPrescriptions;
openPrescriptionDialog.value = true;
} else {
proxy.$modal.msgWarning('当前患者没有已签发的处方单');
}
} else {
proxy.$modal.msgWarning('无法获取处方单信息,请稍后重试');
}
}, 300);
} else {
proxy.$modal.msgWarning('无法获取处方单信息,请稍后重试');
}
});
} else {
// 如果已经在医嘱Tab页先刷新数据再获取
if (prescriptionRef.value) {
if (prescriptionRef.value.getListInfo) {
prescriptionRef.value.getListInfo(false);
}
// 等待数据加载完成后再获取处方单信息
setTimeout(() => {
if (prescriptionRef.value && prescriptionRef.value.getSignedPrescriptionInfo) {
const signedPrescriptions = prescriptionRef.value.getSignedPrescriptionInfo();
if (signedPrescriptions && signedPrescriptions.length > 0) {
prescriptionInfo.value = signedPrescriptions;
openPrescriptionDialog.value = true;
} else {
proxy.$modal.msgWarning('当前患者没有已签发的处方单');
}
} else {
proxy.$modal.msgWarning('无法获取处方单信息,请稍后重试');
}
}, 300);
} else {
proxy.$modal.msgWarning('无法获取处方单信息,请稍后重试');
}
}
=======
getEnPrescriptionInfo({ encounterId: encounterId }).then((res) => {
console.log('处方单 res', res);
let dataArr = res.data.records || [];
@@ -556,7 +429,6 @@ function getEnPrescription(encounterId) {
prescriptionInfo.value = res.data.records;
openPrescriptionDialog.value = true;
});
>>>>>>> v1.3
}
function handleRefund(encounterId) {
@@ -575,35 +447,6 @@ function handleCardClick(item, index) {
patient.active = patient.encounterId === item.encounterId;
});
patientInfo.value = item;
<<<<<<< HEAD
// 优先使用数据库中保存的初复诊值
if (item.visitType) {
visitType.value = item.visitType;
// 已完诊的记录禁用修改
visitTypeDisabled.value = item.statusEnum !== 2;
// 如果有初诊日期也从数据库获取
// if (item.firstVisitDate) {
// firstVisitDate.value = item.firstVisitDate;
// }
} else {
// 对于没有初复诊记录的患者,才使用原有的判断逻辑
checkPatientHistory(item);
}
activeTab.value = 'emr';
nextTick(() => {
// 确保所有组件引用都已初始化
if (prescriptionRef.value) prescriptionRef.value.getListInfo();
if (tcmRef.value) tcmRef.value.getListInfo();
if (diagnosisRef.value) diagnosisRef.value.getList();
if (eprescriptionRef.value) eprescriptionRef.value.getList();
if (emrRef.value) {
emrRef.value.getDetail(item.encounterId);
} else {
console.error('emr组件未正确初始化');
proxy.$modal.msgError('病历组件加载失败,请刷新页面重试');
}
=======
// 将患者信息保存到store中供hospitalizationEmr组件使用
updatePatientInfo(item);
activeTab.value = 'hospitalizationEmr';
@@ -613,7 +456,6 @@ function handleCardClick(item, index) {
diagnosisRef.value.getList();
eprescriptionRef.value.getList();
// emrRef.value.getDetail(item.encounterId);
>>>>>>> v1.3
setTimeout(() => {
loading.value = false;
}, 200);
@@ -665,32 +507,6 @@ function handleEmrSaved(isSaved) {
function openDrawer() {
drawer.value = true;
}
<<<<<<< HEAD
function handleCancelEncounter() {
proxy.$modal.confirm('您确定要取消病人本次的就诊记录吗?', '提示信息', {
confirmButtonText: '是(Y)',
cancelButtonText: '否(N)',
type: 'warning'
}).then(() => {
//调用取消接诊API,添加skipGlobalError配置跳过全局错误提示
cancelEncounter(patientInfo.value.encounterId, { skipErrorMsg: true }).then((res) => {
if (res.code == 200) {
proxy.$modal.msgSuccess('取消接诊成功');
patientInfo.value = {};
getPatientList();
}
}).catch((error) => {
proxy.$modal.confirm('该病人本次就诊已经有业务产生,不能取消接诊!', '提示信息', {
confirmButtonText: '是(Y)',
type: 'warning'
});
});
}).catch(() => {
// 用户取消操作
});
}
=======
// 判断是否已经入院登记
const onHospitalization = async () => {
const diagnosisRes = await getEncounterDiagnosis(patientInfo.value.encounterId);
@@ -720,7 +536,6 @@ const onHospitalization = async () => {
});
}
};
>>>>>>> v1.3
</script>
<style lang="scss" scoped>