Browse Source

切换表单保存数据

360view
bianyaqi 2 years ago
parent
commit
bf11c5f6d0
  1. 2
      public/index.html
  2. 100
      src/components/360View/medicalRecord/index.vue
  3. 2
      src/components/360View/medicalRecord/outPatientRecord/leftFormList.vue
  4. 2
      src/i18n/zh-CN.js
  5. 9
      src/page-subspecialty/views/main-navbar.vue
  6. 6
      src/page-subspecialty/views/main-sidebar.vue
  7. 1
      src/page-subspecialty/views/modules/formList/InformedConsent.vue
  8. 2
      src/page-subspecialty/views/modules/formList/mraForm.vue
  9. 33
      src/page-subspecialty/views/modules/optometryManagement/dioptric/HIS-add.vue
  10. 19
      src/page-subspecialty/views/modules/optometryManagement/dioptric/patient-add-or-update.vue
  11. 31
      src/page-subspecialty/views/modules/outpatientManagement/call/HIS-add.vue
  12. 15
      src/page-subspecialty/views/modules/outpatientManagement/call/patient-add-or-update.vue
  13. 27
      src/page-subspecialty/views/modules/outpatientManagement/treat/HIS-add.vue
  14. 14
      src/page-subspecialty/views/modules/outpatientManagement/treat/patient-add-or-update.vue
  15. 11
      src/utils/confirm.js

2
public/index.html

@ -39,8 +39,8 @@
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %>
<script>
//http://121.36.16.195:9002/huimu-admin/swagger-ui/index.html
window.SITE_CONFIG['apiURL'] = 'http://47.110.224.240:8036/xiangan-crf';
// window.SITE_CONFIG['apiURL'] = 'http://47.110.224.240:8036/xiangan-crf';
window.SITE_CONFIG['apiURL'] = 'http://192.168.0.167:8036/xiangan-crf';
</script>
<% } %>
<!-- 测试环境 -->

100
src/components/360View/medicalRecord/index.vue

