Browse Source

门诊病历质控

yuwandanmian 2 years ago
parent
commit
97a4cef087

+ 8 - 8
src/router/index.js

@@ -220,18 +220,18 @@ export const constantRoutes = [
         meta: { title: '门诊病历质控' },
         hidden: true,
       },
-      {
-        path: '/outpatientMedicalRecordNumber',
-        name: 'OutpatientMedicalRecordNumber',
-        component: () => import('@/views/outpatient/control/medicalRecordNumber'),
-        meta: { title: '病历数量' },
-        hidden: true,
-      },,
       {
         path: '/outpatientMedicalRecordDefectNumber',
         name: 'OutpatientMedicalRecordDefectNumber',
         component: () => import('@/views/outpatient/control/defectNumber'),
-        meta: { title: '缺陷病历' },
+        meta: { title: '门诊病历', keepAlive: true },
+        hidden: true,
+      },
+      {
+        path: '/outpatientMedicalRecordDetail',
+        name: 'OutpatientMedicalRecordDetail',
+        component: () => import('@/views/outpatient/control/detail'),
+        meta: { title: '门诊病历详情' },
         hidden: true,
       }
     ],

+ 5 - 5
src/views/outpatient/control/defectNumber.vue

@@ -34,7 +34,7 @@
         <el-table-column prop="jzsj" label="就诊时间"></el-table-column>
         <el-table-column prop="" label="门诊号">
           <template slot-scope="scope">
-            <span class="blue" @click="funGoto(scope.row.MED_REC_ID)">
+            <span class="blue" @click="funGoto(scope.row.BLBH)">
               {{ scope.row.mzh }}
             </span>
           </template>
