|
@@ -1,142 +1,74 @@
|
|
|
<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
|
|
|
:data="medicalRecordlist"
|
|
|
border
|
|
|
style="width: 100%">
|
|
|
- <el-table-column
|
|
|
+ <!--<el-table-column
|
|
|
:resizable = "false"
|
|
|
label="所属医院"
|
|
|
- prop="id"
|
|
|
+ prop="hospitalName"
|
|
|
>
|
|
|
- </el-table-column>
|
|
|
+ </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,91 @@
|
|
|
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;
|
|
|
+ if(!hisTypes){
|
|
|
+ this.getHisTypes();
|
|
|
+ return;
|
|
|
}
|
|
|
+ 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=[]
|
|
|
- },
|
|
|
- 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 === ''){
|
|
|
- return
|
|
|
- }
|
|
|
- const param={modeId:modeId,hospitalId:hospitalId,name:"",size:500};
|
|
|
- api.getQcFlawList(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)
|
|
|
- }
|
|
|
- }*/
|
|
|
- }else{
|
|
|
- this.warning("获取缺陷条目失败");
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- getAllTypes(){
|
|
|
- if(localStorage.getItem("qcModuleTypes")){
|
|
|
- this.hisTypes = JSON.parse(localStorage.getItem("qcHospitalTypes"));
|
|
|
- this.fieldTypes = JSON.parse(localStorage.getItem("qcModuleTypes"));
|
|
|
- return ;
|
|
|
- }
|
|
|
- //获取枚举信息
|
|
|
- api.getQcTypes().then((res)=>{
|
|
|
+ getHisTypes(){
|
|
|
+ api.getRecordHopitalList().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]));
|
|
|
+ this.hisTypes =data;
|
|
|
}else{
|
|
|
- this.warning("获取枚举信息失败");
|
|
|
+ this.warning("获取医院列表失败");
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
- comfirn(form){
|
|
|
- /*if(!this.form.name.trim() || !this.form.refreshTime.trim()){
|
|
|
- this.$message({
|
|
|
- message:'请填写相关内容',
|
|
|
- type:'warning'
|
|
|
- });
|
|
|
- return
|
|
|
- }*/
|
|
|
- const {hospitalId,modeId,tagName} = this.form
|
|
|
+ dateFormatter(item,prop,it){
|
|
|
+ return it.substr(0,10);
|
|
|
+ },
|
|
|
+ searchList(){
|
|
|
+ const { hospitalId, behospitalCode } = this.form;
|
|
|
if(!hospitalId){
|
|
|
this.warning("请选择所属医院");
|
|
|
return
|
|
|
}
|
|
|
- if(!modeId){
|
|
|
- this.warning("请选择所属模块");
|
|
|
- return
|
|
|
- }
|
|
|
- if(!tagName){
|
|
|
- this.warning("请输入备注");
|
|
|
+ if(!behospitalCode){
|
|
|
+ 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
|
|
|
- })
|
|
|
+ const param={ hospitalId, behospitalCode };
|
|
|
+ api.findStdRecord(param).then((res)=>{
|
|
|
+ if(res.data.code==="0") {
|
|
|
+ const data = res.data.data;
|
|
|
+ this.medicalRecordlist = [data];
|
|
|
+ if(data.status===1){
|
|
|
+ this.saveDisable=true;
|
|
|
+ this.warning("病历此前已被添加");
|
|
|
+ }else{
|
|
|
+ this.saveDisable=false;
|
|
|
}
|
|
|
- // } else {
|
|
|
- // return false;
|
|
|
- // }
|
|
|
- // });
|
|
|
+ }else{
|
|
|
+ this.saveDisable=true;
|
|
|
+ this.warning(res.data.msg);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ 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.$message({
|
|
|
+ message:res.data.msg,
|
|
|
+ type:'warning'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.saveDisable = false;
|
|
|
+ })
|
|
|
},
|
|
|
warning(msg, type,time) {
|
|
|
this.$message({
|
|
@@ -409,7 +196,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 +208,7 @@
|
|
|
.el-input__inner{
|
|
|
height: 30px;
|
|
|
line-height: 30px;
|
|
|
+ width: 200px;
|
|
|
}
|
|
|
}
|
|
|
.el-form-item{
|
|
@@ -429,4 +217,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>
|