Browse Source

各种修复

lighter 3 years ago
parent
commit
ec98cc1ca4

+ 1 - 0
src/data/index.js

@@ -2,6 +2,7 @@
 // A5: 148毫米 × 210毫米 = 559.37px * 793.70px
 
 export const statusFlags = [
+  { code: '0', name: '全部' },
   { code: '1', name: '待审核' },
   { code: '2', name: '已审核' },
   { code: '9', name: '未通过' },

+ 1 - 1
src/views/medical-insurance/allpatient/InhospInfo.vue

@@ -283,7 +283,7 @@ export default {
   setup() {
     const windowSize = store.state.app.windowSize
     const tableHeight = windowSize.h - 85
-    const patNo = ref('0394356')
+    const patNo = ref('')
     const dateRange = ref(null)
     const inhosps = ref([])
     const pageSize = ref(30)

+ 2 - 1
src/views/medical-insurance/allpatient/SiSettleDetailList.vue

@@ -843,7 +843,8 @@ export default {
         })
         return
       }
-      const prntStyle = '<style>table {width: 100%;border-collapse: collapse;} td {border: 1px solid black;height: 20px;text-align:center;}</style>'
+      const prntStyle =
+        '<style>table {width: 100%;border-collapse: collapse; font-size: 13px;} td {border: 1px solid black;height: 20px;text-align:center; font-size: 13px;}</style>'
       const strFormHtml = prntStyle + '<body>' + document.getElementById('listPage').innerHTML + '</body>'
       LODOP = getLodop()
       LODOP.PRINT_INIT('siSettleDetailList')

+ 61 - 1
src/views/medical-insurance/allpatient/VisitInfo.vue

@@ -30,6 +30,7 @@
             <el-button type="primary" size="mini" @click="getDiseInfo">诊断信息</el-button>
             <el-button type="primary" size="mini" @click="getSetlInfo">结算信息</el-button>
             <el-button type="primary" size="mini" @click="getFeeDetl">费用明细</el-button>
+            <el-button type="primary" size="mini" @click="getCumInfo">累计信息</el-button>
           </div>
         </div>
       </el-header>
@@ -158,6 +159,29 @@
             <el-table-column prop="optTime" label="经办时间"></el-table-column>
           </el-table>
         </el-dialog>
+        <el-dialog title="人员累计信息查询" v-model="showCumInfo" width="50%">
+          请选择累计年月:
+          <el-date-picker v-model="cumYm" type="month" size="mini" format="YYYYMM" value-format="YYYYMM" style="width: 160px" placeholder="不填则查询所有年月"> </el-date-picker>
+          <el-divider direction="vertical"></el-divider>
+          <el-button type="primary" icon="el-icon-search" size="mini" @click="executeGetCumulativeInfo">查询</el-button>
+          <el-table :data="cumInfos.slice((cumCurrentPage - 1) * cumPageSize, cumCurrentPage * cumPageSize)" size="mini" stripe height="300">
+            <el-table-column prop="insutypeName" label="险种类型"></el-table-column>
+            <el-table-column prop="year" label="年度"></el-table-column>
+            <el-table-column prop="cumYm" label="累计年月"></el-table-column>
+            <el-table-column prop="cumTypeCode" label="累计类别代码"></el-table-column>
+            <el-table-column prop="cum" label="累计值"></el-table-column>
+          </el-table>
+          <el-pagination
+            @size-change="handleCumSizeChange"
+            @current-change="handleCumCurrentChange"
+            :current-page="cumCurrentPage"
+            :page-sizes="[10, 20, 30, 50, 100]"
+            :page-size="cumPageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="cumInfos.length"
+            style="margin-top: 5px"
+          ></el-pagination>
+        </el-dialog>
       </el-main>
     </el-container>
   </div>
@@ -168,7 +192,7 @@ import { ref, onMounted } from 'vue'
 import { maxHalfYear } from '@/data/shortcuts'
 import { getMedAllTypes } from '@/api/medical-insurance/si-dict'
 import { ElMessage } from 'element-plus'
-import { queryDiagnosisInfo, queryFeeDetails, querySettlementInfo, queryVisitInfo } from '@/api/medical-insurance/si-query'
+import { queryDiagnosisInfo, queryFeeDetails, querySettlementInfo, queryVisitInfo, queryPersonnelCumulativeInfo } from '@/api/medical-insurance/si-query'
 import { formatDatetime } from '@/utils/date'
 import store from '@/store'
 export default {
@@ -301,6 +325,33 @@ export default {
       })
     }
 
