Browse Source

入院登记添加expContent

lighter 2 years ago
parent
commit
962384ffc0

+ 487 - 818
src/views/medical-insurance/inpatient/AdmRegistration.vue

@@ -132,7 +132,7 @@
             </el-option>
           </el-select>
           <el-select v-else v-model="patient.admdvs" :clearable="true" :filterable="true" placeholder="请选择" style="width: 180px">
-            <el-option v-for="item in admdvs" :key="item.code" :label="item.name" :value="item.code">
+            <el-option v-for="item in admdvses" :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>
@@ -177,6 +177,39 @@
           <template #label>患者病种</template>
           <el-input v-model="patient.diseName" readonly style="width: 180px" @click="openDiseInput"></el-input>
         </el-descriptions-item>
+
+
+        <span v-if="patient.admdvs && !patient.admdvs.startsWith('43')">
+          <el-descriptions-item>
+            <template #label>就诊人群类型</template>
+              <el-select v-model="expContent.MDTRT_GRP_TYPE" placeholder="请选择" style="width: 180px">
+              <el-option v-for="item in mdtrtGrpTypes" :key="item.code" :label="item.name" :value="item.code"></el-option>
+            </el-select>
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>外伤标志</template>
+            <el-select v-model="expContent.TRUM_FLAG" placeholder="请选择" style="width: 180px">
+              <el-option label="否" value="0"></el-option>
+              <el-option label="是" value="1"></el-option>
+            </el-select>
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>涉及第三方标志</template>
+            <el-select v-model="expContent.REL_TTP_FLAG" placeholder="请选择" style="width: 180px">
+              <el-option label="否" value="0"></el-option>
+              <el-option label="是" value="1"></el-option>
+            </el-select>
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template #label>住院类型</template>
+            <el-select v-model="expContent.IPT_TYPE" placeholder="请选择" style="width: 180px">
+              <el-option label="普通住院" value="1"></el-option>
+              <el-option label="急诊或者请求住院" value="2"></el-option>
+              <el-option label="转院住院" value="2"></el-option>
+            </el-select>
+          </el-descriptions-item>
+        </span>
+
       </el-descriptions>
 
       <div style="margin-top: 16px">
@@ -304,317 +337,9 @@
         @close="searchParams.showSearch = false"
         @click-item="handleClickSearchItem"
     />
