LIJU há 4 semanas atrás
pai
commit
8acdb5ef62
1 ficheiros alterados com 78 adições e 26 exclusões
  1. 78 26
      src/views/medical-insurance/inpatient/AdmRegistration.vue

+ 78 - 26
src/views/medical-insurance/inpatient/AdmRegistration.vue

@@ -1030,19 +1030,19 @@ const injurySicard = async () => {
                   inpatient_no:patient.value.inpatientNo,
                   admiss_times:patient.value.admissTimes,
                   psn_no:result.data.data.psn_no,
-                  emp_no:result.data.data.psn_no,
-                  emp_name:result.data.data.psn_no,
-                  certno:result.data.data.psn_no,
-                  psn_name:result.data.data.psn_no,
-                  gend:result.data.data.psn_no,
-                  age:result.data.data.psn_no,
-                  psn_type:result.data.data.psn_no,
-                  insu_admdvs:result.data.data.psn_no,
-                  inhosp_stas:result.data.data.psn_no,
-                  trt_chk_rslt:result.data.data.psn_no,
-                  exam_ccls:result.data.data.psn_no,
-                  certificate_type:result.data.data.psn_no,
-                  birthday:result.data.data.psn_no,
+                  emp_no:result.data.data.emp_no,
+                  emp_name:result.data.data.emp_name,
+                  certno:result.data.data.certno,
+                  psn_name:result.data.data.psn_name,
+                  gend:result.data.data.gend,
+                  age:result.data.data.age,
+                  psn_type:result.data.data.psn_type,
+                  insu_admdvs:result.data.data.insu_admdvs,
+                  inhosp_stas:result.data.data.inhosp_stas,
+                  trt_chk_rslt:result.data.data.trt_chk_rslt,
+                  exam_ccls:result.data.data.exam_ccls,
+                  certificate_type:result.data.data.certificate_type,
+                  birthday:result.data.data.birthday,
                   QualificationId,
                   injury_part_desc,
                   visit_type
@@ -1211,6 +1211,17 @@ const checkRegisterDatetime = () => {
       return;
     }
   }
+  if ((patient.value.medType&&((patient.value.medType === 'gs21') || (patient.value.medType === 'gs22') || (patient.value.medType === 'gs23')))) {
+    if(!(zyInYbDiags && zyInYbDiags.length && zyInYbDiags.length > 0)) {
+        ElMessage({
+          message: "医保入院诊断,不能为空!",
+          type: "warning",
+          duration: 2500,
+          showClose: true,
+        });
+        return;
+    }
+  }   
   patient.value.expContent = JSON.stringify(expContent);
   submitSiPatientInfo({
     patient: patient.value,
@@ -1376,20 +1387,47 @@ const handleClickInjuryinfo = row => {
     cancelButtonText: "取消",
   })
     .then(() => {
-      row.patNo = patient.value.inpatientNo;
-      row.times = patient.value.admissTimes;
-      row.ledgerSn = patient.value.ledgerSn;
-      row.aka130 = "42";
-      row.bka003 = "420";
-      inpatientRegister(row).then(res => {
-        ElMessage({
-          message: "审核已通过,医保入院登记成功。",
-          type: "success",
-          duration: 2500,
-          showClose: true,
-        });
+        // 解析 exam_ccls 字段
+        let QualificationId = '';
+        let injury_part_desc = '';
+        let visit_type = '';
+        if (patient.value.readCardResult.data.exam_ccls) {
+          // 格式:^工伤医疗费资格审核信息ID|受伤部位信息描述|就诊类型^
+          const match = patient.value.readCardResult.data.exam_ccls.match(/^\^?(.*?)\|(.*?)\|(.*?)\^?$/);
+          if (match) {
+            QualificationId = match[1];
+            injury_part_desc = match[2];
+            visit_type = match[3];
+          }
+        }
+      const params = {
+        ipt_otp_no: patient.value.inpatientNo + '_' + patient.value.admissTimes,
+        med_type: patient.value.medType,
+        adm_time: getCurrentDateTimeStr(),
+        adm_diag_dscr: zyInYbDiags && zyInYbDiags.length && (zyInYbDiags.length > 0) && zyInYbDiags[0] && zyInYbDiags[0].icdCode ? zyInYbDiags[0].icdCode : '',
+        wardarea_name: patient.value.admissWardName,
+        adm_dept_codg: patient.value.admissWard,
+        adm_bed: patient.value.bedNo,
+        atddr_no: patient.value.admissPhysician,
+        tel: patient.value.contactPhone,
+        psn_no: patient.value.readCardResult.data.psn_no,
+        ipt_no: patient.value.inpatientNo,
+        qualification_id: QualificationId
+      }
+      //row.patNo = patient.value.inpatientNo;
+      //row.times = patient.value.admissTimes;
+      //row.ledgerSn = patient.value.ledgerSn;
+      //row.aka130 = "42";
+      //row.bka003 = "420";
+      //inpatientRegister(row).then(res => {
+       // ElMessage({
+      //    message: "审核已通过,医保入院登记成功。",
+      //    type: "success",
+      //    duration: 2500,
+      ////    showClose: true,
+      //  });
         showPsnInsuinfo.value = false;
-      });
+      //});
     })
     .catch(() => {});
 };
@@ -1557,6 +1595,20 @@ function formatCertType(val) {
   return map[val] || val || '';
 }
 
+// 获取当前时间,格式为YYYYMMDDHH24MISS
+function getCurrentDateTimeStr() {
+  const now = new Date();
+  const pad = (n) => n < 10 ? '0' + n : n;
+  return (
+    now.getFullYear().toString() +
+    pad(now.getMonth() + 1) +
+    pad(now.getDate()) +
+    pad(now.getHours()) +
+    pad(now.getMinutes()) +
+    pad(now.getSeconds())
+  );
+}
+
 onMounted(() => {
   getPsnCertTypes().then(res => {
     psnCertTypes.value = res;