Ver código fonte

医学术语接口对接

liucf 6 anos atrás
pai
commit
87d792c072

+ 3 - 1
src/api/config.js

@@ -151,8 +151,10 @@ export default {
     'knowledgeUpload': 'api/knowledgeman/concept/importTermExcel', //医学术语--命名维护-导入
     'allKnowledgeType': 'api/knowledgeman/type/getAllType', //医学术语--类型列表
     'deletMedicalName': 'api/knowledgeman/concept/removeConceptInfo', //医学术语--命名维护-删除
-    'getMedicalDetail': 'api/knowledgeman/concept/getConceptInfo', //医学术语--命名维护-修改获取同义词
+    'getMedicalDetail': 'api/knowledgeman/medical/getMedicalInfo', //医学术语--命名维护-修改获取同义词
     'knowledgeRelation': 'api/knowledgeman/relation/getAllRelation', //医学术语--关系维护
+    'delKnowledgeRelation': 'api/knowledgeman/relation/removeRelation', //医学术语--关系维护-删除
+    'getAllConcept': 'api/knowledgeman/concept/getAllConcept', //查询所有术语名称
 	},
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',

+ 7 - 1
src/api/icss.js

@@ -229,7 +229,13 @@ export default {
     getMedicalDetail(param) {//命名维护--修改
         return axios.post(urls.getMedicalDetail, param)
     },
-    knowledgeRelation(param) {//命名维护--修改
+    knowledgeRelation(param) {//关系维护
         return axios.post(urls.knowledgeRelation, param)
     },
+    delKnowledgeRelation(param) {//关系维护-删除
+        return axios.post(urls.delKnowledgeRelation, param)
+    },
+    getAllConcept(param) {//查询所有术语名称
+        return axios.post(urls.getAllConcept, param)
+    },
 }

+ 17 - 24
src/components/icss/AddMedicalName.vue

@@ -14,7 +14,7 @@
           </tr>
           <tr>
             <td class="ind">1</td>
-            <td>
+            <td :title="data.name&&data.name.length>9?data.name:''">
               <el-input v-model="data.name" placeholder="请输入术语" maxlength="30" size="small"></el-input>
             </td>
             <td>
@@ -44,8 +44,8 @@
           </tr>
           <tr v-for="(item,index) in synonymous">
             <td class="ind">{{index+1}}</td>
-            <td>
-              <el-input v-model="item.term" placeholder="请输入术语" maxlength="30" size="small"></el-input>
+            <td :title="item.name&&item.name.length>9?item.name:''">
+              <el-input v-model="item.name" placeholder="请输入术语" maxlength="30" size="small"></el-input>
             </td>
             <td>
               <!-- <el-select v-model="item.type" clearable placeholder="请选择">
@@ -59,7 +59,7 @@
               {{data.type}}
             </td>
             <td class="desc">
-              <el-input v-model="item.mark" placeholder="请输入术语说明" maxlength="120" size="small"></el-input>
+              <el-input v-model="item.note" placeholder="请输入术语说明" maxlength="120" size="small"></el-input>
             </td>
             <td v-if="id">
               <span @click="deleLine(index)" class="delete">删除</span>
@@ -96,22 +96,19 @@ import api from '@api/icss.js';
         id:null,
         synonymous:[//同义词
             {
-              term:'',
+              name:'',
               id:1,
-              type:'',
-              mark:''
+              note:''
             },
             {
-              term:'',
+              name:'',
               id:2,
-              type:'',
-              mark:''
+              note:''
             },
             {
-              term:'',
+              name:'',
               id:3,
-              type:'',
-              mark:''
+              note:''
             },
           ],
         colspan:4,
@@ -121,7 +118,7 @@ import api from '@api/icss.js';
     },
     created(){
       this.getTypeList();
-      const info = this.$route.params.info;console.log(111,info);
+      const info = this.$route.params.info;
       if(info){
         this.minTitle = '医学术语命名维护-修改';
         this.id = info.id;
@@ -129,6 +126,7 @@ import api from '@api/icss.js';
         this.data.type = info.type;
         this.data.remark = info.remark;
         this.colspan = 5;
+        this.getDetail();
       }
     },
     methods:{
@@ -138,9 +136,9 @@ import api from '@api/icss.js';
           type:this.data.type
         }
         api.getMedicalDetail(params).then((res)=>{
-          const result = res.data;console.log(1111,result);
+          const result = res.data;console.log(999,result);
           if(result.code == 0){
-            
+            this.synonymous = result.data.medicalInfo;
           }else{
             this.$message.error(result.msg);
           }
@@ -178,7 +176,7 @@ import api from '@api/icss.js';
         this.synonymous.push(singleSpan);
         // this.synIndex = index;
       },
-      arning(msg,type){
+      warning(msg,type){
         this.$message({
           showClose: true,
           message:msg,
@@ -204,8 +202,7 @@ import api from '@api/icss.js';
           api.deletMedicalName(param).then((res)=>{
             if(res.data.code=='0'){
               this.warning(res.data.msg||'操作成功','success');
-              // this.getDataList();
-              // this.synonymous.splice(index,1);
+              this.getDetail();
             }else{
               this.warning(res.data.msg);
             }
@@ -214,12 +211,8 @@ import api from '@api/icss.js';
           })
         });
       },
-      // deleLine(index){
-      //   this.synonymous.splice(index,1);
-      //   // console.log(123,index,this.synonymous);
-      // },
       comfirn(){
-        
+        console.log("修改数据:",this.synonymous);
       }
     }
   }

