<template>
|
<div>
|
<el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px">
|
<el-form-item label="姓名" prop="name">
|
<el-input v-model="queryParams.name" style="width: 116px" placeholder="请输入姓名" clearable
|
@keyup.enter.native="submitForm"></el-input>
|
</el-form-item>
|
<el-form-item label="体检号" prop="tjNumber">
|
<el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 240px" placeholder="请输入体检号" clearable
|
@blur="hb" @keyup.enter.native="submitForm"></el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-button size="mini" type="primary" @click="submitForm" style="margin-right: 15px">搜索</el-button>
|
<el-button size="mini" @click="resetQuery">重置</el-button>
|
</el-form-item>
|
</el-form>
|
<div style="display: flex">
|
<el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 30px">
|
<el-radio-button label="0">未检</el-radio-button>
|
<el-radio-button label="1">已检</el-radio-button>
|
</el-radio-group>
|
</div>
|
|
<template>
|
<el-table :data="tableList" v-loading="loading" ref="table" height="536px" style="margin: 20px; width: 98%" border
|
:cell-class-name="myclass">
|
<!-- <template slot="empty">数据正在加载中</template> -->
|
<el-table-column label="体检号" align="center" prop="tjNumber" width="160px" />
|
<el-table-column label="姓名" align="center" prop="cusName" width="90px" />
|
<el-table-column label="性别" align="center" prop="cusSex" width="60px">
|
<template slot-scope="scope">
|
<span v-if="scope.row.cusSex == '0'">男</span>
|
<span v-if="scope.row.cusSex == '1'">女</span>
|
<span v-if="scope.row.cusSex == '2'">未知</span>
|
<span v-if="scope.row.cusSex == '9'">未说明性别</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="出生日期" align="center" prop="cusBrithday" width="100px" />
|
<el-table-column label="电话" align="center" prop="cusPhone" width="100px" />
|
<el-table-column label="体检类型" align="center" prop="tjType" width="80px" />
|
<el-table-column label="登记时间" align="center" prop="tjTime" width="160px">
|
</el-table-column>
|
<el-table-column label="体检时间" align="center" prop="tjTime" width="100px">
|
<template slot-scope="scope">
|
<span>{{ parseTime(scope.row.tjTime, "{y}-{m}-{d}") }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="未检项" prop="notCheckeds" :show-overflow-tooltip="true" />
|
<el-table-column label="操作" align="center" width="130px">
|
<template slot-scope="scope">
|
<el-button type="primary" icon="el-icon-first-aid-kit" size="mini" @click="Changeapplyfor(scope.row)"
|
title="会诊申请" v-if="tjStatus == '1'"></el-button>
|
<el-button type="primary" icon="el-icon-share" size="mini" @click="handleClick(scope.row)"
|
title="详情"></el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<div class="pag">
|
<div class="pag1">
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.pageSize"
|
@pagination="getList" />
|
</div>
|
</div>
|
</template>
|
|
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
|
<el-row>
|
<el-col :span="9" v-if="hzlogList.length >= 1">
|
<h3>会诊申请记录</h3>
|
<el-table :data="hzlogList" style="width: 100%" border>
|
<el-table-column label="申请人" align="center" prop="hzDoctorName" width="100px" />
|
<el-table-column label="科室" align="center" prop="hzDeptName" />
|
<el-table-column label="操作" align="center" width="150px">
|
<template slot-scope="scope">
|
<el-button type="primary" size="mini" @click="hadleedit(scope.row)" v-if="
|
scope.row.hzReplyLogsList.length == 0 &&
|
scope.row.hzDoctorId == info.userId
|
">修改</el-button>
|
<el-button type="primary" size="mini" v-if="
|
scope.row.hzReplyLogsList.length == 0 &&
|
scope.row.hzDoctorId == info.userId
|
" @click="handledele(scope.row)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-col>
|
<el-col :span="14">
|
<h3 style="text-align: center">会诊记录申请</h3>
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form-item label="姓名" prop="cusName">
|
<el-input v-model="form.cusName" placeholder="请输入姓名" disabled />
|
</el-form-item>
|
<el-form-item label="体检号" prop="tjNumber">
|
<el-input v-model="form.tjNumber" placeholder="请输入体检号" disabled />
|
</el-form-item>
|
<el-form-item label="会诊科室" prop="hzType">
|
<el-radio-group v-model="form.hzType">
|
<el-radio-button label="0">全院会诊</el-radio-button>
|
<el-radio-button label="1">科室会诊</el-radio-button>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="选择科室" v-if="form.hzType == '1'" style="margin-top: 22px">
|
<el-select v-model="form.hzDeptId" multiple filterable style="width: 100%">
|
<el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName"
|
:value="item.deptId"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="申请人" prop="hzDoctorId" style="margin-top: 22px">
|
<el-select v-model="form.hzDoctorId" placeholder="请选择" style="width: 100%" filterable>
|
<el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<!-- <el-form-item label="申请时间" prop="createTime">
|
<el-date-picker v-model="form.createTime" type="datetime" placeholder="选择申请时间">
|
</el-date-picker>
|
</el-form-item> -->
|
</el-form>
|
</el-col>
|
</el-row>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="submitFormapply">确 定</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
</div>
|
</el-dialog>
|
|
<el-dialog :title="title" :visible.sync="foropen" width="1000px" append-to-body>
|
<el-row>
|
<el-col :span="8" v-if="hasdeptList.length >= 1">
|
<h3 style="text-align: center">会诊申请记录</h3>
|
<el-table :data="hasdeptList" style="width: 100%" border ref="tab" @selection-change="handleSelectionChange">
|
<el-table-column type="selection" width="50" align="center" />
|
<el-table-column label="申请人" align="center" prop="hzDoctorName" width="100px" />
|
<el-table-column label="科室" align="center" prop="hzDeptName" width="260px" />
|
</el-table>
|
</el-col>
|
<el-col :span="16" style="padding: 0 10px">
|
<h3 style="text-align: center">会诊意见</h3>
|
<div v-if="hzReplyLogsList.length >= 1" style="margin-bottom: 10px">
|
<div v-for="(item, index) in hzReplyLogsList" :key="index"
|
style="padding-bottom: 5px; border-bottom: 1px solid black">
|
<!-- <div>会诊科室:{{ item.replyDeptName }}</div> -->
|
<div>医生:{{ item.hzDoctorName }}</div>
|
<div>回复:{{ item.replyContent }}</div>
|
</div>
|
</div>
|
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea">
|
</el-input>
|
<div style="padding: 10px 10px">
|
<el-button type="primary" @click="submitFormreply">回复</el-button>
|
</div>
|
</el-col>
|
</el-row>
|
</el-dialog>
|
|
<el-dialog title="填写是否重大阳性" :visible.sync="checkval" width="800px" append-to-body>
|
<el-form ref="form" :model="formIn" label-width="100px">
|
<el-form-item label="姓名">
|
<el-input v-model="formIn.cusName" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="体检号">
|
<el-input v-model="formIn.tjNumber" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="父项名称">
|
<el-input v-model="Parentcheck.proName" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="子项名称">
|
<el-input v-model="formIn.proName" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="重大阳性">
|
<el-radio-group v-model="formIn.flag">
|
<el-radio label="1">是</el-radio>
|
<el-radio label="0">否</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="等级">
|
<el-select v-model="formIn.level" placeholder="请选择" filterable style="width: 100%">
|
<el-option v-for="item in dict.type.lj_positive" :key="item.value" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="备注">
|
<el-input type="textarea" v-model="formIn.remark"></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="submitcheckval">确 定</el-button>
|
<el-button @click="cancell">取 消</el-button>
|
</div>
|
</el-dialog>
|
|
<el-dialog title="PDF 预览" :visible.sync="dialogVisible" :close-on-click-modal="false">
|
<div class="main">
|
<iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe>
|
</div>
|
</el-dialog>
|
|
<!-- 点击右边弹出层 -->
|
<el-drawer :visible.sync="drawer" :with-header="false" size="70%" :before-close="handleClose">
|
<div style="font-size: 14px">
|
<table style="
|
width: 96%;
|
height: 70px;
|
margin: 10px 10px;
|
margin-bottom: 10px;
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
font-size: 16px;
|
" cellspacing="4">
|
<caption style="background-color: #f8f8f9; font-size: 18px">
|
填写{{
|
tableAll.cusName
|
}}的体检资料
|
</caption>
|
<tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
|
<td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
|
姓名:
|
</td>
|
<td style="border: 1px solid #dfe6ec; border-collapse: collapse">
|
{{ tableAll.cusName }}
|
<template slot-scope="scope">
|
<span v-if="scope.row.cusSex == '0'">男</span>
|
<span v-if="scope.row.cusSex == '1'">女</span>
|
<span v-if="scope.row.cusSex == '2'">未知</span>
|
<span v-if="scope.row.cusSex == '9'">未说明性别</span>
|
</template>
|
</td>
|
<td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
|
性别:
|
</td>
|
<td style="border: 1px solid #dfe6ec; border-collapse: collapse">
|
{{
|
tableAll.cusSex == 0
|
? "男"
|
: tableAll.cusSex == 1
|
? "女"
|
: "未知"
|
}}
|
</td>
|
</tr>
|
<tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
|
<td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
|
体检单号:
|
</td>
|
<td style="border: 1px solid #dfe6ec; border-collapse: collapse">
|
{{ tableAll.tjNumber }}
|
</td>
|
<td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
|
体检时间:
|
</td>
|
<td style="border: 1px solid #dfe6ec; border-collapse: collapse">
|
{{ date }}
|
</td>
|
</tr>
|
</table>
|
</div>
|
<div style="display: flex">
|
<div style="margin: 10px 10px" v-if="hasdeptList.length >= 1">
|
<el-button type="primary" size="mini" @click="Changeapply()">会诊申请</el-button>
|
</div>
|
<div style="margin: 10px 10px">
|
<el-button type="primary" size="mini" @click="historicalreport()">历史报告</el-button>
|
</div>
|
<div style="margin: 10px 10px">
|
<el-button type="primary" size="mini" @click="jianqian">检前问诊</el-button>
|
</div>
|
<div style="margin: 10px 10px">
|
<el-button type="primary" size="mini" @click="result">检查检验结果</el-button>
|
</div>
|
</div>
|
|
<el-row>
|
<el-col v-show="baogaoqian">
|
<template>
|
<el-tabs v-model="radio" type="border-card" @tab-click="handleTabClick" style="margin-left: 10px">
|
<el-tab-pane :label="item.proName" :name="item.proId" v-for="(item, index) in Parent" :key="index"
|
:lazy="false">
|
<el-table class="bgc" v-loading="loading" :data="proParentList.sons" border height="460px"
|
style="width: 96%; margin: 10px 10px" :row-class-name="tableRowClassName">
|
<el-table-column prop="project.proName" label="检测项目" width="150">
|
</el-table-column>
|
<el-table-column prop="proResult" label="检测结果" width="150">
|
<template slot-scope="{ row, $index }">
|
<el-input type="textarea" autosize size="mini" v-model="row.proResult"
|
:ref="`input-item${index}-row${$index}`"
|
@keydown.enter.native="keyInputConfirm($event, index, $index)" @focus="handleFocus(row)"
|
@blur="handleInputConfirm(row)" @input="vale($event, row)"
|
:disabled="row.project.proName === 'BMI'"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column prop="exceptionDesc" label="异常" width="55px" align="center">
|
<template slot-scope="scope">
|
<el-checkbox v-model="scope.row.exceptionDesc" @change="changDesc(scope.row)"
|
:disabled="scope.row.project.sfcyyc === 1 || scope.row.project.proName === 'BMI'"></el-checkbox>
|
</template>
|
</el-table-column>
|
<el-table-column label="规则" width="70">
|
<template slot-scope="scope">
|
<el-button class="blue-button" @click="handleguize(scope.row)">...</el-button>
|
</template>
|
</el-table-column>
|
<el-table-column prop="project.proMetering" label="单位" width="55">
|
</el-table-column>
|
<el-table-column label="参考范围" width="70" align="center">
|
<template slot-scope="scope">
|
|
{{ scope.row.project.proScope }}
|
|
</template>
|
</el-table-column>
|
<el-table-column prop="conclusion" label="结果结论" width="200">
|
<template slot-scope="scope">
|
<el-input size="mini" type="textarea" autosize v-model="scope.row.conclusion" autocomplete="off"
|
placeholder="请输入结果结论" disabled></el-input>
|
</template>
|
</el-table-column>
|
|
<el-table-column prop="isReturn" label="复诊" width="60px" align="center">
|
<template slot-scope="scope">
|
<el-checkbox v-model="scope.row.isReturn"></el-checkbox>
|
</template>
|
</el-table-column>
|
|
<el-table-column prop="isPositive" label="重大阳性" width="55">
|
<template slot-scope="scope">
|
<el-switch v-model="scope.row.isPositive" active-value="1" inactive-value="0"
|
@change="checkboxchange(scope.row)"></el-switch>
|
</template>
|
</el-table-column>
|
<el-table-column prop="proAdvice" label="结果建议">
|
<template slot-scope="scope">
|
<el-popover placement="top" trigger="hover" width="400">
|
<div>
|
{{ scope.row.proAdvice }}
|
</div>
|
<div slot="reference" class="jianyi">
|
<el-input type="textarea" autosize v-model="scope.row.proAdvice" placeholder="请输入结果建议"
|
:disabled="true"></el-input>
|
</div>
|
</el-popover>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<div style="font-size: 14px; overflow-y: auto; height: 286px" class="a">
|
<table style="
|
width: 96%;
|
margin: 4px 10px;
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
" cellspacing="4">
|
<tr style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
病种选择:
|
</td>
|
<td @click="bzxz" style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
<el-input type="textarea" placeholder="请选择内容" v-model="titles" rows="2">
|
</el-input>
|
</td>
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
主检医师:
|
</td>
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
<el-select v-model="doctorName" placeholder="请选择" style="width: 100%" v-if="deptAdviceList"
|
@change="selName" filterable>
|
<el-option v-for="item in userList" :key="item.userId" :label="item.nickName"
|
:value="item.userId">
|
</el-option>
|
</el-select>
|
</td>
|
</tr>
|
<tr style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
建议:
|
</td>
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
" colspan="2">
|
<div style="margin: 0 0px 10px 15px">
|
<el-button type="primary" @click="propoChange"
|
style="margin-top: 10px; height: 37px">快捷建议</el-button>
|
<el-button type="primary" @click="proposalChange"
|
style="margin-top: 10px; height: 37px">生成建议</el-button>
|
</div>
|
<el-input type="textarea" placeholder="请输入内容" v-model="proParentList.remark" rows="7">
|
</el-input>
|
</td>
|
</tr>
|
</table>
|
|
<div slot="footer" class="dialog-footers1">
|
<el-button type="primary" @click="determine">提 交</el-button>
|
</div>
|
</div>
|
</el-tab-pane>
|
</el-tabs>
|
</template>
|
</el-col>
|
<el-col :span="18" v-show="baogaohou">
|
<template>
|
<el-tabs v-model="radio" type="border-card" @tab-click="handleTabClick" style="margin-left: 10px">
|
<el-tab-pane :label="item.proName" :name="item.proId" v-for="(item, index) in Parent" :key="index"
|
:lazy="false">
|
<el-table class="bgc" v-loading="loading" :data="proParentList.sons" border height="460px"
|
style="width: 96%; margin: 10px 10px" :row-class-name="tableRowClassName">
|
<el-table-column prop="project.proName" label="检测项目" width="100">
|
</el-table-column>
|
<el-table-column prop="proResult" label="检测结果" width="150">
|
<template slot-scope="{ row, $index }">
|
<el-input type="textarea" autosize size="mini" v-model="row.proResult"
|
:ref="`input-item${index}-row${$index}`"
|
@keydown.enter.native="keyInputConfirm($event, index, $index)" @focus="handleFocus(row)"
|
@blur="handleInputConfirm(row)" @input="vale($event, row)"
|
:disabled="row.project.proName === 'BMI'"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column label="规则" width="70">
|
<template slot-scope="scope">
|
<el-button class="blue-button" @click="handleguize(scope.row)">...</el-button>
|
</template>
|
</el-table-column>
|
<el-table-column prop="project.proMetering" label="单位" width="55">
|
</el-table-column>
|
<el-table-column prop="project.proScope" label="参考范围" width="80">
|
</el-table-column>
|
|
<el-table-column prop="exceptionDesc" label="异常" width="55px" align="center">
|
<template slot-scope="scope">
|
<el-checkbox v-model="scope.row.exceptionDesc"
|
:disabled="scope.row.project.sfcyyc === 1"></el-checkbox>
|
</template>
|
</el-table-column>
|
<el-table-column prop="isReturn" label="复诊" width="55px" align="center">
|
<template slot-scope="scope">
|
<el-checkbox v-model="scope.row.isReturn"></el-checkbox>
|
</template>
|
</el-table-column>
|
|
<el-table-column prop="isPositive" label="重大阳性" width="55">
|
<template slot-scope="scope">
|
<el-switch v-model="scope.row.isPositive" active-value="1" inactive-value="0"
|
@change="checkboxchange(scope.row)"></el-switch>
|
</template>
|
</el-table-column>
|
<el-table-column prop="proAdvice" label="结果建议">
|
<template slot-scope="scope">
|
<el-popover placement="top" trigger="hover" width="400">
|
<div>
|
{{ scope.row.proAdvice }}
|
</div>
|
<div slot="reference" class="jianyi">
|
<el-input type="textarea" autosize v-model="scope.row.proAdvice" placeholder="请输入结果建议"
|
:disabled="true"></el-input>
|
</div>
|
</el-popover>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<div style="font-size: 14px; overflow-y: auto; height: 286px">
|
<table style="
|
width: 96%;
|
margin: 4px 10px;
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
" cellspacing="4">
|
<tr style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
病种选择:
|
</td>
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
<el-input type="textarea" placeholder="请选择内容" v-model="titles" rows="2">
|
</el-input>
|
<!-- <el-select
|
v-model="value"
|
multiple
|
placeholder="请选择"
|
style="width: 100%; height: 45px"
|
v-if="deptAdviceList"
|
@change="sel"
|
filterable
|
>
|
<el-option
|
v-for="item in deptAdviceList"
|
:key="item.id"
|
:label="item.title"
|
:value="item.id"
|
>
|
</el-option>
|
</el-select> -->
|
</td>
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
主检医师:
|
</td>
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
<el-select v-model="doctorName" placeholder="请选择" style="width: 100%" v-if="deptAdviceList"
|
@change="selName" filterable>
|
<el-option v-for="item in userList" :key="item.userId" :label="item.nickName"
|
:value="item.userId">
|
</el-option>
|
</el-select>
|
</td>
|
</tr>
|
<tr style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
<div style="margin: 0 0px 10px 15px">
|
<el-button type="primary" @click="propoChange"
|
style="margin-top: 10px; height: 37px">快捷建议</el-button>
|
<el-button type="primary" @click="proposalChange"
|
style="margin-top: 10px; height: 37px">生成建议</el-button>
|
</div>
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
">
|
建议:
|
</td>
|
<td style="
|
border: 1px solid #dfe6ec;
|
border-collapse: collapse;
|
" colspan="2">
|
<el-input type="textarea" placeholder="请输入内容" v-model="proParentList.remark" rows="7">
|
</el-input>
|
</td>
|
</tr>
|
</table>
|
|
<div slot="footer" class="dialog-footers">
|
<el-button type="primary" @click="determine">提 交</el-button>
|
</div>
|
</div>
|
</el-tab-pane>
|
</el-tabs>
|
</template>
|
</el-col>
|
<el-col :span="6" style="margin-top: 15px">
|
<Historicalreport v-show="lishi" :reportHistorydata="reportHistorydata"></Historicalreport>
|
</el-col>
|
</el-row>
|
</el-drawer>
|
<Public ref="aaa" :row="row" @add="handleChanges" />
|
<jianceResult ref="bbb" @add="handleChangesZt" />
|
<el-dialog title="提示" :visible.sync="jianqians" width="1000px" :before-close="handleClose1">
|
<jianqianwenzhen :jianqianwenzhendata="jianqianwenzhendata" v-if="flags"></jianqianwenzhen>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="jianqians = false">取 消</el-button>
|
</span>
|
</el-dialog>
|
<proposal ref="proposal" :cusobj="cusobj" @event1="eventchange($event)" />
|
<createproposal ref="createproposal" :creatobj="creatobj" />
|
|
<!-- 检查检验结果按钮的弹框 -->
|
<el-dialog title="检查检验结果" :visible.sync="openOne" width="80%">
|
<div style="
|
width: 100%;
|
margin-left: 10px;
|
display: flex;
|
justify-content: space-around;
|
">
|
<div style="width: 44%">
|
<el-table v-loading="loading" border :data="xiangmuList" height="520" ref="tab1" highlight-current-row>
|
<el-table-column label="科室" align="center" prop="deptName" width="100" :show-overflow-tooltip="true" />
|
<el-table-column label="项目" align="center" prop="proName" width="150" :show-overflow-tooltip="true" />
|
<el-table-column label="状态" align="center" prop="type" :show-overflow-tooltip="true" width="100">
|
<template slot-scope="scope">
|
<span v-if="scope.row.type == '0'" :style="type == 0 ? { color: 'red' } : { color: '#409EFF' }">
|
{{ type == 0 ? "未 检" : "在 检" }}
|
</span>
|
<span v-if="scope.row.type == '1'">已完成</span>
|
<span v-if="scope.row.type == '2'">弃检</span>
|
<span v-if="scope.row.type == '3'">延期</span>
|
</template>
|
</el-table-column>
|
|
<el-table-column label="检查时间" align="center" prop="bcupdateTime" width="160" />
|
|
<el-table-column label="操作" align="center" width="120px">
|
<template slot-scope="scope">
|
<!-- <el-button
|
size="mini"
|
type="text"
|
:disabled="scope.row.type === 1"
|
@click="qijian(scope.row)"
|
>{{ scope.row.type === 0 ? "弃检" : "恢复" }}</el-button
|
> -->
|
|
<el-button size="mini" type="text" :disabled="scope.row.type === 0 || scope.row.type === 2"
|
@click="queryResultone(scope.row)">结果查询</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
<div style="width: 44%; margin-left: 20px">
|
<div style="text-align: center; background-color: #aad8df">
|
{{ name || "" }}
|
</div>
|
<div class="a">
|
<div v-if="jyjc == 0">
|
<el-table :data="jieguoList" border :row-style="changRed" height="520" highlight-current-row
|
style="width: 100%" :header-cell-style="{ background: '#AAD8DF' }">
|
<el-table-column label="检测项目" prop="pro_name">
|
</el-table-column>
|
<el-table-column label="检测结果" prop="pro_result">
|
</el-table-column>
|
<el-table-column label="参考范围" prop="ckfw">
|
</el-table-column>
|
</el-table>
|
</div>
|
|
<div v-if="jyjc == 1">
|
<div style="text-align: center; background-color: #aad8df"></div>
|
<div class="check-result-container">
|
<div class="check-item">
|
<div class="check-title">检查所见:</div>
|
<div class="check-description" :style="{ color: isRed ? 'red' : '' }">
|
{{ jieguoList[0].pro_result }}
|
</div>
|
</div>
|
|
<div class="check-item">
|
<div class="check-title">检查结论:</div>
|
<div class="check-description" :style="{ color: isRed ? 'red' : '' }">
|
{{ jieguoList[0].yxzd || "暂无结论" }}
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</el-dialog>
|
|
<el-dialog title="选择病种" :visible.sync="taocan" width="80%" height="700px" :close-on-click-modal="false">
|
<el-tabs type="border-card" style="min-height: 538px; margin: 0 10px; width: 100%" @tab-click="handleClick"
|
v-model="activeNames">
|
<el-tab-pane label="病种" name="first">
|
<div class="tab8">
|
<div class="tab3">
|
<el-form @submit.native.prevent :model="queryParam1" ref="tableList" :inline="true" label-width="76px"
|
style="margin-top: 10px">
|
<el-form-item>
|
<el-input placeholder="输入关键字进行过滤" v-model="queryParam1.nr" clearable>
|
</el-input>
|
</el-form-item>
|
|
<el-form-item>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuerys">搜索</el-button>
|
</el-form-item>
|
</el-form>
|
<el-table ref="multipleTable" border :data="deptAdviceList" height="430px"
|
@selection-change="handleSelectionChanges">
|
<el-table-column type="selection" width="40"> </el-table-column>
|
<el-table-column prop="title" label="病种名称" align="center" width="130px"></el-table-column>
|
<el-table-column prop="advice" label="建议" align="center" :show-overflow-tooltip="true">
|
</el-table-column>
|
</el-table>
|
<pagination v-show="total1 > 0" :total="total1" :page.sync="queryParam1.page"
|
:limit.sync="queryParam1.pageSize" @pagination="getbzlist" />
|
</div>
|
<div class="tab4">
|
<div class="tab4_txt">
|
<h4>已选病种</h4>
|
</div>
|
|
<el-table border :data="deptAdviceList1" height="430px">
|
<el-table-column prop="title" label="病种名称" align="center">
|
</el-table-column>
|
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width"
|
width="50px">
|
<template slot-scope="scope">
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
title="删除"></el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<!-- <el-table
|
:data="DataList"
|
border
|
style="width: 100%"
|
height="400"
|
:span-method="objectSpanMethod"
|
>
|
<el-table-column prop="propinName" label="检查项目">
|
</el-table-column>
|
<el-table-column
|
prop="proName"
|
label="明细项目"
|
width="260px"
|
>
|
</el-table-column>
|
<el-table-column prop="proPrice" label="原价" width="56px">
|
</el-table-column>
|
|
<el-table-column
|
label="操作"
|
align="center"
|
fixed="right"
|
class-name="small-padding fixed-width"
|
width="50px"
|
>
|
<template slot-scope="scope">
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-delete"
|
@click="handleDelete(scope.row)"
|
title="删除"
|
></el-button>
|
</template>
|
</el-table-column>
|
</el-table> -->
|
|
<!-- <el-collapse v-model="activeName" accordion v-if="list1">
|
<div>
|
<el-collapse-item title="请选择项目">
|
<el-table
|
:data="DataList"
|
border
|
style="width: 100%"
|
height="400"
|
:span-method="objectSpanMethod"
|
>
|
<el-table-column
|
prop="proName"
|
label="项目"
|
width="180"
|
>
|
</el-table-column>
|
<el-table-column prop="ordPrice" label="原价">
|
</el-table-column>
|
</el-table>
|
</el-collapse-item>
|
</div>
|
</el-collapse> -->
|
</div>
|
</div>
|
</el-tab-pane>
|
</el-tabs>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="taocan = false">取 消</el-button>
|
<el-button type="primary" @click="queding">确 定</el-button>
|
</span>
|
</el-dialog>
|
</div>
|
</template>
|
|
|
<script>
|
import jianceResult from "@/components/jianceResult";
|
import proposal from "@/components/proposal";
|
import createproposal from "@/components/createproposal";
|
import { getInfoById } from "@/api/hosp/history";
|
import jianqianwenzhen from "@/components/jianqianwenzhen";
|
import Public from "@/components/public";
|
import { getPdf } from "@/api/hosp/order";
|
import { getInfo } from "@/api/login";
|
import Historicalreport from "@/components/Historicalreport";
|
import {
|
getProList,
|
getSons,
|
AutoGetRule,
|
getaddRemark,
|
getParentList,
|
getParentId,
|
getDeptAdvice,
|
reportHistory,
|
getAdviceByTjNumAndPro,
|
getXm,
|
} from "@/api/doctor/check";
|
import { addBigPositive } from "@/api/doctor/bigPositive";
|
import { addReplylog, hzHasDept } from "@/api/hosp/replylog";
|
import { listHzlog, addHzlog, delHzlog, updateHzlog } from "@/api/hosp/hzlog";
|
import { getlistUser } from "@/api/system/user";
|
import { getChildList } from "@/api/system/dept";
|
import { resultList } from "@/api/doctor/examination";
|
import { selectZT } from "@/api/system/package";
|
|
export default {
|
dicts: ["sys_user_sex", "sys_yes_no", "tj_result_type", "lj_positive"],
|
name: "check",
|
components: {
|
Public,
|
Historicalreport,
|
jianqianwenzhen,
|
createproposal,
|
proposal,
|
jianceResult,
|
},
|
data() {
|
return {
|
remakes: "",
|
titles: "",
|
type: null,
|
advice: "",
|
idss: [],
|
vaids: [],
|
vaids1: [],
|
activeNames: "first",
|
taocan: false,
|
creatobj: {},
|
dataText: [],
|
propform: {},
|
cusobj: {},
|
baogaoqian: true,
|
baogaohou: false,
|
flags: false,
|
lishi: false,
|
jianqianwenzhendata: [],
|
jianqians: false,
|
selected: false,
|
checkval: false,
|
loading: false,
|
open: false,
|
foropen: false,
|
dialogVisible: false,
|
openOne: false,
|
reportHistorydata: [],
|
url: "",
|
cateringList: [],
|
orderDetailId: "",
|
textarea: "",
|
title: "",
|
formIn: {},
|
focusrow: {},
|
hzlogList: [],
|
rows: [],
|
id: [],
|
deptAdviceList: [],
|
deptAdviceList1: [],
|
deptAdviceList2: [],
|
deptAdviceList3: [],
|
deptAdviceList4: [],
|
value: {},
|
remark: "",
|
remarks: "",
|
total: 0,
|
total1: 0,
|
tjStatus: "0",
|
drawer: false,
|
Parentcheck: {},
|
drawerList: [],
|
tableList: [],
|
deptList: [],
|
jieguoList: [],
|
jyjc: null,
|
tableAll: {},
|
row: {},
|
info: {},
|
allList: [],
|
autorule: [],
|
vals: {},
|
form: {
|
createTime: new Date(),
|
},
|
doctorName: "",
|
proName: "",
|
proId: "",
|
company: "",
|
tjStandardGtValue: "",
|
xiangmuList: [],
|
name: "",
|
userList: null,
|
curindex: {},
|
Parent: [],
|
hzReplyLogsList: [],
|
hasdeptList: [],
|
radio: "",
|
nums: "",
|
proParentList: [],
|
tjNumber: "",
|
DeptadviceAll: [],
|
project: {},
|
summaryList: [],
|
summaryAll: [],
|
tjOrderDetailList: [],
|
tjOrderDetail: [],
|
deptId: "",
|
userId: "",
|
nickName: "",
|
doctorNames: "",
|
date: new Date(new Date().getTime() + 8 * 3600 * 1000)
|
.toJSON()
|
.substr(0, 19)
|
.replace("T", " "),
|
queryParams: {
|
page: 1,
|
pageSize: 10,
|
tjNumber: "",
|
type: "",
|
name: null,
|
},
|
queryParam1: {
|
nr: null,
|
page: 1,
|
pageSize: 10,
|
},
|
queryParam: {
|
page: 1,
|
pageSize: 1000,
|
},
|
rules: {
|
hzType: [
|
{ required: true, message: "会诊科室为必填项", trigger: "change" },
|
],
|
},
|
};
|
},
|
|
created() {
|
this.getList();
|
this.getListUser();
|
},
|
|
mounted() {
|
let _this = this;
|
this.timer = setInterval(() => {
|
_this.date = new Date(new Date().getTime() + 8 * 3600 * 1000)
|
.toJSON()
|
.substr(0, 19)
|
.replace("T", " ");
|
}, 1000);
|
|
this.$nextTick(() => {
|
this.$refs.inputName.focus();
|
});
|
},
|
beforeDestroy() {
|
if (this.timer) {
|
clearInterval(this.timer);
|
}
|
},
|
|
methods: {
|
getBMIStatus(row) {
|
const bmi = parseFloat(row.proResult);
|
if (isNaN(bmi) || !row.proResult) return ''; // 处理无效或空的BMI值
|
if (bmi > 28) {
|
row.exceptionDesc = true; // 自动勾选异常复选框
|
row.conclusion = '偏高'; // 设置结论
|
return '偏高';
|
}
|
if (bmi < 12) {
|
row.exceptionDesc = true; // 自动勾选异常复选框
|
row.conclusion = '偏低'; // 设置结论
|
return '偏低';
|
}
|
row.exceptionDesc = false; // 正常范围内取消勾选
|
row.conclusion = '正常'; // 设置结论
|
return '正常';
|
},
|
// 计算 BMI
|
calculateBMI(height, weight) {
|
if (height && weight) {
|
const heightInMeters = parseFloat(height) / 100; // 厘米转换为米
|
const weightInKg = parseFloat(weight);
|
const bmi = weightInKg / (heightInMeters * heightInMeters);
|
return bmi.toFixed(1); // 保留一位小数
|
}
|
return '';
|
},
|
|
// 实时更新 BMI
|
vale(value, row) {
|
console.log(3333)
|
if (row.project.proName === '身高' || row.project.proName === '体重') {
|
const heightRow = this.proParentList.sons.find(
|
item => item.project.proName === '身高'
|
);
|
const weightRow = this.proParentList.sons.find(
|
item => item.project.proName === '体重'
|
);
|
const bmiRow = this.proParentList.sons.find(
|
item => item.project.proName === 'BMI'
|
);
|
|
if (heightRow && weightRow && bmiRow) {
|
const height = row.project.proName === '身高' ? value : heightRow.proResult;
|
const weight = row.project.proName === '体重' ? value : weightRow.proResult;
|
const bmi = this.calculateBMI(height, weight);
|
bmiRow.proResult = bmi || ''; // 实时更新BMI值
|
this.getBMIStatus(bmiRow); // 检查BMI状态并更新异常复选框
|
}
|
}
|
|
// 现有的规则检查逻辑保持不变
|
this.focusrow = row;
|
this.proResult = row;
|
const pattern3 = new RegExp("[0-9]+");
|
if (row.proResult) { }
|
if (pattern3.test(row.proResult)) {
|
let data = {
|
proId: this.focusrow.proId,
|
cusId: this.tableAll.cusId,
|
tjNum: this.tableAll.tjNumber,
|
keyNum: this.proResult.proResult,
|
};
|
AutoGetRule(data).then((res) => {
|
this.focusrow.conclusion = "";
|
if (res.data) {
|
this.autorule = res.data;
|
this.focusrow.rulesList = res.data;
|
if (row.project.sfcyyc == 1) {
|
return;
|
} else {
|
if (res.data.length > 0) {
|
const conditions = ["正常", "未见异常", "阴性", "未见明显异常"];
|
this.focusrow.exceptionDesc = !conditions.some((condition) =>
|
this.autorule[0].bz.includes(condition)
|
);
|
} else {
|
this.focusrow.exceptionDesc = false;
|
}
|
}
|
if (this.autorule.length !== 0 && (this.autorule[0] || this.autorule[0].nr)) {
|
this.focusrow.proAdvice = this.autorule[0].nr;
|
}
|
this.autorule.forEach((item) => {
|
this.focusrow.conclusion += this.focusrow.conclusion ? item.bz : item.bz;
|
});
|
}
|
});
|
}
|
},
|
|
|
// 输入确认时更新 BMI
|
handleInputConfirm(row) {
|
if (row.proResult) {
|
if (row.project.proName === '身高' || row.project.proName === '体重') {
|
const heightRow = this.proParentList.sons.find(
|
item => item.project.proName === '身高'
|
);
|
const weightRow = this.proParentList.sons.find(
|
item => item.project.proName === '体重'
|
);
|
const bmiRow = this.proParentList.sons.find(
|
item => item.project.proName === 'BMI'
|
);
|
|
if (heightRow && weightRow && bmiRow) {
|
const height = heightRow.proResult;
|
const weight = weightRow.proResult;
|
const bmi = this.calculateBMI(height, weight);
|
bmiRow.proResult = bmi || '';
|
this.getBMIStatus(bmiRow); // 检查BMI状态并更新异常复选框
|
}
|
}
|
}
|
// 现有的规则检查逻辑保持不变
|
this.focusrow = row;
|
this.proResult = row;
|
const pattern3 = new RegExp("[0-9]+");
|
if (pattern3.test(row.proResult)) {
|
let data = {
|
proId: this.focusrow.proId,
|
cusId: this.tableAll.cusId,
|
tjNum: this.tableAll.tjNumber,
|
keyNum: this.proResult.proResult,
|
};
|
AutoGetRule(data).then((res) => {
|
this.focusrow.conclusion = "";
|
if (res.data) {
|
this.autorule = res.data;
|
this.focusrow.rulesList = res.data;
|
if (row.project.sfcyyc == 1) {
|
return;
|
} else {
|
if (res.data.length > 0) {
|
const conditions = ["正常", "未见异常", "阴性", "未见明显异常"];
|
this.focusrow.exceptionDesc = !conditions.some((condition) =>
|
this.autorule[0].bz.includes(condition)
|
);
|
} else {
|
this.focusrow.exceptionDesc = false;
|
}
|
}
|
if (this.autorule.length !== 0 && (this.autorule[0] || this.autorule[0].nr)) {
|
this.focusrow.proAdvice = this.autorule[0].nr;
|
}
|
this.autorule.forEach((item) => {
|
this.focusrow.conclusion += this.focusrow.conclusion ? item.bz : item.bz;
|
});
|
}
|
});
|
}
|
this.rows.push(row);
|
},
|
|
// 初始化数据时计算 BMI
|
getParentIdsss() {
|
let data = {
|
tjNumber: this.tjNumber,
|
proParentId: this.nums,
|
};
|
getParentId(data).then((response) => {
|
if (response.data != {}) {
|
this.proParentList = response.data;
|
const heightRow = this.proParentList.sons.find(
|
item => item.project.proName === '身高'
|
);
|
const weightRow = this.proParentList.sons.find(
|
item => item.project.proName === '体重'
|
);
|
const bmiRow = this.proParentList.sons.find(
|
item => item.project.proName === 'BMI'
|
);
|
if (heightRow && weightRow && bmiRow) {
|
const bmi = this.calculateBMI(heightRow.proResult, weightRow.proResult);
|
bmiRow.proResult = bmi || '';
|
}
|
this.proParentList.xiaoJie.forEach((item) => {
|
this.titles += item.title + ",";
|
});
|
}
|
|
this.loading = false;
|
this.value = [];
|
if (this.proParentList.xiaoJieIds != null) {
|
if (this.proParentList.xiaoJieIds.length != 0) {
|
this.proParentList.xiaoJieIds.forEach((item2) => {
|
let item = Number(item2);
|
this.value.push(item);
|
});
|
}
|
}
|
this.proParentList.sons.forEach((item) => {
|
this.doctorName = item.doctorName;
|
|
if (this.doctorName == null) {
|
this.userList.forEach((element) => {
|
const userName = this.$store.state.user.name;
|
if (userName == element.userName) {
|
this.doctorName = element.nickName;
|
}
|
});
|
}
|
if (item.isReturn == 1) item.isReturn = true;
|
if (item.isReturn == 0) item.isReturn = false;
|
if (item.exceptionDesc == "1") item.exceptionDesc = true;
|
if (item.exceptionDesc == "0" || item.project.sfcyyc == 1) item.exceptionDesc = false;
|
});
|
if (this.proParentList.xiaoJie && this.proParentList.xiaoJie.length != 0) {
|
this.Parent.forEach((item3) => {
|
if (item3.proId === this.nums) {
|
this.proParentList.remark = item3.remark;
|
}
|
});
|
} else {
|
this.proParentList.remark = "";
|
}
|
});
|
},
|
|
handleFocus(row) {
|
console.log(11111)
|
this.autorule = [];
|
if (!row.resultType || row.resultType == 2) {
|
return;
|
} else {
|
this.curindex = row;
|
selectZT({
|
proId: row.proId,
|
}).then((res) => {
|
if (res.data.length > 0) {
|
this.$refs.bbb.title = "选择检测结果";
|
// this.$refs.bbb.proId = row.proId;
|
this.$refs.bbb.open = true;
|
this.$refs.bbb.getList(this.curindex);
|
} else {
|
this.$refs.bbb.open = false;
|
}
|
});
|
|
}
|
},
|
|
handleChangesZt(params) {
|
this.curindex.proResult = params.map((item) => item.ruleStr).join(",");
|
this.handleInputConfirm(this.curindex, params);
|
},
|
|
handleChanges(param1, param2) {
|
this.row.conclusion = param1;
|
this.row.rulesList = param2;
|
},
|
|
handleguize(row) {
|
this.row = row;
|
this.$refs.aaa.open = true;
|
this.$refs.aaa.title = "诊断结果结论";
|
this.$refs.aaa.getList(this.row);
|
},
|
|
tableRowClassName({ row }) {
|
if (row.exceptionDesc) return "warning-row";
|
return "";
|
},
|
|
getbzlist() {
|
this.loading = true;
|
getDeptAdvice(this.queryParam1).then((response) => {
|
if (response.data.list) {
|
this.deptAdviceList = response.data.list;
|
this.loading = false;
|
}
|
this.total1 = response.data.total;
|
});
|
},
|
|
handleQuerys() {
|
this.queryParam1.page = 1;
|
this.getbzlist();
|
},
|
|
bzxz() {
|
this.taocan = true;
|
let data = { proId: this.proId, tjNum: this.tableAll.tjNumber };
|
getAdviceByTjNumAndPro(data).then((res) => {
|
if (res.data) {
|
this.deptAdviceList3 = res.data;
|
this.deptAdviceList1 = [...new Set(this.deptAdviceList2.concat(this.deptAdviceList3))];
|
this.deptAdviceList3.forEach((items) => {
|
this.idss.push(items.id);
|
this.remakes += items.advice + ",";
|
});
|
}
|
});
|
},
|
|
result() {
|
let tjNumber = this.tableAll.tjNumber;
|
getXm(tjNumber).then((res) => {
|
this.xiangmuList = res.data;
|
if (this.xiangmuList.length > 0) this.openOne = true;
|
else {
|
this.openOne = false;
|
this.$modal.msgWarning("暂无项目与检查检验结果");
|
}
|
});
|
},
|
|
queryResultone(row) {
|
const tjNum = this.tableAll.tjNumber;
|
const proId = row.proId;
|
resultList(tjNum, proId).then((res) => {
|
this.jieguoList = res.data;
|
this.jyjc = this.jieguoList[0].jyjc;
|
const ycbz = this.jieguoList[0].ycbz;
|
this.isRed = ycbz === "1";
|
if (res.data.length > 0) {
|
this.drawer = true;
|
this.$nextTick(() => this.initInputDOM());
|
} else {
|
this.$message.warning("该项目没有结果");
|
}
|
});
|
},
|
|
changRed({ row }) {
|
if (row.ycbz === "1") return { color: "red" };
|
},
|
|
handleDelete(row) {
|
this.deptAdviceList1.forEach((item, index) => {
|
if (item.id == row.id) this.deptAdviceList1.splice(index, 1);
|
});
|
},
|
|
handleSelectionChanges(selection) {
|
this.deptAdviceList2 = this.deptAdviceList1;
|
if (selection.length > 1) {
|
const del_row = selection.shift();
|
this.$refs.multipleTable.toggleRowSelection(del_row, false);
|
}
|
selection.forEach((item) => this.deptAdviceList2.push(item));
|
this.deptAdviceList1 = [...new Set(this.deptAdviceList2.concat(this.deptAdviceList3))];
|
},
|
|
queding() {
|
if (this.proParentList.xiaoJie.length != 0) {
|
this.remakes = "";
|
this.titles = "";
|
this.deptAdviceList1.forEach((item1) => {
|
if (this.proParentList.remark != null) {
|
this.titles += item1.title + ",";
|
this.remakes += item1.advice + ",";
|
this.proParentList.remark = this.proParentList.remark + this.remakes;
|
this.value += item1.title + ",";
|
this.vaids.push(item1.id);
|
this.vaids1 = this.vaids.concat(this.idss);
|
} else {
|
this.titles += item1.title + ",";
|
this.proParentList.remark = item1.advice + ",";
|
this.value += item1.title + ",";
|
this.vaids.push(item1.id);
|
this.vaids1 = this.vaids.concat(this.idss);
|
}
|
});
|
this.taocan = false;
|
} else {
|
this.titles = "";
|
this.remakes = "";
|
this.deptAdviceList1.forEach((item) => {
|
this.titles += item.title + ",";
|
this.remakes += item.advice + ",";
|
this.vaids.push(item.id);
|
this.vaids1 = this.vaids.concat(this.idss);
|
});
|
if (this.proParentList.remark != null) {
|
this.proParentList.remark = this.remakes + this.proParentList.remark;
|
} else {
|
this.proParentList.remark = this.remakes;
|
}
|
this.taocan = false;
|
}
|
},
|
|
getListUser() {
|
getlistUser().then((response) => {
|
this.userList = response.data;
|
this.userList.forEach((element) => {
|
const userName = this.$store.state.user.name;
|
if (userName == element.userName) this.doctorName = element.nickName;
|
});
|
});
|
getInfo().then((response) => {
|
this.info = response.user;
|
this.deptId = response.user.deptId;
|
this.userId = response.user.userId;
|
this.nickName = response.user.nickName;
|
});
|
},
|
|
handleClose() {
|
this.drawer = false; // 只关闭抽屉,不刷新页面或重置数据
|
},
|
|
handleClose1() {
|
this.jianqians = false;
|
},
|
|
selName(val) {
|
this.doctorName = val;
|
},
|
|
changDesc(item) {
|
|
|
item.conclusion = item.exceptionDesc ? "异常" : "正常";
|
},
|
|
myclass(row, column, rowIndex, columnIndex) {
|
if (row.row.isPositive == 1) return "setclass";
|
},
|
|
sel(val) {
|
if (this.proParentList.xiaoJie.length != 0) {
|
this.deptAdviceList.forEach((item) => {
|
this.ids = item.id;
|
val.forEach((item1) => {
|
if (item1 === item.id && !this.proParentList.remark.includes(item.title)) {
|
this.proParentList.remark = this.proParentList.remark ? this.proParentList.remark + item.title + "," : item.title + ",";
|
}
|
});
|
});
|
} else {
|
this.proParentList.remark = "";
|
this.deptAdviceList.forEach((item) => {
|
this.ids = item.id;
|
val.forEach((item1) => {
|
if (item1 === item.id && !this.proParentList.remark.includes(item.title)) {
|
this.proParentList.remark = this.proParentList.remark ? this.proParentList.remark + item.title + "," : item.title + ",";
|
}
|
});
|
});
|
}
|
},
|
|
initInputDOM() {
|
const inputDoms = document.querySelectorAll('.el-input__inner');
|
inputDoms.forEach((item, index) => item.setAttribute('data-index', index));
|
this.inputDoms = inputDoms;
|
},
|
|
|
|
|
keyInputConfirm(event, index, currentRowIndex) {
|
// 阻止默认回车行为,比如提交表单
|
event.preventDefault();
|
event.stopPropagation()
|
const nextRowIndex = currentRowIndex + 1; // 计算下一行索引
|
// 如果下一行存在,则聚焦该行的输入框
|
if (nextRowIndex < this.proParentList.sons.length) {
|
this.$nextTick(() => {
|
const nextInputRef = `input-item${index}-row${nextRowIndex}`;
|
const nextInput = this.$refs[nextInputRef];
|
if (nextInput) {
|
// 处理 ref 可能为数组的情况(如动态渲染)
|
const target = Array.isArray(nextInput) ? nextInput[0] : nextInput;
|
target.focus(); // 聚焦输入框
|
// target.select(); // 可选:选中文本
|
}
|
});
|
}
|
|
},
|
|
getList() {
|
this.loading = true;
|
this.queryParams.type = this.tjStatus;
|
getProList(this.queryParams).then((response) => {
|
if (response.code == 200) {
|
this.loading = false;
|
if (response.data) {
|
this.tableList = response.data.date || response.data.customers || [];
|
this.total = response.data.total;
|
} else {
|
this.tableList = [];
|
}
|
}
|
});
|
},
|
|
radioChange(val) {
|
this.queryParams.type = val;
|
this.loading = true;
|
getProList(this.queryParams).then((response) => {
|
if (response.code == 200) {
|
this.loading = false;
|
this.tableList = response.data.date || response.data.customers || [];
|
this.total = response.data.total;
|
} else {
|
this.tableList = [];
|
}
|
});
|
},
|
|
hb() { },
|
|
propoChange() {
|
this.cusobj = { sex: this.tableAll.cusSex, isZj: 1 };
|
this.$refs.proposal.open = true;
|
this.$refs.proposal.title = "建议方案";
|
},
|
|
eventchange(data) {
|
this.dataText = data;
|
data.forEach((item) => this.proParentList.remark += item.advice);
|
},
|
|
proposalChange() {
|
if (this.proParentList.remark) {
|
this.creatobj = { proParentList: this.proParentList.remark, isZj: 1 };
|
this.$refs.createproposal.open = true;
|
this.$refs.createproposal.title = "常用建议维护";
|
} else {
|
this.$message({ type: "warning", message: "请先填写总检建议" });
|
}
|
},
|
|
submitForm() {
|
this.queryParams.page = 1;
|
this.loading = true;
|
this.queryParams.type = this.tjStatus;
|
getProList(this.queryParams).then((response) => {
|
if (response.code == 200) {
|
this.loading = false;
|
this.tableList = response.data.date || response.data.customers || [];
|
this.total = response.data.total;
|
this.queryParams.tjNumber = "";
|
} else {
|
this.tableList = [];
|
}
|
});
|
},
|
|
resetQuery() {
|
this.resetForm("tableList");
|
this.submitForm();
|
this.$nextTick(() => this.$refs.inputName.focus());
|
},
|
|
Changeapplyfor(row) {
|
this.open = true;
|
this.form = row;
|
this.form.hzDoctorId = this.info.userId;
|
getChildList().then((res) => this.deptList = res.data);
|
this.Hzlog(this.form.tjNumber);
|
},
|
|
checkboxchange(val) {
|
this.vals = val;
|
this.project = val.project;
|
this.formIn.tjNumber = this.tableAll.tjNumber;
|
this.formIn.cusId = this.tableAll.cusId;
|
this.formIn.cusName = this.tableAll.cusName;
|
this.formIn.proId = this.project.proId;
|
this.formIn.proName = this.project.proName;
|
this.formIn.orderId = val.orderId;
|
this.Parent.forEach((item) => {
|
if (this.radio == item.proId) {
|
this.Parentcheck.proName = item.proName;
|
this.formIn.proParentId = item.proId;
|
}
|
});
|
if (val.isPositive == "1") {
|
this.checkval = true;
|
this.formIn.flag = "0";
|
this.formIn.level = "";
|
} else {
|
this.formIn.flag = "0";
|
addBigPositive(this.formIn).then((res) => {
|
this.$modal.msgSuccess("删除成功");
|
this.getParentIdsss();
|
});
|
}
|
},
|
|
submitcheckval() {
|
addBigPositive(this.formIn).then((res) => {
|
this.$modal.msgSuccess("新增成功");
|
this.getParentIdsss();
|
this.checkval = false;
|
});
|
},
|
|
cancell() {
|
this.checkval = false;
|
this.vals.isPositive = "0";
|
},
|
|
Hzlog(val) {
|
let data = { tjNumber: val };
|
listHzlog(data).then((response) => {
|
this.hzlogList = response.rows;
|
this.hzlogList.forEach((item) => {
|
item.hzDeptName = item.hzType == "0" ? "全院会诊" : "";
|
if (item.hzType != "0") {
|
item.hzDeptIdList.forEach((item1) => {
|
this.deptList.forEach((item2) => {
|
if (item1 == item2.deptId) item.hzDeptName += item2.deptName + ",";
|
});
|
});
|
}
|
});
|
});
|
},
|
|
handledele(row) {
|
this.id = [row.id];
|
delHzlog(this.id).then((res) => {
|
this.$modal.msgSuccess("删除成功");
|
this.Hzlog(this.form.tjNumber);
|
});
|
},
|
|
hadleedit(row) {
|
this.form.hzType = row.hzType;
|
this.form.id = row.id;
|
},
|
|
submitFormapply() {
|
let data = {};
|
this.userList.forEach((item1) => {
|
if (this.form.hzDoctorId == item1.userId) this.form.hzDoctorName = item1.nickName;
|
});
|
if (this.form.hzType != undefined) {
|
this.$refs["form"].validate((valid) => {
|
if (valid) {
|
if (this.form.id != null) {
|
data = {
|
tjNumber: this.form.tjNumber,
|
userId: this.form.cusId,
|
userName: this.form.cusName,
|
hzDeptIdList: this.form.hzDeptId,
|
hzDoctorId: this.form.hzDoctorId,
|
hzType: this.form.hzType,
|
orderId: this.form.orderId,
|
hzDoctorName: this.form.hzDoctorName,
|
id: this.form.id,
|
};
|
updateHzlog(data).then((res) => {
|
if (res.code == 200) {
|
this.$modal.msgSuccess("修改成功");
|
this.form = {};
|
this.Hzlog();
|
this.radioChange(1);
|
}
|
});
|
} else {
|
data = {
|
tjNumber: this.form.tjNumber,
|
userId: this.form.cusId,
|
userName: this.form.cusName,
|
hzDeptIdList: this.form.hzDeptId,
|
hzDoctorId: this.form.hzDoctorId,
|
hzType: this.form.hzType,
|
orderId: this.form.orderId,
|
hzDoctorName: this.form.hzDoctorName,
|
id: this.form.id,
|
};
|
if (this.form.hzDeptId?.length) {
|
addHzlog(data).then((res) => {
|
if (res.code == 200) {
|
this.$modal.msgSuccess("申请成功");
|
this.form = {};
|
this.Hzlog();
|
this.radioChange(1);
|
}
|
});
|
this.open = false;
|
} else {
|
this.$modal.msgError("请选择会诊科室");
|
}
|
}
|
}
|
});
|
} else {
|
this.$modal.msgError("请选择会诊科室");
|
}
|
},
|
|
cancel() {
|
this.open = false;
|
this.foropen = false;
|
},
|
|
Changeapply() {
|
this.foropen = true;
|
this.Hzlog(this.tableAll.tjNumber);
|
},
|
|
historicalreport() {
|
this.baogaoqian = false;
|
this.baogaohou = true;
|
this.loading = true;
|
let data = { cusId: this.tableAll.cusId };
|
reportHistory(data).then((res) => {
|
this.loading = false;
|
if (res.data[0] != null) this.reportHistorydata = res.data;
|
this.lishi = this.reportHistorydata.length >= 1;
|
if (!this.lishi) this.$modal.msgError("暂无历史报告");
|
});
|
},
|
|
jianqian() {
|
this.flags = true;
|
this.jianqians = true;
|
this.jianqianwenzhendata.push(this.tableAll.tjNumber);
|
},
|
|
handlecan(row) {
|
this.dialogVisible = true;
|
const tjNumber = row.tjNumber;
|
const flag = true;
|
getPdf(tjNumber, flag).then((response) => {
|
if (response.size === 0) {
|
const loading = this.$loading({
|
lock: true,
|
text: "Loading",
|
spinner: "el-icon-loading",
|
background: "rgba(0, 0, 0, 0.7)",
|
});
|
setTimeout(() => loading.close(), 3000);
|
this.$message({ type: "warning", message: "报告正在生成,请两分钟后预览!" });
|
} else {
|
this.dialogVisible = true;
|
this.url = window.webkitURL.createObjectURL(response);
|
}
|
});
|
},
|
|
submitFormreply() {
|
let data = {
|
hzId: this.allList[0].id,
|
orderId: this.allList[0].orderId,
|
tjNumber: this.allList[0].tjNumber,
|
userId: this.allList[0].userId,
|
userName: this.allList[0].userName,
|
replyContent: this.textarea,
|
hzDoctorId: this.allList[0].hzDoctorId,
|
hzDoctorName: this.allList[0].hzDoctorName,
|
hzType: this.allList[0].hzType,
|
replyDoctorName: this.nickName,
|
replyDeptId: this.deptId,
|
replyDoctorId: this.userId,
|
};
|
addReplylog(data).then((res) => {
|
this.$modal.msgSuccess("回复成功");
|
this.getDept(this.allList[0].tjNumber);
|
});
|
},
|
|
handleSelectionChange(selection) {
|
if (selection.length > 1) {
|
const newRows = selection.filter((it, index) => {
|
if (index == selection.length - 1) {
|
this.$refs.tab.toggleRowSelection(it, true);
|
return true;
|
} else {
|
this.$refs.tab.toggleRowSelection(it, false);
|
return false;
|
}
|
});
|
} else {
|
this.allList = [];
|
if (selection[0]) {
|
if (selection[0].hzReplyLogsList) this.hzReplyLogsList = selection[0].hzReplyLogsList;
|
} else {
|
this.hzReplyLogsList = [];
|
}
|
this.allList = selection;
|
}
|
},
|
|
handleClick(row) {
|
this.getDept(row.tjNumber);
|
this.loading = true;
|
this.drawer = true;
|
this.$nextTick(() => this.initInputDOM());
|
this.tableAll = row;
|
this.tjNumber = row.tjNumber;
|
let num = 0;
|
getParentList(this.tjNumber).then((response) => {
|
if (response.data) {
|
this.loading = false;
|
this.Parent = response.data;
|
this.Parent.forEach((item) => {
|
if (item.type === 1) item.proName += " ✔";
|
if (num === 0) {
|
this.nums = item.proId;
|
this.radio = item.proId;
|
this.proId = item.proId;
|
this.getParentIdsss();
|
this.getbzlist();
|
}
|
num = num + 1;
|
});
|
} else {
|
this.loading = false;
|
this.Parent = [];
|
this.$modal.msgError("该科室下无项目!");
|
}
|
});
|
this.getbzlist();
|
},
|
|
getDept(val) {
|
let data = { tjNumber: val, deptId: this.deptId };
|
hzHasDept(data).then((res) => {
|
if (res.data) {
|
this.hasdeptList = res.data;
|
this.hasdeptList.forEach((item) => {
|
item.hzDeptName = item.hzType == "0" ? "全院会诊" : "";
|
if (item.hzType != "0") {
|
item.hzDeptIdList.forEach((item1) => {
|
this.deptList.forEach((item2) => {
|
if (item1 == item2.deptId) item.hzDeptName += item2.deptName + ",";
|
});
|
});
|
}
|
});
|
}
|
});
|
},
|
|
handleTabClick(tab, event) {
|
this.Parent.forEach((item) => {
|
if (tab.name == item.proId) this.Parentcheck = item;
|
});
|
|
this.$confirm("检测到体检结果未提交,是否在离开该项目前提交修改?", "确认信息", {
|
distinguishCancelAndClose: true,
|
confirmButtonText: "提交",
|
cancelButtonText: "不保存,离开",
|
})
|
.then(() => {
|
let tjNumber = this.tableAll.tjNumber;
|
this.userList.forEach((item) => {
|
if (this.doctorName == item.nickName) this.doctorName = item.userId;
|
});
|
this.proParentList.sons.forEach((item) => {
|
if (this.rows) {
|
this.rows.forEach((item1) => {
|
if (item1 === item) item = item1;
|
});
|
}
|
this.tjOrderDetail.push({
|
proAdvice: item.proAdvice,
|
proName: item.project.proName,
|
proId: item.project.proId,
|
orderDetailId: item.orderDetailId,
|
flowingWaterId: item.flowingWaterId,
|
proResult: item.proResult,
|
tjStatus: 1,
|
isReturn: item.isReturn === true ? 1 : 0,
|
exceptionDesc: item.exceptionDesc === true ? 1 : 0,
|
conclusion: item.conclusion,
|
rulesList: item.rulesList,
|
});
|
});
|
|
var data = [{
|
tjNumber,
|
proId: this.proId,
|
remark: this.proParentList.remark,
|
proName: this.proName,
|
summaryList: this.value,
|
doctorName: this.doctorName,
|
tjOrderDetailList: this.tjOrderDetail,
|
}];
|
getaddRemark(data).then((res) => this.$modal.msgSuccess("提交成功"));
|
this.proName = this.Parentcheck.proName;
|
this.nums = tab.name;
|
this.proId = tab.name;
|
this.getParentIdsss();
|
this.getbzlist();
|
})
|
.catch((action) => {
|
if (action === "cancel") this.$message({ type: "warning", message: "放弃保存并离开" });
|
this.proName = this.Parentcheck.proName;
|
this.nums = tab.name;
|
this.proId = tab.name;
|
this.getParentIdsss();
|
this.getbzlist();
|
});
|
},
|
|
determine() {
|
this.tjOrderDetail = [];
|
let tjNumber = this.tableAll.tjNumber;
|
this.userList.forEach((item) => {
|
if (this.doctorName == item.nickName) this.doctorName = item.userId;
|
});
|
this.proParentList.sons.forEach((item) => {
|
if (this.rows) {
|
this.rows.forEach((item1) => {
|
if (item1 === item) item = item1;
|
});
|
}
|
this.tjOrderDetail.push({
|
proAdvice: item.proAdvice,
|
proName: item.project.proName,
|
proId: item.project.proId,
|
orderDetailId: item.orderDetailId,
|
flowingWaterId: item.flowingWaterId,
|
proResult: item.proResult,
|
tjStatus: 1,
|
isReturn: item.isReturn === true ? 1 : 0,
|
exceptionDesc: item.exceptionDesc === true ? 1 : 0,
|
conclusion: item.conclusion,
|
rulesList: item.rulesList,
|
});
|
});
|
|
let data = [{
|
tjNumber,
|
proId: this.proId,
|
remark: this.proParentList.remark,
|
proName: this.proName,
|
summaryList: this.vaids1,
|
doctorName: this.doctorName,
|
tjOrderDetailList: this.tjOrderDetail,
|
}];
|
getaddRemark(data).then((res) => {
|
this.$modal.msgSuccess("提交成功");
|
this.rows = []; // 提交成功后清空 this.rows
|
this.drawer = false;
|
});
|
this.handleClose();
|
},
|
},
|
};
|
</script>
|
<style lang="scss" scoped>
|
.a {
|
position: relative;
|
}
|
|
.el-table .cell {
|
-webkit-box-sizing: border-box;
|
box-sizing: border-box;
|
text-overflow: ellipsis;
|
white-space: normal;
|
word-break: break-all;
|
line-height: 23px;
|
padding-left: 10px;
|
padding-right: 10px;
|
}
|
|
.setclass {
|
background-color: #f86b35;
|
color: black;
|
}
|
|
.blue-button {
|
width: 10px;
|
background-color: #e2e3e4;
|
}
|
|
.el-button--medium {
|
font-size: 14px;
|
}
|
|
.dialog-footers {
|
margin-top: 10px;
|
margin-left: calc(100% - 10%);
|
}
|
|
.main {
|
height: 700px;
|
overflow: hidden;
|
}
|
|
.pag {
|
width: 100%;
|
display: flex;
|
justify-content: center;
|
}
|
|
.pag1 {
|
width: 30%;
|
}
|
|
.el-message {
|
top: 40px !important;
|
border: 1px solid #c1c1c1;
|
background-color: #c1c1c1;
|
}
|
|
.el-message * {
|
color: var(--white) !important;
|
}
|
|
.tab8 {
|
width: 100%;
|
display: flex;
|
justify-content: space-between;
|
}
|
|
.tab3 {
|
width: 68%;
|
}
|
|
.tab4 {
|
margin-top: 6px;
|
width: 30%;
|
}
|
|
.tab4_txt {
|
display: flex;
|
justify-content: center;
|
}
|
|
::v-deep .el-table .warning-row {
|
background: #ffe6e6 !important;
|
/* 轻微的红色背景 */
|
}
|
|
::v-deep .bgc .el-table__body tr:hover>td {
|
background-color: #ffe6e6 !important;
|
}
|
|
::v-deep .bgc .el-table__cell {
|
padding: 5px 0 !important;
|
}
|
|
.jianyi {
|
display: -webkit-box;
|
-webkit-box-orient: vertical;
|
-webkit-line-clamp: 2;
|
overflow: hidden;
|
text-overflow: ellipsis;
|
cursor: pointer;
|
font-size: 12px;
|
}
|
|
::v-deep .el-checkbox__input.is-checked .el-checkbox__inner {
|
background-color: #66cc66;
|
border-color: #66cc66;
|
}
|
|
.dialog-footers1 {
|
position: fixed;
|
bottom: 0;
|
left: 63%;
|
transform: translateX(-50%);
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
z-index: 1000;
|
/* 确保按钮层级在其他内容上方 */
|
width: 300px;
|
background-color: white;
|
/* 可根据需要调整背景颜色 */
|
}
|
|
/* 确保按钮之间有合适的间距 */
|
.dialog-footers1 .el-button {
|
margin: 0 5px;
|
}
|
|
.check-result-container {
|
// background-color: #fafafa;
|
padding: 20px;
|
border-radius: 8px;
|
// box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
margin: 0 auto;
|
max-width: 700px;
|
}
|
|
.check-item {
|
margin-bottom: 20px;
|
}
|
|
.check-title {
|
font-size: 16px;
|
font-weight: bold;
|
color: #333;
|
// margin-bottom: 8px;
|
}
|
|
.check-description {
|
font-size: 14px;
|
color: #555;
|
/* 中灰色文字 */
|
line-height: 1.6;
|
/* 行高,增加可读性 */
|
padding: 8px 0;
|
/* 上下内边距 */
|
}
|
|
.check-description.no-result {
|
color: #bbb;
|
/* 如果没有结论,文字为淡灰色 */
|
}
|
</style>
|