Browse Source

预约相关修改

360view
bianyaqi 2 years ago
parent
commit
72fd85a726
  1. 32
      src/page-subspecialty/store/modules/sign.js
  2. 5
      src/page-subspecialty/views/modules/formList/InformedConsent.vue
  3. 162
      src/page-subspecialty/views/modules/formList/mraForm.vue
  4. 31
      src/page-subspecialty/views/modules/formList/mraOrder.vue
  5. 115
      src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/addPatientOrder.vue
  6. 74
      src/page-subspecialty/views/modules/nurseManagement/reservation/subList/index.vue
  7. 2
      src/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/addProject.vue
  8. 1
      src/page-subspecialty/views/modules/outpatientManagement/treat/index.vue

32
src/page-subspecialty/store/modules/sign.js

@ -25,7 +25,11 @@ export default {
guardianSign2: '',
operator: '',
informedDocSign: '',
informPatientSign: ''
informPatientSign: '',
fundusDocSign: '',
kinSign: '',
performerSign: '',
checkerSign: ''
},
getters: {
doctorSignImg: state => state.doctorSignImg,
@ -39,7 +43,11 @@ export default {
guardianSign2: state => state.guardianSign2,
operator: state => state.operator,
informedDocSign: state => state.informedDocSign,
informPatientSign: state => state.informPatientSign
informPatientSign: state => state.informPatientSign,
fundusDocSign: state => state.fundusDocSign,
kinSign: state => state.kinSign,
performerSign: state => state.performerSign,
checkerSign: state => state.checkerSign
},
mutations: {
// 销毁签字笔
@ -182,6 +190,14 @@ export default {
this.commit('informedDocSign', img_base64)
} else if (state.type === 11) {
this.commit('informPatientSign', img_base64)
} else if (state.type === 12) {
this.commit('fundusDocSign', img_base64)
} else if (state.type === 13) {
this.commit('kinSign', img_base64)
} else if (state.type === 14) {
this.commit('performerSign', img_base64)
} else if (state.type === 15) {
this.commit('checkerSign', img_base64)
}
} else {
// debugPrint("saveSignToBase64 error,description:" + args[0]);
@ -224,6 +240,18 @@ export default {
},
informPatientSign(state, val) {
state.informPatientSign = val
},
fundusDocSign(state, val) {
state.fundusDocSign = val
},
kinSign(state, val) {
state.kinSign = val
},
performerSign(state, val) {
state.performerSign = val
},
checkerSign(state, val) {
state.checkerSign = val
}
}
}

5
src/page-subspecialty/views/modules/formList/InformedConsent.vue

