病理相关
This commit is contained in:
parent
6e3b489177
commit
1bb63d52e5
@ -35,6 +35,7 @@
|
|||||||
"@wangeditor/editor-for-vue": "^5.1.10",
|
"@wangeditor/editor-for-vue": "^5.1.10",
|
||||||
"@zxcvbn-ts/core": "^3.0.4",
|
"@zxcvbn-ts/core": "^3.0.4",
|
||||||
"animate.css": "^4.1.1",
|
"animate.css": "^4.1.1",
|
||||||
|
"autofit.js": "^3.1.4",
|
||||||
"axios": "^1.6.8",
|
"axios": "^1.6.8",
|
||||||
"benz-amr-recorder": "^1.1.5",
|
"benz-amr-recorder": "^1.1.5",
|
||||||
"bpmn-js-token-simulation": "^0.10.0",
|
"bpmn-js-token-simulation": "^0.10.0",
|
||||||
|
@ -38,6 +38,9 @@ importers:
|
|||||||
animate.css:
|
animate.css:
|
||||||
specifier: ^4.1.1
|
specifier: ^4.1.1
|
||||||
version: 4.1.1
|
version: 4.1.1
|
||||||
|
autofit.js:
|
||||||
|
specifier: ^3.1.4
|
||||||
|
version: 3.1.4
|
||||||
axios:
|
axios:
|
||||||
specifier: ^1.6.8
|
specifier: ^1.6.8
|
||||||
version: 1.6.8
|
version: 1.6.8
|
||||||
@ -2424,6 +2427,9 @@ packages:
|
|||||||
engines: {node: '>= 4.5.0'}
|
engines: {node: '>= 4.5.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
autofit.js@3.1.4:
|
||||||
|
resolution: {integrity: sha512-SLKn73fHeWsxJZJ5yisCYLvw0U10OLjrcOEWlPHvSRvIcvQHwuSemFtrcoTM+zccwtVWi3dwfJxT282728j9HQ==}
|
||||||
|
|
||||||
autoprefixer@10.4.19:
|
autoprefixer@10.4.19:
|
||||||
resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
|
resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
@ -4887,7 +4893,7 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
source-map@0.6.1:
|
source-map@0.6.1:
|
||||||
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
|
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://r2.cnpmjs.org/source-map/-/source-map-0.6.1.tgz}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
split-string@3.1.0:
|
split-string@3.1.0:
|
||||||
@ -7958,6 +7964,8 @@ snapshots:
|
|||||||
|
|
||||||
atob@2.1.2: {}
|
atob@2.1.2: {}
|
||||||
|
|
||||||
|
autofit.js@3.1.4: {}
|
||||||
|
|
||||||
autoprefixer@10.4.19(postcss@8.4.38):
|
autoprefixer@10.4.19(postcss@8.4.38):
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist: 4.23.0
|
browserslist: 4.23.0
|
||||||
|
@ -248,8 +248,8 @@ function screenshotTool() {
|
|||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
contentType: 'application/json',
|
contentType: 'application/json',
|
||||||
url: 'http://127.0.0.1:48080/admin-api/ultrasoniccom/ultrasonic/ftpimage',
|
url: 'http://192.168.0.110:8095/admin-api/ultrasoniccom/ultrasonic/ftpimage',
|
||||||
data: JSON.stringify({ id: window.localStorage.regid_pathology, imagebase: imageDataUrl, imgType: '3' }),
|
data: JSON.stringify({ id: window.localStorage.regid_pathology, orgId: window.localStorage.orgId_pathology, imagebase: imageDataUrl, imgType: '3' }),
|
||||||
success: function (data, textStatus, jqXHR) {
|
success: function (data, textStatus, jqXHR) {
|
||||||
alert('添加成功,请刷新报告单中的图片');
|
alert('添加成功,请刷新报告单中的图片');
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div id="indexPage">
|
||||||
<span class="my-span" style="margin-left: 14px">快捷入口</span>
|
<span class="my-span" style="margin-left: 14px">快捷入口</span>
|
||||||
|
|
||||||
<div class="my-quickdiv">
|
<div class="my-quickdiv">
|
||||||
<ContentWrap class="my-quick" v-for="(item, index) in projects" :key="`ContentWrap-${index}`">
|
<ContentWrap class="my-quick" v-for="(item, index) in projects" :key="`ContentWrap-${index}`">
|
||||||
<router-link
|
<router-link
|
||||||
@ -24,7 +24,13 @@
|
|||||||
<span class="my-span">累计已检查登记单概况</span>
|
<span class="my-span">累计已检查登记单概况</span>
|
||||||
<div class="div-inline">
|
<div class="div-inline">
|
||||||
<div v-if="isDataReady" style="background-color: rgb(243, 247, 254)">
|
<div v-if="isDataReady" style="background-color: rgb(243, 247, 254)">
|
||||||
<YY :mytotalcount=totalcount :myy="y" :myyx="yx" :myzdyx="zdyx" style="height: 300px" />
|
<YY
|
||||||
|
:mytotalcount="totalcount"
|
||||||
|
:myy="y"
|
||||||
|
:myyx="yx"
|
||||||
|
:myzdyx="zdyx"
|
||||||
|
style="height: 300px"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-gap"></div>
|
<div class="flex-gap"></div>
|
||||||
<!-- 间隙 -->
|
<!-- 间隙 -->
|
||||||
@ -38,7 +44,12 @@
|
|||||||
<ContentWrap class="my-quickstatistics">
|
<ContentWrap class="my-quickstatistics">
|
||||||
<span class="my-span">已检查登记单概况分布</span>
|
<span class="my-span">已检查登记单概况分布</span>
|
||||||
<div v-if="iszxDataReady">
|
<div v-if="iszxDataReady">
|
||||||
<zx :yxArray="yxArray" :yArray="yArray" :zdyxArray="zdyxArray" style="height: 300px" />
|
<zx
|
||||||
|
:yxArray="yxArray"
|
||||||
|
:yArray="yArray"
|
||||||
|
:zdyxArray="zdyxArray"
|
||||||
|
style="height: 300px"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</div>
|
</div>
|
||||||
@ -49,7 +60,12 @@
|
|||||||
<ContentWrap class="my-right-statistics" style="height: 753px">
|
<ContentWrap class="my-right-statistics" style="height: 753px">
|
||||||
<span class="my-span" style="margin-left: 10px">检查状态概况</span>
|
<span class="my-span" style="margin-left: 10px">检查状态概况</span>
|
||||||
<div
|
<div
|
||||||
style="display: flex; align-items: flex-start; justify-content: center; margin-top: 50px"
|
style="
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 50px;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<img src="/static/djdtj.jpg" style="width: 55px; height: 60px" />
|
<img src="/static/djdtj.jpg" style="width: 55px; height: 60px" />
|
||||||
<div
|
<div
|
||||||
@ -66,9 +82,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<el-divider />
|
<el-divider />
|
||||||
<div
|
<div
|
||||||
style="display: flex; align-items: flex-start; justify-content: center; margin-top: 50px"
|
style="
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 50px;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<img src="/static/djwfj.jpg" style="width: 55px; height: 60px; margin-left: 40px;" />
|
<img src="/static/djwfj.jpg" style="width: 55px; height: 60px; margin-left: 40px" />
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
@ -80,13 +101,20 @@
|
|||||||
<span style="color: rgb(128, 128, 128)">登记单未分检数</span>
|
<span style="color: rgb(128, 128, 128)">登记单未分检数</span>
|
||||||
<span class="my-span" style="margin-top: 8px">{{ wfj }}</span>
|
<span class="my-span" style="margin-top: 8px">{{ wfj }}</span>
|
||||||
</div>
|
</div>
|
||||||
<span style="color: rgb(128, 128, 128); margin-left: auto; margin-top: 20px">({{usePercentageCalculation(regtotalcount,wfj)}}%)</span>
|
<span style="color: rgb(128, 128, 128); margin-left: auto; margin-top: 20px"
|
||||||
|
>({{ usePercentageCalculation(regtotalcount, wfj) }}%)</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div
|
<div
|
||||||
style="display: flex; align-items: flex-start; justify-content: center; margin-top: 50px"
|
style="
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 50px;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<img src="/static/djwjc.jpg" style="width: 55px; height: 60px;margin-left: 40px;" />
|
<img src="/static/djwjc.jpg" style="width: 55px; height: 60px; margin-left: 40px" />
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
@ -98,11 +126,20 @@
|
|||||||
<span style="color: rgb(128, 128, 128)">登记单未检查数</span>
|
<span style="color: rgb(128, 128, 128)">登记单未检查数</span>
|
||||||
<span class="my-span" style="margin-top: 8px">{{ wjc }}</span>
|
<span class="my-span" style="margin-top: 8px">{{ wjc }}</span>
|
||||||
</div>
|
</div>
|
||||||
<span style="color: rgb(128, 128, 128); margin-left: auto; margin-top: 20px">({{usePercentageCalculation(regtotalcount,wjc)}}%)</span>
|
<span style="color: rgb(128, 128, 128); margin-left: auto; margin-top: 20px"
|
||||||
|
>({{ usePercentageCalculation(regtotalcount, wjc) }}%)</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div style="display: flex; align-items: flex-start; justify-content: center; margin-top: 50px">
|
<div
|
||||||
<img src="/static/djyjc.jpg" style="width: 55px; height: 60px;margin-left: 40px;" />
|
style="
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 50px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<img src="/static/djyjc.jpg" style="width: 55px; height: 60px; margin-left: 40px" />
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
@ -111,14 +148,23 @@
|
|||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<span style="color: rgb(128, 128, 128);">登记单已检查数</span>
|
<span style="color: rgb(128, 128, 128)">登记单已检查数</span>
|
||||||
<span class="my-span" style="margin-top: 8px;">{{yjc}}</span>
|
<span class="my-span" style="margin-top: 8px">{{ yjc }}</span>
|
||||||
</div>
|
</div>
|
||||||
<span style="color: rgb(128, 128, 128); margin-left: auto; margin-top: 20px;">({{usePercentageCalculation(regtotalcount,yjc)}}%)</span>
|
<span style="color: rgb(128, 128, 128); margin-left: auto; margin-top: 20px"
|
||||||
|
>({{ usePercentageCalculation(regtotalcount, yjc) }}%)</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div style="display: flex; align-items: flex-start; justify-content: center; margin-top: 50px">
|
<div
|
||||||
<img src="/static/djfq.jpg" style="width: 55px; height: 60px;margin-left: 40px;" />
|
style="
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 50px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<img src="/static/djfq.jpg" style="width: 55px; height: 60px; margin-left: 40px" />
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
@ -127,20 +173,24 @@
|
|||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<span style="color: rgb(128, 128, 128);">登记单已放弃数</span>
|
<span style="color: rgb(128, 128, 128)">登记单已放弃数</span>
|
||||||
<span class="my-span" style="margin-top: 8px;">{{yfq}}</span>
|
<span class="my-span" style="margin-top: 8px">{{ yfq }}</span>
|
||||||
</div>
|
</div>
|
||||||
<span style="color: rgb(128, 128, 128); margin-left: auto; margin-top: 20px;">({{usePercentageCalculation(regtotalcount,yfq)}}%)</span>
|
<span style="color: rgb(128, 128, 128); margin-left: auto; margin-top: 20px"
|
||||||
|
>({{ usePercentageCalculation(regtotalcount, yfq) }}%)</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
import autofit from 'autofit.js'
|
||||||
import { set } from 'lodash-es'
|
import { set } from 'lodash-es'
|
||||||
import { EChartsOption } from 'echarts'
|
import { EChartsOption } from 'echarts'
|
||||||
import { formatTime } from '@/utils'
|
import { formatTime } from '@/utils'
|
||||||
|
|
||||||
import { useUserStore } from '@/store/modules/user'
|
import { useUserStore } from '@/store/modules/user'
|
||||||
import { useWatermark } from '@/hooks/web/useWatermark'
|
import { useWatermark } from '@/hooks/web/useWatermark'
|
||||||
import type { WorkplaceTotal, Project, Notice, Shortcut } from './types'
|
import type { WorkplaceTotal, Project, Notice, Shortcut } from './types'
|
||||||
@ -153,8 +203,25 @@ import { ApplyformApi } from '@/api/applyregistration/applyform'
|
|||||||
|
|
||||||
defineOptions({ name: 'Home' })
|
defineOptions({ name: 'Home' })
|
||||||
|
|
||||||
const isDataReady = ref(false);
|
onMounted(async () => {
|
||||||
const iszxDataReady = ref(false);
|
autofit.init(
|
||||||
|
{
|
||||||
|
dw: 1920 * 1.03,
|
||||||
|
dh: 1080 * 1.03,
|
||||||
|
el: '#indexPage',
|
||||||
|
resize: true
|
||||||
|
},
|
||||||
|
false
|
||||||
|
)
|
||||||
|
await getAllApi()
|
||||||
|
})
|
||||||
|
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
autofit.off()
|
||||||
|
})
|
||||||
|
|
||||||
|
const isDataReady = ref(false)
|
||||||
|
const iszxDataReady = ref(false)
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const { setWatermark } = useWatermark()
|
const { setWatermark } = useWatermark()
|
||||||
@ -163,7 +230,6 @@ const avatar = userStore.getUser.avatar
|
|||||||
const username = userStore.getUser.nickname
|
const username = userStore.getUser.nickname
|
||||||
const pieOptionsData = reactive<EChartsOption>(pieOptions) as EChartsOption
|
const pieOptionsData = reactive<EChartsOption>(pieOptions) as EChartsOption
|
||||||
|
|
||||||
|
|
||||||
// 获取项目数
|
// 获取项目数
|
||||||
let projects = reactive<Project[]>([])
|
let projects = reactive<Project[]>([])
|
||||||
const getProject = async () => {
|
const getProject = async () => {
|
||||||
@ -201,8 +267,7 @@ const totalcount=ref()
|
|||||||
const zdyx = ref()
|
const zdyx = ref()
|
||||||
const F = ref()
|
const F = ref()
|
||||||
const M = ref()
|
const M = ref()
|
||||||
const GetWholeDiagFlagCount=async ()=>
|
const GetWholeDiagFlagCount = async () => {
|
||||||
{
|
|
||||||
const data = await PatientexamlistApi.WholeDiagFlagCount()
|
const data = await PatientexamlistApi.WholeDiagFlagCount()
|
||||||
totalcount.value = data.totalcount //总数
|
totalcount.value = data.totalcount //总数
|
||||||
y.value = data.y
|
y.value = data.y
|
||||||
@ -210,15 +275,14 @@ const GetWholeDiagFlagCount=async ()=>
|
|||||||
zdyx.value = data.zdyx
|
zdyx.value = data.zdyx
|
||||||
F.value = data.f
|
F.value = data.f
|
||||||
M.value = data.m
|
M.value = data.m
|
||||||
console.log("统计"+ data.f)
|
console.log('统计' + data.f)
|
||||||
isDataReady.value = true
|
isDataReady.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// 定义一个长度为7的响应式数组,初始值都为0
|
// 定义一个长度为7的响应式数组,初始值都为0
|
||||||
const yxArray = ref(new Array(7).fill(0));
|
const yxArray = ref(new Array(7).fill(0))
|
||||||
const yArray = ref(new Array(7).fill(0));
|
const yArray = ref(new Array(7).fill(0))
|
||||||
const zdyxArray = ref(new Array(7).fill(0));
|
const zdyxArray = ref(new Array(7).fill(0))
|
||||||
|
|
||||||
|
|
||||||
const GetDateYYZDYXCount = async () => {
|
const GetDateYYZDYXCount = async () => {
|
||||||
const data = await PatientexamlistApi.GetDateYYZDYXCount()
|
const data = await PatientexamlistApi.GetDateYYZDYXCount()
|
||||||
@ -232,14 +296,12 @@ const GetDateYYZDYXCount =async () => {
|
|||||||
iszxDataReady.value = true
|
iszxDataReady.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const regtotalcount = ref(0)
|
const regtotalcount = ref(0)
|
||||||
const wfj = ref(0)
|
const wfj = ref(0)
|
||||||
const wjc = ref(0)
|
const wjc = ref(0)
|
||||||
const yjc = ref(0)
|
const yjc = ref(0)
|
||||||
const yfq = ref(0)
|
const yfq = ref(0)
|
||||||
const GetReglistCount=async ()=>
|
const GetReglistCount = async () => {
|
||||||
{
|
|
||||||
const data = await ApplyformApi.GetReglistCount()
|
const data = await ApplyformApi.GetReglistCount()
|
||||||
regtotalcount.value = data.totalcount
|
regtotalcount.value = data.totalcount
|
||||||
wfj.value = data.wfj
|
wfj.value = data.wfj
|
||||||
@ -251,29 +313,34 @@ const GetReglistCount=async ()=>
|
|||||||
// 封装计算百分比的方法
|
// 封装计算百分比的方法
|
||||||
function usePercentageCalculation(total, value) {
|
function usePercentageCalculation(total, value) {
|
||||||
return computed(() => {
|
return computed(() => {
|
||||||
const totalNum = parseInt(total); // 转换总数为数字
|
const totalNum = parseInt(total) // 转换总数为数字
|
||||||
const valueNum = parseInt(value); // 转换当前项的值为数字
|
const valueNum = parseInt(value) // 转换当前项的值为数字
|
||||||
|
|
||||||
// 判断total是否大于0,如果不是,则返回0
|
// 判断total是否大于0,如果不是,则返回0
|
||||||
if (totalNum <= 0) {
|
if (totalNum <= 0) {
|
||||||
return 0;
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果total大于0,计算百分比
|
// 如果total大于0,计算百分比
|
||||||
const percentage = (valueNum / totalNum) * 100;
|
const percentage = (valueNum / totalNum) * 100
|
||||||
|
|
||||||
// 返回计算出的百分比,保留两位小数
|
// 返回计算出的百分比,保留两位小数
|
||||||
return parseFloat(percentage.toFixed(2));
|
return parseFloat(percentage.toFixed(2))
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
const barOptionsData = reactive<EChartsOption>(barOptions) as EChartsOption
|
const barOptionsData = reactive<EChartsOption>(barOptions) as EChartsOption
|
||||||
|
|
||||||
const getAllApi = async () => {
|
const getAllApi = async () => {
|
||||||
await Promise.all([getProject(),GetWholeDiagFlagCount(),GetDateYYZDYXCount(),GetReglistCount()])
|
await Promise.all([
|
||||||
|
getProject(),
|
||||||
|
GetWholeDiagFlagCount(),
|
||||||
|
GetDateYYZDYXCount(),
|
||||||
|
GetReglistCount()
|
||||||
|
])
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
// 在组件挂载完成后调用getAllApi
|
// 在组件挂载完成后调用getAllApi
|
||||||
onMounted(getAllApi);
|
// onMounted(getAllApi)
|
||||||
|
|
||||||
// 动态切换图片
|
// 动态切换图片
|
||||||
function getImageUrl(name) {
|
function getImageUrl(name) {
|
||||||
@ -312,8 +379,6 @@ function getarrowImageUrl(name) {
|
|||||||
}
|
}
|
||||||
return imageMap[name] || '/static/djjt.jpg' // 默认图片
|
return imageMap[name] || '/static/djjt.jpg' // 默认图片
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.menu-button {
|
.menu-button {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div class="ultrasound-report">
|
<div class="ultrasound-report">
|
||||||
<el-row style="font-size: 14px">
|
<el-row style="font-size: 14px">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<h2 class="ml-6px">科右前旗康立寿医院</h2>
|
<h2 class="ml-6px">{{ orgInfo?.orgName }}</h2>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<h2 style="text-align: right" class="mr-6px">CT检查报告单</h2>
|
<h2 style="text-align: right" class="mr-6px">CT检查报告单</h2>
|
||||||
@ -75,6 +75,8 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { formatDate } from '@/utils/formatTime'
|
import { formatDate } from '@/utils/formatTime'
|
||||||
|
import { getUserProfile } from '@/api/system/user/profile'
|
||||||
|
import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics'
|
||||||
|
|
||||||
defineOptions({ name: 'ReportInfoCT' })
|
defineOptions({ name: 'ReportInfoCT' })
|
||||||
/*
|
/*
|
||||||
@ -109,6 +111,7 @@ const infoParams = defineProps({
|
|||||||
})
|
})
|
||||||
|
|
||||||
/** 数据内容 **/
|
/** 数据内容 **/
|
||||||
|
const orgInfo = ref<any>('')
|
||||||
const VITE_BASE_URL_YunJiaoPian = ref(import.meta.env.VITE_BASE_URL_YunJiaoPian)
|
const VITE_BASE_URL_YunJiaoPian = ref(import.meta.env.VITE_BASE_URL_YunJiaoPian)
|
||||||
|
|
||||||
const age = computed(() => {
|
const age = computed(() => {
|
||||||
@ -130,7 +133,11 @@ const age = computed(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
/** 钩子方法 **/
|
/** 钩子方法 **/
|
||||||
onMounted(async () => {})
|
onMounted(async () => {
|
||||||
|
let userInfo = await getUserProfile()
|
||||||
|
if (userInfo && userInfo.orgId)
|
||||||
|
orgInfo.value = await ReportPrintStatisticsApi.getOrg(userInfo.orgId.trim())
|
||||||
|
})
|
||||||
|
|
||||||
/** 导出内容 **/
|
/** 导出内容 **/
|
||||||
/**
|
/**
|
||||||
|
@ -0,0 +1,224 @@
|
|||||||
|
<template>
|
||||||
|
<div class="ultrasound-report">
|
||||||
|
<h2>病理样本报告单</h2>
|
||||||
|
<hr />
|
||||||
|
<div style="margin: 4px 6px">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="7">门诊号:{{ infoParams.regId }}</el-col>
|
||||||
|
<el-col :span="5">姓名:{{ infoParams.pname }}</el-col>
|
||||||
|
<el-col :span="6">性别:{{ infoParams.gender }}</el-col>
|
||||||
|
<el-col :span="6">年龄:{{ age }}岁</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">检查号:{{ infoParams.examId }}</el-col>
|
||||||
|
<el-col :span="12">设备:{{ infoParams.deviceName }}</el-col>
|
||||||
|
<el-col :span="12" v-if="false">检查项目:{{ infoParams.examItemName }}</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">送检科室:{{ infoParams.billDoctorDepartment }}</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="patient-info" v-if="false">
|
||||||
|
<p class="info-item">门诊号:{{ infoParams.regId }}</p>
|
||||||
|
<p class="info-item">姓名:{{ infoParams.pname }}</p>
|
||||||
|
<p class="info-item">性别:{{ infoParams.gender }}</p>
|
||||||
|
<p class="info-item">年龄:{{ age }}岁</p>
|
||||||
|
<p class="info-item">检查号:{{ infoParams.examId }}</p>
|
||||||
|
<p class="info-item">检查项目:{{ infoParams.examItemName }}</p>
|
||||||
|
<p class="info-item">设备:{{ infoParams.deviceName }}</p>
|
||||||
|
<p class="info-item">送检科室:{{ infoParams.billDoctorDepartment }}</p>
|
||||||
|
</div>
|
||||||
|
<hr />
|
||||||
|
<h3>肉眼所见:</h3>
|
||||||
|
<div class="image-gallery">
|
||||||
|
<div v-for="image in reportimages" :key="image.id">
|
||||||
|
<img alt="" style="width: 140px; height: 140px" :src="image.imgUrl" v-if="false" />
|
||||||
|
<div style="flex: 1; height: 100%; margin-left: 6px; margin-right: 6px">
|
||||||
|
<el-image
|
||||||
|
alt=""
|
||||||
|
fit="fill"
|
||||||
|
loading="eager"
|
||||||
|
style="width: 99%; height: 99%"
|
||||||
|
:src="image.imgUrl"
|
||||||
|
:preview-src-list="[image.imgUrl]"
|
||||||
|
v-if="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="ultrasound-findings">
|
||||||
|
<h3>标本名称:</h3>
|
||||||
|
<p>{{ infoParams.examItemName }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="ultrasound-findings">
|
||||||
|
<h3>病理所见:</h3>
|
||||||
|
<p>{{ infoParams.examDescription }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="ultrasound-recommendation">
|
||||||
|
<h3>病理结论:</h3>
|
||||||
|
<p>{{ infoParams.diagResults }}</p>
|
||||||
|
</div>
|
||||||
|
<div style="width: 94%; position: absolute; bottom: 20px; right: 20px">
|
||||||
|
<div style="text-align: center" v-if="infoParams.showQRcode">
|
||||||
|
<Qrcode
|
||||||
|
:text="
|
||||||
|
VITE_BASE_URL_YunJiaoPian + '?no=' + infoParams.regId + '&orgId=' + infoParams.orgId
|
||||||
|
"
|
||||||
|
:width="90"
|
||||||
|
/>
|
||||||
|
<div class="-mt-6px mb-1px" style="font-size: 11px">扫码查看云胶片</div>
|
||||||
|
</div>
|
||||||
|
<p v-if="false" style="text-align: right">医生签名:{{ infoParams.reviewDoctor }}</p>
|
||||||
|
<hr />
|
||||||
|
<el-row style="font-size: 14px">
|
||||||
|
<el-col :span="6" class="pl-6px">报告医师:{{ infoParams.diagDoctor }}</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
报告日期:{{ formatDate(infoParams.diagDate as unknown as Date, 'YYYY-MM-DD') }}
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">审核医师:{{ infoParams.reviewDoctor }}</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
审核日期:{{ formatDate(infoParams.reviewDate as unknown as Date, 'YYYY-MM-DD') }}
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<div style="font-size: 11px; text-align: center; margin-top: 16px; margin-bottom: -14px">
|
||||||
|
本报告只作临床参考,不作证明材料
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { formatDate } from '@/utils/formatTime'
|
||||||
|
import { ultrasoniccomApi } from '@/api/ultrasoniccom'
|
||||||
|
|
||||||
|
defineOptions({ name: 'ReportInfoPathology' })
|
||||||
|
/*
|
||||||
|
* 李传洋
|
||||||
|
* ReportInfoPathology
|
||||||
|
**/
|
||||||
|
/** 导入内容 **/
|
||||||
|
const infoParams = defineProps({
|
||||||
|
showQRcode: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
required: false
|
||||||
|
},
|
||||||
|
id: String,
|
||||||
|
examId: String,
|
||||||
|
regId: String,
|
||||||
|
orgId: String,
|
||||||
|
pname: String,
|
||||||
|
gender: String,
|
||||||
|
birthday: String,
|
||||||
|
billDoctorDepartment: String,
|
||||||
|
applicationDate: String,
|
||||||
|
examDescription: String,
|
||||||
|
diagResults: String,
|
||||||
|
examItemName: String,
|
||||||
|
deviceName: String,
|
||||||
|
deviceType: String,
|
||||||
|
diagDoctor: String,
|
||||||
|
diagDate: String,
|
||||||
|
reviewDoctor: String,
|
||||||
|
reviewDate: String
|
||||||
|
})
|
||||||
|
|
||||||
|
/** 数据内容 **/
|
||||||
|
const VITE_BASE_URL_YunJiaoPian = ref(import.meta.env.VITE_BASE_URL_YunJiaoPian)
|
||||||
|
|
||||||
|
const age = computed(() => {
|
||||||
|
let birthdate = infoParams.birthday
|
||||||
|
if (!birthdate) {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
const today = new Date()
|
||||||
|
const birth = new Date(birthdate)
|
||||||
|
let yearsDiff = today.getFullYear() - birth.getFullYear()
|
||||||
|
// Check if the birthday hasn't occurred yet this year
|
||||||
|
const hasBirthdayPassed =
|
||||||
|
today.getMonth() > birth.getMonth() ||
|
||||||
|
(today.getMonth() === birth.getMonth() && today.getDate() >= birth.getDate())
|
||||||
|
if (!hasBirthdayPassed) {
|
||||||
|
yearsDiff--
|
||||||
|
}
|
||||||
|
return yearsDiff
|
||||||
|
})
|
||||||
|
|
||||||
|
const reportimages = ref<any[]>([])
|
||||||
|
const loadimage = async (orgId: string, regId: string) => {
|
||||||
|
reportimages.value = []
|
||||||
|
const imageslist = await ultrasoniccomApi.getpathologyimglist(orgId, regId, '1')
|
||||||
|
reportimages.value = imageslist
|
||||||
|
}
|
||||||
|
watch(
|
||||||
|
[() => infoParams.orgId, () => infoParams.regId],
|
||||||
|
([orgIdNew, regIdNew], [orgIdOld, regIdOld]) => {
|
||||||
|
console.log(orgIdOld == null, regIdOld == null)
|
||||||
|
loadimage(orgIdNew ? orgIdNew : '', regIdNew ? regIdNew : '')
|
||||||
|
},
|
||||||
|
{ deep: true }
|
||||||
|
)
|
||||||
|
|
||||||
|
/** 钩子方法 **/
|
||||||
|
onMounted(async () => {
|
||||||
|
loadimage(infoParams.orgId ? infoParams.orgId : '', infoParams.regId ? infoParams.regId : '')
|
||||||
|
})
|
||||||
|
|
||||||
|
/** 导出内容 **/
|
||||||
|
/**
|
||||||
|
* 备注:
|
||||||
|
*
|
||||||
|
* **/
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
/*** 报告单 ***/
|
||||||
|
.ultrasound-report {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
width: 94%;
|
||||||
|
margin: 3px auto;
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 8px;
|
||||||
|
position: relative;
|
||||||
|
min-height: 750px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ultrasound-report h1,
|
||||||
|
.ultrasound-report h2 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.patient-info {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.patient-info p {
|
||||||
|
font-size: 14px;
|
||||||
|
margin: 4px 6px;
|
||||||
|
min-width: calc(25% - 2 * 6px - 2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ultrasound-recommendation {
|
||||||
|
margin-bottom: 180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ultrasound-findings p,
|
||||||
|
.ultrasound-recommendation p {
|
||||||
|
font-size: 16px;
|
||||||
|
margin: 5px 2px 5px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ultrasound-findings h3,
|
||||||
|
.ultrasound-recommendation h3 {
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-gallery {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
</style>
|
@ -416,6 +416,9 @@
|
|||||||
<template v-if="reportInfoType == 'ct'">
|
<template v-if="reportInfoType == 'ct'">
|
||||||
<ReportInfoCT v-bind="{ ...infoParams, showQRcode }" class="page-item" />
|
<ReportInfoCT v-bind="{ ...infoParams, showQRcode }" class="page-item" />
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="reportInfoType == 'csh1'">
|
||||||
|
<ReportInfoPathology v-bind="{ ...infoParams, showQRcode }" class="page-item" />
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-bottom: 40px"></div>
|
<div style="margin-bottom: 40px"></div>
|
||||||
</div>
|
</div>
|
||||||
@ -453,6 +456,11 @@
|
|||||||
v-if="item.deviceType && item.deviceType.trim().toLowerCase() == 'us'"
|
v-if="item.deviceType && item.deviceType.trim().toLowerCase() == 'us'"
|
||||||
class="page-item"
|
class="page-item"
|
||||||
/>
|
/>
|
||||||
|
<ReportInfoPathology
|
||||||
|
v-bind="{ ...item, showQRcode }"
|
||||||
|
v-else-if="item.deviceType && item.deviceType.trim().toLowerCase() == 'csh1'"
|
||||||
|
class="page-item"
|
||||||
|
/>
|
||||||
<ReportInfoCT v-bind="{ ...item, showQRcode }" v-else class="page-item" />
|
<ReportInfoCT v-bind="{ ...item, showQRcode }" v-else class="page-item" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
@ -473,6 +481,7 @@ import { getUserProfile } from '@/api/system/user/profile'
|
|||||||
import { ElLoading } from 'element-plus'
|
import { ElLoading } from 'element-plus'
|
||||||
import ReportInfoCT from './ReportInfoCT.vue'
|
import ReportInfoCT from './ReportInfoCT.vue'
|
||||||
import ReportInfoUS from './ReportInfoUS.vue'
|
import ReportInfoUS from './ReportInfoUS.vue'
|
||||||
|
import ReportInfoPathology from './ReportInfoPathology.vue'
|
||||||
|
|
||||||
defineOptions({ name: 'ReportPrintStatistics' })
|
defineOptions({ name: 'ReportPrintStatistics' })
|
||||||
/*
|
/*
|
||||||
@ -683,6 +692,8 @@ const handleRowClick = async (row) => {
|
|||||||
examItemNameEdit.value = row.examItemName
|
examItemNameEdit.value = row.examItemName
|
||||||
examItemNameEditShow.value = true
|
examItemNameEditShow.value = true
|
||||||
if (row.deviceType && row.deviceType.trim().toLowerCase() == 'us') reportInfoType.value = 'us'
|
if (row.deviceType && row.deviceType.trim().toLowerCase() == 'us') reportInfoType.value = 'us'
|
||||||
|
else if (row.deviceType && row.deviceType.trim().toLowerCase() == 'csh1')
|
||||||
|
reportInfoType.value = 'csh1'
|
||||||
else reportInfoType.value = 'ct'
|
else reportInfoType.value = 'ct'
|
||||||
}
|
}
|
||||||
await showQRcodeSet()
|
await showQRcodeSet()
|
||||||
|
@ -18,37 +18,38 @@
|
|||||||
v-if="dataLoaded"
|
v-if="dataLoaded"
|
||||||
frameborder="0"
|
frameborder="0"
|
||||||
scrolling="no"
|
scrolling="no"
|
||||||
style="width: 100%; height: 87vh"
|
style="width: 100%; height: 87vh; margin-right: 14px"
|
||||||
:src="newSrc"
|
:src="newSrc"
|
||||||
></iframe>
|
></iframe>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="报告单" name="second">
|
<el-tab-pane label="报告单" name="second">
|
||||||
<!-- 外层 Flex 容器 -->
|
<el-scrollbar height="80vh">
|
||||||
<div style="display: flex; height: 100%">
|
<div style="display: flex">
|
||||||
<!-- 模版区域 -->
|
<!-- 模版区域 -->
|
||||||
<div style="flex: 1; min-width: 0; overflow: auto">
|
<div style="flex: 1; min-width: 0; border: 1px solid rgb(220, 223, 230)">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="fordevicemValue"
|
v-model="fordevicemValue"
|
||||||
placeholder="请选择模版类别"
|
placeholder="请选择模版类别"
|
||||||
clearable
|
clearable
|
||||||
@change="handleselectchange"
|
@change="handleselectchange"
|
||||||
@clear="selectclear"
|
@clear="selectclear"
|
||||||
|
style="width: 100%"
|
||||||
>
|
>
|
||||||
<el-option label="门诊" value="门诊模版" />
|
<el-option label="门诊" value="门诊模版" />
|
||||||
<el-option label="住院" value="住院模版" />
|
<el-option label="住院" value="住院模版" />
|
||||||
<el-option label="体检" value="体检模版" />
|
<el-option label="体检" value="体检模版" />
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<el-tabs type="border-card" style="height: 83vh; overflow: auto">
|
<el-tabs type="border-card" style="border: none">
|
||||||
<el-tab-pane label="通用模版">
|
<el-tab-pane label="通用模版">
|
||||||
<!-- 树 -->
|
<el-scrollbar height="114vh" style="border: 2px solid rgb(220, 223, 230)">
|
||||||
<el-tree
|
<el-tree
|
||||||
style="min-width: 195px"
|
style="padding-top: 15px; padding-bottom: 20px; min-width: 195px"
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
class="treeStyle"
|
class="treeStyle"
|
||||||
:check-on-click-node="true"
|
:check-on-click-node="true"
|
||||||
:highlight-current="true"
|
:highlight-current="true"
|
||||||
:default-expand-all="false"
|
:default-expand-all="true"
|
||||||
:data="treeData"
|
:data="treeData"
|
||||||
:props="treeDefaultProps"
|
:props="treeDefaultProps"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
@ -58,16 +59,17 @@
|
|||||||
ref="selectTree"
|
ref="selectTree"
|
||||||
:expand-on-click-node="false"
|
:expand-on-click-node="false"
|
||||||
/>
|
/>
|
||||||
|
</el-scrollbar>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="私有模版">
|
<el-tab-pane label="私有模版">
|
||||||
<!-- 树 -->
|
<el-scrollbar height="114vh" style="border: 2px solid rgb(220, 223, 230)">
|
||||||
<el-tree
|
<el-tree
|
||||||
style="min-width: 195px"
|
style="padding-top: 15px; padding-bottom: 20px; min-width: 195px"
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
class="treeStyle"
|
class="treeStyle"
|
||||||
:check-on-click-node="true"
|
:check-on-click-node="true"
|
||||||
:highlight-current="true"
|
:highlight-current="true"
|
||||||
:default-expand-all="false"
|
:default-expand-all="true"
|
||||||
:data="privateData"
|
:data="privateData"
|
||||||
:props="treeDefaultProps"
|
:props="treeDefaultProps"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
@ -77,84 +79,94 @@
|
|||||||
ref="priselectTree"
|
ref="priselectTree"
|
||||||
:expand-on-click-node="false"
|
:expand-on-click-node="false"
|
||||||
/>
|
/>
|
||||||
|
</el-scrollbar>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
<!-- 用户信息区域 -->
|
<!-- 用户信息区域 -->
|
||||||
<div style="flex: 3; min-width: 0">
|
<div
|
||||||
|
style="
|
||||||
|
flex: 3;
|
||||||
|
min-width: 0;
|
||||||
|
border: 1px solid rgb(220, 223, 230);
|
||||||
|
padding: 10px 14px 12px 2px;
|
||||||
|
margin-left: 6px;
|
||||||
|
margin-right: 14px;
|
||||||
|
"
|
||||||
|
>
|
||||||
<label style="font-size: 18px; font-weight: bold; margin-left: 50px">患者信息</label>
|
<label style="font-size: 18px; font-weight: bold; margin-left: 50px">患者信息</label>
|
||||||
<el-divider />
|
<el-divider />
|
||||||
<el-form
|
<el-form
|
||||||
:model="applyFormVO"
|
:model="applyFormVO"
|
||||||
label-width="auto"
|
label-width="96px"
|
||||||
style="max-width: 1000px; margin: auto"
|
style="max-width: 1000px; margin-left: 28px"
|
||||||
:inline="true"
|
:inline="false"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-form-item label="检查号" style="font-weight: bold" label-width="110px">
|
<el-form-item label="检查号" style="font-weight: bold">
|
||||||
<el-input v-model="applyFormVO.examId" style="width: 220px" :disabled="true" />
|
<el-input v-model="applyFormVO.examId" style="width: 100%" :disabled="true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="姓名" style="font-weight: bold" label-width="130px">
|
<el-form-item label="姓名" style="font-weight: bold">
|
||||||
<el-input v-model="applyFormVO.pname" style="width: 220px" :disabled="true" />
|
<el-input v-model="applyFormVO.pname" style="width: 100%" :disabled="true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="9">
|
<el-col :span="9">
|
||||||
<el-form-item label="性别" style="font-weight: bold" label-width="160px">
|
<el-form-item label="性别" style="font-weight: bold">
|
||||||
<el-input v-model="applyFormVO.gender" style="width: 220px" :disabled="true" />
|
<el-input v-model="applyFormVO.gender" style="width: 100%" :disabled="true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-form-item label="出生日期" style="font-weight: bold" label-width="110px">
|
<el-form-item label="出生日期" style="font-weight: bold">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="applyFormVO.birthday"
|
v-model="applyFormVO.birthday"
|
||||||
type="date"
|
type="date"
|
||||||
placeholder="出生日期"
|
placeholder="出生日期"
|
||||||
size="default"
|
size="default"
|
||||||
style="width: 220px"
|
style="width: 100%"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="检查时间" style="font-weight: bold" label-width="130px">
|
<el-form-item label="检查时间" style="font-weight: bold">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="applyFormVO.examDate"
|
v-model="applyFormVO.examDate"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
placeholder="检查时间"
|
placeholder="检查时间"
|
||||||
size="default"
|
size="default"
|
||||||
style="width: 220px"
|
style="width: 100%"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="9">
|
||||||
<el-form-item label="送检科室" style="font-weight: bold" label-width="160px">
|
<el-form-item label="送检科室" style="font-weight: bold">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="applyFormVO.billDoctorDepartment"
|
v-model="applyFormVO.billDoctorDepartment"
|
||||||
style="width: 220px"
|
style="width: 100%"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-form-item label="申请时间" style="font-weight: bold" label-width="110px">
|
<el-form-item label="申请时间" style="font-weight: bold">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="applyFormVO.applicationDate"
|
v-model="applyFormVO.applicationDate"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
placeholder="检查时间"
|
placeholder="检查时间"
|
||||||
size="default"
|
size="default"
|
||||||
style="width: 220px"
|
style="width: 100%"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="申请单号" style="font-weight: bold" label-width="130px">
|
<el-form-item label="申请单号" style="font-weight: bold">
|
||||||
<el-input v-model="applyFormVO.regId" style="width: 220px" :disabled="true" />
|
<el-input v-model="applyFormVO.regId" style="width: 100%" :disabled="true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
@ -175,6 +187,7 @@
|
|||||||
style="width: 95%; font-size: 20px; margin-left: 40px; margin-bottom: 6px"
|
style="width: 95%; font-size: 20px; margin-left: 40px; margin-bottom: 6px"
|
||||||
:rows="1"
|
:rows="1"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
|
placeholder="检查项目"
|
||||||
/>
|
/>
|
||||||
<label style="font-size: 18px; font-weight: bold; margin-left: 50px">影像所见</label>
|
<label style="font-size: 18px; font-weight: bold; margin-left: 50px">影像所见</label>
|
||||||
<el-divider />
|
<el-divider />
|
||||||
@ -205,7 +218,7 @@
|
|||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
margin-bottom: 6px;
|
margin-bottom: 6px;
|
||||||
"
|
"
|
||||||
placeholder=""
|
placeholder="报告备注"
|
||||||
/>
|
/>
|
||||||
<el-divider />
|
<el-divider />
|
||||||
|
|
||||||
@ -222,7 +235,11 @@
|
|||||||
<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 v-model="applyFormVO.diagDoctor" style="width: 180px" :disabled="true" />
|
<el-input
|
||||||
|
v-model="applyFormVO.diagDoctor"
|
||||||
|
style="width: 180px"
|
||||||
|
:disabled="true"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="审核医生" class="form-item">
|
<el-form-item label="审核医生" class="form-item">
|
||||||
<el-input
|
<el-input
|
||||||
@ -241,47 +258,44 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="position: absolute; bottom: 0; right: 0">
|
<div style="text-align: right">
|
||||||
<el-button
|
|
||||||
type="success"
|
|
||||||
plain
|
|
||||||
style="
|
|
||||||
width: 80px;
|
|
||||||
float: right;
|
|
||||||
margin-right: 15px;
|
|
||||||
margin-top: 30px;
|
|
||||||
background-color: rgba(56, 119, 246, 1);
|
|
||||||
font-size: 14;
|
|
||||||
color: rgb(255, 255, 255);
|
|
||||||
"
|
|
||||||
@click="save"
|
|
||||||
:disabled="savedisabled"
|
|
||||||
>保存</el-button
|
|
||||||
>
|
|
||||||
<!-- v-show="examinedisabled" -->
|
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
plain
|
plain
|
||||||
v-show="examinedisabled"
|
v-show="examinedisabled"
|
||||||
style="
|
style="
|
||||||
width: 80px;
|
width: 80px;
|
||||||
float: right;
|
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
margin-top: 30px;
|
|
||||||
background-color: rgba(56, 119, 246, 1);
|
background-color: rgba(56, 119, 246, 1);
|
||||||
font-size: 14;
|
font-size: 14;
|
||||||
color: rgb(255, 255, 255);
|
color: rgb(255, 255, 255);
|
||||||
"
|
"
|
||||||
@click="examine"
|
@click="examine"
|
||||||
>审核</el-button
|
|
||||||
>
|
>
|
||||||
|
审核
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
style="
|
||||||
|
width: 80px;
|
||||||
|
margin-right: 15px;
|
||||||
|
background-color: rgba(56, 119, 246, 1);
|
||||||
|
font-size: 14;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
"
|
||||||
|
@click="save"
|
||||||
|
:disabled="savedisabled"
|
||||||
|
>
|
||||||
|
保存
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</el-scrollbar>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- </Dialog> -->
|
|
||||||
<!-- 弹窗-->
|
<!-- 弹窗-->
|
||||||
<el-dialog v-model="dialogTableVisible" title="选择结论添加方式" width="320" align-center>
|
<el-dialog v-model="dialogTableVisible" title="选择结论添加方式" width="320" align-center>
|
||||||
<div>
|
<div>
|
||||||
@ -323,7 +337,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示
|
|||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO)
|
const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO)
|
||||||
const savedisabled = ref(true) //保存按钮是否可用
|
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) //是否加载影像标签
|
||||||
@ -404,8 +418,6 @@ const examine = async () => {
|
|||||||
const response = await PatientexamlistApi.examine(ID.toString())
|
const response = await PatientexamlistApi.examine(ID.toString())
|
||||||
if (response) {
|
if (response) {
|
||||||
message.alertSuccess('审核成功')
|
message.alertSuccess('审核成功')
|
||||||
|
|
||||||
//查询患者信息 根据ID
|
|
||||||
getPatientexamlist(ID)
|
getPatientexamlist(ID)
|
||||||
emit('success')
|
emit('success')
|
||||||
}
|
}
|
||||||
@ -694,7 +706,12 @@ const getPatientexamlist = async (id: number) => {
|
|||||||
notes.value = applyFormVO.value.notes
|
notes.value = applyFormVO.value.notes
|
||||||
calculateAge(applyFormVO.value.birthday)
|
calculateAge(applyFormVO.value.birthday)
|
||||||
|
|
||||||
if (applyFormVO.value.reportstatus == '已分检' || applyFormVO.value.reportstatus == '待分析') {
|
if (
|
||||||
|
applyFormVO.value.reportstatus &&
|
||||||
|
(applyFormVO.value.reportstatus == '已分析' ||
|
||||||
|
applyFormVO.value.reportstatus == '已分检' ||
|
||||||
|
applyFormVO.value.reportstatus == '待分析')
|
||||||
|
) {
|
||||||
savedisabled.value = false
|
savedisabled.value = false
|
||||||
} else {
|
} else {
|
||||||
savedisabled.value = true
|
savedisabled.value = true
|
||||||
@ -742,7 +759,7 @@ const resetForm = () => {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped>
|
||||||
/* .my-container-yx {
|
/* .my-container-yx {
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
|
@ -6,7 +6,15 @@
|
|||||||
:fullscreen="true"
|
:fullscreen="true"
|
||||||
:close-on-press-escape="false"
|
:close-on-press-escape="false"
|
||||||
>
|
>
|
||||||
<el-tabs v-model="activeName" type="card">
|
<el-tabs
|
||||||
|
@tab-click="
|
||||||
|
(tabpane) => {
|
||||||
|
if (tabpane.props.name == 'second') loadimage()
|
||||||
|
}
|
||||||
|
"
|
||||||
|
v-model="activeName"
|
||||||
|
type="card"
|
||||||
|
>
|
||||||
<el-tab-pane v-if="tagLoaded" label="影像" name="first">
|
<el-tab-pane v-if="tagLoaded" label="影像" name="first">
|
||||||
<el-scrollbar height="80vh">
|
<el-scrollbar height="80vh">
|
||||||
<iframe
|
<iframe
|
||||||
@ -14,7 +22,7 @@
|
|||||||
frameborder="0"
|
frameborder="0"
|
||||||
scrolling="no"
|
scrolling="no"
|
||||||
:src="newSrc"
|
:src="newSrc"
|
||||||
style="width: 100%; height: 104vh; margin-right: 14px"
|
style="width: 100%; height: 87vh; margin-right: 14px"
|
||||||
></iframe>
|
></iframe>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
@ -495,7 +503,7 @@ let selecteimagedoneid: number = 0
|
|||||||
let selecteimagedtwoid: number = 0
|
let selecteimagedtwoid: number = 0
|
||||||
let selecteimagedthreeid: number = 0
|
let selecteimagedthreeid: number = 0
|
||||||
const handleLoad = (id: string) => {
|
const handleLoad = (id: string) => {
|
||||||
if (applyFormVO.value.reportstatus == '已分析' || applyFormVO.value.reportstatus == '已审核') {
|
if (applyFormVO.value.reportstatus && applyFormVO.value.reportstatus == '已审核') {
|
||||||
isImageLoaded.value = false
|
isImageLoaded.value = false
|
||||||
isImageLoaded2.value = false
|
isImageLoaded2.value = false
|
||||||
isImageLoaded3.value = false
|
isImageLoaded3.value = false
|
||||||
@ -543,6 +551,7 @@ const deleteimage = (flag: string) => {
|
|||||||
}
|
}
|
||||||
const upimageselect = async () => {
|
const upimageselect = async () => {
|
||||||
try {
|
try {
|
||||||
|
updateexamineimage.value = []
|
||||||
updateexamineimage.value.push({
|
updateexamineimage.value.push({
|
||||||
id: selecteimagedoneid.toString(),
|
id: selecteimagedoneid.toString(),
|
||||||
isDelete: '',
|
isDelete: '',
|
||||||
@ -577,12 +586,15 @@ const loadimage = async () => {
|
|||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
selecteimagedone.value = image.imgUrl
|
selecteimagedone.value = image.imgUrl
|
||||||
|
selecteimagedoneid = image.id
|
||||||
break
|
break
|
||||||
case 1:
|
case 1:
|
||||||
selecteimagedtwo.value = image.imgUrl
|
selecteimagedtwo.value = image.imgUrl
|
||||||
|
selecteimagedtwoid = image.id
|
||||||
break
|
break
|
||||||
case 2:
|
case 2:
|
||||||
selecteimagedthree.value = image.imgUrl
|
selecteimagedthree.value = image.imgUrl
|
||||||
|
selecteimagedthreeid = image.id
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -605,8 +617,8 @@ const dataLoaded = ref(false) //是否加载网页
|
|||||||
const tagLoaded = ref(true) //是否加载影像标签
|
const tagLoaded = ref(true) //是否加载影像标签
|
||||||
const newSrc = ref('') //内嵌网页加载增加时间戳 防止缓存
|
const newSrc = ref('') //内嵌网页加载增加时间戳 防止缓存
|
||||||
//报告单
|
//报告单
|
||||||
const savedisabled = ref(true) //保存按钮是否可用
|
const savedisabled = ref(false) //保存按钮是否可用
|
||||||
const examinedisabled = ref(false) //审核按钮是否可见
|
const examinedisabled = ref(true) //审核按钮是否可见
|
||||||
const fordevicemValue = ref('') //下拉模版类别
|
const fordevicemValue = ref('') //下拉模版类别
|
||||||
//报告单(树相关)
|
//报告单(树相关)
|
||||||
const formLoading = ref(false)
|
const formLoading = ref(false)
|
||||||
@ -656,7 +668,7 @@ const resetForm = () => {
|
|||||||
const getlogininfo = async () => {
|
const getlogininfo = async () => {
|
||||||
Profilevo.value = await getUserProfile()
|
Profilevo.value = await getUserProfile()
|
||||||
console.log('审核是否可见' + Profilevo.value.isimageexamine)
|
console.log('审核是否可见' + Profilevo.value.isimageexamine)
|
||||||
if (Profilevo.value.isimageexamine === '1') {
|
if (false && Profilevo.value.isimageexamine === '1') {
|
||||||
examinedisabled.value = true
|
examinedisabled.value = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -677,12 +689,17 @@ const getPatientexamlist = async (id: number) => {
|
|||||||
notes.value = applyFormVO.value.notes
|
notes.value = applyFormVO.value.notes
|
||||||
calculateAge(applyFormVO.value.birthday)
|
calculateAge(applyFormVO.value.birthday)
|
||||||
|
|
||||||
if (applyFormVO.value.reportstatus == '已分检' || applyFormVO.value.reportstatus == '待分析') {
|
if (
|
||||||
|
applyFormVO.value.reportstatus &&
|
||||||
|
(applyFormVO.value.reportstatus == '已分析' ||
|
||||||
|
applyFormVO.value.reportstatus == '已分检' ||
|
||||||
|
applyFormVO.value.reportstatus == '待分析')
|
||||||
|
) {
|
||||||
savedisabled.value = false
|
savedisabled.value = false
|
||||||
} else {
|
} else {
|
||||||
loadimage()
|
|
||||||
savedisabled.value = true
|
savedisabled.value = true
|
||||||
}
|
}
|
||||||
|
loadimage()
|
||||||
}
|
}
|
||||||
|
|
||||||
const age = ref()
|
const age = ref()
|
||||||
@ -726,7 +743,9 @@ const iframeData = async () => {
|
|||||||
localStorage.setItem('data', localStorageData)
|
localStorage.setItem('data', localStorageData)
|
||||||
localStorage.removeItem('regid_pathology')
|
localStorage.removeItem('regid_pathology')
|
||||||
localStorage.setItem('regid_pathology', regId.value)
|
localStorage.setItem('regid_pathology', regId.value)
|
||||||
const Src = `/static/dicom/dicomViewPc1.html?method=screenshot&t=${new Date().getTime()}`
|
localStorage.removeItem('orgId_pathology')
|
||||||
|
localStorage.setItem('orgId_pathology', orgId.value)
|
||||||
|
const Src = `/static/dicom/dicomViewPc1.html?method=PathologyView&t=${new Date().getTime()}`
|
||||||
newSrc.value = Src
|
newSrc.value = Src
|
||||||
} else {
|
} else {
|
||||||
// 如果status不是success,可以根据需要处理错误情况
|
// 如果status不是success,可以根据需要处理错误情况
|
||||||
@ -763,7 +782,7 @@ const open = async (id: number, orgid: string, regid: string, examId: string, is
|
|||||||
examid.value = examId
|
examid.value = examId
|
||||||
ID = id
|
ID = id
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
dialogTitle.value = '书写报告(影像)'
|
dialogTitle.value = '书写报告(病理)'
|
||||||
// 提交请求
|
// 提交请求
|
||||||
formLoading.value = true
|
formLoading.value = true
|
||||||
try {
|
try {
|
||||||
@ -786,6 +805,7 @@ const open = async (id: number, orgid: string, regid: string, examId: string, is
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
dataLoaded.value = true // 确保iframe只在弹窗打开时加载
|
dataLoaded.value = true // 确保iframe只在弹窗打开时加载
|
||||||
}, 200)
|
}, 200)
|
||||||
|
if (savedisabled.value == false) getimages('')
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
@ -826,9 +846,6 @@ const save = async () => {
|
|||||||
console.log('data:', response.data)
|
console.log('data:', response.data)
|
||||||
//查询患者信息 根据ID
|
//查询患者信息 根据ID
|
||||||
getPatientexamlist(ID)
|
getPatientexamlist(ID)
|
||||||
isImageLoaded.value = false
|
|
||||||
isImageLoaded2.value = false
|
|
||||||
isImageLoaded3.value = false
|
|
||||||
emit('success')
|
emit('success')
|
||||||
} else {
|
} else {
|
||||||
// 接口调用失败,根据具体情况处理错误
|
// 接口调用失败,根据具体情况处理错误
|
||||||
@ -845,9 +862,11 @@ const examine = async () => {
|
|||||||
const response = await PatientexamlistApi.examine(ID.toString())
|
const response = await PatientexamlistApi.examine(ID.toString())
|
||||||
if (response) {
|
if (response) {
|
||||||
message.alertSuccess('审核成功')
|
message.alertSuccess('审核成功')
|
||||||
|
|
||||||
//查询患者信息 根据ID
|
|
||||||
getPatientexamlist(ID)
|
getPatientexamlist(ID)
|
||||||
|
isImageLoaded.value = false
|
||||||
|
isImageLoaded2.value = false
|
||||||
|
isImageLoaded3.value = false
|
||||||
|
images.value = []
|
||||||
emit('success')
|
emit('success')
|
||||||
}
|
}
|
||||||
} else if (applyFormVO.value.reportstatus === '已审核') {
|
} else if (applyFormVO.value.reportstatus === '已审核') {
|
||||||
@ -1001,7 +1020,7 @@ const PrintForm = () => {
|
|||||||
transition: transform 0.3s ease; /* 添加过渡效果 */
|
transition: transform 0.3s ease; /* 添加过渡效果 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-item:hover {
|
.image-item2:hover {
|
||||||
transform: scale(1.1); /* 放大容器 */
|
transform: scale(1.1); /* 放大容器 */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1011,7 +1030,7 @@ const PrintForm = () => {
|
|||||||
box-shadow: 0 0 10px blue;
|
box-shadow: 0 0 10px blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-item:active {
|
.image-item2:active {
|
||||||
transform: scale(0.9); /* 缩小图像 */
|
transform: scale(0.9); /* 缩小图像 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,22 +22,24 @@
|
|||||||
clearable
|
clearable
|
||||||
@change="handleselectchange"
|
@change="handleselectchange"
|
||||||
@clear="selectclear"
|
@clear="selectclear"
|
||||||
|
style="width: 100%"
|
||||||
>
|
>
|
||||||
<el-option label="门诊" value="门诊模版" />
|
<el-option label="门诊" value="门诊模版" />
|
||||||
<el-option label="住院" value="住院模版" />
|
<el-option label="住院" value="住院模版" />
|
||||||
<el-option label="体检" value="体检模版" />
|
<el-option label="体检" value="体检模版" />
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<el-tabs type="border-card" style="height: 91.4vh;overflow: auto;">
|
<el-tabs type="border-card" style="border: none">
|
||||||
<el-tab-pane label="通用模版">
|
<el-tab-pane label="通用模版">
|
||||||
<!-- 树 -->
|
<!-- 树 -->
|
||||||
|
<el-scrollbar height="114vh" style="border: 2px solid rgb(220, 223, 230)">
|
||||||
<el-tree
|
<el-tree
|
||||||
style="min-width: 195px"
|
style="padding-top: 15px; padding-bottom: 20px; min-width: 195px"
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
class="treeStyle"
|
class="treeStyle"
|
||||||
:check-on-click-node="true"
|
:check-on-click-node="true"
|
||||||
:highlight-current="true"
|
:highlight-current="true"
|
||||||
:default-expand-all="false"
|
:default-expand-all="true"
|
||||||
:data="treeData"
|
:data="treeData"
|
||||||
:props="treeDefaultProps"
|
:props="treeDefaultProps"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
@ -47,16 +49,18 @@
|
|||||||
ref="selectTree"
|
ref="selectTree"
|
||||||
:expand-on-click-node="false"
|
:expand-on-click-node="false"
|
||||||
/>
|
/>
|
||||||
|
</el-scrollbar>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="私有模版">
|
<el-tab-pane label="私有模版">
|
||||||
<!-- 树 -->
|
<!-- 树 -->
|
||||||
|
<el-scrollbar height="114vh" style="border: 2px solid rgb(220, 223, 230)">
|
||||||
<el-tree
|
<el-tree
|
||||||
style="min-width: 195px"
|
style="padding-top: 15px; padding-bottom: 20px; min-width: 195px"
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
class="treeStyle"
|
class="treeStyle"
|
||||||
:check-on-click-node="true"
|
:check-on-click-node="true"
|
||||||
:highlight-current="true"
|
:highlight-current="true"
|
||||||
:default-expand-all="false"
|
:default-expand-all="true"
|
||||||
:data="privateData"
|
:data="privateData"
|
||||||
:props="treeDefaultProps"
|
:props="treeDefaultProps"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
@ -66,49 +70,40 @@
|
|||||||
ref="priselectTree"
|
ref="priselectTree"
|
||||||
:expand-on-click-node="false"
|
:expand-on-click-node="false"
|
||||||
/>
|
/>
|
||||||
|
</el-scrollbar>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
|
<!--用户信息区域-->
|
||||||
<div class="my-middle">
|
<div class="my-middle">
|
||||||
<!--用户信息区域 "-->
|
|
||||||
|
|
||||||
<el-tabs
|
<el-tabs
|
||||||
v-model="activeName"
|
v-model="activeName"
|
||||||
class="demo-tabs"
|
|
||||||
type="border-card"
|
type="border-card"
|
||||||
style="height: 94.4vh"
|
style="border: none; width: 100%"
|
||||||
@tab-click="handleClick"
|
@tab-click="handleClick"
|
||||||
>
|
>
|
||||||
<el-tab-pane label="用户信息" name="first">
|
<el-tab-pane label="用户信息" name="first">
|
||||||
<div class="my-app-container">
|
<div>
|
||||||
<el-form
|
<el-form
|
||||||
:model="applyFormVO"
|
:model="applyFormVO"
|
||||||
label-width="auto"
|
label-width="96px"
|
||||||
style="max-width: 900px"
|
style="max-width: 900px; margin-left: -22px"
|
||||||
:inline="true"
|
:inline="false"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-form-item label="检查号" style="font-weight: bold">
|
<el-form-item label="检查号" style="font-weight: bold">
|
||||||
<el-input
|
<el-input v-model="applyFormVO.examId" style="width: 100%" :disabled="true" />
|
||||||
v-model="applyFormVO.examId"
|
|
||||||
style="width: 190px"
|
|
||||||
:disabled="true"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="姓名" style="font-weight: bold">
|
<el-form-item label="姓名" style="font-weight: bold">
|
||||||
<el-input v-model="applyFormVO.pname" style="width: 190px" :disabled="true" />
|
<el-input v-model="applyFormVO.pname" style="width: 100%" :disabled="true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="9">
|
<el-col :span="9">
|
||||||
<el-form-item label="性别" style="font-weight: bold">
|
<el-form-item label="性别" style="font-weight: bold">
|
||||||
<el-input
|
<el-input v-model="applyFormVO.gender" style="width: 100%" :disabled="true" />
|
||||||
v-model="applyFormVO.gender"
|
|
||||||
style="width: 190px"
|
|
||||||
:disabled="true"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
@ -118,7 +113,7 @@
|
|||||||
type="date"
|
type="date"
|
||||||
placeholder="出生日期"
|
placeholder="出生日期"
|
||||||
size="default"
|
size="default"
|
||||||
style="width: 190px"
|
style="width: 100%"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -130,16 +125,16 @@
|
|||||||
type="datetime"
|
type="datetime"
|
||||||
placeholder="检查时间"
|
placeholder="检查时间"
|
||||||
size="default"
|
size="default"
|
||||||
style="width: 190px"
|
style="width: 100%"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="9">
|
||||||
<el-form-item label="检查项目名称" style="font-weight: bold">
|
<el-form-item label="检查项目" style="font-weight: bold">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="applyFormVO.examItemName"
|
v-model="applyFormVO.examItemName"
|
||||||
style="width: 190px"
|
style="width: 100%"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -152,21 +147,21 @@
|
|||||||
type="datetime"
|
type="datetime"
|
||||||
placeholder="检查时间"
|
placeholder="检查时间"
|
||||||
size="default"
|
size="default"
|
||||||
style="width: 190px"
|
style="width: 100%"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="申请单号" style="font-weight: bold">
|
<el-form-item label="申请单号" style="font-weight: bold">
|
||||||
<el-input v-model="applyFormVO.regId" style="width: 190px" :disabled="true" />
|
<el-input v-model="applyFormVO.regId" style="width: 100%" :disabled="true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="9">
|
||||||
<el-form-item label="送检科室" style="font-weight: bold">
|
<el-form-item label="送检科室" style="font-weight: bold">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="applyFormVO.billDoctorDepartment"
|
v-model="applyFormVO.billDoctorDepartment"
|
||||||
style="width: 190px"
|
style="width: 100%"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -175,6 +170,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<label style="text-align: center; font-size: 17px; font-weight: bold">超声图像</label>
|
||||||
<el-divider />
|
<el-divider />
|
||||||
<!--图片显示区域-->
|
<!--图片显示区域-->
|
||||||
<div class="demo-image">
|
<div class="demo-image">
|
||||||
@ -195,7 +191,6 @@
|
|||||||
:preview-src-list="[selecteimagedone]"
|
:preview-src-list="[selecteimagedone]"
|
||||||
@load="handleLoad('1')"
|
@load="handleLoad('1')"
|
||||||
@error="handleError('1')"
|
@error="handleError('1')"
|
||||||
@dblclick="deleteimage('1')"
|
|
||||||
>
|
>
|
||||||
<template #error>
|
<template #error>
|
||||||
<div class="image-error">
|
<div class="image-error">
|
||||||
@ -255,8 +250,8 @@
|
|||||||
</el-image>
|
</el-image>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
<el-divider />
|
|
||||||
<label style="text-align: center; font-size: 17px; font-weight: bold">检查所见</label>
|
<label style="text-align: center; font-size: 17px; font-weight: bold">检查所见</label>
|
||||||
|
<el-divider />
|
||||||
<el-input
|
<el-input
|
||||||
v-model="sj"
|
v-model="sj"
|
||||||
style="width: 100%; font-size: 19px"
|
style="width: 100%; font-size: 19px"
|
||||||
@ -264,8 +259,8 @@
|
|||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder="检查所见"
|
placeholder="检查所见"
|
||||||
/>
|
/>
|
||||||
<el-divider />
|
|
||||||
<label style="font-size: 17px; font-weight: bold">诊断结论</label>
|
<label style="font-size: 17px; font-weight: bold">诊断结论</label>
|
||||||
|
<el-divider />
|
||||||
<el-input
|
<el-input
|
||||||
v-model="zdjl"
|
v-model="zdjl"
|
||||||
style="width: 100%; font-size: 19px"
|
style="width: 100%; font-size: 19px"
|
||||||
@ -273,9 +268,10 @@
|
|||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder="诊断结论"
|
placeholder="诊断结论"
|
||||||
/>
|
/>
|
||||||
<el-divider />
|
|
||||||
<label style="font-size: 17px; font-weight: bold">报告备注</label>
|
<label style="font-size: 17px; font-weight: bold">报告备注</label>
|
||||||
<el-input v-model="notes" style="width: 100%; font-size: 19px" placeholder="" />
|
<el-divider />
|
||||||
|
<el-input v-model="notes" style="width: 100%; font-size: 19px" placeholder="报告备注" />
|
||||||
|
<el-divider />
|
||||||
<el-radio-group
|
<el-radio-group
|
||||||
v-model="radio1"
|
v-model="radio1"
|
||||||
size="small"
|
size="small"
|
||||||
@ -307,20 +303,36 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-button
|
<div style="text-align: right">
|
||||||
style="width: 80px; float: right; margin-right: 15px; margin-top: 30px ;background-color: rgba(56, 119, 246, 1);font-size: 14; color: rgb(255, 255, 255);"
|
|
||||||
@click="save"
|
|
||||||
:disabled="savedisabled"
|
|
||||||
>保存</el-button
|
|
||||||
>
|
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
plain
|
plain
|
||||||
v-show="examinedisabled"
|
v-show="examinedisabled"
|
||||||
style="width: 80px; float: right; margin-right: 15px; margin-top: 30px;background-color: rgba(56, 119, 246, 1);font-size: 14; color: rgb(255, 255, 255);"
|
style="
|
||||||
|
width: 80px;
|
||||||
|
margin-right: 15px;
|
||||||
|
background-color: rgba(56, 119, 246, 1);
|
||||||
|
font-size: 14;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
"
|
||||||
@click="examine"
|
@click="examine"
|
||||||
>审核</el-button
|
|
||||||
>
|
>
|
||||||
|
审核
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
style="
|
||||||
|
width: 80px;
|
||||||
|
margin-right: 15px;
|
||||||
|
background-color: rgba(56, 119, 246, 1);
|
||||||
|
font-size: 14;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
"
|
||||||
|
@click="save"
|
||||||
|
:disabled="savedisabled"
|
||||||
|
>
|
||||||
|
保存
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="报告" name="report" v-if="false">
|
<el-tab-pane label="报告" name="report" v-if="false">
|
||||||
<!--报告区域-->
|
<!--报告区域-->
|
||||||
@ -363,55 +375,90 @@
|
|||||||
<!--功能区-->
|
<!--功能区-->
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button
|
||||||
style="width: 100px; float: right; background-color: rgba(56, 119, 246, 1);font-size: 14; color: rgb(255, 255, 255);"
|
style="
|
||||||
|
width: 100px;
|
||||||
|
float: right;
|
||||||
|
background-color: rgba(56, 119, 246, 1);
|
||||||
|
font-size: 14;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
"
|
||||||
class="ignore-print"
|
class="ignore-print"
|
||||||
:disabled="formLoading"
|
:disabled="formLoading"
|
||||||
v-print="'my-printMe'"
|
v-print="'my-printMe'"
|
||||||
>打印</el-button
|
|
||||||
>
|
>
|
||||||
|
打印
|
||||||
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
class="ignore-print"
|
class="ignore-print"
|
||||||
style="width: 100px;background-color: rgba(56, 119, 246, 1);font-size: 14; color: rgb(255, 255, 255);"
|
style="
|
||||||
|
width: 100px;
|
||||||
|
background-color: rgba(56, 119, 246, 1);
|
||||||
|
font-size: 14;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
"
|
||||||
:disabled="formLoading"
|
:disabled="formLoading"
|
||||||
@click="() => htmlToPdf.getPdf('超声报告单', '#PDF')"
|
@click="() => htmlToPdf.getPdf('超声报告单', '#PDF')"
|
||||||
>导出PDF</el-button
|
|
||||||
>
|
>
|
||||||
|
导出PDF
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div> </div>
|
<div> </div>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
<div class="my-right" style="border: 1px solid #dcdfe6; height: 94.4vh">
|
|
||||||
<!--图片区域-->
|
<!--图片区域-->
|
||||||
|
<div class="my-right">
|
||||||
<div style="width: 100%">
|
<div style="width: 100%">
|
||||||
<el-button
|
<el-button
|
||||||
style=" background-color: rgb(56, 119, 246); font-size: 14; color: rgb(255, 255, 255) ;width: 100%"
|
style="
|
||||||
@click="upimagedeleteor()"
|
background-color: rgb(56, 119, 246);
|
||||||
:disabled="savedisabled"
|
font-size: 14;
|
||||||
>
|
color: rgb(255, 255, 255);
|
||||||
<el-icon style="margin-right: 10px;"><RefreshLeft/></el-icon>图像删除</el-button
|
width: 100%;
|
||||||
>
|
margin-top: 4px;
|
||||||
</div>
|
margin-bottom: 4px;
|
||||||
<div style="width: 100%">
|
"
|
||||||
<el-button
|
|
||||||
style="background-color: rgb(56, 119, 246); font-size: 14; color: rgb(255, 255, 255) ;width: 100%"
|
|
||||||
@click="getimages('')"
|
@click="getimages('')"
|
||||||
:disabled="savedisabled"
|
:disabled="savedisabled"
|
||||||
>
|
>
|
||||||
<el-icon style="margin-right: 10px;"><DeleteFilled /></el-icon>图像刷新</el-button
|
<el-icon style="margin-right: 10px"><RefreshLeft /></el-icon>
|
||||||
>
|
图像刷新
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%">
|
<div style="width: 100%">
|
||||||
<el-button
|
<el-button
|
||||||
style="background-color: rgb(56, 119, 246); font-size: 14; color: rgb(255, 255, 255) ;width: 100%"
|
style="
|
||||||
|
background-color: rgb(56, 119, 246);
|
||||||
|
font-size: 14;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
"
|
||||||
|
@click="upimagedeleteor()"
|
||||||
|
:disabled="savedisabled"
|
||||||
|
>
|
||||||
|
<el-icon style="margin-right: 10px"><DeleteFilled /></el-icon>
|
||||||
|
图像删除
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%">
|
||||||
|
<el-button
|
||||||
|
style="
|
||||||
|
background-color: rgb(56, 119, 246);
|
||||||
|
font-size: 14;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
"
|
||||||
@click="openvideo"
|
@click="openvideo"
|
||||||
:disabled="savedisabled"
|
:disabled="savedisabled"
|
||||||
>
|
>
|
||||||
<el-icon style="margin-right: 10px;"><VideoCameraFilled/></el-icon>查看视频</el-button
|
<el-icon style="margin-right: 10px"><VideoCameraFilled /></el-icon>
|
||||||
>
|
查看视频
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="image-container image-wrapper image-item-container">
|
<div class="image-container image-wrapper">
|
||||||
<el-image
|
<el-image
|
||||||
class="image-item"
|
class="image-item"
|
||||||
v-for="image in images"
|
v-for="image in images"
|
||||||
@ -423,21 +470,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- </Dialog> -->
|
<!-- </Dialog> -->
|
||||||
<!-- 弹窗-->
|
<!-- 弹窗-->
|
||||||
<el-dialog v-model="dialogTableVisible" title="选择结论添加方式" width="320" align-center>
|
<el-dialog v-model="dialogTableVisible" title="选择结论添加方式" width="320" align-center>
|
||||||
<div>
|
<div>
|
||||||
<el-button @click="handleButtonClick('覆盖')" type="primary" style="font-size: 20px"
|
<el-button @click="handleButtonClick('覆盖')" type="primary" style="font-size: 20px">
|
||||||
>覆盖</el-button
|
覆盖
|
||||||
>
|
</el-button>
|
||||||
<el-button @click="handleButtonClick('追加')" type="success" style="font-size: 20px"
|
<el-button @click="handleButtonClick('追加')" type="success" style="font-size: 20px">
|
||||||
>追加</el-button
|
追加
|
||||||
>
|
</el-button>
|
||||||
<el-button @click="dialogTableVisible = false" type="info" style="font-size: 20px"
|
<el-button @click="dialogTableVisible = false" type="info" style="font-size: 20px">
|
||||||
>关闭</el-button
|
关闭
|
||||||
>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
@ -469,7 +515,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示
|
|||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO)
|
const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO)
|
||||||
const savedisabled = ref(true) //保存按钮是否可用
|
const savedisabled = ref(false) //保存按钮是否可用
|
||||||
const examinedisabled = ref(false) //审核按钮是否可见
|
const examinedisabled = ref(false) //审核按钮是否可见
|
||||||
const isImageLoaded = ref(false) //是否展示图片清除按钮
|
const isImageLoaded = ref(false) //是否展示图片清除按钮
|
||||||
const isImageLoaded2 = ref(false) //是否展示图片清除按钮
|
const isImageLoaded2 = ref(false) //是否展示图片清除按钮
|
||||||
@ -477,7 +523,7 @@ const isImageLoaded3 = ref(false) //是否展示图片清除按钮
|
|||||||
|
|
||||||
// 中间的选择图加载和失败事件
|
// 中间的选择图加载和失败事件
|
||||||
const handleLoad = (id: string) => {
|
const handleLoad = (id: string) => {
|
||||||
if (applyFormVO.value.reportstatus == '已分析' || applyFormVO.value.reportstatus == '已审核') {
|
if (applyFormVO.value.reportstatus && applyFormVO.value.reportstatus == '已审核') {
|
||||||
isImageLoaded.value = false
|
isImageLoaded.value = false
|
||||||
isImageLoaded2.value = false
|
isImageLoaded2.value = false
|
||||||
isImageLoaded3.value = false
|
isImageLoaded3.value = false
|
||||||
@ -576,10 +622,6 @@ const save = async () => {
|
|||||||
console.log('data:', response.data)
|
console.log('data:', response.data)
|
||||||
//查询患者信息 根据ID
|
//查询患者信息 根据ID
|
||||||
getPatientexamlist(ID)
|
getPatientexamlist(ID)
|
||||||
//处理选择的图片
|
|
||||||
isImageLoaded.value = false
|
|
||||||
isImageLoaded2.value = false
|
|
||||||
isImageLoaded3.value = false
|
|
||||||
emit('success')
|
emit('success')
|
||||||
} else {
|
} else {
|
||||||
// 接口调用失败,根据具体情况处理错误
|
// 接口调用失败,根据具体情况处理错误
|
||||||
@ -596,9 +638,12 @@ const examine = async () => {
|
|||||||
const response = await PatientexamlistApi.examine(ID.toString())
|
const response = await PatientexamlistApi.examine(ID.toString())
|
||||||
if (response) {
|
if (response) {
|
||||||
message.alertSuccess('审核成功')
|
message.alertSuccess('审核成功')
|
||||||
|
|
||||||
//查询患者信息 根据ID
|
//查询患者信息 根据ID
|
||||||
getPatientexamlist(ID)
|
getPatientexamlist(ID)
|
||||||
|
isImageLoaded.value = false
|
||||||
|
isImageLoaded2.value = false
|
||||||
|
isImageLoaded3.value = false
|
||||||
|
images.value = []
|
||||||
// 如果是审核或者已分析加载选中的图片
|
// 如果是审核或者已分析加载选中的图片
|
||||||
loadimagelist()
|
loadimagelist()
|
||||||
emit('success')
|
emit('success')
|
||||||
@ -641,8 +686,15 @@ const reportimages = ref<any[]>([])
|
|||||||
//查询图片
|
//查询图片
|
||||||
const getimages = async (type: string) => {
|
const getimages = async (type: string) => {
|
||||||
const imageslist = await ultrasoniccomApi.getimageslist(orgId.value, regId.value, type)
|
const imageslist = await ultrasoniccomApi.getimageslist(orgId.value, regId.value, type)
|
||||||
console.log(imageslist)
|
|
||||||
images.value = imageslist
|
images.value = imageslist
|
||||||
|
//处理choose
|
||||||
|
deleteimageid.value = ''
|
||||||
|
let items = document.querySelectorAll('.image-item')
|
||||||
|
if (items) {
|
||||||
|
items.forEach((item) => {
|
||||||
|
item.classList.remove('image-item-selected')
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 在打开窗体的时候如果他是已经审核的状态或者已经分析的状态 加载选择的三个图片
|
// 在打开窗体的时候如果他是已经审核的状态或者已经分析的状态 加载选择的三个图片
|
||||||
const loadimage = async () => {
|
const loadimage = async () => {
|
||||||
@ -653,12 +705,15 @@ const loadimage = async () => {
|
|||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
selecteimagedone.value = image.imgUrl
|
selecteimagedone.value = image.imgUrl
|
||||||
|
selecteimagedoneid = image.id
|
||||||
break
|
break
|
||||||
case 1:
|
case 1:
|
||||||
selecteimagedtwo.value = image.imgUrl
|
selecteimagedtwo.value = image.imgUrl
|
||||||
|
selecteimagedtwoid = image.id
|
||||||
break
|
break
|
||||||
case 2:
|
case 2:
|
||||||
selecteimagedthree.value = image.imgUrl
|
selecteimagedthree.value = image.imgUrl
|
||||||
|
selecteimagedthreeid = image.id
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -668,8 +723,6 @@ const loadimage = async () => {
|
|||||||
|
|
||||||
// 选择图片
|
// 选择图片
|
||||||
const selectImage = (imageUrl: string, id: number) => {
|
const selectImage = (imageUrl: string, id: number) => {
|
||||||
console.log(imageUrl)
|
|
||||||
console.log(id)
|
|
||||||
if (selecteimagedone.value == '1') {
|
if (selecteimagedone.value == '1') {
|
||||||
selecteimagedone.value = imageUrl
|
selecteimagedone.value = imageUrl
|
||||||
selecteimagedoneid = id
|
selecteimagedoneid = id
|
||||||
@ -704,6 +757,8 @@ const deleteimage = (flag: string) => {
|
|||||||
}
|
}
|
||||||
//更新图片标识方法
|
//更新图片标识方法
|
||||||
const upimageselect = async () => {
|
const upimageselect = async () => {
|
||||||
|
updateexamineimage.value = []
|
||||||
|
|
||||||
updateexamineimage.value.push({
|
updateexamineimage.value.push({
|
||||||
id: selecteimagedoneid.toString(),
|
id: selecteimagedoneid.toString(),
|
||||||
isDelete: '',
|
isDelete: '',
|
||||||
@ -727,10 +782,13 @@ const upimageselect = async () => {
|
|||||||
if (response) {
|
if (response) {
|
||||||
console.log('更新图片标识接口调用成功')
|
console.log('更新图片标识接口调用成功')
|
||||||
}
|
}
|
||||||
|
|
||||||
updateexamineimage.value = []
|
updateexamineimage.value = []
|
||||||
}
|
}
|
||||||
//删除图片
|
//删除图片
|
||||||
const upimagedeleteor = async () => {
|
const upimagedeleteor = async () => {
|
||||||
|
updateexamineimage.value = []
|
||||||
|
|
||||||
updateexamineimage.value.push({
|
updateexamineimage.value.push({
|
||||||
id: deleteimageid.value,
|
id: deleteimageid.value,
|
||||||
isDelete: '1',
|
isDelete: '1',
|
||||||
@ -742,9 +800,10 @@ const upimagedeleteor = async () => {
|
|||||||
if (response) {
|
if (response) {
|
||||||
console.log('删除图片标识接口调用成功')
|
console.log('删除图片标识接口调用成功')
|
||||||
}
|
}
|
||||||
//清空选中ID
|
|
||||||
deleteimageid.value = ''
|
deleteimageid.value = ''
|
||||||
updateexamineimage.value = []
|
updateexamineimage.value = []
|
||||||
|
getimages('')
|
||||||
}
|
}
|
||||||
|
|
||||||
//用户信息的table页
|
//用户信息的table页
|
||||||
@ -767,10 +826,8 @@ const loadimagelist = async () => {
|
|||||||
const imageslist = await ultrasoniccomApi.getimageslist(orgId.value, regId.value, '1')
|
const imageslist = await ultrasoniccomApi.getimageslist(orgId.value, regId.value, '1')
|
||||||
console.log(imageslist)
|
console.log(imageslist)
|
||||||
reportimages.value = imageslist
|
reportimages.value = imageslist
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -835,7 +892,6 @@ const selectclear = async () => {
|
|||||||
}
|
}
|
||||||
const fordevicemData = ref<any[]>([])
|
const fordevicemData = ref<any[]>([])
|
||||||
|
|
||||||
|
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
|
|
||||||
//阴性阳性
|
//阴性阳性
|
||||||
@ -936,14 +992,14 @@ const open = async (id: number, orgid: string, regid: string) => {
|
|||||||
|
|
||||||
//获取登录人信息
|
//获取登录人信息
|
||||||
getlogininfo()
|
getlogininfo()
|
||||||
|
if (savedisabled.value == false) getimages('')
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 打开视频
|
// 打开视频
|
||||||
const videoformRef = ref()
|
const videoformRef = ref()
|
||||||
const openvideo=()=>
|
const openvideo = () => {
|
||||||
{
|
|
||||||
videoformRef.value.open(regId.value)
|
videoformRef.value.open(regId.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -958,13 +1014,17 @@ const getPatientexamlist = async (id: number) => {
|
|||||||
notes.value = applyFormVO.value.notes
|
notes.value = applyFormVO.value.notes
|
||||||
calculateAge(applyFormVO.value.birthday)
|
calculateAge(applyFormVO.value.birthday)
|
||||||
|
|
||||||
if (applyFormVO.value.reportstatus == '已分检' || applyFormVO.value.reportstatus == '待分析') {
|
if (
|
||||||
|
applyFormVO.value.reportstatus &&
|
||||||
|
(applyFormVO.value.reportstatus == '已分析' ||
|
||||||
|
applyFormVO.value.reportstatus == '已分检' ||
|
||||||
|
applyFormVO.value.reportstatus == '待分析')
|
||||||
|
) {
|
||||||
savedisabled.value = false
|
savedisabled.value = false
|
||||||
} else {
|
} else {
|
||||||
//获取选中图
|
|
||||||
loadimage()
|
|
||||||
savedisabled.value = true
|
savedisabled.value = true
|
||||||
}
|
}
|
||||||
|
loadimage()
|
||||||
// 如果是审核或者已分析加载选中的图片
|
// 如果是审核或者已分析加载选中的图片
|
||||||
loadimagelist()
|
loadimagelist()
|
||||||
}
|
}
|
||||||
@ -997,6 +1057,9 @@ const resetForm = () => {
|
|||||||
activeName.value = 'first'
|
activeName.value = 'first'
|
||||||
deleteimageid.value = ''
|
deleteimageid.value = ''
|
||||||
updateexamineimage.value = []
|
updateexamineimage.value = []
|
||||||
|
isImageLoaded.value = false
|
||||||
|
isImageLoaded2.value = false
|
||||||
|
isImageLoaded3.value = false
|
||||||
//第一个图
|
//第一个图
|
||||||
selecteimagedone.value = '1'
|
selecteimagedone.value = '1'
|
||||||
//第二个图
|
//第二个图
|
||||||
@ -1035,10 +1098,9 @@ const chooseImage = (event, id: number) => {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped>
|
||||||
.my-container-cs {
|
.my-container-cs {
|
||||||
display: flex;
|
display: flex;
|
||||||
height: calc(100% - 40px);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* .my-container * {
|
/* .my-container * {
|
||||||
@ -1051,33 +1113,28 @@ const chooseImage = (event, id: number) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.my-left {
|
.my-left {
|
||||||
width: 20%;
|
flex: 28;
|
||||||
background: lightblue;
|
min-width: 0;
|
||||||
height: 91.4vh;
|
border: 1px solid rgb(220, 223, 230);
|
||||||
overflow: auto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-middle {
|
.my-middle {
|
||||||
width: 60%;
|
flex: 58;
|
||||||
margin-left: 2px;
|
min-width: 0;
|
||||||
background: rgb(238, 240, 238);
|
border: 1px solid rgb(220, 223, 230);
|
||||||
height: 94.4vh;
|
margin-left: 6px;
|
||||||
|
margin-right: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-right {
|
.my-right {
|
||||||
width: 20%;
|
flex: 14;
|
||||||
background: rgb(255, 255, 255);
|
min-width: 0;
|
||||||
display: flex;
|
padding-left: 4px;
|
||||||
flex-direction: column;
|
padding-right: 4px;
|
||||||
align-items: flex-start;
|
margin-right: 14px;
|
||||||
height: 91.3vh;
|
border: 1px solid rgb(220, 223, 230);
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-app-container {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
/* 分割线内部的间距 */
|
/* 分割线内部的间距 */
|
||||||
.el-divider--horizontal {
|
.el-divider--horizontal {
|
||||||
margin: 6px;
|
margin: 6px;
|
||||||
@ -1085,6 +1142,7 @@ const chooseImage = (event, id: number) => {
|
|||||||
.demo-image {
|
.demo-image {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.demo-image .el-card:not(:last-child) {
|
.demo-image .el-card:not(:last-child) {
|
||||||
@ -1123,17 +1181,17 @@ const chooseImage = (event, id: number) => {
|
|||||||
transition: transform 0.3s ease; /* 添加过渡效果 */
|
transition: transform 0.3s ease; /* 添加过渡效果 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-item:hover {
|
.image-item2:hover {
|
||||||
transform: scale(1.1); /* 放大容器 */
|
transform: scale(1.1); /* 放大容器 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-item-selected {
|
.image-item-selected {
|
||||||
outline: none;
|
outline: none;
|
||||||
border-color: yellow;
|
border-color: blue;
|
||||||
box-shadow: 0 0 10px yellow;
|
box-shadow: 0 0 10px blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-item:active {
|
.image-item2:active {
|
||||||
transform: scale(0.9); /* 缩小图像 */
|
transform: scale(0.9); /* 缩小图像 */
|
||||||
}
|
}
|
||||||
/* 诊断医生等样式 */
|
/* 诊断医生等样式 */
|
||||||
|
Loading…
Reference in New Issue
Block a user