Browse Source

病案首页优化

lighter 3 years ago
parent
commit
d8f07566d2

File diff suppressed because it is too large
+ 591 - 563
src/views/hospitalization/case-front-sheet/AllCaseFrontSheet.vue


+ 50 - 14
src/views/hospitalization/case-front-sheet/FillCaseFrontSheet.vue

@@ -336,7 +336,7 @@
                 质控护士:
                 <input style="width: 70px" v-model="patient.qualityControlNurseName" @click="showSearchData('qualitycontrolnurse')" />
                 质控日期:
-                <input style="width: 170px" type="date" v-model="patient.qualityControlDate" />
+                <input id="qualityControlDate" style="width: 170px" type="date" v-model="patient.qualityControlDate" />
               </div>
             </div>
             <div id="page2" style="border: 1px solid black; padding: 5px">
@@ -564,7 +564,7 @@
                   <option v-for="(item, index) in dics.getCaseClassification" :key="index" :value="item.code">&nbsp;&nbsp;{{ item.name }}&nbsp;&nbsp;</option>
                 </select>
                 实施重症监护:
-                <select id="handleSelectIcu" v-model="patient.hasIcu" @change="handleSelectIcu">
+                <select id="hasIcu" v-model="patient.hasIcu" @change="handleSelectIcu">
                   <option v-for="(item, index) in haveOrNot" :key="index" :value="item.code">&nbsp;&nbsp;{{ item.name }}&nbsp;&nbsp;</option>
                 </select>
                 ,监护总时间:
@@ -621,7 +621,12 @@
           </div>
           <div class="page-wrapper" :style="isCollapse ? collapseMessageArea : messageArea">
             <div class="page-inner">
-              <div v-for="(item, index) in verifyMessages" :key="index" class="message-item" :style="messageColor(index)" @click="handleClickMessage(item.code, index)">
+              <div v-show="forceVerifies.length > 0" style="padding: 8px 0 4px 0; font-weight: bold">以下条目为强制要求,请完善。</div>
+              <div v-for="(item, index) in forceVerifies" :key="index" class="message-item" :style="messageColor(index)" @click="handleClickMessage(item.code, index)">
+                {{ index + 1 }}、{{ item.name }}
+              </div>
+              <div v-show="adviceVerifies.length > 0" style="padding: 8px 0 4px 0; font-weight: bold">以下条目为建议执行,不做强制要求。</div>
+              <div v-for="(item, index) in adviceVerifies" :key="index" style="padding: 6px; margin-bottom: 6px; border-radius: 4px; background: #eea7a752; color: #ff2b2b">
                 {{ index + 1 }}、{{ item.name }}
               </div>
             </div>
@@ -658,12 +663,15 @@
       <div style="height: 5px"></div>
       <el-input placeholder="在此搜索诊断" style="width: 160px" v-model="ybDiag.name" @click="showSearchData('ybDiag')"></el-input>
       <el-input placeholder="诊断编码" disabled style="width: 100px" v-model="ybDiag.code"></el-input>
-      <el-select v-model="ybDiag.cyzg" style="width: 120px" placeholder="出院转归">
-        <el-option v-for="item in cyzgs" :key="item.code" :value="item.code" :label="item.name"></el-option>
-      </el-select>
       <el-select v-model="ybDiag.siDiagType" style="width: 100px" placeholder="诊断类别">
         <el-option v-for="item in diagTypes" :key="item.code" :value="item.code" :label="item.name"></el-option>
       </el-select>
+      <el-select v-model="ybDiag.admissCond" style="width: 100px" placeholder="入院病情">
+        <el-option v-for="item in admissConds" :key="item.code" :value="item.code" :label="item.name"></el-option>
+      </el-select>
+      <el-select v-model="ybDiag.cyzg" style="width: 120px" placeholder="出院转归">
+        <el-option v-for="item in cyzgs" :key="item.code" :value="item.code" :label="item.name"></el-option>
+      </el-select>
       &nbsp;&nbsp; (非手术/手术)分值:
       <span>{{ ssfz.code }} / {{ ssfz.name }}</span>
       <el-divider direction="vertical"></el-divider>
