Browse Source

Merge remote-tracking branch 'origin/testContentAdd' into testedMerge

# Conflicts:
#	src/api/config.js
#	src/routes.js
zhouna 5 years ago
parent
commit
cf900ffd0f

+ 4 - 0
src/api/config.js

@@ -278,6 +278,10 @@ export default {
       'ruleApplyDelete':'/api/knowledgeman/ruleApp/removeRuleApp',
       'ruleDelete':'/api/knowledgeman/rulePub/removeRulePub',
 
+      'getRecord':'/api/mrman/arRechome/getAllList',//病历管理
+      'getRecordDetail':'/api/mrman/arRechome/getBABLContent',//病历管理--病历详情
+      'saveRecord':'/api/mrman/arRechome/saveBABLContent',  //保存病例
+      'getTypes':'/api/mrman/getMrEnumsData',//枚举类型
   },
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',

+ 18 - 0
src/api/records.js

@@ -0,0 +1,18 @@
+import axios from 'axios';
+import config from '@api/config.js';
+
+const urls = config.urls;
+export default {
+  getRecordList:(param)=>{
+    return axios.post(urls.getRecord,param);
+  },
+  getRecordDetail:(param)=>{
+    return axios.post(urls.getRecordDetail,param);
+  },
+  saveRecord:(param)=>{
+    return axios.post(urls.saveRecord,param);
+  },
+  getTypes:(param)=>{
+    return axios.post(urls.getTypes,param);
+  },
+}

+ 269 - 0
src/components/recordManager/addRecord.vue

