yuwandanmian 1 سال پیش
والد
کامیت
3dc928117b

+ 129 - 0
src/views/medicalRecord/components/cost/SearchBox.vue

@@ -0,0 +1,129 @@
+<template>
+  <div class="search-box">
+    <el-form :model="data" class="demo-form-inline" label-suffix=":" label-width="74px">
+      <el-row :gutter="20">
+        <el-col :span="6">
+          <el-form-item label="住院号码">
+            <el-input v-model="data.AAA28" clearable placeholder="请输入"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="住院科室">
+            <el-select v-model="data.AAC11C" filterable clearable placeholder="全部" style="width: 100%;">
+              <el-option v-for="(item, index) in departmentList" :key="index" :label="item.dep_name" :value="item.dep_id"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="出院时间">
+            <el-date-picker
+              v-model="data.AAC01"
+              type="daterange"
+              start-placeholder="开始时间"
+              end-placeholder="结束时间"
+              value-format="yyyyMMdd"
+              style="width: 100%;">
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="住院医师">
+            <el-select v-model="data.AEE04_CODE" filterable clearable placeholder="全部" style="width: 100%;">
+              <el-option v-for="item of doctors" :key="item.id" :label="item.label" :value="item.id"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="编码员">
+            <el-select v-model="data.AEE08_CODE" filterable clearable placeholder="全部" style="width: 100%;">
+              <el-option v-for="item of doctors" :key="item.id" :label="item.label" :value="item.id"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="手术名称">
+            <el-input v-model="data.ICD9_NAME" clearable placeholder="请输入"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="手术编号">
+            <el-input v-model="data.ICD9_ID1" clearable placeholder="请输入"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="诊断名称">
+            <el-input v-model="data.ICD10_NAME" clearable placeholder="请输入"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="诊断编码">
+            <el-input v-model="data.ICD10_ID1" clearable placeholder="请输入"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item>
+            <el-button plain @click="onReset" icon="el-icon-refresh">重置</el-button>
+            <el-button type="primary" @click="onSubmit" class="export-btn" icon="el-icon-search">查询</el-button>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    data: {
+      type: Object,
+      default() {
+        return {
+          AAA28: '',
+          AAC11C: '',
+          AAC01: [],
+          AEE04_CODE: '',
+          AEE08_CODE: '',
+          ICD9_ID1: '',
+          ICD9_NAME: '',
+          ICD10_ID1: '',
+          ICD10_NAME: ''
+        }
+      }
+    }
+  },
+  data() {
+    return {
+      doctors: [],
+      departmentList: []
+    }
+  },
+  created() {
+    this.getDoctors()
+    this.getDepartment()
+  },
+  methods: {
+    // 获取医生选线
+    getDoctors() {
+      this.$axios.post('/selectStaff').then(res => {
+        this.doctors = res.data
+      })
+    },
+    getDepartment() {
+      this.$axios.post('/bmy/getAllDepartment').then(res => {
+        // 不要全部选项
+        this.departmentList = res.data;
+      })
+    },
+    onSubmit() {
+      this.$emit('search')
+    },
+    onReset() {
+      this.$emit('reset')
+    }
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 207 - 0
src/views/medicalRecord/components/cost/TableBox.vue

@@ -0,0 +1,207 @@
+<template>
+  <div class="table-box">
+    <div class="btn-box">
+      <el-button type="primary" plain icon="el-icon-upload" @click="onExport">下载</el-button>
+      <el-popover
+        placement="bottom-end"
+        title=""
+        trigger="click"
+        popper-class="table_code_popper"
+      >
+        <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">全选</el-checkbox>
+        <el-checkbox-group v-model="codes" @change="handleChange">
+          <el-checkbox label="field_name">缺陷字段</el-checkbox>
+          <el-checkbox label="desc">缺陷描述</el-checkbox>
+          <el-checkbox label="AAA28">住院号码</el-checkbox>
+          <el-checkbox label="AAA01">姓名</el-checkbox>
+          <el-checkbox label="AAC01">出院时间</el-checkbox>
+          <el-checkbox label="AAC11N">出院科室</el-checkbox>
+          <el-checkbox label="AEE08">编码员</el-checkbox>
+          <el-checkbox label="AEE04">住院医师</el-checkbox>
+          <el-checkbox label="ICD10_NAME">主要诊断名称</el-checkbox>
+          <el-checkbox label="ICD10_ID1">主要诊断编码</el-checkbox>
+          <el-checkbox label="type">缺陷归类</el-checkbox>
+        </el-checkbox-group>
+        <el-button slot="reference" type="primary" plain icon="el-icon-setting" style="margin-left: 10px;"></el-button>
+      </el-popover>
+    </div>
+    <el-table
+      :data="data"
+      style="width: 100%">
+      <el-table-column
+        type="index"
+        label="序号"
+        width="50"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('field_name')"
+        prop="field_name"
+        label="缺陷字段"
+        show-overflow-tooltip
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AAA28')"
+        prop=""
+        label="住院号码"
+        show-overflow-tooltip
+        width="120"
+        align="center">
+        <template slot-scope="scope">
+          <span class="link2" @click="toPage(scope.row)">{{ scope.row.AAA28 }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AAA01')"
+        prop="AAA01"
+        label="姓名"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AAC01')"
+        prop="AAC01"
+        label="出院时间"
+        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AAC11N')"
+        prop="AAC11N"
+        label="出院科室"
+        show-overflow-tooltip
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AEE08')"
+        prop="AEE08"
+        label="编码员"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('AEE04')"
+        prop="AEE04"
+        label="住院医师"
+        width="120"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD10_NAME')"
+        prop="ICD10_NAME"
+        label="主要诊断名称"
+        width="160"
+        show-overflow-tooltip
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD10_ID1')"
+        prop="ICD10_ID1"
+        label="主要诊断编码"
+        width="160"
+        show-overflow-tooltip
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD9_NAME')"
+        prop="ICD9_NAME"
+        label="主要手术名称"
+        width="160"
+        show-overflow-tooltip
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD9_ID1')"
+        prop="ICD9_ID1"
+        label="主要手术编码"
+        width="160"
+        show-overflow-tooltip
+        align="center">
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+  export default {
+    props: {
+      data: {
+        type: Array,
+        default() {
+          return []
+        }
+      }
+    },
+    data() {
+      const defaultCodes = [
+        'field_name',
+        'AAA28',
+        'AAA01',
+        'AAC01',
+        'AAC11N',
+        'AEE08',
+        'AEE04',
+        'ICD10_NAME',
+        'ICD10_ID1',
+        'ICD9_NAME',
+        'ICD9_ID1'
+      ]
+      return {
+        checkAll: true,
+        isIndeterminate: false,
+        defaultCodes,
+        codes: [
+          'field_name',
+          'AAA28',
+          'AAA01',
+          'AAC01',
+          'AAC11N',
+          'AEE08',
+          'AEE04',
+          'ICD10_NAME',
+          'ICD10_ID1',
+          'ICD9_NAME',
+          'ICD9_ID1'
+        ],
+      }
+    },
+    methods: {
+      handleCheckAllChange(val) {
+        this.codes = val ? this.defaultCodes : []
+        this.isIndeterminate = false
+      },
+      // 展示字段发生变化
+      handleChange(val) {
+        const checkedCount = val.length
+        this.checkAll = checkedCount === this.defaultCodes.length
+        this.codes = val
+      },
+      toPage(row) {
+        this.$router.push({ name: 'MedicalRecordNew', query: { zyh: row.ZYH }})
+      },
+      onExport() {
+        this.$emit('export')
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.table-box {
+  margin-bottom: 20px;
+  .btn-box {
+    text-align: right;
+    margin-bottom: 20px;
+  }
+}
+</style>
+<style lang="scss">
+.table_code_popper {
+  .el-checkbox {
+    display: block;
+    line-height: 26px;
+  }
+}
+</style>

+ 37 - 5
src/views/medicalRecord/components/ControlDialog.vue → src/views/medicalRecord/components/index/ControlDialog.vue

@@ -9,10 +9,12 @@
     :close-on-click-modal="false"
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     :close-on-press-escape="false"
   >
   >
-    <div class="score-box">
+    <div class="score-box" :class="scoreLevel == '甲'? 'scoreLevel_1' : ( scoreLevel == '乙'?'scoreLevel_2': (scoreLevel == '丙'?'scoreLevel_3':''))">
       <span>病案评分</span>
       <span>病案评分</span>
-      <span class="score">99</span>
-      <el-image class="level" style="width: 47px; height: 41px" :src="require('../../../assets/images/icon-jia.png')" fit="contain"></el-image>
+      <span class="score">{{ controls.score.score }}</span>
+      <el-image v-if="scoreLevel == '甲'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/icon-jia.png')" fit="contain"></el-image>
+      <el-image v-if="scoreLevel == '乙'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/icon-yi.png')" fit="contain"></el-image>
+      <el-imagee v-if="scoreLevel == '丙'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/icon-bing.png')" fit="contain"></el-imagee>
     </div>
     </div>
     <div class="legend-box">
     <div class="legend-box">
       <span class="qz">强制</span>
       <span class="qz">强制</span>
@@ -52,13 +54,15 @@ export default {
     return {
     return {
       controls: {
       controls: {
         ZYH: '',
         ZYH: '',
-        score: '',
+        score: {
+          score: 100
+        },
         list: []
         list: []
       },
       },
       // controls: {
       // controls: {
       //   ZYH: '809257',
       //   ZYH: '809257',
       //   score: {
       //   score: {
-      //     score: 99,
+      //     score: 69,
       //     level: 0,
       //     level: 0,
       //   },
       //   },
       //   list: [
       //   list: [
@@ -178,6 +182,25 @@ export default {
       // },
       // },
     };
     };
   },
   },
+  computed: {
+    scoreLevel() {
+      /**
+       * 甲>90分
+       * 乙75-90分
+       * 丙<75分
+       * */ 
+      let str
+      const { score } = this.controls.score
+      if (score > 90) {
+        str = '甲'
+      } else if (score < 75) {
+        str = '丙'
+      } else {
+        str = '乙'
+      }
+      return str
+    }
+  },
   created() {
   created() {
     this.getData()
     this.getData()
   },
   },
@@ -233,6 +256,15 @@ export default {
   .level {
   .level {
     float: right;
     float: right;
   }
   }
+  &.scoreLevel_1{
+    background: rgb(11, 133, 63);
+  }
+  &.scoreLevel_2{
+    background: rgb(152, 112, 20);
+  }
+  &.scoreLevel_3{
+    background: rgb(199, 54, 13);
+  }
 }
 }
 .legend-box {
 .legend-box {
   text-align: center;
   text-align: center;

+ 0 - 0
src/views/medicalRecord/components/IconBtn.vue → src/views/medicalRecord/components/index/IconBtn.vue


+ 0 - 0
src/views/medicalRecord/components/NoValueInput.vue → src/views/medicalRecord/components/index/NoValueInput.vue


+ 0 - 0
src/views/medicalRecord/cost.vue


+ 3 - 3
src/views/medicalRecord/index.vue

@@ -528,9 +528,9 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import ControlDialogVue from './components/ControlDialog.vue'
-import IconBtnVue from './components/IconBtn.vue'
-import NoValueInputVue from './components/NoValueInput.vue'
+import ControlDialogVue from './components/index/ControlDialog.vue'
+import IconBtnVue from './components/index/IconBtn.vue'
+import NoValueInputVue from './components/index/NoValueInput.vue'
 export default {
 export default {
   components: {
   components: {
     IconBtnVue,
     IconBtnVue,