修改登陆界面 以及超声相关

This commit is contained in:
lxd 2024-07-31 19:35:52 +08:00
parent d5ef397743
commit dec5cad5bd
17 changed files with 1259 additions and 213 deletions

View File

@ -16,6 +16,7 @@ export interface UserVO {
loginDate: Date
createTime: Date
orgId:string
isexamine:string
}
// 查询用户管理列表

View File

@ -29,6 +29,8 @@ export interface ProfileVO {
loginIp: string
loginDate: Date
createTime: Date
isexamine:string
orgId:string
}
export interface UserProfileUpdateReqVO {

View File

@ -70,8 +70,13 @@ export const PatientexamlistApi = {
return await request.get({ url: `/tblist/patientexamlist/UPDATEHigOrg?id=${id}&&orgId=${orgId}` })
},
// 超声审核修改
// 超声保存修改
examineupdatelist: async (data: PatientexamlistVO) => {
return await request.put({ url: `/tblist/patientexamlist/examineupdate`, data })
},
// 超声审核
examine: async (id: String) => {
return await request.get({ url: `/tblist/patientexamlist/examine?id=` + id })
},
}

BIN
src/assets/imgs/FLY.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/assets/imgs/客服.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -362,7 +362,7 @@ export default {
},
login: {
backSignIn: '返回',
signInFormTitle: '登录',
signInFormTitle: '账号登录',
ssoFormTitle: '三方授权',
mobileSignInFormTitle: '手机登录',
qrSignInFormTitle: '二维码登录',

View File

@ -4,47 +4,49 @@
class="relative h-[100%] lt-md:px-10px lt-sm:px-10px lt-xl:px-10px lt-xl:px-10px"
>
<div class="relative mx-auto h-full flex">
<div
<!-- <div
:class="`${prefixCls}__left flex-1 bg-gray-500 bg-opacity-20 relative p-30px lt-xl:hidden`"
>
> -->
<!-- 左上角的 logo + 系统标题 -->
<div class="relative flex items-center text-white">
<!-- <div class="relative flex items-center text-white">
<img alt="" class="mr-10px h-48px w-48px" src="@/assets/imgs/logo.png" />
<span class="text-20px font-bold">{{ underlineToHump(appStore.getTitle) }}</span>
</div>
</div> -->
<!-- 左边的背景图 + 欢迎语 -->
<div class="h-[calc(100%-60px)] flex items-center justify-center">
<TransitionGroup
<!-- <div class="h-[calc(100%-60px)] flex items-center justify-center"> -->
<!-- <TransitionGroup
appear
enter-active-class="animate__animated animate__bounceInLeft"
tag="div"
>
<img key="1" alt="" class="w-350px" src="@/assets/svgs/login-box-bg.svg" />
> -->
<!-- <img key="1" alt="" class="w-350px" src="@/assets/svgs/login-fly.svg" />
<div key="2" class="text-3xl text-white">{{ t('login.welcome') }}</div>
<div key="3" class="mt-5 text-14px font-normal text-white">
{{ t('login.message') }}
</div>
</TransitionGroup>
</div> -->
<!-- </TransitionGroup> -->
<!-- </div> -->
<!-- </div> -->
<div class="my-container">
<div class="my-top">
<img class="top-image" src="@/assets/imgs/FLY.png" />
<div class="text-container">
<span style="font-size: 50px">医共体医学影像系统</span>
<span style="font-size: 18px">The Medical Community Medical Imaging Systems</span>
</div>
</div>
<div class="relative flex-1 p-30px dark:bg-[var(--login-bg-color)] lt-sm:p-10px">
<!-- 右上角的主题语言选择 -->
<div class="my-middle">
<div
class="flex items-center justify-between text-white at-2xl:justify-end at-xl:justify-end"
>
<div class="flex items-center at-2xl:hidden at-xl:hidden">
<img alt="" class="mr-10px h-48px w-48px" src="@/assets/imgs/logo.png" />
<span class="text-20px font-bold">{{ underlineToHump(appStore.getTitle) }}</span>
</div>
<div class="flex items-center justify-end space-x-10px">
<ThemeSwitch />
<LocaleDropdown class="dark:text-white lt-xl:text-white" />
</div>
</div>
<!-- 右边的登录界面 -->
<Transition appear enter-active-class="animate__animated animate__bounceInRight">
<div
class="m-auto h-full w-[100%] flex items-center at-2xl:max-w-500px at-lg:max-w-500px at-md:max-w-500px at-xl:max-w-500px"
style="
width:400px;
height: 500px;
background-color: rgb(255, 255, 255);
margin:auto;
margin-right: 150px;
margin-top: 200px;
padding: 20px;
"
>
<!-- 账号登录 -->
<LoginForm class="m-auto h-auto p-20px lt-xl:(rounded-3xl light:bg-white)" />
@ -57,7 +59,29 @@
<!-- 三方登录 -->
<SSOLoginVue class="m-auto h-auto p-20px lt-xl:(rounded-3xl light:bg-white)" />
</div>
</Transition>
<!-- <div class="relative flex-1 p-30px dark:bg-[var(--login-bg-color)] lt-sm:p-10px"> -->
<!-- 右上角的主题语言选择 -->
<!-- <div
class="flex items-center justify-between text-white at-2xl:justify-end at-xl:justify-end"
>
<div class="flex items-center at-2xl:hidden at-xl:hidden">
<img alt="" class="mr-10px h-48px w-48px" src="@/assets/imgs/logo.png" />
<span class="text-20px font-bold">{{ underlineToHump(appStore.getTitle) }}</span>
</div>
<div class="flex items-center justify-end space-x-10px">
<ThemeSwitch />
<LocaleDropdown class="dark:text-white lt-xl:text-white" />
</div>
</div> -->
<!-- 右边的登录界面 -->
<!-- <Transition appear enter-active-class="animate__animated animate__bounceInRight"> -->
<!-- </Transition> -->
<!-- </div> -->
</div>
<div class="my-bottom">
<img class="bottom-image" src="@/assets/imgs/客服.png" />
</div>
</div>
</div>
</div>
@ -102,3 +126,62 @@ $prefix-cls: #{$namespace}-login;
}
}
</style>
<style>
.my-container {
display: flex;
flex-direction: column;
height: 100%; /* 确保容器占满可用高度 */
width: 100%;
}
/* 最上面 */
.my-top {
display: flex; /* 使用Flexbox布局 */
align-items: flex-start; /* 垂直方向上,子元素靠左对齐 */
height: 10%;
background-color: rgb(255, 255, 255); /* 背景颜色,可以自定义 */
width: 100%;
}
.top-image {
margin-left: 215px;
margin-right: 10px;
margin-top: 10px;
width: 279px;
height: 93px;
}
.text-container {
display: flex;
flex-direction: column; /* 垂直排列span元素 */
margin-left: 3px; /* 给文本容器添加一些左边距,使其靠左一些 */
margin-top: 10px;
}
.text-container span {
margin: 0; /* 移除span元素的默认外边距 */
}
/* // 底部样式 */
.my-bottom {
background-image: url('@/assets/imgs/登陆底部.png'); /* 替换为你的图片路径 */
background-size: cover; /* 使图片覆盖整个div同时保持图片的宽高比 */
background-repeat: no-repeat; /* 防止图片重复 */
height: 15%;
width: 100%;
opacity: 1;
background: rgba(84, 80, 81, 1);
}
.bottom-image
{
margin-left: 75%;
margin-top: 30px;
}
/* 中间 */
.my-middle {
height: 75%;
background-image: url('@/assets/imgs/登陆背景.png'); /* 替换为你的图片路径 */
background-repeat: no-repeat; /* 防止图片重复 */
background-size: cover; /* 使图片覆盖整个div同时保持图片的宽高比 */
width: 100%;
}
/* //底部的客服相关 */
</style>

