Przeglądaj źródła

CDSS朗通云平台V5.4(标准术语) init

morphone1995 4 lat temu
rodzic
commit
38994eef82

+ 1 - 1
src/api/index.js

@@ -3,7 +3,7 @@ import config from './config.js';
 
 
 axios.default.timeout = 500000;
 axios.default.timeout = 500000;
 axios.defaults.headers.post['Content-Type'] = "application/json;charset=utf-8";
 axios.defaults.headers.post['Content-Type'] = "application/json;charset=utf-8";
-// axios.defaults.baseURL = 'http://192.168.2.241';
+// axios.defaults.baseURL = 'http://192.168.2.236';
 // axios.defaults.baseURL = 'http://192.168.2.241';
 // axios.defaults.baseURL = 'http://192.168.2.241';
 // axios.defaults.baseURL = 'http://192.168.3.117:5050';
 // axios.defaults.baseURL = 'http://192.168.3.117:5050';
 
 

+ 258 - 0
src/components/cdssManage/knowledge/AddKnowledge.vue

@@ -0,0 +1,258 @@
+<template>
+  <div class="wrapper">
+    <crumbs
+      :title="isEdit ? '知识图谱标准术语维护-修改' : '知识图谱标准术语维护-添加'"
+      class="topBack"
+      :param="$route.params"
+      linkTo="Plan"
+    ></crumbs>
+    <div class="AddPlanBox">
+      <el-row :gutter="20">
+        <el-col :span="16">
+          <el-form ref="form" :model="form" label-width="110px" :rules="rules">
+            <el-form-item label="术语分类" class="selectMedicine" prop="termType">
+              <el-select
+                v-model="form.termType"
+                placeholder="请选择术语分类"
+                clearable
+                filterable
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in terminologyData"
+                  :label="item.name"
+                  :value="item.val"
+                  :key="item.orderNo"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="术语名称" prop="termName">
+              <el-input v-model="form.termName" placeholder="请输入术语名称"></el-input>
+            </el-form-item>
+            <el-form-item label="术语拼音" prop="planCode">
+              <el-input v-model="form.planCode" placeholder="请输入术语拼音"></el-input>
+            </el-form-item>
+            <!-- 诊断 -->
+            <DiseaseForm v-if="form.termType==='医保疾病名称'"></DiseaseForm>
+            <!-- 手术和操作 -->
+            <OperationForm v-else-if="form.termType==='医保手术和操作名称'" ref="operationForm"></OperationForm>
+            <!-- 检查 | 检查子项 -->
+            <PacsForm
+              v-else-if="form.termType==='辅助检查名称' || form.termType === '辅助检查子项目名称'"
+              :key="form.termType"
+            ></PacsForm>
+            <!-- 检查细项 -->
+            <PacsDetailForm v-else-if="form.termType==='实验室检查名称' "></PacsDetailForm>
+            <!-- 实验室检查细项(开单合理性) -->
+            <LabPacsForm v-else-if="form.termType==='实验室检查' "></LabPacsForm>
+            <!-- 化验细项及结果(推理)-->
+            <AssayForm v-else-if="form.termType==='化验细项及结果' " ref="assayForm"></AssayForm>
+            <!-- 药物过敏原-->
+            <DrugAllergensForm v-else-if="form.termType==='药物过敏原'" ref="drugAllergensForm"></DrugAllergensForm>
+            <!-- 药品注册名称-->
+            <DrugRegNameForm v-else-if="form.termType==='药品注册名称' "></DrugRegNameForm>
+            <!-- 药品代码通用名-->
+            <DrugGeneNameForm v-else-if="form.termType==='药品代码通用名' " ref="drugGeneNameForm"></DrugGeneNameForm>
+            <!-- 体征 | 实验室检查危急值-->
+            <CommonForm
+              v-else-if="form.termType==='实验室检查危急值' || form.termType === '体征'"
+              :key="form.termType"
+            ></CommonForm>
+            <el-form-item label="静态术语标识">
+              <!-- <el-input v-model="form.termStatic" placeholder="静态术语标识"></el-input> -->
+              <span style="paddingLeft: 12px; color: #606266">{{form.termStatic}}</span>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="onSubmit" :disabled="saveDisable">确定</el-button>
+            </el-form-item>
+          </el-form>
+        </el-col>
+      </el-row>
+    </div>
+  </div>
+</template>
+
+<script>
+import api from '@api/cdss.js';
+import DiseaseForm from './DiseaseForm';
+import OperationForm from './OperationForm';
+import PacsForm from './PacsForm';
+import PacsDetailForm from './PacsDetailForm';
+import LabPacsForm from './LabPacsForm';
+import AssayForm from './AssayForm';
+import DrugAllergensForm from './DrugAllergensForm';
+import DrugRegNameForm from './DrugRegNameForm';
+import DrugGeneNameForm from './DrugGeneNameForm';
+import CommonForm from './CommonForm';
+export default {
+  components: {
+    DiseaseForm,
+    OperationForm,
+    PacsForm,
+    PacsDetailForm,
+    LabPacsForm,
+    AssayForm,
+    DrugAllergensForm,
+    DrugRegNameForm,
+    DrugGeneNameForm,
+    CommonForm
+  },
+  data() {
+    return {
+      form: {
+        termType: '',
+        termName: '',
+        planCode: '',
+        termStatic: '无'
+      },
+      saveDisable: false, //保存按钮禁止点击
+      rules: {
+        termType: [
+          { required: true, message: '请选择术语分类', trigger: 'change' }
+        ],
+        termName: [
+          { required: true, message: '请输入术语名称', trigger: 'change' },
+          { max: 100, message: '最多输入100字', trigger: 'blur' }
+        ],
+        planCode: [
+          { required: true, message: '请输入术语拼音', trigger: 'change' }
+        ]
+      },
+      isEdit: false,
+      terminologyData: [] // 术语分类
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {
+    this._getTerminologyData();
+  },
+  mounted() {},
+  methods: {
+    // 获取术语分类 字典
+    _getTerminologyData() {
+      api.getListDicCDSS().then(res => {
+        if (res.data.code === '0') {
+          this.terminologyData = res.data.data && res.data.data['8'];
+        }
+      });
+    },
+    onSubmit() {
+      // console.log(this.$route.params,'this.$route.params')
+      // const {currentPage,isEdit} = this.$route.params
+      // let numberpage = 1
+      // if(isEdit){
+      //   numberpage = currentPage
+      // }
+      let goOn = true;
+      if (this.form.termType === '药物过敏原') {
+        this.$refs.drugAllergensForm.$refs.drugAllergensForm &&
+          this.$refs.drugAllergensForm.$refs.drugAllergensForm.validate(
+            valid => {
+              if (valid) {
+              } else {
+                goOn = false;
+              }
+            }
+          );
+      }
+      if (this.form.termType === '医保手术和操作名称') {
+        this.$refs.operationForm.$refs.operationForm &&
+          this.$refs.operationForm.$refs.operationForm.validate(valid => {
+            if (valid) {
+            } else {
+              goOn = false;
+            }
+          });
+      }
+      if (this.form.termType === '化验细项及结果') {
+        this.$refs.assayForm.$refs.assayForm &&
+          this.$refs.assayForm.$refs.assayForm.validate(valid => {
+            if (valid) {
+            } else {
+              goOn = false;
+            }
+          });
+      }
+      if (this.form.termType === '药品代码通用名') {
+        this.$refs.drugGeneNameForm.$refs.drugGeneNameForm &&
+          this.$refs.drugGeneNameForm.$refs.drugGeneNameForm.validate(valid => {
+            if (valid) {
+            } else {
+              goOn = false;
+            }
+          });
+      }
+
+      // console.log(this.$refs.drugAllergensForm);
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          if (!goOn) return;
+          this.saveDisable = true;
+          let params = this._getParams();
+          if (this.isEdit) {
+            params = {
+              ...params,
+              relationId: this.form.relationId,
+              relationName: this.form.relationName,
+              relationStatus: this.form.relationStatus,
+              type: this.form.conceptType
+            };
+          }
+          return;
+          api.saveBillmanRecord(params).then(res => {
+            if (res.data.code === '0') {
+              this.$message({
+                showClose: true,
+                message: '保存成功',
+                type: 'success',
+                duration: 1000
+              });
+              this.isSaveSuccess = true; // 保存成功,可正常退出
+              this.$router.push({
+                name: 'Bill',
+                params: Object.assign({}, this.$route.params, {
+                  currentPage: numberpage
+                })
+              });
+            } else if (res.data.code === '00020007') {
+              this.$message({
+                showClose: true,
+                message: res.data.msg,
+                type: 'error',
+                duration: 1000
+              });
+            } else {
+              this.$message({
+                showClose: true,
+                message: res.data.msg,
+                type: 'error',
+                duration: 1000
+              });
+            }
+            this.saveDisable = false;
+          });
+        } else {
+          goOn = false;
+        }
+      });
+    }
+  }
+};
+</script>
+<style lang="less" scoped>
+.wrapper {
+  min-width: 940px;
+  .AddPlanBox {
+    padding: 20px 60px 120px 60px;
+    margin: 70px 20px 0 20px;
+    background: #fff;
+  }
+  .topBack {
+    top: 0;
+  }
+  .el-button {
+    float: right;
+  }
+}
+</style>

