Procházet zdrojové kódy

标准病例-新增

zhouna před 5 roky
rodič
revize
5605ef139f

+ 68 - 287
src/components/qualityControl/AddStandardRecord.vue

@@ -1,31 +1,24 @@
 <template>
     <div>
-        <crumbs :title="title" :param="$route.params" linkTo="BaseField"></crumbs>
+        <crumbs :title="title" :param="$route.params" linkTo="StandardRecord"></crumbs>
         <div class="contents">
             <div class="content">
             <el-form ref="form" :label-position="labelPosition" label-width="125px" :model="form" :rules="rules">
                 <el-form-item label="所属医院:" prop="hospitalId">
                     <el-select v-model="form.hospitalId"
                                placeholder="请选择"
-                                 @change="changeHospital"
                                size="small">
                         <el-option
                                 v-for="item in hisTypes"
-                                :key="item.val"
+                                :key="item.id"
                                 :label="item.name"
-                                :value="Number(item.val)">
+                                :value="item.id">
                         </el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="病人住院序号:" prop="hospitalNo">
-                    <el-select v-model="hospitalNo" filterable placeholder="请选择">
-                        <el-option
-                        v-for="item in hospitalNoList"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
-                        </el-option>
-                    </el-select>  <span>搜索</span>
+                <el-form-item label="病人住院序号:" prop="behospitalCode">
+                    <el-input size="mini" v-model.trim="form.behospitalCode" placeholder="病人住院序号" clearable style="width: 200px;"></el-input>
+                    <el-button size="mini" @click="searchList" style="margin-left: 20px;height: 30px;">搜索</el-button>
                 </el-form-item>
                 <div>
                     <el-table
@@ -35,108 +28,47 @@
                 <el-table-column
                         :resizable = "false"
                         label="所属医院"
-                        prop="id"
+                        prop="hospitalName"
                         >
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
-                        prop="name"
+                        prop="behospitalCode"
                         label="病人住院序号"
                         width="180">
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
-                        prop="modeId"
-                        :formatter="moduleFormatter"
-                        label="病案号">
-                </el-table-column>
-                
-                <el-table-column
-                        :resizable = "false"
-                        prop="hospitalId"
-                        :formatter="hisFormatter"
+                        prop="name"
                         label="病人姓名">
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
-                        prop="modeId"
-                        :formatter="moduleFormatter"
+                        prop="sex"
                         label="性别">
                 </el-table-column>
-                <el-table-column
-                        :resizable = "false"
-                        prop="modeId"
-                        :formatter="moduleFormatter"
-                        label="年龄">
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
-                        prop="modeId"
-                        :formatter="moduleFormatter"
+                        prop="behospitalDate"
+                        :formatter="dateFormatter"
                         label="入院日期">
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
-                        prop="modeId"
-                        :formatter="moduleFormatter"
+                        prop="leaveHospitalDate"
+                        :formatter="dateFormatter"
                         label="出院日期">
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
-                        prop="modeId"
-                        :formatter="moduleFormatter"
+                        prop="gmtModified"
+                        :formatter="dateFormatter"
                         label="加入时间">
                 </el-table-column>
             </el-table>
-                    
                 </div>