View File

@ -12,7 +12,7 @@
<el-row style="margin-right: -10px; margin-left: -10px">
<el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item>
<LoginFormTitle style="width: 100%" />
<LoginFormTitle style="width: 100%;color: rgb(4, 41, 129);" />
</el-form-item>
</el-col>
<el-col :span="24" style="padding-right: 10px; padding-left: 10px">
@ -59,7 +59,7 @@
</el-checkbox>
</el-col>
<el-col :offset="6" :span="12">
<el-link style="float: right" type="primary">{{ t('login.forgetPassword') }}</el-link>
<el-link style="float: right; " type="primary">{{ t('login.forgetPassword') }}</el-link>
</el-col>
</el-row>
</el-form-item>
@ -71,6 +71,7 @@
:title="t('login.login')"
class="w-[100%]"
type="primary"
style="background: linear-gradient(141.88deg, rgb(0, 102, 235) 0%, rgb(3, 129, 255) 100%), rgb(36, 93, 209);"
@click="getCode()"
/>
</el-form-item>
@ -82,7 +83,8 @@
mode="pop"
@success="handleLogin"
/>
<el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<!-- 这部分是其他登陆方式 以及注册 -->
<!-- <el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item>
<el-row :gutter="5" justify="space-between" style="width: 100%">
<el-col :span="8">
@ -108,8 +110,8 @@
</el-col>
</el-row>
</el-form-item>
</el-col>
<el-divider content-position="center">{{ t('login.otherLogin') }}</el-divider>
</el-col> -->
<!-- <el-divider content-position="center">{{ t('login.otherLogin') }}</el-divider>
<el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item>
<div class="w-[100%] flex justify-between">
@ -124,8 +126,8 @@
/>
</div>
</el-form-item>
</el-col>
<el-divider content-position="center">萌新必读</el-divider>
</el-col> -->
<!-- <el-divider content-position="center">萌新必读</el-divider>
<el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item>
<div class="w-[100%] flex justify-between">
@ -139,7 +141,7 @@
</el-link>
</div>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
</el-form>
</template>

View File

@ -82,7 +82,7 @@
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-col :span="12">
<el-form-item label="机构名称" prop="orgId" >
<el-select v-model="formData.orgId" placeholder="请选择机构" clearable>
<el-option
@ -92,6 +92,14 @@
:value="item.orgID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否审核" prop="isexamine" >
<el-select v-model="formData.isexamine" clearable>
<el-option label="是" value="1" />
<el-option label="否" value="0" />
</el-select>
</el-form-item>
</el-col>
</el-row>
@ -142,7 +150,8 @@ const formData = ref({
remark: '',
status: CommonStatusEnum.ENABLE,
roleIds: [],
orgId:''
orgId:'',
isexamine:''
})
const formRules = reactive<FormRules>({
username: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }],

View File

