yuwandanmian 1 年之前
父节点
当前提交
f22c0227a1
共有 2 个文件被更改,包括 1086 次插入928 次删除
  1. 191 197
      src/views/medicalRecord/components/index/ControlDrawer.vue
  2. 895 731
      src/views/medicalRecord/index.vue

+ 191 - 197
src/views/medicalRecord/components/index/ControlDrawer.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="control-box">
-    <div style="text-align: right; margin-bottom: 10px;">
-      <i class="el-icon-close" style="font-size: 16px;" @click="onClose"></i>
+    <div style="text-align: right; margin-bottom: 10px">
+      <i class="el-icon-close" style="font-size: 16px" @click="onClose"></i>
     </div>
-    <div class="score-box" :class="{scoreLevel_1: scoreLevel == '优', scoreLevel_2: scoreLevel == '良', scoreLevel_3: scoreLevel == '中', scoreLevel_4: scoreLevel == '差'}">
+    <div class="score-box" :class="{ scoreLevel_1: scoreLevel == '优', scoreLevel_2: scoreLevel == '良', scoreLevel_3: scoreLevel == '中', scoreLevel_4: scoreLevel == '差' }">
       <span>病案评分</span>
       <span class="score">{{ controls.score.score }}</span>
       <el-image v-if="scoreLevel == '优'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/you.png')" fit="contain"></el-image>
@@ -16,18 +16,24 @@
       <span class="jy">建议</span>
     </div>
     <el-scrollbar style="height: calc(100vh - 320px)">
-      <div class="cont-reight-bottom" v-for="(item, index) in controls.list" :key="index">
-        <div :class="item.level == 1 ? 'cont-reight-bottom-title-null' : 'cont-reight-bottom-title'">
-          <span v-if="item.category == 0">A类</span>
-          <span v-if="item.category == 1">B类</span>
-          <span v-if="item.category == 2">C类</span>
-          <span v-if="item.category == 3">D类</span>
-          <span v-if="item.category == 4">其他</span>
-          -{{ item.down }}
+      <div v-for="(item, index) in controls.list" :key="index">
+        <div class="cont-reight-bottom">
+          <div :class="item.level == 1 ? 'cont-reight-bottom-title-null' : 'cont-reight-bottom-title'">
+            <span v-if="item.category == 0">A类</span>
+            <span v-if="item.category == 1">B类</span>
+            <span v-if="item.category == 2">C类</span>
+            <span v-if="item.category == 3">D类</span>
+            <span v-if="item.category == 4">其他</span>
+            -{{ item.down }}
+          </div>
+          <div class="cont-reight-bottom-conter">
+            <p>{{ item.field_name }}</p>
+            <p>{{ item.desc }}</p>
+          </div>
         </div>
-        <div class="cont-reight-bottom-conter">
-          <p>{{ item.field_name }}</p>
-          <p>{{ item.desc }}</p>
+        <!-- 质控依据 -->
+        <div v-for="(yjItem, yjIndex) of item.basis" :key="'yj'+yjIndex">
+          <div class="zkyj" @click="toJump(yjItem)">{{ yjItem.desc }}</div>
         </div>
       </div>
     </el-scrollbar>
@@ -35,188 +41,168 @@
 </template>
 
 <script>