-                <!-- <el-form-item label="所属模块:" prop="modeId">
-                    <el-select v-model="form.modeId"
-                               placeholder="请选择"
-                               @change="changeModule"
-                               size="small">
-                        <el-option
-                                v-for="item in fieldTypes"
-                                :key="item.val"
-                                :label="item.name"
-                                :value="Number(item.val)">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="备注:" prop="tagName">
-                    <el-input type="text" placeholder="请输入备注" v-model.trim="form.tagName"></el-input>
-                </el-form-item>
-                <el-form-item label="显示名称:" prop="name">
-                    <el-input type="text" placeholder="请输入显示名称" v-model.trim="form.name"></el-input>
-                </el-form-item>
-                <el-form-item label="取值字段:" prop="value">
-                    <el-input type="text" placeholder="请输入取值字段" v-model.trim="form.val"></el-input>
-                    
-                </el-form-item>
-                <el-form-item label="关联缺陷条目:" prop="casesEntryIds">
-                    <el-select filterable
-                               multiple
-                               v-model="casesEIds"
-                               placeholder="请选择"
-                               class="big-select"
-                               size="small">
-                        <el-option
-                                v-for="item in flawList"
-                                :key="item.id"
-                                :label="item.name"
-                                :value="String(item.id)">
-                        </el-option>
-                    </el-select>
-                    
-                </el-form-item>
-                <el-form-item>
-                    <el-checkbox v-model="form.monoLine" :true-label="Number(1)" :false-label="Number(0)">独占一行</el-checkbox>
-                    <el-checkbox v-model="form.addLine" :true-label="Number(1)" :false-label="Number(0)">内容换行</el-checkbox>
-                    <el-checkbox v-model="form.position" :true-label="Number(1)" :false-label="Number(0)">靠右显示</el-checkbox>
-                    <el-checkbox v-model="form.bold" :true-label="Number(1)" :false-label="Number(0)">内容加粗</el-checkbox>
-                    <el-checkbox v-model="form.retract" :true-label="Number(1)" :false-label="Number(0)">内容缩进</el-checkbox>
-                </el-form-item> -->
-                <el-button class="disclButn" size="small" type="primary" :disabled = 'saveDisable' @click="comfirn('form')">确定</el-button>
+                <el-button class="disclButn" size="small" type="primary" :disabled = 'saveDisable' @click="comfirn">确定</el-button>
             </el-form>
         </div>
         </div>
@@ -156,236 +88,77 @@
         title:'标准病历-新增',
         casesEIds:'',
         form:{
-          modeId:"",
           hospitalId:"",
-          hospitalNo:"", //病人住院序号
-          name:'',
-          val:'',
-          tagName:'',
-          monoLine:0,
-          addLine:0,
-          bold:0,
-          position:0,
-          retract:0,
-          casesEntryIds:'',
-          quesCasesEntryVOList:[]
+          behospitalCode:"", //病人住院序号
         },
         id:null,
         rules:{
           hospitalId:{ required: true, message: '请选择所属医院', trigger: ['blur', 'change']},
-          hospitalNo:{ required: true, message: '请选择病人住院序号', trigger: ['blur', 'change']},
+          behospitalCode:{ required: true, message: '请输入病人住院序号', trigger: ['blur', 'change']},
           /*name:[{ required: true, message: '请输入显示名称',trigger: ['blur', 'change'] }],*/
         },
         copy:null,
-        saveDisable: false,  //保存按钮禁止点击
+        saveDisable: true,  //保存按钮禁止点击
         flawList:[],
         hisTypes:[],
