|
@@ -1,40 +1,54 @@
|
|
|
<template>
|
|
|
<el-container>
|
|
|
<el-header height="35px">
|
|
|
- <el-button type="primary" icon="el-icon-location" @click="beforeFetchAssigninfo">定点信息</el-button>
|
|
|
- <el-button type="primary" icon="el-icon-check" @click="submitPatientInfo"> 保存 </el-button>
|
|
|
- <ReadCard :pat-no="patient.inpatientNo" biztype="01103" @success="afterReadCard" />
|
|
|
- <el-button type="success" icon="el-icon-top" @click="checkRegisterDatetime">医保入院登记</el-button>
|
|
|
- <el-button type="danger" icon="el-icon-bottom" @click="beforeCancelRegister">撤销入院登记</el-button>
|
|
|
- <el-button type="success" icon="el-icon-s-claim" @click="xiangMuLuRuRouter">项目录入</el-button>
|
|
|
- <el-button type="danger" icon="el-icon-warning" @click="yiZhuTuiFeiClick" v-if="greatestRole < 8">医嘱退费</el-button>
|
|
|
+ <el-button icon="el-icon-location" type="primary" @click="beforeFetchAssigninfo">定点信息</el-button>
|
|
|
+ <el-button icon="el-icon-check" type="primary" @click="submitPatientInfo"> 保存</el-button>
|
|
|
+ <ReadCard :pat-no="patient.inpatientNo" biztype="01103" @success="afterReadCard"/>
|
|
|
+ <el-button icon="el-icon-top" type="success" @click="checkRegisterDatetime">医保入院登记</el-button>
|
|
|
+ <el-button icon="el-icon-bottom" type="danger" @click="beforeCancelRegister">撤销入院登记</el-button>
|
|
|
+ <el-button icon="el-icon-s-claim" type="success" @click="xiangMuLuRuRouter">项目录入</el-button>
|
|
|
+ <el-button v-if="greatestRole < 8" icon="el-icon-warning" type="danger" @click="yiZhuTuiFeiClick">医嘱退费</el-button>
|
|
|
</el-header>
|
|
|
<el-main>
|
|
|
<el-tag type="info">病人基本信息</el-tag>
|
|
|
<div style="height: 4px"></div>
|
|
|
<el-row>
|
|
|
<el-col :span="2" style="text-align: right">住院号:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.inpatientNo" disabled></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.inpatientNo" disabled></el-input>
|
|
|
+ </el-col>
|
|
|
<el-col :span="2" style="text-align: right">住院次数:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.admissTimes" disabled></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.admissTimes" disabled></el-input>
|
|
|
+ </el-col>
|
|
|
<el-col :span="2" style="text-align: right">身份证号:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.socialNo"></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.socialNo"></el-input>
|
|
|
+ </el-col>
|
|
|
<el-col :span="2" style="text-align: right">出生日期:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.birthDate" disabled></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.birthDate" disabled></el-input>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="2" style="text-align: right">姓名:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.name"></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.name"></el-input>
|
|
|
+ </el-col>
|
|
|
<el-col :span="2" style="text-align: right">性别:</el-col>
|
|
|
<el-col :span="4">
|
|
|
<el-select v-model="patient.sex" placeholder="请选择">
|
|
|
- <el-option v-for="item in sexes" :key="item.code" :label="item.name" :value="item.code"> </el-option>
|
|
|
+ <el-option v-for="item in sexes" :key="item.code" :label="item.name" :value="item.code"></el-option>
|
|
|
</el-select>
|
|
|
</el-col>
|
|
|
<el-col :span="2" style="text-align: right">联系电话:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.homeTel"></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.homeTel"></el-input>
|
|
|
+ </el-col>
|
|
|
<el-col :span="2" style="text-align: right">入院日期:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.admissDate" disabled></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.admissDate" disabled></el-input>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="2" style="text-align: right">管床医生:</el-col>
|
|
@@ -42,29 +56,38 @@
|
|
|
<el-input v-model="patient.referPhysicianName" readonly @click="searchPhysician"></el-input>
|
|
|
</el-col>
|
|
|
<el-col :span="2" style="text-align: right">病区:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.admissWardName" disabled></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.admissWardName" disabled></el-input>
|
|
|
+ </el-col>
|
|
|
<el-col :span="2" style="text-align: right">入院医生:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.admissPhysicianName" disabled></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.admissPhysicianName" disabled></el-input>
|
|
|
+ </el-col>
|
|
|
<el-col :span="2" style="text-align: right">入院诊断:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.admissDiagStr" disabled></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.admissDiagStr" disabled></el-input>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="2" style="text-align: right">小科室:</el-col>
|
|
|
- <el-col :span="4"><el-input v-model="patient.smallDeptName" disabled></el-input></el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-input v-model="patient.smallDeptName" disabled></el-input>
|
|
|
+ </el-col>
|
|
|
<el-col :span="2" style="text-align: right">登记日期:</el-col>
|
|
|
<el-col :span="4">
|
|
|
- <el-date-picker v-model="patient.ybRegisterDate" type="datetime" placeholder="选择日期时间" @change="formatYbRegisterDate" style="width: 172px"></el-date-picker>
|
|
|
+ <el-date-picker v-model="patient.ybRegisterDate" placeholder="选择日期时间" style="width: 172px"
|
|
|
+ type="datetime" @change="formatYbRegisterDate"></el-date-picker>
|
|
|
</el-col>
|
|
|
<el-col :span="2" style="text-align: right">参保地区:</el-col>
|
|
|
<el-col :span="4">
|
|
|
- <el-select v-if="injuryMode" size="small" v-model="patient.injuryArea" placeholder="工伤参保地">
|
|
|
+ <el-select v-if="injuryMode" v-model="patient.injuryArea" placeholder="工伤参保地" size="small">
|
|
|
<el-option v-for="item in injuryAreas" :key="item.code" :label="item.name" :value="item.code">
|
|
|
<span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
|
<span>{{ item.name }}</span>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
- <el-select v-else v-model="patient.admdvs" placeholder="请选择" filterable clearable>
|
|
|
+ <el-select v-else v-model="patient.admdvs" clearable filterable placeholder="请选择">
|
|
|
<el-option v-for="item in admdvs" :key="item.code" :label="item.name" :value="item.code">
|
|
|
<span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
@@ -74,8 +97,9 @@
|
|
|
</el-col>
|
|
|
<el-col :span="2" style="text-align: right">医疗类别:</el-col>
|
|
|
<el-col :span="4">
|
|
|
- <el-select v-model="patient.medType" placeholder="请选择" @change="handleSelectMedType" clearable>
|
|
|
- <el-option v-for="item in medTypes" :key="item.code" :label="item.name" :value="item.code" :disabled="item.disabled">
|
|
|
+ <el-select v-model="patient.medType" clearable placeholder="请选择" @change="handleSelectMedType">
|
|
|
+ <el-option v-for="item in medTypes" :key="item.code" :disabled="item.disabled" :label="item.name"
|
|
|
+ :value="item.code">
|
|
|
<span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
|
<span>{{ item.name }}</span>
|
|
@@ -84,45 +108,47 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<div style="margin-top: 16px">
|
|
|
- <el-tag type="info"> 医保入院诊断(*自费患者无需填写*) </el-tag>
|
|
|
- <el-button type="primary" icon="el-icon-plus" circle @click="openDiagDialog" title="添加入院诊断"></el-button>
|
|
|
- <el-button type="success" icon="el-icon-check" circle :disabled="zyInYbDiags.length === 0" @click="saveYbDiags" title="保存入院诊断"></el-button>
|
|
|
+ <el-tag type="info"> 医保入院诊断(*自费患者无需填写*)</el-tag>
|
|
|
+ <el-button circle icon="el-icon-plus" title="添加入院诊断" type="primary" @click="openDiagDialog"></el-button>
|
|
|
+ <el-button :disabled="zyInYbDiags.length === 0" circle icon="el-icon-check" title="保存入院诊断" type="success"
|
|
|
+ @click="saveYbDiags"></el-button>
|
|
|
</div>
|
|
|
<div style="margin-top: 8px">
|
|
|
<el-table :data="zyInYbDiags" height="160" stripe>
|
|
|
- <el-table-column prop="diagNo" label="诊断序号"></el-table-column>
|
|
|
- <el-table-column prop="property" label="诊断属性"></el-table-column>
|
|
|
- <el-table-column prop="icdCode" label="诊断编码"></el-table-column>
|
|
|
- <el-table-column prop="icdText" label="诊断名称"></el-table-column>
|
|
|
+ <el-table-column label="诊断序号" prop="diagNo"></el-table-column>
|
|
|
+ <el-table-column label="诊断属性" prop="property"></el-table-column>
|
|
|
+ <el-table-column label="诊断编码" prop="icdCode"></el-table-column>
|
|
|
+ <el-table-column label="诊断名称" prop="icdText"></el-table-column>
|
|
|
<el-table-column label="诊断类别">
|
|
|
<template #default="scope">
|
|
|
{{ getDiagTypeName(scope.row.diagType) }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="opDate" label="诊断时间"></el-table-column>
|
|
|
+ <el-table-column label="诊断时间" prop="opDate"></el-table-column>
|
|
|
<el-table-column label="操作">
|
|
|
<template #default="scope">
|
|
|
- <el-button type="danger" icon="el-icon-delete" circle @click="deleteYbDiag(scope.$index)"></el-button>
|
|
|
+ <el-button circle icon="el-icon-delete" type="danger" @click="deleteYbDiag(scope.$index)"></el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
- <Assignmentinfo v-if="showAssigninfo" :social-no="patient.socialNo" :admdvs="patient.admdvs" @close="showAssigninfo = false" />
|
|
|
+ <Assignmentinfo v-if="showAssigninfo" :admdvs="patient.admdvs" :social-no="patient.socialNo"
|
|
|
+ @close="showAssigninfo = false"/>
|
|
|
</el-main>
|
|
|
- <el-dialog v-model="openXmlr" title="项目录入" :fullscreen="true" @close="openXmlr = false" destroy-on-close>
|
|
|
- <Xmlr @closeXmlr="openXmlr = false" />
|
|
|
+ <el-dialog v-model="openXmlr" :fullscreen="true" destroy-on-close title="项目录入" @close="openXmlr = false">
|
|
|
+ <Xmlr @closeXmlr="openXmlr = false"/>
|
|
|
</el-dialog>
|
|
|
- <el-dialog v-model="openYiZhuTuiFei" title="医嘱退费" :fullscreen="true">
|
|
|
- <YiZhuTuiFei :initYiZhu="initYiZhu" @closeYiZhuTuiFei="openYiZhuTuiFei = false" />
|
|
|
+ <el-dialog v-model="openYiZhuTuiFei" :fullscreen="true" title="医嘱退费">
|
|
|
+ <YiZhuTuiFei :initYiZhu="initYiZhu" @closeYiZhuTuiFei="openYiZhuTuiFei = false"/>
|
|
|
</el-dialog>
|
|
|
- <el-dialog v-model="showSearchSpecialDiag" title="医保入院诊断录入" width="80%" :close-on-click-modal="false">
|
|
|
+ <el-dialog v-model="showSearchSpecialDiag" :close-on-click-modal="false" title="医保入院诊断录入" width="80%">
|
|
|
<el-row :gutter="5">
|
|
|
<el-col :span="18">
|
|
|
<el-tag>可选诊断</el-tag>
|
|
|
- <el-input placeholder="请输入诊断名称" v-model="specialDiagName" style="width: 260px" clearable></el-input>
|
|
|
+ <el-input v-model="specialDiagName" clearable placeholder="请输入诊断名称" style="width: 260px"></el-input>
|
|
|
<span v-if="patient.medType === '52'">
|
|
|
<el-select v-model="patient.matnType" placeholder="请选择生育类别" style="width: 120px">
|
|
|
- <el-option v-for="item in matnTypes" :value="item.code" :label="item.name" :key="item.code"></el-option>
|
|
|
+ <el-option v-for="item in matnTypes" :key="item.code" :label="item.name" :value="item.code"></el-option>
|
|
|
</el-select>
|
|
|
是否晚育:
|
|
|
<el-radio-group v-model="patient.latechbFlag">
|
|
@@ -135,14 +161,16 @@
|
|
|
<el-radio label="1">是</el-radio>
|
|
|
</el-radio-group>
|
|
|
</span>
|
|
|
- <el-table :data="cptSpecialDiags.slice((currentPage - 1) * 10, currentPage * 10)" stripe highlight-current-row height="400">
|
|
|
- <el-table-column prop="oldCode" label="老系统编码"></el-table-column>
|
|
|
- <el-table-column prop="oldName" label="老系统名称"></el-table-column>
|
|
|
- <el-table-column prop="newCode" label="新系统编码"></el-table-column>
|
|
|
- <el-table-column prop="newName" label="新系统名称"></el-table-column>
|
|
|
- <el-table-column prop="limitWay" label="限额方式"></el-table-column>
|
|
|
- <el-table-column prop="limitAmountCalculateWay" label="限额额度计算方式"></el-table-column>
|
|
|
- <el-table-column prop="limitAmount" label="疾病限额"></el-table-column>
|
|
|
+ <el-table :data="cptSpecialDiags.slice((currentPage - 1) * 10, currentPage * 10)" height="400"
|
|
|
+ highlight-current-row
|
|
|
+ stripe>
|
|
|
+ <el-table-column label="老系统编码" prop="oldCode"></el-table-column>
|
|
|
+ <el-table-column label="老系统名称" prop="oldName"></el-table-column>
|
|
|
+ <el-table-column label="新系统编码" prop="newCode"></el-table-column>
|
|
|
+ <el-table-column label="新系统名称" prop="newName"></el-table-column>
|
|
|
+ <el-table-column label="限额方式" prop="limitWay"></el-table-column>
|
|
|
+ <el-table-column label="限额额度计算方式" prop="limitAmountCalculateWay"></el-table-column>
|
|
|
+ <el-table-column label="疾病限额" prop="limitAmount"></el-table-column>
|
|
|
<el-table-column>
|
|
|
<template #default="scope">
|
|
|
<el-button type="primary" @click="addSpecialDiag(scope.row)">{{ addDiagButtonText }}</el-button>
|
|
@@ -150,44 +178,46 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<el-pagination
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- :current-page="currentPage"
|
|
|
- :page-size="10"
|
|
|
- layout="total, prev, pager, next, jumper"
|
|
|
- :total="cptSpecialDiags.length"
|
|
|
- style="margin-top: 5px"
|
|
|
+ :current-page="currentPage"
|
|
|
+ :page-size="10"
|
|
|
+ :total="cptSpecialDiags.length"
|
|
|
+ layout="total, prev, pager, next, jumper"
|
|
|
+ style="margin-top: 5px"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
></el-pagination>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-tag>已选诊断</el-tag>
|
|
|
- <el-button type="success" icon="el-icon-check" :disabled="zyInYbDiags.length === 0" @click="saveYbDiags">保存入院诊断</el-button>
|
|
|
- <el-table stripe :data="zyInYbDiags" height="400">
|
|
|
- <el-table-column prop="icdCode" label="诊断编码"></el-table-column>
|
|
|
- <el-table-column prop="icdText" label="诊断名称"></el-table-column>
|
|
|
+ <el-button :disabled="zyInYbDiags.length === 0" icon="el-icon-check" type="success" @click="saveYbDiags">
|
|
|
+ 保存入院诊断
|
|
|
+ </el-button>
|
|
|
+ <el-table :data="zyInYbDiags" height="400" stripe>
|
|
|
+ <el-table-column label="诊断编码" prop="icdCode"></el-table-column>
|
|
|
+ <el-table-column label="诊断名称" prop="icdText"></el-table-column>
|
|
|
<el-table-column>
|
|
|
<template #default="scope">
|
|
|
- <el-button type="danger" icon="el-icon-delete" @click="deleteYbDiag(scope.$index)">删除</el-button>
|
|
|
+ <el-button icon="el-icon-delete" type="danger" @click="deleteYbDiag(scope.$index)">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-dialog>
|
|
|
- <el-dialog title="医保入院登记申请" v-model="showAdmissApplyForm" width="500px">
|
|
|
+ <el-dialog v-model="showAdmissApplyForm" title="医保入院登记申请" width="500px">
|
|
|
<div style="margin-bottom: 20px">
|
|
|
登记时间:
|
|
|
- <el-date-picker v-model="admissApply.admissDatetime" type="datetime" placeholder="请选择医保登记开始时间"></el-date-picker>
|
|
|
+ <el-date-picker v-model="admissApply.admissDatetime" placeholder="请选择医保登记开始时间" type="datetime"></el-date-picker>
|
|
|
</div>
|
|
|
- <el-input type="textarea" v-model="admissApply.inputComment" placeholder="请输入申请理由"></el-input>
|
|
|
+ <el-input v-model="admissApply.inputComment" placeholder="请输入申请理由" type="textarea"></el-input>
|
|
|
<div style="width: 450px; text-align: right; margin-top: 30px">
|
|
|
- <el-button type="info" icon="el-icon-close" @click="cancelAdmissApply">取消</el-button>
|
|
|
- <el-button type="success" icon="el-icon-check" @click="confirmAdmissApply">提交</el-button>
|
|
|
+ <el-button icon="el-icon-close" type="info" @click="cancelAdmissApply">取消</el-button>
|
|
|
+ <el-button icon="el-icon-check" type="success" @click="confirmAdmissApply">提交</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <el-dialog title="人员信息" v-model="showPsnInsuinfo" width="65%">
|
|
|
+ <el-dialog v-model="showPsnInsuinfo" title="人员信息" width="65%">
|
|
|
<el-tag>{{ injuryMode ? '工伤信息' : '参保信息' }}</el-tag>
|
|
|
<div v-if="injuryMode">
|
|
|
- <el-table :data="injuryinfo" @row-click="handleClickInjuryinfo" stripe height="180">
|
|
|
+ <el-table :data="injuryinfo" height="180" stripe @row-click="handleClickInjuryinfo">
|
|
|
<el-table-column label="电脑号" prop="indiId"></el-table-column>
|
|
|
<el-table-column label="工伤个人业务序号" prop="serialPers"></el-table-column>
|
|
|
<el-table-column label="工伤认定号" prop="identifyCode"></el-table-column>
|
|
@@ -199,7 +229,7 @@
|
|
|
</el-table>
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
- <el-table :data="psnBaseinfo.insuinfo" @row-click="handleClickInsuinfo" stripe height="180">
|
|
|
+ <el-table :data="psnBaseinfo.insuinfo" height="180" stripe @row-click="handleClickInsuinfo">
|
|
|
<el-table-column label="余额" prop="balc"></el-table-column>
|
|
|
<el-table-column label="险种类型" prop="insutypeName"></el-table-column>
|
|
|
<el-table-column label="人员类别" prop="psnTypeName"></el-table-column>
|
|
@@ -213,7 +243,7 @@
|
|
|
</el-table>
|
|
|
<div style="height: 16px"></div>
|
|
|
<el-tag>身份信息</el-tag>
|
|
|
- <el-table :data="psnBaseinfo.idetinfo" stripe height="180">
|
|
|
+ <el-table :data="psnBaseinfo.idetinfo" height="180" stripe>
|
|
|
<el-table-column label="人员身份类别" prop="psnIdetTypeName"></el-table-column>
|
|
|
<el-table-column label="人员类别等级" prop="psnTypeLv"></el-table-column>
|
|
|
<el-table-column label="备注" prop="memo"></el-table-column>
|
|
@@ -223,39 +253,40 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<Search
|
|
|
- v-if="searchParams.showSearch"
|
|
|
- :title="searchParams.title"
|
|
|
- :target="searchParams.target"
|
|
|
- :med-type="patient.medType"
|
|
|
- @close="searchParams.showSearch = false"
|
|
|
- @click-item="handleClickSearchItem"
|
|
|
+ v-if="searchParams.showSearch"
|
|
|
+ :med-type="patient.medType"
|
|
|
+ :target="searchParams.target"
|
|
|
+ :title="searchParams.title"
|
|
|
+ @close="searchParams.showSearch = false"
|
|
|
+ @click-item="handleClickSearchItem"
|
|
|
/>
|
|
|
</el-container>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import store from '@/store'
|
|
|
-import { computed, onActivated, onDeactivated, onMounted, reactive, ref, watchEffect } from 'vue'
|
|
|
-import { submitSiPatientInfo, getZyInYbDiags, saveZyInYbDiags } from '@/api/yibao/patient'
|
|
|
-import { getAllSpecialDiags } from '@/api/yibao/dictionary'
|
|
|
-import { cptSex } from '@/utils/computed'
|
|
|
-import { sexes, admdvs, diagTypes } from '@/data/index'
|
|
|
-import { nullPatient } from '@/utils/validate'
|
|
|
-import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
-import { admissRegister, revokeAdmission } from '@/api/medical-insurance/si-inpatient'
|
|
|
-import { formatDatetime, getDatetime } from '@/utils/date'
|
|
|
-import { getGreatestRole } from '@/utils/permission'
|
|
|
-import { clone } from '@/utils/clone'
|
|
|
-import { getMedTypesByFlag, getMatnTypes } from '@/api/medical-insurance/si-dict'
|
|
|
-import { obtainBasicPersonInfo, checkRegisterDate } from '@/api/medical-insurance/si-query'
|
|
|
-import { cancelInjuryRegister, getPersonBaseinfo, admissRegistration } from '@/api/medical-insurance/si-injury'
|
|
|
-import { selectAdmissApply, submitAdmissApply } from '@/api/medical-insurance/si-admiss-apply'
|
|
|
-import { baseinfo } from '@/data/inpatient'
|
|
|
+import {computed, onActivated, onDeactivated, onMounted, reactive, ref, watchEffect} from 'vue'
|
|
|
+import {getZyInYbDiags, saveZyInYbDiags, submitSiPatientInfo} from '@/api/yibao/patient'
|
|
|
+import {getAllSpecialDiags} from '@/api/yibao/dictionary'
|
|
|
+import {cptSex} from '@/utils/computed'
|
|
|
+import {admdvs, diagTypes, sexes} from '@/data/index'
|
|
|
+import {nullPatient} from '@/utils/validate'
|
|
|
+import {ElMessage, ElMessageBox} from 'element-plus'
|
|
|
+import {admissRegister, revokeAdmission} from '@/api/medical-insurance/si-inpatient'
|
|
|
+import {formatDatetime, getDatetime} from '@/utils/date'
|
|
|
+import {getGreatestRole} from '@/utils/permission'
|
|
|
+import {clone} from '@/utils/clone'
|
|
|
+import {getMatnTypes, getMedTypesByFlag} from '@/api/medical-insurance/si-dict'
|
|
|
+import {checkRegisterDate, obtainBasicPersonInfo} from '@/api/medical-insurance/si-query'
|
|
|
+import {admissRegistration, cancelInjuryRegister, getPersonBaseinfo} from '@/api/medical-insurance/si-injury'
|
|
|
+import {selectAdmissApply, submitAdmissApply} from '@/api/medical-insurance/si-admiss-apply'
|
|
|
+import {baseinfo} from '@/data/inpatient'
|
|
|
import Xmlr from '@/components/inpatient/XiangMuLuRu.vue'
|
|
|
import YiZhuTuiFei from '@/components/inpatient/YiZhuTuiFei.vue'
|
|
|
import Assignmentinfo from '@/components/medical-insurance/assigninfo/Index.vue'
|
|
|
import Search from '@/components/search/Index.vue'
|
|
|
import ReadCard from '@/components/medical-insurance/readcard/Index.vue'
|
|
|
+
|
|
|
export default {
|
|
|
components: {
|
|
|
Search,
|
|
@@ -318,10 +349,10 @@ export default {
|
|
|
const matnTypes = ref([])
|
|
|
|
|
|
const injuryAreas = [
|
|
|
- { code: 1, name: '长沙市' },
|
|
|
- { code: 4, name: '长沙县' },
|
|
|
- { code: 2, name: '望城县' },
|
|
|
- { code: 3, name: '省直' },
|
|
|
+ {code: 1, name: '长沙市'},
|
|
|
+ {code: 4, name: '长沙县'},
|
|
|
+ {code: 2, name: '望城县'},
|
|
|
+ {code: 3, name: '省直'},
|
|
|
]
|
|
|
|
|
|
const singleDiseaseTypeChanged = (val) => {
|
|
@@ -444,7 +475,7 @@ export default {
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning',
|
|
|
}).then(() => {
|
|
|
- submitSiPatientInfo({ patient: patient.value, diags: zyInYbDiags.value }).then(() => {
|
|
|
+ submitSiPatientInfo({patient: patient.value, diags: zyInYbDiags.value}).then(() => {
|
|
|
ElMessage({
|
|
|
message: '保存患者信息成功。',
|
|
|
type: 'success',
|
|
@@ -498,7 +529,7 @@ export default {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- submitSiPatientInfo({ patient: patient.value, diags: zyInYbDiags.value }).then(() => {
|
|
|
+ submitSiPatientInfo({patient: patient.value, diags: zyInYbDiags.value}).then(() => {
|
|
|
checkRegisterDate(patient.value.inpatientNo, patient.value.admissTimes).then(() => {
|
|
|
selectAdmissApply(patient.value).then((res) => {
|
|
|
if (null === res.status) {
|
|
@@ -572,18 +603,19 @@ export default {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
})
|
|
|
- .then(() => {
|
|
|
- submitAdmissApply(admissApply.value).then((res) => {
|
|
|
- ElMessage({
|
|
|
- message: res,
|
|
|
- type: 'success',
|
|
|
- duration: 2500,
|
|
|
- showClose: true,
|
|
|
+ .then(() => {
|
|
|
+ submitAdmissApply(admissApply.value).then((res) => {
|
|
|
+ ElMessage({
|
|
|
+ message: res,
|
|
|
+ type: 'success',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ })
|
|
|
+ showAdmissApplyForm.value = false
|
|
|
})
|
|
|
- showAdmissApplyForm.value = false
|
|
|
})
|
|
|
- })
|
|
|
- .catch(() => {})
|
|
|
+ .catch(() => {
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const psnBaseinfo = ref({})
|
|
@@ -631,22 +663,23 @@ export default {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
})
|
|
|
- .then(() => {
|
|
|
- const param = {
|
|
|
- baseinfo: patient.value,
|
|
|
- injuryinfo: row,
|
|
|
- }
|
|
|
- admissRegistration(param).then((res) => {
|
|
|
- ElMessage({
|
|
|
- message: '审核已通过,医保入院登记成功。',
|
|
|
- type: 'success',
|
|
|
- duration: 2500,
|
|
|
- showClose: true,
|
|
|
+ .then(() => {
|
|
|
+ const param = {
|
|
|
+ baseinfo: patient.value,
|
|
|
+ injuryinfo: row,
|
|
|
+ }
|
|
|
+ admissRegistration(param).then((res) => {
|
|
|
+ ElMessage({
|
|
|
+ message: '审核已通过,医保入院登记成功。',
|
|
|
+ type: 'success',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ })
|
|
|
+ showPsnInsuinfo.value = false
|
|
|
})
|
|
|
- showPsnInsuinfo.value = false
|
|
|
})
|
|
|
- })
|
|
|
- .catch(() => {})
|
|
|
+ .catch(() => {
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const handleClickInsuinfo = (row) => {
|
|
@@ -655,22 +688,23 @@ export default {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
})
|
|
|
- .then(() => {
|
|
|
- patient.value.insutype = row.insutype
|
|
|
- patient.value.psnType = row.psnType
|
|
|
- patient.value.insuplcAdmdvs = row.insuplcAdmdvs
|
|
|
- patient.value.empName = row.empName
|
|
|
- admissRegister(patient.value).then(() => {
|
|
|
- ElMessage({
|
|
|
- message: '医保入院登记成功。',
|
|
|
- type: 'success',
|
|
|
- duration: 2500,
|
|
|
- showClose: true,
|
|
|
+ .then(() => {
|
|
|
+ patient.value.insutype = row.insutype
|
|
|
+ patient.value.psnType = row.psnType
|
|
|
+ patient.value.insuplcAdmdvs = row.insuplcAdmdvs
|
|
|
+ patient.value.empName = row.empName
|
|
|
+ admissRegister(patient.value).then(() => {
|
|
|
+ ElMessage({
|
|
|
+ message: '医保入院登记成功。',
|
|
|
+ type: 'success',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ })
|
|
|
+ showPsnInsuinfo.value = false
|
|
|
})
|
|
|
- showPsnInsuinfo.value = false
|
|
|
})
|
|
|
- })
|
|
|
- .catch(() => {})
|
|
|
+ .catch(() => {
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const beforeCancelRegister = () => {
|
|
@@ -679,36 +713,37 @@ export default {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
})
|
|
|
- .then(({ value }) => {
|
|
|
- if (!value) {
|
|
|
- ElMessage({
|
|
|
- message: '撤销入院登记的原因不能为空!',
|
|
|
+ .then(({value}) => {
|
|
|
+ if (!value) {
|
|
|
+ ElMessage({
|
|
|
+ message: '撤销入院登记的原因不能为空!',
|
|
|
+ type: 'warning',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ ElMessageBox.confirm('撤销医保入院登记的原因为【' + value + '】确定撤销?', '提示', {
|
|
|
type: 'warning',
|
|
|
- duration: 2500,
|
|
|
- showClose: true,
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- ElMessageBox.confirm('撤销医保入院登记的原因为【' + value + '】确定撤销?', '提示', {
|
|
|
- type: 'warning',
|
|
|
- }).then(() => {
|
|
|
- patient.value.revokeRemark = value
|
|
|
- if (injuryMode.value) {
|
|
|
- cancelInjuryRegister(patient.value).then(() => {
|
|
|
- ElMessageBox.alert('撤销入院登记成功。', '提示', {
|
|
|
- type: 'success',
|
|
|
+ }).then(() => {
|
|
|
+ patient.value.revokeRemark = value
|
|
|
+ if (injuryMode.value) {
|
|
|
+ cancelInjuryRegister(patient.value).then(() => {
|
|
|
+ ElMessageBox.alert('撤销入院登记成功。', '提示', {
|
|
|
+ type: 'success',
|
|
|
+ })
|
|
|
})
|
|
|
- })
|
|
|
- } else {
|
|
|
- revokeAdmission(patient.value).then(() => {
|
|
|
- ElMessageBox.alert('撤销入院登记成功。', '提示', {
|
|
|
- type: 'success',
|
|
|
+ } else {
|
|
|
+ revokeAdmission(patient.value).then(() => {
|
|
|
+ ElMessageBox.alert('撤销入院登记成功。', '提示', {
|
|
|
+ type: 'success',
|
|
|
+ })
|
|
|
})
|
|
|
- })
|
|
|
- }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
})
|
|
|
- })
|
|
|
- .catch(() => {})
|
|
|
}
|
|
|
|
|
|
const showAssigninfo = ref(false)
|
|
@@ -826,17 +861,21 @@ export default {
|
|
|
.el-date-editor.el-input__inner {
|
|
|
width: 100%;
|
|
|
}
|
|
|
+
|
|
|
.el-collapse-item__content {
|
|
|
padding-bottom: 0;
|
|
|
}
|
|
|
+
|
|
|
.el-collapse-item__header {
|
|
|
height: 30px;
|
|
|
line-height: 30px;
|
|
|
}
|
|
|
+
|
|
|
.el-collapse-item__header,
|
|
|
.el-collapse-item__wrap {
|
|
|
background-color: inherit;
|
|
|
}
|
|
|
+
|
|
|
.el-autocomplete-suggestion li {
|
|
|
line-height: normal !important;
|
|
|
}
|