-  export default {
-    props: {
-      data: {
-        type: Object,
-        default: {
-          bSwitch: false,
-          zyh: '',
-        },
+export default {
+  props: {
+    data: {
+      type: Object,
+      default: {
+        bSwitch: false,
+        zyh: '',
       },
     },
-    data() {
-      return {
-        controls: {
-          ZYH: '',
-          score: {
-            score: 100
-          },
-          list: []
+  },
+  data() {
+    return {
+      // controls: {
+      //   ZYH: '',
+      //   score: {
+      //     score: 100
+      //   },
+      //   list: []
+      // },
+      controls: {
+        ZYH: '809257',
+        score: {
+          score: 99,
+          level: 0,
         },
-        // controls: {
-        //   ZYH: '809257',
-        //   score: {
-        //     score: 69,
-        //     level: 0,
-        //   },
-        //   list: [
-        //     {
-        //       error_rule: 21,
-        //       level: 0,
-        //       field_name: '单位邮编',
-        //       category: 3,
-        //       down: 0.5,
-        //       desc: '单位邮编填写不规范',
-        //     },
-        //     {
-        //       error_rule: 6,
-        //       level: 0,
-        //       field_name: '健康卡号',
-        //       category: 3,
-        //       down: 0.5,
-        //       desc: '健康卡号填写不规范',
-        //     },
-        //     {
-        //       error_rule: 1441,
-        //       level: 1,
-        //       field_name: '有创呼吸机使用时间',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
-        //     },
-        //     {
-        //       error_rule: 1457,
-        //       level: 1,
-        //       field_name: '主要诊断编码',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
-        //     },
-        //     {
-        //       error_rule: 1441,
-        //       level: 1,
-        //       field_name: '有创呼吸机使用时间',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
-        //     },
-        //     {
-        //       error_rule: 1457,
-        //       level: 1,
-        //       field_name: '主要诊断编码',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
-        //     },
-        //     {
-        //       error_rule: 1441,
-        //       level: 1,
-        //       field_name: '有创呼吸机使用时间',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
-        //     },
-        //     {
-        //       error_rule: 1457,
-        //       level: 1,
-        //       field_name: '主要诊断编码',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
-        //     },
-        //     {
-        //       error_rule: 1441,
-        //       level: 1,
-        //       field_name: '有创呼吸机使用时间',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
-        //     },
-        //     {
-        //       error_rule: 1457,
-        //       level: 1,
-        //       field_name: '主要诊断编码',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
-        //     },
-        //     {
-        //       error_rule: 1441,
-        //       level: 1,
-        //       field_name: '有创呼吸机使用时间',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
-        //     },
-        //     {
-        //       error_rule: 1457,
-        //       level: 1,
-        //       field_name: '主要诊断编码',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
-        //     },
-        //     {
-        //       error_rule: 1441,
-        //       level: 1,
-        //       field_name: '有创呼吸机使用时间',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
-        //     },
-        //     {
-        //       error_rule: 1457,
-        //       level: 1,
-        //       field_name: '主要诊断编码',
-        //       category: 0,
-        //       down: 0,
-        //       desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
-        //     },
-        //   ],
-        // },
-      };
+        list: [
+          {
+            error_rule: 1457,
+            level: 1,
+            field_name: '主要诊断编码',
+            category: 0,
+            down: 0,
+            desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
+            basis: [
+              {
+                desc: '诊断编码出现【S00-S09】颅内损伤昏迷时间不能全部为空',
+                location: {
+                  user: ['AEJ01', 'AEJ02', 'AEJ03', 'AEJ04', 'AEJ05', 'AEJ06'],
+                  zd: [
+                    {
+                      ZZPB: 1,
+                      DIA_ORDER: 1,
+                      field: 'ICD10_ID1',
+                    },
+                    {
+                      ZZPB: 0,
+                      DIA_ORDER: 1,
+                      field: 'ICD10_ID1',
+                    },
+                    {
+                      ZZPB: 0,
+                      DIA_ORDER: 2,
+                      field: 'ICD10_ID1',
+                    },
+                  ],
+                  ss: [
+                    {
+                      OPE_ORDER: 1,
+                      field: 'ICD9_ID1',
+                    },
+                    {
+                      ZZPB: 2,
+                      field: 'ICD9_ID1',
+                    },
+                  ],
+                },
+              },
+            ],
+          },
+          {
+            error_rule: 6,
+            level: 0,
+            field_name: '健康卡号',
+            category: 3,
+            down: 0.5,
+            desc: '健康卡号未填写',
+            basis: [
+              {
+                desc: '尚未发送“健康卡”的地区填写“-”',
+                location: {
+                  user: ['JKKH'],
+                  zd: [],
+                  ss: []
+                },
+              },
+            ],
+          },
+        ],
+      },
+      zkcodeIndex: 0
+    };
+  },
+  computed: {
+    scoreLevel() {
+      /**
+       * 优>=97分
+       * 良90-96分
+       * 中75~89分
+       * 差<75分
+       * */
+      let str;
+      const { score } = this.controls.score;
+      if (score >= 97) {
+        str = '优';
+      } else if (score < 97 && score >= 90) {
+        str = '良';
+      } else if (score < 90 && score >= 75) {
+        str = '中';
+      } else {
+        str = '差';
+      }
+      return str;
     },
-    computed: {
-      scoreLevel() {
-        /**
-         * 优>=97分
-         * 良90-96分
-         * 中75~89分
-         * 差<75分
-         * */ 
-        let str
-        const { score } = this.controls.score
-        if (score >= 97) {
-          str = '优'
-        } else if (score < 97 && score >=90) {
-          str = '良'
-        } else if (score < 90 && score >=75) {
-          str = '中'
-        } else {
-          str = '差'
+  },
+  created() {
+    // this.getData();
+  },
+  methods: {
+    // 跳转锚点及高亮
+    toJump(item) {
+      const { user, zd, ss } = item.location
+      const arr = []
+      user.map(item => {
+        const obj = {
+          field: item,
+          key: 'user'
         }
-        return str
+        arr.push(obj)
+      })
+      zd.map(item => {
+        item.key="zd"
+        arr.push(item)
+      })
+      ss.map(item => {
+        item.key="ss"
+        arr.push(item)
+      })
+
+      const maxIndex = arr.length - 1
+      // console.log(arr[this.zkcodeIndex].field, arr[this.zkcodeIndex].key, this.zkcodeIndex)
+      this.$emit('zk', arr[this.zkcodeIndex])
+      if (this.zkcodeIndex === maxIndex) {
+        this.zkcodeIndex = 0
+      } else {
+        this.zkcodeIndex++
       }
+
     },
-    created() {
-      this.getData()
+    onClose() {
+      this.$emit('close');
     },
-    methods: {
-      onClose() {
-        this.$emit('close')
-      },
-      // 获取详情
-      getData() {
-        const params = {
-          ZYH: this.data.zyh
-        }
-        this.$axios.post('/bmy/qualityResult', params).then(res => {
-          this.controls = res.data
-        });
-      }
-    }
-  }
+    // 获取详情
+    getData() {
+      const params = {
+        ZYH: this.data.zyh,
+      };
+      this.$axios.post('/bmy/qualityResult', params).then(res => {
+        this.controls = res.data;
+      });
+    },
+  },
+};
 </script>
 
 <style lang="scss">
@@ -236,7 +222,7 @@
   background: #fff;
   border-radius: 5px;
   overflow-x: hidden;
-  transition: all .5s;
+  transition: all 0.5s;
 }
 ::v-deep .el-dialog {
   margin-right: 30px;
@@ -271,17 +257,17 @@
   .level {
     float: right;
   }
-  &.scoreLevel_1{
+  &.scoreLevel_1 {
     background: #328240;
   }
-  &.scoreLevel_2{
-    background: #8AC410;
+  &.scoreLevel_2 {
+    background: #8ac410;
   }
-  &.scoreLevel_3{
-    background: #EF8A0D;
+  &.scoreLevel_3 {
+    background: #ef8a0d;
   }
-  &.scoreLevel_4{
-    background: #F0203A;
+  &.scoreLevel_4 {
+    background: #f0203a;
   }
 }
 .legend-box {
@@ -319,7 +305,7 @@
   }
 }
 .cont-reight-bottom {
-  margin: 24px 7px;
+  margin: 24px 0 15px;
   display: flex;
   cursor: pointer;
 }
@@ -366,4 +352,12 @@
     color: #666666;
   }
 }
+.zkyj {
+  font-size: 14px;
+  font-family: Source Han Sans CN-Regular, Source Han Sans CN;
+  font-weight: 600;
+  color: #ED3028;
+  line-height: 20px;
+  cursor: pointer;
+}
 </style>

文件差异内容过多而无法显示
+ 895 - 731
src/views/medicalRecord/index.vue


部分文件因为文件数量过多而无法显示