-        hospitalNoList:[], //住院序号列表
-        fieldTypes:[],
       }
     },
     created(){
-      this.getAllTypes();
-      let {isCopy,info} = this.$route.params;
-      this.copy=isCopy;
-      if(info){
-        const infoCopy =  Object.assign({},info);
-        isCopy?infoCopy.id="":"";
-        // infoCopy.casesEntryIds?this.casesEIds = infoCopy.casesEntryIds.split(","):'';
-        let tmpArr = [],tmpArr1 = []
-        for(let i = 0;i < infoCopy.quesCasesEntryDTOList.length;i++){
-          let obj = {
-            name:infoCopy.quesCasesEntryDTOList[i].casesEntryName,
-            casesEntryName:infoCopy.quesCasesEntryDTOList[i].casesEntryName,
-            id:infoCopy.quesCasesEntryDTOList[i].casesEntryId,
-            casesEntryId:infoCopy.quesCasesEntryDTOList[i].casesEntryId
-          }
-          tmpArr.push(""+infoCopy.quesCasesEntryDTOList[i].casesEntryId)
-          tmpArr1.push(obj)
-        }
-        infoCopy.quesCasesEntryDTOList?this.casesEIds = tmpArr:'';
-        infoCopy.quesCasesEntryVOList = [...tmpArr1];
-        this.title=isCopy?"字段映射维护-复制字段映射":'字段映射维护-修改字段映射';
-        this.form = infoCopy;
-        this.getQcFlawList(tmpArr1);
-      }else{
-        let hospitalId = localStorage.getItem("qcSelectHospital")&&Number(localStorage.getItem("qcSelectHospital")) || "";
-        let modeId = localStorage.getItem("qcSelectModule")&&Number(localStorage.getItem("qcSelectModule"))  || "";
-    
-        let qcSelecttModuleNme = localStorage.getItem("qcSelectModuleName");
-        this.form.hospitalId = hospitalId
-        this.form.modeId = modeId
-        this.form.tagName = qcSelecttModuleNme
-        this.getQcFlawList()
-      }
+      let {hisTypes} = this.$route.params;
+      this.hisTypes = hisTypes;
     },
     watch:{
-      "casesEIds":function(val){
-        this.form.casesEntryIds = val.join(",");
-        let tmp = []
-        for(let i = 0;i < val.length;i++){
-          let obj = {
-            casesEntryId:val[i],
-            id:val[i],
-          }
-          tmp.push(obj)
-        }
-        this.form.quesCasesEntryVOList = tmp
-      }
     },
     methods:{
-      changeHospital(val){
-         localStorage.setItem("qcSelectHospital",val);
-        const mName=localStorage.getItem("qcSelectModuleName");
-        const qcSelecttModuleNme  = this.hisTypes.find(item => Number(item.val) === val).name + '-'+(mName||"");
-        localStorage.setItem("qcSelectModuleName",qcSelecttModuleNme);
-        this.getQcFlawList()
-        this.form.modeId=""
-        this.form.quesCasesEntryDTOList =[]
-        this.casesEIds=[]
+      dateFormatter(item,prop,it){
+        return it.substr(0,10);
       },
-      changeModule(val){
-         localStorage.setItem("qcSelectModule",val);
-         const shis=localStorage.getItem("qcSelectHospital");
-         const qcSelecttModuleNme  = this.hisTypes.find(item => +item.val === +shis).name + '-'+this.fieldTypes.find(item => Number(item.val) === val).name + '-';
-         this.form.tagName = qcSelecttModuleNme
-          localStorage.setItem("qcSelectModuleName",qcSelecttModuleNme);
-        this.getQcFlawList()
-         this.form.quesCasesEntryDTOList =[]
-        this.casesEIds=[]
-      },
-      getQcFlawList(val){
-        const { hospitalId, modeId } = this.form
-        if(hospitalId === '' || modeId === ''){
+      searchList(){
+        const { hospitalId, behospitalCode } = this.form;
+        if(!hospitalId){
+          this.warning("请选择所属医院");
           return
         }
-        const param={modeId:modeId,hospitalId:hospitalId,name:"",size:500};
-        api.getQcFlawList(param).then((res)=>{
+        if(!behospitalCode){
+          this.warning("请输入病人住院号");
+          return
+        }
+        const param={ hospitalId, behospitalCode };
+        api.findStdRecord(param).then((res)=>{
           if(res.data.code==="0") {
             const data = res.data.data;
-            this.flawList = []
-            this.flawList = data.records;
-            /*let info = this.$route.params.info;
-            if(info){
-              const infoCopy =  Object.assign({},this.form);
-
-              
-              for(let i = 0;i < infoCopy.quesCasesEntryDTOList.length;i++){
-                let obj = {
-                  name:infoCopy.quesCasesEntryDTOList[i].casesEntryName,
-                  casesEntryName:infoCopy.quesCasesEntryDTOList[i].casesEntryName,
-                  id:infoCopy.quesCasesEntryDTOList[i].casesEntryId,
-                  casesEntryId:infoCopy.quesCasesEntryDTOList[i].casesEntryId
-              }
-              this.flawList.unshift(obj)
+            this.medicalRecordlist = [data];
+            if(data.status===1){
+              this.saveDisable=true;
+              this.warning("病历此前已被添加");
+            }else{
+              this.saveDisable=false;
             }
-            }*/
           }else{
-            this.warning("获取缺陷条目失败");
+            this.saveDisable=true;
+            this.warning(res.data.msg);
           }
         });
       },
-      getAllTypes(){
-        if(localStorage.getItem("qcModuleTypes")){
-          this.hisTypes = JSON.parse(localStorage.getItem("qcHospitalTypes"));
-          this.fieldTypes = JSON.parse(localStorage.getItem("qcModuleTypes"));
-          return ;
-        }
-        //获取枚举信息
-        api.getQcTypes().then((res)=>{
-          if(res.data.code==="0"){
-            const data = res.data.data;
-            localStorage.setItem("qcFieldTypes",JSON.stringify(data[11]));
-            localStorage.setItem("qcModuleTypes",JSON.stringify(data[12]));
-            localStorage.setItem("qcHospitalTypes",JSON.stringify(data[13]));
+      comfirn(){
+        const {hospitalId,behospitalCode} = this.form;
+        const params = Object.assign({},this.form);
+        this.saveDisable = true;  //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
+        api.updateStdRecord(params).then((res)=>{
+          if(res.data.code==0){
+            this.$message({
+              message:"添加成功",
+              type:'success'
+            });
+            this.$router.push({name: 'StandardRecord'});
           }else{
-            this.warning("获取枚举信息失败");
+            this.$message({
+              message:res.data.msg,
+              type:'warning'
+            });
           }
-        });
-      },
-      comfirn(form){
-        /*if(!this.form.name.trim() || !this.form.refreshTime.trim()){
-          this.$message({
-            message:'请填写相关内容',
-            type:'warning'
-          });
-          return
-        }*/
-        const {hospitalId,modeId,tagName} = this.form
-        if(!hospitalId){
-          this.warning("请选择所属医院");
-          return
-        }
-         if(!modeId){
-          this.warning("请选择所属模块");
-          return
-        }
-         if(!tagName){
-          this.warning("请输入备注");
-          return
-        }
-        // this.$refs[form].validate((valid) => {
-          // if (valid) {
-            const { val } = this.form
-            let regex = /(?<=【)(.+?)(?=】)/g;
-             let regex2 = /[^\u4e00-\u9fa5|a-zA-Z0-9]+/
-            const matchVal = val.match(regex) ||[]
-            let illegalCode = false
-            for(let i = 0; i < matchVal.length; i++){
-              if(regex2.test(matchVal[i])){
-                illegalCode = true
-              }
-            }
-            if(illegalCode){
-              this.warning("取值字段【】含有非法字符")
-              return;
-            }
-
-            if(this.form.id){//修改
-              const param = Object.assign({},this.form);
-              this.saveDisable = true;  //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
-              api.addFieldMatch({questionWrapper:param}).then((res)=>{
-                if(res.data.code==0){
-                  this.$message({
-                    message:"修改成功",
-                    type:'success'
-                  });
-                  //返回带搜索条件的首页
-                  this.$router.push({
-                    name: 'BaseField',
-                    params: Object.assign({}, this.$route.params, {currentPage: 1})
-                  });
-                }else{
-                  this.$message({
-                    message:res.data.msg,
-                    type:'warning'
-                  });
-                }
-                this.saveDisable = false
-              })
-            }else{//添加
-              const params = Object.assign({},this.form);
-              this.saveDisable = true;  //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
-              api.addFieldMatch({questionWrapper:params}).then((res)=>{
-                if(res.data.code==0){
-                  this.$message({
-                    message:"添加成功",
-                    type:'success'
-                  });
-                  this.$router.push({name: 'BaseField'});
-                }else{
-                  this.$message({
-                    message:res.data.msg,
-                    type:'warning'
-                  });
-                }
-                this.saveDisable = false
-              })
-            }
-          // } else {
-          //   return false;
-          // }
-        // });
+          this.saveDisable = false;
+        })
       },
       warning(msg, type,time) {
           this.$message({
@@ -409,7 +182,7 @@
 <style lang="less" scoped>
     .content {
         background: #fff;
-        padding: 20px 20px 50px;
+        padding: 20px 20px 80px;
         color: #545455;
         min-width: 980px;
         position: relative;
@@ -421,6 +194,7 @@
               .el-input__inner{
                     height: 30px;
                     line-height: 30px;
+                  width: 200px;
               }
             }
     .el-form-item{
@@ -429,4 +203,11 @@
     .el-select.big-select{
         width: 360px;
     }
+    .disclButn{
+        left: 49%;
+        bottom: 20px;
+    }
+    .el-button.is-disabled, .el-button.is-disabled:focus, .el-button.is-disabled:hover{
+        color: #fff;
+    }
 </style>

+ 47 - 16
src/components/qualityControl/StandardRecord.vue

@@ -1,7 +1,12 @@
 <template>
     <div class="standardRecordWrapper">
         <crumbs title="标准病历维护">
-            <el-form :inline="true" class="demo-form-inline">
+            <el-form :inline="true" class="demo-form-inline" style="max-width: 870px;text-align: right;">
+                <el-form-item label="所属医院:">
+                    <el-select size="mini" v-model="filter.hospitalId" placeholder="所属医院" clearable>
+                        <el-option v-for="item in hisTypes" :label="item.name" :value="item.id" :key="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
               <el-form-item label="病人住院序号:">
                     <el-input size="mini" v-model.trim="filter.behospitalCode" placeholder="病人住院序号" clearable></el-input>
                 </el-form-item>
@@ -75,16 +80,19 @@
                 <el-table-column
                         :resizable = "false"
                         prop="behospitalDate"
+                        :formatter="dateFormatter"
                         label="入院日期">
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
                         prop="leaveHospitalDate"
+                        :formatter="dateFormatter"
                         label="出院日期">
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
                         prop="gmtModified"
+                        :formatter="dateFormatter"
                         label="加入时间">
                 </el-table-column>
                 <el-table-column
@@ -120,9 +128,11 @@
     data: function() {
       return {
         list: [],
+        hisTypes:[],
         moduleList:[],
         searched: false,
         filter: {
+          hospitalId:'',
           behospitalCode: '',
           deptId:'',
           name: '',
@@ -139,9 +149,7 @@
     created() {
       const _this=this;
       setTimeout(function(){
-        _this.getAllTypes().then(()=>{
-          _this.getDataList()
-        })
+        _this.getAllTypes()
       },100);
 
     },
@@ -161,16 +169,27 @@
       })
     },
     methods: {
+      dateFormatter(item,prop,it){
+        return it.substr(0,10);
+      },
       getAllTypes(){
-          //获取枚举信息
-          return api.getStdDeptList({}).then((res)=>{
-              if(res.data.code==="0"){
-                  const data = res.data.data;
-                  this.moduleList=data;
-              }else{
-                  this.warning("获取科室列表失败");
-              }
-          });
+        api.getRecordHopitalList().then((res)=>{
+          if(res.data.code==="0"){
+            const data = res.data.data;
+            this.hisTypes =data;
+          }else{
+            this.warning("获取医院列表失败");
+          }
+        });
+        api.getStdDeptList({}).then((res)=>{
+            if(res.data.code==="0"){
+                const data = res.data.data;
+                this.moduleList=data;
+            }else{
+                this.warning("获取科室列表失败");
+            }
+        });
+        this.getDataList();
       },
       handleSizeChange(val){
         this.pageSize = val;
@@ -208,8 +227,9 @@
         const pam = this.searched ? {
           currentPage: this.currentPage,
           pageSize:this.pageSize,
-          filter: this.filter
-        } : {currentPage: this.currentPage,pageSize:this.pageSize};
+          filter: this.filter,
+          hisTypes:this.hisTypes
+        } : {currentPage: this.currentPage,pageSize:this.pageSize,hisTypes:this.hisTypes};
         this.$router.push({
           name: 'AddStandardRecord',
           params: pam
@@ -241,6 +261,7 @@
       },
       clearFilter(){
         this.filter={
+          hospitalId:'',
           behospitalCode: '',
           deptId:'',
           name: '',
@@ -253,10 +274,11 @@
         if(isTurnPage&&!this.searched){
           this.clearFilter();
         };
-        const {behospitalCode, deptId, name,date1,date2} = this.filter;
+        const {hospitalId,behospitalCode, deptId, name,date1,date2} = this.filter;
         const param = {
           current: this.inCurrentPage||this.currentPage,
           size: this.pageSize,
+          hospitalId,
           deptId,
           name,
           behospitalCode,
@@ -349,4 +371,13 @@
         line-height: 28px;
     }
   }
+  div.container{
+      height: 90px!important;
+  }
+  .standardRecordWrapper>.contents{
+      padding:120px 20px 0;
+  }
+  .standardRecordWrapper .el-form-item{
+      margin-bottom: 0;
+  }
 </style>