+    const showCumInfo = ref(false)
+    const cumYm = ref(null)
+    const cumInfos = ref([])
+    const cumPageSize = ref(10)
+    const cumCurrentPage = ref(1)
+    const handleCumSizeChange = (val) => {
+      cumPageSize.value = val
+    }
+    const handleCumCurrentChange = (val) => {
+      cumCurrentPage.value = val
+    }
+    const getCumInfo = () => {
+      if (nullMdtrtInfo()) {
+        return
+      }
+      showCumInfo.value = true
+    }
+    const executeGetCumulativeInfo = () => {
+      const param = {
+        psnNo: mdtrtInfo.value.psnNo,
+        cumYm: cumYm.value,
+      }
+      queryPersonnelCumulativeInfo(param).then((res) => {
+        cumInfos.value = res
+      })
+    }
+
     onMounted(() => {
       getMedAllTypes().then((res) => {
         medTypes.value = res
@@ -327,6 +378,15 @@ export default {
       showDiagnosisInfo,
       showSetlInfo,
       showFeeDetl,
+      getCumInfo,
+      cumYm,
+      showCumInfo,
+      cumInfos,
+      executeGetCumulativeInfo,
+      cumPageSize,
+      cumCurrentPage,
+      handleCumSizeChange,
+      handleCumCurrentChange,
     }
   },
 }

+ 5 - 2
src/views/medical-insurance/inpatient/Home.vue

@@ -200,10 +200,13 @@ export default {
       if (isYbVerifyPage.value) {
         if (currentMedType.value === '00') {
           return overviews.value.filter((item) => {
-            return item.status === statusFlag.value
+            return statusFlag.value === '0' ? true : item.status === statusFlag.value
           })
         }
         return overviews.value.filter((item) => {
+          if (statusFlag.value === '0') {
+            return item.medType === currentMedType.value
+          }
           return item.medType === currentMedType.value && item.status === statusFlag.value
         })
       } else {
@@ -235,7 +238,7 @@ export default {
           getPatientInfo(search.zyh).then((res) => {
             ward.current = res.admissWard
             store.commit('user/wardChange', ward.current)
-            store.commit('ptnt/setCurrentMedType', res.responceType)
+            store.commit('ptnt/setCurrentMedType', res.medType)
             setBaseinfo(res)
             overviews.value.push(makeOverview(res))
           })

+ 54 - 10
src/views/medical-insurance/inpatient/MedInsVerification.vue

@@ -65,6 +65,21 @@
           <el-col :span="4">{{ patient.xnhReferralno }}</el-col>
         </el-row>
       </div>
+      <div style="height: 8px"></div>
+      <el-tag size="mini">医保入院诊断</el-tag>
+      <el-table :data="zyInYbDiags" stripe size="mini">
+        <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="诊断类别">
+          <template #default="scope">
+            {{ getDiagTypeName(scope.row.diagType) }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="opDate" label="诊断时间"></el-table-column>
+      </el-table>
+
       <div class="his-info mt10">
         <el-tag size="mini">科室备注信息</el-tag>
         <div class="remark">
@@ -150,7 +165,7 @@
 </template>
 
 <script>
-import { computed, onActivated, onDeactivated, onMounted, ref } from 'vue'
+import { computed, onActivated, onDeactivated, onMounted, ref, watchEffect } from 'vue'
 import store from '@/store'
 import { cptSex } from '@/utils/computed'
 import maleIcon from '@/assets/male-icon.png'
@@ -159,9 +174,10 @@ import { approveYbsf, rejectYbsf, getUnhandledRequests, handleRequest } from '@/
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { cptResponceTypeName } from '@/utils/computed'
 import { nullPatient } from '@/utils/validate'
-import { getBizAppyTypes, getMedTypesByFlag } from '@/api/medical-insurance/si-dict'
+import { getBizAppyTypes, getMedTypesByFlag, getDiagTypes } from '@/api/medical-insurance/si-dict'
 import { checkPersonTreatment, obtainBasicPersonInfo, queryPersonnelAssignmentInfo } from '@/api/medical-insurance/si-query'
 import { admissRegister } from '@/api/medical-insurance/si-inpatient'
+import { getZyInYbDiags } from '@/api/yibao/patient'
 import { baseinfo } from '@/data/inpatient'
 export default {
   setup() {
@@ -181,8 +197,30 @@ export default {
     const showTrtInfos = ref(false)
     const showPsnInsuinfo = ref(false)
     const insuRowClickFlag = ref(null)
-
+    const zyInYbDiags = ref([])
     const medTypes = ref([])
+
+    const actived = ref(false)
+    onActivated(() => {
+      actived.value = true
+      store.commit('app/setCurrentPageName', 'medInsVerification')
+    })
+
+    onDeactivated(() => {
+      actived.value = false
+      store.commit('app/setCurrentPageName', '')
+    })
+
+    watchEffect(() => {
+      if (actived.value) {
+        if (patient.value.inpatientNo) {
+          getZyInYbDiags(patient.value.inpatientNo, patient.value.admissTimes).then((res) => {
+            zyInYbDiags.value = res
+          })
+        }
+      }
+    })
+
     const getPsnInsuinfo = (flag) => {
       if (nullPatient()) {
         return
@@ -344,13 +382,14 @@ export default {
       }
     }
 
-    onActivated(() => {
-      store.commit('app/setCurrentPageName', 'medInsVerification')
-    })
-
-    onDeactivated(() => {
-      store.commit('app/setCurrentPageName', '')
-    })
+    const diagTypes = ref([])
+    const getDiagTypeName = (val) => {
+      for (let i = 0; i < diagTypes.value.length; i++) {
+        if (diagTypes.value[i].code === val) {
+          return diagTypes.value[i].name
+        }
+      }
+    }
 
     onMounted(() => {
       getMedTypesByFlag('hospitalization').then((res) => {
@@ -359,12 +398,17 @@ export default {
       getBizAppyTypes().then((res) => {
         bizAppyTypes.value = res
       })
+      getDiagTypes().then((res) => {
+        diagTypes.value = res
+      })
     })
 
     return {
       patient,
+      zyInYbDiags,
       tableHeight,
       drawerVisible,
+      getDiagTypeName,
       cancelData,
       maleIcon,
       femaleIcon,