@@ -674,7 +682,8 @@
         <el-table-column prop="code" label="诊断编码"></el-table-column>
         <el-table-column prop="name" label="诊断名称"></el-table-column>
         <el-table-column prop="siDiagType" label="诊断类别" width="80"></el-table-column>
-        <el-table-column prop="cyzg" label="转归" width="50"></el-table-column>
+        <el-table-column prop="admissCond" label="入院病情" width="80"></el-table-column>
+        <el-table-column prop="cyzg" label="出院转归" width="80"></el-table-column>
         <el-table-column prop="operId" label="录入人" width="70"></el-table-column>
         <el-table-column prop="opDate" label="录入日期"></el-table-column>
         <el-table-column label="操作">
@@ -971,10 +980,11 @@ export default {
     }
 
     const fetchSheetInfo = (row) => {
+      if (row.bah !== patient.value.bah || row.times !== patient.value.admissTimes) {
+        forceVerifies.value = []
+        adviceVerifies.value = []
+      }
       getSheetInfo(row.bah, row.times, inOutStatus.value).then((res) => {
-        if (row.bah !== patient.value.bah || row.times !== patient.value.admissTimes) {
-          verifyMessages.value = []
-        }
         patient.value = res
         patient.value.bedNo = row.bedNo
         patient.value.sex = row.sex
@@ -1147,6 +1157,7 @@ export default {
 
     const ybDiag = reactive({})
     const cyzgs = initCyzgs()
+    const admissConds = initAdmissConds()
     const diagTypes = initDiagTypes()
     const ssfz = reactive({})
     const handleSelectSearch = (item) => {
@@ -1223,6 +1234,15 @@ export default {
         })
         return
       }
+      if (!ybDiag.admissCond) {
+        ElMessage({
+          message: '请选择入院病情!',
+          type: 'warning',
+          duration: 2500,
+          showClose: true,
+        })
+        return
+      }
       const temp = clone(ybDiag)
       temp.diagType = 13
       temp.operId = store.state.user.info.code
@@ -1348,7 +1368,8 @@ export default {
       return false
     }
 
-    const verifyMessages = ref([])
+    const forceVerifies = ref([])
+    const adviceVerifies = ref([])
     const currentMessageIndex = ref(null)
     const messageColor = (id) => {
       return currentMessageIndex.value === id
@@ -1391,7 +1412,7 @@ export default {
           })
         })
         .catch((e) => {
-          verifyMessages.value = e.data
+          forceVerifies.value = e.data
         })
     }
     const dismissShowSearch = (flag) => {
@@ -1414,7 +1435,11 @@ export default {
           execPrint(flag)
         })
         .catch((e) => {
-          verifyMessages.value = e.data
+          forceVerifies.value = e.data.force
+          adviceVerifies.value = e.data.advice
+          if (e.data.force.length === 0) {
+            execPrint(flag)
+          }
         })
     }
     const execPrint = (flag) => {
@@ -1679,6 +1704,7 @@ export default {
       openYbDiag,
       ybDiag,
       cyzgs,
+      admissConds,
       diagTypes,
       ssfz,
       ybDiags,
@@ -1703,7 +1729,8 @@ export default {
       cptSex,
       huiZhenYiShengPanDuan,
       huiZhenYiShengList,
-      verifyMessages,
+      forceVerifies,
+      adviceVerifies,
       handleClickMessage,
       messageColor,
     }
@@ -1731,6 +1758,15 @@ function initCyzgs() {
   ]
 }
 
+function initAdmissConds() {
+  return [
+    { code: 1, name: '有' },
+    { code: 2, name: '临床未确定' },
+    { code: 3, name: '情况不明' },
+    { code: 4, name: '无' },
+  ]
+}
+
 function initDiagTypes() {
   return [
     { code: 1, name: '西医主要诊断' },

Some files were not shown because too many files changed in this diff