@@ -0,0 +1,269 @@
+<template>
+    <div>
+        <crumbs :title="title" :param="$route.params" linkTo="RecordManager"></crumbs>
+        <div class="contents">
+            <div class="content">
+                <el-form ref="form" :label-position="labelPosition" label-width="125px" class="add-record-form" :model="form">
+                    <el-form-item label="性别:" prop="sexType">
+                        <el-select v-model="form.brbaxb"
+                                   placeholder="请选择"
+                                   size="small">
+                            <el-option
+                                    v-for="item in sexType"
+                                    :key="String(item.key)"
+                                    :label="item.name"
+                                    :value="String(item.key)">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="血型:" prop="brbaxx">
+                        <el-select v-model="form.brbaxx"
+                                   placeholder="请选择"
+                                   size="small">
+                            <el-option
+                                    v-for="item in bloodType"
+                                    :key="String(item.key)"
+                                    :label="item.name"
+                                    :value="String(item.key)">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="RH型:" prop="brbarh">
+                        <el-select v-model="form.brbarh"
+                                   placeholder="请选择"
+                                   size="small">
+                            <el-option
+                                    v-for="item in rhType"
+                                    :key="String(item.key)"
+                                    :label="item.name"
+                                    :value="String(item.key)">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <p class="sub-title">门(急)诊诊断:</p>
+                    <el-form-item label="主要诊断:" prop="mjzzdmc">
+                        <p v-for="i in form.mjzzyzdList" class="treatments">
+                            <el-input v-model="i.zdjbmc" placeholder="请输入主要诊断"></el-input>
+                            <el-input v-model="i.jbdmid" placeholder="请输诊断编码"></el-input>
+                        </p>
+                    </el-form-item>
+                    <el-form-item label="其他诊断:" prop="mjzzdmc">
+                        <p v-for="i in form.mjzqtzdList" class="treatments">
+                            <el-input v-model="i.zdjbmc" placeholder="请输入其他诊断"></el-input>
+                            <el-input v-model="i.jbdmid" placeholder="请输诊断编码"></el-input>
+                        </p>
+                    </el-form-item>
+                    <p class="sub-title">出院诊断:</p>
+                    <el-form-item label="主要诊断:" prop="zyzyzdmc">
+                        <p v-for="i in form.zyzyzdList" class="treatments">
+                            <el-input v-model="i.zdjbmc" placeholder="请输入门(急)诊诊断"></el-input>
+                            <el-input v-model="i.jbdmid" placeholder="请输诊断编码"></el-input>
+                        </p>
+                    </el-form-item>
+                    <el-form-item label="其他诊断:" prop="zyqtzdmc">
+                        <p v-for="i in form.zyqtzdList" class="treatments">
+                            <el-input v-model="i.zdjbmc" placeholder="请输入门(急)诊诊断"></el-input>
+                            <el-input v-model="i.jbdmid" placeholder="请输诊断编码"></el-input>
+                        </p>
+                        <!--<el-input v-model="form.zyqtzdmc" placeholder="请输入次要诊断"></el-input>-->
+                    </el-form-item>
+                    <el-form-item label="病例记录:">
+                        <el-tabs tab-position="left">
+                            <el-tab-pane :label="i.bljlmc" v-for="i in form.zybljlList">
+                                <el-input
+                                        type="textarea"
+                                        :rows="20"
+                                        v-model="i.bljlnr"
+                                        placeholder="请输入内容">
+                                </el-input>
+                            </el-tab-pane>
+                        </el-tabs>
+                    </el-form-item>
+                    <p class="oper">
+                        <el-button style="margin-right: 30px" size="small" type="primary" @click="comfirn('form')">确定</el-button>
+                        <el-button size="small" @click="cancel">取消</el-button>
+                    </p>
+                </el-form>
+            </div>
+        </div>
+    </div>
+</template>
+<script type="text/javascript">
+  import api from '@api/records.js';
+  export default {
+    name:'AddRecord',
+    data(){
+      return{
+        // data:{},
+        labelPosition:'left',
+        /*zybljlList:[
+          {name:'aaa',content:'333333'},
+          {name:'vvv',content:'333sa'}
+        ],*/
+        sexType:[],
+        bloodType:[],
+        rhType:[],
+        title:'测试病例记录维护-修改测试病例记录',
+        form:{
+          brbaxb:'',
+          brbaxx:'',
+          brbarh:'',
+          mjzzdmc:'',
+          zyzyzdmc:'',
+          zyqtzdmc:'',
+          zybljlList:[]
+        },
+        id:null,
+      }
+    },
+    created(){
+      let info = this.$route.params;
+      this.getTypes();
+      if(Object.keys(info).length>0){
+        this.basyid = info.basyid;
+        this.brzyid = info.brzyid;
+        this.title = "测试病例记录维护-修改测试病例记录";
+        this.getDetail(info.basyid,info.brzyid);
+      }
+    },
+    methods:{
+      getTypes(){
+        api.getTypes().then((res)=>{
+          const result = res.data;
+          if(result.code==0){
+            this.sexType = result.data.sexEnum;
+            this.bloodType = result.data.bloodTypeEnum;
+            this.rhType = result.data.rhTypeEnum;
+          }else{
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
+          }
+        })
+      },
+      getDetail(syid,zyid){
+        api.getRecordDetail({basyid:syid,brzyid:zyid}).then((res)=>{
+          const result = res.data;
+          if(result.code==0){
+            this.form = result.data;
+          }else{
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
+          }
+        })
+      },
+      cancel(){
+        this.$router.push({
+          name: 'RecordManager',
+          params: Object.assign({}, this.$route.params)
+        });
+      },
+      comfirn(form){
+        /*if(!this.form.name.trim() || !this.form.refreshTime.trim()){
+          this.$message({
+            message:'请填写相关内容',
+            type:'warning'
+          });
+          return
+        }*/
+        /*this.$refs[form].validate((valid) => {
+          if (valid) {*/
+            if(this.basyid){//修改
+              const param = Object.assign({},this.form,{basyid:this.basyid,brzyid:this.brzyid});
+              api.saveRecord(param).then((res)=>{
+                if(res.data.code==0){
+                  this.$message({
+                    message:"修改成功",
+                    type:'success'
+                  });
+                  //返回带搜索条件的首页
+                  this.$router.push({
+                    name: 'RecordManager',
+                    params: Object.assign({}, this.$route.params)
+                  });
+                }else{
+                  this.$message({
+                    message:res.data.msg,
+                    type:'warning'
+                  });
+                }
+              })
+            }else{//添加
+              // 复制时把list多余字段过滤掉,如id等
+              const detail = this.list;
+              let copyDetail=[];
+              let item={};
+              if(detail && detail.length>0){
+                for(let i=0; i<detail.length; i++){
+                  item.title = detail[i].title;
+                  item.description = detail[i].description;
+                  copyDetail.push(item);
+                  item={};
+                }
+              }
+              const params = Object.assign({},this.form);
+              // api.addVersInfo(this.form).then((res)=>{
+              api.saveRecord(params).then((res)=>{
+                if(res.data.code==0){
+                  this.$message({
+                    message:"添加成功",
+                    type:'success'
+                  })
+                  // this.$router.push({path: 'LT-GBBXXWH-BBXXWH'});
+                  this.$router.push({name: 'RecordManager'});
+                }else{
+                  this.$message({
+                    message:res.data.msg,
+                    type:'warning'
+                  });
+                }
+              })
+            }
+          /*} else {
+            return false;
+          }
+        });*/
+      },
+    }
+  }
+</script>
+<style lang="less">
+    @import "../../less/admin.less";
+    .content{
+        background: #fff;
+        padding: 20px 20px 50px;
+        color: #545455;
+        min-width: 980px;
+        position: relative;
+    .short-inp{
+        width: 200px;
+    }
+    .sub-title{
+        font-weight: bold;
+        font-size: 16px;
+        margin-bottom: 20px;
+    }
+    .oper{
+        text-align: right;
+    }
+    .treatments{
+    .el-input{
+        width:200px;
+        display: inline-block;
+    }
+    .el-input:first-child{
+        margin-right:20px;
+        &:before{
+             content: '诊断名称:';
+         }
+    }
+    .el-input:last-child:before{
+        content: '诊断编码:';
+    }
+    }
+    }
+
+</style>