-
-<!--  <el-container>-->
-<!--    <el-header height="35px">-->
-<!--      <el-button icon="Location" type="primary" @click="beforeFetchAssigninfo">定点信息</el-button>-->
-<!--      <el-button icon="Check" type="primary" @click="submitPatientInfo"> 保存</el-button>-->
-<!--      <ReadCard :pat-no="patient.inpatientNo" biztype="01103" @success="afterReadCard"/>-->
-<!--      <el-button icon="Top" type="success" @click="checkRegisterDatetime">医保入院登记</el-button>-->
-<!--      <el-button icon="Bottom" type="danger" @click="beforeCancelRegister">撤销入院登记</el-button>-->
-<!--      <el-button icon="Coin" type="success" @click="xiangMuLuRuRouter">项目录入</el-button>-->
-<!--      <el-button v-if="greatestRole < 8" icon="Warning" type="danger" @click="yiZhuTuiFeiClick">医嘱退费</el-button>-->
-<!--    </el-header>-->
-<!--    <el-main>-->
-<!--      <el-tag type="info">病人基本信息</el-tag>-->
-<!--      <div style="height: 4px"></div>-->
-<!--      <el-descriptions :column="3" border>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 住院号</template>-->
-<!--          {{ patient.inpatientNo }}-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 住院次数</template>-->
-<!--          {{ patient.admissTimes }}-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 出生日期</template>-->
-<!--          {{ patient.birthDate }}-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label>入院日期</template>-->
-<!--          {{ patient.admissDate }}-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 病区</template>-->
-<!--          {{ patient.admissWardName }}-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 入院诊断</template>-->
-<!--          <div style="width: 180px" class="ellipsis-text" :title="patient.admissDiagStr">-->
-<!--            {{ patient.admissDiagStr }}-->
-<!--          </div>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 小科室</template>-->
-<!--          {{ patient.smallDeptName }}-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 入院医生</template>-->
-<!--          {{ patient.admissPhysicianName }}-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label>身份证号</template>-->
-<!--          <el-input v-model="patient.socialNo" style="width: 180px" clearable></el-input>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 姓名</template>-->
-<!--          <el-input v-model="patient.name" style="width: 180px"></el-input>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 性别</template>-->
-<!--          <el-select v-model="patient.sex" placeholder=" " style="width: 180px">-->
-<!--            <el-option v-for="item in sexes" :key="item.code" :label="item.name" :value="item.code"></el-option>-->
-<!--          </el-select>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 联系电话</template>-->
-<!--          <el-input v-model="patient.homeTel" style="width: 180px"></el-input>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 管床医生</template>-->
-<!--          <el-input v-model="patient.referPhysicianName" readonly @click="searchPhysician(1)"-->
-<!--                    style="width: 180px"></el-input>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 责任护士</template>-->
-<!--          <el-input v-model="patient.dutyNurseName" readonly @click="searchPhysician(2)"-->
-<!--                    style="width: 180px"></el-input>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 国籍</template>-->
-<!--          <el-select v-model="patient.country" style="width: 180px" :filterable="true">-->
-<!--            <el-option v-for="item in countries" :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-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 民族</template>-->
-<!--          <el-select v-model="patient.nation" style="width: 180px" :filterable="true">-->
-<!--            <el-option v-for="item in nations" :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-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 联系人姓名</template>-->
-<!--          <el-input v-model="patient.contactName" style="width: 180px"></el-input>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 联系人关系</template>-->
-<!--          <el-select v-model="patient.contactRelation" style="width: 180px" :filterable="true">-->
-<!--            <el-option v-for="item in relations" :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-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 联系人地址</template>-->
-<!--          <el-input v-model="patient.contactAddrName" style="width: 180px"></el-input>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 联系人电话</template>-->
-<!--          <el-input v-model="patient.contactPhone" style="width: 180px"></el-input>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 登记日期</template>-->
-<!--          <el-date-picker v-model="patient.ybRegisterDate" placeholder="选择日期时间" style="width: 180px"-->
-<!--                          type="datetime"-->
-<!--                          @change="formatYbRegisterDate"></el-date-picker>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 参保地区</template>-->
-<!--          <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" :clearable="true" :filterable="true" placeholder="请选择" style="width: 180px">-->
-<!--            <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>-->
-<!--              <span>{{ item.name }}</span>-->
-<!--            </el-option>-->
-<!--          </el-select>-->
-<!--        </el-descriptions-item>-->
-<!--        <el-descriptions-item>-->
-<!--          <template #label> 医疗类别</template>-->
-<!--          <el-select v-model="patient.medType" :clearable="true" placeholder="请选择" @change="handleSelectMedType"-->
-<!--                     style="width: 180px">-->
-<!--            <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>-->
-<!--            </el-option>-->
-<!--          </el-select>-->
-<!--        </el-descriptions-item>-->
-<!--        <span v-if="patient.medType === '52'">-->
-<!--          <el-descriptions-item>-->
-<!--            <template #label>生育类别</template>-->
-<!--              <el-select v-model="patient.matnType" placeholder="请选择" style="width: 180px">-->
-<!--              <el-option v-for="item in matnTypes" :key="item.code" :label="item.name" :value="item.code"></el-option>-->
-<!--            </el-select>-->
-<!--          </el-descriptions-item>-->
-<!--          <el-descriptions-item>-->
-<!--            <template #label>是否晚育</template>-->
-<!--            <el-select v-model="patient.latechbFlag" placeholder="请选择" style="width: 180px">-->
-<!--              <el-option label="否" value="0"></el-option>-->
-<!--              <el-option label="是" value="1"></el-option>-->
-<!--            </el-select>-->
-<!--          </el-descriptions-item>-->
-<!--          <el-descriptions-item>-->
-<!--            <template #label>是否早产</template>-->
-<!--            <el-select v-model="patient.pretFlag" placeholder="请选择" style="width: 180px">-->
-<!--              <el-option label="否" value="0"></el-option>-->
-<!--              <el-option label="是" value="1"></el-option>-->
-<!--            </el-select>-->
-<!--          </el-descriptions-item>-->
-<!--        </span>-->
-<!--        <el-descriptions-item v-if="patient.medType === '2102' || patient.medType === '52'">-->
-<!--          <template #label>患者病种</template>-->
-<!--          <el-input v-model="patient.diseName" readonly style="width: 180px" @click="openDiseInput"></el-input>-->
-<!--        </el-descriptions-item>-->
-<!--      </el-descriptions>-->
-
-<!--      <div style="margin-top: 16px">-->
-<!--        <el-tag type="info"> 医保入院诊断(*自费患者无需填写*)</el-tag>-->
-<!--        <el-button circle icon="Plus" title="添加入院诊断" type="primary" @click="openDiagDialog"></el-button>-->
-<!--        <el-button :disabled="zyInYbDiags.length === 0" circle 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 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 label="诊断时间" prop="opDate"></el-table-column>-->
-<!--          <el-table-column label="操作">-->
-<!--            <template #default="scope">-->
-<!--              <el-button circle icon="Delete" type="danger" @click="deleteYbDiag(scope.$index)"></el-button>-->
-<!--            </template>-->
-<!--          </el-table-column>-->
-<!--        </el-table>-->
-<!--      </div>-->
-<!--      <Assignmentinfo v-if="showAssigninfo" :admdvs="patient.admdvs" :social-no="patient.socialNo"-->
-<!--                      @close="showAssigninfo = false"/>-->
-<!--    </el-main>-->
-<!--    <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" :fullscreen="true" title="医嘱退费">-->
-<!--      <YiZhuTuiFei :initYiZhu="initYiZhu" @closeYiZhuTuiFei="openYiZhuTuiFei = false"/>-->
-<!--    </el-dialog>-->
-
-<!--    <el-dialog v-model="showSearchSpecialDiag" :close-on-click-modal="false" title="医保患者病种录入" width="60%">-->
-<!--      <div style="margin: -16px 0 4px 2px; height: 22px; line-height: 22px">-->
-<!--        患者当前病种:-->
-<!--        <span style="padding: 2px 6px; background: #005279; border-radius: 4px; color: white">-->
-<!--          {{ patient.diseCode ? (patient.diseCode + ' | ' + patient.diseName) : '无' }}-->
-<!--        </span>-->
-<!--      </div>-->
-<!--      <el-tag>可选病种</el-tag>&nbsp;&nbsp;-->
-<!--      <el-input v-model="specialDiagName" clearable placeholder="请输入病种名称" style="width: 260px"></el-input>-->
-<!--      <el-table :data="cptSpecialDiags.slice((currentPage - 1) * 10, currentPage * 10)" height="400"-->
-<!--                highlight-current-row stripe>-->
-<!--        <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="addDiseInfo(scope.row)">选择此病种</el-button>-->
-<!--          </template>-->
-<!--        </el-table-column>-->
-<!--      </el-table>-->
-<!--      <el-pagination-->
-<!--          :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-dialog>-->
-
-<!--    <el-dialog v-model="showAdmissApplyForm" title="医保入院登记申请" width="500px">-->
-<!--      <div style="margin-bottom: 20px">-->
-<!--        登记时间:-->
-<!--        <el-date-picker v-model="admissApply.admissDatetime" placeholder="请选择医保登记开始时间"-->
-<!--                        type="datetime"></el-date-picker>-->
-<!--      </div>-->
-<!--      <el-input v-model="admissApply.inputComment" placeholder="请输入申请理由" type="textarea"></el-input>-->
-<!--      <div style="width: 450px; text-align: right; margin-top: 30px">-->
-<!--        <el-button icon="Close" type="info" @click="cancelAdmissApply">取消</el-button>-->
-<!--        <el-button icon="Check" type="success" @click="confirmAdmissApply">提交</el-button>-->
-<!--      </div>-->
-<!--    </el-dialog>-->
-<!--    <el-dialog v-model="showPsnInsuinfo" title="人员信息" width="65%">-->
-<!--      <el-tag>{{ injuryMode ? '工伤信息' : '参保信息' }}</el-tag>-->
-<!--      <div v-if="injuryMode">-->
-<!--        <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>-->
-<!--          <el-table-column label="认定申请时间" prop="identyDate"></el-table-column>-->
-<!--          <el-table-column label="受伤部位" prop="injuryPart"></el-table-column>-->
-<!--          <el-table-column label="报告时间" prop="reportDate"></el-table-column>-->
-<!--          <el-table-column label="事故发生时间" prop="accidentDate"></el-table-column>-->
-<!--          <el-table-column label="事故详细情况" prop="accidentDetail"></el-table-column>-->
-<!--        </el-table>-->
-<!--      </div>-->
-<!--      <div v-else>-->
-<!--        <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>-->
-<!--          <el-table-column label="参保状态" prop="psnInsuStasName"></el-table-column>-->
-<!--          <el-table-column label="个人参保日期" prop="psnInsuDate"></el-table-column>-->
-<!--          <el-table-column label="暂停参保日期" prop="pausInsuDate"></el-table-column>-->
-<!--          <el-table-column label="公务员标志" prop="cvlservFlagName"></el-table-column>-->
-<!--          <el-table-column label="参保地医保区划" prop="insuplcAdmdvs"></el-table-column>-->
-<!--          <el-table-column label="参保地名称" prop="insuplcAdmdvsName"></el-table-column>-->
-<!--          <el-table-column label="单位名称" prop="empName"></el-table-column>-->
-<!--        </el-table>-->
-<!--        <div style="height: 16px"></div>-->
-<!--        <el-tag>身份信息</el-tag>-->
-<!--        <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>-->
-<!--          <el-table-column label="开始时间" prop="begntime"></el-table-column>-->
-<!--          <el-table-column label="结束时间" prop="endtime"></el-table-column>-->
-<!--        </el-table>-->
-<!--      </div>-->
-<!--    </el-dialog>-->
-<!--    <Search-->
-<!--        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>
+<script setup>
 import store from '@/store'
 import {computed, onActivated, onDeactivated, onMounted, reactive, ref, watchEffect} from 'vue'
 import {getZyInYbDiags, saveZyInYbDiags, submitSiPatientInfo} from '@/api/inpatient/patient'