@ -19,7 +19,7 @@
<div class="flex a-c item">年龄<el-input v-model="confirmData.patientAge" style="flex: 1" placeholder="" /></div>
<div class="flex a-c item">性别<el-input v-model="confirmData.patientGender" style="flex: 1" placeholder="" /></div>
<div class="flex a-c item">眼别
<el-select v-model="confirmData.eyeType" style="flex: 1" placeholder="请选择">
<el-select v-model="confirmData.eyeType" style="flex: 1" placeholder="">
<el-option
v-for="item in options"
:key="item.value"
@ -390,6 +390,9 @@ export default {
patientId: this.patientDetail.patientId
}}).then(data => {
const detail = data.data.data
if (detail.eyeType) {
this.confirmData.eyeType = detail.eyeType
}
const bnzList = detail.bnz && detail.bnz.split('/') || []
const qgyList = detail.qgy && detail.qgy.split('/') || []
const ydbList = detail.ydb && detail.ydb.split('/') || []

162
src/page-subspecialty/views/modules/formList/mraForm.vue

@ -5,6 +5,7 @@
<el-button type="primary" size="small" @click="handleSaveTable">保存</el-button>
<el-button type="danger" size="small" @click="formDelete">删除</el-button>
</div>
<div style="padding: 20px 80px;">
<div id="mraFunc" style="width: 840px;padding-right: 8px">
<div class="flex j-c">
<img width="450" src="@/assets/img/xianganlogo.png">
@ -41,10 +42,104 @@
{{ `${idx+1}${det}` }}
</p>
</div>
<div class="context_check">
<div style="cursor: pointer" @click="formData.ligthCheck = !formData.ligthCheck">
<input type="checkbox" :checked="formData.ligthCheck">
<span>今日行
<span class="underline">荧光素血管造影</span>以上内容我已逐条认真阅读并理解眼底血管造影相关风险同意进行此项检查
<span class="underline">及荧光素钠注射液药物过敏试验</span>
</span>
</div>
<div style="cursor: pointer" @click="formData.greenCheck = !formData.greenCheck">
<input type="checkbox" :checked="formData.greenCheck">
<span>今日行
<span class="underline">吲哚菁绿血管造影</span>以上内容我已逐条认真阅读并理解眼底血管造影相关风险同意进行此项检查
</span>
</div>
</div>
</template>
<div>
<div class="flex">
患者签字:
<div style="margin-left: 10px" @click="signClick(12)">
<img v-if="!fundusDocSign" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="fundusDocSign">
</div>
</div>
<div class="flex">
<span>或授权亲属签字(关系):</span>
<div style="margin-left: 10px" @click="signClick(13)">
<img v-if="!kinSign" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="kinSign">
</div>
<span style="margin-left: 80px">日期:</span>
<el-date-picker
v-model="formData.patientDate"
type="date"
value-format="yyyy-MM-dd"
/>
</div>
<div class="flex">
<span>医生签字:</span>
<img
v-if="formData.doctorSign"
:src="formData.doctorSign"
alt=""
style="width: 80px;height: 50px;border-style:none;"
>
<span style="margin-left: 80px">日期:</span>
<el-date-picker
v-model="formData.doctorDate"
type="date"
value-format="yyyy-MM-dd"
/>
</div>
</div>
<div class="bottom_detail">
<div>检查当日患者情况:</div>
<div class="flex">
血压:<el-input v-model="formData.bloodPressure" style="flex: 1" />mmHg,
脉搏:<el-input v-model="formData.pulse" style="flex: 1" />/,
血糖:<el-input v-model="formData.bloodSugar" style="flex: 1" />mmol/L,
</div>
<div class="flex">
眼压:
右眼:
<el-input v-model="formData.pressureOd" style="flex: 1" />mmHg,
左眼:<el-input v-model="formData.pressureOs" style="flex: 1" />mmHg
</div>
<div>检查前药物过敏试验情况:</div>
<div class="flex">
阴性:<el-input v-model="formData.negative" style="flex: 1" />
时间:<el-input v-model="formData.negativeTime" style="flex: 1" />
</div>
<div>
阳性:反应情况:恶心呕吐头晕皮肤反应其它
</div>
<div class="flex">
药物批号:<el-input v-model="formData.drugBatchNumber" style="width: 240px" />
</div>
<div>检查前药物过敏试验情况:</div>
<div class="flex">
执行药敏试验者签字:
<div style="margin:0 10px" @click="signClick(14)">
<img v-if="!performerSign" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="performerSign">
</div>
工号:<el-input v-model="formData.performerId" style="width: 240px" />
</div>
<div class="flex">
核对药敏实验者签字:
<div style="margin:0 10px" @click="signClick(15)">
<img v-if="!checkerSign" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="checkerSign">
</div>
工号:<el-input v-model="formData.checkerId" style="width: 240px" />
</div>
</div>
</div>
</div>
</div>
</div></template>
<script>
export default {
@ -72,7 +167,22 @@ export default {
patientName: '',
patientAge: '',
patientSex: '',
patientId: ''
patientId: '',
ligthCheck: false,
greenCheck: false,
doctorSign: '',
doctorDate: '',
patientDate: '',
bloodPressure: '',
pulse: '',
bloodSugar: '',
pressureOd: '',
pressureOs: '',
negative: '',
negativeTime: '',
drugBatchNumber: '',
performerId: '',
checkerId: ''
},
context: [
{
@ -93,13 +203,41 @@ export default {
'造影剂一般安全可靠,荧光素眼底造影检查当日注射荧光素钠注射液前,遵医嘱行药物过敏试验。',
'在静脉给药后 1-2 天内皮肤发黄,尿及大便变黄绿色均属正常现象。',
'造影检查过程中可能出现一过性恶心、呕吐,一般经深呼吸可自行缓解',
'部分患者可能出现尊麻疹。'
'部分患者可能出现尊麻疹。',
'极少数患者可能出现喉头水肿、过敏性休克等情况,需进行相关治疗。'
]
},
{
title: '检查后患者注意事项',
detail: [
'检查后留观至少30 分钟;当天适当多饮水 (荧光素钠约 24 到 36 小时内大部分排空,皮肤、眼睛、尿液等发黄属正常现象,对身体无害)。',
'检查后当天勿直视强光、勿驾车、勿进行危险和精细作业。',
'造影后 24 小时内避免行血清肌酥、总蛋白、皮质醇、地高辛、奎宁丁和甲状腺素 ,以及其他比色法测定的实验室检测,以免干扰检测结果。',
'如回家后有其他不适症状,或不适症状未缓解请就近到医院就诊。',
'极少数患者可能出现喉头水肿、过敏性休克等情况,需进行相关治疗。'
]
},
{
title: '造影报告的获取:一般是当日完成,如因病情复杂需专家会诊或需补充相关检查,结果无法当日完成,将另行通知患者取结果时间。'
}
]
}
},
computed: {
fundusDocSign() {
return this.$store.getters.fundusDocSign
},
kinSign() {
return this.$store.getters.kinSign
},
performerSign() {
return this.$store.getters.performerSign
},
checkerSign() {
return this.$store.getters.checkerSign
}
},
created() {
this.origin = JSON.parse(JSON.stringify(this.formData))
//
@ -107,11 +245,17 @@ export default {
this.formData.patientAge = this.patientDetail.patientAge
this.formData.patientSex = this.patientDetail.patientSex
this.formData.patientId = this.patientDetail.patientId
const userData = JSON.parse(window.sessionStorage.getItem('qg-userData'))
this.formData.doctorSign = userData.signImgBase
this.$store.commit('initPlugin')
},
methods: {
handleSaveTable() {
this.$emit('handleSaveTable')
},
signClick(index) {
this.$store.commit('beginSign', index)
},
formDelete() {
this.$confirmFun('确定删除吗?').then(() => {
this.$http.post('/case/delete', {
@ -143,7 +287,6 @@ export default {
font-size: 16px;
text-align: left;
line-height: 30px;
padding: 20px 80px;
}
.item{
display: flex;
@ -174,4 +317,15 @@ export default {
::v-deep .el-input__prefix {
display: none;
}
.underline{
text-decoration: underline;
}
.context_check{
margin: 20px 0;
}
.bottom_detail{
border: 1px solid #cccccc;
padding: 10px;
margin-top: 20px;
}
</style>

31
src/page-subspecialty/views/modules/formList/mraOrder.vue

@ -49,7 +49,22 @@
<tr>
<td>
<div class="flex">
造影项目<el-input v-model="formData.project" style="flex: 1" />
造影项目
<el-select
v-model="formData.project"
style="flex: 1"
filterable
allow-create
default-first-option
placeholder=""
>
<el-option
v-for="item in projectOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
</td>
<td>
@ -92,7 +107,7 @@
<td>
<div class="flex">
主照眼
<el-select v-model="formData.lightEye" style="flex: 1" placeholder="请选择">
<el-select v-model="formData.lightEye" style="flex: 1" placeholder="">
<el-option
v-for="item in options"
:key="item.value"
@ -209,6 +224,13 @@ export default {
value: 'OS',
label: 'OS'
}],
projectOptions: [{
value: 'FFA',
label: 'FFA'
}, {
value: 'ICGA',
label: 'ICGA'
}],
doctorList: [],
formData: {
idList: [],
@ -399,13 +421,16 @@ input{
height: 26px !important;
line-height: 26px !important;
text-align: center;
border-bottom: 1px solid #ccc;
border: none !important;
border-radius: 0;
padding: 0;
}
::v-deep .el-input__prefix {
display: none;
}
::v-deep .el-input__suffix {
display: none;
}
table tr td{
border: 1px solid #ccc;
padding: 5px;

115
src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/addPatientOrder.vue

@ -30,59 +30,63 @@
</el-select>
</el-col>
<el-col :span="11" style="display: flex;align-items: center;margin-left: 15px">
<span style="margin-right: 10px">
已开医嘱:
<div class="radioItem" @click="form.yzOpen='Y'">
<input :checked="form.yzOpen==='Y'" type="radio">
</div>
<div class="radioItem" @click="form.yzOpen='N'">
<input :checked="form.yzOpen==='N'" type="radio">
</div>
</span>
<el-radio v-model="form.yzOpen" label="Y">
</el-radio>
<el-radio v-model="form.yzOpen" label="N">
</el-radio>
</el-col>
</el-form-item>
<el-form-item label="备注:">
<el-input v-model="form.remark" autosize type="textarea" />
<el-select
v-model="form.remark"
filterable
allow-create
default-first-option
placeholder=""
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<div style="display: flex;padding:0 0 20px 0">
<el-col :span="12" style="display: flex;align-items: center">
<el-col :span="10" style="display: flex;align-items: center">
<div class="addLabel">眼别:</div>
<div class="radioItem" @click="form.eyeType='OD'">
<input :checked="form.eyeType==='OD'" type="radio">OD
</div>
<div class="radioItem" @click="form.eyeType='OS'">
<input :checked="form.eyeType==='OS'" type="radio">OS
</div>
<div class="radioItem" @click="form.eyeType='OU'">
<input :checked="form.eyeType==='OU'" type="radio">OU
</div>
<el-radio v-model="form.eyeType" label="OD">OD
</el-radio>
<el-radio v-model="form.eyeType" label="OS">OS
</el-radio>
<el-radio v-model="form.eyeType" label="OU">OU
</el-radio>
</el-col>
<el-col :span="6" style="display: flex;align-items: center">
散瞳:
<div class="radioItem" @click="form.pupilDilate='Y'">
<input :checked="form.pupilDilate==='Y'" type="radio">
</div>
<div class="radioItem" @click="form.pupilDilate='N'">
<input :checked="form.pupilDilate==='N'" type="radio">
</div>
<el-col :span="7" style="display: flex;align-items: center">
<span style="margin-right: 10px">散瞳:</span>
<el-radio v-model="form.pupilDilate" label="Y">OD
</el-radio>
<el-radio v-model="form.pupilDilate" label="N">OS
</el-radio>
</el-col>
<el-col :span="6" style="display: flex;align-items: center">
缩瞳:
<div class="radioItem" @click="form.pupilShrink='Y'">
<input :checked="form.pupilShrink==='Y'" type="radio">
</div>
<div class="radioItem" @click="form.pupilShrink='N'">
<input :checked="form.pupilShrink==='N'" type="radio">
</div>
<el-col :span="7" style="display: flex;align-items: center">
<span style="margin-right: 10px">缩瞳:</span>
<el-radio v-model="form.pupilShrink" label="Y">OD
</el-radio>
<el-radio v-model="form.pupilShrink" label="N">OS
</el-radio>
</el-col>
</div>
<div style="display: flex;padding:0 0 20px 0px">
<el-col :span="12" style="display: flex;align-items: center">
<div class="addLabel">三面镜:</div>
<div class="radioItem" @click="form.threeMirror='Y'">
<input :checked="form.threeMirror==='Y'" type="radio">
</div>
<div class="radioItem" @click="form.threeMirror='N'">
<input :checked="form.threeMirror==='N'" type="radio">
</div>
<el-radio v-model="form.threeMirror" label="Y">
</el-radio>
<el-radio v-model="form.threeMirror" label="N">
</el-radio>
</el-col>
</div>
<el-form-item label="预约时间:" required>
@ -94,25 +98,19 @@
<el-col class="line" style="text-align: center" :span="2">-</el-col>
<el-col :span="11">
<el-form-item prop="date2">
<!-- <el-time-select-->
<!-- v-model="form.date2"-->
<!-- :picker-options="{-->
<!-- start: '08:30',-->
<!-- step: '00:15',-->
<!-- end: '18:30'-->
<!-- }"-->
<!-- placeholder="选择时间"-->
<!-- />-->
<el-time-picker
<el-time-select
v-model="form.date2"
value-format="HH:mm:ss"
:picker-options="{
start: '08:30',
step: '00:15',
end: '18:30'
}"
placeholder="选择时间"
style="width: 100%;"
/>
</el-form-item>
</el-col>
</el-form-item>
</div></el-form>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="goFormList">表单</el-button>
<el-button size="small" @click="closeDialog"> </el-button>
@ -161,6 +159,13 @@ export default {
date1: '',
date2: ''
},
options: [{
value: 'FFA',
label: 'FFA'
}, {
value: 'ICGA',
label: 'ICGA'
}],
doctorList: []
}
},
@ -192,7 +197,7 @@ export default {
this.form.yzOpen = this.patientDetail.yzOpen
if (this.patientDetail.appointDate) {
this.form.date1 = this.patientDetail.appointDate.split(' ')[0]
this.form.date2 = this.patientDetail.appointDate.split(' ')[1]
this.form.date2 = this.patientDetail.appointDate.split(' ')[1].substring(0, 5)
}
this.patientInfo = this.patientDetail
}
@ -235,7 +240,7 @@ export default {
return false
}
const params = {
appointDate: `${this.form.date1} ${this.form.date2}`,
appointDate: `${this.form.date1} ${this.form.date2}:00`,
patientName: this.patientInfo.patientName,
jzNumber: this.patientInfo.jzNumber,
appointSource: this.patientInfo.source,
@ -254,7 +259,7 @@ export default {
})
} else {
const params = {
appointDate: `${this.form.date1} ${this.form.date2}`,
appointDate: `${this.form.date1} ${this.form.date2}:00`,
patientName: this.patientDetail.patientName,
id: this.patientDetail.id,
itemId: this.patientDetail.itemId,

74
src/page-subspecialty/views/modules/nurseManagement/reservation/subList/index.vue

@ -42,6 +42,17 @@
color="white"
@click="handleType(item.value, index)"
>{{ item.label }}</el-button>
<div style="margin-left: 15px">
<el-button
v-for="(item,index) in optionList"
:key="item.label"
:class="[curIndex2 === index ? 'active' : '']"
style="margin-left: 0"
size="small"
color="white"
@click="changeType(item.value, index)"
>{{ item.label }}</el-button>
</div>
<div style="margin-left: 15px">
预约时间:
<el-date-picker
@ -84,22 +95,33 @@
</el-table-column>
<el-table-column prop="patientName" label="患者姓名" header-align="center" align="center" width="100px" />
<el-table-column prop="patientId" label="登记号" header-align="center" align="center" width="120px" />
<el-table-column prop="patientPhone" label="电话号" header-align="center" align="center" width="150px" />
<el-table-column prop="patientPhone" label="电话号" header-align="center" align="center" width="140px" />
<el-table-column label="医疗项目" prop="itemName" header-align="center" align="center" width="180px" />
<el-table-column label="眼别" prop="eyeType" header-align="center" align="center" width="80px" />
<el-table-column label="准备工作" header-align="center" align="center" width="140px">
<template slot-scope="scope">
<div>
<div>
<div :class="{active_check:scope.row.yzOpen==='Y'}">
<input style="margin-right: 5px" type="checkbox" :checked="scope.row.yzOpen==='Y'">医嘱已开
</div>
<div>
<div :class="{active_check:scope.row.pupilDilate==='Y'}">
<input style="margin-right: 5px" type="checkbox" :checked="scope.row.pupilDilate==='Y'">散瞳
</div>
</div>
</template>
</el-table-column>
<el-table-column label="未到达" header-align="center" align="center" width="140px">
<template slot-scope="scope">
<el-select v-model="scope.row.arrival" placeholder="" size="small" @change="value=>changeEyeType(value,scope)">
<el-option
v-for="item in eyeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</template>
</el-table-column>
<el-table-column prop="jzNumber" label="就诊号" header-align="center" align="center" />
<el-table-column label="操作" class-name="hidden" header-align="center" align="center" width="200px">
<template slot-scope="scope">
@ -164,6 +186,7 @@ export default {
getDataListURL: '/appoint/page',
getDataListIsPage: true,
createdIsNeed: false,
arrival: '',
beginDate: '',
endDate: ''
},
@ -216,7 +239,26 @@ export default {
value: '200',
label: '已预约'
}],
optionList: [
{
value: '',
label: '全部'
}, {
value: 'Y',
label: '已到达'
}, {
value: 'N',
label: '未到达'
}],
eyeList: [{
value: 'Y',
label: '已到达'
}, {
value: 'N',
label: '未到达'
}],
curIndex: 0,
curIndex2: 0,
projects: [],
selectedProjects: [],
patientList: [],
@ -255,6 +297,27 @@ export default {
}
this.getDataListInitial()
},
changeType(value, index) {
this.curIndex2 = index
this.dataForm.arrival = value
if (index === 1) {
this.dataForm.searchType = ''
}
this.getDataListInitial()
},
//
changeEyeType(value, scope) {
this.$http.get('/appoint/updateArrival', {
params: {
id: scope.row.id,
arrival: value
}
}).then(res => {
if (res.data.data) {
this.$message.error(res.data.data)
}
})
},
//
queryProjects(value) {
this.$http.get('/patient/getZlItemDict', {
@ -418,4 +481,7 @@ export default {
}
}
}
.active_check{
color: #0075ff;
}
</style>

2
src/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/addProject.vue

@ -1,5 +1,5 @@
<template>
<el-dialog :title="title" :visible.sync="show" width="40%" :before-close="closeDialog">
<el-dialog :title="title" :visible.sync="show" width="50%" :before-close="closeDialog">
<el-form id="reOrder" ref="addForm" :rules="rules" size="small" :model="form" label-width="130px">
<el-form-item required label="项目名称:" style="width: 100%" prop="project">
<el-select v-model="form.project" placeholder="请选择" style="width: 100%">

1
src/page-subspecialty/views/modules/outpatientManagement/treat/index.vue

@ -108,7 +108,6 @@
:value="item.value"
/>
</el-select>
{{ scope.row.zlEye === 'os' ? '左眼' : ( scope.row.zlEye === 'od' ? '右眼' : '') }}
</template>
</el-table-column>
<el-table-column prop="mzDoctorName" label="门诊医师" header-align="center" align="center" width="95" />

Loading…
Cancel
Save