+ 238 - 0
src/components/recordManager/recordList.vue

@@ -0,0 +1,238 @@
+<template>
+    <div>
+        <crumbs title="测试病例记录维护" style="min-width: 980px">
+            <el-form :inline="true" class="demo-form-inline">
+                <!--<el-form-item label="病人住院ID:">
+                   <el-input size="mini" v-model="filter.brzyid" placeholder="病人住院ID" clearable></el-input>
+               </el-form-item>
+               <!-form-item>
+                   <el-button size="mini" @click="filterDatas">查找</el-button>
+                   <el-button size="mini" type="warning" @click="addRelation">添加测试病例</el-button>
+               </el-form-item>-->
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table
+                    :data="list"
+                    border
+                    style="width: 100%">
+                <el-table-column
+                        :resizable = "false"
+                        prop="basyid"
+                        label="病案首页ID"
+                        width="180">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="brzyid"
+                        label="病人住院ID"
+                        width="180">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="brbaxm"
+                        label="姓名">
+                </el-table-column>
+                <!--<el-table-column
+                        :resizable = "false"
+                        prop="operName"
+                        label="性别">
+                </el-table-column>-->
+                <el-table-column
+                        :resizable = "false"
+                        prop="operate"
+                        label="操作"
+                        width="180">
+                    <template slot-scope="scope">
+                        <el-button  @click="editRecord(scope.row)" type="text" size="small">修改</el-button>
+                        <span style="margin:0 3px;">|</span>
+                        <el-button @click="editRecord(scope.row,true)" type="text" size="small">查看</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <!--<div class="pagination">
+                <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/records.js';
+  /*import config from '@api/config.js';
+  import utils from '@api/utils.js';*/
+
+  export default {
+    name: 'RecordManager',   //慢病指标值关联维护
+    data: function() {
+      return {
+        list: [],
+        searched: false,
+        filter:{
+          brzyid:'',
+        },
+        /*currentPage: 1,
+        pageSize: config.pageSize,
+        pageSizeArr:config.pageSizeArr,
+        pageLayout:config.pageLayout,
+        total: 0,*/
+      }
+    },
+    created() {
+      const that = this;
+      //返回时避免参数未赋值就获取列表
+      setTimeout(function(){
+        that.getDataList();
+      });
+    },
+    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: {
+      /*handleSizeChange(val){
+        this.pageSize = val;
+        this.currentPage = utils.getCurrentPage(this.currentPage, this.total, this.pageSize);
+        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)'
+        });
+        api.getRecordList(param).then((res) => {
+          loading.close();
+          if(res.data.code == '0') {
+            this.list = res.data.data;
+            this.total = res.data.data.length;
+            /*if(this.inCurrentPage!==undefined){
+              this.currentPage=this.inCurrentPage;
+              this.inCurrentPage = undefined;
+            }*/
+          }
+        })
+      },
+      filterDatas() {
+        //this.currentPage = 1;
+        this.getDataList();
+      },
+      editRecord(row,isShow) {
+        const pam = this.searched ? {
+          /*currentPage: this.currentPage,
+          pageSize:this.pageSize,*/
+          filter: this.filter,
+          basyid:row.basyid,
+          brzyid:row.brzyid
+        } : {
+          basyid:row.basyid,
+          brzyid:row.brzyid
+          /*currentPage: this.currentPage,
+          pageSize:this.pageSize*/};
+        this.$router.push({
+          name:isShow?'ShowRecord':'AddRecord',
+          params: pam
+        })
+      },
+      /*currentChange(next) {
+        this.currentPage = next;
+        this.getDataList(true);
+      },*/
+      getFilterItems(isTurnPage) {
+        //翻页时筛选条件没点确定则清空
+        if(isTurnPage&&!this.searched){
+          this.filter.brzyid='';
+        };
+        const param = {
+          /*current: this.inCurrentPage||this.currentPage,
+          size: this.pageSize,*/
+          name:this.filter.brzyid.trim()
+        };
+        return param;
+      },
+      /*warning(msg,type){
+        this.$message({
+          showClose: true,
+          message:msg,
+          type:type||'warning'
+        })
+      },
+      showConfirmDialog(msg,resolve){
+        this.$alert(msg, '提示', {
+          confirmButtonText: '确定',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {});
+      },
+      showDelDialog(row){
+        const param = {
+          "conceptId": row.conceptId,
+          "isDeleted": row.isDeleted=== 'N'?'Y':'N',
+          "relationId": 18
+        };
+        const txt = row.isDeleted=== 'N'?'是否删除该关联?':'是否重新启用该关联?';
+        this.showConfirmDialog(txt,()=>{
+          api.delAssaySon(param).then((res)=>{
+            if(res.data.code=='0'){
+              if(!this.searched){
+                //未点确认时清空搜索条件
+                this.filter={
+                  brzyid:'',
+                };
+              }
+              if(row.isDeleted !== 'N'){       //恢复成功后跳转到筛选条件的首页
+                this.currentPage = 1;
+              }
+              this.getDataList();
+              this.warning(res.data.msg || '操作成功','success');
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
+      }*/
+    }
+  }
+</script>
+
+
+<style lang="less">
+    @import "../../less/admin.less";
+    .delete{
+        color: red;
+    }
+    .delete:hover {
+        color: red;
+    }
+    .review{
+        color: #22ccc8;
+    }
+    .pagination {
+        min-width: 1010px;
+    }
+</style>