+ 104 - 44
src/components/icss/AddMedicalRelation.vue

@@ -2,15 +2,23 @@
   <div>
     <crumbs title="医学术语关系-添加" linkTo="/admin/LT-YXSYKWH-YXSYGXWH"></crumbs>
     <div class="contents">
-      <div class="content">
+      <div class="content" @click="closeSearch">
         <p>明细</p>
         <div class="search">
           <span>起始术语搜索:</span>
-          <el-input size="small" v-model="firstInput" placeholder="输入术语"></el-input>
+          <el-input size="small" v-model="firstInput" placeholder="输入术语" @input="search(1)"></el-input>
+          <ul v-if="showFlag==1">
+            <li>测试</li>
+            <li v-for="it in searchDatas" :key="it.id" @click.stop="chooseFirst(it)" :title="it.name.length>10?it.name:''">{{it.name}}</li>
+          </ul>
         </div>
         <div class="search">
           <span>终点术语搜索:</span>
-          <el-input size="small" v-model="endInput" placeholder="输入术语"></el-input>
+          <el-input size="small" v-model="endInput" placeholder="输入术语" @input="search(2)"></el-input>
+          <ul v-if="showFlag==2">
+            <li>测试2</li>
+            <li v-for="it in searchDatas" :key="it.id" @click.stop="chooseEnd(it)" :title="it.name.length>10?it.name:''">{{it.name}}</li>
+          </ul>
         </div>
         <table class="deptbox">
           <tr>
@@ -22,22 +30,15 @@
           </tr>
           <tr>
             <td>
-              <span>起始术语</span>
+              <span>{{data.start_name}}</span>
             </td>
             <td>
-              <el-select v-model="data.firstType" clearable placeholder="请选择" size="mini">
-                <el-option
-                  v-for="item in data.typeList"
-                  :key="item.key"
-                  :label="item.name"
-                  :value="item.key">
-                </el-option>
-              </el-select>
+              <span>{{data.start_type}}</span>
             </td>
             <td>
               <el-select v-model="data.relation" clearable placeholder="请选择" size="mini">
                 <el-option
-                  v-for="item in data.typeList"
+                  v-for="item in relationList"
                   :key="item.key"
                   :label="item.name"
                   :value="item.key">