@@ -101,9 +101,8 @@ export default {
     toBack() {
       this.$router.history.go(-1)
     },
-    funGoto(val) {
-      this.storageSet('getData', val);
-      this.goto('/caseViews')
+    funGoto(blbh) {
+      this.$router.push({ path: '/outpatientMedicalRecordDetail', query: { blbh } })
     },
     selectInfo() {
       this.$axios.post('/omr_zk/department_list').then(res => {
@@ -122,7 +121,8 @@ export default {
         start_time: this.formData.startTime || '',
         end_time: this.formData.endTime || '',
         page: this.paginationData.currentPage,
-        limit: this.paginationData.pageSize
+        limit: this.paginationData.pageSize,
+        is_error: this.$route.query.is_error
       };
       if (this.rule_id) {
         pramse.rule_id = this.rule_id;

+ 168 - 0
src/views/outpatient/control/detail.vue

@@ -0,0 +1,168 @@
+<template>
+  <div class="bcjl">
+    <div class="content-box">
+      <div class="title">门诊病历</div>
+      <div class="info-header mb40">
+        <el-row :gutter="32">
+          <el-col :span="8" class="mb20">
+            <span class="text-blod">门诊号:</span>
+            <span>{{ data.mzh }}</span>
+          </el-col>
+          <el-col :span="8" class="mb20">
+            <span class="text-blod">姓名:</span>
+            <span>{{ data.xm }}</span>
+          </el-col>
+          <el-col :span="8" class="mb20">
+            <span class="text-blod">就诊时间:</span>
+            <span>{{ data.jzsh }}</span>
+          </el-col>
+          <el-col :span="8">
+            <span class="text-blod">科室:</span>
+            <span>{{ data.ks }}</span>
+          </el-col>
+          <el-col :span="8">
+            <span class="text-blod">性别:</span>
+            <span>{{ data.xb }}</span>
+          </el-col>
+          <el-col :span="8">
+            <span class="text-blod">年龄:</span>
+            <span>{{ data.nl }}</span>
+          </el-col>
+        </el-row>
+      </div>
+      <div class="info-content">
+        <el-row :gutter="32">
+          <el-col :span="24" class="mb10">
+            <span class="text-blod">主诉:</span>
+            <div class="pl76 mb20">{{ data.zs }}</div>
+          </el-col>
+          <el-col :span="24" class="mb10">
+            <span class="text-blod">现病史:</span>
+            <div class="pl76 mb20">{{ data.xbs }}</div>
+          </el-col>
+          <el-col :span="24" class="mb10">
+            <span class="text-blod">既往史:</span>
+            <div class="pl76 mb20">{{ data.jws }}</div>
+          </el-col>
+          <el-col :span="24" class="mb10">
+            <span class="text-blod">体格检查:</span>
+            <div class="pl76 mb20">{{ data.tgjc }}</div>
+          </el-col>
+          <el-col :span="24" class="mb10">
+            <span class="text-blod">辅助检查:</span>
+            <div class="pl76 mb20">{{ data.fzjc }}</div>
+          </el-col>
+          <el-col :span="24" class="mb10">
+            <span class="text-blod">初步诊断:</span>
+            <div class="pl76 mb20">{{ data.cbzd }}</div>
+          </el-col>
+          <el-col :span="24" class="mb10">
+            <span class="text-blod">诊疗意见:</span>
+            <div class="pl76 mb20" v-html="data.zlyj"></div>
+          </el-col>
+          <el-col :span="24" class="mb10">
+            <span class="text-blod">药品:</span>
+            <div class="pl76 mb20" v-for="(item, index) of data.xy" :key="index">{{ item }}</div>
+          </el-col>
+          <el-col :span="24" style="margin-top: 80px;">
+            <div class="text_right">
+              医生签名:
+              <span>{{ data.SXYS }}</span>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      data: {
+        xy: []
+      }
+    }
+  },
+  created() {
+    this.getDetails()
+  },
+  methods: {
+    getDetails() {
+      this.$axios.post('/omr_zk/omr_info', { blbh: this.$route.query.blbh }).then(res => {
+        this.data = res.data;
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.bcjl {
+  margin: 0 20px;
+  line-height: 1.5;
+  padding-bottom: 100px;
+  .content-box {
+    background: #fff;
+    padding: 20px;
+    margin-top: 20px;
+  }
+  .title {
+    font-size: 24px;
+    font-weight: bold;
+    color: #2c3240;
+    text-align: center;
+    margin: 20px;
+  }
+  .mb10 {
+    margin-bottom: 10px;
+  }
+  .mb20 {
+    margin-bottom: 20px;
+  }
+  .mb40 {
+    margin-bottom: 40px;
+  }
+  .mt80 {
+    margin-top: 80px;
+  }
+  .mb200 {
+    margin-bottom: 200px;
+  }
+  .pl76 {
+    padding-left: 76px;
+  }
+  .fr {
+    float: right;
+  }
+  .text-blod {
+    font-weight: bold;
+  }
+  .text_right {
+    text-align: right;
+  }
+  .info-header {
+    padding: 20px 0;
+    border-bottom: 1.5px solid #e2dfdf;
+  }
+  .info-content {
+    overflow: hidden;
+    .user-info {
+      width: 800px;
+      margin: 0 auto;
+      line-height: 32px;
+    }
+  }
+}
+.admrec-bottom-time {
+  width: 100%;
+  display: flex;
+  justify-content: flex-start;
+  align-items: center;
+  margin-bottom: 20px;
+  .admrec-bottom-time-list {
+    width: 50%;
+  }
+}
+</style>

+ 7 - 2
src/views/outpatient/control/index.vue

@@ -43,11 +43,11 @@
       <div class="contentBox">
         <div class="left">
           <div class="l">
-            <div class="i" @click="goto('/outpatientMedicalRecordNumber')">
+            <div class="i" @click="toPage(0)">
               <div class="ba">病历数量</div>
               <div class="num cpoin">{{ countsData.omr_total }}</div>
             </div>
-            <div class="i" @click="goto('/outpatientMedicalRecordDefectNumber')" style="background: #38a1f1">
+            <div class="i" @click="toPage(1)" style="background: #38a1f1">
               <div class="ba">缺陷病历</div>
               <div class="num">{{ countsData.omr_defect_total }}</div>
             </div>
@@ -127,6 +127,11 @@ export default {
     this.selectInfo();
   },
   methods: {
+    toPage(type) {
+      // type = 1 查询错误门诊数据
+      // type = 0 查询所有门诊数据
+      this.$router.push({ path: '/outpatientMedicalRecordDefectNumber', query: { is_error: type }})
+    },
     getCaseList() {
       let pramse = {
         start_time: this.formData.startTime,

+ 0 - 322
src/views/outpatient/control/medicalRecordNumber.vue

@@ -1,322 +0,0 @@
-<template>
-  <div class="dashboard-container">
-    <div class="tableBox">
-      <div class="block">
-        <div class="blockCon">
-          <div class="selectDns"></div>
-          <el-select v-model="formData.problem" filterable placeholder="请选择">
-            <el-option v-for="(item, index) in departmentList" :label="item.name" :value="item.id" :key="index"></el-option>
-          </el-select>
-          <span class="kong"></span>
-          <el-input v-model="formData.recordNum" class="width150" placeholder="病案号"></el-input>
-          <span class="kong"></span>
-          <el-date-picker v-model="formData.startTime" type="date" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="开始日期"></el-date-picker>
-
-          <el-date-picker
-            v-model="formData.endTime"
-            type="date"
-            style="margin-left: 10px"
-            format="yyyy 年 MM 月 dd 日"
-            value-format="yyyyMMdd"
-            placeholder="结束日期"
-          ></el-date-picker>
-          <span class="kong"></span>
-          <el-button class="sc" @click="funQuery">查询</el-button>
-          <span class="kong"></span>
-          <el-button class="btn1" @click="reset">重置条件</el-button>
-          <el-button class="sc" type="primary">导出Excel表格</el-button>
-          <el-button @click="toBack" style="float: right;">返回</el-button>
-        </div>
-      </div>
-      <!-- <Title :title="'病案列表'" /> -->
-      <el-table :data="tableData" style="width: 100%">
-        <el-table-column type="index" label="序号"></el-table-column>
-        <el-table-column prop="AAC11N" label="出院科室"></el-table-column>
-        <el-table-column prop="AAA28" label="病案号">
-          <template slot-scope="scope">
-            <span class="blue" @click="funGoto(scope.row.MED_REC_ID)">
-              <template>
-                <div>
-                  {{ scope.row.AAA28 }}
-                </div>
-              </template>
-            </span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="AAC01" label="出院日期"></el-table-column>
-        <el-table-column prop="AAA01" label="患者姓名"></el-table-column>
-        <el-table-column prop="ABC01N" label="主要诊断"></el-table-column>
-        <el-table-column prop="ICD9_NAME" label="主要手术"></el-table-column>
-        <el-table-column prop="F_D" label="用药"></el-table-column>
-        <el-table-column prop="AAC04" label="住院天数"></el-table-column>
-        <el-table-column prop="ADA01" label="总费用"></el-table-column>
-      </el-table>
-      <!-- 分页控制 -->
-      <mPagination v-if="tableData && tableData.length !== 0" :data="paginationData" @pageChangeEvent="pageHasChanged"></mPagination>
-    </div>
-  </div>
-</template>
-  
-  <script>
-import Title from '@/components/Title';
-import { mapGetters } from 'vuex';
-import mPagination from '@/components/m-pagination';
-
-export default {
-  name: 'Dashboard',
-  components: {
-    Title,
-    mPagination,
-  },
-  computed: {
-    ...mapGetters(['name']),
-  },
-  data() {
-    return {
-      formData: {
-        // rangeDate: [],
-        recordNum: '',
-        startTime: '',
-        endTime: '',
-        problem:'all'
-      },
-      tableData: [],
-      // 分页数据
-      paginationData: {
-        total: 10,
-        currentPage: 1,
-        pageSize: 10,
-      },
-      departmentList: [],
-    };
-  },
-  mounted() {
-    this.formData.startTime = this.storageGet('start_time');
-    this.formData.endTime = this.storageGet('end_time');
-    this.funQuery();
-    this.selectInfo()
-  },
-  methods: {
-    toBack() {
-      this.$router.history.go(-1)
-    },
-    funGoto(val) {
-      this.storageSet('getData', val);
-      // 之前的页面
-      // this.goto('/homePage');
-      this.goto('/caseViews')
-    },
-    funDel() {
-      this.formData1.seniorList.pop();
-    },
-    funAdd() {
-      this.formData1.seniorList.push({
-        key: '',
-        value: '',
-        type: '1',
-      });
-    },
-    pageHasChanged() {
-      this.funQuery();
-    },
-    selectInfo() {
-      let pramse = {};
-      this.$axios.post('/selectInfo').then(res => {
-        this.payList = res.data.pay;
-        console.log(this.payList);
-        //支付方式 pay
-        this.departmentList = res.data.department;
-        //出院科室 department
-        // this.levelList = res.data.level;
-        // //问题属性 level
-        // this.coderList = res.data.coder;
-        // //编码元  coder
-        // this.statusList = res.data.status;
-        // this.fieldList = res.data.field;
-      });
-    },
-    funQuery() {
-      //查询
-      let pramse = {
-        // AAC01: this.formData.rangeDate, //出院时间
-        AAC01_start_date: this.formData.startTime || '',
-        AAC01_end_date: this.formData.endTime || '',
-        start_time: this.formData.startTime, //开始时间
-        end_time: this.formData.endTime, //结束时间
-        AAA28: this.formData.recordNum,
-        page: this.paginationData.currentPage, //页码
-        limit: this.paginationData.pageSize, //条数
-      };
-      this.$axios.post('/qualityList', pramse).then(res => {
-        console.log(res);
-
-        this.paginationData.total = res.data.count;
-        this.tableData = res.data.list;
-      });
-    },
-    reset() {
-      // 重置数据
-      this.paginationData.currentPage= 1; //页码
-      this.paginationData.pageSize = 10; //条数
-      if (this.choice == 0) {
-        Object.assign(this.$data.formData, this.$options.data().formData);
-      } else {
-        Object.assign(this.$data.formData, this.$options.data().formData);
-      }
-    },
-  },
-};
-</script>
-  <style scoped>
-::v-deep.el-pagination.is-background .btn-next,
-::v-deep.el-pagination.is-background .btn-prev,
-::v-deep.el-pagination.is-background .el-pager li {
-  margin: 0 5px;
-  background-color: #fff;
-  color: #606266;
-  min-width: 30px;
-  border-radius: 2px;
-  border: 1px solid #dfe3f3;
-  line-height: 27px;
-}
-::v-deep.el-pagination.is-background .el-pager li:not(.disabled).active {
-  background: #7e8bab;
-}
-::v-deep.el-table .el-table__row td {
-  color: #7e8bab;
-  border-bottom: 1px solid #f4f4f4;
-}
-::v-deep.el-table .el-table__header tr th:first-child {
-  border-radius: 10px 0px 0px 10px;
-}
-::v-deep.el-table .el-table__header tr th:last-child {
-  border-radius: 0px 10px 10px 0px;
-}
-::v-deep.el-table .el-table__header tr th {
-  background: #f1f6ff;
-  color: #13171e;
-  border-bottom: 0px;
-}
-</style>
-  <style lang="scss" scoped>
-.tableBox {
-  background: #fff;
-  padding: 19px;
-  border-radius: 5px;
-  font-size: 12px;
-}
-.block {
-  background: #fff;
-  border-radius: 5px;
-  margin-bottom: 16px;
-  padding: 20px 30px;
-  margin-bottom: 20px;
-  .fBtn {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    .btn1 {
-      background: #185da6;
-      color: #fff;
-    }
-    .btn2 {
-      color: #185da6;
-      background: #d5e4ff;
-    }
-  }
-  .bnh {
-    margin-bottom: 20px;
-  }
-  .barBtn {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .selects {
-    width: 100%;
-  }
-  .rowsa {
-    margin-bottom: 20px;
-  }
-}
-.tableBox {
-  background: #fff;
-  padding: 19px;
-  border-radius: 5px;
-}
-.dashboard {
-  &-container {
-    margin: 30px;
-  }
-  &-text {
-    font-size: 30px;
-    line-height: 46px;
-  }
-}
-.pind {
-  padding: 0 20px;
-}
-.pind10 {
-  padding: 0 5px;
-}
-.width150 {
-  width: 200px;
-}
-.width300 {
-  width: 295px;
-}
-.width500 {
-  width: 645px;
-}
-.width90 {
-  width: 90px;
-}
-.width130 {
-  width: 120px;
-}
-.blue {
-  color: #185da6;
-}
-.block {
-  background: #fff;
-  width: 100%;
-  align-items: center;
-  border-radius: 5px;
-  height: 75px;
-  margin-bottom: 16px;
-  padding-left: 10px;
-  margin-bottom: 20px;
-  margin-bottom: 20px;
-  padding-left: 0;
-  padding-right: 0;
-  .blockCon {
-    align-items: center;
-    .selectDns {
-      span {
-        margin-right: 5px;
-      }
-    }
-    .demonstration {
-      margin-left: 10px;
-    }
-    .pickers {
-      margin-left: 5px;
-    }
-    .lsxd {
-      margin-left: 20px;
-    }
-    .ins {
-      width: 150px;
-      margin: 0 10px;
-    }
-  }
-  .sc {
-    background: #185da6;
-    color: #fff;
-  }
-}
-.kong {
-  padding: 0 5px;
-}
-</style>
-