Merge branch 'develop' of https://gitea.gentronhealth.com/py/his into develop

This commit is contained in:
2025-12-31 13:37:29 +08:00
2599 changed files with 17276 additions and 11802 deletions

View File

@@ -209,16 +209,16 @@
</template>
<script setup name="ClinicRoom">
import { ref, reactive, onMounted, getCurrentInstance } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import {getCurrentInstance, onMounted, reactive, ref} from 'vue'
import {ElMessage, ElMessageBox} from 'element-plus'
import {
getClinicRoomList,
getClinicRoomDetail,
addClinicRoom,
updateClinicRoom,
deleteClinicRoom,
getClinicRoomDetail,
getClinicRoomList,
getDepartmentList,
getTenantList
getTenantList,
updateClinicRoom
} from '@/api/appoinmentmanage/clinicRoom'
const { proxy } = getCurrentInstance()

View File

@@ -235,11 +235,11 @@
</template>
<script setup name="DoctorSchedule">
import { ref, onMounted, computed, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { ElMessage, ElMessageBox, ElDialog } from 'element-plus'
import { View } from '@element-plus/icons-vue'
import { addDoctorSchedule, deleteDoctorSchedule } from '../api'
import {computed, onMounted, ref, watch} from 'vue'
import {useRoute, useRouter} from 'vue-router'
import {ElDialog, ElMessage, ElMessageBox} from 'element-plus'
import {View} from '@element-plus/icons-vue'
import {addDoctorSchedule, deleteDoctorSchedule} from '../api'
// 路由和导航
const route = useRoute()

View File

@@ -362,13 +362,13 @@
</template>
<script setup name="AppoinmentManage">
import { ref, onMounted, computed, watch } from 'vue'
import { useRouter } from 'vue-router'
import { ElMessage, ElDialog, ElSelect, ElOption, ElInput, ElForm, ElFormItem, ElMessageBox } from 'element-plus'
import { EditPen, View, DocumentRemove } from '@element-plus/icons-vue'
import { listDept, searchDept } from '@/api/appoinmentmanage/dept'
import { getLocationTree } from '@/views/charge/outpatientregistration/components/outpatientregistration'
import { addDoctorSchedule, deleteDoctorSchedule, batchSaveDoctorSchedule } from './api'
import {computed, onMounted, ref} from 'vue'
import {useRouter} from 'vue-router'
import {ElDialog, ElForm, ElFormItem, ElInput, ElMessage, ElMessageBox, ElOption, ElSelect} from 'element-plus'
import {DocumentRemove, EditPen, View} from '@element-plus/icons-vue'
import {listDept, searchDept} from '@/api/appoinmentmanage/dept'
import {getLocationTree} from '@/views/charge/outpatientregistration/components/outpatientregistration'
import {addDoctorSchedule, deleteDoctorSchedule} from './api'
// 查询参数
const queryParams = ref({

View File

@@ -52,8 +52,23 @@
<td class="sequence-number">{{ index + 1 }}</td>
<td class="employee-info">
<div class="input-container">
<!-- 操作员字段始终不可编辑 -->
<span class="employee-name">{{ item.operator || '-' }}</span>
<!-- 超级管理员可以编辑操作员字段普通用户不可编辑 -->
<select
v-if="item.isActive && isAdmin"
v-model="item.employeeId"
class="form-control"
@change="updateOperatorFromEmployeeId(item)"
>
<option value="">请选择操作员</option>
<option
v-for="user in userList"
:key="user.employeeId"
:value="user.employeeId"
>
{{ user.name }} ({{ user.employeeId }})
</option>
</select>
<span v-else class="employee-name">{{ item.operator || '-' }}</span>
</div>
</td>
<td class="employee-id-cell">
@@ -167,7 +182,7 @@
</template>
<script>
import { listUser } from '@/api/system/user';
import {listUser} from '@/api/system/user';
import request from '@/utils/request'; // 导入请求工具
import useUserStore from '@/store/modules/user'; // 导入用户store
@@ -180,7 +195,7 @@ export default {
name: '',
nickName: '',
employeeId: '',
status: '' // 0: 启用(管理员), 1: 禁用(普通人员)
status: '' // 0: 启用, 1: 禁用(仅用于显示,不再控制权限)
},
// 用户列表用于操作员下拉选择将在created中从后端获取
userList: [],
@@ -195,10 +210,11 @@ export default {
}
},
computed: {
// 计算属性:判断是否为管理员
// 计算属性:判断是否为超级管理员
isAdmin() {
// 管理员是指在用户管理界面中状态为启用的用户
return this.currentUser.status === '0';
// 只有用户名等于 'admin' 的用户才是超级管理员,可以查看所有数据
const userStore = useUserStore();
return userStore.name === 'admin';
}
},
created() {
@@ -260,14 +276,25 @@ export default {
},
// 从后端加载发票数据
loadInvoiceData() {
// 准备查询参数
const queryParams = {
pageNo: 1,
pageSize: 10000 // 进一步增大分页大小,确保能获取数据库中的所有记录
};
// 非超级管理员用户只能查询自己的发票数据
if (!this.isAdmin && this.currentUser.employeeId) {
queryParams.invoicingStaffId = this.currentUser.employeeId;
console.log('普通用户模式只查询自己的发票数据员工ID:', this.currentUser.employeeId);
} else {
console.log('超级管理员模式,查询所有发票数据');
}
// 使用request工具从后端API获取发票段数据
request({
url: '/basicmanage/invoice-segment/page', // 更新为发票段的API路径
method: 'get',
params: {
pageNo: 1,
pageSize: 10000 // 进一步增大分页大小,确保能获取数据库中的所有记录
}
params: queryParams
}).then(res => {
console.log('获取到的发票段数据响应:', res);
// 添加更多调试信息
@@ -400,24 +427,24 @@ export default {
}
});
},
// 根据用户权限过滤数据
// 根据用户权限过滤数据(作为后端过滤的补充保障)
filterDataByPermission() {
console.log('开始过滤数据,当前用户状态:', this.currentUser.status);
console.log('开始过滤数据,当前用户:', this.currentUser.name, '是否超级管理员:', this.isAdmin);
console.log('过滤前数据总量:', this.invoiceData.length);
if (this.isAdmin) {
// 管理员可以看到所有数据
console.log('管理员模式,显示所有数据');
// 超级管理员可以看到所有数据
console.log('超级管理员模式,显示所有数据');
this.filteredData = [...this.invoiceData];
} else {
// 普通操作员只能看到自己的数据,确保类型一致
console.log('操作员模式,过滤条件:', this.currentUser.employeeId);
// 普通用户只能看到自己的数据,确保类型一致
console.log('普通用户模式,过滤条件:', this.currentUser.employeeId);
const currentEmployeeId = String(this.currentUser.employeeId);
this.filteredData = this.invoiceData.filter(item =>
this.filteredData = this.invoiceData.filter(item =>
String(item.employeeId) === currentEmployeeId
);
}
console.log('过滤后显示的数据量:', this.filteredData.length);
},
@@ -440,6 +467,15 @@ export default {
updateEmployeeId(item, employeeId) {
item.employeeId = employeeId;
},
// 根据员工ID更新操作员名称超级管理员使用
updateOperatorFromEmployeeId(item) {
if (item.employeeId) {
item.operator = this.getUserNameById(item.employeeId);
} else {
item.operator = '';
}
},
// 根据员工ID获取用户名称
getUserNameById(employeeId) {
@@ -449,7 +485,7 @@ export default {
},
addNewRow() {
// 新增行时自动填充当前用户信息
// 新增行时根据用户权限填充信息
// 使用负数作为临时ID避免与后端数据库ID冲突
let maxId = 0;
if (this.invoiceData.length > 0) {
@@ -458,12 +494,12 @@ export default {
const newId = -(maxId + 1);
const newSegmentId = Date.now(); // 生成唯一的segmentId
const currentDate = new Date().toISOString().split('T')[0];
const newRecord = {
id: newId,
segmentId: newSegmentId, // 为新记录设置segmentId
operator: this.currentUser.name, // 自动使用当前用户名称
employeeId: this.currentUser.employeeId,
operator: this.isAdmin ? '' : this.currentUser.name, // 超级管理员可选择,普通用户自动填充
employeeId: this.isAdmin ? '' : this.currentUser.employeeId, // 超级管理员可选择,普通用户自动填充
date: currentDate, // 自动填充当日日期
startNum: '',
endNum: '',
@@ -472,8 +508,8 @@ export default {
isActive: true, // 新增行默认处于编辑状态
isNewRecord: true // 添加标记表示这是新记录
};
console.log('添加新行,自动填充领用日期为当日:', { newRecord });
console.log('添加新行:', this.isAdmin ? '超级管理员模式,可选择操作员' : '普通用户模式,自动填充当前用户信息', { newRecord });
this.invoiceData.push(newRecord);
},
@@ -496,8 +532,8 @@ export default {
return;
}
// 严格检查权限:只能删除自己维护的发票号码段
if (record.operator !== this.currentUser.name) {
// 严格检查权限:超级管理员可以删除所有记录,普通用户只能删除自己维护的发票号码段
if (!this.isAdmin && record.operator !== this.currentUser.name) {
alert('您没有权限删除此记录!只能删除自己维护的发票号码段。');
return;
}

View File

@@ -98,12 +98,12 @@
<script setup name="BodyStructure">
import {
getList,
deleteBodyStructure,
addBodyStructure,
updateBodyStructure,
deleteBodyStructure,
disableBodyStructure,
enableBodyStructure,
getList,
updateBodyStructure,
} from './components/api';
const { proxy } = getCurrentInstance();

View File

@@ -85,12 +85,13 @@
</template>
</el-dialog>
</template>
<script setup >
import { ref, onMounted } from 'vue'
<script setup>
import {onMounted, ref} from 'vue'
import useUserStore from '@/store/modules/user';
import { add, update,getLocationTree } from '../api';
import { ElMessage } from 'element-plus';
import { components } from '@/template';
import {add, getLocationTree, update} from '../api';
import {ElMessage} from 'element-plus';
import {components} from '@/template';
const emits = defineEmits(['submitOk'])
const props = defineProps({
title: {

View File

@@ -78,9 +78,9 @@
</template>
<script setup>
// 从Vue导入所需的API
import { ref, reactive, onMounted, defineAsyncComponent, nextTick, watch } from 'vue';
import { ElMessageBox, ElMessage, ElLoading, ElTree } from 'element-plus';
import { getTreeList, init, getDefinitionById, deleteDefinition,getLocationTree } from './api';
import {nextTick, onMounted, reactive, ref} from 'vue';
import {ElLoading, ElMessage, ElMessageBox, ElTree} from 'element-plus';
import {deleteDefinition, getDefinitionById, getLocationTree, getTreeList, init} from './api';
import EditTemplate from './components/editTemplate.vue';
// 添加当前模板路径和组件的响应式变量
const currentComponent = ref('');

View File

@@ -1,4 +1,5 @@
import request from '@/utils/request'
const baseUrl='/document/statistics/definition'
// 初始化
export function init() {

View File

@@ -40,10 +40,9 @@
</el-dialog>
</template>
<script setup>
import { ref, onMounted } from 'vue';
import useUserStore from '@/store/modules/user';
import { ElMessage } from 'element-plus';
import { components } from '@/template';
import {onMounted, ref} from 'vue';
import {ElMessage} from 'element-plus';
const emits = defineEmits(['submitOk']);
const props = defineProps({
formData: {

View File

@@ -144,8 +144,9 @@
</template>
<script setup name="Post">
import { init, add, update, getPageList, deleteStatistics } from './api';
import { optionselect as getDictOptionselect, getType } from '@/api/system/dict/type';
import {add, deleteStatistics, getPageList, init, update} from './api';
import {optionselect as getDictOptionselect} from '@/api/system/dict/type';
const { proxy } = getCurrentInstance();
const { sys_normal_disable } = proxy.useDict('sys_normal_disable');

View File

@@ -36,10 +36,10 @@
</template>
<script setup>
// 从Vue导入所需的API
import { ref, reactive, onMounted, defineAsyncComponent, nextTick, watch } from 'vue';
import { ElMessageBox, ElMessage, } from 'element-plus';
import { getPageList, init, } from './api';
import {onMounted, reactive, ref} from 'vue';
import {init,} from './api';
import EditStatistics from './components/editStatistics.vue';
const queryParams = ref({
pageNo: 1,
pageSize: 10,

View File

@@ -14,9 +14,9 @@
</template>
<script setup>
import { getActivityList } from './api';
import { watch } from 'vue';
import { throttle } from 'lodash-es';
import {getActivityList} from './api';
import {watch} from 'vue';
import {throttle} from 'lodash-es';
const props = defineProps({
searchKey: {

View File

@@ -173,8 +173,8 @@
</template>
<script setup>
import { reactive, watch } from 'vue';
import { bind, deleteBind, init } from './api';
import {reactive, watch} from 'vue';
import {bind, deleteBind, init} from './api';
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
import DeviceList from './deviceList.vue';
import ActivityList from './activityList.vue';

View File

@@ -16,9 +16,9 @@
</template>
<script setup>
import { getFullDeviceList } from './api';
import { watch } from 'vue';
import { throttle } from 'lodash-es';
import {getFullDeviceList} from './api';
import {watch} from 'vue';
import {throttle} from 'lodash-es';
const props = defineProps({
searchKey: {

View File

@@ -74,8 +74,8 @@
</template>
<script setup>
import { ref } from 'vue';
import { getActivityList, getBindList, getRegistrationfeeList } from './components/api.js';
import {ref} from 'vue';
import {getActivityList, getBindList, getRegistrationfeeList} from './components/api.js';
import ConsumablesList from './components/consumablesList.vue';
const activityList = ref([]);

View File

@@ -161,7 +161,7 @@
</style>
<script setup>
import { ref, watch, defineProps, defineEmits } from "vue";
import {defineEmits, defineProps, ref, watch} from "vue";
const props = defineProps({

View File

@@ -171,15 +171,11 @@
</template>
<script setup name="frequency">
import {
addFrequencyDetail, deleteFrequencyDetail,
getFrequencyDetailList
} from './components/frequency.js';
import { ElMessage } from "element-plus";
import {
listData
} from "@/api/system/dict/data.js";
import {addFrequencyDetail, deleteFrequencyDetail, getFrequencyDetailList} from './components/frequency.js';
import {ElMessage} from "element-plus";
import {listData} from "@/api/system/dict/data.js";
import FreForm from "@/views/basicmanage/frequency/components/FreForm.vue";
const frequency = ref([]);
const frequencyDetail = ref([]);
const frequencyTotal = ref(0);

View File

@@ -55,12 +55,9 @@
</div>
</template>
<script setup name="LaboratoryTests">
import { getCurrentInstance, onBeforeMount, onMounted, reactive, ref } from 'vue';
import {
getApplicationList,
editImplementDepartment,
addImplementDepartment,
} from './implementDepartment.js';
import {getCurrentInstance, onMounted, reactive, ref} from 'vue';
import {addImplementDepartment, editImplementDepartment, getApplicationList,} from './implementDepartment.js';
const { proxy } = getCurrentInstance();
// 属性
const props = defineProps({

View File

@@ -178,17 +178,18 @@
</template>
<script setup name="implementDepartment">
import { ref } from 'vue';
import {ref} from 'vue';
import {
getImplementDepartmentList,
addImplementDepartment,
deleteImplementDepartment,
editImplementDepartment,
getAllTreatmentList,
getDiagnosisTreatmentList,
getDiseaseTreatmentInit,
getAllTreatmentList,
addImplementDepartment,
editImplementDepartment,
deleteImplementDepartment,
getImplementDepartmentList,
} from './components/implementDepartment';
import BacthAddItemDialog from './components/batchAddDialog.vue';
const { proxy } = getCurrentInstance();
const organization = ref([]);
const loading = ref(true);

View File

@@ -25,9 +25,9 @@
</template>
<script setup>
import { nextTick } from 'vue';
import { getAdviceBaseInfo } from './api';
import { throttle } from 'lodash-es';
import {nextTick} from 'vue';
import {getAdviceBaseInfo} from './api';
import {throttle} from 'lodash-es';
const props = defineProps({
adviceQueryParams: {

View File

@@ -368,21 +368,21 @@
</template>
<script setup>
import { ref, reactive, onMounted } from 'vue';
import {onMounted, reactive, ref} from 'vue';
import {
getPersonalList,
getDeptList,
getAllList,
queryParticipantList,
savePersonal,
saveDepartment,
saveAll,
queryGroupDetail,
getOrgTree,
deleteGroup,
getAllList,
getDeptList,
getOrgTree,
getPersonalList,
queryGroupDetail,
queryParticipantList,
saveAll,
saveDepartment,
savePersonal,
} from './components/api.js';
import adviceBaseList from './components/adviceBaseList';
import { ElMessage } from 'element-plus';
import {ElMessage} from 'element-plus';
import useUserStore from '@/store/modules/user';
// 获取当前实例用于使用proxy

View File

@@ -25,9 +25,9 @@
</template>
<script setup>
import { nextTick } from 'vue';
import { getAdviceBaseInfo } from './api';
import { throttle } from 'lodash-es';
import {nextTick} from 'vue';
import {getAdviceBaseInfo} from './api';
import {throttle} from 'lodash-es';
const props = defineProps({
adviceQueryParams: {

View File

@@ -569,10 +569,10 @@
</template>
<script setup>
import { getOrgTree, saveOrderGroup } from './api';
import {getOrgTree, saveOrderGroup} from './api';
import adviceBaseList from './adviceBaseList';
import { getCurrentInstance, nextTick, watch } from 'vue';
import { calculateQuantityByDays, formatNumber } from '@/utils/his';
import {getCurrentInstance, nextTick, watch} from 'vue';
import {calculateQuantityByDays, formatNumber} from '@/utils/his';
const emit = defineEmits(['selectDiagnosis']);
const total = ref(0);

View File

@@ -119,7 +119,7 @@
<script setup>
import Prescriptionlist from './components/prescriptionlist.vue';
import { getOrderGroup, deleteOrderGroup } from './components/api.js';
import {deleteOrderGroup, getOrderGroup} from './components/api.js';
const { proxy } = getCurrentInstance();
const { use_range } = proxy.useDict('use_range');

View File

@@ -4,7 +4,7 @@ export function getList(queryParams) {
return request({
url: '/base-data-manage/organization/organization',
method: 'get',
param: queryParams
params: queryParams
})
}

View File

@@ -1,5 +1,42 @@
<template>
<div class="app-container">
<!-- 查询表单 -->
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" class="query-form">
<el-form-item label="科室名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入科室名称"
clearable
@keyup.enter="handleQuery"
style="width: 200px"
/>
</el-form-item>
<el-form-item label="科室类型" prop="typeEnum">
<el-select v-model="queryParams.typeEnum" placeholder="请选择科室类型" clearable style="width: 200px">
<el-option
v-for="item in orgTypeOption"
:key="item.value"
:label="item.info"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="科室分类" prop="classEnum">
<el-select v-model="queryParams.classEnum" placeholder="请选择科室分类" clearable style="width: 200px">
<el-option
v-for="item in classEnumOption"
:key="item.value"
:label="item.info"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item class="search-buttons">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd"> 新增 </el-button>
@@ -67,13 +104,17 @@
</template>
</el-table-column>
</el-table>
<!-- <pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/> -->
<!-- 分页 -->
<div class="pagination-container">
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getPageList"
/>
</div>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" v-model="open" width="600px" @close="cancel" append-to-body>
@@ -178,12 +219,28 @@
</template>
<script setup name="Organization">
import { getList, deleteOrganization, addOrganization, updateOrganization, disableOrg, initOrgTypeOption, enableOrg, getOrgDetail } from './components/api';
import {
addOrganization,
deleteOrganization,
disableOrg,
enableOrg,
getList,
getOrgDetail,
initOrgTypeOption,
updateOrganization
} from './components/api';
const { proxy } = getCurrentInstance();
const loading = ref(true);
const showSearch = ref(true);
const organization = ref([]);
const queryParams = ref({});
const queryParams = ref({
pageNo: 1,
pageSize: 10,
name: undefined,
typeEnum: undefined,
classEnum: undefined
});
const open = ref(false);
const form = ref({
id: undefined,
@@ -296,6 +353,21 @@ function getDictLabel(value) {
return dict ? dict.label : '';
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNo = 1;
getPageList();
}
/** 重置按钮操作 */
function resetQuery() {
queryParams.value.name = undefined;
queryParams.value.typeEnum = undefined;
queryParams.value.classEnum = undefined;
queryParams.value.pageNo = 1;
getPageList();
}
function getPageList() {
loading.value = true;
getList(queryParams.value).then((res) => {

View File

@@ -2,7 +2,7 @@
* 操作日志工具
* 所有操作必须有操作日志
*/
import { addOperationLog } from './outpatientNumber'
import {addOperationLog} from './outpatientNumber'
/**
* 记录操作日志

View File

@@ -133,11 +133,11 @@
</template>
<script setup name="outpatientNoManagement">
import { ref, reactive, toRefs, onActivated, getCurrentInstance } from 'vue'
import {getCurrentInstance, onActivated, reactive, ref, toRefs} from 'vue'
import useUserStore from '@/store/modules/user'
import { getConfigKey } from '@/api/system/config'
import { logQuery, logCreate, logUpdate, logDelete } from './components/operationLog'
import { listOutpatientNo, addOutpatientNo, updateOutpatientNo, deleteOutpatientNo } from './components/outpatientNumber'
import {getConfigKey} from '@/api/system/config'
import {logCreate, logDelete, logQuery, logUpdate} from './components/operationLog'
import {addOutpatientNo, deleteOutpatientNo, listOutpatientNo, updateOutpatientNo} from './components/outpatientNumber'
const { proxy } = getCurrentInstance()
const userStore = useUserStore()

View File

@@ -208,21 +208,20 @@
<script setup name="pharmacyDepartment">
import {
getPharmacyDepartmentList,
getDiseaseTreatmentInit,
getPharmacyDepartmentOne,
getDiseaseTreatmentInitLoc,
addPharmacyDepartment,
editPharmacyDepartment,
deletePharmacyDepartment,
editPharmacyDepartment,
getDiseaseTreatmentInit,
getDiseaseTreatmentInitLoc,
getPharmacyDepartmentList,
} from './components/pharmacyDepartment';
const { proxy } = getCurrentInstance();
const { distribution_category_code, med_category_code, device_category_code } = proxy.useDict(
'distribution_category_code',
'med_category_code',
'device_category_code'
);
import { nextTick } from 'vue';
const diagnosisTreatmentList = ref([]);
const loading = ref(false);

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询厂商列表
export function getSupplierList(query) {

View File

@@ -218,14 +218,14 @@
<script setup name="Supplier">
import {
getSupplierList,
editSupplier,
addSupplier,
getSupplierOne,
stopSupplier,
startSupplier,
getSupplierInit,
deptTreeSelect,
editSupplier,
getSupplierInit,
getSupplierList,
getSupplierOne,
startSupplier,
stopSupplier,
} from './components/supplier';
const router = useRouter();

View File

@@ -306,17 +306,18 @@
</template>
<script setup name="Ward">
import { onMounted, ref } from 'vue';
import {onMounted, ref} from 'vue';
import {
getList,
addLocation,
getOrgList,
deleteLocation,
editLocation,
unableLocation,
enableLocation,
getList,
getOrgList,
unableLocation,
} from './components/api';
import { ElMessage } from 'element-plus';
import {ElMessage} from 'element-plus';
const { proxy } = getCurrentInstance();
// 病区参数
const queryParams = ref({

View File

@@ -138,15 +138,13 @@
<script setup name="Organization">
import {
getList,
addWarehouse,
updateWarehouse,
deleteWarehouse,
enableLocation,
unableLocation,
// disableOrg,
getList,
init,
// enableOrg,
unableLocation,
updateWarehouse,
} from './components/api';
const { proxy } = getCurrentInstance();

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询服务管理列表
export function getRegistrationfeeList(query) {

View File

@@ -380,16 +380,16 @@
<script setup name="Registrationfee">
import {
getRegistrationfeeList,
editRegistrationfee,
addRegistrationfee,
getRegistrationfeeOne,
getInit,
deptTreeSelect,
locationTreeSelect,
delRegistrationfee,
deptTreeSelect,
editRegistrationfee,
getInit,
getInitOption,
getPractitionerMetadata,
getRegistrationfeeList,
getRegistrationfeeOne,
locationTreeSelect,
} from './components/registrationfee';
const router = useRouter();

View File

@@ -348,8 +348,8 @@
</template>
<script setup name="MedicineDialog">
import { editDevice, addDevice, deptTreeSelect, locationTreeSelect } from './device';
import { getDicts } from '@/api/system/dict/data';
import {addDevice, deptTreeSelect, editDevice, locationTreeSelect} from './device';
import {getDicts} from '@/api/system/dict/data';
const { proxy } = getCurrentInstance();
const { device_type_code, unit_code, fin_type_code, chrgitm_lv, med_chrgitm_type } = proxy.useDict(

View File

@@ -55,7 +55,7 @@
</template>
<script setup>
import { getYbDeviceList } from './device';
import {getYbDeviceList} from './device';
const emit = defineEmits(['selectDevice']);
const visible = ref(false);

View File

@@ -442,18 +442,18 @@
</template>
<script setup name="Device">
import { getToken } from '@/utils/auth';
import {getToken} from '@/utils/auth';
import {
getDeviceList,
stopDevice,
startDevice,
getDiseaseTreatmentInit,
getDeviceOne,
getDiseaseTreatmentInit,
startDevice,
stopDevice,
validateEditDevice,
} from './components/device';
import deviceDialog from './components/deviceDialog';
import DeviceYbDialog from './components/deviceYbDialog';
import { nextTick } from 'vue';
import {nextTick} from 'vue';
const { proxy } = getCurrentInstance();

View File

@@ -54,7 +54,7 @@
</template>
<script setup>
import { getYbDiagnosisTreatmentList } from './diagnosistreatment';
import {getYbDiagnosisTreatmentList} from './diagnosistreatment';
const emit = defineEmits(['selectDiagnosisTreatment']);
const visible = ref(false);

View File

@@ -350,17 +350,18 @@
<script setup name="DiagnosisTreatmentDialog">
import {
getDiagnosisTreatmentList,
editDiagnosisTreatment,
addDiagnosisTreatment,
deptTreeSelect,
bodyTreeSelect,
deptTreeSelect,
editDiagnosisTreatment,
getDiagnosisTreatmentList,
locationTreeSelect,
} from './diagnosistreatment';
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
import medicineList from './medicineList.vue';
import MedicineList from '../components/medicineList.vue';
import { getCurrentInstance, nextTick, watch } from 'vue';
import {getCurrentInstance, nextTick, watch} from 'vue';
const { proxy } = getCurrentInstance();
const { unit_code, med_chrgitm_type, fin_type_code, activity_category_code, chrgitm_lv } =
proxy.useDict(

View File

@@ -9,8 +9,8 @@
</template>
<script setup>
import { getDiagnosisTreatmentList } from './diagnosistreatment';
import { ref, watch } from 'vue';
import {getDiagnosisTreatmentList} from './diagnosistreatment';
import {ref, watch} from 'vue';
const props = defineProps({
itemType: {

View File

@@ -276,18 +276,18 @@
</template>
<script setup name="DiagnosisTreatment">
import { getToken } from '@/utils/auth';
import {getToken} from '@/utils/auth';
import {
getDiagnosisTreatmentList,
stopDiseaseTreatment,
startDiseaseTreatment,
getDiseaseTreatmentInit,
getDiagnosisTreatmentOne,
getDiseaseTreatmentInit,
startDiseaseTreatment,
stopDiseaseTreatment,
validateActivityEdit,
} from './components/diagnosistreatment';
import diagnosisTreatmentDialog from './components/diagnosisTreatmentDialog';
import DiagTreYbDialog from './components/diagTreYbDialog';
import { nextTick } from 'vue';
import {nextTick} from 'vue';
const { proxy } = getCurrentInstance();

View File

@@ -298,14 +298,15 @@
<script setup name="Disease">
import {
getDiseaseList,
editDisease,
addDisease,
editDisease,
getDiseaseCategory,
getDiseaseList,
getDiseaseOne,
stopDisease,
startDisease,
stopDisease,
} from './components/disease';
const { proxy } = getCurrentInstance();
const { condition_type_code } = proxy.useDict('condition_type_code');

View File

@@ -655,11 +655,9 @@
</template>
<script setup name="MedicineDialog">
import { deptTreeSelect, locationTreeSelect } from './medicine';
import moment from 'moment';
import {deptTreeSelect, locationTreeSelect, medicineDictMap} from './medicine';
const router = useRouter();
import { medicineDictMap } from './medicine'
const { proxy } = getCurrentInstance();
const {
med_category_code,

View File

@@ -79,8 +79,8 @@
</template>
<script setup>
import { getYbMedicationList, queryYbCatalogue } from './medicine';
import { formatDateStr } from '@/utils/index';
import {getYbMedicationList, queryYbCatalogue} from './medicine';
import {formatDateStr} from '@/utils/index';
const emit = defineEmits(['selectMedicine']);
const visible = ref(false);

View File

@@ -340,21 +340,21 @@
</template>
<script setup name="Medication">
import { getToken } from '@/utils/auth';
import {getToken} from '@/utils/auth';
import {
getMedicationList,
editMedication,
addMedication,
editMedication,
getMedicationCategory,
validateEditMedictaion,
getMedicationList,
getMedicationOne,
getYbCatalogResult,
startMedication,
stopMedication,
getYbCatalogResult,
validateEditMedictaion,
} from './components/medicine';
import medicineDialog from './components/medicineDialog';
import MedicineYbDialog from './components/medicineYbDialog';
import { nextTick } from 'vue';
import {nextTick} from 'vue';
const { proxy } = getCurrentInstance();

View File

@@ -151,10 +151,11 @@
</template>
<script setup name="NationalCode">
import { ref, reactive, onMounted } from 'vue';
import { useRouter, useRoute } from 'vue-router';
import { ElMessage, ElMessageBox } from 'element-plus';
import {onMounted, reactive, ref} from 'vue';
import {useRoute, useRouter} from 'vue-router';
import {ElMessage, ElMessageBox} from 'element-plus';
import request from '@/utils/request';
const router = useRouter();
const route = useRoute();

View File

@@ -149,8 +149,9 @@
<script setup name="ClinicRecord">
const { proxy } = getCurrentInstance();
import { getList ,invoiceMzInvoice,invoiceReissue,invoiceWriteoff,invoiceOpen,paymentDetail} from './components/api.js';
import { formatDate } from '@/utils/index';
import {getList, invoiceOpen, invoiceReissue, invoiceWriteoff, paymentDetail} from './components/api.js';
import {formatDate} from '@/utils/index';
const occurrenceTime = ref([formatDate(new Date()),formatDate(new Date())]);
const total = ref(0);
const queryParams = ref({

View File

@@ -153,24 +153,17 @@
</template>
<script setup>
import {
savePayment,
unprecharge,
dispenseMedicalConsumables,
wxPay,
WxPayResult,
getChargeInfo,
} from './api';
import { computed, watch, reactive, ref, getCurrentInstance, nextTick } from 'vue';
import { Delete } from '@element-plus/icons-vue';
import { debounce } from 'lodash-es';
import {dispenseMedicalConsumables, getChargeInfo, savePayment, wxPay, WxPayResult,} from './api';
import {computed, getCurrentInstance, reactive, ref, watch} from 'vue';
import {Delete} from '@element-plus/icons-vue';
import {debounce} from 'lodash-es';
import useUserStore from '@/store/modules/user';
import { hiprint } from 'vue-plugin-hiprint';
import {hiprint} from 'vue-plugin-hiprint';
import templateJson from './template.json';
import { pa } from 'element-plus/es/locales.mjs';
import printUtils, { PRINT_TEMPLATE } from '@/utils/printUtils';
import printUtils, {PRINT_TEMPLATE} from '@/utils/printUtils';
import image1 from '../../../../assets/images/weixinzhifu.png';
import image2 from '../../../../assets/images/zhifubaozhifu.png';
const imgs = ref([image1, image2]);
const props = defineProps({
open: {

View File

@@ -187,19 +187,19 @@
<script setup name="ClinicCharge">
import {
getList,
getChargeList,
changeToSelfPay,
changeToMedicalInsurance,
init,
precharge,
getChargeInfo,
changeStudentPayTosStudentSelf,
changeStudentSelfToStudentPay,
changeToMedicalInsurance,
changeToSelfPay,
getChargeInfo,
getChargeList,
getList,
init,
precharge,
} from './components/api';
import { invokeYbPlugin5000, invokeYbPlugin5001 } from '@/api/public';
import {invokeYbPlugin5000, invokeYbPlugin5001} from '@/api/public';
import ChargeDialog from './components/chargeDialog.vue';
import { formatDateStr } from '@/utils';
import {formatDateStr} from '@/utils';
import useUserStore from '@/store/modules/user';
import Decimal from 'decimal.js';

View File

@@ -124,9 +124,9 @@
</template>
<script setup>
import { refund, renturnDispenseMedical, getReturnMedicineList } from './api';
import { computed, watch, reactive, ref, getCurrentInstance } from 'vue';
import { Delete } from '@element-plus/icons-vue';
import {getReturnMedicineList, refund, renturnDispenseMedical} from './api';
import {computed, getCurrentInstance, reactive, ref, watch} from 'vue';
import {Delete} from '@element-plus/icons-vue';
import useUserStore from '@/store/modules/user';
const props = defineProps({

View File

@@ -175,18 +175,9 @@
</template>
<script setup name="ClinicCharge">
import {
getList,
getRefundList,
refund,
getReturnDetail,
init,
getChargeItemIds,
validReturnDrug,
} from './components/api';
import { formatDate, formatDateStr } from '@/utils/index';
import {getChargeItemIds, getList, getRefundList, getReturnDetail, init, validReturnDrug,} from './components/api';
import {formatDateStr} from '@/utils/index';
import RefundDialog from './components/refundDialog.vue';
import Decimal from 'decimal.js';
const { proxy } = getCurrentInstance();
// 获取费用性质字典

View File

@@ -110,11 +110,11 @@
</template>
<script setup>
import { savePayment, wxPay, WxPayResult } from './outpatientregistration';
import { computed, watch, reactive, ref, getCurrentInstance, nextTick } from 'vue';
import { Delete } from '@element-plus/icons-vue';
import { debounce } from 'lodash-es';
import printUtils, { PRINT_TEMPLATE } from '@/utils/printUtils';
import {savePayment, wxPay, WxPayResult} from './outpatientregistration';
import {computed, getCurrentInstance, nextTick, reactive, ref, watch} from 'vue';
import {Delete} from '@element-plus/icons-vue';
import {debounce} from 'lodash-es';
import printUtils, {PRINT_TEMPLATE} from '@/utils/printUtils';
// 获取费用性质文本
const getFeeTypeText = computed(() => {

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request';
import { parseStrEmpty } from '@/utils/openhis';
// 查询初期所需数据
export function getInit() {

View File

@@ -340,16 +340,10 @@
</template>
<script setup name="PatientAddDialog">
import { watch } from 'vue';
import pcas from 'china-division/dist/pcas-code.json';
import { addPatient, patientlLists, getOutpatientRegistrationList } from './outpatientregistration';
import {
isValidCNPhoneNumber,
isValidCNidCardNumber,
getGenderAndAge,
} from '../../../../utils/validate';
import { fromPairs } from 'lodash';
import { ElMessage } from 'element-plus';
import {addPatient, getOutpatientRegistrationList, patientlLists} from './outpatientregistration';
import {getGenderAndAge, isValidCNidCardNumber, isValidCNPhoneNumber,} from '../../../../utils/validate';
import {ElMessage} from 'element-plus';
const router = useRouter();
const { proxy } = getCurrentInstance();

View File

@@ -74,9 +74,8 @@
</template>
<script setup name="PatientInfoDialog">
import {
getOutpatientRegistrationList,
} from "./outpatientregistration";
import {getOutpatientRegistrationList,} from "./outpatientregistration";
const { proxy } = getCurrentInstance();

View File

@@ -21,7 +21,8 @@
</template>
<script setup>
import { getOutpatientRegistrationList } from "./outpatientregistration";
import {getOutpatientRegistrationList} from "./outpatientregistration";
const props = defineProps({
searchkey: {
type: String,

View File

@@ -111,11 +111,8 @@
</template>
<script setup>
import { cancelRegister, preCancelReg } from './outpatientregistration';
import { computed, watch, reactive, ref, getCurrentInstance } from 'vue';
import { Delete } from '@element-plus/icons-vue';
import useUserStore from '@/store/modules/user';
import { formatDateStr } from '@/utils/index';
import {cancelRegister, preCancelReg} from './outpatientregistration';
import {computed, getCurrentInstance, reactive, ref, watch} from 'vue';
// 获取费用性质文本
const getFeeTypeText = computed(() => {

View File

@@ -132,10 +132,10 @@
</template>
<script setup>
import { ref, reactive, getCurrentInstance, watch } from 'vue';
import { getOutpatientRegistrationCurrent, getOutpatientRegistrationList, reprintRegistration } from './outpatientregistration';
import { parseTime } from '@/utils/his';
import { formatDateStr } from '@/utils/index';
import {getCurrentInstance, reactive, ref, watch} from 'vue';
import {getOutpatientRegistrationCurrent, reprintRegistration} from './outpatientregistration';
import {parseTime} from '@/utils/his';
import {formatDateStr} from '@/utils/index';
const { proxy } = getCurrentInstance();

View File

@@ -630,34 +630,30 @@
<script setup name="OutpatientRegistration">
import {
getOutpatientRegistrationList,
getInit,
getContractList,
getConditionDefinitionMetadata,
getLocationTree,
getPractitionerMetadata,
getHealthcareMetadata,
addOutpatientRegistration,
getOutpatientRegistrationCurrent,
returnRegister,
precharge,
cancelRegister,
gerPreInfo,
getContractList,
getHealthcareMetadata,
getInit,
getLocationTree,
getOutpatientRegistrationCurrent,
getOutpatientRegistrationList,
getPractitionerMetadata,
returnRegister,
updatePatientPhone,
} from './components/outpatientregistration';
import { invokeYbPlugin5000, invokeYbPlugin5001 } from '@/api/public';
import {invokeYbPlugin5000, invokeYbPlugin5001} from '@/api/public';
import patientInfoDialog from './components/patientInfoDialog';
import PatientAddDialog from './components/patientAddDialog';
import patientList from './components/patientList';
import { nextTick, ref, onMounted, onUnmounted } from 'vue';
import {nextTick, onMounted, onUnmounted, ref} from 'vue';
import ChargeDialog from './components/chargeDialog.vue';
import RefundDialog from './components/refundDialog.vue';
import ReprintDialog from './components/reprintDialog.vue';
import { handleColor } from '@/utils/his';
import {handleColor} from '@/utils/his';
import useUserStore from '@/store/modules/user';
import { formatDate, formatDateStr } from '@/utils/index';
import { isValidCNPhoneNumber } from '../../../utils/validate';
import { ElMessage } from 'element-plus';
import {formatDateStr} from '@/utils/index';
import {isValidCNPhoneNumber} from '../../../utils/validate';
import {ElMessage} from 'element-plus';
const patientInfo = ref({});
const eventType = ref(0);

View File

@@ -250,10 +250,10 @@
</template>
<script setup>
import { ref, reactive, onMounted, onUnmounted, getCurrentInstance } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { useRouter } from 'vue-router'
import { doCardRenewal, getPatientList } from './components/api.js';
import {getCurrentInstance, onMounted, onUnmounted, reactive, ref} from 'vue'
import {ElMessage, ElMessageBox} from 'element-plus'
import {useRouter} from 'vue-router'
import {doCardRenewal, getPatientList} from './components/api.js';
// 获取路由实例
const router = useRouter();

View File

@@ -117,9 +117,9 @@
</template>
<script setup>
import { ref, reactive, onMounted, onUnmounted, computed, watch } from 'vue'
import { ElMessage } from 'element-plus'
import { getOutpatientRegistrationList } from '../outpatientregistration/components/outpatientregistration'
import {computed, onMounted, onUnmounted, reactive, ref, watch} from 'vue'
import {ElMessage} from 'element-plus'
import {getOutpatientRegistrationList} from '../outpatientregistration/components/outpatientregistration'
// 搜索表单
const searchForm = reactive({

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request';
import { dateEquals } from 'element-plus';
// 获取网银支付参数列表
export function getList (data) {

View File

@@ -48,7 +48,8 @@
<script setup name="ClinicRecord">
const { proxy } = getCurrentInstance();
import { getList, getPayinfo, returnfee, returnFeednext, returnResult } from './components/api.js';
import {getList, getPayinfo, returnfee, returnFeednext, returnResult} from './components/api.js';
const total = ref(0);
const queryParams = ref({
pageNo: 1,

View File

@@ -25,9 +25,9 @@
</template>
<script setup>
import { nextTick } from 'vue';
import { getAdviceBaseInfo } from './api';
import { throttle } from 'lodash-es';
import {nextTick} from 'vue';
import {getAdviceBaseInfo} from './api';
import {throttle} from 'lodash-es';
const props = defineProps({
adviceQueryParams: {
@@ -70,6 +70,11 @@ watch(
getList();
function getList() {
// 验证是否已选择患者
if (!props.patientInfo || Object.keys(props.patientInfo).length === 0) {
return; // 不执行API调用
}
queryParams.value.organizationId = props.patientInfo.orgId;
getAdviceBaseInfo(queryParams.value).then((res) => {
adviceBaseList.value = res.data.records;

View File

@@ -285,15 +285,9 @@
</template>
<script setup>
import {
savePrescription,
getPrescriptionList,
getOrgTree,
savePrescriptionSign,
singOut,
} from './api';
import {getOrgTree, getPrescriptionList, savePrescription, savePrescriptionSign, singOut,} from './api';
import adviceBaseList from './adviceBaseList';
import { getCurrentInstance, nextTick, ref, watch } from 'vue';
import {getCurrentInstance, nextTick, ref, watch} from 'vue';
const emit = defineEmits(['selectDiagnosis']);
const prescriptionList = ref([]);
@@ -412,6 +406,12 @@ function getRowDisabled(row) {
// 新增医嘱
function handleAddPrescription() {
// 验证是否已选择患者
if (!props.patientInfo || Object.keys(props.patientInfo).length === 0) {
proxy.$modal.msgWarning('请先选择患者');
return;
}
if (isAdding.value) {
proxy.$modal.msgWarning('请先保存当前医嘱');
return;

View File

@@ -81,12 +81,11 @@
</div>
</template>
<script setup>
import { getList } from './component/api.js';
import { formatDate } from '@/utils/index';
import {getList} from './component/api.js';
import {formatDate} from '@/utils/index';
import useUserStore from '@/store/modules/user';
import { nextTick } from 'vue';
import {nextTick} from 'vue';
import Prescriptionlist from './component/prescriptionlist.vue';
import { onBeforeRouteLeave } from 'vue-router';
// // 监听路由离开事件
// onBeforeRouteLeave((to, from, next) => {

View File

@@ -1,4 +1,6 @@
import request from '@/utils/request'
import axios from 'axios';
export function getRreportReturnIssue(query) {
return request({
url:'/report-manage/return-issue/report-return-issue',
@@ -50,8 +52,6 @@ export function getAllUser(params) {
}
import axios from 'axios';
export function testWithAxios() {
return axios.create(
{

View File

@@ -232,10 +232,9 @@
</template>
<script setup name="dayEnd">
import { getRreportReturnIssue, getTotal, getContractList } from './component/api';
import dayjs from 'dayjs';
import {getContractList, getRreportReturnIssue, getTotal} from './component/api';
import useUserStore from '@/store/modules/user';
import { formatDate, formatDateStr } from '@/utils/index';
import {formatDateStr} from '@/utils/index';
import Decimal from 'decimal.js';
const userStore = useUserStore();

View File

@@ -356,11 +356,11 @@
</template>
<script setup name="dayEnd">
import { getAllUser, getContractList, getClincReport, testWithAxios } from './component/api';
import {getAllUser, getClincReport, getContractList} from './component/api';
import useUserStore from '@/store/modules/user';
import { formatDate, formatDateStr } from '@/utils/index';
import {formatDateStr} from '@/utils/index';
import Decimal from 'decimal.js';
import { hiprint } from 'vue-plugin-hiprint';
import {hiprint} from 'vue-plugin-hiprint';
import templateJson from './component/template.json';
const userStore = useUserStore();

View File

@@ -313,30 +313,28 @@
</template>
<script setup>
import { getCurrentInstance, ref, computed } from 'vue';
import {computed, getCurrentInstance, ref} from 'vue';
import {
getList,
getDisposalList,
execute,
cancel,
execute,
getDisposalList,
getEnPrescriptionInfo,
getList,
getPerformRecord,
listWesternmedicine,
printBloodCode,
} from './components/api';
import PerformRecordDialog from './components/performRecordDialog';
import PrescriptionInfo from '../../doctorstation/components/prescription/prescriptionInfo.vue';
import templateJson from './components/template.json';
import prescriptionTemplate from './components/prescriptionTemplate.json';
import bloodTemplate from './components/bloodTemplate.json';
import disposalTemplate from './components/disposalTemplate.json';
import { advicePrint, getAdjustPriceSwitchState, lotNumberMatch } from '@/api/public';
import { formatDateStr } from '@/utils';
import { hiprint } from 'vue-plugin-hiprint';
import {advicePrint, getAdjustPriceSwitchState, lotNumberMatch} from '@/api/public';
import {formatDateStr} from '@/utils';
import {hiprint} from 'vue-plugin-hiprint';
import useUserStore from '@/store/modules/user';
import { getGroupMarkers } from '@/utils/his';
import {getGroupMarkers} from '@/utils/his';
import { simplePrint, PRINT_TEMPLATE } from '@/utils/printUtils.js';
import {PRINT_TEMPLATE, simplePrint} from '@/utils/printUtils.js';
// 患者搜索
const queryParams = ref({
pageNo: 1,

View File

@@ -81,7 +81,8 @@
</template>
<script setup name="EPrescribingDetailDialog">
import { formatDate, formatDateStr } from '@/utils/index';
import {formatDate} from '@/utils/index';
const { proxy } = getCurrentInstance();
const { unit_code, yb_type, fin_type_code, activity_category_code, chrgitm_lv } = proxy.useDict(
'unit_code',

View File

@@ -124,7 +124,6 @@
// deptTreeSelect,
// locationTreeSelect,
// } from './diagnosistreatment';
import { formatDate, formatDateStr } from '@/utils/index';
const { proxy } = getCurrentInstance();
const { unit_code, yb_type, fin_type_code, activity_category_code, chrgitm_lv } = proxy.useDict(
'unit_code',

View File

@@ -288,7 +288,8 @@
</template>
<script setup name="PrescriptionQueryDialog">
import { formatDate, formatDateStr } from '@/utils/index';
import {formatDate} from '@/utils/index';
const { proxy } = getCurrentInstance();
const title = ref('');

View File

@@ -169,28 +169,28 @@
</template>
<script setup>
import {
getVeriPrescriptionInfo,
queryMedPrescription,
queryPrescription,
getPrescriptionDetailInfo,
uploadPrescriptionStatus,
refusePrescriptionStatus,
quashPrescriptionStatus,
preVerification,
eleSignature,
uploadElePrescription,
revokePrescription,
} from './components/api';
import medicinePickupQueryDialog from './components/medicinePickupQueryDialog.vue';
import prescriptionQueryDialog from './components/prescriptionQueryDialog.vue';
import ePrescribingDetailDialog from './components/ePrescribingDetailDialog.vue';
import { getCurrentInstance } from 'vue';
import useUserStore from '@/store/modules/user';
import { dayjs, ElMessage } from 'element-plus';
import { formatDate, formatDateStr } from '@/utils/index';
import {
eleSignature,
getPrescriptionDetailInfo,
getVeriPrescriptionInfo,
preVerification,
quashPrescriptionStatus,
queryMedPrescription,
queryPrescription,
refusePrescriptionStatus,
revokePrescription,
uploadElePrescription,
uploadPrescriptionStatus,
} from './components/api';
import medicinePickupQueryDialog from './components/medicinePickupQueryDialog.vue';
import prescriptionQueryDialog from './components/prescriptionQueryDialog.vue';
import ePrescribingDetailDialog from './components/ePrescribingDetailDialog.vue';
import {getCurrentInstance} from 'vue';
import useUserStore from '@/store/modules/user';
import {dayjs, ElMessage} from 'element-plus';
import {formatDate} from '@/utils/index';
const userStore = useUserStore();
const userStore = useUserStore();
const emit = defineEmits(['selectDiagnosis']);
const open = ref(false);

View File

@@ -1,4 +1,5 @@
import request from '@/utils/request'
export function getPrescriptionPageInfo(queryParams) {
return request({
url: '/doctor-station/main/prescription-page-info',

View File

@@ -195,9 +195,7 @@
</template>
<script setup name="historicalPrescriptionDetail">
import {
getPrescriptionDetail
} from "./api";
import {getPrescriptionDetail} from "./api";
const { proxy } = getCurrentInstance();

View File

@@ -129,7 +129,7 @@
</template>
<script setup name="historicalPrescriptionDetail">
import { getPrescriptionDetail } from './api';
import {getPrescriptionDetail} from './api';
const { proxy } = getCurrentInstance();

View File

@@ -106,10 +106,10 @@
</template>
<script setup name="historicalPrescription">
import { ref } from 'vue';
import { getPrescriptionPageInfo } from './component/api';
import historicalPrescriptionDetail from './component/details.vue';
import {ref} from 'vue';
import {getPrescriptionPageInfo} from './component/api';
import Prescription from './component/prescription.vue';
const { proxy } = getCurrentInstance();
const { item_category_code } = proxy.useDict('item_category_code');

View File

@@ -67,8 +67,9 @@
<script setup name="incomeStatement">
const { proxy } = getCurrentInstance();
import { getChargeItemByOrg, getDepartmentList } from './components/api.js';
import { formatDate } from '@/utils/index';
import {getChargeItemByOrg, getDepartmentList} from './components/api.js';
import {formatDate} from '@/utils/index';
const occurrenceTime = ref([formatDate(new Date()),formatDate(new Date())]);
const total = ref(0);
const queryParams = ref({

View File

@@ -163,20 +163,19 @@
</template>
<script setup name="InfusionRecord">
import { ref, computed } from 'vue';
import {ref} from 'vue';
import {
cancelPerform,
editPatientInfusionTime,
getAdvice,
init,
listInfusionRecord,
listPatientInfusionPerformRecord,
listPatients,
updateInfusionRecord,
listInfusionRecord,
editPatientInfusionTime,
listPatientInfusionPerformRecord,
getBottleLabel,
cancelPerform,
init,
getAdvice,
} from './component/api';
import AdviceListDialog from './component/adviceListDialog.vue';
import { formatDate, formatDateStr } from '@/utils/index';
import {formatDate, formatDateStr} from '@/utils/index';
const showSearch = ref(true);
const total = ref(1);

View File

@@ -184,10 +184,10 @@
</template>
<script setup name="ReturnDrug">
import { getCurrentInstance, nextTick } from 'vue';
import { getList, getReturnDrugList, returnDrug, init, itemTraceNo } from './components/api';
import { formatDateStr } from '@/utils/index';
import { debounce } from 'lodash-es';
import {getCurrentInstance, nextTick} from 'vue';
import {getList, getReturnDrugList, init, itemTraceNo, returnDrug} from './components/api';
import {formatDateStr} from '@/utils/index';
import {debounce} from 'lodash-es';
import TraceNoDialog from '@/components/OpenHis/TraceNoDialog/index.vue';
const queryParams = ref({

View File

@@ -225,18 +225,17 @@
</template>
<script setup name="SkinRecord">
import { ref, reactive, toRefs, getCurrentInstance } from 'vue';
import {getCurrentInstance, reactive, ref, toRefs} from 'vue';
import {
addSkinTestRecord,
getList,
getNurseList,
listSkinRecord,
updateNurseSign,
updateSkinTestRecord,
lists,
getNurseList,
addSkinTestRecord,
} from './component/api';
import { parseTime } from '@/utils/openhis';
import { formatDateStr } from '@/utils/index';
import {parseTime} from '@/utils/openhis';
import {formatDateStr} from '@/utils/index';
import useUserStore from '@/store/modules/user';
const { proxy } = getCurrentInstance();

View File

@@ -620,15 +620,9 @@
</div>
</template>
<script setup>
import {
listDefinition,
initOption,
updateDefinition,
getDetail,
} from "./components/definition";
import {getDetail, initOption, listDefinition, updateDefinition,} from "./components/definition";
import Edit from "./components/edit.vue";
import moment from "moment";
import { thousandNumber } from "@/utils/his.js";
import {thousandNumber} from "@/utils/his.js";
const activeName = ref("1");
const showSearch = ref("true");

View File

@@ -87,9 +87,9 @@
</template>
<script setup>
import { nextTick, ref, onMounted, getCurrentInstance } from 'vue';
import { getAdviceBaseInfo, getDeviceList } from './api';
import { throttle } from 'lodash-es';
import {getCurrentInstance, nextTick, onMounted, ref} from 'vue';
import {getAdviceBaseInfo, getDeviceList} from './api';
import {throttle} from 'lodash-es';
const { proxy } = getCurrentInstance();
// 使用系统统一的数据字典

View File

@@ -1,4 +1,5 @@
import request from '@/utils/request';
// 病历相关接口
/**
* 获取患者列表
@@ -795,3 +796,35 @@ export function getTestResult(queryParams) {
params: queryParams,
});
}
/**
* 获取检验申请单列表
*/
export function getInspectionApplicationList(queryParams) {
return request({
url: '/reg-doctorstation/request-form/get-inspection',
method: 'get',
params: queryParams,
});
}
/**
* 保存检验申请单
*/
export function saveInspectionApplication(data) {
return request({
url: '/doctor-station/inspection/application',
method: 'post',
data: data,
});
}
/**
* 删除检验申请单
*/
export function deleteInspectionApplication(id) {
return request({
url: '/doctor-station/inspection/application/' + id,
method: 'delete',
});
}

View File

@@ -93,7 +93,6 @@ import {
saveTcmDiagnosis,
updateTcmDiagnosis,
} from '@/views/doctorstation/components/api';
import { update } from 'lodash';
const props = defineProps({
openAddDiagnosisDialog: {

View File

@@ -176,25 +176,24 @@
</template>
<script setup>
import { getCurrentInstance } from 'vue';
import {getCurrentInstance} from 'vue';
import useUserStore from '@/store/modules/user';
import {
getConditionDefinitionInfo,
saveDiagnosis,
diagnosisInit,
deleteDiagnosisBind,
getEncounterDiagnosis,
getEmrDetail,
getChronicDisease,
getTcmDiagnosis,
delEncounterDiagnosis,
deleteDiagnosisBind,
deleteTcmDiagnosis,
diagnosisInit,
getChronicDisease,
getConditionDefinitionInfo,
getEmrDetail,
getEncounterDiagnosis,
getTcmDiagnosis,
isFoodDiseasesNew,
saveDiagnosis,
} from '../api';
import diagnosisdialog from '../diagnosis/diagnosisdialog.vue';
import AddDiagnosisDialog from './addDiagnosisDialog.vue';
import diagnosislist from '../diagnosis/diagnosislist.vue';
import { onMounted, onBeforeUnmount } from 'vue';
// const diagnosisList = ref([]);
const allowAdd = ref(false);
const tree = ref([]);

View File

@@ -63,8 +63,8 @@
</template>
<script setup>
import { computed } from 'vue';
import { getDiagnosisDefinitionList, saveDiagnosisBind } from '../api';
import {computed} from 'vue';
import {getDiagnosisDefinitionList, saveDiagnosisBind} from '../api';
const radio = ref(1);
const props = defineProps({

View File

@@ -15,7 +15,7 @@
</template>
<script setup>
import { getDiagnosisDefinitionList } from '../api';
import {getDiagnosisDefinitionList} from '../api';
const props = defineProps({
diagnosisSearchkey: {

View File

@@ -150,12 +150,12 @@
</template>
<script setup>
import { saveEmr, getEmrDetail, saveEmrTemplate } from '../api';
import {getEmrDetail, saveEmr, saveEmrTemplate} from '../api';
import emrTemplate from '../emr/emrtemplate.vue';
import emrhistory from '../emr/emrhistory.vue';
import { ref, computed, watch, getCurrentInstance } from 'vue';
import { formatDate as formatDateUtil } from '@/utils/index';
import {computed, getCurrentInstance, ref, watch} from 'vue';
import {formatDate as formatDateUtil} from '@/utils/index';
// Props
const props = defineProps({

View File

@@ -33,8 +33,8 @@
</template>
<script setup>
import { formatDate, formatDateymd } from '@/utils/index';
import { getEmrHistoryList } from '../api';
import {formatDate} from '@/utils/index';
import {getEmrHistoryList} from '../api';
const queryParams = ref({
pageNum: 1,

View File

@@ -28,7 +28,7 @@
</template>
<script setup>
import { getEmrTemplateList, deleteEmrTemplate } from '../api';
import {deleteEmrTemplate, getEmrTemplateList} from '../api';
const queryParams = ref({
pageSize: 10,

View File

@@ -427,25 +427,22 @@
</template>
<script setup>
import { computed, onMounted, ref } from 'vue';
// import { calculateQuantityByDays, formatNumber } from '@/utils/his';
import { reactive } from 'vue';
import {reactive, ref} from 'vue';
// import { useModal, useDict } from '@/hooks';
import { parseTime, formatNumber } from '@/utils/his';
import { queryYbCatalogue, getDiagnosisListEle } from './api';
import { debounce } from 'lodash-es';
import {formatNumber, parseTime} from '@/utils/his';
import {
prescriptionNoInit,
savePrescriptionInfo,
getOrgTree,
updatePrescriptionInfo,
getEncounterDiagnosis,
deletePrescriptionInfo,
getMedicationInfo,
getChronicDisease,
getDiagnosisListEle,
getEncounterDiagnosis,
getMedicationInfo,
prescriptionNoInit,
queryYbCatalogue,
savePrescriptionInfo
} from './api';
import prescriptionMedicineList from './prescription/prescriptionMedicineList';
const { proxy } = getCurrentInstance();
const radio = ref(1);
const props = defineProps({

View File

@@ -136,18 +136,15 @@
<script setup>
import {
elepPrescriptionInit,
getEncounterDiagnosis,
getPrescriptionList,
getOrgTree,
getPrescriptionInfo,
updatePrescriptionInfo,
getMedicationInfo,
deletePrescriptionInfo,
elepPrescriptionInit,
getMedicationInfo,
getPrescriptionInfo,
issuancePrescription,
updatePrescriptionInfo,
} from './api';
import eprescriptiondialog from './eprescriptiondialog.vue';
import { getCurrentInstance } from 'vue';
import {getCurrentInstance} from 'vue';
const total = ref(0);
const queryParams = ref({

View File

@@ -184,13 +184,7 @@
</template>
<script setup>
import {
getInit,
getOrgList,
wardList,
getDiagnosisDefinitionList,
handleHospitalization,
} from './api.js';
import {getDiagnosisDefinitionList, getInit, getOrgList, handleHospitalization, wardList,} from './api.js';
const submitForm = reactive({
medTypeCode: '21',

View File

@@ -38,11 +38,11 @@
</template>
<script setup>
import { ref, reactive, defineEmits, unref, nextTick } from 'vue';
import { getRecordByEncounterIdList, deleteRecord } from '../api';
import { ElTree } from 'element-plus';
import { ElMessageBox, ElMessage, ElLoading } from 'element-plus';
import { patientInfo } from '../../store/patient.js';
import {defineEmits, ref, unref} from 'vue';
import {deleteRecord, getRecordByEncounterIdList} from '../api';
import {ElMessage} from 'element-plus';
import {patientInfo} from '../../store/patient.js';
const emits = defineEmits(['historyClick']);
const props = defineProps({
definitionId: {

View File

@@ -26,11 +26,10 @@
</template>
<script setup>
import { ref, reactive, defineEmits, unref } from 'vue';
import { getListByDefinitionId, deleteTemplate } from '../api';
import { ElTree } from 'element-plus';
import { ElMessageBox, ElMessage, ElLoading } from 'element-plus';
import { patientInfo } from '../../store/patient.js';
import {defineEmits, ref, unref} from 'vue';
import {deleteTemplate, getListByDefinitionId} from '../api';
import {ElMessage} from 'element-plus';
const emits = defineEmits(['templateClick', 'edit']);
const props = defineProps({
definitionId: {

View File

@@ -40,11 +40,10 @@
</el-dialog>
</template>
<script setup>
import { ref, onMounted } from 'vue';
import useUserStore from '@/store/modules/user';
import { addTemplate, updateTemplate } from '../api';
import { ElMessage } from 'element-plus';
import { components } from '@/template';
import {onMounted, ref} from 'vue';
import {addTemplate, updateTemplate} from '../api';
import {ElMessage} from 'element-plus';
const emits = defineEmits(['submitOk']);
const props = defineProps({
formData: {

View File

@@ -94,15 +94,21 @@
</div>
</template>
<script setup>
import { nextTick, onMounted, ref, watch } from 'vue';
import { ElMessage } from 'element-plus';
import { getTreeList } from '@/views/basicmanage/caseTemplates/api';
import { saveOrUpdateRecord, addTemplate, getRecordByEncounterIdList, recordPrint } from './api';
import { patientInfo } from '../store/patient.js';
import {nextTick, onMounted, ref, watch} from 'vue';
import {ElMessage} from 'element-plus';
import {getTreeList} from '@/views/basicmanage/caseTemplates/api';
import {addTemplate, getRecordByEncounterIdList, recordPrint, saveOrUpdateRecord} from './api';
import {patientInfo} from '../store/patient.js';
import dayjs from 'dayjs';
// 打印工具
import { simplePrint, PRINT_TEMPLATE } from '@/utils/printUtils.js';
import { getEncounterDiagnosis } from '../api';
import {PRINT_TEMPLATE, simplePrint} from '@/utils/printUtils.js';
import {getEncounterDiagnosis} from '../api';
import History from './components/history';
import Template from './components/template';
import TemplateEdit from './components/templateEdit.vue';
import useUserStore from '@/store/modules/user';
const { proxy } = getCurrentInstance();
const emits = defineEmits([]);
const props = defineProps({
@@ -116,11 +122,6 @@ const props = defineProps({
},
});
const state = reactive({});
import History from './components/history';
import Template from './components/template';
import TemplateEdit from './components/templateEdit.vue';
import useUserStore from '@/store/modules/user';
const userStore = useUserStore();
// 定义响应式变量
const templateData = ref([]);

Some files were not shown because too many files have changed in this diff Show More