@@ -45,17 +46,10 @@
               </el-select>
             </td>
             <td>
-              <span>终点术语</span>
+              <span>{{data.end_name}}</span>
             </td>
             <td>
-              <el-select v-model="data.endType" clearable placeholder="请选择" size="mini">
-                <el-option
-                  v-for="item in data.typeList"
-                  :key="item.key"
-                  :label="item.name"
-                  :value="item.key">
-                </el-option>
-              </el-select>
+              <span>{{data.end_type}}</span>
             </td>
           </tr>
         </table>
@@ -75,35 +69,79 @@
     data(){
       return{
         data:{
-          type:'',
-          typeList:[
-            {
-              name:'类型1',
-              id:1,
-              key:1
-            },
-            {
-              name:'类型2',
-              id:2,
-              key:2
-            },
-            {
-              name:'类型3',
-              id:3,
-              key:3
-            },
-          ]
+          start_name:'',
+          start_type:'',
+          relation:'',
+          end_name:'',
+          end_type:''
         },
+        relationList:[
+          {
+            name:"测试1",
+            key:1
+          },{
+            name:"测试2",
+            key:2
+          },{
+            name:"测试3",
+            key:3
+          }
+        ],
         firstInput:'',
         endInput:'',
-        relation:'',
-        firstType:'',
-        endType:''
+        showFlag:0,
+        searchDatas:[
+          {
+            name:"测试1",
+            id:1,
+            type:'药品'
+          },{
+            name:"测试2",
+            id:2,
+            type:'药品'
+          },{
+            name:"测试3",
+            id:3,
+            type:'药品小类'
+          }
+        ],
       }
     },
     methods:{
       comfirn(){
-
+        console.log(444,this.data);
+      },
+      search(type){
+        let item = type==1?this.firstInput:this.endInput;
+        if(item){
+          this.showFlag = type;
+          /*api.getAllConcept(item).then((res)=>{
+            const result = res.data;
+            if(result.code==0){
+              this.searchDatas = result.data;
+              this.showFlag = type;
+            }else{
+              this.$message({
+                type:'warning',
+                message:result.msg
+              })
+            }
+          })*/
+        }
+      },
+      chooseFirst(item){
+        this.data.start_name = item.name;
+        this.data.start_type = item.type;
+        this.closeSearch();
+      },
+      chooseEnd(item){
+        this.data.end_name = item.name;
+        this.data.end_type = item.type;
+        this.closeSearch();
+      },
+      closeSearch(){
+        this.showFlag = 0;
+        // this.searchDatas = [];
       }
     }
   }
@@ -121,6 +159,28 @@
       .el-input--small{
         margin-top: 8px;
       }
+      position: relative;
+      ul{
+        width: 183px;
+        position: absolute;
+        top: 63px;
+        border:1px solid #ccc;
+        background: #fff;
+        max-height: 291px;
+        overflow-y: auto;
+        li{
+          border:1px solid #fff;
+          padding-left: 7px;
+          height: 27px;
+          line-height: 27px;
+          overflow: hidden;
+          white-space: nowrap;
+          text-overflow: ellipsis;
+        }
+        li:hover{
+          border-color:#22ccc8;
+        }
+      }
     }
   }
   .deptbox{

+ 37 - 9
src/components/icss/AddSimilarName.vue

@@ -161,7 +161,11 @@
               }
             }
           }else{
-            console.log(result.msg);
+            // console.log(result.msg);
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
           }
         })
       },
