修改 影像工作台诊断医生、审核医生下拉选择

This commit is contained in:
weapon 2025-04-29 14:31:51 +08:00
parent e962ca1ffd
commit 7e7843b749
5 changed files with 147 additions and 120 deletions

View File

@ -149,9 +149,6 @@ importers:
vue3-print-nb: vue3-print-nb:
specifier: ^0.1.4 specifier: ^0.1.4
version: 0.1.4(typescript@5.3.3) version: 0.1.4(typescript@5.3.3)
vue3-video-play:
specifier: ^1.3.2
version: 1.3.2(typescript@5.3.3)
vuedraggable: vuedraggable:
specifier: ^4.1.0 specifier: ^4.1.0
version: 4.1.0(vue@3.4.21(typescript@5.3.3)) version: 4.1.0(vue@3.4.21(typescript@5.3.3))
@ -3546,9 +3543,6 @@ packages:
resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==}
engines: {node: '>=12.0.0'} engines: {node: '>=12.0.0'}
hls.js@1.5.15:
resolution: {integrity: sha512-6cD7xN6bycBHaXz2WyPIaHn/iXFizE5au2yvY5q9aC4wfihxAr16C9fUy4nxh2a3wOw0fEgLRa9dN6wsYjlpNg==}
htm@3.1.1: htm@3.1.1:
resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==} resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==}
@ -5091,10 +5085,6 @@ packages:
text-table@0.2.0: text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
throttle-debounce@3.0.1:
resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
engines: {node: '>=10'}
through@2.3.8: through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
@ -5465,9 +5455,6 @@ packages:
vue3-print-nb@0.1.4: vue3-print-nb@0.1.4:
resolution: {integrity: sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==} resolution: {integrity: sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==}
vue3-video-play@1.3.2:
resolution: {integrity: sha512-eEwCJ0NIkfVQgTj0I3Kf9b1E/04Qne8mQQiE8r77BocblHsZ2T6af3q8l8Zzs/OvjlpQAQvkN/ACVUOJC3RSXg==}
vue@3.4.21: vue@3.4.21:
resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==}
peerDependencies: peerDependencies:
@ -9328,8 +9315,6 @@ snapshots:
highlight.js@11.9.0: {} highlight.js@11.9.0: {}
hls.js@1.5.15: {}
htm@3.1.1: {} htm@3.1.1: {}
html-tags@3.3.1: {} html-tags@3.3.1: {}
@ -10900,8 +10885,6 @@ snapshots:
text-table@0.2.0: {} text-table@0.2.0: {}
throttle-debounce@3.0.1: {}
through@2.3.8: {} through@2.3.8: {}
tiny-svg@2.2.4: {} tiny-svg@2.2.4: {}
@ -11358,14 +11341,6 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- typescript - typescript
vue3-video-play@1.3.2(typescript@5.3.3):
dependencies:
hls.js: 1.5.15
throttle-debounce: 3.0.1
vue: 3.4.21(typescript@5.3.3)
transitivePeerDependencies:
- typescript
vue@3.4.21(typescript@5.3.3): vue@3.4.21(typescript@5.3.3):
dependencies: dependencies:
'@vue/compiler-dom': 3.4.21 '@vue/compiler-dom': 3.4.21

View File

