pengjun 2 years ago
parent
commit
1387da0519
  1. 1
      src/components/doctorCheck/CheckItemList.vue
  2. 146
      src/components/occDisease/OccDisease.vue
  3. 343
      src/components/occDisease/OccDiseaseBase.vue
  4. 241
      src/components/occDisease/OccDiseaseConclusion.vue
  5. 209
      src/components/occDisease/OccDiseaseHistory.vue
  6. 172
      src/components/occDisease/OccDiseasePoison.vue
  7. 164
      src/components/occDisease/OccDiseaseSymptom.vue
  8. 25
      src/components/patientRegister/PatientRegisterEdit.vue
  9. 1
      src/components/patientRegister/PatientRegisterList.vue
  10. 50
      src/components/report/BtnReport.vue
  11. 36
      src/components/report/PatientRegisterListNobtn.vue
  12. 31
      src/components/sumDoctorCheck/ButtonList.vue
  13. 34
      src/store/index.js

1
src/components/doctorCheck/CheckItemList.vue

@ -1,6 +1,5 @@
<template>
<div>
<el-table :data="doctorCheck.checkItemList" style="width: 100%" :height="tableHeight" border highlight-current-row
@row-click="rowClick" size="small">
<el-table-column prop="itemName" label="项目" width="220" />

146
src/components/occDisease/OccDisease.vue

@ -0,0 +1,146 @@
<template>
<div style="margin-top: -15px;">
<el-tabs v-model="tabChoosed" style="height: 510px;">
<el-tab-pane label="基本信息" name="1">
<OccDiseaseBase :patientRegisterId="patientRegisterId" />
</el-tab-pane>
<el-tab-pane label="毒害因素" name="2">
<OccDiseasePoison :patientRegisterId="patientRegisterId" />
</el-tab-pane>
<el-tab-pane label="职业史" name="3">
<OccDiseaseHistory :patientRegisterId="patientRegisterId" />
</el-tab-pane>
<el-tab-pane label="症状" name="4">
<OccDiseaseSymptom :patientRegisterId="patientRegisterId" />
</el-tab-pane>
<el-tab-pane label="体征" name="5">
<CheckDetails :patientRegisterId="patientRegisterId" :tabChoosed="'2'" />
</el-tab-pane>
<el-tab-pane label="检查结论" name="6">
<OccDiseaseConclusion :patientRegisterId="patientRegisterId" />
</el-tab-pane>
</el-tabs>
<div style="display: flex;justify-content: space-between;">
<div></div>
<div>
<el-button class="commonbutton" @click="btnOk">确定</el-button>
<el-button class="commonbutton" @click="btnClose">关闭</el-button>
</div>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import OccDiseaseBase from "./OccDiseaseBase.vue";
import OccDiseasePoison from "./OccDiseasePoison.vue";
import OccDiseaseHistory from "./OccDiseaseHistory.vue";
import OccDiseaseSymptom from "./OccDiseaseSymptom.vue";
import CheckDetails from "../../components/sumDoctorCheck/CheckDetails.vue";
import OccDiseaseConclusion from "./OccDiseaseConclusion.vue";
export default {
components: {
OccDiseaseBase,
OccDiseasePoison,
OccDiseaseHistory,
OccDiseaseSymptom,
CheckDetails,
OccDiseaseConclusion
},
props: ["patientRegisterId"],
data() {
return {
tabChoosed: "1",
};
},
created() {
if (this.$route.query.patient_register) {
this.dataTransOpts.tableS.patient_register = this.$route.query.patient_register
} else {
this.dataTransOpts.tableS.patient_register = { id: '', patientRegisterNo: '' }
this.dataTransOpts.tableS.register_check = { id: '' }
}
},
//
mounted() {
this.dictInit();
this.initOccDiseaseData()
},
computed: {
...mapState([
"window",
"dict",
"dataTransOpts",
"dialogWin"
]),
},
methods: {
//
dictInit() {
//
postapi("/api/app/Poison/GetPoisonWithTypeList").then((res) => {
if (res.code > -1) {
this.dict.postion = res.data;
this.dict.postionList = []
this.dict.postion.forEach(e => {
e.poisonDtos.forEach(e2 => {
this.dict.postionList.push({
poisonTypeName: e.poisonTypeName,
id: e2.id,
displayName: e2.displayName,
simpleCode: e2.simpleCode
})
});
});
}
});
},
initOccDiseaseData() {
this.dataTransOpts.refresh.sumDoctor.M++ //
},
//
btnOk() {
},
//
btnClose() {
this.dialogWin.OccDisease = false
},
},
//()
watch: {
"dataTransOpts.plus.OccDisease": {
// immediate:true,
handler(newVal, oldVal) {
console.log(`watch 职业病 newVal: ${newVal}, oldVal: ${oldVal} `);
if (newVal != oldVal) this.initOccDiseaseData()
}
},
},
};
</script>
<style scoped>
@import '../../assets/css/global_card.css';
@import '../../assets/css/global_input.css';
@import '../../assets/css/global_table.css';
@import '../../assets/css/global.css';
</style>

343
src/components/occDisease/OccDiseaseBase.vue