@@ -184,14 +188,22 @@
         let dataList = [];
         if(this.flag){ //修改
           if(!selfName[0].retrievalSpell){
-            this.$message.error("本体拼音不能为空");
+            // this.$message.error("本体拼音不能为空");
+            this.$message({
+              message:"本体拼音不能为空",
+              type:'warning'
+            });
             return
           }
           dataList = selfName.concat(retrievalNames,retrievalEmpty,retrievalSonNames,sonEmpty);
           this.toast = "修改成功";
         }else{
           if(!selfEmpty[0].retrievalSpell){
-            this.$message.error("本体拼音不能为空");
+            // this.$message.error("本体拼音不能为空");
+            this.$message({
+              message:"本体拼音不能为空",
+              type:'warning'
+            });
             return
           }
           dataList = selfEmpty.concat(retrievalNames,retrievalEmpty,retrievalSonNames,sonEmpty);
@@ -199,9 +211,19 @@
         }
         // 过滤掉空数据
         let filterData = dataList.filter((item)=>{
-          return item.retrievalName;
+          return item.retrievalName||item.retrievalSpell;
         })
-        console.log(111,dataList,filterData);
+        // console.log(111,dataList,filterData);
+        let emptyData = filterData.filter((item)=>{
+          return !item.retrievalName|| !item.retrievalSpell;
+        })
+        if(emptyData&&emptyData.length>0){//判断是否有未填项
+          this.$message({
+            message:'标签名和拼音不能为空',
+            type:'warning'
+          });
+          return
+        }
         const params = {
           'itemList':filterData,
           'questionId':this.id,
@@ -217,7 +239,10 @@
             this.$router.push({path:'LT-YXSJWH-BMWH'});
           }else{
             // console.log(result.msg);
-            this.$message.error("标签和拼音不能为空");
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
           }
         })
       },
@@ -229,14 +254,17 @@
         }
         api.searchLable(param).then((res)=>{
           const result = res.data;
-          // console.log(123,result);
           if(result.code==0){
             this.searchDatas = result.data;
             if(result.data.length>0){
               this.showFlag = true;
             }
           }else{
-            console.log(result.msg);
+            // console.log(result.msg);
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
           }
         })
       },
@@ -350,7 +378,7 @@
       border:1px solid #ccc;
       background: #fff;
       max-height: 291px;
-      overflow-y: scroll;
+      overflow-y: auto;
       li{
         border:1px solid #fff;
         padding-left: 7px;

+ 34 - 7
src/components/icss/MedicalRelation.vue

@@ -47,8 +47,28 @@
                         :show-overflow-tooltip="true">
                 </el-table-column>
                 <el-table-column
-                        prop="questionName"
-                        label="关系明细"
+                        prop="startName"
+                        label="起始术语"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="startType"
+                        label="起始类型"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="relationName"
+                        label="关系"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="endName"
+                        label="终点术语"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="endType"
+                        label="终点类型"
                         show-overflow-tooltip>
                 </el-table-column>
                 <el-table-column
@@ -57,9 +77,9 @@
                 </el-table-column>
                 
                 <el-table-column
-                        label="操作" width="160">
+                        label="操作">
                     <template slot-scope="scope">
-                        <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row.questionId)">删除</el-button>
+                        <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row)">删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -108,7 +128,7 @@
             key:3
           },
         ],
-        titleWidth:'1060px' //头部最小宽度
+        titleWidth:'1070px' //头部最小宽度
       }
     },
     created() {
@@ -176,9 +196,16 @@
           resolve();
         }).catch(() => {});
       },
-      showDelDialog(id){
+      showDelDialog(item){
+        const params = {
+          start_term:item.startName,
+          start_type:item.startType,
+          end_term:item.endName,
+          end_type:item.endType,
+          relation_name:item.relationName
+        }
         this.showConfirmDialog('是否删除该关系?可能对现有系统造成影响',()=>{
-          api.delSimilarName({questionId:id}).then((res)=>{
+          api.delKnowledgeRelation(params).then((res)=>{
             if(res.data.code=='0'){
               this.warning(res.data.msg||'操作成功','success');
               this.getDataList();

+ 1 - 1
src/components/icss/SimilarName.vue

@@ -229,7 +229,7 @@
             this.$message({
               dangerouslyUseHTMLString: true,
               message:res.data.msg,
-              type:'error'
+              type:'warning'
             });
           }
         })