@ -40,8 +40,6 @@ import '@/plugins/tongji' // 百度统计
import Logger from '@/utils/Logger' import Logger from '@/utils/Logger'
import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患 import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患
import print from "vue3-print-nb";//打印的 import print from "vue3-print-nb";//打印的
import vue3videoPlay from 'vue3-video-play' // 引入组件
import 'vue3-video-play/dist/style.css' // 引入css
import '@/views/applyregistration/reportPrintStatistics/reportPrint.scss' //打印(全局) import '@/views/applyregistration/reportPrintStatistics/reportPrint.scss' //打印(全局)
import * as ElementPlusIconsVue from '@element-plus/icons-vue' import * as ElementPlusIconsVue from '@element-plus/icons-vue'
// 创建实例 // 创建实例
@ -65,7 +63,6 @@ const setupAll = async () => {
setupAuth(app) setupAuth(app)
await router.isReady() await router.isReady()
app.use(vue3videoPlay)
app.use(VueDOMPurifyHTML) app.use(VueDOMPurifyHTML)
app.use(print); app.use(print);

View File

@ -235,18 +235,36 @@
<el-divider /> <el-divider />
<div class="form-row-yx"> <div class="form-row-yx">
<el-form-item label="诊断医生" class="form-item"> <el-form-item label="诊断医生" class="form-item">
<el-input <el-select
v-model="applyFormVO.diagDoctor" v-model="applyFormVO.diagDoctor"
style="width: 180px" style="width: 180px"
:disabled="true" placeholder="请选择诊断医生"
/> clearable
:disabled="savedisabled"
>
<el-option
v-for="doctor in doctorList"
:key="doctor.doctorID"
:label="doctor.doctorName"
:value="doctor.doctorName+'|'+doctor.doctorID"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="审核医生" class="form-item"> <el-form-item label="审核医生" class="form-item">
<el-input <el-select
v-model="applyFormVO.reviewDoctor" v-model="applyFormVO.reviewDoctor"
style="width: 180px" style="width: 180px"
:disabled="true" placeholder="请选择审核医生"
/> clearable
:disabled="applyFormVO.reportstatus === '已审核'"
>
<el-option
v-for="doctor in doctorList"
:key="doctor.doctorID"
:label="doctor.doctorName"
:value="doctor.doctorName+'|'+doctor.doctorID"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="报告状态" class="form-item"> <el-form-item label="报告状态" class="form-item">
@ -343,7 +361,8 @@ import htmlToPdf from '@/utils/htmlPdf'
import { formatDate } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import { object } from 'vue-types' import { object } from 'vue-types'
import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics' import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics'
import * as ConfigApi from '@/api/infra/config' // import * as ConfigApi from '@/api/infra/config'
import {Api, VO} from "@/api/system/doctor"; //
/** dicom */ /** dicom */
defineOptions({ name: 'DicomViewForm' }) defineOptions({ name: 'DicomViewForm' })
const showPdfContent = ref(false) //CT const showPdfContent = ref(false) //CT
@ -363,6 +382,7 @@ const savedisabled = ref(false) //保存按钮是否可用
const examinedisabled = ref(false) // const examinedisabled = ref(false) //
const dataLoaded = ref(false) // const dataLoaded = ref(false) //
const tagLoaded = ref(true) // const tagLoaded = ref(true) //
const doctorList = ref<VO[]>([]) //
//使 //使
const clickuptime = async (pid: string) => { const clickuptime = async (pid: string) => {
@ -397,6 +417,10 @@ const notes = ref()
// //
const save = async () => { const save = async () => {
try { try {
if(applyFormVO.value.diagDoctor==null||applyFormVO.value.diagDoctor=='undefined' || applyFormVO.value.diagDoctor==''){
message.warning('请选择诊断医生')
return
}
// //
await message.delConfirm('是否进行保存', '确认') await message.delConfirm('是否进行保存', '确认')
let timesta = new Date() let timesta = new Date()
@ -408,8 +432,12 @@ const save = async () => {
examineFormVO.value.diagResults = zdjl.value examineFormVO.value.diagResults = zdjl.value
examineFormVO.value.notes = notes.value examineFormVO.value.notes = notes.value
examineFormVO.value.diagFlag = radio1.value examineFormVO.value.diagFlag = radio1.value
examineFormVO.value.diagDoctor = Profilevo.value.doctorname // examineFormVO.value.diagDoctor = Profilevo.value.doctorname
examineFormVO.value.diagDoctorId = Profilevo.value.doctorID // examineFormVO.value.diagDoctorId = Profilevo.value.doctorID
let diagDoctor = applyFormVO.value.diagDoctor.split('|')[0]
let diagDoctorId = applyFormVO.value.diagDoctor.split('|')[1]
examineFormVO.value.diagDoctor = diagDoctor
examineFormVO.value.diagDoctorId = diagDoctorId
// examineFormVO.value.reviewDoctor = Profilevo.value.username // examineFormVO.value.reviewDoctor = Profilevo.value.username
examineFormVO.value.reportstatus = '已分析' examineFormVO.value.reportstatus = '已分析'
@ -438,7 +466,15 @@ const save = async () => {
// //
const examine = async () => { const examine = async () => {
if (applyFormVO.value.reportstatus === '已分析') { if (applyFormVO.value.reportstatus === '已分析') {
const response = await PatientexamlistApi.examine(ID.toString())
if(applyFormVO.value.reviewDoctor==null||applyFormVO.value.reviewDoctor=='undefined' || applyFormVO.value.reviewDoctor==''){
message.warning('请选择审核医生')
return
}
let reviewDoctor = applyFormVO.value.reviewDoctor.split('|')[0]
let reviewDoctorId = applyFormVO.value.reviewDoctor.split('|')[1]
const response = await PatientexamlistApi.examine(ID.toString(),reviewDoctorId,reviewDoctor)
if (response) { if (response) {
message.alertSuccess('审核成功') message.alertSuccess('审核成功')
await getPatientexamlist(ID) await getPatientexamlist(ID)
@ -480,45 +516,50 @@ const exportPdfCTToBase64 = async () => {
calculateAge(applyFormVO.value.birthday) // calculateAge(applyFormVO.value.birthday) //
let orgInfoTemp = await ReportPrintStatisticsApi.getOrg(infoParams.value.orgId.trim()) let orgInfoTemp = await ReportPrintStatisticsApi.getOrg(infoParams.value.orgId.trim())
// await PatientexamlistApi.generatePdf_ct({
// model: '0', // ================================================
// folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString(), await PatientexamlistApi.generatePdf_ct({
// id: ID.toString(), model: '0',
// regid: infoParams.value.regId, folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString(),
// examid: infoParams.value.examId, id: ID.toString(),
// name: infoParams.value.pname, regid: infoParams.value.regId,
// gender: infoParams.value.gender, examid: infoParams.value.examId,
// age: age.value + '', name: infoParams.value.pname,
// deviceName: infoParams.value.deviceName, gender: infoParams.value.gender,
// Department: infoParams.value.billDoctorDepartment, age: age.value + '岁',
// examItemName: infoParams.value.examItemName, deviceName: infoParams.value.deviceName,
// examDescription: infoParams.value.examDescription, Department: infoParams.value.billDoctorDepartment,
// diagResults: infoParams.value.diagResults, examItemName: infoParams.value.examItemName,
// hsname: orgInfoTemp.orgName, examDescription: infoParams.value.examDescription,
// diagDoctor: infoParams.value.diagDoctor, diagResults: infoParams.value.diagResults,
// diagDate: infoParams.value.diagDate, hsname: orgInfoTemp.orgName,
// reviewDoctor: infoParams.value.reviewDoctor, diagDoctor: infoParams.value.diagDoctor,
// reviewDate: infoParams.value.reviewDate diagDate: infoParams.value.diagDate,
// }) reviewDoctor: infoParams.value.reviewDoctor,
reviewDate: infoParams.value.reviewDate
showPdfContent.value = true })
nextTick(() => { // ================================================
setTimeout(async () => {
try {
//PDF // =================================================
const pdfBase64String = await htmlToPdf.getPdfBase64('CT报告单', '#hiddenPdfDiv') // showPdfContent.value = true
await PatientexamlistApi.ftppdf({ // nextTick(() => {
id: ID.toString(), // setTimeout(async () => {
imagebase: pdfBase64String, // try {
model: '0', // //PDF
folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString() // const pdfBase64String = await htmlToPdf.getPdfBase64('CT', '#hiddenPdfDiv')
}) // await PatientexamlistApi.ftppdf({
} finally { // id: ID.toString(),
showPdfContent.value = false // imagebase: pdfBase64String,
} // model: '0',
}, 1000) // folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString()
}) // })
// } finally {
// showPdfContent.value = false
// }
// }, 1000)
// })
// =================================================
} }
const infoParams = ref({ const infoParams = ref({
@ -707,6 +748,9 @@ const open = async (id: number, orgid: string, regid: string, examId: string, is
// //
getlogininfo() getlogininfo()
//
getdoctorlist(orgid)
} finally { } finally {
if (newSrc.value != 'about:blank') { if (newSrc.value != 'about:blank') {
nextTick(async () => { nextTick(async () => {
@ -720,6 +764,12 @@ const open = async (id: number, orgid: string, regid: string, examId: string, is
formLoading.value = false formLoading.value = false
} }
} }
//
const getdoctorlist = async (orgid:string) => {
const data = await Api.getAlllist(orgid)
doctorList.value = data
}
// //
const iframeData = async () => { const iframeData = async () => {
try { try {
@ -787,6 +837,7 @@ const PrintForm = () => {
// //
const getlogininfo = async () => { const getlogininfo = async () => {
Profilevo.value = await getUserProfile() Profilevo.value = await getUserProfile()
console.log(Profilevo.value )
console.log('审核是否可见' + Profilevo.value.isimageexamine) console.log('审核是否可见' + Profilevo.value.isimageexamine)
if (Profilevo.value.isimageexamine === '1') { if (Profilevo.value.isimageexamine === '1') {
examinedisabled.value = true examinedisabled.value = true

View File

@ -748,7 +748,7 @@ const iframeData = async () => {
localStorage.setItem('regid_pathology', regId.value) localStorage.setItem('regid_pathology', regId.value)
localStorage.removeItem('orgId_pathology') localStorage.removeItem('orgId_pathology')
localStorage.setItem('orgId_pathology', orgId.value) localStorage.setItem('orgId_pathology', orgId.value)
const Src = `/bl/static/dicom/dicomViewPc1.html?method=PathologyView&t=${new Date().getTime()}` const Src = `/static/dicom/dicomViewPc1.html?method=PathologyView&t=${new Date().getTime()}`
newSrc.value = Src newSrc.value = Src
} else { } else {
// statussuccess // statussuccess

View File

@ -677,48 +677,52 @@ const exportPdfUSToBase64 = async () => {
image3 = window.location.origin + image3 image3 = window.location.origin + image3
} }
} }
// await PatientexamlistApi.generatePdf_us({ // ================================================
// model: '0', await PatientexamlistApi.generatePdf_us({
// folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString(), model: '0',
// id: ID.toString(), folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString(),
// regid: infoParams.value.regId, id: ID.toString(),
// examid: infoParams.value.examId, regid: infoParams.value.regId,
// name: infoParams.value.pname, examid: infoParams.value.examId,
// gender: infoParams.value.gender, name: infoParams.value.pname,
// age: age.value + '', gender: infoParams.value.gender,
// deviceName: infoParams.value.deviceName, age: age.value + '岁',
// Department: infoParams.value.billDoctorDepartment, deviceName: infoParams.value.deviceName,
// examItemName: infoParams.value.examItemName, Department: infoParams.value.billDoctorDepartment,
// examDescription: infoParams.value.examDescription, examItemName: infoParams.value.examItemName,
// diagResults: infoParams.value.diagResults, examDescription: infoParams.value.examDescription,
// hsname: orgInfoTemp.orgName, diagResults: infoParams.value.diagResults,
// diagDoctor: infoParams.value.diagDoctor, hsname: orgInfoTemp.orgName,
// diagDate: infoParams.value.diagDate, diagDoctor: infoParams.value.diagDoctor,
// reviewDoctor: infoParams.value.reviewDoctor, diagDate: infoParams.value.diagDate,
// reviewDate: infoParams.value.reviewDate, reviewDoctor: infoParams.value.reviewDoctor,
// image1: image1, reviewDate: infoParams.value.reviewDate,
// image2: image2, image1: image1,
// image3: image3 image2: image2,
// }) image3: image3
})
showPdfContent.value = true // ================================================
nextTick(() => {
setTimeout(async () => {
try { // =================================================
//PDF // showPdfContent.value = true
const pdfBase64String = await htmlToPdf.getPdfBase64('US报告单', '#hiddenUSPdfDiv') // nextTick(() => {
await PatientexamlistApi.ftppdf({ // setTimeout(async () => {
id: ID.toString(), // try {
imagebase: pdfBase64String, // //PDF
model: '0', // const pdfBase64String = await htmlToPdf.getPdfBase64('US', '#hiddenUSPdfDiv')
folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString() // await PatientexamlistApi.ftppdf({
}) // id: ID.toString(),
} finally { // imagebase: pdfBase64String,
showPdfContent.value = false // model: '0',
} // folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString()
}, 1000) // })
}) // } finally {
// showPdfContent.value = false
// }
// }, 1000)
// })
// =================================================
} }
const infoParams = ref({ const infoParams = ref({