@ -0,0 +1,343 @@
<template>
<div style="height: 468px;overflow-y: auto;">
<el-form :model="form" ref="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="6">
<el-form-item prop="ocCheckTypeId" label="检查类别">
<el-select v-model="form.ocCheckTypeId" size="small">
<el-option v-for="item in dict.occCheckType" :key="item.value" :label="item.displayName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工种">
<el-input v-model="form.jobType" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="totalWorkTime" label="总工龄">
<el-input v-model="form.totalWorkTime" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="poisonWorkTime" label="接害工龄">
<el-input v-model="form.poisonWorkTime" size="small"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="一、既往病史:" label-width="105px">
<el-input type="textarea" v-model="form.previousHistory" size="small"
:autosize="{ minRows: 1, maxRows: 10 }"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="二、急慢性职业病史:病名" label-width="175px">
<el-input v-model="form.occupationalDisease" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="diagnosisDate" label="诊断日期">
<el-date-picker v-model="form.diagnosisDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="诊断日期" size="small" style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item prop="diagnosisHospital" label="诊断单位" label-width="175px">
<el-input v-model="form.diagnosisHospital" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="recovery" label="是否痊愈">
<el-checkbox v-model="form.recovery" true-label="Y" false-label="N"></el-checkbox>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="三、月经史: 初经" label-width="120px">
<el-input type="number" v-model="form.firstMenstruation" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="menstruationTimeLength" label="经期">
<el-input type="number" v-model="form.menstruationTimeLength" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="menstruationCycle" label="周期">
<el-input type="number" v-model="form.menstruationCycle" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="是否停经" label-width="120px">
<el-checkbox v-model="form.menstruationFlag" true-label="Y" false-label="N"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item prop="menstruationEndAge" label="停经年龄">
<el-input type="number" v-model="form.menstruationEndAge" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item prop="lastMenstrualPeriodDate" label="末次月经日期" label-width="120px">
<el-date-picker v-model="form.lastMenstrualPeriodDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="末次月经日期" size="small" style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="四、生育史:现有子女" label-width="145px">
<el-input type="number" v-model="form.childrenNum" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="流产" label-width="50px">
<el-input type="number" v-model="form.abortionTimes" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="早产" label-width="50px">
<el-input type="number" v-model="form.prematureBirthTimes" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="死产" label-width="50px">
<el-input type="number" v-model="form.stillbirthTimes" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="异常胎" label-width="60px">
<el-input type="number" v-model="form.abnormalTimes" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="五、烟酒史:吸烟" label-width="115px">
<el-radio-group v-model="form.smokeFlag">
<el-radio :label="3">不吸</el-radio>
<el-radio :label="6">偶尔吸</el-radio>
<el-radio :label="9">经常吸</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="频次">
<el-input type="number" v-model="form.smokeNum" size="small">
<template slot="append">/</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="烟龄">
<el-input type="number" v-model="form.smokeYears" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="喝酒" label-width="115px">
<el-radio-group v-model="form.drinkFlag">
<el-radio :label="3">不喝</el-radio>
<el-radio :label="6">偶尔喝</el-radio>
<el-radio :label="9">经常喝</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="频次">
<el-input type="number" v-model="form.drinkNum" size="small">
<template slot="append">ml/</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="酒龄">
<el-input type="number" v-model="form.drinkYears" size="small">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="六、其他:" label-width="75px">
<el-input type="textarea" v-model="form.other" size="small"
:autosize="{ minRows: 1, maxRows: 10 }"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="创建者">
<el-input v-model="form.creatorName" disabled size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="创建时间" label-width="80px" style="margin-left:-10px;">
<el-date-picker v-model="form.creationTime" type="datetime" size="small" style="width: 100%" disabled />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="修改者">
<el-input v-model="form.creatorName" disabled size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="修改时间" label-width="80px" style="margin-left:-10px;">
<el-date-picker v-model="form.lastModificationTime" type="datetime" size="small" style="width: 100%"
disabled />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc";
export default {
components: {},
props: ["refFunc","patientRegisterId"],
data() {
return {
pagePriv: {
routeUrlorPageName: 'customerOrg', //
privs: [] //
},
form: { //
id: "",
patientRegisterId: '', //
ocCheckTypeId: '', //
jobType:'', //
totalWorkTime:'', //
poisonWorkTime:'', //
previousHistory:'', //
occupationalDisease:'', //
diagnosisDate:'', //
diagnosisHospital:'', //
recovery:'', //
firstMenstruation:'', //
menstruationTimeLength:'', //
menstruationCycle:'', //
menstruationFlag:'', //
menstruationEndAge:'', //
lastMenstrualPeriodDate:'', //
childrenNum:'', //
abortionTimes:'', //
prematureBirthTimes:'', //
stillbirthTimes:'', //
abnormalTimes:'', //
smokeFlag:'', //
smokeNum:'', //
smokeYears:'', //
drinkFlag:'', //
drinkNum:'', //
drinkYears:'', //
other:'', //
},
formInit: {},
contactMethodList: [], //
Methodtypes: [
//{ value: '',label: '' },
{ value: "0", label: "电话" },
{ value: "1", label: "邮箱" },
],
rules: {
displayName: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
},
};
},
created() {
//
let userPriv = window.sessionStorage.getItem('userPriv')
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
this.formInit = deepCopy(this.form)
},
//
mounted() {
this.dictInit()
},
computed: {
...mapState(["window", "dict", "dialogWin", "dataTransOpts"]),
},
methods: {
moment, checkPagePriv,
//
dictInit() {
//
postapi("/api/app/OcCheckType/GetList").then((res) => {
if (res.code > -1) {
this.dict.occCheckType = res.data;
}
});
},
},
watch: {
// id
"dataTransOpts.refresh.contact_person.S": {
// immediate: true,
handler(newVal, oldVal) {
console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`);
this.getFormData(this.dataTransOpts.tableS.contact_person.id)
}
},
},
};
</script>
<style scoped>
@import '../../assets/css/global_table.css';
@import '../../assets/css/global_input.css';
@import '../../assets/css/global_form.css';
@import '../../assets/css/global_dialog.css';
.btnClass {
width: 110px;
}
</style>

241
src/components/occDisease/OccDiseaseConclusion.vue

@ -0,0 +1,241 @@
<template>
<div>
<table width="100%">
<tr>
<td width="50%">职业性异常</td>
<td width="50%">建议</td>
</tr>
<tr>
<td><el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 8, maxRows: 8 }"></el-input></td>
<td><el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 8, maxRows: 8 }"></el-input></td>
</tr>
<tr>
<td width="50%">非职业性异常</td>
<td width="50%">建议</td>
</tr>
<tr>
<td><el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 8, maxRows: 8 }"></el-input></td>
<td><el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 8, maxRows: 8 }"></el-input></td>
</tr>
</table>
<div>处理意见</div>
<div>
<el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 2, maxRows: 2 }"></el-input>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc";
export default {
components: {},
props: ["refFunc"],
data() {
return {
pagePriv: {
routeUrlorPageName: 'customerOrg', //
privs: [] //
},
form: { //
id: "",
customerOrgId: '',
creationTime: null,
lastModificationTime: null,
creatorName: "",
lastModifierName: "",
displayName: "",
title: "",
remark: "",
},
formInit: {},
contactMethodList: [], //
Methodtypes: [
//{ value: '',label: '' },
{ value: "0", label: "电话" },
{ value: "1", label: "邮箱" },
],
rules: {
displayName: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
},
};
},
created() {
//
let userPriv = window.sessionStorage.getItem('userPriv')
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
this.formInit = deepCopy(this.form)
},
//
mounted() {
this.getFormData(this.dataTransOpts.tableS.contact_person.id)
},
computed: {
...mapState(["window", "customerOrg", "dialogWin", "dataTransOpts"]),
},
methods: {
moment, checkPagePriv,
//
getFormData(id) {
if (!id) {
this.form = deepCopy(this.formInit)
this.form.customerOrgId = this.dataTransOpts.tableS.customer_org.id
this.contactMethodList = []
return
}
getapi(`/api/app/contact-person/${id}`)
.then(res => {
if (res.code != -1) {
this.form = deepCopy(res.data)
this.getContactMethodList(res.data.id)
}
})
},
//
//api/app/contact-method/in-contact-person-id?ContactPersonId=3a0c08ad-4304-138b-d9e6-a7338739dfc4' \
getContactMethodList(ContactPersonId) {
if (!ContactPersonId) {
this.contactMethodList = []
return
}
getapi("/api/app/contact-method/in-contact-person-id", {
ContactPersonId,
}).then(res => {
//console.log('res.data',res.data)
if (res.code != -1) this.contactMethodList = res.data;
});
},
//
deleteRow(index) {
this.$confirm("此操作确定后将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}).then(() => {
this.contactMethodList.splice(index, 1);
//this.submit('form');
}).catch((err) => {
if (err == 'cancel') {
this.$message.info({ showClose: true, message: "已取消删除" });
}
});
},
//
submit(formName) {
let body = {
customerOrgId: "",
displayName: "",
title: "",
remark: "",
};
this.$refs[formName].validate((valid, fields) => {
if (!valid) {
this.$message.warning({ showClose: true, message: fields[Object.keys(fields)[0]][0].message });
return false;
}
objCopy(this.form, body);
let contactMethod = {
contactPersonId: this.form.id,
details: this.contactMethodList
}
console.log("body,contactMethod", body, contactMethod);
if (!this.form.id) {
postapi("/api/app/contact-person", body)
.then((res) => {
//console.log('api/app/contact-person')
if (res.code != -1) {
this.form = res.data
this.dataTransOpts.tableS.contact_person.id = res.data.id
this.refFunc(['curChooseRow'], res.data)
contactMethod.contactPersonId = res.data.id
return postapi('/api/app/contactmethod/createmany', contactMethod);
}
})
.then((res) => {
//console.log('api/app/contact-method/many')
if (res && res.code != -1) {
console.log("操作成功!");
this.dialogWin.ContactPersonEdit = false
}
});
} else {
putapi(`/api/app/contact-person/${this.form.id}`, body)
.then((res) => {
if (res.code != -1) {
this.refFunc(['curChooseRow'], this.form)
return postapi('/api/app/contactmethod/createmany', contactMethod);
}
})
.then((res) => {
//console.log('api/app/contact-method/many')
//this.getContactPersonList(this.customerOrgId); //
if (res && res.code != -1) {
console.log("操作成功!");
this.dialogWin.ContactPersonEdit = false
}
});
}
})
},
//
addMethod() {
this.contactMethodList.push({
contactMethodValue: "",
contactMethodType: "0",
contactPersonId: this.form.id,
});
},
},
watch: {
// id
"dataTransOpts.refresh.contact_person.S": {
// immediate: true,
handler(newVal, oldVal) {
console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`);
this.getFormData(this.dataTransOpts.tableS.contact_person.id)
}
},
// 'customerOrgId' (newVal,oldVal){
// console.log('watch customerOrgId',newVal,oldVal)
// if(newVal != oldVal){
// this.personId = ''
// }
// }
},
};
</script>
<style scoped>
@import '../../assets/css/global_table.css';
@import '../../assets/css/global_input.css';
@import '../../assets/css/global_form.css';
@import '../../assets/css/global_dialog.css';
.btnClass {
width: 110px;
}
</style>