+ 66 - 0
src/components/cdssManage/knowledge/AssayForm.vue

@@ -0,0 +1,66 @@
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="assayForm"
+        ref="assayForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >       
+        <el-form-item label="特殊" label-width="110px" prop="special">
+          <el-select
+            v-model="assayForm.special"
+            placeholder="请选择特殊"
+            clearable
+            style="width: 100%"
+            ref="special"
+          >
+            <el-option label="是" :value="1"></el-option>
+            <el-option label="否" :value="2"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'AssayForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let special = this.$refs.special.value;
+      if (special === '') {
+        callback('请选择特殊');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      assayForm: {
+        special: '',
+      },
+      rules: {
+        special: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+</style>

+ 64 - 0
src/components/cdssManage/knowledge/CommonForm.vue

@@ -0,0 +1,64 @@
+
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="commonForm"
+        ref="commonForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >
+        <el-form-item label="单位" label-width="110px" prop="unit">
+          <el-input v-model="commonForm.unit" placeholder="请输入单位"></el-input>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'CommonForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let conditionListName = this.$refs.conditionListName.value;
+      if (conditionListName === '') {
+        callback('请输入条件明细');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      commonForm: {
+        unit: ''
+      },
+      rules: {
+        condition: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+.turns {
+  text-align: center;
+  height: 40px;
+  line-height: 40px;
+  color: #dcdfe6;
+}
+</style>

+ 94 - 0
src/components/cdssManage/knowledge/DiseaseForm.vue

@@ -0,0 +1,94 @@
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="diseaseForm"
+        ref="diseaseForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >
+        <el-form-item label="疾病别称" label-width="110px" prop="planName">
+          <el-input v-model="diseaseForm.planName" placeholder="请输入疾病别称"></el-input>
+        </el-form-item>
+
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="年龄范围" label-width="110px" prop="planName">
+              <el-input v-model="diseaseForm.planName" placeholder="请输入最小值"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="2">
+            <div class="turns">——</div>
+          </el-col>
+          <el-col :span="10">
+            <el-form-item label label-width="0px" prop="planName">
+              <el-input v-model="diseaseForm.planName" placeholder="请输入最大值"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-form-item label="所属科室" label-width="110px" prop="planName">
+          <el-input v-model="diseaseForm.planName" placeholder="请输入所属科室"></el-input>
+        </el-form-item>
+        <el-form-item label="性别" label-width="110px" prop="planName">
+          <el-select
+            v-model="diseaseForm.sexType"
+            placeholder="请选择性别"
+            clearable
+            style="width: 100%"
+          >
+            <el-option label="男" :value="1"></el-option>
+            <el-option label="女" :value="2"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'diseaseForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let conditionListName = this.$refs.conditionListName.value;
+      if (conditionListName === '') {
+        callback('请输入条件明细');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      diseaseForm: {
+        planName: '',
+        sexType: ''
+      },
+      rules: {
+        condition: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+.turns{
+  text-align: center;
+  height:40px;
+  line-height: 40px;
+  color: #DCDFE6;
+}
+</style>

+ 72 - 0
src/components/cdssManage/knowledge/DrugAllergensForm.vue

@@ -0,0 +1,72 @@
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="drugAllergensForm"
+        ref="drugAllergensForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >
+        <el-form-item label="药品类型" label-width="110px" prop="dragType">
+          <el-select
+            v-model="drugAllergensForm.dragType"
+            placeholder="请选择药品类型"
+            clearable
+            style="width: 100%"
+            ref="dragType"
+          >
+            <el-option label="药品" :value="1"></el-option>
+            <el-option label="药品类别" :value="2"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="结果" label-width="110px" prop="unit">
+          <el-input v-model="drugAllergensForm.dragType" placeholder="请输入结果"></el-input>
+        </el-form-item>
+        <el-form-item label="名称" label-width="110px" prop="unit">
+          <el-input v-model="drugAllergensForm.dragType" placeholder="请输入名称"></el-input>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'DrugAllergensForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let dragType = this.$refs.dragType.value;
+      if (dragType === '') {
+        callback('请选择药品类型');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      drugAllergensForm: {
+        dragType: ''
+      },
+      rules: {
+        dragType: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+</style>

+ 85 - 0
src/components/cdssManage/knowledge/DrugGeneNameForm.vue

@@ -0,0 +1,85 @@
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="drugGeneNameForm"
+        ref="drugGeneNameForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >
+        <el-form-item label="最小包装数量" label-width="110px" prop="unit">
+          <el-input v-model="drugGeneNameForm.HighRiskLevel" placeholder="请输入紧急给药途径"></el-input>
+        </el-form-item>
+        <el-form-item label="注册剂型" label-width="110px" prop="register">
+          <el-input v-model="drugGeneNameForm.register" placeholder="请输入注册剂型" ref="register"></el-input>
+        </el-form-item>
+        <el-form-item label="药品本位码" label-width="110px" prop="unit">
+          <el-input v-model="drugGeneNameForm.HighRiskLevel" placeholder="请输入药品本位码"></el-input>
+        </el-form-item>
+        <el-form-item label="最小包装单位" label-width="110px" prop="unit">
+          <el-input v-model="drugGeneNameForm.HighRiskLevel" placeholder="请输入最小包装单位"></el-input>
+        </el-form-item>
+        <el-form-item label="注册规格" label-width="110px" prop="unit">
+          <el-input v-model="drugGeneNameForm.HighRiskLevel" placeholder="请输入注册规格"></el-input>
+        </el-form-item>
+        <el-form-item label="包装材质" label-width="110px" prop="unit">
+          <el-input v-model="drugGeneNameForm.HighRiskLevel" placeholder="请输入包装材质"></el-input>
+        </el-form-item>
+        <el-form-item label="药品企业" label-width="110px" prop="unit">
+          <el-input v-model="drugGeneNameForm.HighRiskLevel" placeholder="请输入药品企业"></el-input>
+        </el-form-item>
+        <el-form-item label="批准文号" label-width="110px" prop="unit">
+          <el-input v-model="drugGeneNameForm.HighRiskLevel" placeholder="请输入批准文号"></el-input>
+        </el-form-item>
+        <el-form-item label="最小制剂单位" label-width="110px" prop="unit">
+          <el-input v-model="drugGeneNameForm.HighRiskLevel" placeholder="请输入最小制剂单位"></el-input>
+        </el-form-item>
+        <el-form-item label="标准注册剂型" label-width="110px" prop="unit">
+          <el-input v-model="drugGeneNameForm.HighRiskLevel" placeholder="请输入标准注册剂型"></el-input>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'DrugGeneNameForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let register = this.$refs.register.value;
+      if (register === '') {
+        callback('请输入注册剂型');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      drugGeneNameForm: {
+        HighRiskLevel: '',
+        register: ''
+      },
+      rules: {
+        register: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+</style>

+ 89 - 0
src/components/cdssManage/knowledge/DrugRegNameForm.vue

@@ -0,0 +1,89 @@
+
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="drugRegNameForm"
+        ref="drugRegNameForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >
+        <el-form-item label="药品高危级别" label-width="110px" prop="planName">
+          <el-select
+            v-model="drugRegNameForm.HighRiskLevel"
+            placeholder="请选择药品高危级别"
+            clearable
+            style="width: 100%"
+          >
+            <el-option label="A级高危" value="A"></el-option>
+            <el-option label="B级高危" value="B"></el-option>
+            <el-option label="C级高危" value="C"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="禁忌给药途径" label-width="110px" prop="unit">
+          <el-input v-model="drugRegNameForm.HighRiskLevel" placeholder="请输入紧急给药途径"></el-input>
+        </el-form-item>
+        <el-form-item label="禁忌性别" label-width="110px" prop="planName">
+          <el-select
+            v-model="drugRegNameForm.tabooGender"
+            placeholder="请选择禁忌性别"
+            clearable
+            style="width: 100%"
+          >
+            <el-option label="男" :value="1"></el-option>
+            <el-option label="女" :value="0"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="结果" label-width="110px" prop="unit">
+          <el-input v-model="drugRegNameForm.HighRiskLevel" placeholder="请输入结果"></el-input>
+        </el-form-item>
+
+        <el-form-item label="名称" label-width="110px" prop="unit">
+          <el-input v-model="drugRegNameForm.HighRiskLevel" placeholder="请输入名称"></el-input>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'DrugRegNameForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let conditionListName = this.$refs.conditionListName.value;
+      if (conditionListName === '') {
+        callback('请输入条件明细');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      drugRegNameForm: {
+        HighRiskLevel: '',
+        tabooGender: ''
+      },
+      rules: {
+        condition: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+</style>

+ 284 - 0
src/components/cdssManage/knowledge/KnowledgeManage.vue

@@ -0,0 +1,284 @@
+<template>
+  <div>
+    <crumbs title="知识图谱标准术语维护">
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item label="术语分类:" class="selectMedicine">
+          <el-select size="mini" v-model="filter.libType" placeholder="请选择" clearable>
+            <el-option
+              v-for="item in terminologyData"
+              :label="item.name"
+              :value="item.orderNo"
+              :key="item.orderNo"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="术语名称:">
+          <el-input size="mini" maxlength="50" v-model="filter.term" placeholder="请输入" clearable></el-input>
+        </el-form-item>
+        <el-form-item label="静态知识标识:">
+          <el-select
+            size="mini"
+            v-model="filter.sexType"
+            placeholder="静态知识标识"
+            clearable
+            style="width: 100%"
+          >
+            <el-option label="有" :value="1"></el-option>
+            <el-option label="无" :value="0"></el-option>
+          </el-select>
+        </el-form-item>
+        <!-- <el-form-item label="状态:" class="selectMedicine">
+          <el-select size="mini" v-model="filter.status" placeholder="请选择" clearable>
+            <el-option v-for="item in stateList" :label="item.name" :value="item.id" :key="item.id"></el-option>
+          </el-select>
+        </el-form-item>-->
+        <el-form-item class="dododo">
+          <el-button size="mini" @click="filterDatas">检索</el-button>
+          <el-button size="mini" type="warning" style="margin:0 10px" @click="addKnowledge">添加标准术语</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div class="contents">
+      <el-table :data="list" border style="width: 100%">
+        <el-table-column type="index" :index="indexMethod" label="编号" width="60"></el-table-column>
+        <el-table-column prop="typeName" label="术语分类" width="120"></el-table-column>
+        <el-table-column prop="name" label="术语名称" :show-overflow-tooltip="true"></el-table-column>
+        <el-table-column prop="title" label="术语拼音" width="240" :show-overflow-tooltip="true"></el-table-column>
+        <el-table-column prop="title" label="静态知识标识" width="240" :show-overflow-tooltip="true"></el-table-column>
+        <el-table-column label="操作" width="140">
+          <template slot-scope="scope">
+            <el-button type="text" size="small" @click="toEditKnowledge(scope.row)">修改</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        :current-page.sync="currentPage"
+        @current-change="currentChange"
+        background
+        :page-size="pageSize"
+        class="pagepage pagepage"
+        :page-sizes="pageSizeArr"
+        @size-change="handleSizeChange"
+        :layout="pageLayout"
+        :total="total"
+      ></el-pagination>
+    </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: 'KnowledgeManage',
+  data: function() {
+    return {
+      list: [],
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      terminologyData: [],
+      searched: false,
+      filter: {
+        term: '',
+        title: '',
+        status: '',
+        libType: ''
+      }
+    };
+  },
+  created() {
+    const that = this;
+    //返回时避免参数未赋值就获取列表
+    setTimeout(function() {
+      that.getDataList();
+      that._getTerminologyData();
+    });
+    // 非首页 编辑页返回 设置 this.currentPage
+    if (Object.keys(this.$route.params).length !== 0) {
+      this.currentPage = this.$route.params.currentPage;
+    }
+  },
+  watch: {
+    filter: {
+      handler: function() {
+        this.searched = false;
+      },
+      deep: true
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next(vm => {
+      //const pm = to.param;
+      Object.assign(vm, to.params);
+      vm.inCurrentPage = to.params.currentPage;
+    });
+  },
+  methods: {
+    _getTerminologyData() {
+      api.getListDicCDSS().then(res => {
+        if (res.data.code === '0') {
+          this.terminologyData = res.data.data && res.data.data['8'];
+        }
+      });
+    },
+
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+    addKnowledge() {
+      const pam = this.searched
+        ? {
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            filter: this.filter
+          }
+        : { currentPage: this.currentPage, pageSize: this.pageSize };
+      this.$router.push({ name: 'AddKnowledge', params: pam });
+    },
+    toEditKnowledge(row) {
+      const pam = this.searched
+        ? {
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            filter: this.filter
+          }
+        : { currentPage: this.currentPage, pageSize: this.pageSize };
+      this.$router.push({
+        name: 'AddKnowledge',
+        params: Object.assign(pam, { data: row, isEdit: true })
+      });
+    },
+    filterDatas() {
+      this.currentPage = 1;
+      this.getDataList();
+    },
+    getDataList(isTurnPage) {
+      const param = this.getFilterItems(isTurnPage);
+      this.searched = true;
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
+      loading.close();
+      return; // 接口联调
+      api
+        .getConceptKnowledgeList(param)
+        .then(res => {
+          loading.close();
+          if (res.data.code == '0') {
+            this.list = res.data.data;
+          }
+        })
+        .catch(error => {
+          if (error.code === '900010001') {
+            return false;
+          }
+          console.log(error);
+        });
+    },
+    clearFilter() {
+      this.filter = {
+        term: '',
+        title: '',
+        status: '',
+        libType: ''
+      };
+    },
+    getFilterItems(isTurnPage) {
+      //翻页时筛选条件没点确定则清空
+      if (isTurnPage && !this.searched) {
+        this.clearFilter();
+      }
+      const param = {
+        name: this.filter.term.trim(),
+        title: this.filter.title,
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        status: this.filter.status,
+        type: this.filter.libType
+      };
+      return param;
+    },
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.pageSize + index + 1;
+    },
+    currentChange(next) {
+      this.currentPage = next;
+      this.getDataList(true);
+    },
+    warning(msg, type) {
+      this.$message({
+        showClose: true,
+        message: msg,
+        type: type || 'warning'
+      });
+    }
+  }
+};
+</script>
+
+<style lang="less" scoped>
+@import '../../../less/admin.less';
+.status-span {
+  font-size: 12px;
+  margin-right: 10px;
+  color: unset;
+}
+.dododo {
+  margin-top: 1px !important;
+}
+.pagepage {
+  .el-input.el-input--mini.el-input--suffix input {
+    height: 28px;
+    line-height: 28px;
+  }
+  .el-pagination__sizes {
+    margin-right: 20px !important;
+  }
+}
+.el-message-box {
+  /deep/ .cancelBtn {
+    background-color: #d7d7d7;
+    border-color: transparent;
+  }
+  /deep/ .delBtn {
+    background-color: #ff545b !important;
+    border-color: transparent !important;
+  }
+  /deep/ .confirmBtn1 {
+    position: relative;
+    right: 0px !important;
+  }
+}
+
+.selectMedicine {
+  // /deep/ .el-input__suffix-inner {
+  //   position: relative;
+  //   top: -1px;
+  // }
+  /deep/ .el-icon-circle-close {
+    position: relative;
+    // top: -2px;
+    left: 12px;
+  }
+}
+
+body {
+  .el-tooltip__popper {
+    max-width: 400px;
+  }
+}
+</style>

+ 64 - 0
src/components/cdssManage/knowledge/LabPacsForm.vue

@@ -0,0 +1,64 @@
+
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="labPacsForm"
+        ref="labPacsForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >
+        <el-form-item label="单位" label-width="110px" prop="unit">
+          <el-input v-model="labPacsForm.planName" placeholder="请输入单位"></el-input>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'LabPacsForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let conditionListName = this.$refs.conditionListName.value;
+      if (conditionListName === '') {
+        callback('请输入条件明细');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      labPacsForm: {
+        unit: ''
+      },
+      rules: {
+        condition: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+.turns {
+  text-align: center;
+  height: 40px;
+  line-height: 40px;
+  color: #dcdfe6;
+}
+</style>

+ 73 - 0
src/components/cdssManage/knowledge/OperationForm.vue

@@ -0,0 +1,73 @@
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="operationForm"
+        ref="operationForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >
+        <el-form-item label="手术级别" label-width="110px" prop="operationLevel">
+          <el-select
+            v-model="operationForm.operationLevel"
+            placeholder="请选择手术级别"
+            style="width: 100%"
+            ref="operationLevel"
+            clearable
+          >
+            <el-option label="1" :value="1"></el-option>
+            <el-option label="2" :value="2"></el-option>
+            <el-option label="3" :value="3"></el-option>
+            <el-option label="4" :value="4"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="高危条件" label-width="110px" prop="planName" v-if="operationForm.operationLevel === 2">
+          <!-- <el-input v-model="operationForm.highRisk" disabled></el-input> -->
+          <span style="paddingLeft: 12px; color: #606266">{{operationForm.highRisk}}</span>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'OperationForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let operationLevel = this.$refs.operationLevel.value;
+      if (operationLevel === '') {
+        callback('请选择手术级别');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      operationForm: {
+        operationLevel: 1,
+        highRisk: '未设置'
+      },
+      rules: {
+        operationLevel: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+</style>

+ 89 - 0
src/components/cdssManage/knowledge/PacsDetailForm.vue

@@ -0,0 +1,89 @@
+
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="pacsDetailForm"
+        ref="pacsDetailForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >
+        <el-form-item label="单位" label-width="110px" prop="unit">
+          <el-input v-model="pacsDetailForm.planName" placeholder="请输入单位"></el-input>
+        </el-form-item>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="数值范围" label-width="110px" prop="planName">
+              <el-input v-model="pacsDetailForm.planName" placeholder="请输入最小值"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="2">
+            <div class="turns">——</div>
+          </el-col>
+          <el-col :span="10">
+            <el-form-item label label-width="0px" prop="planName">
+              <el-input v-model="pacsDetailForm.planName" placeholder="请输入最大值"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-form-item label label-width="110px" prop="unit">
+          <el-radio-group v-model="pacsDetailForm.range">
+            <el-radio label="范围内"></el-radio>
+            <el-radio label="范围外"></el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="实验室检查指标" label-width="110px" prop="unit">
+          <el-input v-model="pacsDetailForm.planName" placeholder="请输入实验室检查指标"></el-input>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'PacsDetailForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let conditionListName = this.$refs.conditionListName.value;
+      if (conditionListName === '') {
+        callback('请输入条件明细');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      pacsDetailForm: {
+        unit: '',
+        range: ''
+      },
+      rules: {
+        condition: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+.turns {
+  text-align: center;
+  height: 40px;
+  line-height: 40px;
+  color: #dcdfe6;
+}
+</style>

+ 66 - 0
src/components/cdssManage/knowledge/PacsForm.vue

@@ -0,0 +1,66 @@
+
+<template>
+  <el-row>
+    <el-col :span="24">
+      <el-form
+        :model="pacsForm"
+        ref="pacsForm"
+        class="sub-form"
+        :validate-on-rule-change="false"
+        :rules="rules"
+      >
+        <el-form-item label="性别" label-width="110px" prop="planName">
+          <el-select
+            v-model="pacsForm.sexType"
+            placeholder="请选择性别"
+            clearable
+            style="width: 100%"
+          >
+            <el-option label="男" :value="1"></el-option>
+            <el-option label="女" :value="2"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import api from '@api/icss.js';
+export default {
+  name: 'PacsForm',
+  props: [],
+  data() {
+    let checkFrequency = (rule, value, callback) => {
+      let conditionListName = this.$refs.conditionListName.value;
+      if (conditionListName === '') {
+        callback('请输入条件明细');
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      pacsForm: {
+        sexType: ''
+      },
+      rules: {
+        condition: [
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
+        ]
+      }
+    };
+  },
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {}
+};
+</script>
+
+<style lang="less" scoped>
+</style>

+ 5 - 0
src/routes.js

@@ -171,6 +171,9 @@ import AddDept from '@components/cdssManage/dept/AddDept.vue';  //科室关联
 import Plan from '@components/cdssManage/plan/Plan.vue';  //关联维护设置
 import Plan from '@components/cdssManage/plan/Plan.vue';  //关联维护设置
 import AddPlan from '@components/cdssManage/plan/AddPlan.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 HospitalCDSS from '@components/cdssManage/hospital/Hospital.vue';  //医院管理
 import AddHospitalCDSS from '@components/cdssManage/hospital/AddHospital.vue';  //医院管理--新增编辑
 import AddHospitalCDSS from '@components/cdssManage/hospital/AddHospital.vue';  //医院管理--新增编辑
 import HospitalUserCDSS from '@components/cdssManage/hospitalUser/HospitalUser.vue';  //医院用户管理
 import HospitalUserCDSS from '@components/cdssManage/hospitalUser/HospitalUser.vue';  //医院用户管理
@@ -405,6 +408,8 @@ export default [
       // { path: 'YXSYK-GLWH', component: Correlation, name: 'Correlation' }, //关联维护设置
       // { path: 'YXSYK-GLWH', component: Correlation, name: 'Correlation' }, //关联维护设置
       { path: 'LT-CDSSSJWH-DZBLFAPZ', component: Plan, name: 'Plan' }, //电子病历方案配置
       { path: 'LT-CDSSSJWH-DZBLFAPZ', component: Plan, name: 'Plan' }, //电子病历方案配置
       { path: 'LT-CDSSSJWH-DZBLFAPZEDIT', component: AddPlan, name: 'AddPlan' }, //电子病历方案配置--新增编辑
       { path: 'LT-CDSSSJWH-DZBLFAPZEDIT', component: AddPlan, name: 'AddPlan' }, //电子病历方案配置--新增编辑
+      { path: 'LT-CDSSSJWH-ZSTPBZSYWH', component: KnowledgeManage, name: 'KnowledgeManage' }, //知识图谱标准术语维护
+      { path: 'LT-CDSSSJWH-ZSTPBZSYWHEDIT', component: AddKnowledge, name: 'AddKnowledge' }, //知识图谱标准术语维护--新增编辑
 
 
       { path: 'LT-CDSSSJWH-YYGL', component: HospitalCDSS, name: 'HospitalCDSS' }, //医院管理
       { path: 'LT-CDSSSJWH-YYGL', component: HospitalCDSS, name: 'HospitalCDSS' }, //医院管理
       { path: 'LT-CDSSSJWH-YYGLEDIT', component: AddHospitalCDSS, name: 'AddHospitalCDSS' }, //医院管理--新增编辑
       { path: 'LT-CDSSSJWH-YYGLEDIT', component: AddHospitalCDSS, name: 'AddHospitalCDSS' }, //医院管理--新增编辑