LIJU 4 weeks ago
parent
commit
5b833e1b2f

+ 69 - 13
src/components/medical-insurance/insuinfo/Index.vue

@@ -9,14 +9,20 @@
       </div>
       <div v-if="injuryMode">
         <el-table :data="injuryinfo" @row-click="handleClickInsuinfo" stripe height="180">
-          <el-table-column label="证件号码" prop="aac002"></el-table-column>
-          <el-table-column label="姓名" prop="aac003"></el-table-column>
-          <el-table-column label="单位名称" prop="aab004"></el-table-column>
-          <el-table-column label="受伤时间" prop="alc020"></el-table-column>
-          <el-table-column label="认定申请时间" prop="alc017"></el-table-column>
-          <el-table-column label="认定ID" prop="aaz127"></el-table-column>
-          <el-table-column label="个人编号" prop="aac001"></el-table-column>
-          <el-table-column label="参保统筹区" prop="baa027Name"></el-table-column>
+          <el-table-column label="个人唯一识别码" prop="psn_no" width="100"></el-table-column>
+          <el-table-column label="单位唯一识别码" prop="emp_no" width="100"></el-table-column>
+          <el-table-column label="单位名称" prop="emp_name" width="100"></el-table-column>
+          <el-table-column label="证件号码" prop="certno" width="150"></el-table-column>
+          <el-table-column label="姓名" prop="psn_name"></el-table-column>
+          <el-table-column label="性别" prop="gend" :formatter="(row) => formatGender(row.gend)"></el-table-column>
+          <el-table-column label="年龄" prop="age"></el-table-column>
+          <el-table-column label="工伤人员类别" prop="psn_type" :formatter="(row) => formatInjuryPersonType(row.psn_type)"></el-table-column>
+          <el-table-column label="统筹区号" prop="insu_admdvs"></el-table-column>
+          <el-table-column label="在院状态" prop="inhosp_stas" :formatter="(row) => formatInHospStatus(row.inhosp_stas)"></el-table-column>
+          <el-table-column label="待遇不享受原因" prop="trt_chk_rslt" width="100"></el-table-column>
+          <el-table-column label="工伤诊断结论" prop="exam_ccls" width="150"></el-table-column>
+          <el-table-column label="证件类型" prop="certificate_type" :formatter="(row) => formatCertType(row.certificate_type)"></el-table-column>
+          <el-table-column label="出生日期" prop="birthday"></el-table-column>
         </el-table>
       </div>
       <div v-else>
@@ -84,11 +90,19 @@ const close = () => {
 
 const fetchInsuinfo = () => {
   if (injuryMode.value) {
-    employeeInfoInquiry(props.params).then((res) => {
-      injuryinfo.value = res
-    }).catch(() => {
-      emits('close')
-    })
+    // 检查是否有工伤读卡结果
+    if (props.params.readCardResult && props.params.mdtrtCertType === 'injurySicard') {
+      // 使用工伤读卡结果
+      injuryinfo.value = [props.params.readCardResult.data.output]
+    } else {
+      // 如果没有读卡,要提示读卡
+      ElMessage({
+        message: '请先进行工伤读卡!',
+        type: 'warning',
+        duration: 2500,
+        showClose: true,
+      })
+    }
   } else {
     obtainBasicPersonInfo(props.params).then((res) => {
       psnNo.value = res.psnNo
@@ -99,6 +113,48 @@ const fetchInsuinfo = () => {
   }
 }
 
+// 性别转化
+function formatGender(val) {
+  switch (val) {
+    case '1': return '男'
+    case '2': return '女'
+    case '9': return '未说明性别'
+    default: return val || ''
+  }
+}
+
+// 工伤人员类别转化
+function formatInjuryPersonType(val) {
+  const map = {
+    '01': '新工伤', '02': '老工伤', '03': '建筑业', '04': '退休职业病',
+    '05': '机关事业老工伤纳入', '06': '机关事业老工伤确认', '07': '伤残军人',
+    '08': '非全日制和多单位就业', '09': '8023人员', '10': '包干老工伤',
+    '11': '超龄就业人员', '12': '实习生', '13': '离职职业病', '14': '见习生',
+    '15': '新业态人员'
+  }
+  return map[val] || val || ''
+}
+
+// 在院状态转化
+function formatInHospStatus(val) {
+  switch (val) {
+    case '0': return '未在院'
+    case '1': return '工伤在院'
+    case '2': return '医疗在院'
+    default: return val || ''
+  }
+}
+
+// 证件类型转化
+function formatCertType(val) {
+  const map = {
+    '01': '居民身份证', '04': '港澳居民来往内地通行证', '05': '台湾居民来往大陆通行证',
+    '07': '外国人永久居留身份证', '08': '外国人护照', '16': '港澳台居民居住证',
+    '90': '社会保障卡', '99': '其他'
+  }
+  return map[val] || val || ''
+}
+
 onMounted(() => {
   fetchInsuinfo()
 })

+ 15 - 3
src/views/medical-insurance/inpatient/AdmissVerification.vue

@@ -207,7 +207,7 @@ const cptApplies = computed(() => {
 })
 
 const handleClickAdmissApply = (row) => {
-  medinsStore.setInjuryMode(row.medType === '42')
+  medinsStore.setInjuryMode((row.medType === "gs21") || (row.medType === "gs22") || (row.medType === "gs23"));
   selectPatientInfo(row).then((res) => {
     patient.value = res.patient
     currentApply.value = row
@@ -268,8 +268,20 @@ const getPsnInsuinfo = (flag) => {
     return
   }
   if (injuryMode.value) {
-    checkTreatmentParams.value = patient.value
-    showPsnInsuinfo.value = true
+    // 工伤模式:使用工伤读卡结果或调用工伤查询接口
+    if (patient.value.readCardResult && patient.value.mdtrtCertType === 'injurySicard') {
+      // 如果已经进行工伤读卡,直接使用读卡结果
+      checkTreatmentParams.value = patient.value
+      showPsnInsuinfo.value = true
+    } else {
+      // 如果没有读卡,要提示读卡
+      ElMessage({
+        message: '请先进行工伤读卡!',
+        type: 'warning',
+        duration: 2500,
+        showClose: true,
+      })
+    }
   } else {
     insuRowClickFlag.value = flag
     checkTreatmentParams.value = {