xiaoran 2 år sedan
förälder
incheckning
26fb90cbb5

+ 15 - 1
src/router/index.js

@@ -233,7 +233,21 @@ export const constantRoutes = [
         component: () => import('@/views/outpatient/control/detail'),
         meta: { title: '门诊病历详情' },
         hidden: true,
-      }
+      },
+      {
+        path: '/reviewIndicators',
+        name: 'reviewIndicators',
+        component: () => import('@/views/allcase/reviewIndicators.vue'),
+        hidden: true,
+        meta: { title: '评审指标', keepAlive:true},
+      },
+      {
+        path: '/reviewIndicatorsList',
+        name: 'reviewIndicatorsList',
+        component: () => import('@/views/allcase/reviewIndicatorsList.vue'),
+        hidden: true,
+        meta: { title: '指标列表', keepAlive:true },
+      },
     ],
   },
   // 医院大数据自助查询系统

+ 6 - 0
src/views/allcase/components/NoFormatText.vue

@@ -2,6 +2,12 @@
   <div class="no_format_text">
     <div class="name">{{ name }}</div>
     <div class="content" v-html="text"></div>
+    <div class="bottom-time bottom-time-top">
+      <div class="bottom-time-list">
+        <span class="bottom-time-bold">医生签名:</span>
+        <span>{{ data.doctor_name }}</span>
+      </div>
+    </div>
     <div class="bottom-time bottom-time-top">
       <div class="bottom-time-list" v-if="data.CJSJ">
         <span class="bottom-time-bold">创建时间:</span>

+ 26 - 17
src/views/allcase/timeOfOnset.vue → src/views/allcase/reviewIndicators.vue

@@ -45,10 +45,9 @@
           <el-table :data="tableData" style="width: 100%">
             <el-table-column prop="name" label="名称" show-overflow-tooltip></el-table-column>
             <el-table-column prop="time" label="日期" width="200"></el-table-column>
-            <el-table-column prop="" label="数据" width="200">
+            <el-table-column prop="res" label="数据" width="200">
               <template slot-scope="scope">
-                <span v-if="ruleId > 100" class="link" :class="{ pointer: scope.row.source !== '人工录入' }" @click="toCaseIndexPage(scope.row)">{{ scope.row[judgeNum] }}</span>
-                <span v-else>{{ (scope.row.res * 100).toFixed(2) + '%' }}</span>
+                <span class="link" :class="{ pointer: scope.row.source !== '人工录入' }" @click="toCaseIndexPage(scope.row)">{{ scope.row.res }}%</span>
               </template>
             </el-table-column>
             <el-table-column prop="" label="来源" width="200">