209
src/components/occDisease/OccDiseaseHistory.vue

@ -0,0 +1,209 @@
<template>
<div>
<el-table :data="dataTransOpts.tableM.patient_occupational_history" border height="465" row-key="id" size="small"
highlight-current-row ref="contactMethod">
<el-table-column prop="beginDate" label="开始日期" min-width="100">
<template slot-scope="scope">
<el-date-picker v-model="scope.row.beginDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="开始日期" size="small" style="width: 100%" />
</template>
</el-table-column>
<el-table-column prop="endDate" label="结束日期" min-width="100">
<template slot-scope="scope">
<el-date-picker v-model="scope.row.endDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="结束日期" size="small" style="width: 100%" />
</template>
</el-table-column>
<el-table-column prop="org" label="工作单位" min-width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.org" size="small" />
</template>
</el-table-column>
<el-table-column prop="workShop" label="车间" min-width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.workShop" size="small" />
</template>
</el-table-column>
<el-table-column prop="workType" label="工种" min-width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.workType" size="small" />
</template>
</el-table-column>
<el-table-column prop="poison" label="毒害因素" min-width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.poison" size="small" style="width:220px" clearable filterable
:filter-method="filterMethod">
<el-option-group v-for="group in postion" :key="group.poisonTypeName" :label="group.poisonTypeName">
<el-option v-for="item in group.poisonDtos" :key="item.id" :label="item.displayName" :value="item.displayName" />
</el-option-group>
</el-select>
</template>
</el-table-column>
<el-table-column prop="protectiveMeasures" label="防护措施" min-width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.protectiveMeasures" size="small">
<el-option v-for="item in protectiveMeasures" :key="item.id" :label="item.displayName" :value="item.displayName" />
</el-select>
</template>
</el-table-column>
<el-table-column prop="lastModifierId" label="修改人员" min-width="80" align="center" />
<el-table-column prop="lastModificationTime" label="修改时间" min-width="150" align="center" />
<el-table-column prop="creatorId" label="创建人员" min-width="80" align="center" />
<el-table-column prop="creationTime" label="创建时间" min-width="150" align="center" />
<el-table-column fixed="right" width="30" align="center">
<template slot="header">
<div style="display: flex;justify-content:space-between;">
<div></div>
<div>
<i class="el-icon-plus" @click="btnAdd" style="font-size: 24px;color: blue;cursor:pointer;"></i>
</div>
</div>
</template>
<template slot-scope="scope">
<i class="el-icon-delete" @click="deleteRow(scope.$index)"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc";
export default {
components: {},
props: ["refFunc"],
data() {
return {
pagePriv: {
routeUrlorPageName: 'customerOrg', //
privs: [] //
},
protectiveMeasures:[],
postion: [
{
poisonTypeName: "职业史",
poisonDtos: [
{
id: "3a12ad8e-3b84-75a2-415e-c03ed69bda66",
displayName: "噪声,粉尘",
simpleCode: "ZS,FC"
}
]
}
], //
};
},
created() {
//
let userPriv = window.sessionStorage.getItem('userPriv')
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
},
//
mounted() {
this.dictInit()
},
computed: {
...mapState(["window", "dict", "dialogWin", "dataTransOpts"]),
},
methods: {
moment, checkPagePriv,
dictInit() {
//
postapi("/api/app/ProtectiveMeasures/GetList").then((res) => {
if (res.code > -1) {
this.protectiveMeasures = res.data;
}
});
},
filterMethod(v) {
if (v) {
let lv = v.toUpperCase()
let postion = []
let postionList = this.dict.postionList.filter(e => {
return e.poisonTypeName.indexOf(lv) > -1 || e.displayName.indexOf(lv) > -1 || e.simpleCode.indexOf(lv) > -1
})
postionList.forEach(e => {
let lfind = arrayExistObj(postion, "poisonTypeName", e.poisonTypeName)
if (lfind == -1) {
postion.push({ poisonTypeName: e.poisonTypeName, poisonDtos: [{ id: e.id, displayName: e.displayName, simpleCode: e.simpleCode }] })
} else {
postion[lfind]['poisonDtos'].push({ id: e.id, displayName: e.displayName, simpleCode: e.simpleCode })
}
});
this.postion = postion
} else {
this.postion = deepCopy(this.dict.postion)
}
console.log('filterMethod', v)
},
//
deleteRow(index) {
this.$confirm("此操作确定后将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}).then(() => {
this.dataTransOpts.tableM.patient_occupational_history.splice(index, 1);
//this.submit('form');
}).catch((err) => {
if (err != 'cancel') {
this.$message.info({ showClose: true, message: err });
}
});
},
//
btnAdd() {
this.postion = deepCopy(this.dict.postion)
this.dataTransOpts.tableM.patient_occupational_history.push({
patientRegisterId: this.patientRegisterId
});
},
},
watch: {
// id
// "dataTransOpts.refresh.contact_person.S": {
// // immediate: true,
// handler(newVal, oldVal) {
// console.log(`watch newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`);
// this.getFormData(this.dataTransOpts.tableS.contact_person.id)
// }
// },
},
};
</script>
<style scoped>
@import '../../assets/css/global_table.css';
@import '../../assets/css/global_input.css';
@import '../../assets/css/global_form.css';
@import '../../assets/css/global_dialog.css';
::v-deep .el-select-group__title {
font-size: 15px;
background-color: #EEEEEE;
color: black;
font-weight: 700;
}
.btnClass {
width: 110px;
}
</style>