@@ -624,7 +349,6 @@ import {
   fetchNationDictionary,
   fetchRelationDictionary
 } from '@/api/dictionary/fetch-dictionaries'
-import {cptSex} from '@/utils/computed'
 import {admdvses, diagTypes, sexes} from '@/data'
 import {nullPatient} from '@/utils/validate'
 import {ElMessage, ElMessageBox} from 'element-plus'
@@ -643,565 +367,510 @@ 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,
-    Xmlr,
-    YiZhuTuiFei,
-    Assignmentinfo,
-    ReadCard,
-  },
-  setup() {
-    const greatestRole = getGreatestRole()
-    const patient = computed(() => {
-      return baseinfo()
-    })
-    const fetchZyYbDiags = () => {
-      if (nullPatient()) return
-      getZyInYbDiags(patient.value.inpatientNo, patient.value.admissTimes).then((res) => {
-        zyInYbDiags.value = res
-      })
-    }
-
-    const actived = ref(false)
 
-    onActivated(() => {
-      actived.value = true
-    })
+const greatestRole = getGreatestRole()
+const patient = computed(() => {
+  const patientInfo = baseinfo()
+  const pContent = patientInfo.expContent ? JSON.parse(patientInfo.expContent) : {}
+  expContent.MDTRT_GRP_TYPE = pContent.MDTRT_GRP_TYPE
+  expContent.TRUM_FLAG = pContent.TRUM_FLAG
+  expContent.REL_TTP_FLAG = pContent.REL_TTP_FLAG
+  expContent.IPT_TYPE = pContent.IPT_TYPE
+  return patientInfo
+})
+const fetchZyYbDiags = () => {
+  if (nullPatient()) return
+  getZyInYbDiags(patient.value.inpatientNo, patient.value.admissTimes).then((res) => {
+    zyInYbDiags.value = res
+  })
+}
 
-    onDeactivated(() => {
-      actived.value = false
-    })
+const actived = ref(false)
 
-    watchEffect(() => {
-      if (actived.value) {
-        if (patient.value.inpatientNo) {
-          fetchZyYbDiags()
-        }
-      }
-    })
+onActivated(() => {
+  actived.value = true
+})
 
-    const searchParams = reactive({
-      showSearch: false,
-      title: '',
-      target: '',
-    })
+onDeactivated(() => {
+  actived.value = false
+})
 
-    const medTypes = ref([])
-    const countries = ref([])
-    const nations = ref([])
-    const relations = ref([])
-    const diagItem = ref({})
-    const showSearchSpecialDiag = ref(false)
-    const insuinfo = ref([])
-    const zyInYbDiags = ref([])
-    const specialDiags = ref([])
-    const specialDiagName = ref('')
-    const cptSpecialDiags = computed(() => {
-      return specialDiags.value.filter((item) => {
-        return (item.oldName + '' + item.newName).indexOf(specialDiagName.value) !== -1
-      })
+watchEffect(() => {
+  if (actived.value) {
+    if (patient.value.inpatientNo) {
+      fetchZyYbDiags()
+    }
+  }
+})
+
+const searchParams = reactive({
+  showSearch: false,
+  title: '',
+  target: '',
+})
+
+const medTypes = ref([])
+const countries = ref([])
+const nations = ref([])
+const relations = ref([])
+const diagItem = ref({})
+const showSearchSpecialDiag = ref(false)
+const zyInYbDiags = ref([])
+const specialDiags = ref([])
+const specialDiagName = ref('')
+const cptSpecialDiags = computed(() => {
+  return specialDiags.value.filter((item) => {
+    return (item.oldName + '' + item.newName).indexOf(specialDiagName.value) !== -1
+  })
+})
+const matnTypes = ref([])
+
+const injuryAreas = [
+  {code: 1, name: '长沙市'},
+  {code: 4, name: '长沙县'},
+  {code: 2, name: '望城县'},
+  {code: 3, name: '省直'},
+]
+
+const expContent = reactive({
+  MDTRT_GRP_TYPE: '',
+  TRUM_FLAG: '',
+  REL_TTP_FLAG: '',
+  IPT_TYPE: ''
+})
+const mdtrtGrpTypes = [
+  {code: '', name: '普通患者'},
+  {code: '1', name: '新冠肺炎确诊患者'},
+  {code: '2', name: '其他国家突发公共事件'},
+  {code: '3', name: '新冠肺炎疑似患者'},
+  {code: '4', name: '无症状感染者'},
+]
+
+const openDiagDialog = () => {
+  if (nullPatient()) {
+    return
+  }
+  if (!patient.value.medType) {
+    ElMessage({
+      message: '请先选择医疗类别!',
+      type: 'warning',
+      duration: 2500,
+      showClose: true,
     })
-    const matnTypes = ref([])
+    return
+  }
+  searchParams.title = '医保入院诊断'
+  searchParams.target = injuryMode.value ? 'injurydiag' : 'diag'
+  searchParams.showSearch = true
+}
 
-    const injuryAreas = [
-      {code: 1, name: '长沙市'},
-      {code: 4, name: '长沙县'},
-      {code: 2, name: '望城县'},
-      {code: 3, name: '省直'},
-    ]
+const openDiseInput = () => {
+  getAllSpecialDiags(patient.value.medType).then((res) => {
+    specialDiags.value = res
+    showSearchSpecialDiag.value = true
+  })
+};
+
+const addDiseInfo = (row) => {
+  patient.value.diseCode = row.newCode
+  patient.value.diseName = row.newName
+  showSearchSpecialDiag.value = false
+}
 
-    const singleDiseaseTypeChanged = (val) => {
-      zyInYbDiags.value = []
-      diagItem.value = {}
-      getAllSpecialDiags(val).then((res) => {
-        specialDiags.value = res
-      })
+const getDiagTypeName = (val) => {
+  for (let i = 0; i < diagTypes.length; i++) {
+    if (diagTypes[i].code === val) {
+      return diagTypes[i].name
     }
+  }
+}
 
-    const openDiagDialog = () => {
-      if (nullPatient()) {
-        return
-      }
-      if (!patient.value.medType) {
-        ElMessage({
-          message: '请先选择医疗类别!',
-          type: 'warning',
-          duration: 2500,
-          showClose: true,
-        })
-        return
-      }
-      searchParams.title = '医保入院诊断'
-      searchParams.target = injuryMode.value ? 'injurydiag' : 'diag'
-      searchParams.showSearch = true
+const deleteYbDiag = (index) => {
+  zyInYbDiags.value.splice(index, 1)
+  for (let i = 0; i < zyInYbDiags.value.length; i++) {
+    const element = zyInYbDiags.value[i]
+    element.diagNo = i + 1
+    if (i === 0) {
+      element.property = '主要诊断'
     }
+  }
+}
+
+const saveYbDiags = () => {
+  const param = {
+    inpatientNo: patient.value.inpatientNo,
+    admissTimes: patient.value.admissTimes,
+    diags: zyInYbDiags.value,
+  }
+  saveZyInYbDiags(param).then(() => {
+    ElMessage({
+      message: '医保入院诊断保存成功。',
+      type: 'success',
+      duration: 2500,
+      showClose: true,
+    })
+    showSearchSpecialDiag.value = false
+  })
+}
+
+const handleSelectMedType = (val) => {
+  store.commit('ptnt/setInjuryMode', val === '42')
+}
 
-    const openDiseInput = () => {
-      getAllSpecialDiags(patient.value.medType).then((res) => {
-        specialDiags.value = res
-        showSearchSpecialDiag.value = true
+const submitPatientInfo = () => {
+  if (nullPatient()) {
+    return
+  }
+  ElMessageBox.confirm('确定保存患者信息?', '提示', {
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+    type: 'warning',
+  }).then(() => {
+    patient.value.expContent = JSON.stringify(expContent)
+    submitSiPatientInfo({patient: patient.value, diags: zyInYbDiags.value}).then(() => {
+      ElMessage({
+        message: '保存患者信息成功。',
+        type: 'success',
+        duration: 2500,
+        showClose: true,
       })
-    };
+    })
+  })
+}
 
-    const addDiseInfo = (row) => {
-      patient.value.diseCode = row.newCode
-      patient.value.diseName = row.newName
-      showSearchSpecialDiag.value = false
-    }
+const searchPhysician = (flag) => {
+  switch (flag) {
+    case 1:
+      searchParams.title = '管床医生'
+      break
+    case 2:
+      searchParams.title = '责任护士'
+      break
+  }
+  searchParams.target = 'physician'
+  searchParams.showSearch = true
+}
 
-    const getDiagTypeName = (val) => {
-      for (let i = 0; i < diagTypes.length; i++) {
-        if (diagTypes[i].code === val) {
-          return diagTypes[i].name
-        }
-      }
+const handleClickSearchItem = (item) => {
+  if (searchParams.target === 'physician') {
+    switch (searchParams.title) {
+      case '管床医生':
+        patient.value.referPhysician = item.code
+        patient.value.referPhysicianName = item.name
+        break
+      case '责任护士':
+        patient.value.dutyNurse = item.code
+        patient.value.dutyNurseName = item.name
+        break
     }
+  } else if (searchParams.target === 'diag' || searchParams.target === 'injurydiag') {
+    diagItem.value.icdCode = item.icdCode
+    diagItem.value.icdText = item.icdText
+    diagItem.value.diagType = item.diagType
+    diagItem.value.property = zyInYbDiags.value.length === 0 ? '主要诊断' : '次要诊断'
+    diagItem.value.diagNo = zyInYbDiags.value.length + 1
+    diagItem.value.opDate = getDatetime()
+    zyInYbDiags.value.push(clone(diagItem.value))
+  }
+  searchParams.showSearch = false
+}
 
-    const deleteYbDiag = (index) => {
-      zyInYbDiags.value.splice(index, 1)
-      for (let i = 0; i < zyInYbDiags.value.length; i++) {
-        const element = zyInYbDiags.value[i]
-        element.diagNo = i + 1
-        if (i === 0) {
-          element.property = '主要诊断'
-        }
-      }
-    }
+const injuryMode = computed(() => {
+  return store.state.ptnt.injuryMode
+})
 
-    const saveYbDiags = () => {
-      const param = {
-        inpatientNo: patient.value.inpatientNo,
-        admissTimes: patient.value.admissTimes,
-        diags: zyInYbDiags.value,
-      }
-      saveZyInYbDiags(param).then(() => {
-        ElMessage({
-          message: '医保入院诊断保存成功。',
-          type: 'success',
-          duration: 2500,
-          showClose: true,
-        })
-        showSearchSpecialDiag.value = false
+const afterReadCard = (result) => {
+  patient.value.mdtrtCertType = result.mdtrtCertType
+  patient.value.readCardResult = result.readCardResult
+  patient.value.readCardBizType = result.readCardBizType
+}
+
+const formatYbRegisterDate = () => {
+  patient.value.ybRegisterDate = formatDatetime(patient.value.ybRegisterDate)
+}
+
+const admissApply = ref({})
+const showAdmissApplyForm = ref(false)
+const checkRegisterDatetime = () => {
+  if (nullPatient()) {
+    return
+  }
+  patient.value.expContent = JSON.stringify(expContent)
+  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) {
+          admissApply.value.patNo = patient.value.inpatientNo
+          admissApply.value.times = patient.value.admissTimes
+          admissApply.value.ledgerSn = patient.value.ledgerSn
+          admissApply.value.admissDatetime = patient.value.ybRegisterDate
+          admissApply.value.inputComment = '人证相符。'
+          showAdmissApplyForm.value = true
+        } else {
+          switch (res.status) {
+            case 0:
+              ElMessageBox.alert('医保科尚未处理此患者的医保入院申请,请耐心等候或者致电医保科(内线电话:2102)。', '提示', {
+                type: 'warning',
+              })
+              break
+            case 1:
+              getPsnInsuinfo()
+              break
+            case 2:
+              ElMessageBox.confirm('医保科驳回了此患者的医保入院申请,驳回意见为【' + res.handleComment + '】', '提示', {
+                type: 'error',
+                distinguishCancelAndClose: true,
+                confirmButtonText: '我知道了',
+                cancelButtonText: '重新提交',
+                showCancelButton: true,
+              }).catch((action) => {
+                if (action === 'cancel') {
+                  admissApply.value.patNo = patient.value.inpatientNo
+                  admissApply.value.times = patient.value.admissTimes
+                  admissApply.value.ledgerSn = patient.value.ledgerSn
+                  admissApply.value.admissDatetime = patient.value.ybRegisterDate
+                  showAdmissApplyForm.value = true
+                }
+              })
+              break
+          }
+        }
       })
-    }
+    })
+  })
+}
 
-    const handleSelectMedType = (val) => {
-      store.commit('ptnt/setInjuryMode', val === '42')
-    }
+const cancelAdmissApply = () => {
+  admissApply.value = {}
+  showAdmissApplyForm.value = false
+}
 
-    const submitPatientInfo = () => {
-      if (nullPatient()) {
-        return
-      }
-      ElMessageBox.confirm('确定保存患者信息?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      }).then(() => {
-        submitSiPatientInfo({patient: patient.value, diags: zyInYbDiags.value}).then(() => {
+const confirmAdmissApply = () => {
+  if (!admissApply.value.admissDatetime) {
+    ElMessage({
+      message: '医保入院登记时间不能为空!',
+      type: 'error',
+      duration: 2500,
+      showClose: true,
+    })
+    return
+  }
+  if (!admissApply.value.inputComment) {
+    ElMessage({
+      message: '申请理由不能为空!',
+      type: 'error',
+      duration: 2500,
+      showClose: true,
+    })
+    return
+  }
+  admissApply.value.admissDatetime = formatDatetime(admissApply.value.admissDatetime)
+  ElMessageBox.confirm('是否确认提交入院登记申请?', '提示', {
+    type: 'warning',
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+  })
+      .then(() => {
+        submitAdmissApply(admissApply.value).then((res) => {
           ElMessage({
-            message: '保存患者信息成功。',
+            message: res,
             type: 'success',
             duration: 2500,
             showClose: true,
           })
+          showAdmissApplyForm.value = false
         })
       })
-    }
-
-    const searchPhysician = (flag) => {
-      switch (flag) {
-        case 1:
-          searchParams.title = '管床医生'
-          break
-        case 2:
-          searchParams.title = '责任护士'
-          break
-      }
-      searchParams.target = 'physician'
-      searchParams.showSearch = true
-    }
-
-    const handleClickSearchItem = (item) => {
-      if (searchParams.target === 'physician') {
-        switch (searchParams.title) {
-          case '管床医生':
-            patient.value.referPhysician = item.code
-            patient.value.referPhysicianName = item.name
-            break
-          case '责任护士':
-            patient.value.dutyNurse = item.code
-            patient.value.dutyNurseName = item.name
-            break
-        }
-      } else if (searchParams.target === 'diag' || searchParams.target === 'injurydiag') {
-        diagItem.value.icdCode = item.icdCode
-        diagItem.value.icdText = item.icdText
-        diagItem.value.diagType = item.diagType
-        diagItem.value.property = zyInYbDiags.value.length === 0 ? '主要诊断' : '次要诊断'
-        diagItem.value.diagNo = zyInYbDiags.value.length + 1
-        diagItem.value.opDate = getDatetime()
-        zyInYbDiags.value.push(clone(diagItem.value))
-      }
-      searchParams.showSearch = false
-    }
+      .catch(() => {
+      })
+}
 
-    const injuryMode = computed(() => {
-      return store.state.ptnt.injuryMode
+const psnBaseinfo = ref({})
+const showPsnInsuinfo = ref(false)
+const injuryinfo = ref([])
+const getPsnInsuinfo = () => {
+  if (nullPatient()) {
+    return
+  }
+  if (!patient.value.medType) {
+    ElMessage({
+      message: '请选择患者的医疗类别!',
+      type: 'warning',
+      showClose: true,
     })
-
-    const afterReadCard = (result) => {
-      patient.value.mdtrtCertType = result.mdtrtCertType
-      patient.value.readCardResult = result.readCardResult
-      patient.value.readCardBizType = result.readCardBizType
+    return
+  }
+  if (injuryMode.value) {
+    getPersonBaseinfo(patient.value).then((res) => {
+      injuryinfo.value = res
+      showPsnInsuinfo.value = true
+    })
+  } else {
+    const param = {
+      medType: patient.value.medType,
+      patNo: patient.value.inpatientNo,
+      times: patient.value.admissTimes,
+      ledgerSn: patient.value.ledgerSn,
+      socialNo: patient.value.socialNo,
+      name: patient.value.name,
+      admdvs: patient.value.admdvs,
+      needSaving: 1,
     }
+    obtainBasicPersonInfo(param).then((res) => {
+      patient.value.psnNo = res.psnNo
+      psnBaseinfo.value = res
+      showPsnInsuinfo.value = true
+    })
+  }
+}
 
-    const formatYbRegisterDate = () => {
-      patient.value.ybRegisterDate = formatDatetime(patient.value.ybRegisterDate)
+const handleClickInjuryinfo = (row) => {
+  ElMessageBox.confirm('确定进行工伤入院登记?', '提示', {
+    type: 'warning',
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+  }).then(() => {
+    const param = {
+      baseinfo: patient.value,
+      injuryinfo: row,
     }
-
-    const admissApply = ref({})
-    const showAdmissApplyForm = ref(false)
-    const checkRegisterDatetime = () => {
-      if (nullPatient()) {
-        return
-      }
-      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) {
-              admissApply.value.patNo = patient.value.inpatientNo
-              admissApply.value.times = patient.value.admissTimes
-              admissApply.value.ledgerSn = patient.value.ledgerSn
-              admissApply.value.admissDatetime = patient.value.ybRegisterDate
-              admissApply.value.inputComment = '人证相符。'
-              showAdmissApplyForm.value = true
-            } else {
-              switch (res.status) {
-                case 0:
-                  ElMessageBox.alert('医保科尚未处理此患者的医保入院申请,请耐心等候或者致电医保科(内线电话:2102)。', '提示', {
-                    type: 'warning',
-                  })
-                  break
-                case 1:
-                  getPsnInsuinfo()
-                  break
-                case 2:
-                  ElMessageBox.confirm('医保科驳回了此患者的医保入院申请,驳回意见为【' + res.handleComment + '】', '提示', {
-                    type: 'error',
-                    distinguishCancelAndClose: true,
-                    confirmButtonText: '我知道了',
-                    cancelButtonText: '重新提交',
-                    showCancelButton: true,
-                  }).catch((action) => {
-                    if (action === 'cancel') {
-                      admissApply.value.patNo = patient.value.inpatientNo
-                      admissApply.value.times = patient.value.admissTimes
-                      admissApply.value.ledgerSn = patient.value.ledgerSn
-                      admissApply.value.admissDatetime = patient.value.ybRegisterDate
-                      showAdmissApplyForm.value = true
-                    }
-                  })
-                  break
-              }
-            }
-          })
-        })
+    admissRegistration(param).then((res) => {
+      ElMessage({
+        message: '审核已通过,医保入院登记成功。',
+        type: 'success',
+        duration: 2500,
+        showClose: true,
       })
-    }
+      showPsnInsuinfo.value = false
+    })
+  }).catch(() => {
+  })
+}
 
-    const cancelAdmissApply = () => {
-      admissApply.value = {}
-      showAdmissApplyForm.value = false
-    }
+const handleClickInsuinfo = (row) => {
+  ElMessageBox.confirm('确定进行医保入院登记?', '提示', {
+    type: 'warning',
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+  }).then(() => {
+    patient.value.balc = row.balc
+    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
+    })
+  }).catch(() => {
+  })
+}
 
-    const confirmAdmissApply = () => {
-      if (!admissApply.value.admissDatetime) {
-        ElMessage({
-          message: '医保入院登记时间不能为空!',
-          type: 'error',
-          duration: 2500,
-          showClose: true,
-        })
-        return
-      }
-      if (!admissApply.value.inputComment) {
-        ElMessage({
-          message: '申请理由不能为空!',
-          type: 'error',
-          duration: 2500,
-          showClose: true,
-        })
-        return
-      }
-      admissApply.value.admissDatetime = formatDatetime(admissApply.value.admissDatetime)
-      ElMessageBox.confirm('是否确认提交入院登记申请?', '提示', {
+const beforeCancelRegister = () => {
+  if (nullPatient()) return
+  ElMessageBox.prompt('请输入撤销入院登记的原因:', '提示', {
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+  }).then(({value}) => {
+    if (!value) {
+      ElMessage({
+        message: '撤销入院登记的原因不能为空!',
         type: 'warning',
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
+        duration: 2500,
+        showClose: true,
       })
-          .then(() => {
-            submitAdmissApply(admissApply.value).then((res) => {
-              ElMessage({
-                message: res,
-                type: 'success',
-                duration: 2500,
-                showClose: true,
-              })
-              showAdmissApplyForm.value = false
-            })
-          })
-          .catch(() => {
-          })
+      return
     }
-
-    const psnBaseinfo = ref({})
-    const showPsnInsuinfo = ref(false)
-    const injuryinfo = ref([])
-    const getPsnInsuinfo = () => {
-      if (nullPatient()) {
-        return
-      }
-      if (!patient.value.medType) {
-        ElMessage({
-          message: '请选择患者的医疗类别!',
-          type: 'warning',
-          showClose: true,
-        })
-        return
-      }
+    ElMessageBox.confirm('撤销医保入院登记的原因为【' + value + '】确定撤销?', '提示', {
+      type: 'warning',
+    }).then(() => {
+      patient.value.revokeRemark = value
       if (injuryMode.value) {
-        getPersonBaseinfo(patient.value).then((res) => {
-          injuryinfo.value = res
-          showPsnInsuinfo.value = true
-        })
-      } else {
-        const param = {
-          medType: patient.value.medType,
-          patNo: patient.value.inpatientNo,
-          times: patient.value.admissTimes,
-          ledgerSn: patient.value.ledgerSn,
-          socialNo: patient.value.socialNo,
-          name: patient.value.name,
-          admdvs: patient.value.admdvs,
-          needSaving: 1,
-        }
-        obtainBasicPersonInfo(param).then((res) => {
-          patient.value.psnNo = res.psnNo
-          psnBaseinfo.value = res
-          showPsnInsuinfo.value = true
-        })
-      }
-    }
-
-    const handleClickInjuryinfo = (row) => {
-      ElMessageBox.confirm('确定进行工伤入院登记?', '提示', {
-        type: 'warning',
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-      }).then(() => {
-        const param = {
-          baseinfo: patient.value,
-          injuryinfo: row,
-        }
-        admissRegistration(param).then((res) => {
-          ElMessage({
-            message: '审核已通过,医保入院登记成功。',
+        cancelInjuryRegister(patient.value).then(() => {
+          ElMessageBox.alert('撤销入院登记成功。', '提示', {
             type: 'success',
-            duration: 2500,
-            showClose: true,
           })
-          showPsnInsuinfo.value = false
         })
-      }).catch(() => {
-      })
-    }
-
-    const handleClickInsuinfo = (row) => {
-      ElMessageBox.confirm('确定进行医保入院登记?', '提示', {
-        type: 'warning',
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-      }).then(() => {
-        patient.value.balc = row.balc
-        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: '医保入院登记成功。',
+      } else {
+        revokeAdmission(patient.value).then(() => {
+          ElMessageBox.alert('撤销入院登记成功。', '提示', {
             type: 'success',
-            duration: 2500,
-            showClose: true,
-          })
-          showPsnInsuinfo.value = false
-        })
-      }).catch(() => {
-      })
-    }
-
-    const beforeCancelRegister = () => {
-      if (nullPatient()) return
-      ElMessageBox.prompt('请输入撤销入院登记的原因:', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-      }).then(({value}) => {
-        if (!value) {
-          ElMessage({
-            message: '撤销入院登记的原因不能为空!',
-            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',
-              })
-            })
-          } else {
-            revokeAdmission(patient.value).then(() => {
-              ElMessageBox.alert('撤销入院登记成功。', '提示', {
-                type: 'success',
-              })
-            })
-          }
         })
-      }).catch(() => {
-      })
-    }
-
-    const showAssigninfo = ref(false)
-    const beforeFetchAssigninfo = () => {
-      if (nullPatient()) {
-        return
       }
-      if (!patient.value.socialNo) {
-        ElMessage({
-          message: '患者身份证不能为空!',
-          type: 'warning',
-          duration: 2500,
-          showClose: true,
-        })
-        return
-      }
-      if (!patient.value.admdvs) {
-        ElMessage({
-          message: '患者参保地不能为空!',
-          type: 'warning',
-          duration: 2500,
-          showClose: true,
-        })
-        return
-      }
-      showAssigninfo.value = true
-    }
-
-    // 项目录入
-    const openXmlr = ref(false)
-    const xiangMuLuRuRouter = () => {
-      openXmlr.value = true
-    }
+    })
+  }).catch(() => {
+  })
+}
 
-    // 医嘱退费
-    const initYiZhu = ref(0)
-    const openYiZhuTuiFei = ref(false)
-    const yiZhuTuiFeiClick = () => {
-      if (nullPatient()) return
-      initYiZhu.value += 1
-      openYiZhuTuiFei.value = true
-    }
+const showAssigninfo = ref(false)
+const beforeFetchAssigninfo = () => {
+  if (nullPatient()) {
+    return
+  }
+  if (!patient.value.socialNo) {
+    ElMessage({
+      message: '患者身份证不能为空!',
+      type: 'warning',
+      duration: 2500,
+      showClose: true,
+    })
+    return
+  }
+  if (!patient.value.admdvs) {
+    ElMessage({
+      message: '患者参保地不能为空!',
+      type: 'warning',
+      duration: 2500,
+      showClose: true,
+    })
+    return
+  }
+  showAssigninfo.value = true
+}
 
-    const currentPage = ref(1)
-    const handleCurrentChange = (val) => {
-      currentPage.value = val
-    }
+// 项目录入
+const openXmlr = ref(false)
+const xiangMuLuRuRouter = () => {
+  openXmlr.value = true
+}
 
-    onMounted(() => {
-      getMedTypesByFlag('hospitalization').then((res) => {
-        medTypes.value = res
-      })
-      fetchCountryDictionary().then((res) => {
-        countries.value = res
-      })
-      fetchNationDictionary().then((res) => {
-        nations.value = res
-      })
-      fetchRelationDictionary().then((res) => {
-        relations.value = res
-      })
-      getMatnTypes().then((res) => {
-        matnTypes.value = res
-      })
-    })
+// 医嘱退费
+const initYiZhu = ref(0)
+const openYiZhuTuiFei = ref(false)
+const yiZhuTuiFeiClick = () => {
+  if (nullPatient()) return
+  initYiZhu.value += 1
+  openYiZhuTuiFei.value = true
+}
 
-    return {
-      greatestRole,
-      patient,
-      sexes,
-      admdvs: admdvses,
-      medTypes,
-      countries,
-      nations,
-      relations,
-      insuinfo,
-      zyInYbDiags,
-      showSearchSpecialDiag,
-      diagItem,
-      cptSex,
-      openXmlr,
-      psnBaseinfo,
-      injuryAreas,
-      showPsnInsuinfo,
-      injuryinfo,
-      injuryMode,
-      admissApply,
-      showAdmissApplyForm,
-      searchParams,
-      diagTypes,
-      cancelAdmissApply,
-      confirmAdmissApply,
-      openDiagDialog,
-      fetchZyYbDiags,
-      deleteYbDiag,
-      saveYbDiags,
-      searchPhysician,
-      handleClickSearchItem,
-      getDiagTypeName,
-      submitPatientInfo,
-      afterReadCard,
-      checkRegisterDatetime,
-      handleClickInjuryinfo,
-      handleClickInsuinfo,
-      beforeCancelRegister,
-      formatYbRegisterDate,
-      xiangMuLuRuRouter,
-      yiZhuTuiFeiClick,
-      openYiZhuTuiFei,
-      initYiZhu,
-      specialDiags,
-      singleDiseaseTypeChanged,
-      openDiseInput,
-      addDiseInfo,
-      specialDiagName,
-      cptSpecialDiags,
-      matnTypes,
-      currentPage,
-      handleCurrentChange,
-      handleSelectMedType,
-      showAssigninfo,
-      beforeFetchAssigninfo,
-    }
-  },
+const currentPage = ref(1)
+const handleCurrentChange = (val) => {
+  currentPage.value = val
 }
+
+onMounted(() => {
+  getMedTypesByFlag('hospitalization').then((res) => {
+    medTypes.value = res
+  })
+  fetchCountryDictionary().then((res) => {
+    countries.value = res
+  })
+  fetchNationDictionary().then((res) => {
+    nations.value = res
+  })
+  fetchRelationDictionary().then((res) => {
+    relations.value = res
+  })
+  getMatnTypes().then((res) => {
+    matnTypes.value = res
+  })
+})
 </script>
 
 <style scoped>

+ 16 - 8
src/views/medical-insurance/outpatient/MzRegister.vue

@@ -191,13 +191,13 @@
       <el-dialog v-model="showMdtrtGrpType" title="跨省患者请选择" width="360px">
         <div>
           &nbsp;&nbsp;&nbsp;&nbsp;就诊人群类型:
-          <el-select v-model="expContent.mdtrtGrpType" style="width: 160px">
+          <el-select v-model="expContent.MDTRT_GRP_TYPE" style="width: 160px">
             <el-option v-for="item in mdtrtGrpTypes" :label="item.name" :value="item.code"></el-option>
           </el-select>
         </div>
         <div style="margin-top: 12px">
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;外伤标志:
-          <el-select v-model="expContent.trumFlag" style="width: 160px">
+          <el-select v-model="expContent.TRUM_FLAG" style="width: 160px">
             <el-option label="无" value=""></el-option>
             <el-option label="非外伤" value="0"></el-option>
             <el-option label="外伤" value="1"></el-option>
@@ -205,7 +205,7 @@
         </div>
         <div style="margin-top: 12px">
           涉及第三方标志:
-          <el-select v-model="expContent.relTtpFlag" style="width: 160px">
+          <el-select v-model="expContent.REL_TTP_FLAG" style="width: 160px">
             <el-option label="无" value=""></el-option>
             <el-option label="涉及" value="0"></el-option>
             <el-option label="不涉及" value="1"></el-option>
@@ -213,7 +213,7 @@
         </div>
         <div style="margin-top: 12px">
           门急诊转诊标志:
-          <el-select v-model="expContent.optErReflFlag" style="width: 160px">
+          <el-select v-model="expContent.OTP_ER_REFL_FLAG" style="width: 160px">
             <el-option label="无" value=""></el-option>
             <el-option label="急诊" value="1"></el-option>
             <el-option label="转诊" value="2"></el-option>
@@ -283,10 +283,10 @@ const showInputDiags = ref(false)
 
 const showMdtrtGrpType = ref(false)
 const expContent = reactive({
-  mdtrtGrpType: '',
-  trumFlag: '',
-  relTtpFlag: '',
-  optErReflFlag: ''
+  MDTRT_GRP_TYPE: '',
+  TRUM_FLAG: '',
+  REL_TTP_FLAG: '',
+  OTP_ER_REFL_FLAG: ''
 })
 const mdtrtGrpTypes = [
   {code: '', name: '普通患者'},
@@ -309,6 +309,13 @@ const nullPatientId = () => {
   return false
 }
 
+const clearExpContent = () => {
+  expContent.MDTRT_GRP_TYPE = ''
+  expContent.TRUM_FLAG = ''
+  expContent.REL_TTP_FLAG = ''
+  expContent.OTP_ER_REFL_FLAG = ''
+}
+
 const registor = (command) => {
   if (nullPatientId()) {
     return
@@ -316,6 +323,7 @@ const registor = (command) => {
   if (nullTimes()) {
     return
   }
+  clearExpContent()
   const param = {
     patNo: patientId.value,
     medType: medType.value,