@@ -69,11 +68,11 @@ export default {
     return {
       menus: [
         {
-          id: 1,
+          id: 60,
           name: '指标一,脑梗发病时间',
         },
         {
-          id: 2,
+          id: 61,
           name: '指标二,心肌梗死发病时间',
         },
       ],
@@ -86,8 +85,8 @@ export default {
         children: 'children',
         label: 'name',
       },
-      ruleId: 1,
-      ruleName: '',
+      ruleId: 60,
+      ruleName: '脑梗发病时间',
       time: new Date(),
       pickerOptions: {
         disabledDate(time) {
@@ -155,7 +154,7 @@ export default {
       if (this.$route.path === '/embedIndex-home') {
         path = '/embedIndex-caseIndexList';
       } else {
-        path = '/caseIndexList';
+        path = '/reviewIndicatorsList';
       }
       this.$router.push({ path, query: { year: this.formInline.year, time, ruleId: Number(`${this.ruleId}`.slice(0, 2)), type: this.judgeNum } });
     },
@@ -167,10 +166,19 @@ export default {
     handleNodeClick(data) {
       const { id, name } = data;
       this.ruleId = id;
-      this.ruleName = name;
-      if (id > 10 && this.formInline.year) {
-        this.getList();
+      if (id == 60) {
+        this.ruleName = '脑梗发病时间';
       }
+
+      if (id == 61) {
+        this.ruleName = '心肌梗死发病时间';
+      }
+      this.getList();
+      console.log('vvvvvv');
+      console.log(name);
+      // if (id > 10 && this.formInline.year) {
+      //   this.getList();
+      // }
     },
     // 获取右侧列表数据
     getList() {
@@ -179,13 +187,14 @@ export default {
         start_time: `${year}0101`,
         end_time: `${year}1231`,
         year,
-        type: Number(`${this.ruleId}`.slice(0, 2)),
+        type: Number(this.ruleId),
       };
-      if (this.ruleId < 100) {
-        params.request_source = 1;
-      } else {
-        params.request_source = this.judgeNum === 'denominator' ? 2 : 3;
-      }
+      // if (this.ruleId < 100) {
+      //   params.request_source = 1;
+      // } else {
+      //   params.request_source = this.judgeNum === 'denominator' ? 2 : 3;
+      // }
+      params.request_source = 1;
       this.$axios2.post('/get_assessment_indicators', params).then(res => {
         if (Array.isArray(res.data)) {
           res.data.map(item => {

+ 297 - 0
src/views/allcase/reviewIndicatorsList.vue

@@ -0,0 +1,297 @@
+<template>
+  <!-- 脑梗心梗列表 -->
+  <div class="box">
+    <div class="box_wrapper">
+      <div class="box_header">
+        <Title :title="'指标列表'" style="margin-top: 8px" />
+      </div>
+      <!-- 搜索栏 -->
+      <div class="box_header">
+        <el-form :inline="true" :model="searchData" class="demo-form-inline" style="float: left">
+          <el-form-item label="状态" style="margin-bottom: 0">
+            <el-select v-model="searchData.is_error" clearable placeholder="请选择" style="width: 120px">
+              <el-option label="正确" :value="1"></el-option>
+              <el-option label="错误" :value="0"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="住院号" style="margin-bottom: 0">
+            <el-input v-model="searchData.AAA28" clearable placeholder="请输入" style="width: 120px"></el-input>
+          </el-form-item>
+          <el-form-item label="出院科室" style="margin-bottom: 0">
+            <el-select v-model="searchData.AAC11N" clearable filterable placeholder="请选择" style="width: 160px">
+              <el-option v-for="(item, index) in departmentList" :key="index" :label="item.name" :value="item.name"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item style="margin-bottom: 0">
+            <el-date-picker
+              v-model="timeData.startTime"
+              type="date"
+              style="width: 120px"
+              format="yyyy 年 MM 月 dd 日"
+              value-format="yyyyMMdd"
+              placeholder="开始日期"
+            ></el-date-picker>
+            <el-date-picker
+              v-model="timeData.endTime"
+              type="date"
+              style="width: 120px"
+              format="yyyy 年 MM 月 dd 日"
+              value-format="yyyyMMdd"
+              placeholder="结束日期"
+            ></el-date-picker>
+          </el-form-item>
+          <el-form-item style="margin-bottom: 0">
+            <el-button type="primary" @click="onSearch">查询</el-button>
+          </el-form-item>
+        </el-form>
+        <div class="btn-box">
+          <el-button v-if="$route.query.ruleId == 33" @click="toChildrenCase">子指标</el-button>
+          <el-button type="primary" @click="onExport">导出Excel</el-button>
+          <el-button @click="toBack">返回</el-button>
+        </div>
+      </div>
+      <!-- 列表 -->
+      <el-table :data="tableData" @sort-change="handleSortChange" style="width: 100%">
+        <el-table-column type="index" label="序号" align="center" width="80">
+          <template slot-scope="scope">
+            <span>{{ scope.$index + 1 + (paginationData.currentPage - 1) * paginationData.pageSize }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="" label="住院号" width="90">
+          <template slot-scope="scope">
+            <span class="link" @click="toPage(scope.row)">{{ scope.row.AAA28 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="AAA01" label="患者姓名" width="120"></el-table-column>
+        <el-table-column prop="fbsj " label="发病时间" width="120"></el-table-column>
+        <el-table-column prop="AAB01" label="入院时间" sortable width="160"></el-table-column>
+        <el-table-column prop="zhusu" label="主诉内容" sortable width="160"></el-table-column>
+        <el-table-column prop="" label="手术时间" sortable width="160"></el-table-column>
+        <el-table-column prop="AAC01" label="出院时间" sortable width="160"></el-table-column>
+
+        <el-table-column prop="AAC11N" label="出院科室"></el-table-column>
+
+        <el-table-column prop="" label="状态" width="70">
+          <template slot-scope="scope">
+            <el-tag v-if="scope.row.numerator" type="success">正确</el-tag>
+            <el-tag v-else type="danger">错误</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column prop="" label="描述" width="800">
+          <template slot-scope="scope">
+            <span>{{ scope.row.description }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
+      <!-- 分页 -->
+      <el-pagination
+        v-if="tableData && tableData.length !== 0"
+        @size-change="SizeChangeEvent"
+        @current-change="pageHasChanged"
+        :total="paginationData.total"
+        background
+        class="table-pagination"
+        style="margin: 30px 0px; float: right"
+        :page-size="paginationData.pageSize"
+        :current-page.sync="paginationData.currentPage"
+        layout="total, sizes, prev, pager, next, jumper"
+      ></el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+import Title from '@/components/Title';
+import { downloadFile } from '@/httpFile';
+export default {
+  components: {
+    Title,
+  },
+  data() {
+    return {
+      searchData: {
+        is_error: '',
+        AAA28: '',
+        AAC11N: '',
+        order: '',
+        order_sort: '',
+      },
+      timeData: {
+        startTime: '',
+        endTime: '',
+      },
+      tableData: [],
+      paginationData: {
+        total: 0,
+        currentPage: 1,
+        pageSize: 10,
+      },
+      departmentList: [],
+    };
+  },
+  watch: {
+    $route(to, from) {
+      if (from.path === '/caseIndex' && to.path === '/caseIndexList') {
+        this.searchData.is_error = '';
+        this.searchData.AAA28 = '';
+        this.searchData.AAC11N = '';
+        this.searchData.order = '';
+        this.searchData.order_sort = '';
+        this.tableData = [];
+        this.paginationData.currentPage = 1;
+        this.paginationData.pageSize = 10;
+        this.getList();
+      }
+    },
+  },
+  created() {
+    this.getList();
+    this.getDepartmentList();
+  },
+  methods: {
+    handleSortChange(column) {
+      const { prop, order } = column;
+      let str = '';
+      if (order === 'descending') {
+        str = 'desc';
+      } else if (order === 'ascending') {
+        str = 'asc';
+      } else {
+        str = null;
+      }
+
+      this.searchData.order = prop;
+      this.searchData.order_sort = str;
+      this.tableData = [];
+      this.getList();
+    },
+    toChildrenCase() {
+      this.$router.push({ path: '/caseIndex', query: { type: 'children' } });
+    },
+    getDepartmentList() {
+      this.$axios.post('/get_department_list').then(res => {
+        // 不要全部选项
+        this.departmentList = res.data;
+      });
+    },
+    // 获取指标数据
+    getList() {
+      const { time, type, ruleId, year } = this.$route.query;
+      const { currentPage, pageSize } = this.paginationData;
+      const { is_error, AAA28, AAC11N, order, order_sort } = this.searchData;
+      const params = {
+        time,
+        id: ruleId,
+        data_type: type === 'numerator' ? 0 : 1,
+        page: currentPage,
+        page_size: pageSize,
+        AAA28,
+        AAC11N,
+        year,
+      };
+      if (order) {
+        params.order = order;
+        params.order_sort = order_sort;
+      }
+      if ([0, 1].includes(is_error)) {
+        params.is_error = is_error;
+      }
+
+      this.$axios2.post('/get_zhibiao_list', params).then(res => {
+        this.tableData = res.data.data;
+        this.paginationData.total = res.data.count;
+      });
+    },
+    //返回上一页
+    toBack() {
+      this.$router.back();
+    },
+    // 病案指标详情
+    toPage(row) {
+      this.storageSet('getData', row.MED_REC_ID);
+      let path;
+      if (this.$route.path === '/embedIndex-caseIndexList') {
+        path = '/embedIndex-caseViews';
+      } else {
+        path = '/caseViews';
+      }
+      this.goto(path);
+    },
+    // 分页
+    SizeChangeEvent(val) {
+      this.paginationData.pageSize = val;
+      this.getList();
+    },
+    pageHasChanged() {
+      this.getList();
+    },
+    // 搜索
+    onSearch() {
+      this.paginationData.currentPage = 1;
+      this.getList();
+    },
+    // 导出
+    onExport() {
+      const { time, type, ruleId, year } = this.$route.query;
+      const { is_error, AAA28, AAC11N, order, order_sort } = this.searchData;
+      const params = {
+        time,
+        dep_name: AAC11N,
+        type: type === 'numerator' ? 0 : 1,
+        start_time: this.timeData.startTime,
+        end_time: this.timeData.endTime,
+        status: this.searchData.is_error,
+        // year,
+      };
+      console.log(params);
+      this.funExeclPost('评价指标', params, '/bazb/dep_bl_export', 'xlsx');
+    },
+    funExeclPost(fileName, pramse, httpUrl, format) {
+      //导出
+      let httpUrls = httpUrl;
+      downloadFile(httpUrls, pramse, format, fileName).then(res => {
+        console.log(res);
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.box {
+  padding: 16px;
+  .box_wrapper {
+    padding: 16px;
+    background: #fff;
+    border-radius: 5px;
+    height: calc(100vh - 82px);
+    .box_header {
+      overflow: hidden;
+      margin-bottom: 16px;
+      .btn-box {
+        float: right;
+      }
+    }
+  }
+}
+.link {
+  font-weight: 600;
+  color: #409eff;
+  cursor: pointer;
+}
+::v-deep.el-table .el-table__header tr th {
+  background: #f1f6ff;
+  color: #13171e;
+  border-bottom: 0px;
+}
+::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: 5px 0px 0px 5px;
+}
+::v-deep.el-table .el-table__header tr th:nth-child(3) {
+  border-radius: 0px 5px 5px 0px;
+}
+</style>