172
src/components/occDisease/OccDiseasePoison.vue

@ -0,0 +1,172 @@
<template>
<div>
<el-table :data="dataTransOpts.tableM.patient_poison" border height="465" row-key="id" size="small"
highlight-current-row ref="patientPoison">
<el-table-column prop="poisonId" label="毒害因素" min-width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.poisonId" size="small" style="width:220px" clearable filterable
:filter-method="filterMethod">
<el-option-group v-for="group in postion" :key="group.poisonTypeName" :label="group.poisonTypeName">
<el-option v-for="item in group.poisonDtos" :key="item.id" :label="item.displayName" :value="item.id" />
</el-option-group>
</el-select>
</template>
</el-table-column>
<el-table-column prop="lastModifierId" label="修改人员" min-width="80" align="center" />
<el-table-column prop="lastModificationTime" label="修改时间" min-width="150" align="center" />
<el-table-column prop="creatorId" label="创建人员" min-width="80" align="center" />
<el-table-column prop="creationTime" label="创建时间" min-width="150" align="center" />
<el-table-column fixed="right" width="30" align="center">
<template slot="header">
<div style="display: flex;justify-content:space-between;">
<div></div>
<div>
<i class="el-icon-plus" @click="btnAdd" style="font-size: 24px;color: blue;cursor:pointer;"></i>
</div>
</div>
</template>
<template slot-scope="scope">
<i class="el-icon-delete" @click="deleteRow(scope.$index)"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc";
export default {
components: {},
props: ["refFunc"],
data() {
return {
pagePriv: {
routeUrlorPageName: 'customerOrg', //
privs: [] //
},
postion: [
{
poisonTypeName: "职业史",
poisonDtos: [
{
id: "3a12ad8e-3b84-75a2-415e-c03ed69bda66",
displayName: "噪声,粉尘",
simpleCode: "ZS,FC"
}
]
}
], //
};
},
created() {
//
let userPriv = window.sessionStorage.getItem('userPriv')
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
},
//
mounted() {
// this.postion = deepCopy(this.dict.postion)
},
computed: {
...mapState(["window", "dict", "dialogWin", "dataTransOpts"]),
},
methods: {
moment, checkPagePriv,
filterMethod(v) {
if (v) {
let lv = v.toUpperCase()
let postion = []
let postionList = this.dict.postionList.filter(e => {
return e.poisonTypeName.indexOf(lv) > -1 || e.displayName.indexOf(lv) > -1 || e.simpleCode.indexOf(lv) > -1
})
postionList.forEach(e => {
let lfind = arrayExistObj(postion, "poisonTypeName", e.poisonTypeName)
if (lfind == -1) {
postion.push({ poisonTypeName: e.poisonTypeName, poisonDtos: [{ id: e.id, displayName: e.displayName, simpleCode: e.simpleCode }] })
} else {
postion[lfind]['poisonDtos'].push({ id: e.id, displayName: e.displayName, simpleCode: e.simpleCode })
}
});
this.postion = postion
} else {
this.postion = deepCopy(this.dict.postion)
}
console.log('filterMethod', v)
},
//
deleteRow(index) {
this.$confirm("此操作确定后将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}).then(() => {
this.dataTransOpts.tableM.patient_poison.splice(index, 1);
//this.submit('form');
}).catch((err) => {
if (err != 'cancel') {
this.$message.info({ showClose: true, message: err });
}
});
},
//
btnAdd() {
this.postion = deepCopy(this.dict.postion)
this.dataTransOpts.tableM.patient_poison.push({
patientRegisterId: this.patientRegisterId,
poisonId: ''
});
},
},
watch: {
// id
"dataTransOpts.refresh.contact_person.S": {
// immediate: true,
handler(newVal, oldVal) {
console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`);
this.getFormData(this.dataTransOpts.tableS.contact_person.id)
}
},
// 'customerOrgId' (newVal,oldVal){
// console.log('watch customerOrgId',newVal,oldVal)
// if(newVal != oldVal){
// this.personId = ''
// }
// }
},
};
</script>
<style scoped>
@import '../../assets/css/global_table.css';
@import '../../assets/css/global_input.css';
@import '../../assets/css/global_form.css';
@import '../../assets/css/global_dialog.css';
::v-deep .el-select-group__title {
font-size: 15px;
background-color: #EEEEEE;
color: black;
font-weight: 700;
}
.btnClass {
width: 110px;
}
</style>

164
src/components/occDisease/OccDiseaseSymptom.vue

@ -0,0 +1,164 @@
<template>
<div>
<el-table :data="dataTransOpts.tableM.patient_symptom" border height="465" row-key="id" size="small"
highlight-current-row ref="patientSymptom">
<el-table-column prop="symptomId" label="项目" min-width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.symptomId" size="small" clearable filterable :filter-method="filterMethod">
<el-option v-for="item in symptom" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column prop="degree" label="程度" min-width="70">
<template slot-scope="scope">
<el-select v-model="scope.row.degree" size="small">
<el-option v-for="item in dict.degree" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column prop="timeLength" label="时长" min-width="70">
<template slot-scope="scope">
<el-input v-model="scope.row.timeLength" size="small" />
</template>
</el-table-column>
<el-table-column prop="lastModifierId" label="修改人员" min-width="80" align="center" />
<el-table-column prop="lastModificationTime" label="修改时间" min-width="150" align="center" />
<el-table-column prop="creatorId" label="创建人员" min-width="80" align="center" />
<el-table-column prop="creationTime" label="创建时间" min-width="150" align="center" />
<el-table-column fixed="right" width="30" align="center">
<template slot="header">
<div style="display: flex;justify-content:space-between;">
<div></div>
<div>
<i class="el-icon-plus" @click="btnAdd" style="font-size: 24px;color: blue;cursor:pointer;"></i>
</div>
</div>
</template>
<template slot-scope="scope">
<i class="el-icon-delete" @click="deleteRow(scope.$index)"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc";
export default {
components: {},
props: ["refFunc","patientRegisterId"],
data() {
return {
pagePriv: {
routeUrlorPageName: 'customerOrg', //
privs: [] //
},
symptom:[]
};
},
created() {
//
let userPriv = window.sessionStorage.getItem('userPriv')
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
},
//
mounted() {
this.dictInit()
},
computed: {
...mapState(["window", "dict", "dialogWin", "dataTransOpts"]),
},
methods: {
moment, checkPagePriv,
//
dictInit() {
// --
postapi("/api/app/Symptom/GetList").then((res) => {
if (res.code > -1) {
this.dict.symptom = res.data;
this.symptom = res.data
}
});
},
filterMethod(v) {
if (v) {
let lv = v.toUpperCase()
this.symptom = this.dict.symptom.filter(e => {
return e.displayName.indexOf(lv) > -1 || e.simpleCode.indexOf(lv) > -1
})
} else {
this.symptom = deepCopy(this.dict.symptom)
}
},
//
deleteRow(index) {
this.$confirm("此操作确定后将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}).then(() => {
this.dataTransOpts.tableM.patient_symptom.splice(index, 1);
//this.submit('form');
}).catch((err) => {
if (err != 'cancel') {
this.$message.info({ showClose: true, message: err });
}
});
},
//
btnAdd() {
console.log('this.dataTransOpts.tableM.patient_symptom',this.dataTransOpts.tableM.patient_symptom)
this.dataTransOpts.tableM.patient_symptom.push({
patientRegisterId: this.patientRegisterId,
symptomId:'',
degree:'',
timeLength:''
});
},
},
watch: {
// id
"dataTransOpts.refresh.contact_person.S": {
// immediate: true,
handler(newVal, oldVal) {
console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`);
this.getFormData(this.dataTransOpts.tableS.contact_person.id)
}
},
// 'customerOrgId' (newVal,oldVal){
// console.log('watch customerOrgId',newVal,oldVal)
// if(newVal != oldVal){
// this.personId = ''
// }
// }
},
};
</script>
<style scoped>
@import '../../assets/css/global_table.css';
@import '../../assets/css/global_input.css';
@import '../../assets/css/global_form.css';
@import '../../assets/css/global_dialog.css';
.btnClass {
width: 110px;
}
</style>