@ -18,14 +18,49 @@
/>
<div class="content-right">
<div v-if="name === '门急诊电子病历'" style="height: 100%">
<ourPatientRecord v-if="name === '门急诊电子病历'" :patient-id="patientId" :only-read="onlyRead" :is-search="isSearch" :case-id="caseId" />
<ourPatientRecord
v-if="name === '门急诊电子病历'"
ref="ourPatient"
:patient-id="patientId"
:only-read="onlyRead"
:is-search="isSearch"
:case-id="caseId"
/>
</div>
<template v-else>
<div v-if="formList.length && isSearch === '2'" style="height: 100%">
<InformedConsent v-if="name==='眼科激光手术患者知情同意书'" :patient-detail="patientData" :json-text="jsonText" @handleSaveTable="updateForm" @formDelete="formDelete" />
<mra-form v-if="name==='眼底血管造影知情同意书'" :patient-detail="patientData" :json-text="jsonText" @handleSaveTable="updateForm" @formDelete="formDelete" />
<laser-surgery v-if="name==='眼科激光手术治疗'" :patient-detail="patientData" :json-text="jsonText" @handleSaveTable="updateForm" @formDelete="formDelete" />
<report-form v-if="name==='报告'" :patient-detail="patientData" :json-text="jsonText" @handleSaveTable="updateForm" @formDelete="formDelete" />
<InformedConsent
v-if="name==='眼科激光手术患者知情同意书'"
ref="informedConsent"
:patient-detail="patientData"
:json-text="jsonText"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<mra-form
v-if="name==='眼底血管造影知情同意书'"
ref="mraForm"
:patient-detail="patientData"
:json-text="jsonText"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<laser-surgery
v-if="name==='眼科激光手术治疗'"
ref="laserSurgery"
:patient-detail="patientData"
:json-text="jsonText"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<report-form
v-if="name==='报告'"
ref="reportForm"
:patient-detail="patientData"
:json-text="jsonText"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
</div>
</template>
</div>
@ -86,14 +121,38 @@ export default {
created() {
if (this.isSearch === '2') {
this.getFormList()
this.getPatientData()
}
},
methods: {
handleForm({ index, item }) {
this.curIndex = index
this.id = item.id
this.name = item.name
this.jsonText = item.jsonText
this.$confirmFun('是否保存数据,否则当前数据会丢弃!', '保存', '', '已取消保存数据!')
.then(() => {
this.$nextTick(() => {
switch (this.name) {
case '报告':
this.$refs.reportForm && this.$refs.reportForm.handleSaveTable()
break
case '眼科激光手术患者知情同意书':
this.$refs.informedConsent && this.$refs.informedConsent.handleSaveTable()
break
case '眼底血管造影知情同意书':
this.$refs.mraForm && this.$refs.mraForm.handleSaveTable()
break
case '眼科激光手术治疗':
this.$refs.laserSurgery && this.$refs.laserSurgery.handleSaveTable()
break
default:
this.$refs.ourPatient && this.$refs.ourPatient.handleSaveTable()
return
}
})
}).finally(() => {
this.curIndex = index
this.id = item.id
this.name = item.name
this.jsonText = item.jsonText
})
},
getPatientData() {
const params = {
@ -103,11 +162,17 @@ export default {
this.patientData = data.data.data
})
},
async updateForm(data) {
updateForm(data) {
if (data) {
this.jsonText = JSON.stringify(data)
}
this.saveFormData(this.jsonText)
},
async saveFormData(jsonText) {
const params = {
flag: 8,
name: this.name,
jsonText: JSON.stringify(data),
jsonText,
patientId: this.patientId,
id: this.id,
platform: this.isSearch
@ -132,10 +197,12 @@ export default {
})
return
}
const isMedical = name === '门急诊电子病历'
const params = {
flag: 8,
name: name,
createTime: date,
isMedical,
patientId: this.patientId,
platform: this.isSearch
}
@ -167,23 +234,20 @@ export default {
})
if (res.code === 0) {
this.formList = res.data || []
const date = this.$moment().format('YYYY-MM-DD')
if (this.formList.length) {
if (mode) {
this.curIndex = this.formList.findIndex(item => item.id === this.id)
this.jsonText = this.formList[this.curIndex].jsonText
} else {
if (!mode) {
this.name = this.formList[0].name
this.id = this.formList[0].id
this.curIndex = this.formList.findIndex(item => item.id === this.id)
this.jsonText = this.formList[this.curIndex].jsonText
}
this.curIndex = this.formList.findIndex(item => item.id === this.id)
this.jsonText = this.formList[this.curIndex].jsonText
} else {
this.addRecord('门急诊电子病历')
}
} else {
this.$message.error(res.msg)
}
this.getPatientData()
}
}
}

2
src/components/360View/medicalRecord/outPatientRecord/leftFormList.vue

@ -8,7 +8,7 @@
{{ item.name }}
</p>
</div>
<i v-if="index === curIndex && !onlyRead" style="margin-top: 28px;color: rgb(199,5,5)" class="el-icon-delete" @click="deleteForm()" />
<i v-if="index === curIndex && !onlyRead" style="margin-top: 28px;color: rgb(199,5,5)" class="el-icon-delete" @click.stop="deleteForm()" />
</div>
<img v-if="!formList" src="@/assets/img/nodata.png" alt="" class="nodata">
<!-- <div class="button"><i class="el-icon-plus" /> 新建表单</div> -->

2
src/i18n/zh-CN.js

@ -3,7 +3,7 @@ const t = {}
t.loading = '加载中...'
t.brand = {}
t.brand.lg = '翔安医院屈光系统'
t.brand.lg = '眼科电子病历&科研'
t.brand.mini = '屈光'
t.add = '新增'

9
src/page-subspecialty/views/main-navbar.vue

