Browse Source

Merge remote-tracking branch 'origin/test'

zhouna 4 years ago
parent
commit
aed2020795

+ 119 - 0
src/api/cdss.js

@@ -430,4 +430,123 @@ export default {
   BatchUpdateHasInfoStatus(param) {
     return request({ method: 'post', url: urls.BatchUpdateHasInfoStatus, data: param });
   },
+
+  getCaseResultList(param) {
+    return axios.post(urls.getCaseResultList, param);
+  },
+  billRuleTest(param) {
+    return axios.post(urls.billRuleTest, param, { timeout: 30 * 60 * 1000 });
+  },
+  getResultBillPage(param) {
+    return axios.post(urls.getResultBillPage, param);
+  },
+  ruleAllTest(param) {
+    return axios.post(urls.ruleAllTest, param);
+  },
+  exportRuleExcel(param) {
+    return axios.post(urls.exportRuleExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  criticalRuleTest(param) {
+    return axios.post(urls.criticalRuleTest, param, { timeout: 30 * 60 * 1000 });
+  },
+  getResultCriticalPage(param) {
+    return axios.post(urls.getResultCriticalPage, param);
+  },
+  highRiskRuleTest(param) {
+    return axios.post(urls.highRiskRuleTest, param, { timeout: 30 * 60 * 1000 });
+  },
+  getResultHighriskDrugPage(param) {
+    return axios.post(urls.getResultHighriskDrugPage, param);
+  },
+  otherRuleTest(param) {
+    return axios.post(urls.otherRuleTest, param, { timeout: 30 * 60 * 1000 });
+  },
+  getResultHighriskOperationPage(param) {
+    return axios.post(urls.getResultHighriskOperationPage, param);
+  },
+  getResultOtherLisPage(param) {
+    return axios.post(urls.getResultOtherLisPage, param);
+  },
+  getResultOtherPacsPage(param) {
+    return axios.post(urls.getResultOtherPacsPage, param);
+  },
+  getResultOtherTransfusionPage(param) {
+    return axios.post(urls.getResultOtherTransfusionPage, param);
+  },
+  billExportExcel(param) {
+    return axios.post(urls.billExportExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  criticalExportExcel(param) {
+    return axios.post(urls.criticalExportExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  highriskDrugExportExcel(param) {
+    return axios.post(urls.highriskDrugExportExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  highriskOperationExportExcel(param) {
+    return axios.post(urls.highriskOperationExportExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  otherLisExportExcel(param) {
+    return axios.post(urls.otherLisExportExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  otherPacsExportExcel(param) {
+    return axios.post(urls.otherPacsExportExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  otherTransfusionExportExcel(param) {
+    return axios.post(urls.otherTransfusionExportExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  exportStaticCommonExcel(param) {
+    return axios.post(urls.exportStaticCommonExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  exportStaticCommonStaticExcel(param) {
+    return axios.post(urls.exportStaticCommonStaticExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  exportStaticLisExcel(param) {
+    return axios.post(urls.exportStaticLisExcel, param, {
+      responseType: 'blob',
+    });
+  },
+  exportStaticLisStaticExcel(param) {
+    return axios.post(urls.exportStaticLisStaticExcel, param, {
+      responseType: 'blob',
+    });
+  },
+
+  getStaticCaseResultList(param) {
+    return axios.post(urls.getStaticCaseResultList, param);
+  },
+  getStaticPage(param) {
+    return axios.post(urls.getStaticPage, param);
+  },
+  staticKnowledgeTest(param) {
+    return axios.post(urls.staticKnowledgeTest, param, { timeout: 30 * 60 * 1000 });
+  },
+  getRunningStatus(param) {
+    return axios.post(urls.getRunningStatus, param);
+  },
+  getRunningStatusByHospitalId(param) {
+    return axios.post(urls.getRunningStatusByHospitalId, param);
+  },
+  updateRunningStatus(param) {
+    return axios.post(urls.updateRunningStatus, param);
+  },
 };

+ 34 - 0
src/api/config.js

@@ -485,6 +485,40 @@ export default {
     'getKlmEnumsDataCDSS': '/api/cdssman/getKlmEnumsData',   //枚举数据获取
 
 
+    'getCaseResultList': '/api/cdssman/test/rule/getCaseResultList', 
+    'billRuleTest': '/api/cdssman/test/rule/billRuleTest',   
+    'getResultBillPage': '/api/cdssman/test/rule/getResultBillPage', 
+    'exportRuleExcel': '/api/cdssman/test/rule/exportExcel', 
+    'ruleAllTest': '/api/cdssman/test/rule/ruleTest', 
+    'getResultCriticalPage': '/api/cdssman/test/rule/getResultCriticalPage',   //危急值测试列表
+    'criticalRuleTest': '/api/cdssman/test/rule/criticalRuleTest',   //危急值规则测试
+    'getResultHighriskDrugPage': '/api/cdssman/test/rule/getResultHighriskDrugPage',   //高危药品测试列表
+    'highRiskRuleTest': '/api/cdssman/test/rule/highRiskRuleTest',   //高危药品、手术规则测试
+    'getResultHighriskOperationPage': '/api/cdssman/test/rule/getResultHighriskOperationPage',   //高危手术测试列表
+    'getResultOtherLisPage': '/api/cdssman/test/rule/getResultOtherLisPage',   //其他值提醒(化验)测试列表
+    'getResultOtherPacsPage': '/api/cdssman/test/rule/getResultOtherPacsPage',   //其他值提醒(辅检)测试列表
+    'getResultOtherTransfusionPage': '/api/cdssman/test/rule/getResultOtherTransfusionPage',   //其他值提醒(输血)测试列表
+    'otherRuleTest': '/api/cdssman/test/rule/otherRuleTest',   //其他值提醒规则测试
+    
+    'billExportExcel': '/api/cdssman/test/rule/billExportExcel',   //开单合理性规则测试结果导出
+    'criticalExportExcel': '/api/cdssman/test/rule/criticalExportExcel',   //危急值规则测试结果导出
+    'highriskDrugExportExcel': '/api/cdssman/test/rule/highriskDrugExportExcel',   //高危药品规则测试结果导出
+    'highriskOperationExportExcel': '/api/cdssman/test/rule/highriskOperationExportExcel',   //高危手术规则测试结果导出
+    'otherLisExportExcel': '/api/cdssman/test/rule/otherLisExportExcel',   //化验其他提醒规则测试结果导出
+    'otherPacsExportExcel': '/api/cdssman/test/rule/otherPacsExportExcel',   //辅检其他提醒规则测试结果导出
+    'otherTransfusionExportExcel': '/api/cdssman/test/rule/otherTransfusionExportExcel',   //输血其他提醒规则测试结果导出
+
+    'exportStaticCommonExcel': '/api/cdssman/test/staticKnowledge/exportCommonExcel',   //通用未映射到标准术语测试结果导出
+    'exportStaticCommonStaticExcel': '/api/cdssman/test/staticKnowledge/exportCommonStaticExcel',   //通用缺少静态知识测试结果导出
+    'exportStaticLisExcel': '/api/cdssman/test/staticKnowledge/exportLisExcel',   //检验未映射到标准术语测试结果导出
+    'exportStaticLisStaticExcel': '/api/cdssman/test/staticKnowledge/exportLisStaticExcel',   //检验缺少静态知识测试结果导出
+    'getStaticCaseResultList': '/api/cdssman/test/staticKnowledge/getCaseResultList',   //静态知识测试总览列表
+    'getStaticPage': '/api/cdssman/test/staticKnowledge/getPage',   //静态知识测试结果明细列表
+    'staticKnowledgeTest': '/api/cdssman/test/staticKnowledge/staticKnowledgeTest',   //静态知识测试
+    'getRunningStatus': '/api/cdssman/test/running/getStatus',   //查看测试用例运行状态
+    'getRunningStatusByHospitalId': '/api/cdssman/test/running/getStatusByHospitalId',   //查拉面所有测试用例运行状态
+    'updateRunningStatus': '/api/cdssman/test/running/updateStatus',   //更新测试用例运行状态
+
   },
   menuIconList: { //菜单对应图标
     'YH-KZT': 'el-icon-menu',

+ 45 - 28
src/components/cdssManage/AddMedicinePrompt.vue

@@ -110,7 +110,7 @@
 import api from '@api/cdss.js';
 import InfoParagraph from './MedicineInfoPg';
 import config from '@api/config';
-import $ from 'jquery'
+import $ from 'jquery';
 
 export default {
   name: 'AddMedicinePrompt',
@@ -170,16 +170,21 @@ export default {
         fileList: [
           { required: true, message: '请上传文件', trigger: 'change' }
         ],
-        titleChange: [{
-          validator: (rule, value, callback) => {
-            if (!value.trim()) {
-              callback(new Error('请输入'+this.titleChange.replace(":","")));
-            } else {
-              callback();
-            }
-          },
-          trigger: 'change'
-        },{ max: 30, message: '标题最多30字', trigger: 'change' }]
+        titleChange: [
+          // {
+          //   validator: (rule, value, callback) => {
+          //     if (!value.trim()) {
+          //       callback(
+          //         new Error('请输入' + this.titleChange.replace(':', ''))
+          //       );
+          //     } else {
+          //       callback();
+          //     }
+          //   },
+          //   trigger: 'change'
+          // },
+          { max: 30, message: '标题最多30字', trigger: 'change' }
+        ]
       },
       saveDisable: false, //保存按钮禁止点击
       showDrop: false, //下拉框显示文字bug1774
@@ -190,7 +195,7 @@ export default {
       showConfirm: true,
       isSuccessUpload: 0, //是否上传成功  0: 不在上传  1: 上传过程中  2: 上传成功
       isShowTip: false,
-      showType: -1, // 1 诊断  2  药品   3检验套餐 4检验细项  5检查 6手术和操作
+      showType: -1, // 1 诊断  2  药品   3检验套餐 4检验细项  5检查 6检查子   7手术和操作
       editCount: -1, // 页面会否被编辑 >0被编辑   =0 未编辑
       startCount: -1,
       isSaveSuccess: false // 是否保存成功
@@ -222,15 +227,16 @@ export default {
       this.isEdit = isEdit;
       this.isCopy = isCopy;
       this.title = isEdit ? '修改' : isCopy ? '复制' : '添加';
-      (isEdit||isCopy) && this.changeWord(data);
-      if(isCopy){
-        const _this=this;
-        setTimeout(()=>{
+      (isEdit || isCopy) && this.changeWord(data);
+      if (isCopy) {
+        const _this = this;
+        setTimeout(() => {
           _this.handleClear();
-        },300)
-
+        }, 300);
       }
-      api.getTremList({ id: data.id }).then(res => {
+      api
+        .getTremList({ id: data.id })
+        .then(res => {
           if (res.data.code == '0') {
             const data = res.data.data;
             if (this.form.typeId === 82 || this.form.typeId === 83) {
@@ -249,7 +255,10 @@ export default {
               this.form.titleChange =
                 data.type == 1
                   ? data.clinicalPathwayName
-                  : data.type == 3 || data.type == 4 || data.type == 5 || data.type == 6
+                  : data.type == 3 ||
+                    data.type == 4 ||
+                    data.type == 5 ||
+                    data.type == 6
                   ? data.noticeName
                   : '';
               this.form.selectedTermName =
@@ -393,7 +402,7 @@ export default {
         it = Object.assign(this.form.prags[i]);
         this.form.prags.splice(i - 1, 2, it, temp);
         this.$nextTick(() => {
-          div.scrollTop = this.$refs.subForm[i-1].$el.offsetTop -48;
+          div.scrollTop = this.$refs.subForm[i - 1].$el.offsetTop - 48;
         });
       } else {
         if (i === this.form.prags.length - 1) {
@@ -462,15 +471,19 @@ export default {
       let positionArr = positiontemp.reduce(function(a, b) {
         return a.concat(b);
       }); // 所有被选中的值集合
-      // console.log(positionArr, 'positionArr');
-      // console.log(this.showType, '当前页的显示类型');
+      console.log(positionArr, 'positionArr');
+      console.log(this.showType, '当前页的显示类型');
       let isVisFlag = positionArr.some(item => item === 2);
       let isDiagFlag = positionArr.some(item => item === 3);
-      // console.log(isVisFlag, 'isVisFlag');
+      console.log(isVisFlag, 'isVisFlag是否显示');
       if (
-        (this.showType == 3 || this.showType == 4 || this.showType == 5 || this.showType == 6) &&
+        (this.showType == 3 ||
+          this.showType == 4 ||
+          this.showType == 5 ||
+          this.showType == 6) &&
         isVisFlag
       ) {
+        console.log('进入校验');
         //若医学术语为检验/检查,且内容类型选择了注意事项,此时“注意事项标题”是必填项
         this.$refs.groups.clearValidate();
         this.rules.titleChange.push({
@@ -606,7 +619,9 @@ export default {
         paramsAll.id = this.conceptId;
         paramsAll.name = this.form.name;
         paramsAll.noticeName =
-          types == 3 || types == 4 || types == 5 || types == 6 ? this.form.titleChange : '';
+          types == 3 || types == 4 || types == 5 || types == 6
+            ? this.form.titleChange
+            : '';
         paramsAll.type = this.form.typeId;
         paramsAll.details = tempArr;
         param = paramsAll;
@@ -633,8 +648,10 @@ export default {
 
     //保存编辑 接口
     sendSaveOrEdit(param) {
-      this.isCopy&&(param.id=undefined);
-      api.saveTermPrompts(param).then(res => {
+      this.isCopy && (param.id = undefined);
+      api
+        .saveTermPrompts(param)
+        .then(res => {
           if (res.data.code === '0') {
             this.isSuccessUpload = 0; // 修改文件上传状态为0
             this.warning(res.data.msg || '保存成功', 'success');

+ 236 - 0
src/components/testManager/knowledgeMapRule/BillCommonTest.vue

@@ -0,0 +1,236 @@
+<template>
+  <div>
+    <crumbs
+      :title="
+        type === 'success'
+          ? '开单合理性提醒-通用规则测试-成功条数'
+          : '开单合理性提醒-通用规则测试-失败条数'
+      "
+      class="topBack"
+      :param="$route.params"
+      linkTo="KnowledgeMapRuleTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="billItemType"
+          label="开单项类型"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="billItemName"
+          label="开单项(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="billItemHisName"
+          label="开单项(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemType"
+          label="禁忌项类型"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemName"
+          label="禁忌项(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemHisName"
+          label="禁忌项(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="inputValue"
+          label="禁忌项输入值/结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="output"
+          label="实际结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="expectedOutput"
+          label="预期结果"
+          show-overflow-tooltip
+        ></el-table-column>
+
+        <el-table-column label="测试结果">
+          <template slot-scope="scope">
+            {{ scope.row.success === 1 ? '成功' : '失败' }}
+          </template>
+        </el-table-column>
+        <el-table-column
+          v-if="type !== 'success'"
+          :resizable="false"
+          prop="message"
+          label="失败原因"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      type: '',
+    };
+  },
+  created() {
+    const params = this.handleInitData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      //const pm = to.param;
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    handleInitData() {
+      const { data, type } = this.$route.params;
+      this.type = type;
+      let billType; // 开单合理性规则类型  1  通用  2 输血
+      if (data && data.caseName === '开单合理性提醒_通用规则') {
+        billType = 1;
+      } else if (data && data.caseName === '开单类型提醒_输血规则') {
+        billType = 2;
+      }
+      return {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        billType,
+        resultId: data && data.resultId,
+        success: type === 'success' ? 1 : 0,
+      };
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    getDataList() {
+      const params = this.handleInitData();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getResultBillPage(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let params = {
+        success: type === 'success' ? 1 : 0,
+        resultId: data.resultId,
+        billType: 1, //1:通用,2:输血
+      };
+      this.$alert('确定要导出规则测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning',
+      })
+        .then(() => {
+          api.billExportExcel(params).then((res) => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(
+                res.data,
+                `${hospitalName}-开单合理性提醒规则测试结果.xls`
+              );
+            }
+          });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 236 - 0
src/components/testManager/knowledgeMapRule/BillFusionTest.vue

@@ -0,0 +1,236 @@
+<template>
+  <div>
+    <crumbs
+      :title="
+        type === 'success'
+          ? '开单合理性提醒-输血规则测试-成功条数'
+          : '开单合理性提醒-输血规则测试-失败条数'
+      "
+      class="topBack"
+      :param="$route.params"
+      linkTo="KnowledgeMapRuleTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="billItemName"
+          label="输注类型(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="billItemHisName"
+          label="输注类型(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemType"
+          label="禁忌项类型"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemName"
+          label="禁忌项(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemHisName"
+          label="禁忌项(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemHisDetailName"
+          label="禁忌项细项(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="inputValue"
+          label="禁忌项输入值/结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="output"
+          label="实际结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="expectedOutput"
+          label="预期结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column label="测试结果">
+          <template slot-scope="scope">
+            {{ scope.row.success === 1 ? '成功' : '失败' }}
+          </template>
+        </el-table-column>
+        <el-table-column
+          v-if="type !== 'success'"
+          :resizable="false"
+          prop="message"
+          label="失败原因"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      type: '',
+    };
+  },
+  created() {
+    const params = this.handleInitData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      //const pm = to.param;
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    handleInitData() {
+      const { data, type } = this.$route.params;
+      this.type = type;
+      console.log(this.type, '111');
+      let billType; // 开单合理性规则类型  1  通用  2 输血
+      if (data && data.caseName === '开单合理性提醒_通用规则') {
+        billType = 1;
+      } else if (data && data.caseName === '开单类型提醒_输血规则') {
+        billType = 2;
+      }
+      return {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        billType,
+        resultId: data && data.resultId,
+        success: type === 'success' ? 1 : 0,
+      };
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    getDataList() {
+      const params = this.handleInitData();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getResultBillPage(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let params = {
+        success: type === 'success' ? 1 : 0,
+        resultId: data.resultId,
+        billType: 2, //1:通用,2:输血
+      };
+      this.$alert('确定要导出规则测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning',
+      })
+        .then(() => {
+          api.billExportExcel(params).then((res) => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(
+                res.data,
+                `${hospitalName}-开单合理性输血提醒规则测试结果.xls`
+              );
+            }
+          });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 211 - 0
src/components/testManager/knowledgeMapRule/CriticalAuxTest.vue

@@ -0,0 +1,211 @@
+<template>
+  <div>
+    <crumbs
+      :title="
+        type === 'success'
+          ? '危急值提醒-辅助检查规则测试-成功条数'
+          : '危急值提醒-辅助检查规则测试-失败条数'
+      "
+      class="topBack"
+      :param="$route.params"
+      linkTo="KnowledgeMapRuleTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="criticalItemName"
+          label="辅检名称(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="criticalItemHisName"
+          label="辅检名称(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="inputValue"
+          label="辅检结果描述"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="output"
+          label="实际结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="expectedOutput"
+          label="预期结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column label="测试结果">
+          <template slot-scope="scope">
+            {{ scope.row.success === 1 ? '成功' : '失败' }}
+          </template>
+        </el-table-column>
+        <el-table-column
+          v-if="type !== 'success'"
+          :resizable="false"
+          prop="message"
+          label="失败原因"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      type: '',
+    };
+  },
+  created() {
+    const params = this.handleInitData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      //const pm = to.param;
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    handleInitData() {
+      const { data, type } = this.$route.params;
+      this.type = type;
+      let criticalType; // 开单合理性规则类型  1  通用  2 输血
+      if (data && data.caseName === '危机值提醒_实验室检查规则') {
+        criticalType = 1;
+      } else if (data && data.caseName === '危机值提醒_辅助检查规则') {
+        criticalType = 2;
+      }
+      return {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        criticalType,
+        resultId: data && data.resultId,
+        success: type === 'success' ? 1 : 0,
+      };
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    getDataList() {
+      const params = this.handleInitData();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getResultCriticalPage(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let params = {
+        success: type === 'success' ? 1 : 0,
+        resultId: data.resultId,
+        criticalType: 2, //1:检验,2:检查
+      };
+      this.$alert('确定要导出规则测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning',
+      })
+        .then(() => {
+          api.criticalExportExcel(params).then((res) => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(
+                res.data,
+                `${hospitalName}-辅助检查危急值提醒规则测试结果.xls`
+              );
+            }
+          });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 198 - 0
src/components/testManager/knowledgeMapRule/CriticalLabTest.vue

@@ -0,0 +1,198 @@
+<template>
+  <div>
+    <crumbs
+      :title="
+        type === 'success'
+          ? '危急值提醒-实验室检查规则测试-成功条数'
+          : '危急值提醒-实验室检查规则测试-失败条数'
+      "
+      class="topBack"
+      :param="$route.params"
+      linkTo="KnowledgeMapRuleTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column :resizable="false" type="index" :index="indexMethod" label="编号" width="80"></el-table-column>
+        <el-table-column :resizable="false" prop="gmtModified" label="测试时间"></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="criticalItemName"
+          label="实验室检查名称(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="criticalItemHisName"
+          label="实验室检查套餐名(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="criticalItemHisDetailName"
+          label="实验室检查名称(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+
+        <el-table-column :resizable="false" prop="maxValue" label="高危急值" show-overflow-tooltip></el-table-column>
+        <el-table-column :resizable="false" prop="minValue" label="低危急值" show-overflow-tooltip></el-table-column>
+        <el-table-column :resizable="false" prop="inputValue" label="输入值" show-overflow-tooltip></el-table-column>
+        <el-table-column :resizable="false" prop="output" label="实际结果" show-overflow-tooltip></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="expectedOutput"
+          label="预期结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column label="测试结果">
+          <template slot-scope="scope">{{ scope.row.success === 1 ? '成功' : '失败' }}</template>
+        </el-table-column>
+        <el-table-column
+          v-if="type !== 'success'"
+          :resizable="false"
+          prop="message"
+          label="失败原因"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      type: ''
+    };
+  },
+  created() {
+    const params = this.handleInitData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next(vm => {
+      //const pm = to.param;
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    handleInitData() {
+      const { data, type } = this.$route.params;
+      this.type = type;
+      let criticalType;
+      if (data && data.caseName === '危机值提醒_实验室检查规则') {
+        criticalType = 1;
+      } else if (data && data.caseName === '危机值提醒_辅助检查规则') {
+        criticalType = 2;
+      }
+      return {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        criticalType,
+        resultId: data && data.resultId,
+        success: type === 'success' ? 1 : 0
+      };
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    getDataList() {
+      const params = this.handleInitData();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
+      api.getResultCriticalPage(params).then(res => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let params = {
+        success: type === 'success' ? 1 : 0,
+        resultId: data.resultId,
+        criticalType: 1 //1:检验,2:检查
+      };
+      this.$alert('确定要导出规则测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning'
+      })
+        .then(() => {
+          api.criticalExportExcel(params).then(res => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(
+                res.data,
+                `${hospitalName}-实验室检查危急值提醒规则测试结果.xls`
+              );
+            }
+          });
+        })
+        .catch(() => {});
+    }
+  }
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 214 - 0
src/components/testManager/knowledgeMapRule/HighRiskDrugTest.vue

@@ -0,0 +1,214 @@
+<template>
+  <div>
+    <crumbs
+      :title="
+        type === 'success'
+          ? '高风险提示-高危药品规则测试-成功条数'
+          : '高风险提示-高危药品规则测试-失败条数'
+      "
+      class="topBack"
+      :param="$route.params"
+      linkTo="KnowledgeMapRuleTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="highriskItemName"
+          label="药品通用名称(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="highriskItemHisName"
+          label="药品通用名称(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="highriskItemRegName"
+          label="药品注册名称"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="highriskItemForm"
+          label="剂型"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="highriskLevel"
+          label="药品高危级别"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="output"
+          label="实际结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="expectedOutput"
+          label="预期结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column label="测试结果">
+          <template slot-scope="scope">{{
+            scope.row.success === 1 ? '成功' : '失败'
+          }}</template>
+        </el-table-column>
+        <el-table-column
+          v-if="type !== 'success'"
+          :resizable="false"
+          prop="message"
+          label="失败原因"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      type: '',
+    };
+  },
+  created() {
+    const params = this.handleInitData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    handleInitData() {
+      const { data, type } = this.$route.params;
+      this.type = type;
+      return {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        resultId: data && data.resultId,
+        success: type === 'success' ? 1 : 0,
+      };
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    getDataList() {
+      const params = this.handleInitData();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getResultHighriskDrugPage(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let params = {
+        success: type === 'success' ? 1 : 0,
+        resultId: data.resultId,
+      };
+      this.$alert('确定要导出规则测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning',
+      })
+        .then(() => {
+          api.highriskDrugExportExcel(params).then((res) => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(
+                res.data,
+                `${hospitalName}-高风险提示_高危药品规则测试结果.xls`
+              );
+            }
+          });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 232 - 0
src/components/testManager/knowledgeMapRule/HighRiskOperationTest.vue

@@ -0,0 +1,232 @@
+<template>
+  <div>
+    <crumbs
+      :title="
+        type === 'success'
+          ? '高风险提示-高危手术整合规则测试-成功条数'
+          : '高风险提示-高危手术整合规则测试-失败条数'
+      "
+      class="topBack"
+      :param="$route.params"
+      linkTo="KnowledgeMapRuleTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="highriskItemName"
+          label="手术名称(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="highriskItemHisName"
+          label="手术名称(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="level"
+          label="手术级别"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="factorItemType"
+          label="禁忌项类型"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="factorItemName"
+          label="禁忌项(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="factorItemHisName"
+          label="禁忌项(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+          <el-table-column
+          :resizable="false"
+          prop="factorItemHisDetailName"
+          label="禁忌项-细项(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="inputValue"
+          label="禁忌项输入值/结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="output"
+          label="实际结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="expectedOutput"
+          label="预期结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column label="测试结果">
+          <template slot-scope="scope">{{
+            scope.row.success === 1 ? '成功' : '失败'
+          }}</template>
+        </el-table-column>
+        <el-table-column
+          v-if="type !== 'success'"
+          :resizable="false"
+          prop="message"
+          label="失败原因"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      type: '',
+    };
+  },
+  created() {
+    const params = this.handleInitData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    handleInitData() {
+      const { data, type } = this.$route.params;
+      this.type = type;
+      return {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        resultId: data && data.resultId,
+        success: type === 'success' ? 1 : 0,
+      };
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    getDataList() {
+      const params = this.handleInitData();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getResultHighriskOperationPage(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let params = {
+        success: type === 'success' ? 1 : 0,
+        resultId: data.resultId,
+      };
+      this.$alert('确定要导出规则测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning',
+      })
+        .then(() => {
+          api.highriskOperationExportExcel(params).then((res) => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(
+                res.data,
+                `${hospitalName}-高风险提示_高危手术整合规则测试结果.xls`
+              );
+            }
+          });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 360 - 0
src/components/testManager/knowledgeMapRule/KnowledgeMapRuleTest.vue

@@ -0,0 +1,360 @@
+<template>
+  <div>
+    <crumbs title="知识图谱规则测试" class="topBack">
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item label class="selectMedicine" style="marginbottom: -1px">
+          <el-select size="mini" v-model="hospitalId" placeholder="选择医院" @change="handleChange">
+            <el-option
+              v-for="item in hospitalData"
+              :label="item.name"
+              :value="item.id"
+              :key="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出图谱中规则未涉及到的医院术语</el-button>
+        </el-form-item>
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="handleAllTest" :disabled="!runningStatus">所有规则测试</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column :resizable="false" type="index" :index="indexMethod" label="编号" width="80"></el-table-column>
+        <el-table-column :resizable="false" prop="caseName" label="规则类型" show-overflow-tooltip></el-table-column>
+        <el-table-column :resizable="false" prop="gmtModified" label="测试时间"></el-table-column>
+
+        <el-table-column :resizable="false" prop="ruleNum" label="总条数" show-overflow-tooltip></el-table-column>
+        <el-table-column label="成功条数">
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              size="small"
+              @click="goToFailedOrSuccessPage(scope.row, 'success')"
+              :disabled="runningStatusArr[scope.$index] === 1"
+            >{{ scope.row.ruleSuccessNum }}</el-button>
+          </template>
+        </el-table-column>
+        <el-table-column label="失败条数">
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              size="small"
+              @click="goToFailedOrSuccessPage(scope.row, 'failed')"
+              :disabled="runningStatusArr[scope.$index] === 1"
+            >{{ scope.row.ruleFailedNum }}</el-button>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作">
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              size="small"
+              @click="handleTest(scope.row, scope.$index)"
+              :disabled="!runningStatus"
+            >
+              {{
+              runningStatusArr[scope.$index] === 1
+              ? '执行测试中...'
+              : '执行测试'
+              }}
+            </el-button>
+            <span v-if="runningStatusArr[scope.$index] === 1">|</span>
+            <el-button
+              v-if="runningStatusArr[scope.$index] === 1"
+              type="text"
+              size="small"
+              @click="handleUpdateStatus(scope.row, scope.$index)"
+            >重置</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  name: 'KnowledgeMapRuleTest',
+  data() {
+    return {
+      list: [],
+      hospitalData: [],
+      hospitalId: '', //选中医院
+      runningStatusArr: [0, 0, 0, 0, 0, 0, 0, 0, 0] //知识图谱规则 测试状态
+    };
+  },
+  computed: {
+    runningStatus() {
+      return this.runningStatusArr.every(item => {
+        return item === 0;
+      });
+    }
+  },
+  created() {
+    this._getHospitalInfoCDSS();
+    // this._getRunningStatus()   // 进入页面立即确认状态
+    this.timer = setInterval(this._getRunningStatus, 20 * 1000);
+  },
+  beforeDestroy() {
+    clearInterval(this.timer);
+  },
+  beforeRouteEnter(to, from, next) {
+    next(vm => {
+      Object.assign(vm, to.params);
+      if (Object.keys(to.params).length === 0) return;
+      vm.getDataList(to.params.hospitalId);
+      // vm.hospitalId = to.params.hospitalId;
+      vm._getRunningStatus();
+    });
+  },
+  methods: {
+    _getRunningStatus() {
+      const { hospitalId } = this;
+      if (this.hospitalId === '') return;
+      api.getRunningStatusByHospitalId({ hospitalId }).then(res => {
+        if (res.data.code === '0' && res.data.data) {
+          this.runningStatusArr = Object.values(res.data.data).slice(0, 9);
+        }
+      });
+    },
+    // 重置状态
+    handleUpdateStatus(row, index) {
+      const { caseId } = row;
+      // console.log(index,'index');
+      let statusTempArr = [...this.runningStatusArr];
+      statusTempArr[index] = 0;
+      api
+        .updateRunningStatus({
+          hospitalId: this.hospitalId,
+          caseId,
+          status: 0
+        })
+        .then(res => {
+          if (res.data.code === '0' && res.data.data) {
+            this.$message({
+              message: '重置成功',
+              type: 'success'
+            });
+            this.getDataList(this.hospitalId); // 重新获取列表
+          } else {
+            this.$message.error(res.data.msg || '重置失败');
+            this.getDataList(this.hospitalId); // 重新获取列表
+          }
+          this.runningStatusArr = statusTempArr;
+        });
+    },
+
+    indexMethod(index) {
+      return index + 1;
+    },
+    // 执行测试
+    handleTest(row, index) {
+      this.runningStatusArr = this.runningStatusArr.map((item, idx) => {
+        if (idx === index) {
+          return 1;
+        } else {
+          return 0;
+        }
+      });
+      const { caseName, caseId } = row;
+      let params = {
+        caseId,
+        hospitalId: this.hospitalId
+      };
+      let requestAjax;
+      let billType; // 开单合理性规则类型  1  通用  2 输血
+      let criticalType; //危急值测试规则类型(1:检验,2:检查)
+      let highriskType; //高危测试规则类型(1:药品,2:手术)
+      let otherType; // 其他提醒测试规则类型(1:化验,2:辅检,3:输血)
+      if (caseName === '开单合理性提醒_通用规则') {
+        billType = 1;
+        params = { ...params, billType };
+        requestAjax = 'billRuleTest';
+      } else if (caseName === '开单类型提醒_输血规则') {
+        billType = 2;
+        params = { ...params, billType };
+        requestAjax = 'billRuleTest';
+      } else if (caseName === '危机值提醒_实验室检查规则') {
+        criticalType = 1;
+        params = { ...params, criticalType };
+        requestAjax = 'criticalRuleTest';
+      } else if (caseName === '危机值提醒_辅助检查规则') {
+        criticalType = 2;
+        params = { ...params, criticalType };
+        requestAjax = 'criticalRuleTest';
+      } else if (caseName === '高风险提醒_高危药品规则') {
+        highriskType = 1;
+        params = { ...params, highriskType };
+        requestAjax = 'highRiskRuleTest';
+      } else if (caseName === '高风险提醒_高危手术规则') {
+        highriskType = 2;
+        params = { ...params, highriskType };
+        requestAjax = 'highRiskRuleTest';
+      } else if (caseName === '其他提醒_化验规则') {
+        otherType = 1;
+        params = { ...params, otherType };
+        requestAjax = 'otherRuleTest';
+      } else if (caseName === '其他提醒_输血规则') {
+        otherType = 3;
+        params = { ...params, otherType };
+        requestAjax = 'otherRuleTest';
+      } else if (caseName === '其他提醒_辅检规则') {
+        otherType = 2;
+        params = { ...params, otherType };
+        requestAjax = 'otherRuleTest';
+      }
+
+      api[requestAjax](params).then(res => {
+        if (res.data.code === '0' && res.data.data) {
+          this.getDataList(this.hospitalId);
+          this.$message({
+            message: '测试成功',
+            type: 'success'
+          });
+        } else {
+          this.$message.error('测试失败');
+          this.getDataList(this.hospitalId);
+        }
+        this.runningStatusArr = [0, 0, 0, 0, 0, 0, 0, 0, 0];
+      });
+    },
+    // 所有规则测试
+    handleAllTest() {
+      if (this.hospitalId === '') {
+        this.$message({
+          message: '请先选择医院',
+          type: 'warning'
+        });
+        return;
+      }
+      this.runningStatusArr = [1, 1, 1, 1, 1, 1, 1, 1, 1];
+      api.ruleAllTest({ hospitalId: this.hospitalId }).then(res => {
+        this.runningStatusArr = [0, 0, 0, 0, 0, 0, 0, 0, 0];
+        if (res.data.code === '0' && res.data.data) {
+          this.getDataList(this.hospitalId);
+          this.$message({
+            message: '所有规则测试成功',
+            type: 'success'
+          });
+        } else {
+          this.$message.error('所有规则测试失败');
+          this.getDataList(this.hospitalId);
+        }
+      });
+    },
+
+    // 跳转至失败/成功条数页面
+    goToFailedOrSuccessPage(row, type) {
+      const page = this.handleGoPage(row.caseName);
+      let hospital = this.hospitalData.find(
+        item => item.id === this.hospitalId
+      );
+      let hospitalName = hospital.name;
+      this.$router.push({
+        name: page,
+        params: {
+          data: { ...row },
+          type,
+          hospitalId: this.hospitalId,
+          hospitalName
+        }
+      });
+    },
+    // 处理跳转到的页面
+    handleGoPage(caseName) {
+      switch (caseName) {
+        case '开单合理性提醒_通用规则':
+          return 'BillCommonTest';
+        case '开单类型提醒_输血规则':
+          return 'BillFusionTest';
+        case '危机值提醒_实验室检查规则':
+          return 'CriticalLabTest';
+        case '危机值提醒_辅助检查规则':
+          return 'CriticalAuxTest';
+        case '高风险提醒_高危药品规则':
+          return 'HighRiskDrugTest';
+        case '高风险提醒_高危手术规则':
+          return 'HighRiskOperationTest';
+        case '其他提醒_化验规则':
+          return 'OtherAssayRuleTest';
+        case '其他提醒_输血规则':
+          return 'OtherFusionRuleTest';
+        case '其他提醒_辅检规则':
+          return 'OtherAuxRuleTest';
+        default:
+          return null;
+      }
+    },
+
+    // 获取医院信息
+    _getHospitalInfoCDSS() {
+      api.getHospitalInfo().then(res => {
+        if (res.data.code === '0') {
+          this.hospitalData = res.data && res.data.data;
+        }
+      });
+    },
+
+    // 选中医院
+    handleChange(val) {
+      if (val === '') return;
+      this.getDataList(val);
+      this._getRunningStatus(); // 选中后立即请求状态
+    },
+
+    // 获取列表数据
+    getDataList(id) {
+      const params = {
+        hospitalId: id
+      };
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
+      api.getCaseResultList(params).then(res => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data && res.data.data;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      if (this.hospitalId === '') {
+        this.$message({
+          message: '请先选择医院',
+          type: 'warning'
+        });
+        return;
+      }
+      this.$alert('确定要导出规则未使用映射关系吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning'
+      })
+        .then(() => {
+          api.exportRuleExcel({ hospitalId: this.hospitalId }).then(res => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(res.data, '规则未使用映射关系.xls');
+            }
+          });
+        })
+        .catch(() => {});
+    }
+  }
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 226 - 0
src/components/testManager/knowledgeMapRule/OtherAssayRuleTest.vue

@@ -0,0 +1,226 @@
+<template>
+  <div>
+    <crumbs
+      :title="
+        type === 'success'
+          ? '其他提醒-化验规则测试-成功条数'
+          : '其他提醒-化验规则测试-失败条数'
+      "
+      class="topBack"
+      :param="$route.params"
+      linkTo="KnowledgeMapRuleTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="otherItemName"
+          label="实验室检查名称(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="otherItemHisName"
+          label="实验室检查套餐名(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="otherItemHisDetailName"
+          label="实验室检查名称(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="inputValue"
+          label="实验室检查数值"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="remindItemType"
+          label="禁忌项类型"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="remindItemName"
+          label="禁忌项(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="remindItemHisName"
+          label="禁忌项(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="output"
+          label="实际结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="expectedOutput"
+          label="预期结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column label="测试结果">
+          <template slot-scope="scope">{{
+            scope.row.success === 1 ? '成功' : '失败'
+          }}</template>
+        </el-table-column>
+        <el-table-column
+          v-if="type !== 'success'"
+          :resizable="false"
+          prop="message"
+          label="失败原因"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      type: '',
+    };
+  },
+  created() {
+    const params = this.handleInitData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    handleInitData() {
+      const { data, type } = this.$route.params;
+      this.type = type;
+      return {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        resultId: data && data.resultId,
+        success: type === 'success' ? 1 : 0,
+      };
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    getDataList() {
+      const params = this.handleInitData();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getResultOtherLisPage(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let params = {
+        success: type === 'success' ? 1 : 0,
+        resultId: data.resultId,
+      };
+      this.$alert('确定要导出规则测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning',
+      })
+        .then(() => {
+          api.otherLisExportExcel(params).then((res) => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(
+                res.data,
+                `${hospitalName}-其他提醒_化验规则测试结果.xls`
+              );
+            }
+          });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 227 - 0
src/components/testManager/knowledgeMapRule/OtherAuxRuleTest.vue

@@ -0,0 +1,227 @@
+<template>
+  <div>
+    <crumbs
+      :title="
+        type === 'success'
+          ? '其他提醒-辅检规则测试-成功条数'
+          : '其他提醒-辅检规则测试-失败条数'
+      "
+      class="topBack"
+      :param="$route.params"
+      linkTo="KnowledgeMapRuleTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="pacsResult"
+          label="检查结果描述(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gender"
+          label="性别"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="inputAge"
+          label="年龄"
+          show-overflow-tooltip
+        ></el-table-column>
+
+        <el-table-column
+          :resizable="false"
+          prop="remindItemType"
+          label="禁忌项类型"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="remindItemName"
+          label="禁忌项(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="remindItemHisName"
+          label="禁忌项(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <!-- <el-table-column
+          :resizable="false"
+          prop="inputAge"
+          label="禁忌项输入值/结果"
+          show-overflow-tooltip
+        ></el-table-column> -->
+        <el-table-column
+          :resizable="false"
+          prop="output"
+          label="实际结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="expectedOutput"
+          label="预期结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column label="测试结果">
+          <template slot-scope="scope">{{
+            scope.row.success === 1 ? '成功' : '失败'
+          }}</template>
+        </el-table-column>
+        <el-table-column
+          v-if="type !== 'success'"
+          :resizable="false"
+          prop="message"
+          label="失败原因"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      type: '',
+    };
+  },
+  created() {
+    const params = this.handleInitData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    handleInitData() {
+      const { data, type } = this.$route.params;
+      this.type = type;
+      return {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        resultId: data && data.resultId,
+        success: type === 'success' ? 1 : 0,
+      };
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    getDataList() {
+      const params = this.handleInitData();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getResultOtherPacsPage(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let params = {
+        success: type === 'success' ? 1 : 0,
+        resultId: data.resultId,
+      };
+      this.$alert('确定要导出规则测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning',
+      })
+        .then(() => {
+          api.otherPacsExportExcel(params).then((res) => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(
+                res.data,
+                `${hospitalName}-其他提醒_辅检规则测试结果.xls`
+              );
+            }
+          });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 226 - 0
src/components/testManager/knowledgeMapRule/OtherFusionRuleTest.vue

@@ -0,0 +1,226 @@
+<template>
+  <div>
+    <crumbs
+      :title="
+        type === 'success'
+          ? '其他提醒-输血规则测试-成功条数'
+          : '其他提醒-输血规则测试-失败条数'
+      "
+      class="topBack"
+      :param="$route.params"
+      linkTo="KnowledgeMapRuleTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="otherItemName"
+          label="实验室检查名称(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+         <el-table-column
+          :resizable="false"
+          prop="otherItemHisName"
+          label="实验室检查套餐名(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="otherItemHisDetailName"
+          label="实验室检查名称(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="otherItemInputValue"
+          label="实验室检查数值"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemType"
+          label="禁忌项类型"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemName"
+          label="禁忌项(标准术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="conflictItemHisName"
+          label="禁忌项(医院术语)"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="output"
+          label="实际结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="expectedOutput"
+          label="预期结果"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column label="测试结果">
+          <template slot-scope="scope">{{
+            scope.row.success === 1 ? '成功' : '失败'
+          }}</template>
+        </el-table-column>
+        <el-table-column
+          v-if="type !== 'success'"
+          :resizable="false"
+          prop="message"
+          label="失败原因"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      type: '',
+    };
+  },
+  created() {
+    const params = this.handleInitData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    handleInitData() {
+      const { data, type } = this.$route.params;
+      this.type = type;
+      return {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        resultId: data && data.resultId,
+        success: type === 'success' ? 1 : 0,
+      };
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    getDataList() {
+      const params = this.handleInitData();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getResultOtherTransfusionPage(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let params = {
+        success: type === 'success' ? 1 : 0,
+        resultId: data.resultId,
+      };
+      this.$alert('确定要导出规则测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning',
+      })
+        .then(() => {
+          api.otherTransfusionExportExcel(params).then((res) => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(
+                res.data,
+                `${hospitalName}-其他提醒_输血规则测试结果.xls`
+              );
+            }
+          });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 231 - 0
src/components/testManager/staticKnowledgeMap/LessStaticOrNoMap.vue

@@ -0,0 +1,231 @@
+<template>
+  <div>
+    <crumbs
+      :title="title"
+      class="topBack"
+      :param="$route.params"
+      linkTo="StaticKnowledgeMapTest"
+    >
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item style="marginbottom: 0px">
+          <el-button size="mini" @click="exportData">导出</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="hisName"
+          :label="caseName === '检验' ? '医院术语(检验套餐)' : '医院术语'"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="hisDetailName"
+          label="医院术语(检验细项)"
+          show-overflow-tooltip
+          v-if="caseName === '检验'"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="name"
+          label="标准术语"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          v-if="type === 'lessStatic'"
+          :resizable="false"
+          prop="hasStaticKnowledge"
+          label="静态知识标识"
+          show-overflow-tooltip
+        >
+          <template slot-scope="scope">
+            {{ scope.row.hasStaticKnowledge === 0 ? '无' : '有' }}
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="pagination pagepage">
+        <el-pagination
+          :current-page.sync="currentPage"
+          @current-change="currentChange"
+          background
+          :page-size="pageSize"
+          :page-sizes="pageSizeArr"
+          @size-change="handleSizeChange"
+          :layout="pageLayout"
+          :total="total"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  data() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      caseName: '',
+      type: '', // 来自什么页面   noMap/lessStatic
+    };
+  },
+  created() {
+    this._initData();
+    this.getDataList();
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  computed: {
+    title() {
+      let text = '';
+      if (this.type === 'noMap') {
+        text = '未映射到标准术语的医院术语-';
+      } else if (this.type === 'lessStatic') {
+        text = '缺少静态知识的医院术语-';
+      }
+      return text + this.caseName;
+    },
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    _initData() {
+      const { data, type } = this.$route.params;
+      this.caseName = (data && data.caseName) || '';
+      this.type = type;
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+
+    handleParams() {
+      const { data, type } = this.$route.params;
+      let params = {
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        resultId: data.resultId, //结果id
+      };
+      if (type === 'noMap') {
+        //是否映射到标准术语(0:否,1:是)
+        params = { ...params, hasStandName: 0 };
+      } else if (type === 'lessStatic') {
+        //是否有静态知识(0:无,1:有)
+        params = { ...params, hasStaticKnowledge: 0 };
+      }
+      return params;
+    },
+    getDataList() {
+      const params = this.handleParams();
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getStaticPage(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data.data && res.data.data.records;
+        }
+        this.total = res.data.data && res.data.data.total;
+        if (this.inCurrentPage !== undefined) {
+          this.currentPage = this.inCurrentPage;
+          this.inCurrentPage = undefined;
+        }
+      });
+    },
+    // excel文件名处理
+    handleExcelName() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let exportText = ''; // excel文件名
+
+      return exportText;
+    },
+    // 导出
+    exportData() {
+      const { data, hospitalId, hospitalName, type } = this.$route.params;
+      let requestAjax;
+      let exportText; // excel文件名
+      let params = {
+        resultId: data.resultId,
+      };
+      if (data.caseName === '检验' && type === 'noMap') {
+        requestAjax = 'exportStaticLisExcel';
+        exportText = `${hospitalName}-未映射到标准术语的${data.caseName}医院术语.xls`;
+        params = { ...params, hasStandName: 0 };
+      } else if (data.caseName !== '检验' && type === 'noMap') {
+        requestAjax = 'exportStaticCommonExcel';
+        exportText = `${hospitalName}-未映射到标准术语的${data.caseName}医院术语.xls`;
+        params = { ...params, hasStandName: 0 };
+      } else if (data.caseName === '检验' && type === 'lessStatic') {
+        requestAjax = 'exportStaticLisStaticExcel';
+        exportText = `${hospitalName}-缺少静态知识的${data.caseName}医院术语.xls`;
+        params = { ...params, hasStaticKnowledge: 0 };
+      } else if (data.caseName !== '检验' && type === 'lessStatic') {
+        requestAjax = 'exportStaticCommonStaticExcel';
+        exportText = `${hospitalName}-缺少静态知识的${data.caseName}医院术语.xls`;
+        params = { ...params, hasStaticKnowledge: 0 };
+      }
+      this.$alert('确定要导出静态知识映射测试结果吗?', '', {
+        confirmButtonText: '确定',
+        title: '提示',
+        type: 'warning',
+      })
+        .then(() => {
+          api[requestAjax](params).then((res) => {
+            if (res.status === 200) {
+              this.$message({ message: '导出成功', type: 'success' });
+              utils.downloadExportedData(res.data, exportText);
+            }
+          });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+</style>

+ 316 - 0
src/components/testManager/staticKnowledgeMap/StaticKnowledgeMapTest.vue

@@ -0,0 +1,316 @@
+<template>
+  <div>
+    <crumbs title="静态知识映射测试" class="topBack">
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item
+          label=""
+          class="selectMedicine"
+          style="marginbottom: -1px"
+        >
+          <el-select
+            size="mini"
+            v-model="hospitalId"
+            placeholder="选择医院"
+            @change="handleChange"
+          >
+            <el-option
+              v-for="item in hospitalData"
+              :label="item.name"
+              :value="item.id"
+              :key="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div style="margin: 60px 20px 0">
+      <el-table :data="list" border>
+        <el-table-column
+          :resizable="false"
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="80"
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="caseName"
+          label="术语类型"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          :resizable="false"
+          prop="gmtModified"
+          label="测试时间"
+        ></el-table-column>
+
+        <el-table-column
+          :resizable="false"
+          prop="totleNum"
+          label="医院术语总条数"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column label="未映射到标准术语条数">
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              size="small"
+              @click="goToInnerPage(scope.row, 'noMap')"
+              :disabled="runningStatusArr[scope.$index] === 1"
+              >{{ scope.row.unMappingNum }}</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column label="缺少静态知识术语条数">
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              size="small"
+              @click="goToInnerPage(scope.row, 'lessStatic')"
+              :disabled="runningStatusArr[scope.$index] === 1"
+              >{{ scope.row.withoutKnowledgeNum }}</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column label="操作">
+          <template slot-scope="scope">
+            <input
+              type="file"
+              name="uploadfile "
+              id="upFile"
+              @change="uploadFile($event)"
+            />
+            <el-button
+              type="text"
+              size="small"
+              :disabled="!runningStatus"
+              @click="handleTest(scope.row, scope.$index)"
+              >{{
+                runningStatusArr[scope.$index] === 1
+                  ? '执行测试中...'
+                  : '执行测试'
+              }}</el-button
+            >
+            <span v-if="runningStatusArr[scope.$index] === 1"> | </span>
+            <el-button
+              v-if="runningStatusArr[scope.$index] === 1"
+              type="text"
+              size="small"
+              @click="handleUpdateStatus(scope.row, scope.$index)"
+            >
+              重置
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
+export default {
+  name: 'KnowledgeMapRuleTest',
+  data() {
+    return {
+      list: [],
+      hospitalData: [],
+      hospitalId: '', //选中医院
+      type: '',
+      caseId: '',
+      runningStatusArr: [0, 0, 0, 0, 0],
+      statusIndex: '',
+    };
+  },
+  computed: {
+    runningStatus() {
+      return this.runningStatusArr.every((item) => {
+        return item === 0;
+      });
+    },
+  },
+  created() {
+    this._getHospitalInfoCDSS();
+    this.timer = setInterval(this._getRunningStatus, 20 * 1000);
+  },
+  beforeDestroy() {
+    clearInterval(this.timer);
+  },
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      Object.assign(vm, to.params);
+      if (Object.keys(to.params).length === 0) return;
+      vm.getDataList(to.params.hospitalId);
+      vm._getRunningStatus();
+    });
+  },
+  methods: {
+    _getRunningStatus() {
+      const { hospitalId } = this;
+      if (this.hospitalId === '') return;
+      api.getRunningStatusByHospitalId({ hospitalId }).then((res) => {
+        if (res.data.code === '0' && res.data.data) {
+          this.runningStatusArr = Object.values(res.data.data).slice(9, 14);
+        }
+      });
+    },
+    indexMethod(index) {
+      return index + 1;
+    },
+    // 获取医院信息
+    _getHospitalInfoCDSS() {
+      api.getHospitalInfo().then((res) => {
+        if (res.data.code === '0') {
+          this.hospitalData = res.data && res.data.data;
+        }
+      });
+    },
+    handleType(caseName) {
+      switch (caseName) {
+        case '诊断':
+          return 1;
+        case '检验':
+          return 2;
+        case '检查':
+          return 3;
+        case '药品':
+          return 4;
+        case '手术/操作':
+          return 5;
+        default:
+          return null;
+      }
+    },
+    // 重置状态
+    handleUpdateStatus(row, index) {
+      const { caseId } = row;
+      api
+        .updateRunningStatus({
+          hospitalId: this.hospitalId,
+          caseId,
+          status: 0,
+        })
+        .then((res) => {
+          if (res.data.code === '0' && res.data.data) {
+            this.$message({
+              message: '重置成功',
+              type: 'success',
+            });
+            this.getDataList(this.hospitalId); // 重新获取列表
+          } else {
+            this.$message.error(res.data.msg || '重置失败');
+            this.getDataList(this.hospitalId); // 重新获取列表
+          }
+          this.runningStatusArr = [0, 0, 0, 0, 0];
+        });
+    },
+
+    // 执行测试
+    handleTest(row, index) {
+      let inp = document.getElementById('upFile');
+      inp.click();
+      const { caseName, caseId } = row;
+      this.type = this.handleType(caseName); //术语类型(1:诊断、2:检验、3:检查、4:药品、5:手术/操作)
+      this.caseId = caseId; //测试用例id
+      this.statusIndex = index;
+    },
+
+    // 导入数据
+    uploadFile(e) {
+      if (this.statusIndex !== '') {
+        this.runningStatusArr = this.runningStatusArr.map((item, idx) => {
+          if (idx === this.statusIndex) {
+            return 1;
+          } else {
+            return 0;
+          }
+        });
+      }
+      let fileInfo = e.target.files[0];
+      e.preventDefault();
+      let formData = new FormData();
+      formData.append('file', fileInfo);
+      formData.append('hospitalId', this.hospitalId);
+      formData.append('type', this.type);
+      formData.append('caseId', this.caseId);
+      const header = {
+        headers: {
+          'Content-Type': 'multipart/form-data',
+        },
+      };
+      api.staticKnowledgeTest(formData, header).then((res) => {
+        if (res.data.code === '00000001') {
+          this.$message.error(res.data.msg || '数据存在异常');
+          this.getDataList(this.hospitalId); // 重新获取列表
+        } else if (res.data.code === '0' && res.data.data) {
+          this.$message({
+            message: '测试成功',
+            type: 'success',
+          });
+          this.getDataList(this.hospitalId); // 重新获取列表
+        } else {
+          this.$message.error(res.data.msg || '数据存在异常');
+          this.getDataList(this.hospitalId);
+        }
+        this.runningStatusArr = [0, 0, 0, 0, 0];
+      });
+      //解决上传相同文件不触发change
+      let inp = document.getElementById('upFile');
+      inp.value = '';
+    },
+
+    // 跳转至未映射到标准术语条数页面 / 缺少静态知识术语条数
+    goToInnerPage(row, type) {
+      let hospital = this.hospitalData.find(
+        (item) => item.id === this.hospitalId
+      );
+      let hospitalName = hospital.name;
+      this.$router.push({
+        name: 'LessStaticOrNoMap',
+        params: {
+          data: { ...row },
+          hospitalId: this.hospitalId,
+          hospitalName,
+          type,
+        },
+      });
+    },
+
+    // 选中医院
+    handleChange(val) {
+      if (val === '') return;
+      this.getDataList(val);
+      this._getRunningStatus(); // 选中后立即请求状态
+    },
+
+    // 获取列表数据
+    getDataList(id) {
+      const params = {
+        hospitalId: id,
+      };
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)',
+      });
+      api.getStaticCaseResultList(params).then((res) => {
+        loading.close();
+        if (res.data.code === '0') {
+          this.list = res.data && res.data.data;
+        }
+      });
+    },
+  },
+};
+</script>
+
+<style lang="less" scored>
+@import '../../../less/admin.less';
+#upFile {
+  display: none !important;
+}
+</style>

+ 371 - 239
src/routes.js

@@ -4,18 +4,18 @@ import ForgetPassword from '@components/forgetPassword/FindPassword.vue';
 import HomePage from '@components/common/HomePage.vue';
 import TrialUser from '@components/user/TrialUser.vue';
 import Information from '@components/user/Information.vue';
-import MoreService from '@components/user/MoreService.vue';//GDFW
-import OpenedProduct from '@components/user/OpenedProduct.vue';//YGMCP
-import AddServiceProduct from '@components/user/AddServiceProduct.vue';//添加服务端产品
-import ManageService from '@components/user/ManageService.vue';//管理服务端
-import CreatedToken from '@components/user/CreatedToken.vue';//查看生成令牌
-import AlreadyToken from '@components/user/AlreadyToken.vue';//已生成令牌
+import MoreService from '@components/user/MoreService.vue'; //GDFW
+import OpenedProduct from '@components/user/OpenedProduct.vue'; //YGMCP
+import AddServiceProduct from '@components/user/AddServiceProduct.vue'; //添加服务端产品
+import ManageService from '@components/user/ManageService.vue'; //管理服务端
+import CreatedToken from '@components/user/CreatedToken.vue'; //查看生成令牌
+import AlreadyToken from '@components/user/AlreadyToken.vue'; //已生成令牌
 // import UserSetting from '@components/user/UserSetting.vue';//安全设置
-import UserSetting from '@components/user/SafetySetting.vue';//安全设置
+import UserSetting from '@components/user/SafetySetting.vue'; //安全设置
 /*******************朗通后台**********************/
-import ProductLines from '@components/admin/ProductLines.vue'
-import ProductLinesManage from '@components/admin/ProductLinesManage.vue'
-import SuperAdmin from '@components/admin/SuperAdmin.vue'
+import ProductLines from '@components/admin/ProductLines.vue';
+import ProductLinesManage from '@components/admin/ProductLinesManage.vue';
+import SuperAdmin from '@components/admin/SuperAdmin.vue';
 import AdminConsole from '@components/admin/Console.vue';
 import AddAdmin from '@components/admin/AddAdmin.vue';
 import PersonCenter from '@components/admin/PersonCenter.vue';
@@ -23,68 +23,66 @@ import ChangePwd from '@components/admin/ChangePwd.vue';
 import RegisterAdmin from '@components/admin/RegisterAdmin.vue';
 import Renew from '@components/admin/Renew.vue';
 import AuthedAdmin from '@components/admin/AuthedAdmin.vue';
-import AddProductLine from '@components/admin/AddProductLine.vue'
-import OrganizationInfo from '@components/admin/OrganizationInfo.vue';//机构信息
-import AddOrganization from '@components/admin/AddOrganization.vue';//添加机构信息
-import ModifinedOrga from '@components/admin/ModifinedOrga.vue';//修改机构信息
+import AddProductLine from '@components/admin/AddProductLine.vue';
+import OrganizationInfo from '@components/admin/OrganizationInfo.vue'; //机构信息
+import AddOrganization from '@components/admin/AddOrganization.vue'; //添加机构信息
+import ModifinedOrga from '@components/admin/ModifinedOrga.vue'; //修改机构信息
 import ProductDetail from '@components/admin/ProductDetail.vue';
 import Console from '@components/user/Console.vue';
-import LabelGroup from '@components/icss/LabelGroup.vue'  //标签组
+import LabelGroup from '@components/icss/LabelGroup.vue'; //标签组
 import NoiseTemplate from '@components/icss/NoiseTemplate.vue';
-import DeptInfo from '@components/icss/DeptInfo.vue';//科室信息
-import DeptInfoDetail from '@components/icss/DeptInfoDetail.vue';//科室信息-详情
-import AddDeptInfo from '@components/icss/AddDeptInfo.vue';//科室信息-添加
-import IndeptLabel from '@components/icss/IndeptLabel.vue';//独立标签
-import AddIndeptLabel from '@components/icss/AddIndeptLabel.vue'//独立标签-添加
-import PromptInfo from '@components/icss/PromptInfo.vue'//提示信息
-import AddPromptInfo from '@components/icss/AddPromptInfo.vue'//添加提示信息
-import SimilarName from '@components/icss/SimilarName.vue'//别名维护
-import AddSimilarName from '@components/icss/AddSimilarName.vue'//别名维护-详情
-import CommonSymptom from '@components/icss/CommonSymptom.vue' //常见科室症状
-import AddCommonSymptom from '@components/icss/AddCommonSymptom' //常见科室症状--添加
-import PromptDetail from '@components/icss/PromptDetail.vue'//提示信息详情
-import MedicinePrompt from '@components/icss/MedicinePrompt.vue'   //医学术语静态知识
-import AddMedicinePrompt from '@components/icss/AddMedicinePrompt.vue'   //医学术语静态知识
-
-import DisclaimerInformation from '@components/icss/DisclaimerInformation.vue'//免责声明
-import DiscInfoDetail from '@components/icss/DiscInfoDetail.vue'//免责声明-详情
-import AddDisclInfo from '@components/icss/AddDisclInfo.vue'//免责声明-添加
-import PhysicalExamTemplate from '@components/icss/PhysicalExamTemplate.vue'  //查体模板维护
-import AddPhysicalExamTemp from '@components/icss/AddPhysicalExamTemp.vue'  //查体模板维护--添加
-
-import TemplateMaintenance from '@components/icss/TemplateMaintenance.vue'//模板维护列表
-import TemplateMaintenanceWrap from '@components/icss/TemplateMaintenanceWrap.vue'//模板维护添加修改
-import VersionInfo from '@components/icss/VersionInfo.vue'//版本信息
-import VersionDetail from '@components/icss/VersionDetail.vue'//版本信息-详情
-import AddVersion from '@components/icss/AddVersion.vue'//版本信息-添加/修改
-import MedicalName from '@components/icss/MedicalName.vue'//医学术语维护-命名维护
-import AddMedicalName from '@components/icss/AddMedicalName.vue'//医学术语维护-命名维护/添加修改
-import MedicalRelation from '@components/icss/MedicalRelation.vue'//医学术语维护-关系维护
-import AddMedicalRelation from '@components/icss/AddMedicalRelation.vue'//医学术语维护-关系维护-添加
-import MedicalInfo from '@components/icss/MedicalInfo.vue'//医学术语维护-信息维护(属性维护)
-import AddMedicalInfo from '@components/icss/AddMedicalInfo.vue'//医学术语维护-信息维护(属性维护)-添加
-import DiagnosisList from '@components/icss/DiagnosisList.vue'//诊断标签维护 -- 列表显示
-import DiagnosisTemplate from '@components/icss/DiagnosisTemplate.vue';//诊断标签维护 -- 添加
+import DeptInfo from '@components/icss/DeptInfo.vue'; //科室信息
+import DeptInfoDetail from '@components/icss/DeptInfoDetail.vue'; //科室信息-详情
+import AddDeptInfo from '@components/icss/AddDeptInfo.vue'; //科室信息-添加
+import IndeptLabel from '@components/icss/IndeptLabel.vue'; //独立标签
+import AddIndeptLabel from '@components/icss/AddIndeptLabel.vue'; //独立标签-添加
+import PromptInfo from '@components/icss/PromptInfo.vue'; //提示信息
+import AddPromptInfo from '@components/icss/AddPromptInfo.vue'; //添加提示信息
+import SimilarName from '@components/icss/SimilarName.vue'; //别名维护
+import AddSimilarName from '@components/icss/AddSimilarName.vue'; //别名维护-详情
+import CommonSymptom from '@components/icss/CommonSymptom.vue'; //常见科室症状
+import AddCommonSymptom from '@components/icss/AddCommonSymptom'; //常见科室症状--添加
+import PromptDetail from '@components/icss/PromptDetail.vue'; //提示信息详情
+import MedicinePrompt from '@components/icss/MedicinePrompt.vue'; //医学术语静态知识
+import AddMedicinePrompt from '@components/icss/AddMedicinePrompt.vue'; //医学术语静态知识
+
+import DisclaimerInformation from '@components/icss/DisclaimerInformation.vue'; //免责声明
+import DiscInfoDetail from '@components/icss/DiscInfoDetail.vue'; //免责声明-详情
+import AddDisclInfo from '@components/icss/AddDisclInfo.vue'; //免责声明-添加
+import PhysicalExamTemplate from '@components/icss/PhysicalExamTemplate.vue'; //查体模板维护
+import AddPhysicalExamTemp from '@components/icss/AddPhysicalExamTemp.vue'; //查体模板维护--添加
+
+import TemplateMaintenance from '@components/icss/TemplateMaintenance.vue'; //模板维护列表
+import TemplateMaintenanceWrap from '@components/icss/TemplateMaintenanceWrap.vue'; //模板维护添加修改
+import VersionInfo from '@components/icss/VersionInfo.vue'; //版本信息
+import VersionDetail from '@components/icss/VersionDetail.vue'; //版本信息-详情
+import AddVersion from '@components/icss/AddVersion.vue'; //版本信息-添加/修改
+import MedicalName from '@components/icss/MedicalName.vue'; //医学术语维护-命名维护
+import AddMedicalName from '@components/icss/AddMedicalName.vue'; //医学术语维护-命名维护/添加修改
+import MedicalRelation from '@components/icss/MedicalRelation.vue'; //医学术语维护-关系维护
+import AddMedicalRelation from '@components/icss/AddMedicalRelation.vue'; //医学术语维护-关系维护-添加
+import MedicalInfo from '@components/icss/MedicalInfo.vue'; //医学术语维护-信息维护(属性维护)
+import AddMedicalInfo from '@components/icss/AddMedicalInfo.vue'; //医学术语维护-信息维护(属性维护)-添加
+import DiagnosisList from '@components/icss/DiagnosisList.vue'; //诊断标签维护 -- 列表显示
+import DiagnosisTemplate from '@components/icss/DiagnosisTemplate.vue'; //诊断标签维护 -- 添加
 import ChronicDiseaseStructureList from '@components/icss/ChronicDiseaseStructureList.vue'; //量表结构维护 -- 列表
 import ChronicDiseaseAdd from '@components/icss/ChronicDiseaseAdd.vue'; //量表结构维护 -- 添加
 import ChronicDiseaseManage from '@components/icss/ChronicDiseaseManage.vue'; //慢病管理评估维护 -- 列表
 import ChronicDiseaseManageAdd from '@components/icss/ChronicDiseaseManageAdd.vue'; //慢病管理评估维护 -- 添加
 import ChemicalAndCommonMapping from '@components/icss/ChemicalAndCommonMapping.vue'; //化验大小项与公表维护
-import AddChemicalAndCommonMapping from '@components/icss/AddChemicalAndCommonMapping.vue'  //化验大小项与公表维护--添加关联
-import ChronicAndIndexRelation from '@components/icss/ChronicAndIndexRelation.vue'  //医学数据--慢病指标值关联维护
-import AddChronicAndIndexRelation from '@components/icss/AddChronicAndIndexRelation.vue'  //医学数据--添加慢病指标值关联
-import DisAndScaleRelation from '@components/icss/DisAndScaleRelation.vue'  //医学数据--量表关联维护
-import AddDisAndScaleRelation from '@components/icss/AddDisAndScaleRelation.vue'  //医学数据--添加量表关联
-import AssaySon from '@components/icss/AssaySon.vue'  //医学数据--化验子项维护
-import AddAssaySon from '@components/icss/AddAssaySon.vue'  //医学数据--化验子项维护-添加修改
-import ConceptRelation from '@components/icss/ConceptRelation.vue'  //医学数据--术语关联维护
-import AddConceptRelation from '@components/icss/AddConceptRelation.vue'  //医学数据--术语关联维护添加修改
-
-
-
-import MedicalMultRelation from '@components/icss/MedicalMultRelation.vue'  //医学术语--医学术语多层关联维护
-import AddMedicalMultRelation from '@components/icss/AddMedicalMultRelation.vue' //医学术语--添加医学术语多层关联维护
-import MedicalType from '@components/icss/MedicalType.vue'//医学术语维护-类型维护
+import AddChemicalAndCommonMapping from '@components/icss/AddChemicalAndCommonMapping.vue'; //化验大小项与公表维护--添加关联
+import ChronicAndIndexRelation from '@components/icss/ChronicAndIndexRelation.vue'; //医学数据--慢病指标值关联维护
+import AddChronicAndIndexRelation from '@components/icss/AddChronicAndIndexRelation.vue'; //医学数据--添加慢病指标值关联
+import DisAndScaleRelation from '@components/icss/DisAndScaleRelation.vue'; //医学数据--量表关联维护
+import AddDisAndScaleRelation from '@components/icss/AddDisAndScaleRelation.vue'; //医学数据--添加量表关联
+import AssaySon from '@components/icss/AssaySon.vue'; //医学数据--化验子项维护
+import AddAssaySon from '@components/icss/AddAssaySon.vue'; //医学数据--化验子项维护-添加修改
+import ConceptRelation from '@components/icss/ConceptRelation.vue'; //医学数据--术语关联维护
+import AddConceptRelation from '@components/icss/AddConceptRelation.vue'; //医学数据--术语关联维护添加修改
+
+import MedicalMultRelation from '@components/icss/MedicalMultRelation.vue'; //医学术语--医学术语多层关联维护
+import AddMedicalMultRelation from '@components/icss/AddMedicalMultRelation.vue'; //医学术语--添加医学术语多层关联维护
+import MedicalType from '@components/icss/MedicalType.vue'; //医学术语维护-类型维护
 //预问诊
 import SimpleQuestion from '@components/preTreat/SimpleQuestion.vue';
 import CombinQuestion from '@components/preTreat/CombinQuestion.vue';
@@ -93,8 +91,8 @@ import AddCombinQuestion from '@components/preTreat/AddCombinQuestion.vue';
 import QuestionModules from '@components/preTreat/QuestionModules.vue';
 import AddQuestionModules from '@components/preTreat/AddQuestionModules.vue';
 //诊断依据
-import DiagBase from '@components/diagBase/DiagBase.vue';  //诊断依据--诊断依据数据维护
-import AddDiagBase from '@components/diagBase/AddDiagBase.vue';  //诊断依据--诊断依据数据维护
+import DiagBase from '@components/diagBase/DiagBase.vue'; //诊断依据--诊断依据数据维护
+import AddDiagBase from '@components/diagBase/AddDiagBase.vue'; //诊断依据--诊断依据数据维护
 
 import QuestionWords from '@components/diagBase/QuestionWords.vue';
 
@@ -149,85 +147,100 @@ import AddRecordItem from '@components/recordInput/AddRecordItem.vue';
 import ManageItemBatch from '@components/recordInput/ManageItemBatch.vue';
 
 // cdss数据维护
-import MedicinePromptCDSS from '@components/cdssManage/MedicinePrompt.vue';   //医学术语静态知识
-import AddMedicinePromptCDSS from '@components/cdssManage/AddMedicinePrompt.vue';   //医学术语静态知识
-import MedicalTerm from '@components/cdssManage/MedicalTerm.vue';   //医学术语关联维护
+import MedicinePromptCDSS from '@components/cdssManage/MedicinePrompt.vue'; //医学术语静态知识
+import AddMedicinePromptCDSS from '@components/cdssManage/AddMedicinePrompt.vue'; //医学术语静态知识
+import MedicalTerm from '@components/cdssManage/MedicalTerm.vue'; //医学术语关联维护
 
 import Disease from '@components/cdssManage/disease/Disease.vue'; //诊断关联维护
-import AddDisease from '@components/cdssManage/disease/AddDisease.vue';  //诊断关联维护--添加关联
+import AddDisease from '@components/cdssManage/disease/AddDisease.vue'; //诊断关联维护--添加关联
 import Lis from '@components/cdssManage/lis/Lis.vue'; //检验关联维护
-import AddLis from '@components/cdssManage/lis/AddLis.vue';  //检验关联维护--添加关联
+import AddLis from '@components/cdssManage/lis/AddLis.vue'; //检验关联维护--添加关联
 import Pacs from '@components/cdssManage/pacs/Pacs.vue'; //检查关联维护
-import AddPacs from '@components/cdssManage/pacs/AddPacs.vue';  //检查关联维护--添加关联
+import AddPacs from '@components/cdssManage/pacs/AddPacs.vue'; //检查关联维护--添加关联
 import DrugManage from '@components/cdssManage/drug/DrugManage.vue'; //药品关联维护
-import AddDrug from '@components/cdssManage/drug/AddDrug.vue';  //药品关联维护--添加关联
+import AddDrug from '@components/cdssManage/drug/AddDrug.vue'; //药品关联维护--添加关联
 import Operation from '@components/cdssManage/operation/Operation.vue'; //手术/操作关联维护
-import AddOperation from '@components/cdssManage/operation/AddOperation.vue';  //手术/操作关联维护--添加关联
+import AddOperation from '@components/cdssManage/operation/AddOperation.vue'; //手术/操作关联维护--添加关联
 import Fusion from '@components/cdssManage/fusion/Fusion.vue'; //输血关联维护
-import AddFusion from '@components/cdssManage/fusion/AddFusion.vue';  //输血关联维护--添加关联
+import AddFusion from '@components/cdssManage/fusion/AddFusion.vue'; //输血关联维护--添加关联
 import DeptManage from '@components/cdssManage/dept/DeptManage.vue'; //科室关联维护
-import AddDept from '@components/cdssManage/dept/AddDept.vue';  //科室关联维护--添加关联
+import AddDept from '@components/cdssManage/dept/AddDept.vue'; //科室关联维护--添加关联
 // import Correlation from '@components/icss/correlation/Correlation.vue';  //关联维护设置
-import Plan from '@components/cdssManage/plan/Plan.vue';  //关联维护设置
-import AddPlan from '@components/cdssManage/plan/AddPlan.vue';  //关联维护设置
+import Plan from '@components/cdssManage/plan/Plan.vue'; //关联维护设置
+import AddPlan from '@components/cdssManage/plan/AddPlan.vue'; //关联维护设置
+
+import KnowledgeManage from '@components/cdssManage/knowledge/KnowledgeManage.vue'; //知识图谱标准术语维护
+import AddKnowledge from '@components/cdssManage/knowledge/AddKnowledge.vue'; //知识图谱标准术语维护-新增编辑
+
+import HospitalCDSS from '@components/cdssManage/hospital/Hospital.vue'; //医院管理
+import AddHospitalCDSS from '@components/cdssManage/hospital/AddHospital.vue'; //医院管理--新增编辑
+import HospitalUserCDSS from '@components/cdssManage/hospitalUser/HospitalUser.vue'; //医院用户管理
+import AddHospitalUserCDSS from '@components/cdssManage/hospitalUser/AddHospitalUser.vue'; //医院用户管理--添加用户
+import VersionCDSS from '@components/cdssManage/version/Version.vue'; //CDSS版本信息维护
+import AddVersionCDSS from '@components/cdssManage/version/AddVersion.vue'; //CDSS版本信息维护--新增编辑
+import VersionDetailCDSS from '@components/cdssManage/version/VersionDetail.vue'; //CDSS版本信息维护--新增编辑
+import DisclaimerCDSS from '@components/cdssManage/disclaimer/Disclaimer.vue'; //免责声明维护
+import AddDisclaimerCDSS from '@components/cdssManage/disclaimer/AddDisclaimer.vue'; //免责声明维护--新增编辑
+import DisclaimerDetailCDSS from '@components/cdssManage/disclaimer/DisclaimerDetail.vue'; //免责声明维护--详情
+
+import KnowledgeMapRuleTest from '@components/testManager/knowledgeMapRule/KnowledgeMapRuleTest.vue';
+import StaticKnowledgeMapTest from '@components/testManager/staticKnowledgeMap/StaticKnowledgeMapTest.vue';
+import BillCommonTest from '@components/testManager/knowledgeMapRule/BillCommonTest.vue';
+import BillFusionTest from '@components/testManager/knowledgeMapRule/BillFusionTest.vue';
+import CriticalLabTest from '@components/testManager/knowledgeMapRule/CriticalLabTest.vue';
+import CriticalAuxTest from '@components/testManager/knowledgeMapRule/CriticalAuxTest.vue';
+import HighRiskDrugTest from '@components/testManager/knowledgeMapRule/HighRiskDrugTest.vue';
+import HighRiskOperationTest from '@components/testManager/knowledgeMapRule/HighRiskOperationTest.vue';
+import OtherAssayRuleTest from '@components/testManager/knowledgeMapRule/OtherAssayRuleTest.vue';
+import OtherAuxRuleTest from '@components/testManager/knowledgeMapRule/OtherAuxRuleTest.vue';
+import OtherFusionRuleTest from '@components/testManager/knowledgeMapRule/OtherFusionRuleTest.vue';
+import LessStaticOrNoMap from '@components/testManager/staticKnowledgeMap/LessStaticOrNoMap.vue';
 
-import KnowledgeManage from '@components/cdssManage/knowledge/KnowledgeManage.vue';  //知识图谱标准术语维护
-import AddKnowledge from '@components/cdssManage/knowledge/AddKnowledge.vue';  //知识图谱标准术语维护-新增编辑
-
-import HospitalCDSS from '@components/cdssManage/hospital/Hospital.vue';  //医院管理
-import AddHospitalCDSS from '@components/cdssManage/hospital/AddHospital.vue';  //医院管理--新增编辑
-import HospitalUserCDSS from '@components/cdssManage/hospitalUser/HospitalUser.vue';  //医院用户管理
-import AddHospitalUserCDSS from '@components/cdssManage/hospitalUser/AddHospitalUser.vue';  //医院用户管理--添加用户
-import VersionCDSS from '@components/cdssManage/version/Version.vue';  //CDSS版本信息维护
-import AddVersionCDSS from '@components/cdssManage/version/AddVersion.vue';  //CDSS版本信息维护--新增编辑
-import VersionDetailCDSS from '@components/cdssManage/version/VersionDetail.vue';  //CDSS版本信息维护--新增编辑
-import DisclaimerCDSS from '@components/cdssManage/disclaimer/Disclaimer.vue';  //免责声明维护
-import AddDisclaimerCDSS from '@components/cdssManage/disclaimer/AddDisclaimer.vue';  //免责声明维护--新增编辑
-import DisclaimerDetailCDSS from '@components/cdssManage/disclaimer/DisclaimerDetail.vue';  //免责声明维护--详情
 
 export default [
   {
     path: '/',
     name: 'login',
-    component: Login
+    component: Login,
   },
   {
     path: '/register',
     name: 'Register',
-    component: Register
+    component: Register,
   },
   {
     path: '/forgetPassword',
     name: 'FindPassword',
-    component: ForgetPassword
+    component: ForgetPassword,
   },
-  {//用户后台
+  {
+    //用户后台
     path: '/user',
     component: HomePage,
     meta: {
-      requireAuth: true
+      requireAuth: true,
     },
     children: [
       // {path: '/', component: Console},
-      { path: 'YH-KZT', component: Console },     //控制台
-      { path: 'YH-GDFW', component: MoreService },      //更多服务
-      { path: 'YH-JGZX', component: Information },//机构中心
+      { path: 'YH-KZT', component: Console }, //控制台
+      { path: 'YH-GDFW', component: MoreService }, //更多服务
+      { path: 'YH-JGZX', component: Information }, //机构中心
       { path: 'YH-JGZX-YKTCP', component: OpenedProduct }, //已开通产品
       { path: 'TJFWD', component: AddServiceProduct }, //添加服务端
       { path: 'YH-JGZX-GLFFD', component: ManageService }, //管理服务端
-      { path: 'YH-JGZX-YSCLP', component: AlreadyToken },//已生成令牌
-      { path: 'CKLPXQ', component: CreatedToken },//查看生成令牌
-      { path: 'YH-JGZX-AQSZ', component: UserSetting },//安全设置
-      { path: 'YH-JGZX-ZHXX', component: Information },//账号信息
-
-    ]
+      { path: 'YH-JGZX-YSCLP', component: AlreadyToken }, //已生成令牌
+      { path: 'CKLPXQ', component: CreatedToken }, //查看生成令牌
+      { path: 'YH-JGZX-AQSZ', component: UserSetting }, //安全设置
+      { path: 'YH-JGZX-ZHXX', component: Information }, //账号信息
+    ],
   },
 
-  {//朗通后台
+  {
+    //朗通后台
     path: '/admin',
     component: HomePage,
     meta: {
-      requireAuth: true
+      requireAuth: true,
     },
     children: [
       // {path: '/', component: AdminConsole},
@@ -235,164 +248,225 @@ export default [
       { path: 'LT-JGZX', component: AdminConsole },
       {
         path: 'LT-KHZX-ZCYH',
-        component: RegisterAdmin
+        component: RegisterAdmin,
       },
       {
         path: 'LT-YRZCGXX',
-        component: AuthedAdmin
+        component: AuthedAdmin,
       },
       {
         name: 'organizationInfo',
-        path: 'LT-KHZX-JGXX',//机构信息
+        path: 'LT-KHZX-JGXX', //机构信息
         component: OrganizationInfo,
         meta: {
-          keepAlive: true
-        }
+          keepAlive: true,
+        },
       },
       {
-        path: 'LT-KHZX-TJJG',//添加机构
-        component: AddOrganization
+        path: 'LT-KHZX-TJJG', //添加机构
+        component: AddOrganization,
       },
       {
-        path: 'LT-KHZX-XGJG',//修改机构
-        component: ModifinedOrga
+        path: 'LT-KHZX-XGJG', //修改机构
+        component: ModifinedOrga,
       },
       {
         name: 'superAdmin',
         path: 'LT-KHZX-CGXX',
-        component: SuperAdmin
+        component: SuperAdmin,
       },
       {
         path: 'LT-DDXT-TJCG',
         component: AddAdmin,
-        name: 'addAdmin'
+        name: 'addAdmin',
       },
       {
         path: 'LT-DDXT-CPXSQLB',
-        component: ProductLines
+        component: ProductLines,
       },
       {
         path: 'LT-CPXGL-CPXXQ',
         component: ProductDetail,
-        name: 'productDetail'
+        name: 'productDetail',
       },
       {
         path: 'LT-CPXFLB',
-        component: Renew
+        component: Renew,
       },
       { path: 'LT-GRZX', component: PersonCenter },
       { path: 'LT-CPXGL', component: ProductLinesManage },
       { path: 'LT-CPXGL-TJCPX', component: AddProductLine, name: 'editProductLine' },
       { path: 'LT-GRZX/CHANGE', component: ChangePwd }, //个人中心--修改密码
       { path: 'LT-YXSJWH-BQZWH', component: LabelGroup, name: 'labelGroup' }, //医学数据维护--标签组维护
-      { path: 'LT-YXSJWH-TJBQZ', component: NoiseTemplate, name: 'AddLabelGroup' },     //医学数据维护--标签组维护--添加标签组
-      { path: 'LT-YXSJWH-KSWH', component: DeptInfo, name: 'deptInfo' },     //医学数据维护--科室维护
-      { path: 'LT-YXSJWH-KSXQ', component: DeptInfoDetail, name: 'DeptInfoDetail' },     //科室维护--详情
-      { path: 'LT-YXSJWH-TJKS', component: AddDeptInfo, name: 'AddDeptInfo' },     //科室维护--添加
-      { path: 'LT-YXSJWH-DLLXBQWH', component: IndeptLabel, name: 'IndeptLabel' },     //独立标签维护--详情
-      { path: 'LT-YXSJWH-TJDLBQ', component: AddIndeptLabel, name: 'AddIndeptLabel' },     //独立标签维护--添加
-      { path: 'LT-YXSJWH-TSXXWH', component: PromptInfo, name: 'PromptInfo' },         //提示信息维护
-      { path: 'LT-YXSJWH-BMWH', component: SimilarName, name: 'SimilarName' },     //别名维护
-      { path: 'LT-YXSJWH-CJXXWH', component: CommonSymptom, name: 'CommonSymptom' },  //常见症状维护
-      { path: 'LT-YXSJWH-TJCJZZ', component: AddCommonSymptom, name: 'AddCommonSymptom' },  //常见症状维护--添加
-      { path: 'LT-YXSJWH-TJBM', component: AddSimilarName, name: 'AddSimilarName' },     //别名维护-添加/修改
+      { path: 'LT-YXSJWH-TJBQZ', component: NoiseTemplate, name: 'AddLabelGroup' }, //医学数据维护--标签组维护--添加标签组
+      { path: 'LT-YXSJWH-KSWH', component: DeptInfo, name: 'deptInfo' }, //医学数据维护--科室维护
+      { path: 'LT-YXSJWH-KSXQ', component: DeptInfoDetail, name: 'DeptInfoDetail' }, //科室维护--详情
+      { path: 'LT-YXSJWH-TJKS', component: AddDeptInfo, name: 'AddDeptInfo' }, //科室维护--添加
+      { path: 'LT-YXSJWH-DLLXBQWH', component: IndeptLabel, name: 'IndeptLabel' }, //独立标签维护--详情
+      { path: 'LT-YXSJWH-TJDLBQ', component: AddIndeptLabel, name: 'AddIndeptLabel' }, //独立标签维护--添加
+      { path: 'LT-YXSJWH-TSXXWH', component: PromptInfo, name: 'PromptInfo' }, //提示信息维护
+      { path: 'LT-YXSJWH-BMWH', component: SimilarName, name: 'SimilarName' }, //别名维护
+      { path: 'LT-YXSJWH-CJXXWH', component: CommonSymptom, name: 'CommonSymptom' }, //常见症状维护
+      { path: 'LT-YXSJWH-TJCJZZ', component: AddCommonSymptom, name: 'AddCommonSymptom' }, //常见症状维护--添加
+      { path: 'LT-YXSJWH-TJBM', component: AddSimilarName, name: 'AddSimilarName' }, //别名维护-添加/修改
       // {path:'LT-YXSJWH-MZSMWH',component:DisclaimerInformation,name:'DisclaimerInformation'},     //免责声明
-      { path: 'LT-YXSJKWH-MZSMWH', component: DisclaimerInformation, name: 'DisclaimerInformation' },     //免责声明
-      { path: 'LT-YXSJWH-MZSMXQ', component: DiscInfoDetail, name: 'DiscInfoDetail' },     //免责声明-详情
-      { path: 'LT-YXSJWH-TJMZSM', component: AddDisclInfo, name: 'AddDisclInfo' },     //免责声明-添加/修改
-      { path: 'LT-YXSJWH-MBWH', component: TemplateMaintenance, name: 'TemplateMaintenance' },     //模板维护
-      { path: 'LT-YXSJWH-CTMBWH', component: PhysicalExamTemplate, name: 'PhysicalExamTemplate' },     //查体模板维护
-      { path: 'LT-YXSJWH-TJCTMB', component: AddPhysicalExamTemp, name: 'AddPhysicalExamTemp' },     //查体模板维护--添加
-      { path: 'LT-YXSJWH-TJMBWH', component: TemplateMaintenanceWrap, name: 'TemplateMaintenanceWrap' },     //模板维护-添加修改
-      { path: 'LT-YXSJWH-TJTSXX', component: AddPromptInfo, name: 'AddPromptInfo' },         //提示信息维护-添加
-      { path: 'LT-YXSJWH-TSXXXQ', component: PromptDetail, name: 'PromptDetail' },         //提示信息维护详情
-      { path: 'LT-YXSYKWH-YXSYJTZSWH', component: MedicinePrompt, name: 'MedicinePrompt' },         //医学术语提示信息维护
-      { path: 'LT-YXSYKWH-TJYXSYJTZS', component: AddMedicinePrompt, name: 'AddMedicinePrompt' },         //医学术语提示信息维护添加
-      { path: 'LT-GBBXXWH-BBXXWH', component: VersionInfo, name: 'VersionInfo' },     //版本信息
-      { path: 'LT-YXSJWH-BBXXXQ', component: VersionDetail, name: 'VersionDetail' },     //版本信息-详情
-      { path: 'LT-YXSJWH-TJBBXX', component: AddVersion, name: 'AddVersion' },     //版本信息-添加/修改
-      { path: 'LT-YXSYKWH-YXSYMMWH', component: MedicalName, name: 'MedicalName' },     //医学术语--命名维护
-      { path: 'LT-YXSYKWH-TJYXSY', component: AddMedicalName, name: 'AddMedicalName' },     //医学术语--命名维护
-      { path: 'LT-YXSYKWH-YXSYGXWH', component: MedicalRelation, name: 'MedicalRelation' },     //医学术语--关系维护
-      { path: 'LT-YXSYKWH-TJYXSYGX', component: AddMedicalRelation, name: 'AddMedicalRelation' },     //医学术语--关系维护-添加
-      { path: 'LT-YXSYKWH-SYYXSXWH', component: MedicalInfo, name: 'MedicalInfo' },  //医学术语维护-信息维护(属性维护)
-      { path: 'LT-YXSYKWH-TJYXSYXX', component: AddMedicalInfo, name: 'AddMedicalInfo' },  //医学术语维护-信息维护(属性维护) -- 添加
-      { path: 'LT-YXSJWH-ZDBQWH', component: DiagnosisList, name: 'DiagnosisList' },  //诊断标签维护 -- 列表显示
-      { path: 'LT-YXSJWH-ZDBQTJ', component: DiagnosisTemplate, name: 'DiagnosisTemplate' },  //诊断标签维护 -- 添加
-      { path: 'LT-YXSYKWH-LBJGWH', component: ChronicDiseaseStructureList, name: 'ChronicDiseaseStructureList' },  //量表结构维护 -- 列表
-      { path: 'LT-YXSJWH-LBJGTJ', component: ChronicDiseaseAdd, name: 'ChronicDiseaseAdd' },  //量表结构维护 -- 添加
-      { path: 'LT-YXSJWH-MBGLYPG', component: ChronicDiseaseManage, name: 'ChronicDiseaseManage' },  //慢病管理评估维护 -- 列表
-      { path: 'LT-YXSJWH-MBGLYTJ', component: ChronicDiseaseManageAdd, name: 'ChronicDiseaseManageAdd' },  //慢病管理评估维护 -- 添加
-      { path: 'LT-YXSJWH-HYDXXYGBXDY', component: ChemicalAndCommonMapping, name: 'ChemicalAndCommonMapping' },  //化验大小项与公表维护
-      { path: 'LT-YXSJWH-TJHYDXXYGBXDY', component: AddChemicalAndCommonMapping, name: 'AddChemicalAndCommonMapping' },  //化验大小项与公表维护--添加关联
-      { path: 'LT-YXSYKWH-YXSYLXWH', component: MedicalType, name: 'MedicalType' },     //医学术语--类型维护
-      { path: 'LT-YXSYKWH-MBZBZGLWH', component: ChronicAndIndexRelation, name: 'ChronicAndIndexRelation' },     //医学数据--慢病指标值关联维护
-      { path: 'LT-YXSYKWH-TJMBZBZGL', component: AddChronicAndIndexRelation, name: 'AddChronicAndIndexRelation' },     //医学数据--添加慢病指标值关联维护
-      { path: 'LT-YXSJWH-LBGLWH', component: DisAndScaleRelation, name: 'DisAndScaleRelation' },     //医学数据--量表关联维护
-      { path: 'LT-YXSJWH-TJLBGL', component: AddDisAndScaleRelation, name: 'AddDisAndScaleRelation' },     //医学数据--添加量表关联
-      { path: 'LT-YXSYKWH-HYZXWH', component: AssaySon, name: 'AssaySon' },     //医学数据--化验子项维护
-      { path: 'LT-YXSYKWH-TJHYZX', component: AddAssaySon, name: 'AddAssaySon' },     //医学数据--化验子项添加修改   
-      { path: 'LT-YXSYKWH-YXSYGLWH', component: ConceptRelation, name: 'ConceptRelation' },     //医学数据--医学术语关联维护   
-      // {path:'LT-YXSYKWH-YXSYLXWH',component:ConceptRelation,name:'ConceptRelation'},     //医学数据--医学术语关联维护   
-      { path: 'LT-YXSYKWH-TJYXSYGL', component: AddConceptRelation, name: 'AddConceptRelation' },     //医学数据--医学术语关联维护-添加修改   
-
-      { path: 'LT-YXSYKWH-YXSYDCGLWH', component: MedicalMultRelation, name: 'MedicalMultRelation' },   //医学术语--医学术语多层关联维护
-      { path: 'LT-YXSYKWH-TJYXSYDCGL', component: AddMedicalMultRelation, name: 'AddMedicalMultRelation' },   //医学术语--添加医学术语多层关联
-      { path: 'LT-YXSYKWH-FJCJGLWH', component: AssistCheckMultRelation, name: 'AssistCheckMultRelation' },   //医学术语--辅检层级关联维护
-      { path: 'LT-YXSYKWH-TJFJCJGL', component: AddAssistCheckMultRelation, name: 'AddAssistCheckMultRelation' },   //医学术语--添加辅检层级关联
-      { path: 'LT-YXSYKWH-FJZXWH', component: AssistCheckSon, name: 'AssistCheckSon' },   //医学术语--辅检子项维护
-      { path: 'LT-YXSYKWH-TJFJZX', component: AddAssistCheckSon, name: 'AddAssistCheckSon' },   //医学术语--辅检子项维护
-
-
-      { path: 'LT-YWZSJWH-DLTXDWH', component: SimpleQuestion, name: 'SimpleQuestion' },  //预问诊-独立填写单
-      { path: 'LT-YWZSJWH-ZHTXDWH', component: CombinQuestion, name: 'CombinQuestion' },  //预问诊-组合填写单
-      { path: 'LT-YWZSJWH-TJDLTXD', component: AddSimpleQuestion, name: 'AddSimpleQuestion' },  //预问诊-添加独立填写单
-      { path: 'LT-YWZSJWH-TJZHTXD', component: AddCombinQuestion, name: 'AddCombinQuestion' },  //预问诊-添加组合填写单
-      { path: 'LT-YWZSJWH-MBWH', component: QuestionModules, name: 'QuestionModules' },  //预问诊-模板维护
-      { path: 'LT-YWZSJWH-TJMBWH', component: AddQuestionModules, name: 'AddQuestionModules' },  //预问诊-添加模板
-
-      { path: 'LT-ZDYJWH-ZDYJSJWH', component: DiagBase, name: 'DiagBase' },  //诊断依据-诊断依据维护
-      { path: 'LT-ZDYJWH-TJZDYJSJ', component: AddDiagBase, name: 'AddDiagBase' },  //诊断依据-添加诊断依据
-      { path: 'LT-ZDYJWH-WTCSJWH', component: QuestionWords, name: 'QuestionWords' },  //问题列表
-      { path: 'LT-SJTJ-YXSJTJ', component: MedicalStatistics, name: 'MedicalStatistics' },  //问题列表
-      { path: 'LT-AQGL-LICENSEWH', component: TokenControl, name: 'TokenControl' },  //安全管理--令牌列表
-      { path: 'LT-AQGL-TJLICENSE', component: AddToken, name: 'AddToken' },  //安全管理--发放令牌
-      { path: 'LT-YXSYKWH-GZWH', component: RulesManager, name: 'RulesManager' },//规则管理
-      { path: 'LT-YXSYKWH-TJGZWH', component: AddRule, name: 'AddRule' },//规则添加
-      { path: 'LT-YXSYKWH-GZYYWH', component: RuleApply, name: 'RuleApply' },//规则管理
-      { path: 'LT-YXSYKWH-TJGZYYWH', component: AddRuleApply, name: 'AddRuleApply' },//规则添加
-      { path: 'LT-BLGL', name: 'RecordManager', component: RecordManager },//病历管理
-      { path: 'LT-BLGL-TJBLGL', name: 'AddRecord', component: AddRecord },//添加病历
-      { path: 'LT-BLGL-CKBLGL', name: 'ShowRecord', component: ShowRecord },//添加病历
-      { path: 'LT-ZKYMSJWH-ZDYSWH', name: 'BaseField', component: BaseField },  //字段映射
-      { path: 'LT-ZKYMSJWH-TJZDYSWH', name: 'FieldMatch', component: FieldMatch },  //添加字段映射
-      { path: 'LT-ZKYMSJWH-ZHDYWH', name: 'CombineFeild', component: CombineFeild },  //组合字段
-      { path: 'LT-ZKYMSJWH-TJZHDYWH', name: 'AddCombineFeild', component: AddCombineFeild },  //添加组合字段
-      { path: 'LT-ZKYMSJWH-MBWH', name: 'QualityControlTemp', component: QualityControlTemp },  //模板维护
-      { path: 'LT-ZKYMSJWH-TMGLZKLX', name: 'ItemDataType', component: ItemDataType },  //条目关联质控类型
-      { path: 'LT-ZKYMSJWH-TMGLZKLXGL', name: 'ItemDataTypeRelation', component: ItemDataTypeRelation },  //条目关联质控类型--关联
-
-      { path: 'LT-ZKYMSJWH-TJMBWH', name: 'AddQualityControlTemp', component: AddQualityControlTemp },  //添加模板维护
-      { path: 'LT-BLZK-BLRl', name: 'RecordInput', component: RecordInput },//病例录入
-      { path: 'LT-BLZK-TJBLRl', name: 'AddRecordInput', component: AddRecordInput },//病例录入
-      { path: 'LT-ZKYMSJWH-ZKTM', name: 'RecordItemList', component: RecordItemList },//病例条目
-      { path: 'LT-BLZK-TJBLTM', name: 'AddRecordItem', component: AddRecordItem },//病例条目
-      { path: 'LT-BLZK-PLGLBLTM', name: 'ManageItemBatch', component: ManageItemBatch },//病例条目
-      { path: 'LT-ZKYMSJWH-ZKLXWH', name: 'QCTypeMang', component: QCTypeMang },  //质控类型
-      { path: 'LT-ZKYMSJWH-TJZKLXWH', name: 'AddQcType', component: AddQcType },  //添加质控类型
-      { path: 'LT-ZKYMSJWH-ZDHCSTJ', name: 'AutoTestList', component: AutoTestList },//自动化测试统计
-      { path: 'LT-ZKYMSJWH-RWLB', name: 'AutoTestTask', component: AutoTestTask },//自动化测试统计-转为任务
-      { path: 'LT-ZKYMSJWH-ZDHCSXQ', name: 'TaskDetail', component: TaskDetail },//自动化测试统计-转为任务-详情
-      { path: 'LT-ZKYMSJWH-BZBL', name: 'StandardRecord', component: StandardRecord },  //标准病历
-      { path: 'LT-ZKYMSJWH-TJBZBL', name: 'AddStandardRecord', component: AddStandardRecord },  //添加标准病历
+      {
+        path: 'LT-YXSJKWH-MZSMWH',
+        component: DisclaimerInformation,
+        name: 'DisclaimerInformation',
+      }, //免责声明
+      { path: 'LT-YXSJWH-MZSMXQ', component: DiscInfoDetail, name: 'DiscInfoDetail' }, //免责声明-详情
+      { path: 'LT-YXSJWH-TJMZSM', component: AddDisclInfo, name: 'AddDisclInfo' }, //免责声明-添加/修改
+      { path: 'LT-YXSJWH-MBWH', component: TemplateMaintenance, name: 'TemplateMaintenance' }, //模板维护
+      { path: 'LT-YXSJWH-CTMBWH', component: PhysicalExamTemplate, name: 'PhysicalExamTemplate' }, //查体模板维护
+      { path: 'LT-YXSJWH-TJCTMB', component: AddPhysicalExamTemp, name: 'AddPhysicalExamTemp' }, //查体模板维护--添加
+      {
+        path: 'LT-YXSJWH-TJMBWH',
+        component: TemplateMaintenanceWrap,
+        name: 'TemplateMaintenanceWrap',
+      }, //模板维护-添加修改
+      { path: 'LT-YXSJWH-TJTSXX', component: AddPromptInfo, name: 'AddPromptInfo' }, //提示信息维护-添加
+      { path: 'LT-YXSJWH-TSXXXQ', component: PromptDetail, name: 'PromptDetail' }, //提示信息维护详情
+      { path: 'LT-YXSYKWH-YXSYJTZSWH', component: MedicinePrompt, name: 'MedicinePrompt' }, //医学术语提示信息维护
+      { path: 'LT-YXSYKWH-TJYXSYJTZS', component: AddMedicinePrompt, name: 'AddMedicinePrompt' }, //医学术语提示信息维护添加
+      { path: 'LT-GBBXXWH-BBXXWH', component: VersionInfo, name: 'VersionInfo' }, //版本信息
+      { path: 'LT-YXSJWH-BBXXXQ', component: VersionDetail, name: 'VersionDetail' }, //版本信息-详情
+      { path: 'LT-YXSJWH-TJBBXX', component: AddVersion, name: 'AddVersion' }, //版本信息-添加/修改
+      { path: 'LT-YXSYKWH-YXSYMMWH', component: MedicalName, name: 'MedicalName' }, //医学术语--命名维护
+      { path: 'LT-YXSYKWH-TJYXSY', component: AddMedicalName, name: 'AddMedicalName' }, //医学术语--命名维护
+      { path: 'LT-YXSYKWH-YXSYGXWH', component: MedicalRelation, name: 'MedicalRelation' }, //医学术语--关系维护
+      { path: 'LT-YXSYKWH-TJYXSYGX', component: AddMedicalRelation, name: 'AddMedicalRelation' }, //医学术语--关系维护-添加
+      { path: 'LT-YXSYKWH-SYYXSXWH', component: MedicalInfo, name: 'MedicalInfo' }, //医学术语维护-信息维护(属性维护)
+      { path: 'LT-YXSYKWH-TJYXSYXX', component: AddMedicalInfo, name: 'AddMedicalInfo' }, //医学术语维护-信息维护(属性维护) -- 添加
+      { path: 'LT-YXSJWH-ZDBQWH', component: DiagnosisList, name: 'DiagnosisList' }, //诊断标签维护 -- 列表显示
+      { path: 'LT-YXSJWH-ZDBQTJ', component: DiagnosisTemplate, name: 'DiagnosisTemplate' }, //诊断标签维护 -- 添加
+      {
+        path: 'LT-YXSYKWH-LBJGWH',
+        component: ChronicDiseaseStructureList,
+        name: 'ChronicDiseaseStructureList',
+      }, //量表结构维护 -- 列表
+      { path: 'LT-YXSJWH-LBJGTJ', component: ChronicDiseaseAdd, name: 'ChronicDiseaseAdd' }, //量表结构维护 -- 添加
+      { path: 'LT-YXSJWH-MBGLYPG', component: ChronicDiseaseManage, name: 'ChronicDiseaseManage' }, //慢病管理评估维护 -- 列表
+      {
+        path: 'LT-YXSJWH-MBGLYTJ',
+        component: ChronicDiseaseManageAdd,
+        name: 'ChronicDiseaseManageAdd',
+      }, //慢病管理评估维护 -- 添加
+      {
+        path: 'LT-YXSJWH-HYDXXYGBXDY',
+        component: ChemicalAndCommonMapping,
+        name: 'ChemicalAndCommonMapping',
+      }, //化验大小项与公表维护
+      {
+        path: 'LT-YXSJWH-TJHYDXXYGBXDY',
+        component: AddChemicalAndCommonMapping,
+        name: 'AddChemicalAndCommonMapping',
+      }, //化验大小项与公表维护--添加关联
+      { path: 'LT-YXSYKWH-YXSYLXWH', component: MedicalType, name: 'MedicalType' }, //医学术语--类型维护
+      {
+        path: 'LT-YXSYKWH-MBZBZGLWH',
+        component: ChronicAndIndexRelation,
+        name: 'ChronicAndIndexRelation',
+      }, //医学数据--慢病指标值关联维护
+      {
+        path: 'LT-YXSYKWH-TJMBZBZGL',
+        component: AddChronicAndIndexRelation,
+        name: 'AddChronicAndIndexRelation',
+      }, //医学数据--添加慢病指标值关联维护
+      { path: 'LT-YXSJWH-LBGLWH', component: DisAndScaleRelation, name: 'DisAndScaleRelation' }, //医学数据--量表关联维护
+      {
+        path: 'LT-YXSJWH-TJLBGL',
+        component: AddDisAndScaleRelation,
+        name: 'AddDisAndScaleRelation',
+      }, //医学数据--添加量表关联
+      { path: 'LT-YXSYKWH-HYZXWH', component: AssaySon, name: 'AssaySon' }, //医学数据--化验子项维护
+      { path: 'LT-YXSYKWH-TJHYZX', component: AddAssaySon, name: 'AddAssaySon' }, //医学数据--化验子项添加修改
+      { path: 'LT-YXSYKWH-YXSYGLWH', component: ConceptRelation, name: 'ConceptRelation' }, //医学数据--医学术语关联维护
+      // {path:'LT-YXSYKWH-YXSYLXWH',component:ConceptRelation,name:'ConceptRelation'},     //医学数据--医学术语关联维护
+      { path: 'LT-YXSYKWH-TJYXSYGL', component: AddConceptRelation, name: 'AddConceptRelation' }, //医学数据--医学术语关联维护-添加修改
 
+      {
+        path: 'LT-YXSYKWH-YXSYDCGLWH',
+        component: MedicalMultRelation,
+        name: 'MedicalMultRelation',
+      }, //医学术语--医学术语多层关联维护
+      {
+        path: 'LT-YXSYKWH-TJYXSYDCGL',
+        component: AddMedicalMultRelation,
+        name: 'AddMedicalMultRelation',
+      }, //医学术语--添加医学术语多层关联
+      {
+        path: 'LT-YXSYKWH-FJCJGLWH',
+        component: AssistCheckMultRelation,
+        name: 'AssistCheckMultRelation',
+      }, //医学术语--辅检层级关联维护
+      {
+        path: 'LT-YXSYKWH-TJFJCJGL',
+        component: AddAssistCheckMultRelation,
+        name: 'AddAssistCheckMultRelation',
+      }, //医学术语--添加辅检层级关联
+      { path: 'LT-YXSYKWH-FJZXWH', component: AssistCheckSon, name: 'AssistCheckSon' }, //医学术语--辅检子项维护
+      { path: 'LT-YXSYKWH-TJFJZX', component: AddAssistCheckSon, name: 'AddAssistCheckSon' }, //医学术语--辅检子项维护
+
+      { path: 'LT-YWZSJWH-DLTXDWH', component: SimpleQuestion, name: 'SimpleQuestion' }, //预问诊-独立填写单
+      { path: 'LT-YWZSJWH-ZHTXDWH', component: CombinQuestion, name: 'CombinQuestion' }, //预问诊-组合填写单
+      { path: 'LT-YWZSJWH-TJDLTXD', component: AddSimpleQuestion, name: 'AddSimpleQuestion' }, //预问诊-添加独立填写单
+      { path: 'LT-YWZSJWH-TJZHTXD', component: AddCombinQuestion, name: 'AddCombinQuestion' }, //预问诊-添加组合填写单
+      { path: 'LT-YWZSJWH-MBWH', component: QuestionModules, name: 'QuestionModules' }, //预问诊-模板维护
+      { path: 'LT-YWZSJWH-TJMBWH', component: AddQuestionModules, name: 'AddQuestionModules' }, //预问诊-添加模板
+
+      { path: 'LT-ZDYJWH-ZDYJSJWH', component: DiagBase, name: 'DiagBase' }, //诊断依据-诊断依据维护
+      { path: 'LT-ZDYJWH-TJZDYJSJ', component: AddDiagBase, name: 'AddDiagBase' }, //诊断依据-添加诊断依据
+      { path: 'LT-ZDYJWH-WTCSJWH', component: QuestionWords, name: 'QuestionWords' }, //问题列表
+      { path: 'LT-SJTJ-YXSJTJ', component: MedicalStatistics, name: 'MedicalStatistics' }, //问题列表
+      { path: 'LT-AQGL-LICENSEWH', component: TokenControl, name: 'TokenControl' }, //安全管理--令牌列表
+      { path: 'LT-AQGL-TJLICENSE', component: AddToken, name: 'AddToken' }, //安全管理--发放令牌
+      { path: 'LT-YXSYKWH-GZWH', component: RulesManager, name: 'RulesManager' }, //规则管理
+      { path: 'LT-YXSYKWH-TJGZWH', component: AddRule, name: 'AddRule' }, //规则添加
+      { path: 'LT-YXSYKWH-GZYYWH', component: RuleApply, name: 'RuleApply' }, //规则管理
+      { path: 'LT-YXSYKWH-TJGZYYWH', component: AddRuleApply, name: 'AddRuleApply' }, //规则添加
+      { path: 'LT-BLGL', name: 'RecordManager', component: RecordManager }, //病历管理
+      { path: 'LT-BLGL-TJBLGL', name: 'AddRecord', component: AddRecord }, //添加病历
+      { path: 'LT-BLGL-CKBLGL', name: 'ShowRecord', component: ShowRecord }, //添加病历
+      { path: 'LT-ZKYMSJWH-ZDYSWH', name: 'BaseField', component: BaseField }, //字段映射
+      { path: 'LT-ZKYMSJWH-TJZDYSWH', name: 'FieldMatch', component: FieldMatch }, //添加字段映射
+      { path: 'LT-ZKYMSJWH-ZHDYWH', name: 'CombineFeild', component: CombineFeild }, //组合字段
+      { path: 'LT-ZKYMSJWH-TJZHDYWH', name: 'AddCombineFeild', component: AddCombineFeild }, //添加组合字段
+      { path: 'LT-ZKYMSJWH-MBWH', name: 'QualityControlTemp', component: QualityControlTemp }, //模板维护
+      { path: 'LT-ZKYMSJWH-TMGLZKLX', name: 'ItemDataType', component: ItemDataType }, //条目关联质控类型
+      {
+        path: 'LT-ZKYMSJWH-TMGLZKLXGL',
+        name: 'ItemDataTypeRelation',
+        component: ItemDataTypeRelation,
+      }, //条目关联质控类型--关联
 
+      {
+        path: 'LT-ZKYMSJWH-TJMBWH',
+        name: 'AddQualityControlTemp',
+        component: AddQualityControlTemp,
+      }, //添加模板维护
+      { path: 'LT-BLZK-BLRl', name: 'RecordInput', component: RecordInput }, //病例录入
+      { path: 'LT-BLZK-TJBLRl', name: 'AddRecordInput', component: AddRecordInput }, //病例录入
+      { path: 'LT-ZKYMSJWH-ZKTM', name: 'RecordItemList', component: RecordItemList }, //病例条目
+      { path: 'LT-BLZK-TJBLTM', name: 'AddRecordItem', component: AddRecordItem }, //病例条目
+      { path: 'LT-BLZK-PLGLBLTM', name: 'ManageItemBatch', component: ManageItemBatch }, //病例条目
+      { path: 'LT-ZKYMSJWH-ZKLXWH', name: 'QCTypeMang', component: QCTypeMang }, //质控类型
+      { path: 'LT-ZKYMSJWH-TJZKLXWH', name: 'AddQcType', component: AddQcType }, //添加质控类型
+      { path: 'LT-ZKYMSJWH-ZDHCSTJ', name: 'AutoTestList', component: AutoTestList }, //自动化测试统计
+      { path: 'LT-ZKYMSJWH-RWLB', name: 'AutoTestTask', component: AutoTestTask }, //自动化测试统计-转为任务
+      { path: 'LT-ZKYMSJWH-ZDHCSXQ', name: 'TaskDetail', component: TaskDetail }, //自动化测试统计-转为任务-详情
+      { path: 'LT-ZKYMSJWH-BZBL', name: 'StandardRecord', component: StandardRecord }, //标准病历
+      { path: 'LT-ZKYMSJWH-TJBZBL', name: 'AddStandardRecord', component: AddStandardRecord }, //添加标准病历
 
       { path: 'LT-CDSSSJWH-JTSYZSWH', component: MedicinePromptCDSS, name: 'MedicinePromptCDSS' }, //医学术语关联维护
-      { path: 'LT-YXSYKWH-TJYXSYJTZSCDSS', component: AddMedicinePromptCDSS, name: 'AddMedicinePromptCDSS' }, //医学术语提示信息维护添加
+      {
+        path: 'LT-YXSYKWH-TJYXSYJTZSCDSS',
+        component: AddMedicinePromptCDSS,
+        name: 'AddMedicinePromptCDSS',
+      }, //医学术语提示信息维护添加
       { path: 'LT-CDSSSJWH-YXSYGLWH', component: MedicalTerm, name: 'MedicalTermCDSS' }, //医学术语关联维护
-      { path: 'YXSYK-ZDGLWH', component: Disease, name: 'Disease', }, //诊断关联维护
-      { path: 'LT-ZDGLWH-TJHYDXXYGBXDY', component: AddDisease, name: 'AddDisease', }, //诊断关联维护--添加关联
+      { path: 'YXSYK-ZDGLWH', component: Disease, name: 'Disease' }, //诊断关联维护
+      { path: 'LT-ZDGLWH-TJHYDXXYGBXDY', component: AddDisease, name: 'AddDisease' }, //诊断关联维护--添加关联
       { path: 'YXSYK-JYGLWH', component: Lis, name: 'Lis' }, //检验关联维护
       { path: 'LT-JYGLWH-TJHYDXXYGBXDY', component: AddLis, name: 'AddLis' }, //检验关联维护--添加关联
       { path: 'YXSYK-JCGLWH', component: Pacs, name: 'Pacs' }, //检查关联维护
@@ -414,24 +488,82 @@ export default [
       { path: 'LT-CDSSSJWH-YYGL', component: HospitalCDSS, name: 'HospitalCDSS' }, //医院管理
       { path: 'LT-CDSSSJWH-YYGLEDIT', component: AddHospitalCDSS, name: 'AddHospitalCDSS' }, //医院管理--新增编辑
       { path: 'LT-CDSSSJWH-YYYHGL', component: HospitalUserCDSS, name: 'HospitalUserCDSS' }, //医院用户管理
-      { path: 'LT-CDSSSJWH-YYYHGLEDIT', component: AddHospitalUserCDSS, name: 'AddHospitalUserCDSS' }, //医院用户管理--添加用户
+      {
+        path: 'LT-CDSSSJWH-YYYHGLEDIT',
+        component: AddHospitalUserCDSS,
+        name: 'AddHospitalUserCDSS',
+      }, //医院用户管理--添加用户
       { path: 'LT-CDSSSJWH-BBWH', component: VersionCDSS, name: 'VersionCDSS' }, //CDSS版本信息维护
       { path: 'LT-CDSSSJWH-BBWHEDIT', component: AddVersionCDSS, name: 'AddVersionCDSS' }, //CDSS版本信息维护--新增编辑
       { path: 'LT-CDSSSJWH-BBWHDETAIL', component: VersionDetailCDSS, name: 'VersionDetailCDSS' }, //CDSS版本信息维护--详情
       { path: 'LT-CDSSSJWH-MZSMWH', component: DisclaimerCDSS, name: 'DisclaimerCDSS' }, //免责声明维护
       { path: 'LT-CDSSSJWH-MZSMWHEDIT', component: AddDisclaimerCDSS, name: 'AddDisclaimerCDSS' }, //免责声明维护--新增编辑
-      { path: 'LT-CDSSSJWH-MZSMWHDETAIL', component: DisclaimerDetailCDSS, name: 'DisclaimerDetailCDSS' }, //免责声明维护--新增编辑
-  
-
-
-
-
-
-
-
-
-
-
-    ]
-  }
-]
+      {
+        path: 'LT-CDSSSJWH-MZSMWHDETAIL',
+        component: DisclaimerDetailCDSS,
+        name: 'DisclaimerDetailCDSS',
+      }, //免责声明维护--新增编辑
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS',
+        component: KnowledgeMapRuleTest,
+        name: 'KnowledgeMapRuleTest',
+      }, //知识图谱规则测试
+      {
+        path: 'LT-YYSYZDHCS-JTZSYSCS',
+        component: StaticKnowledgeMapTest,
+        name: 'StaticKnowledgeMapTest',
+      }, //静态知识映射测试
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS-TYGZCS',
+        component: BillCommonTest,
+        name: 'BillCommonTest',
+      },
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS-SXGZCS',
+        component: BillFusionTest,
+        name: 'BillFusionTest',
+      },
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS-SYSJCGZCS',
+        component: CriticalLabTest,
+        name: 'CriticalLabTest',
+      },
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS-FZJCGZCS',
+        component: CriticalAuxTest,
+        name: 'CriticalAuxTest',
+      },
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS-GWYPGZCS',
+        component: HighRiskDrugTest,
+        name: 'HighRiskDrugTest',
+      },
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS-GWSSZHGZCS',
+        component: HighRiskOperationTest,
+        name: 'HighRiskOperationTest',
+      },
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS-QTHYGZCS',
+        component: OtherAssayRuleTest,
+        name: 'OtherAssayRuleTest',
+      },
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS-QTFJGZCS',
+        component: OtherAuxRuleTest,
+        name: 'OtherAuxRuleTest',
+      },
+      {
+        path: 'LT-YYSYZDHCS-ZSTPGZCS-QTFXGZCS',
+        component: OtherFusionRuleTest,
+        name: 'OtherFusionRuleTest',
+      },
+      {
+        path: 'LT-YYSYZDHCS-JTZSYSCS-WYSZD',
+        component: LessStaticOrNoMap,
+        name: 'LessStaticOrNoMap',
+      },
+      
+    ],
+  },
+];

+ 22 - 22
vue.config.js

@@ -1,5 +1,5 @@
 const path = require('path');
-const proxy_path = 'http://192.168.2.241:80';
+const proxy_path = 'http://192.168.2.236:80';
 // const proxy_path = 'http://192.168.2.241:88';
 // const proxy_path = 'http://192.168.2.236:88';
 // const proxy_path = 'http://192.168.3.101:5050';
@@ -7,26 +7,26 @@ const proxy_path = 'http://192.168.2.241:80';
 // const proxy_path = 'http://192.168.3.113:5050'; //王峰
 
 module.exports = {
-    lintOnSave: false,
-    devServer: {
-        historyApiFallback: true,
-        disableHostCheck: true,
-        proxy: {
-            '/api': {
-                target: proxy_path,
-                changeOrigin: true,
-                secure: false
-            }
-        }
+  lintOnSave: false,
+  devServer: {
+    historyApiFallback: true,
+    disableHostCheck: true,
+    proxy: {
+      '/api': {
+        target: proxy_path,
+        changeOrigin: true,
+        secure: false,
+      },
     },
-    configureWebpack:{
-        resolve:{
-            alias: {
-                '@components': path.resolve(__dirname,'./src/components/'),
-                '@less': path.resolve(__dirname,'./src/less/'),
-                '@base':path.resolve(__dirname,'./src/components/base/'),
-                '@api': path.resolve(__dirname,'./src/api/')
-            }
-        }
+  },
+  configureWebpack: {
+    resolve: {
+      alias: {
+        '@components': path.resolve(__dirname, './src/components/'),
+        '@less': path.resolve(__dirname, './src/less/'),
+        '@base': path.resolve(__dirname, './src/components/base/'),
+        '@api': path.resolve(__dirname, './src/api/'),
+      },
     },
-};
+  },
+};