25
src/components/patientRegister/PatientRegisterEdit.vue

@ -9,7 +9,10 @@
<PatientRegisterEditQuery />
</div>
<div style="display: flex;margin-left: 5px;">
<div v-show="checkPagePriv(pagePriv.privs, '读身份证')">
<div v-show="checkPagePriv(pagePriv.privs, '职业病')">
<el-button @click="btnOcc" class="commonbutton" style="width:80px;">职业病</el-button>
</div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '读身份证')">
<el-button @click="peopleIcCard" class="commonbutton">读身份证</el-button>
</div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '拍照')">
@ -531,6 +534,11 @@
</span>
</el-dialog>
<el-dialog title="职业病" :visible.sync="dialogWin.OccDisease" width="800px" :close-on-click-modal="false"
:append-to-body="true">
<OccDisease :patientRegisterId="form.id" />
</el-dialog>
<el-dialog title="选择单位" :visible.sync="dialogOrg" width="800px" :close-on-click-modal="false"
:append-to-body="true">
<div style="height: 320px;">
@ -599,7 +607,7 @@ import MergeAsbitem from "./MergeAsbitem.vue";
import AsbChargeRequest from "./AsbChargeRequest.vue";
import Charge from "../../views/charge/charge.vue";
import PatientRegisterEditQuery from "../../components/patientRegister/PatientRegisterEditQuery.vue";
import OccDisease from "../../components/occDisease/OccDisease.vue"
export default {
components: {
@ -609,7 +617,8 @@ export default {
PatientRegisterItem,
Charge,
AsbChargeRequest,
PatientRegisterEditQuery
PatientRegisterEditQuery,
OccDisease
},
// isDoctor: '0:/1:()'
props: ['isDoctor', 'patientRegisterId', 'editTimes', 'refreshRegister', 'refFuncSetData'],
@ -2047,6 +2056,16 @@ export default {
// this.patientRegister.prList.push(curRow)
},
//
btnOcc(){
if(!this.form.id){
this.$message.warning({showClose:true,message:'人员信息尚未保存!'})
return
}
this.dataTransOpts.plus.OccDisease++
this.dialogWin.OccDisease = true
},
//tab
enterToTab() {
this.$nextTick(() => {

1
src/components/patientRegister/PatientRegisterList.vue

@ -1301,6 +1301,7 @@ export default {
postapi(url, { patientRegisterId: row.id }).then(res => {
if (res.code > -1) {
this.$message.success({ showClose: true, message: '导入成功!' })
this.rowClick(row)
} else {
this.$message.error({ showClose: true, message: res.message })
}

50
src/components/report/BtnReport.vue

@ -3,6 +3,12 @@
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnQuery">查询</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnImportResult('pacs')">导入检查结果</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnImportResult('lis')">导入检验结果</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnReport(true)">预览报告</el-button>
</div>
@ -49,11 +55,35 @@ export default {
this.patientRegister.query.times++
},
//
btnImportResult(checkType) {
if (!this.dataTransOpts.tableS.patient_register.id) {
this.$message.warning({ showClose: true, message: "请先选择记录!" })
return
}
let url = '/api/app/ImportLisResult/ImportResultByPatientRegisterId'
switch (checkType) {
case 'pacs':
url = '/api/app/ImportPacsResult/ImportResultByPatientRegisterId'
break;
default:
break;
}
postapi(url, { patientRegisterId: this.dataTransOpts.tableS.patient_register.id }).then(res => {
if (res.code > -1) {
this.$message.success({ showClose: true, message: '导入成功!' })
} else {
this.$message.error({ showClose: true, message: res.message })
}
})
},
//
btnGetReport() {
if (!this.dataTransOpts.tableS.patient_register.id) {
this.$message.warning({ showClose: true, message: "请先选择记录!"})
this.$message.warning({ showClose: true, message: "请先选择记录!" })
return
}
this.dataTransOpts.tableS.patient_register.completeFlag = '2'
@ -64,12 +94,12 @@ export default {
//
async btnReport(isPreview) {
if (!this.dataTransOpts.tableS.patient_register.id) {
this.$message.warning({ showClose: true, message: "请先选择记录!"})
this.$message.warning({ showClose: true, message: "请先选择记录!" })
return
}
if (!this.$peisAPI) {
this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!"})
this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!" })
return
}
@ -89,17 +119,17 @@ export default {
{ Name: "firstPage", Value: "pic/peisReportFirstPage.jpg" },
{ Name: "pageHeader", Value: "pic/peisReportPageHeader.jpg" },
{ Name: "pageFooter", Value: "pic/peisReportPageFooter.jpg" },
{ Name: "orgSign", Value: "pic/orgSign.png" },
{ Name: "orgSign", Value: "pic/orgSign.png" },
{ Name: 'picExtOne', Value: 'pic/hisLog.jpg' },
],
};
//
if(this.dataTransOpts.tableS.patient_register.completeFlag != '3') toOutShell.preViewCanPrint = 'N'
if (this.dataTransOpts.tableS.patient_register.completeFlag != '3') toOutShell.preViewCanPrint = 'N'
if (toOutShell.preViewCanPrint == 'Y' && this.dataTransOpts.tableS.patient_register.isAudit == 'N') {
let sysParmId = "medical_report_print_after_summary_check_is_audit"
let sysParam = await postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId })
if(sysParam.data.toUpperCase() == 'Y') toOutShell.preViewCanPrint = 'N'
if (sysParam.data.toUpperCase() == 'Y') toOutShell.preViewCanPrint = 'N'
}
// let res = await postapi(`/api/app/printreport/getpeisreport?PatientRegisterId=${this.patientRegister.patientRegisterId}`)
@ -117,8 +147,8 @@ export default {
});
} else {
if(toOutShell.preViewCanPrint == 'N'){
this.$message.warning({showClose:true,message:'未总检或未审核,不可打印报告'})
if (toOutShell.preViewCanPrint == 'N') {
this.$message.warning({ showClose: true, message: '未总检或未审核,不可打印报告' })
return
}
this.$peisAPI.print(JSON.stringify(toOutShell))
@ -138,7 +168,7 @@ export default {
console.log('打印体检报告错误', err)
this.$message.error({ showClose: true, message: `${err}` });
});
}
},

36
src/components/report/PatientRegisterListNobtn.vue

@ -7,9 +7,10 @@
<el-table-column type="selection" width="40" align="center" />
<el-table-column prop="completeFlag" label="体检进度">
<template slot-scope="scope">
<div :style="`color: ${setPrStatusColor(scope.row.isAudit, scope.row.completeFlag)}`">{{ dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
<div :style="`color: ${setPrStatusColor(scope.row.isAudit, scope.row.completeFlag)}`">{{
dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="isLock" label="锁住" align="center" width="50">
<template slot-scope="scope">
<div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div>
@ -21,8 +22,8 @@
<el-table-column prop="mobileTelephone" label="手机" width="130" />
<el-table-column prop="sexName" label="性别" align="center" />
<el-table-column prop="age" label="年龄" align="center" />
<el-table-column prop="patientRegisterNo" label="条码号" width="150" align="center"/>
<el-table-column prop="patientNo" label="档案号" align="center"/>
<el-table-column prop="patientRegisterNo" label="条码号" width="150" align="center" />
<el-table-column prop="patientNo" label="档案号" align="center" />
<el-table-column prop="medicalTimes" label="体检次数" align="center" />
<el-table-column label="分组/套餐" width="150">
<template slot-scope="scope">
@ -50,9 +51,9 @@
</div>
</template>
</el-table-column>
<el-table-column prop="email" label="邮箱" width="180" />
<el-table-column prop="email" label="邮箱" width="180" />
<el-table-column prop="telephone" label="电话" width="130" />
<el-table-column prop="address" label="地址" width="400"/>
<el-table-column prop="address" label="地址" width="400" />
<el-table-column prop="medicalCardNo" label="体检卡号" />
<el-table-column prop="jobCardNo" label="工卡号" />
<el-table-column prop="maritalStatusId" label="婚姻状况" align="center">
@ -144,7 +145,7 @@
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, deepCopy, objCopy, arrayReduce, arrayExistObj,setPrStatusColor } from "@/utlis/proFunc";
import { dddw, deepCopy, objCopy, arrayReduce, arrayExistObj, setPrStatusColor } from "@/utlis/proFunc";
import PatientRegisterEdit from "../../components/patientRegister/PatientRegisterEdit.vue";
import Camera from "../../components/patientRegister/Camera.vue";
@ -170,7 +171,7 @@ export default {
rClickRow: null, //
rClickColumn: null, //
dom: null, //
lazyLoading: false, //
loadOpts: {
@ -198,7 +199,7 @@ export default {
...mapState(["window", "dict", 'dataTransOpts', "patientRegister", "customerOrg", "report"]),
},
methods: {
dddw,setPrStatusColor,
dddw, setPrStatusColor,
handleSelectionChange(val) {
this.multipleSelection = val;
@ -321,7 +322,7 @@ export default {
//
reportQuery() {
console.log('reportQuery this.loadOpts',this.loadOpts)
console.log('reportQuery this.loadOpts', this.loadOpts)
if (this.loadOpts.skipCount != 0 && this.loadOpts.skipCount * this.loadOpts.maxResultCount >= this.loadOpts.totalCount) return
let body = {
@ -364,6 +365,7 @@ export default {
if (this.patientRegister.query.reportPrintTimes >= 0) body.isReportPrint = this.patientRegister.query.reportPrintTimes
if (this.patientRegister.query.isUpload) body.isUpload = this.patientRegister.query.isUpload
//console.log('/api/app/peisreport/getpatientregisterreport',body)
postapi('/api/app/peisreport/getpatientregisterreport', body).then(res => {
if (res.code > -1) {
//
@ -373,7 +375,19 @@ export default {
this.patientRegister.prList = [];
}
this.patientRegister.prList = this.patientRegister.prList.concat(res.data.items)
// this.loadOpts.skipCount++
if (body.skipCount == 0 && this.patientRegister.prList.length == 1) {
this.rowClick(this.patientRegister.prList[0])
this.$refs['info'].setCurrentRow(this.patientRegister.prList[0]);
} else {
this.$refs['info'].setCurrentRow();
this.dataTransOpts.tableS.patient_register = { id: '' }
//
this.dataTransOpts.refresh.patient_register.S++
//
this.dataTransOpts.refresh.sumDoctor.M++
//
this.dataTransOpts.refresh.register_check.M++
}
}
})
},

31
src/components/sumDoctorCheck/ButtonList.vue

@ -6,6 +6,12 @@
<div v-show="checkPagePriv(pagePriv.privs, '医生诊台')" class="listBtn">
<el-button type="primary" class="commonbutton" @click="toDoctorCheck">医生诊台</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '导入检查结果')" class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnImportResult('pacs')" :disabled="sumBtnDisabled('save')">导入检查结果</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '导入检验结果')" class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnImportResult('lis')" :disabled="sumBtnDisabled('save')">导入检验结果</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '保存')" class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnSave"
:disabled="sumBtnDisabled('save')">保存</el-button>
@ -166,6 +172,31 @@ export default {
return ret
},
//
btnImportResult(checkType) {
if (!this.dataTransOpts.tableS.patient_register.id) {
this.$message.warning({ showClose: true, message: "请先选择记录!" })
return
}
let url = '/api/app/ImportLisResult/ImportResultByPatientRegisterId'
switch (checkType) {
case 'pacs':
url = '/api/app/ImportPacsResult/ImportResultByPatientRegisterId'
break;
default:
break;
}
postapi(url, { patientRegisterId: this.dataTransOpts.tableS.patient_register.id }).then(res => {
if (res.code > -1) {
this.$message.success({ showClose: true, message: '导入成功!' })
} else {
this.$message.error({ showClose: true, message: res.message })
}
})
},
//
btnSave() {

34
src/store/index.js

@ -135,9 +135,9 @@ export default new Vuex.Store({
customerOrgFlag: true, //单位作为查询条件
customerOrgRegister: { id: '' }, //单位体检次数
checkAsbs: null,
patientRegisterNo:'',
pacsNo:'',
lisNo:'',
patientRegisterNo: '',
pacsNo: '',
lisNo: '',
patientName: '', //姓名
sex: '', //性别
idCardNo: '', //身份证号
@ -270,6 +270,25 @@ export default new Vuex.Store({
{ id: "0", displayName: "高原" },
{ id: "1", displayName: "健康" }
],
occCheckType: [
{ id: "0", displayName: "上岗前" },
{ id: "1", displayName: "在岗期间" },
{ id: "2", displayName: "离岗时" },
{ id: "3", displayName: "离岗后" },
],
degree:[
{ id: "/", displayName: "/" },
{ id: "-", displayName: "-" },
{ id: "+-", displayName: "+-" },
{ id: "+", displayName: "+" },
{ id: "++", displayName: "++" },
{ id: "+++", displayName: "+++" },
{ id: "++++", displayName: "++++" },
{ id: "+++++", displayName: "+++++" },
],
postion:[], //毒害因素
postionList:[], //毒害因素 不分组
symptom:[], //症状
medicalPackage: [], //所有套餐
customerOrgGroupAll: [], //所有分组,不限单位,不限次数
customerOrg: [], //所有单位,非树结构
@ -346,6 +365,8 @@ export default new Vuex.Store({
register_check_item: { id: '' }, // 体检人员登记的明细项目
role_menu_info: { id: '' }, // 角色对应的菜单
sum_diagnosis: { id: '' }, // 总检诊断
patient_occupational_disease: { id: '' }, // 职业病基本信息
},
//表当前数据(多条记录 M--more)
tableM: {
@ -367,6 +388,10 @@ export default new Vuex.Store({
register_check_item: [], // 体检人员登记的明细项目
role_menu_info: [], // 角色对应的菜单
sum_diagnosis: [], // 总检诊断
patient_poison: [], // 病人毒害因素
patient_occupational_history: [],// 病人职业史
patient_symptom: [], // 病人症状
},
plus: {
PatientRegisterEditQuery: 0, // 更新查询条件
@ -374,7 +399,7 @@ export default new Vuex.Store({
PatientRegisterEditGroupBatch: 0, // 刷新批量调整分组窗口
PatientRegisterEditItemBatch: 0, // 刷新批量调整项目窗口
PatientRegisterForChoose: 0, // 体检人员查询窗口
OccDisease: 0, // 职业病
}
},
@ -392,6 +417,7 @@ export default new Vuex.Store({
MenuPageSet: false, // 设置角色菜单权限
LocalConfig: false, // 设置窗口
AsbChargeRequest: false, // 收费申请
OccDisease: false, // 职业病
}
},

Loading…
Cancel
Save