@ -5,7 +5,7 @@
<h1 class="aui-navbar__brand" @click="logoClick">
<a class="aui-navbar__brand-lg" href="javascript:;" style="text-align:center;">
<svg-icon icon-class="icon-yzk-login" style="font-size:36px" />
<div style="margin-top:5px;">眼科电子病历系统</div>
<div style="margin-top:5px;">眼科电子病历&科研</div>
</a>
<a class="aui-navbar__brand-mini" href="javascript:;"> <svg-icon icon-class="icon-yzk-login" style="font-size:36px" /></a>
</h1>
@ -55,7 +55,7 @@
<!-- 弹窗, 修改密码 -->
<update-password v-if="updatePasswordVisible" ref="updatePassword" />
<!-- 数据可视化 -->
<!-- <data-vision v-if="dataVisionVisible" ref="dataVisionRef" @dataVisionVisible="dataVisionVisible = false" />-->
<!-- <data-vision v-if="dataVisionVisible" ref="dataVisionRef" @dataVisionVisible="dataVisionVisible = false" />-->
</nav>
</template>
<script>
@ -72,7 +72,7 @@ export default {
inject: ['refresh'],
components: {
UpdatePassword,
breadCrumb,
breadCrumb
// dataVision
},
data() {
@ -149,6 +149,9 @@ export default {
}
</script>
<style lang='scss' scoped>
.aui-navbar__header{
width: 160px;
}
.aui-navbar__brand{
font-size: 17px;
.sidebar-logo {

6
src/page-subspecialty/views/main-sidebar.vue

@ -135,6 +135,12 @@ export default {
}
</style>
<style lang="scss">
.aui-sidebar{
width: 160px !important;
}
.aui-sidebar__menu{
width: 160px;
}
.aui-sidebar__inner {
.el-menu-item:hover {
background: #545c64 !important;

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

@ -313,6 +313,7 @@ export default {
},
created() {
this.originalData = JSON.parse(JSON.stringify(this.formData))
console.log(this.patientDetail)
//
this.formData.patient.patientName = this.patientDetail.patientName
this.formData.patient.age = this.patientDetail.patientAge

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

@ -21,7 +21,7 @@
性别:<el-input v-model="patient.sex" style="flex: 1" />
</div>
<div class="item">
年龄:<el-input v-model="patient.sex" style="flex: 1" />
年龄:<el-input v-model="patient.age" style="flex: 1" />
</div>
<div class="item">
登记号:<el-input v-model="patient.patientId" style="flex: 1" />

33
src/page-subspecialty/views/modules/optometryManagement/dioptric/HIS-add.vue

@ -6,20 +6,34 @@
title="HIS查询"
>
<el-form ref="dataFormHis" :inline="true" :model="dataFormHis" class="demo-form-inline" :rules="dataRule" @keyup.enter.native="findHandle(2)">
<el-form-item prop="patientId">
<el-input v-model="dataFormHis.patientId" placeholder="请输入病历号" clearable @clear="findHandle(1)" />
</el-form-item>
<el-col :span="4">
<el-form-item prop="patientId">
<el-input v-model="dataFormHis.patientId" placeholder="请输入病历号" clearable @clear="findHandle(1)" />
</el-form-item>
</el-col>
<el-form-item prop="patientName">
<el-input v-model="dataFormHis.patientName" placeholder="请输入姓名" clearable @clear="findHandle(1)" />
</el-form-item>
<el-form-item prop="patientIdNumber">
<el-input v-model="dataFormHis.patientIdNumber" placeholder="请输入身份证号" clearable @clear="findHandle(1)" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="findHandle(2)">查询</el-button>
<el-form-item prop="outpatientDoc">
<el-input v-model="dataFormHis.outpatientDoc" placeholder="门诊医师" clearable @clear="findHandle(1)" />
</el-form-item>
<el-form-item prop="region">
<el-select v-model="dataFormHis.region" placeholder="请选择视光医师">
<el-option label="区域一" value="shanghai" />
<el-option label="区域二" value="beijing" />
</el-select>
</el-form-item>
<el-col :span="4">
<el-form-item>
<el-button type="primary" @click="findHandle(2)">查询</el-button>
<el-button @click="visible = !visible">取消</el-button>
</el-form-item>
</el-col>
</el-form>
<el-table v-loading="loading" :data="tableData" style="margin-bottom: 32px">
<el-table v-loading="loading" :data="tableData" style="margin-bottom: 32px" height="500">
<template slot="empty">
<span style="color: #969799;">{{ tableText }}</span>
</template>
@ -27,7 +41,7 @@
<el-table-column property="patientName" label="患者姓名" width="100" />
<el-table-column property="patientIdNumber" label="身份证号" />
<el-table-column property="patientPhone" label="联系电话" />
<el-table-column property="patientAddress" label="家庭地址" />
<!-- <el-table-column property="patientAddress" label="家庭地址" />-->
<el-table-column label="操作" width="80">
<template slot-scope="scope">
<p class="introduce" @click="introduceHandle(scope.row)">引入</p>
@ -55,7 +69,9 @@ export default {
dataFormHis: {
patientId: '',
patientName: '',
patientIdNumber: ''
patientIdNumber: '',
outpatientDoc: '',
region: ''
},
dataForm: {},
tableData: [],
@ -133,6 +149,7 @@ export default {
</script>
<style lang="scss" scoped>
.HIS-dialog {
box-sizing: border-box;
.cycle-display {
.el-form-item__content {
display: flex;

19
src/page-subspecialty/views/modules/optometryManagement/dioptric/patient-add-or-update.vue

@ -18,11 +18,11 @@
</el-form-item>
<el-form-item label="出生日期:" label-width="120px" prop="patientBirthday">
<el-date-picker
v-model="dataForm.patientBirthday"
align="right"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
v-model="dataForm.patientBirthday"
align="right"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
/>
</el-form-item>
<el-form-item label="性别:" label-width="120px" prop="gender">
@ -38,11 +38,9 @@
<el-form-item label="家庭地址:" label-width="120px" prop="patientAddress">
<el-input v-model="dataForm.patientAddress" placeholder="请输入地址" />
</el-form-item>
<!-- <el-form-item label="随访方案:" label-width="90px" prop="visitId">-->
<!-- <el-select v-model="dataForm.visitId" placeholder="请选择随访方案">-->
<!-- <el-option v-for="item in visitList" :key="item.id" :label="item.name" :value="item.id" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="医疗项目:" label-width="120px" prop="patientAddress">
<el-input v-model="dataForm.zlProject" placeholder="请输入医疗项目" />
</el-form-item>
<el-form-item label="备注:" label-width="120px" prop="remarks">
<el-input v-model="dataForm.remark" type="textarea" />
</el-form-item>
@ -76,6 +74,7 @@ export default {
patientPhone: '',
patientAddress: '',
patientBirthday: '',
zlProject: '',
visitId: '',
remark: ''
},

31
src/page-subspecialty/views/modules/outpatientManagement/call/HIS-add.vue

@ -6,20 +6,34 @@
title="HIS查询"
>
<el-form ref="dataFormHis" :inline="true" :model="dataFormHis" class="demo-form-inline" :rules="dataRule" @keyup.enter.native="findHandle(2)">
<el-form-item prop="patientId">
<el-input v-model="dataFormHis.patientId" placeholder="请输入病历号" clearable @clear="findHandle(1)" />
</el-form-item>
<el-col :span="4">
<el-form-item prop="patientId">
<el-input v-model="dataFormHis.patientId" placeholder="请输入病历号" clearable @clear="findHandle(1)" />
</el-form-item>
</el-col>
<el-form-item prop="patientName">
<el-input v-model="dataFormHis.patientName" placeholder="请输入姓名" clearable @clear="findHandle(1)" />
</el-form-item>
<el-form-item prop="patientIdNumber">
<el-input v-model="dataFormHis.patientIdNumber" placeholder="请输入身份证号" clearable @clear="findHandle(1)" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="findHandle(2)">查询</el-button>
<el-form-item prop="outpatientDoc">
<el-input v-model="dataFormHis.outpatientDoc" placeholder="请输入门诊医师" clearable @clear="findHandle(1)" />
</el-form-item>
<el-form-item prop="region">
<el-select v-model="dataFormHis.region" placeholder="请选择视光医师">
<el-option label="区域一" value="shanghai" />
<el-option label="区域二" value="beijing" />
</el-select>
</el-form-item>
<el-col :span="4">
<el-form-item>
<el-button type="primary" @click="findHandle(2)">查询</el-button>
<el-button @click="visible = !visible">取消</el-button>
</el-form-item>
</el-col>
</el-form>
<el-table v-loading="loading" :data="tableData" style="margin-bottom: 32px">
<el-table v-loading="loading" :data="tableData" style="margin-bottom: 32px" height="500">
<template slot="empty">
<span style="color: #969799;">{{ tableText }}</span>
</template>
@ -27,7 +41,6 @@
<el-table-column property="patientName" label="患者姓名" width="100" />
<el-table-column property="patientIdNumber" label="身份证号" />
<el-table-column property="patientPhone" label="联系电话" />
<el-table-column property="patientAddress" label="家庭地址" />
<el-table-column label="操作" width="80">
<template slot-scope="scope">
<p class="introduce" @click="introduceHandle(scope.row)">引入</p>
@ -55,7 +68,9 @@ export default {
dataFormHis: {
patientId: '',
patientName: '',
patientIdNumber: ''
patientIdNumber: '',
outpatientDoc: '',
region: ''
},
dataForm: {},
tableData: [],

15
src/page-subspecialty/views/modules/outpatientManagement/call/patient-add-or-update.vue

@ -38,11 +38,14 @@
<el-form-item label="家庭地址:" label-width="120px" prop="patientAddress">
<el-input v-model="dataForm.patientAddress" placeholder="请输入地址" />
</el-form-item>
<!-- <el-form-item label="随访方案:" label-width="90px" prop="visitId">-->
<!-- <el-select v-model="dataForm.visitId" placeholder="请选择随访方案">-->
<!-- <el-option v-for="item in visitList" :key="item.id" :label="item.name" :value="item.id" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="医疗项目:" label-width="120px" prop="patientAddress">
<el-input v-model="dataForm.zlProject" placeholder="请输入医疗项目" />
</el-form-item>
<!-- <el-form-item label="随访方案:" label-width="90px" prop="visitId">-->
<!-- <el-select v-model="dataForm.visitId" placeholder="请选择随访方案">-->
<!-- <el-option v-for="item in visitList" :key="item.id" :label="item.name" :value="item.id" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="备注:" label-width="120px" prop="remarks">
<el-input v-model="dataForm.remark" type="textarea" />
</el-form-item>
@ -76,6 +79,7 @@ export default {
patientPhone: '',
patientAddress: '',
patientBirthday: '',
zlProject: '',
visitId: '',
remark: ''
},
@ -117,7 +121,6 @@ export default {
this.visible = true
this.$nextTick(() => {
this.$refs.dataForm.resetFields() //
// this.getVisitList() // 访
if (this.params.patientIdNumber && this.dataForm.title !== 'HIS引入') {
this.getInfo()
} else if (this.dataForm.title === 'HIS引入') {

27
src/page-subspecialty/views/modules/outpatientManagement/treat/HIS-add.vue

@ -6,20 +6,34 @@
title="HIS查询"
>
<el-form ref="dataFormHis" :inline="true" :model="dataFormHis" class="demo-form-inline" :rules="dataRule" @keyup.enter.native="findHandle(2)">
<el-form-item prop="patientId">
<el-input v-model="dataFormHis.patientId" placeholder="请输入病历号" clearable @clear="findHandle(1)" />
</el-form-item>
<el-col :span="4">
<el-form-item prop="patientId">
<el-input v-model="dataFormHis.patientId" placeholder="请输入病历号" clearable @clear="findHandle(1)" />
</el-form-item>
</el-col>
<el-form-item prop="patientName">
<el-input v-model="dataFormHis.patientName" placeholder="请输入姓名" clearable @clear="findHandle(1)" />
</el-form-item>
<el-form-item prop="patientIdNumber">
<el-input v-model="dataFormHis.patientIdNumber" placeholder="请输入身份证号" clearable @clear="findHandle(1)" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="findHandle(2)">查询</el-button>
<el-form-item prop="outpatientDoc">
<el-input v-model="dataFormHis.outpatientDoc" placeholder="请输入门诊医师" clearable @clear="findHandle(1)" />
</el-form-item>
<el-form-item prop="region">
<el-select v-model="dataFormHis.region" placeholder="请选择视光医师">
<el-option label="区域一" value="shanghai" />
<el-option label="区域二" value="beijing" />
</el-select>
</el-form-item>
<el-col :span="4">
<el-form-item>
<el-button type="primary" @click="findHandle(2)">查询</el-button>
<el-button @click="visible = !visible">取消</el-button>
</el-form-item>
</el-col>
</el-form>
<el-table v-loading="loading" :data="tableData" style="margin-bottom: 32px">
<el-table v-loading="loading" :data="tableData" style="margin-bottom: 32px" height="500">
<template slot="empty">
<span style="color: #969799;">{{ tableText }}</span>
</template>
@ -27,7 +41,6 @@
<el-table-column property="patientName" label="患者姓名" width="100" />
<el-table-column property="patientIdNumber" label="身份证号" />
<el-table-column property="patientPhone" label="联系电话" />
<el-table-column property="patientAddress" label="家庭地址" />
<el-table-column label="操作" width="80">
<template slot-scope="scope">
<p class="introduce" @click="introduceHandle(scope.row)">引入</p>

14
src/page-subspecialty/views/modules/outpatientManagement/treat/patient-add-or-update.vue

@ -38,11 +38,14 @@
<el-form-item label="家庭地址:" label-width="120px" prop="patientAddress">
<el-input v-model="dataForm.patientAddress" placeholder="请输入地址" />
</el-form-item>
<!-- <el-form-item label="随访方案:" label-width="90px" prop="visitId">-->
<!-- <el-select v-model="dataForm.visitId" placeholder="请选择随访方案">-->
<!-- <el-option v-for="item in visitList" :key="item.id" :label="item.name" :value="item.id" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="医疗项目:" label-width="120px" prop="patientAddress">
<el-input v-model="dataForm.zlProject" placeholder="请输入医疗项目" />
</el-form-item>
<!-- <el-form-item label="随访方案:" label-width="90px" prop="visitId">-->
<!-- <el-select v-model="dataForm.visitId" placeholder="请选择随访方案">-->
<!-- <el-option v-for="item in visitList" :key="item.id" :label="item.name" :value="item.id" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="备注:" label-width="120px" prop="remarks">
<el-input v-model="dataForm.remark" type="textarea" />
</el-form-item>
@ -76,6 +79,7 @@ export default {
patientPhone: '',
patientAddress: '',
patientBirthday: '',
zlProject: '',
visitId: '',
remark: ''
},

11
src/utils/confirm.js

@ -1,16 +1,17 @@
import { MessageBox } from 'element-ui'
import { Message } from 'element-ui'
export const confirm = (text) => {
export const confirm = (text, confirmButtonText = '确定', cancelButtonText = '取消', cancelText = '已取消删除') => {
text = text.length > 0 ? text : '此操作将永久删除该文件, 是否继续?'
return new Promise((resolve, reject) => {
MessageBox.confirm(text, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
confirmButtonText,
cancelButtonText,
type: 'warning'
}).then((res) => {
resolve(res)
}).catch(() => {
Message.info('已取消删除')
}).catch(err => {
reject(err)
Message.info(cancelText)
})
})
}

Loading…
Cancel
Save