@ -1,6 +1,6 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 影像工作站-->
<el-form
class="-mb-15px"
:model="queryParams"
@ -46,22 +46,27 @@
</el-form-item> -->
<el-form-item label="检查日期" prop="examDate" size="mini">
<!-- aaaaa -->
<el-radio-group ref="examDate_radio" v-model="examDate_radio_value" @change="examDate_radio_change">
<el-radio style="margin-right: 15px;" :value="1">今天</el-radio>
<el-radio style="margin-right: 15px;" :value="2">昨天</el-radio>
<el-radio style="margin-right: 15px;" :value="3">三天内</el-radio>
<el-radio style="margin-right: 15px;" :value="4">一周</el-radio>
<el-radio style="margin-right: 25px;" :value="5">
<el-radio-group
ref="examDate_radio"
v-model="examDate_radio_value"
@change="examDate_radio_change"
>
<el-radio style="margin-right: 15px" :value="1">今天</el-radio>
<el-radio style="margin-right: 15px" :value="2">昨天</el-radio>
<el-radio style="margin-right: 15px" :value="3">三天内</el-radio>
<el-radio style="margin-right: 15px" :value="4">一周</el-radio>
<el-radio style="margin-right: 25px" :value="5">
<el-date-picker
ref="examDate_picker"
:disabled="examDate_radio_value===5 ? false:true"
:disabled="examDate_radio_value === 5 ? false : true"
v-model="queryParams.examDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"/>
class="!w-240px"
/>
</el-radio>
</el-radio-group>
</el-form-item>
@ -87,7 +92,6 @@
/>
</el-form-item> -->
<el-form-item label="检查项目" prop="examItemName">
<el-input
v-model="queryParams.examItemName"
@ -104,8 +108,8 @@
clearable
class="!w-150px"
>
<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>
@ -266,14 +270,20 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @row-dblclick="handleEdit">
<el-table-column type="index" width="50px"/>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
@row-dblclick="handleEdit"
>
<el-table-column type="index" width="50px" />
<el-table-column label="" width="150px">
<template #default="scope">
<el-image :src="scope.row.thumbnailImgUrl"/>
<el-image :src="scope.row.thumbnailImgUrl" />
</template>
</el-table-column>
<el-table-column label="主键" align="center" prop="id" v-if="false"/>
<el-table-column label="主键" align="center" prop="id" v-if="false" />
<el-table-column label="检查ID" align="center" prop="examId" />
<el-table-column label="患者姓名" align="center" prop="pname" />
<el-table-column label="性别" align="center" prop="gender" />
@ -289,9 +299,9 @@
<el-table-column label="Se/Im" align="center" prop="seDc" />
<el-table-column label="检查项目名称" align="center" prop="examItemName" />
<el-table-column label="报告状态" align="center" prop="reportstatus" >
<el-table-column label="报告状态" align="center" prop="reportstatus">
<template #default="scope">
<el-tag :type="scope.row.reportstatus === '已审核' ? 'danger':'success'">
<el-tag :type="scope.row.reportstatus === '已审核' ? 'danger' : 'success'">
<span style="">{{ scope.row.reportstatus }}</span>
</el-tag>
</template>
@ -312,8 +322,13 @@
width="180px"
/>
<el-table-column label="机构名称" align="center" prop="orgName" />
<el-table-column label="机构ID" align="center" prop="orgId" v-if="false"/>
<el-table-column label="上级判读机构id列表orgid1,orgid2,orgid3" align="center" prop="highLevelOrgId" v-if="false" />
<el-table-column label="机构ID" align="center" prop="orgId" v-if="false" />
<el-table-column
label="上级判读机构id列表orgid1,orgid2,orgid3"
align="center"
prop="highLevelOrgId"
v-if="false"
/>
<el-table-column
label="创建时间:年月日时分秒"
align="center"
@ -322,8 +337,8 @@
width="180px"
v-if="false"
/>
<el-table-column label="检查所见" align="center" prop="examDescription" v-if="false"/>
<el-table-column label="诊断结论" align="center" prop="diagResults" v-if="false"/>
<el-table-column label="检查所见" align="center" prop="examDescription" v-if="false" />
<el-table-column label="诊断结论" align="center" prop="diagResults" v-if="false" />
<el-table-column
label="下诊断结论的时间:年月日时分秒"
align="center"
@ -354,9 +369,8 @@
<template #default="scope">
<el-button
size="small"
type="primary"
@click="getuporghiorgid(scope.row.id, scope.row.orgId,scope.row.reportstatus)"
@click="getuporghiorgid(scope.row.id, scope.row.orgId, scope.row.reportstatus)"
v-hasPermi="['tblist:patientexamlist:query']"
>
申请
@ -383,8 +397,8 @@
<!-- 表单弹窗添加/修改 -->
<PatientexamlistForm ref="formRef" @success="getList" />
<!-- 表单弹窗超声组件 -->
<Ultrasonic ref="ultrasonic" />
<!-- 表单弹窗超声组件 -->
<Ultrasonic ref="ultrasonic" @success="getList" />
</template>
<script setup lang="ts">
@ -394,7 +408,6 @@ import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexaml
import PatientexamlistForm from './PatientexamlistForm.vue'
import Ultrasonic from '/src/views/ultrasoniccom/ultrasonicForm.vue'
/** PACS检查列表 列表 */
defineOptions({ name: 'Patientexamlist' })
@ -412,15 +425,15 @@ const queryParams = reactive({
gender: undefined,
birthday: undefined,
examDate: [],
deviceType: undefined,
deviceType: '',
seDc: undefined,
examItemName: undefined,
reportstatus: undefined,
applicationDate: [],
uploadDate: [],
orgName: undefined,
orgId: "",
highLevelOrgId: "",
orgId: '',
highLevelOrgId: '',
createDate: [],
examDescription: undefined,
diagResults: undefined,
@ -429,23 +442,27 @@ const queryParams = reactive({
reviewDoctor: undefined,
reviewDate: [],
thumbnailImgUrl: undefined,
createTime: [],
createTime: []
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 超声组件 */
const ultrasonic = ref();
const openultrForm = (id:number,orgid:string,regid:string) => {
ultrasonic.value.open(id,orgid,regid)
const ultrasonic = ref()
const openultrForm = (id: number, orgid: string, regid: string) => {
ultrasonic.value.open(id, orgid, regid)
}
/** 表格行点击 */
const clickNumber = ref(0);
const clickNumber = ref(0)
function handleEdit(row) {
console.log(111111121212)
openultrForm(row.id, row.orgId, row.regId)
if(row.deviceType!="US")//US
{
openultrForm(row.id,row.orgId,row.regId)
}
/* clickNumber.value++;
if (clickNumber.value == 2) {
@ -453,64 +470,51 @@ function handleEdit(row) {
clickNumber.value = 0; */
}
/** aaaaa **/
const examDate_picker = ref(null);
const examDate_radio = ref(null);
const examDate_radio_value = ref(1);
const examDate_picker = ref(null)
const examDate_radio = ref(null)
const examDate_radio_value = ref(1)
const examDate_radio_change = ()=>{
if([1,2,3,4].includes(examDate_radio_value.value))
{
const examDate_radio_change = () => {
if ([1, 2, 3, 4].includes(examDate_radio_value.value)) {
let timesta = new Date()
let timeend = new Date()
//
if (examDate_radio_value.value===1) {
queryParams.examDate=[nowDate(timesta),nowDate(timeend)];
} else if (examDate_radio_value.value===2)
{
if (examDate_radio_value.value === 1) {
queryParams.examDate = [nowDate(timesta), nowDate(timeend)]
} else if (examDate_radio_value.value === 2) {
timesta.setDate(timesta.getDate() - 1)
queryParams.examDate=[nowDate(timesta),nowDate(timeend)];
}
else if(examDate_radio_value.value===3)
{
queryParams.examDate = [nowDate(timesta), nowDate(timeend)]
} else if (examDate_radio_value.value === 3) {
timesta.setDate(timesta.getDate() - 3)
queryParams.examDate=[nowDate(timesta),nowDate(timeend)];
}
else if(examDate_radio_value.value===4)
{
queryParams.examDate = [nowDate(timesta), nowDate(timeend)]
} else if (examDate_radio_value.value === 4) {
timesta.setDate(timesta.getDate() - 7)
queryParams.examDate=[nowDate(timesta),nowDate(timeend)];
queryParams.examDate = [nowDate(timesta), nowDate(timeend)]
}
handleQuery();
}else if(5===examDate_radio_value.value)
{
queryParams.examDate=[];
handleQuery()
} else if (5 === examDate_radio_value.value) {
queryParams.examDate = []
}
}
///
function nowDate(time) {
var year = time.getFullYear(); //
var month = (time.getMonth() + 1).toString().padStart(2, '0'); //
var date = time.getDate().toString().padStart(2, '0'); //
var hour = time.getHours().toString().padStart(2, '0'); //
var minute = time.getMinutes().toString().padStart(2, '0'); //
var second = time.getSeconds().toString().padStart(2, '0'); //
return (
year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second
)
}
var year = time.getFullYear() //
var month = (time.getMonth() + 1).toString().padStart(2, '0') //
var date = time.getDate().toString().padStart(2, '0') //
var hour = time.getHours().toString().padStart(2, '0') //
var minute = time.getMinutes().toString().padStart(2, '0') //
var second = time.getSeconds().toString().padStart(2, '0') //
return year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second
}
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
queryParams.deviceType = 'CT'
const data = await PatientexamlistApi.getPatientexamlistPage(queryParams)
list.value = data.list
total.value = data.total
@ -522,21 +526,22 @@ const getList = async () => {
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
queryParams.deviceType = 'CT'
//
queryParams.orgId=""
queryParams.highLevelOrgId=""
queryParams.orgId = ''
queryParams.highLevelOrgId = ''
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields();
queryFormRef.value.resetFields()
/** aaaaa **/
//
examDate_radio_value.value=1;
examDate_radio_change();
if(5===examDate_radio_value.value) handleQuery();
examDate_radio_value.value = 1
examDate_radio_change()
if (5 === examDate_radio_value.value) handleQuery()
//
//handleQuery();
@ -549,26 +554,20 @@ const openForm = (type: string, id?: number) => {
}
/** 申请后更新上级机构字段*/
const getuporghiorgid=async (id: number,orgId:string,reportstatus:string) => {
const getuporghiorgid = async (id: number, orgId: string, reportstatus: string) => {
try {
if(reportstatus=="未申请")
{
await message.confirm("是否要进行申请?","确认提示")
await PatientexamlistApi.getuporghiid(id,orgId)
if (reportstatus == '未申请') {
await message.confirm('是否要进行申请?', '确认提示')
await PatientexamlistApi.getuporghiid(id, orgId)
message.success(t('common.delSuccess'))
//
await getList()
} else {
await message.info('只有未申请才可以进行操作')
}
else
{
await message. info("只有未申请才可以进行操作")
}
} catch {}
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
@ -610,12 +609,11 @@ const handleExport = async () => {
/** 初始化 **/
onMounted(() => {
//
/** aaaaa **/
//
examDate_radio_change();
if(5===examDate_radio_value.value) handleQuery();
examDate_radio_change()
if (5 === examDate_radio_value.value) handleQuery()
//
//getList();

View File

@ -0,0 +1,230 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="检查ID体检编号、住院号、门诊号等" prop="examId">
<el-input v-model="formData.examId" placeholder="请输入检查ID体检编号、住院号、门诊号等" />
</el-form-item>
<el-form-item label="患者姓名" prop="pname">
<el-input v-model="formData.pname" placeholder="请输入患者姓名" />
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-input v-model="formData.gender" placeholder="请输入性别" />
</el-form-item>
<el-form-item label="出生日期" prop="birthday">
<el-input v-model="formData.birthday" placeholder="请输入出生日期" />
</el-form-item>
<el-form-item label="检查日期:年月日时分秒" prop="examDate">
<el-date-picker
v-model="formData.examDate"
type="date"
value-format="x"
placeholder="选择检查日期:年月日时分秒"
/>
</el-form-item>
<el-form-item label="设备类型CT DR MR B超 彩超等" prop="deviceType">
<el-select v-model="formData.deviceType" placeholder="请选择设备类型CT DR MR B超 彩超等">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="seri_dicomCount:序列数量/dicom数量" prop="seDc">
<el-input v-model="formData.seDc" placeholder="请输入seri_dicomCount:序列数量/dicom数量" />
</el-form-item>
<el-form-item label="检查项目名称" prop="examItemName">
<el-input v-model="formData.examItemName" placeholder="请输入检查项目名称" />
</el-form-item>
<el-form-item label="报告状态" prop="reportstatus">
<el-radio-group v-model="formData.reportstatus">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="申请日期:年月日时分秒" prop="applicationDate">
<el-date-picker
v-model="formData.applicationDate"
type="date"
value-format="x"
placeholder="选择申请日期:年月日时分秒"
/>
</el-form-item>
<el-form-item label="dicom文件上传时间" prop="uploadDate">
<el-date-picker
v-model="formData.uploadDate"
type="date"
value-format="x"
placeholder="选择dicom文件上传时间"
/>
</el-form-item>
<el-form-item label="机构名称" prop="orgName">
<el-input v-model="formData.orgName" placeholder="请输入机构名称" />
</el-form-item>
<el-form-item label="机构ID" prop="orgId">
<el-input v-model="formData.orgId" placeholder="请输入机构ID" />
</el-form-item>
<el-form-item label="上级判读机构id列表orgid1,orgid2,orgid3" prop="highLevelOrgId">
<el-input v-model="formData.highLevelOrgId" placeholder="请输入上级判读机构id列表orgid1,orgid2,orgid3" />
</el-form-item>
<el-form-item label="创建时间:年月日时分秒" prop="createDate">
<el-date-picker
v-model="formData.createDate"
type="date"
value-format="x"
placeholder="选择创建时间:年月日时分秒"
/>
</el-form-item>
<el-form-item label="检查所见" prop="examDescription">
<Editor v-model="formData.examDescription" height="150px" />
</el-form-item>
<el-form-item label="诊断结论" prop="diagResults">
<el-input v-model="formData.diagResults" placeholder="请输入诊断结论" />
</el-form-item>
<el-form-item label="下诊断结论的时间:年月日时分秒" prop="diagDate">
<el-date-picker
v-model="formData.diagDate"
type="date"
value-format="x"
placeholder="选择下诊断结论的时间:年月日时分秒"
/>
</el-form-item>
<el-form-item label="诊断医生" prop="diagDoctor">
<el-input v-model="formData.diagDoctor" placeholder="请输入诊断医生" />
</el-form-item>
<el-form-item label="审核医生" prop="reviewDoctor">
<el-input v-model="formData.reviewDoctor" placeholder="请输入审核医生" />
</el-form-item>
<el-form-item label="审核日期:年月日时分秒" prop="reviewDate">
<el-date-picker
v-model="formData.reviewDate"
type="date"
value-format="x"
placeholder="选择审核日期:年月日时分秒"
/>
</el-form-item>
<el-form-item label="缩略图oss url, httP:oss url" prop="thumbnailImgUrl">
<el-input v-model="formData.thumbnailImgUrl" placeholder="请输入缩略图oss url, httP:oss url" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist'
/** PACS检查列表 表单 */
defineOptions({ name: 'PatientexamlistForm' })
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
examId: undefined,
pname: undefined,
gender: undefined,
birthday: undefined,
examDate: undefined,
deviceType: undefined,
seDc: undefined,
examItemName: undefined,
reportstatus: undefined,
applicationDate: undefined,
uploadDate: undefined,
orgName: undefined,
orgId: undefined,
highLevelOrgId: undefined,
createDate: undefined,
examDescription: undefined,
diagResults: undefined,
diagDate: undefined,
diagDoctor: undefined,
reviewDoctor: undefined,
reviewDate: undefined,
thumbnailImgUrl: undefined,
})
const formRules = reactive({
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await PatientexamlistApi.getPatientexamlist(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
const data = formData.value as unknown as PatientexamlistVO
if (formType.value === 'create') {
await PatientexamlistApi.createPatientexamlist(data)
message.success(t('common.createSuccess'))
} else {
await PatientexamlistApi.updatePatientexamlist(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
examId: undefined,
pname: undefined,
gender: undefined,
birthday: undefined,
examDate: undefined,
deviceType: undefined,
seDc: undefined,
examItemName: undefined,
reportstatus: undefined,
applicationDate: undefined,
uploadDate: undefined,
orgName: undefined,
orgId: undefined,
highLevelOrgId: undefined,
createDate: undefined,
examDescription: undefined,
diagResults: undefined,
diagDate: undefined,
diagDoctor: undefined,
reviewDoctor: undefined,
reviewDate: undefined,
thumbnailImgUrl: undefined,
}
formRef.value?.resetFields()
}
</script>

View File

@ -0,0 +1,638 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 超声工作站-->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="检查ID" prop="examId">
<el-input
v-model="queryParams.examId"
placeholder="检查ID\体检编号\住院号\门诊号等"
clearable
@keyup.enter="handleQuery"
class="!w-215px"
/>
</el-form-item>
<el-form-item label="患者姓名" prop="pName">
<el-input
v-model="queryParams.pname"
placeholder="请输入患者姓名"
clearable
@keyup.enter="handleQuery"
class="!w-160px"
/>
</el-form-item>
<!-- <el-form-item label="性别" prop="gender">
<el-input
v-model="queryParams.gender"
placeholder="请输入性别"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="出生日期" prop="birthday">
<el-input
v-model="queryParams.birthday"
placeholder="请输入出生日期"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> -->
<el-form-item label="检查日期" prop="examDate" size="mini">
<!-- aaaaa -->
<el-radio-group ref="examDate_radio" v-model="examDate_radio_value" @change="examDate_radio_change">
<el-radio style="margin-right: 15px;" :value="1">今天</el-radio>
<el-radio style="margin-right: 15px;" :value="2">昨天</el-radio>
<el-radio style="margin-right: 15px;" :value="3">三天内</el-radio>
<el-radio style="margin-right: 15px;" :value="4">一周</el-radio>
<el-radio style="margin-right: 25px;" :value="5">
<el-date-picker
ref="examDate_picker"
:disabled="examDate_radio_value===5 ? false:true"
v-model="queryParams.examDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"/>
</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="设备类型" prop="deviceType">
<el-select
v-model="queryParams.deviceType"
placeholder="请选择设备类型"
clearable
class="!w-240px"
>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item> -->
<!-- <el-form-item label="seri_dicomCount:序列数量/dicom数量" prop="seDc">
<el-input
v-model="queryParams.seDc"
placeholder="请输入seri_dicomCount:序列数量/dicom数量"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> -->
<el-form-item label="检查项目" prop="examItemName">
<el-input
v-model="queryParams.examItemName"
placeholder="请输入检查项"
clearable
@keyup.enter="handleQuery"
class="!w-220px"
/>
</el-form-item>
<el-form-item label="报告状态" prop="reportstatus">
<el-select
v-model="queryParams.reportstatus"
placeholder="请选择报告状态"
clearable
class="!w-150px"
>
<el-option label="待分检" value="待分检" />
<el-option label="已分检" value="已分检" />
<el-option label="已分析" value="已分析" />
<el-option label="已审核" value="已审核" />
</el-select>
</el-form-item>
<!-- <el-form-item label="申请日期:年月日时分秒" prop="applicationDate">
<el-date-picker
v-model="queryParams.applicationDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="dicom文件上传时间" prop="uploadDate">
<el-date-picker
v-model="queryParams.uploadDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="机构名称" prop="orgName">
<el-input
v-model="queryParams.orgName"
placeholder="请输入机构名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="机构ID" prop="orgId">
<el-input
v-model="queryParams.orgId"
placeholder="请输入机构ID"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="上级判读机构id列表orgid1,orgid2,orgid3" prop="highLevelOrgId">
<el-input
v-model="queryParams.highLevelOrgId"
placeholder="请输入上级判读机构id列表orgid1,orgid2,orgid3"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="创建时间:年月日时分秒" prop="createDate">
<el-date-picker
v-model="queryParams.createDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="诊断结论" prop="diagResults">
<el-input
v-model="queryParams.diagResults"
placeholder="请输入诊断结论"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="下诊断结论的时间:年月日时分秒" prop="diagDate">
<el-date-picker
v-model="queryParams.diagDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="诊断医生" prop="diagDoctor">
<el-input
v-model="queryParams.diagDoctor"
placeholder="请输入诊断医生"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="审核医生" prop="reviewDoctor">
<el-input
v-model="queryParams.reviewDoctor"
placeholder="请输入审核医生"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item> -->
<!-- <el-form-item label="审核日期:年月日时分秒" prop="reviewDate">
<el-date-picker
v-model="queryParams.reviewDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="缩略图oss url, httP:oss url" prop="thumbnailImgUrl">
<el-input
v-model="queryParams.thumbnailImgUrl"
placeholder="请输入缩略图oss url, httP:oss url"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="框架需要:创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item> -->
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['tblist:patientexamlist:create']"
v-if="false"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['tblist:patientexamlist:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @row-dblclick="handleEdit">
<el-table-column type="index" width="50px"/>
<el-table-column label="" width="150px">
<template #default="scope">
<el-image :src="scope.row.thumbnailImgUrl"/>
</template>
</el-table-column>
<el-table-column label="主键" align="center" prop="id" v-if="false"/>
<el-table-column label="检查ID" align="center" prop="examId" />
<el-table-column label="患者姓名" align="center" prop="pname" />
<el-table-column label="性别" align="center" prop="gender" />
<el-table-column label="出生日期" align="center" prop="birthday" />
<el-table-column
label="检查日期"
align="center"
prop="examDate"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="设备类型" align="center" prop="deviceType" />
<el-table-column label="Se/Im" align="center" prop="seDc" />
<el-table-column label="检查项目名称" align="center" prop="examItemName" />
<el-table-column label="报告状态" align="center" prop="reportstatus" >
<template #default="scope">
<el-tag :type="scope.row.reportstatus === '已审核' ? 'danger':'success'">
<span style="">{{ scope.row.reportstatus }}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
label="申请日期"
align="center"
prop="applicationDate"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column
label="上传时间"
align="center"
prop="uploadDate"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="机构名称" align="center" prop="orgName" />
<el-table-column label="机构ID" align="center" prop="orgId" v-if="false"/>
<el-table-column label="上级判读机构id列表orgid1,orgid2,orgid3" align="center" prop="highLevelOrgId" v-if="false" />
<el-table-column
label="创建时间:年月日时分秒"
align="center"
prop="createDate"
:formatter="dateFormatter"
width="180px"
v-if="false"
/>
<el-table-column label="检查所见" align="center" prop="examDescription" v-if="false"/>
<el-table-column label="诊断结论" align="center" prop="diagResults" v-if="false"/>
<el-table-column
label="下诊断结论的时间:年月日时分秒"
align="center"
prop="diagDate"
:formatter="dateFormatter"
width="180px"
v-if="false"
/>
<el-table-column label="诊断医生" align="center" prop="diagDoctor" v-if="false" />
<el-table-column label="审核医生" align="center" prop="reviewDoctor" v-if="false" />
<el-table-column
label="审核日期:年月日时分秒"
align="center"
prop="reviewDate"
:formatter="dateFormatter"
width="180px"
v-if="false"
/>
<el-table-column
label="框架需要:创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
v-if="false"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
size="small"
type="primary"
@click="getuporghiorgid(scope.row.id, scope.row.orgId,scope.row.reportstatus)"
v-hasPermi="['tblist:patientexamlist:query']"
>
申请
</el-button>
<!-- <el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['tblist:patientexamlist:delete']"
>
删除
</el-button> -->
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<PatientexamlistForm ref="formRef" @success="getList" />
<!-- 表单弹窗超声组件 -->
<Ultrasonic ref="ultrasonic" @success="getList" />
</template>
<script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist'
import PatientexamlistForm from './PatientexamlistForm.vue'
import Ultrasonic from '/src/views/ultrasoniccom/ultrasonicForm.vue'
/** PACS检查列表 列表 */
defineOptions({ name: 'Patientexamlist' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<PatientexamlistVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
examId: undefined,
pname: undefined,
gender: undefined,
birthday: undefined,
examDate: [],
deviceType: "",
seDc: undefined,
examItemName: undefined,
reportstatus: undefined,
applicationDate: [],
uploadDate: [],
orgName: undefined,
orgId: "",
highLevelOrgId: "",
createDate: [],
examDescription: undefined,
diagResults: undefined,
diagDate: [],
diagDoctor: undefined,
reviewDoctor: undefined,
reviewDate: [],
thumbnailImgUrl: undefined,
createTime: [],
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 超声组件 */
const ultrasonic = ref();
const openultrForm = (id:number,orgid:string,regid:string) => {
ultrasonic.value.open(id,orgid,regid)
}
/** 表格行点击 */
const clickNumber = ref(0);
function handleEdit(row) {
console.log(111111121212)
openultrForm(row.id,row.orgId,row.regId)
if(row.deviceType=="US")//US
{
openultrForm(row.id,row.orgId,row.regId)
}
/* clickNumber.value++;
if (clickNumber.value == 2) {
}
clickNumber.value = 0; */
}
/** aaaaa **/
const examDate_picker = ref(null);
const examDate_radio = ref(null);
const examDate_radio_value = ref(1);
const examDate_radio_change = ()=>{
if([1,2,3,4].includes(examDate_radio_value.value))
{
let timesta = new Date()
let timeend = new Date()
//
if (examDate_radio_value.value===1) {
queryParams.examDate=[nowDate(timesta),nowDate(timeend)];
} else if (examDate_radio_value.value===2)
{
timesta.setDate(timesta.getDate() - 1)
queryParams.examDate=[nowDate(timesta),nowDate(timeend)];
}
else if(examDate_radio_value.value===3)
{
timesta.setDate(timesta.getDate() - 3)
queryParams.examDate=[nowDate(timesta),nowDate(timeend)];
}
else if(examDate_radio_value.value===4)
{
timesta.setDate(timesta.getDate() - 7)
queryParams.examDate=[nowDate(timesta),nowDate(timeend)];
}
handleQuery();
}else if(5===examDate_radio_value.value)
{
queryParams.examDate=[];
}
}
///
function nowDate(time) {
var year = time.getFullYear(); //
var month = (time.getMonth() + 1).toString().padStart(2, '0'); //
var date = time.getDate().toString().padStart(2, '0'); //
var hour = time.getHours().toString().padStart(2, '0'); //
var minute = time.getMinutes().toString().padStart(2, '0'); //
var second = time.getSeconds().toString().padStart(2, '0'); //
return (
year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second
)
}
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
queryParams.deviceType="US"
const data = await PatientexamlistApi.getPatientexamlistPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
//
queryParams.orgId=""
queryParams.highLevelOrgId=""
queryParams.deviceType="US"
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields();
/** aaaaa **/
//
examDate_radio_value.value=1;
examDate_radio_change();
if(5===examDate_radio_value.value) handleQuery();
//
//handleQuery();
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 申请后更新上级机构字段*/
const getuporghiorgid=async (id: number,orgId:string,reportstatus:string) => {
try {
if(reportstatus=="未申请")
{
await message.confirm("是否要进行申请?","确认提示")
await PatientexamlistApi.getuporghiid(id,orgId)
message.success(t('common.delSuccess'))
//
await getList()
}
else
{
await message. info("只有未申请才可以进行操作")
}
} catch {}
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await PatientexamlistApi.deletePatientexamlist(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 申请按钮操作 */
const handleSub = async (id: number) => {
try {
//
await message.delConfirm()
//
await PatientexamlistApi.deletePatientexamlist(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await PatientexamlistApi.exportPatientexamlist(queryParams)
download.excel(data, 'PACS检查列表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 初始化 **/
onMounted(() => {
//
/** aaaaa **/
//
examDate_radio_change();
if(5===examDate_radio_value.value) handleQuery();
//
//getList();
})
</script>
<style>
/* 为了防止 el-form-item 的标签文本换行可以添加以下CSS样式 */
.el-form-item__label {
white-space: nowrap;
}
</style>

View File

@ -31,7 +31,7 @@
<el-tab-pane label="通用模版">
<!-- -->
<el-tree
style="min-width: 195px;"
style="min-width: 195px"
v-loading="formLoading"
class="treeStyle"
:check-on-click-node="true"
@ -87,7 +87,7 @@
:inline="true"
>
<el-row>
<el-col :span="8">
<el-col :span="7">
<el-form-item label="检查号" style="font-weight: bold">
<el-input
v-model="applyFormVO.examId"
@ -101,7 +101,7 @@
<el-input v-model="applyFormVO.pname" style="width: 190px" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="9">
<el-form-item label="性别" style="font-weight: bold">
<el-input
v-model="applyFormVO.gender"
@ -110,7 +110,7 @@
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="7">
<el-form-item label="出生日期" style="font-weight: bold">
<el-date-picker
v-model="applyFormVO.birthday"
@ -144,7 +144,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="7">
<el-form-item label="申请时间" style="font-weight: bold">
<el-date-picker
v-model="applyFormVO.applicationDate"
@ -254,12 +254,21 @@
/>
</el-form-item>
</div>
<el-button
type="success"
plain
style="width: 80px; float: right; margin-right: 15px"
@click="save"
:disabled="savedisabled"
>保存</el-button
>
<el-button
type="primary"
plain
style="width: 180px; float: right"
v-show="examinedisabled"
style="width: 80px; float: right; margin-right: 15px"
@click="examine"
:disabled="applyFormVO.reportstatus === '已审核' ? true : false"
>审核</el-button
>
</el-tab-pane>
@ -333,7 +342,7 @@
plain
style="width: 100%"
@click="upimagedeleteor()"
:disabled="applyFormVO.reportstatus === '已审核' ? true : false"
:disabled="savedisabled"
>图像删除</el-button
>
</div>
@ -343,7 +352,7 @@
plain
style="width: 100%"
@click="getimages"
:disabled="applyFormVO.reportstatus === '已审核' ? true : false"
:disabled="savedisabled"
>图像刷新</el-button
>
</div>
@ -364,9 +373,15 @@
<!-- 弹窗-->
<el-dialog v-model="dialogTableVisible" title="选择结论添加方式" width="320" align-center>
<div>
<el-button @click="handleButtonClick('覆盖')" type="primary" style="font-size: 20px;">覆盖</el-button>
<el-button @click="handleButtonClick('追加')" type="success" style="font-size: 20px;">追加</el-button>
<el-button @click="dialogTableVisible = false" type="info" style="font-size: 20px;">关闭</el-button>
<el-button @click="handleButtonClick('覆盖')" type="primary" style="font-size: 20px"
>覆盖</el-button
>
<el-button @click="handleButtonClick('追加')" type="success" style="font-size: 20px"
>追加</el-button
>
<el-button @click="dialogTableVisible = false" type="info" style="font-size: 20px"
>关闭</el-button
>
</div>
</el-dialog>
</template>
@ -393,7 +408,8 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO)
const savedisabled = ref(true) //
const examinedisabled = ref(false) //
//使
const clickuptime = async (pid: string) => {
await ultrasoniccomApi.upreporttemplatetime(pid)
@ -424,8 +440,8 @@ const updateexamineimage = ref<updateexamineimageVO[]>([])
//
const notes = ref()
//
const examine = async () => {
//
const save = async () => {
try {
if (selecteimagedoneid === 0 || selecteimagedtwoid === 0 || selecteimagedthreeid === 0) {
message.warning('请选择影像图')
@ -433,7 +449,7 @@ const examine = async () => {
}
//
await message.delConfirm('是否进行审核', '确认')
await message.delConfirm('是否进行保存', '确认')
let timesta = new Date()
var localDateTime = new Date(timesta.getTime()).toISOString() // ISO
localDateTime = localDateTime.slice(0, localDateTime.length - 1)
@ -444,8 +460,8 @@ const examine = async () => {
examineFormVO.value.notes = notes.value
examineFormVO.value.diagFlag = radio1.value
examineFormVO.value.diagDoctor = Profilevo.value.username
examineFormVO.value.reviewDoctor = Profilevo.value.username
examineFormVO.value.reportstatus = '已审核'
// examineFormVO.value.reviewDoctor = Profilevo.value.username
examineFormVO.value.reportstatus = '已分析'
// examineFormVO.value.diagDate=localDateTime
// examineFormVO.value.reviewDate=dateTime
@ -454,12 +470,13 @@ const examine = async () => {
if (response) {
//
await upimageselect()
message.alertSuccess('审核成功')
message.alertSuccess('保存成功')
// data
console.log('接口调用成功')
console.log('data:', response.data)
// ID
getPatientexamlist(ID)
emit('success')
} else {
//
console.error('接口调用失败:', response.msg)
@ -469,6 +486,25 @@ const examine = async () => {
console.error('接口调用失败:', error)
}
}
//
const examine = async () => {
if (applyFormVO.value.reportstatus === '已分析') {
const response = await PatientexamlistApi.examine(ID.toString())
if (response) {
message.alertSuccess('审核成功')
// ID
getPatientexamlist(ID)
emit('success')
}
} else if (applyFormVO.value.reportstatus === '已审核') {
message.warning('已经审核,无需再次审核')
return
} else {
message.warning('请先进行保存')
return
}
}
///
function nowDate(time) {
@ -581,13 +617,33 @@ const upimagedeleteor = async () => {
deleteimageid.value = ''
updateexamineimage.value = []
}
//
const handleTabChange = async () => {
if (activeName.value == 'report') {
if (applyFormVO.value.reportstatus == '已分析' || applyFormVO.value.reportstatus == '已审核') {
showDiv()
if (reportimages.value.length === 0) {
const imageslist = await ultrasoniccomApi.getimageslist(orgId.value, regId.value, '1')
console.log(imageslist)
reportimages.value = imageslist
}
} else {
hideDiv()
}
}
}
//
function hideDiv() {
var div = document.getElementById('printMe')
if (div) {
div.style.display = 'none'
}
}
//
function showDiv() {
var div = document.getElementById('printMe')
if (div) {
div.style.display = 'block'
}
}
//
@ -740,6 +796,12 @@ const getPatientexamlist = async (id: number) => {
sj.value = applyFormVO.value.examDescription
notes.value = applyFormVO.value.notes
calculateAge(applyFormVO.value.birthday)
if (applyFormVO.value.reportstatus == '已分检' || applyFormVO.value.reportstatus == '待分析') {
savedisabled.value = false
} else {
savedisabled.value = true
}
}
defineExpose({ open }) // open
@ -755,6 +817,10 @@ const PrintForm = () => {
//
const getlogininfo = async () => {
Profilevo.value = await getUserProfile()
console.log("审核是否可见"+Profilevo.value.isexamine)
if (Profilevo.value.isexamine === '1') {
examinedisabled.value = true
}
}
/** 重置表单 */
@ -845,7 +911,6 @@ const chooseImage = (event, id: number) => {
display: flex;
justify-content: center;
align-items: center;
}
.demo-image {
@ -911,7 +976,7 @@ const chooseImage = (event, id: number) => {
.form-item {
flex: 1; /* 均分宽度,使两个输入框平分容器的宽度 */
margin-right: 20px;
font-weight:bold
font-weight: bold;
}
/* 报告样式 */