+ 191 - 0
src/components/recordManager/showRecord.vue

@@ -0,0 +1,191 @@
+<template>
+    <div>
+        <crumbs :title="title" :param="$route.params" linkTo="RecordManager"></crumbs>
+        <div class="contents">
+            <div class="content">
+                <el-form ref="form" :label-position="labelPosition" label-width="125px" class="add-record-form" :model="form">
+                    <el-form-item label="性别:" prop="sexType">
+                        <el-select v-model="form.brbaxb"
+                                   :disabled="true"
+                                   placeholder="请选择"
+                                   size="small">
+                            <el-option
+                                    v-for="item in sexType"
+                                    :key="String(item.key)"
+                                    :label="item.name"
+                                    :value="String(item.key)">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="血型:" prop="brbaxx">
+                        <el-select v-model="form.brbaxx"
+                                   :disabled="true"
+                                   placeholder="请选择"
+                                   size="small">
+                            <el-option
+                                    v-for="item in bloodType"
+                                    :key="String(item.key)"
+                                    :label="item.name"
+                                    :value="String(item.key)">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="RH型:" prop="brbarh">
+                        <el-select v-model="form.brbarh"
+                                   :disabled="true"
+                                   placeholder="请选择"
+                                   size="small">
+                            <el-option
+                                    v-for="item in rhType"
+                                    :key="String(item.key)"
+                                    :label="item.name"
+                                    :value="String(item.key)">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <p class="sub-title">门(急)诊诊断:</p>
+                    <el-form-item label="主要诊断:">
+                        <span v-for="i in form.mjzzyzdList" class="treatments">
+                            {{i.zdjbmc}}({{i.jbdmid}}),
+                        </span>
+                    </el-form-item>
+                    <el-form-item label="其他诊断:">
+                        <span v-for="i in form.mjzqtzdList" class="treatments">
+                            {{i.zdjbmc}}({{i.jbdmid}}),
+                        </span>
+                    </el-form-item>
+                    <p class="sub-title">出院诊断:</p>
+                    <el-form-item label="主要诊断:" prop="zyzyzdmc">
+                        <span v-for="i in form.zyzyzdList" class="treatments">
+                            {{i.zdjbmc}}({{i.jbdmid}})
+                        </span>
+                    </el-form-item>
+                    <el-form-item label="其他诊断:" prop="zyqtzdmc">
+                        <span v-for="i in form.zyqtzdList" class="treatments">
+                            {{i.zdjbmc}}({{i.jbdmid}})
+                        </span>
+                        <!--<el-input v-model="form.zyqtzdmc" placeholder="请输入次要诊断"></el-input>-->
+                    </el-form-item>
+                    <el-form-item label="病例记录:">
+                        <el-tabs tab-position="left">
+                            <el-tab-pane :label="i.bljlmc" v-for="i in form.zybljlList">
+                                {{i.bljlnr}}
+                            </el-tab-pane>
+                        </el-tabs>
+                    </el-form-item>
+                    <p class="oper">
+                        <el-button size="small" @click="cancel">返回</el-button>
+                    </p>
+                </el-form>
+            </div>
+        </div>
+    </div>
+</template>
+<script type="text/javascript">
+  import api from '@api/records.js';
+  export default {
+    name:'AddRecord',
+    data(){
+      return{
+        // data:{},
+        labelPosition:'left',
+        /*zybljlList:[
+          {name:'aaa',content:'333333'},
+          {name:'vvv',content:'333sa'}
+        ],*/
+        sexType:[],
+        bloodType:[],
+        rhType:[],
+        title:'测试病例记录维护-修改测试病例记录',
+        form:{
+          brbaxb:'',
+          brbaxx:'',
+          brbarh:'',
+          mjzzdmc:'',
+          zyzyzdmc:'',
+          zyqtzdmc:'',
+          zybljlList:[]
+        },
+        id:null,
+      }
+    },
+    created(){
+      let info = this.$route.params;
+      this.getTypes();
+      if(Object.keys(info).length>0){
+        this.basyid = info.basyid;
+        this.brzyid = info.brzyid;
+        this.title = "测试病例记录维护-查看测试病例记录";
+        this.getDetail(info.basyid,info.brzyid);
+      }
+    },
+    methods:{
+      getTypes(){
+        api.getTypes().then((res)=>{
+          const result = res.data;
+          if(result.code==0){
+            this.sexType = result.data.sexEnum;
+            this.bloodType = result.data.bloodTypeEnum;
+            this.rhType = result.data.rhTypeEnum;
+          }else{
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
+          }
+        })
+      },
+      getDetail(syid,zyid){
+        api.getRecordDetail({basyid:syid,brzyid:zyid}).then((res)=>{
+          const result = res.data;
+          if(result.code==0){
+            this.form = result.data;
+          }else{
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
+          }
+        })
+      },
+      cancel(){
+        this.$router.push({
+          name: 'RecordManager',
+          params: Object.assign({}, this.$route.params)
+        });
+      },
+    }
+  }
+</script>
+<style lang="less">
+    @import "../../less/admin.less";
+    .content{
+        background: #fff;
+        padding: 20px 20px 50px;
+        color: #545455;
+        min-width: 980px;
+        position: relative;
+    .short-inp{
+        width: 200px;
+    }
+    .oper{
+        text-align: right;
+    }
+    .treatments{
+    .el-input{
+        width:200px;
+        display: inline-block;
+    }
+    .el-input:first-child{
+        margin-right:20px;
+        &:before{
+             content: '诊断名称:';
+         }
+    }
+    .el-input:last-child:before{
+        content: '诊断编码:';
+    }
+    }
+    }
+
+</style>

+ 7 - 0
src/routes.js

@@ -117,6 +117,10 @@ import RuleApply from '@components/RuleManager/RuleApply.vue';
 import AddRule from '@components/RuleManager/AddRule.vue';
 import AddRuleApply from '@components/RuleManager/AddRuleApply.vue';
 
+import RecordManager from '@components/recordManager/recordList.vue';
+import AddRecord from '@components/recordManager/addRecord.vue';
+import ShowRecord from '@components/recordManager/showRecord.vue';
+
 export default [
   {
     path: '/',
@@ -293,6 +297,9 @@ export default [
       {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},//添加病历
     ]
   }
 ]