bianyaqi 2 years ago
parent
commit
5d54bdfab4
  1. 255
      src/components/360View/commonForm/deveopmentFIle.vue
  2. 191
      src/components/360View/commonForm/eyesVision.vue
  3. 272
      src/components/360View/commonForm/optometryForm.vue
  4. 139
      src/components/360View/commonForm/threeVision.vue
  5. 3
      src/components/360View/medicalRecord/index.vue
  6. 4
      src/components/360View/opticalFile/index.vue
  7. 2
      src/page-subspecialty/views/modules/optometryManagement/dioptric/index.vue
  8. 2
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/first-visit/index.vue
  9. 564
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/notice-book.vue
  10. 2
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/review.vue
  11. 3
      src/page-subspecialty/views/modules/outpatientManagement/call/index.vue
  12. 2
      src/page-subspecialty/views/modules/outpatientManagement/treat/index.vue

255
src/components/360View/commonForm/deveopmentFIle.vue

@ -33,8 +33,15 @@
</div>
</div>
<div v-if="scope.row.name == '是否戴镜'">
<div class="width-100 center">
<el-input v-model="scope.row.isMirror" placeholder="" />
<div style="display:flex;">
<el-select v-model="scope.row.isMirror" placeholder="请选择" style="width: 80%">
<el-option
v-for="item in scope.row.mirrorList"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
</div>
</template>
@ -71,8 +78,19 @@
</div>
</div>
<div v-if="scope.row.name == '是否戴镜'">
<div class="width-100 center">
<el-input v-model="scope.row.mirrorHabit" placeholder="" />
<div style="display:flex;">
<el-select v-model="scope.row.value" placeholder="请选择" style="width: 80%">
<el-option
v-for="item in scope.row.mirrorHabit"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
<!-- <div v-for="(item,index) in scope.row.mirrorHabit" :key="index" class="check" @click="item.isSelect = !item.isSelect">-->
<!-- <input type="checkbox" :checked="item.isSelect">-->
<!-- <div>{{ item.name }}</div>-->
<!-- </div>-->
</div>
</div>
</template>
@ -95,7 +113,11 @@
<template slot-scope="scope">
<div v-if="scope.row.name == '姓名'">
<div class="width-100 center">
<el-input v-model="scope.row.birthday" placeholder="" />
<el-date-picker
v-model="scope.row.birthday"
type="date"
placeholder="选择日期"
/>
</div>
</div>
<div v-if="scope.row.name == '身高'">
@ -115,58 +137,41 @@
<el-table-column label="" width="" :resizable="false" prop="type">
<template slot-scope="scope">
<div v-if="scope.row.name == '戴镜类型'">
<div class="width-180 center">
<div style="display: flex;flex-wrap: wrap;justify-content: center">
<div v-for="(item,index) in scope.row.mirrorType" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
</div>
</div>
<!-- <el-checkbox-group v-model="scope.row.mirrorType">-->
<!-- <el-checkbox label="框架" />-->
<!-- <el-checkbox label="OK镜" />-->
<!-- <el-checkbox label="RGP" />-->
<!-- <el-checkbox label="软镜" />-->
<!-- </el-checkbox-group>-->
</div>
<el-select v-model="scope.row.value" multiple placeholder="请选择" style="width: 80%">
<el-option
v-for="item in scope.row.mirrorType"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
<div v-if="scope.row.name == '旧镜参数'">
<div class="width-120 center">
<div class="width-180 center">
<el-input v-model="scope.row.od" placeholder="">
<template slot="prepend">OD:</template>
</el-input>
</div>
</div>
<div v-if="scope.row.name == '父母是否近视'">
<div class="width-180 center">
<div style="display: flex;flex-wrap: wrap;justify-content: center">
<div v-for="(item,index) in scope.row.shortsighte" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
</div>
</div>
<!-- <el-checkbox-group v-model="scope.row.shortsighte">-->
<!-- <el-checkbox label="父亲" />-->
<!-- <el-checkbox label="母亲" />-->
<!-- <el-checkbox label="父亲和母亲" />-->
<!-- <el-checkbox label="均无" />-->
<!-- </el-checkbox-group>-->
</div>
<el-select v-model="scope.row.value" multiple placeholder="请选择" style="width: 80%">
<el-option
v-for="item in scope.row.shortsighte"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
<div v-if="scope.row.name == '户外活动时间'">
<div class="width-180 center">
<div style="display: flex;flex-wrap: wrap;justify-content: center">
<div v-for="(item,index) in scope.row.outTime" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
</div>
</div>
<!-- <el-checkbox-group v-model="scope.row.outTime">-->
<!-- <el-checkbox label="<1h" />-->
<!-- <el-checkbox label="1h-2h" />-->
<!-- <el-checkbox label=">2h" />-->
<!-- </el-checkbox-group>-->
</div>
<el-select v-model="scope.row.value" multiple placeholder="请选择" style="width: 80%">
<el-option
v-for="item in scope.row.outTime"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
<div v-if="scope.row.name == '备注'">
<div class="width-180 center">
@ -184,24 +189,20 @@
</div>
</div>
<div v-if="scope.row.name == '是否散瞳'">
<div class="width-180 center">
<div style="display: flex;flex-wrap: wrap;justify-content: center">
<div v-for="(item,index) in scope.row.mydriasis" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
</div>
</div>
<!-- <el-checkbox-group v-model="scope.row.mydriasis">-->
<!-- <el-checkbox label="未散瞳" />-->
<!-- <el-checkbox label="美多丽" />-->
<!-- <el-checkbox label="阿托品" />-->
<!-- <el-checkbox label="其他" />-->
<!-- </el-checkbox-group>-->
<div>
<el-select v-model="scope.row.value" multiple placeholder="请选择" style="width: 80%">
<el-option
v-for="item in scope.row.mydriasis"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
</div>
<div v-if="scope.row.name == '主觉验光'">
<div class="width-180 center">
<el-input v-model="scope.row.od" placeholder="" style="width: 100px" />
<el-input v-model="scope.row.od" placeholder="" />
</div>
</div>
<div v-if="scope.row.name == '眼位'">
@ -230,24 +231,17 @@
</div>
</div>
<div v-if="scope.row.name == '建议'">
<div class="width-180 center">
<div style="display: flex;flex-wrap: wrap;justify-content: center">
<div v-for="(item,index) in scope.row.suggest" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
</div>
</div>
<!-- <el-checkbox-group v-model="scope.row.suggest">-->
<!-- <el-checkbox label="框架" />-->
<!-- <el-checkbox label="OK镜" />-->
<!-- <el-checkbox label="RGP" />-->
<!-- <el-checkbox label="软镜" />-->
<!-- <el-checkbox label="其他" />-->
<!-- </el-checkbox-group>-->
</div>
<el-select v-model="scope.row.value" multiple placeholder="请选择" style="width: 80%">
<el-option
v-for="item in scope.row.suggest"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
<div v-if="scope.row.name == '眼轴/眼底照/地形图'">
<div class="width-180 center">
<div class="width-240 center">
<el-input v-model="scope.row.type" placeholder="" />
</div>
</div>
@ -256,7 +250,7 @@
<el-table-column label="" width="" :resizable="false">
<template slot-scope="scope">
<div v-if="scope.row.name == '旧镜参数'">
<div class="width-120 center">
<div class="width-180 center">
<el-input v-model="scope.row.os" placeholder="">
<template slot="prepend">OS:</template>
</el-input>
@ -274,7 +268,7 @@
</div>
<div v-if="scope.row.name == '主觉验光'">
<div class="width-180 center">
<el-input v-model="scope.row.os" placeholder="" style="width: 100px" />
<el-input v-model="scope.row.os" placeholder="" />
</div>
</div>
<div v-if="scope.row.name == '眼位'">
@ -358,26 +352,52 @@ export default {
}, {
name: '是否戴镜',
isMirror: '',
mirrorHabit: '',
mirrorList: [{
name: '是',
id: '1'
}, {
name: '否',
id: '1'
}],
value: '',
mirrorHabit: [{
name: '好',
id: '1',
isSelect: false
}, {
name: '一般',
id: '2',
isSelect: false
}, {
name: '差',
id: '3',
isSelect: false
}],
type: ''
}],
originHeadData: [],
originTableData: [],
tableData: [
{
name: '戴镜类型',
value: '',
mirrorType: [
{
name: '框架',
id: '1',
isSelect: false
},
{
name: 'OK镜',
id: '2',
isSelect: false
}, {
name: 'RGP',
id: '3',
isSelect: false
}, {
name: '软镜',
id: '4',
isSelect: false
}
]
@ -389,32 +409,41 @@ export default {
type: ''
}, {
name: '父母是否近视',
value: '',
shortsighte: [
{
name: '父亲',
id: '1',
isSelect: false
}, {
name: '母亲',
id: '2',
isSelect: false
}, {
name: '父亲和母亲',
id: '3',
isSelect: false
}, {
name: '均无',
id: '4',
isSelect: false
}
]
}, {
name: '户外活动时间',
value: '',
outTime: [
{
name: '<1h',
name: '\<1h',
id: '1',
isSelect: false
}, {
name: '1h-2h',
id: '2',
isSelect: false
}, {
name: '>2h',
name: '\>2h',
id: '3',
isSelect: false
}
],
@ -433,18 +462,23 @@ export default {
os: ''
}, {
name: '是否散瞳',
value: '',
mydriasis: [
{
name: '未散瞳',
id: '1',
isSelect: false
}, {
name: '美多丽',
id: '2',
isSelect: false
}, {
name: '阿托品',
id: '3',
isSelect: false
}, {
name: '其他',
id: '4',
isSelect: false
}
]
@ -481,18 +515,23 @@ export default {
suggest: [
{
name: '框架',
id: '1',
isSelect: false
}, {
name: 'OK镜',
id: '2',
isSelect: false
}, {
name: 'RGP',
id: '3',
isSelect: false
}, {
name: '软镜',
id: '4',
isSelect: false
}, {
name: '其他',
id: '5',
isSelect: false
}
]
@ -502,23 +541,9 @@ export default {
}]
}
},
computed: {
operationRecord: {
get() {
return this.$store.getters.operationRecord
}
}
},
watch: {
operationRecord: {
handler(value) {
},
deep: true,
immediate: true
}
},
mounted() {
this.originTableData = JSON.parse(JSON.stringify(this.tableData))
this.originHeadData = JSON.parse(JSON.stringify(this.headData))
this.getPatientData()
},
methods: {
@ -528,28 +553,7 @@ export default {
this.getPatientData()
},
reSet() {
this.headData = [
{
name: '个人基础信息',
type: ''
},
{
name: '姓名',
patientName: '',
sex: '',
birthday: '',
type: ''
}, {
name: '身高',
height: '',
weight: '',
time: ''
}, {
name: '是否戴镜',
isMirror: '',
mirrorHabit: '',
type: ''
}]
this.headData = this.originHeadData
this.tableData = this.originTableData
this.getPatientData()
},
@ -574,14 +578,6 @@ export default {
handleDelete() {
this.$emit('del')
},
//
singHandle(text) {
const value = {
text: text,
pageName: 'operationRecord'
}
this.$store.commit('beginSign', value)
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
if (rowIndex === 5) {
@ -746,6 +742,11 @@ export default {
width: 180px;
}
}
.width-240 {
.el-input {
width: 240px;
}
}
//.el-date-editor.el-input,
//.el-date-editor.el-input__inner {

191
src/components/360View/commonForm/eyesVision.vue

@ -46,16 +46,18 @@
</div>
<div v-else-if="scope.row.name == '签名'" style="display: flex;justify-content: space-between">
<div class="width-180" style="text-align: left">
<el-input v-model="scope.row.a" placeholder="">
<template slot="prepend">视光师:</template>
</el-input>
<!-- <el-input v-model="scope.row.a" placeholder="">-->
<!-- <template slot="prepend">视光师:</template>-->
<!-- </el-input>-->
<span style="display: inline-block;margin-top: 16px">视光师:</span>
<img v-if="scope.row.a" :src="scope.row.a" alt="" style="width: 80px;height: 60px">
</div>
<div class="width-180" style="text-align: left">
<div class="width-180" style="text-align: left;margin-top: 16px">
<el-input v-model="scope.row.b" placeholder="">
<template slot="prepend">医师:</template>
</el-input>
</div>
<div class="width-180" style="text-align: left">
<div class="width-180" style="text-align: left;margin-top: 16px">
日期<el-date-picker
v-model="scope.row.c"
type="date"
@ -105,12 +107,9 @@
</div>
<div v-if="scope.row.name == 'Worth-4-dot'">
<div class="width-180 center">
<!-- <el-input v-model="scope.row.b" placeholder="">-->
<!-- <template slot="prepend">:</template>-->
<!-- </el-input>-->
<el-input v-model="scope.row.a" placeholder="" />
<el-input v-model="scope.row.a" placeholder="" style="width: 100px" />
@D(
<el-input v-model="scope.row.b" placeholder="" />
<el-input v-model="scope.row.b" placeholder="" style="width: 100px" />
)
</div>
</div>
@ -191,59 +190,58 @@
</div>
</div>
<div v-if="scope.row.name == '初步诊断'">
<div class="width-180">
<div style="margin-bottom: 8px">
<div class="check" style="margin-left: 0" @click="scope.row.value = !scope.row.value">
<input type="checkbox" :checked="scope.row.value">正常
<div>
<div style="display:flex;margin-bottom: 8px">
<div class="check" style="margin-left: 0" @click="scope.row.normal = !scope.row.normal">
<input type="checkbox" :checked="scope.row.normal">正常
</div>
<div class="check" style="margin-left: 16px" @click="scope.row.normal = !scope.row.normal">
<input type="checkbox" :checked="!scope.row.normal">异常
</div>
</div>
<div v-if="scope.row.a.length" style="display: flex">
<div style="width: 240px;">聚散功能异常</div>
<div style="display: flex;flex-wrap: wrap">
<div v-for="(item,index) in scope.row.a" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
<div v-if="!scope.row.normal">
<div v-if="scope.row.a.length" style="display: flex">
<div style="width: 200px;">聚散功能异常</div>
<div style="width: 100%">
<el-select v-model="scope.row.value_a" multiple placeholder="请选择" style="width: 100%">
<el-option
v-for="item in scope.row.a"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
</div>
</div>
<div style="display: flex">
<div style="width: 160px;">调节功能异常</div>
<div style="display: flex;flex-wrap: wrap">
<div v-for="(item,index) in scope.row.b" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
<div style="display: flex">
<div style="width: 160px;">调节功能异常</div>
<div style="width: 100%">
<el-select v-model="scope.row.value_b" multiple placeholder="请选择" style="width: 100%">
<el-option
v-for="item in scope.row.b"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
</div>
<!-- <el-checkbox-group v-model="scope.row.b">-->
<!-- <el-checkbox label="调节灵敏度下降" />-->
<!-- <el-checkbox label="调节不能持久" />-->
<!-- <el-checkbox label="调节不足" />-->
<!-- <el-checkbox label="调节过度" />-->
<!-- <el-checkbox label="调节麻痹" />-->
<!-- </el-checkbox-group>-->
</div>
<div style="display: flex">
<span>斜视</span>
<div style="display: flex;flex-wrap: wrap">
<div v-for="(item,index) in scope.row.c" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
<div style="display: flex">
<span style="width: 160px;">斜视</span>
<div style="width: 100%">
<el-select v-model="scope.row.value_c" multiple placeholder="请选择" style="width: 100%">
<el-option
v-for="item in scope.row.c"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
</div>
<!-- <el-checkbox-group v-model="scope.row.c">-->
<!-- <el-checkbox label="内斜视" />-->
<!-- <el-checkbox label="外斜视" />-->
<!-- <el-checkbox label="间歇性外斜视" />-->
<!-- <el-checkbox label="垂直斜" />-->
<!-- </el-checkbox-group>-->
</div>
</div>
</div>
<!-- &lt;!&ndash; 签字 &ndash;&gt;-->
<!-- <div v-if="scope.row" class="sign center">-->
<!-- &lt;!&ndash; <span v-if="!operationRecord.doctorSignImg" class="sign" @click="singHandle('doctorSignImg')">点击签字</span>&ndash;&gt;-->
<!-- &lt;!&ndash; <img v-if="operationRecord.doctorSignImg" :src="operationRecord.doctorSignImg" alt="" width="90px" @click="singHandle('doctorSignImg')">&ndash;&gt;-->
<!-- </div>-->
</template>
</el-table-column>
<el-table-column label="" width="" :resizable="false">
@ -269,6 +267,17 @@
</el-input>
</div>
</div>
<div v-if="scope.row.name == 'Worth-4-dot'">
<div class="width-180 center">
<!-- <el-input v-model="scope.row.b" placeholder="">-->
<!-- <template slot="prepend">:</template>-->
<!-- </el-input>-->
<el-input v-model="scope.row.c" placeholder="" style="width: 100px" />
@N(
<el-input v-model="scope.row.d" placeholder="" style="width: 100px" />
)
</div>
</div>
<div v-if="scope.row.name == '立体视(stereo)'">
<div class="width-180 center">
<el-input v-model="scope.row.b" placeholder="">
@ -325,11 +334,6 @@
</el-input>
</div>
</div>
<!-- &lt;!&ndash; 签字 &ndash;&gt;-->
<!-- <div v-if="scope.row" class="sign center">-->
<!-- &lt;!&ndash; <span v-if="!operationRecord.doctorSignImg" class="sign" @click="singHandle('doctorSignImg')">点击签字</span>&ndash;&gt;-->
<!-- &lt;!&ndash; <img v-if="operationRecord.doctorSignImg" :src="operationRecord.doctorSignImg" alt="" width="90px" @click="singHandle('doctorSignImg')">&ndash;&gt;-->
<!-- </div>-->
</template>
</el-table-column>
</el-table>
@ -381,6 +385,7 @@ export default {
name: '交替遮盖试验(CT)',
a: '',
b: '',
c: '',
type: ''
}, {
name: '集合近点(NPC)',
@ -391,6 +396,8 @@ export default {
name: 'Worth-4-dot',
a: '',
b: '',
c: '',
d: '',
type: ''
}, {
name: '立体视(stereo)',
@ -434,64 +441,84 @@ export default {
c: ''
}, {
name: '初步诊断',
value: false,
normal: true,
value_a: '',
value_b: '',
value_c: '',
a: [
{
name: '集合不足',
id: '1',
isSelect: false
}, {
name: '集合过度',
id: '2',
isSelect: false
}, {
name: '散开不足',
id: '3',
isSelect: false
}, {
name: '散开过度',
id: '4',
isSelect: false
}, {
name: '内隐科',
id: '5',
isSelect: false
}, {
name: '外隐科',
id: '6',
isSelect: false
}, {
name: '假性集合不足',
id: '7',
isSelect: false
}, {
name: '融像性聚散功能异常',
id: '8',
isSelect: false
}
],
b: [
{
name: '调节灵敏度下降',
id: '1',
isSelect: false
}, {
name: '调节不能持久',
id: '2',
isSelect: false
}, {
name: '调节不足',
id: '3',
isSelect: false
}, {
name: '调节过度',
id: '4',
isSelect: false
}, {
name: '调节麻痹',
id: '5',
isSelect: false
}
],
c: [
{
name: '内斜视',
id: '1',
isSelect: false
}, {
name: '外斜视',
id: '2',
isSelect: false
}, {
name: '间歇性外斜视',
id: '3',
isSelect: false
}, {
name: '垂直斜',
id: '4',
isSelect: false
}
]
@ -506,32 +533,30 @@ export default {
}]
}
},
computed: {
operationRecord: {
get() {
return this.$store.getters.operationRecord
}
}
},
watch: {
operationRecord: {
handler(value) {
console.log(value)
},
deep: true,
immediate: true
}
},
created() {
},
mounted() {
this.originTableData = JSON.parse(JSON.stringify(this.tableData))
this.setSign()
this.getPatientData()
},
methods: {
setSign() {
const userData = JSON.parse(window.localStorage.getItem('qg-userData'))
const date = this.$moment().format('YYYY-MM-DD')
const mzName = window.localStorage.getItem('mzDoctorName')
this.tableData.forEach(item => {
if (item.name === '签名') {
item.a = userData.signImgBase
item.b = mzName
item.c = date
}
})
},
setData() {
this.dataForm = this.formContent.a
this.tableData = this.formContent.b
this.setSign()
this.getPatientData()
},
reSet() {
@ -542,6 +567,7 @@ export default {
patientAge: ''
}
this.tableData = this.originTableData
this.setSign()
this.getPatientData()
},
async getPatientData() {
@ -569,14 +595,6 @@ export default {
handleDelete() {
this.$emit('del')
},
//
singHandle(text) {
const value = {
text: text,
pageName: 'operationRecord'
}
this.$store.commit('beginSign', value)
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
if (rowIndex === 0 || rowIndex === 8) {
@ -590,13 +608,6 @@ export default {
colspan: 3
}
}
} else if (rowIndex === 4) {
if (columnIndex === 1) {
return {
rowspan: 1,
colspan: 2
}
}
} else if (rowIndex === 14) {
if (columnIndex === 1) {
return {
@ -697,7 +708,7 @@ export default {
width: 140px;
}
.el-input__suffix {
top: -7px;
//top: -7px;
}
.el-checkbox__input.is-checked + .el-checkbox__label {
color: #606266;

272
src/components/360View/commonForm/optometryForm.vue

@ -56,16 +56,15 @@
</div>
<div v-else-if="scope.row.name == 7" style="display: flex;justify-content: space-between">
<div class="width-180" style="text-align: left">
<el-input v-model="scope.row.a" placeholder="">
<template slot="prepend">视光师:</template>
</el-input>
<span style="display: inline-block;margin-top: 16px">视光师:</span>
<img v-if="scope.row.a" :src="scope.row.a" alt="" style="width: 80px;height: 60px">
</div>
<div class="width-180" style="text-align: left">
<el-input v-model="scope.row.b" placeholder="">
<el-input v-model="scope.row.b" placeholder="" style="margin-top: 16px">
<template slot="prepend">医师:</template>
</el-input>
</div>
<div class="width-180" style="text-align: left">
<div class="width-180" style="text-align: left;margin-top: 16px">
日期<el-date-picker
v-model="scope.row.c"
type="date"
@ -73,40 +72,46 @@
/>
</div>
</div>
<div v-else-if="scope.row.name == '最终处方'">
<div class="width-180 center" @click="copyData">
<el-button type="text" plain style="font-size: 14px">最终处方</el-button>
</div>
</div>
<p v-else>{{ scope.row.name }}</p>
</template>
</el-table-column>
<el-table-column label="" width="" :resizable="false">
<template slot-scope="scope">
<div v-if="scope.row.name == '1'">
<div class="width-180">
<div class="">
<div style="display: flex;flex-wrap: wrap">
<div v-for="(item,index) in scope.row.pupil" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
</div>
<el-select v-model="scope.row.value" multiple placeholder="请选择" style="width: 100%">
<el-option
v-for="item in scope.row.pupil"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
<!-- <el-checkbox-group v-model="scope.row.pupil">-->
<!-- <el-checkbox label="正常瞳孔" />-->
<!-- <el-checkbox label="复方托吡卡胺" />-->
<!-- <el-checkbox label="美多丽" />-->
<!-- <el-checkbox label="赛飞杰" />-->
<!-- <el-checkbox label="阿托品" />-->
<!-- </el-checkbox-group>-->
</div>
</div>
<div v-if="scope.row.name == '2'">
<div class="width-180">
<div style="display: flex;flex-wrap: wrap">
<div v-for="(item,index) in scope.row.examine" :key="index" class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">
<div>{{ item.name }}</div>
</div>
<el-select v-model="scope.row.value" multiple placeholder="请选择">
<el-option
v-for="item in scope.row.examine"
:key="item.id"
:label="item.name"
:value="item.name"
/>
</el-select>
<!-- <div v-for="(item,index) in scope.row.examine" :key="index" class="check" @click="item.isSelect = !item.isSelect">-->
<!-- <input type="checkbox" :checked="item.isSelect">-->
<!-- <div>{{ item.name }}</div>-->
<!-- </div>-->
</div>
<!-- <el-checkbox-group v-model="scope.row.examine">-->
<!-- <el-checkbox label="检影" />-->
<!-- <el-checkbox label="综合" />-->
<!-- </el-checkbox-group>-->
</div>
</div>
<div v-if="scope.row.name == '3'">
@ -156,15 +161,8 @@
<div>{{ item.name }}</div>
</div>
</div>
<!-- <el-checkbox-group v-model="scope.row.suggest">-->
<!-- <el-checkbox label="单光" />-->
<!-- <el-checkbox label="离焦镜片" />-->
<!-- <el-checkbox label="软镜" />-->
<!-- <el-checkbox label="RGP" />-->
<!-- <el-checkbox label="OK镜" />-->
<!-- </el-checkbox-group>-->
<p style="margin-left: 16px">
<el-input v-model="scope.row.value" placeholder="">
<el-input v-model="scope.row.value" placeholder="" style="width: 180px">
<template slot="prepend">其他:</template>
</el-input>
</p>
@ -331,6 +329,64 @@
下加光(ADD)
</div>
</div>
<div v-if="scope.row.name == '3'">
<div class="width-80 center">
<el-input v-model="scope.row.f" placeholder="" />
</div>
</div>
<div v-if="scope.row.name == '4'">
<div class="width-80 center">
<el-input v-model="scope.row.f" placeholder="" />
</div>
</div>
<div v-if="scope.row.name == '5'">
<div class="width-80 center">
<el-input v-model="scope.row.f" placeholder="" />
</div>
</div>
<div v-if="scope.row.name == '6'">
<div class="width-80 center">
<el-input v-model="scope.row.f" placeholder="" />
</div>
</div>
</template>
</el-table-column>
<el-table-column label="" width="" :resizable="false">
<template slot-scope="scope">
<div v-if="scope.row.name == '验光检查'">
<div class="width-180 center">
瞳距(PD)
</div>
</div>
<div v-if="scope.row.name == '3'">
<div class="width-80 center">
<el-input v-model="scope.row.g" placeholder="" />
</div>
</div>
<div v-if="scope.row.name == '4'">
<div class="width-80 center">
<el-input v-model="scope.row.g" placeholder="" />
</div>
</div>
<div v-if="scope.row.name == '5'">
<div class="width-80 center">
<el-input v-model="scope.row.g" placeholder="" />
</div>
</div>
<div v-if="scope.row.name == '6'">
<div class="width-80 center">
<el-input v-model="scope.row.g" placeholder="" />
</div>
</div>
</template>
</el-table-column>
<el-table-column label="" width="" :resizable="false">
<template slot-scope="scope">
<div v-if="scope.row.name == '验光检查'">
<div class="width-180 center">
棱镜
</div>
</div>
</template>
</el-table-column>
</el-table>
@ -384,33 +440,42 @@ export default {
type: ''
}, {
name: '1',
value: '',
pupil: [
{
name: '正常瞳孔',
id: '1',
isSelect: false
}, {
name: '复方托吡卡胺',
id: '2',
isSelect: false
}, {
name: '美多丽',
id: '3',
isSelect: false
}, {
name: '赛飞杰',
id: '4',
isSelect: false
}, {
name: '阿托品',
id: '5',
isSelect: false
}
],
type: ''
}, {
name: '2',
value: '',
examine: [
{
name: '检影',
id: '1',
isSelect: false
}, {
name: '综合',
id: '2',
isSelect: false
}
],
@ -425,7 +490,9 @@ export default {
b: '',
c: '',
d: '',
e: ''
e: '',
f: '',
g: ''
}, {
name: '4',
type: '',
@ -433,7 +500,9 @@ export default {
b: '',
c: '',
d: '',
e: ''
e: '',
f: '',
g: ''
}, {
name: '最终处方',
value: [
@ -453,7 +522,9 @@ export default {
b: '',
c: '',
d: '',
e: ''
e: '',
f: '',
g: ''
}, {
name: '6',
type: '',
@ -461,7 +532,9 @@ export default {
b: '',
c: '',
d: '',
e: ''
e: '',
f: '',
g: ''
}, {
name: '配镜建议',
suggest: [
@ -497,38 +570,32 @@ export default {
}
}
},
computed: {
operationRecord: {
get() {
return this.$store.getters.operationRecord
}
}
},
watch: {
operationRecord: {
handler(value) {
},
deep: true,
immediate: true
}
},
destroyed() {
this.ws.close()
},
mounted() {
this.setSign()
this.initWebSoket()
this.originTableData = JSON.parse(JSON.stringify(this.tableData))
this.getPatientData()
const shili = window.localStorage.getItem('shili') ? JSON.parse(window.localStorage.getItem('shili')) : []
if (shili.length) {
this.tableData[0].od = shili[0].odVan
this.tableData[0].os = shili[0].osVan
}
},
methods: {
setSign() {
const userData = JSON.parse(window.localStorage.getItem('qg-userData'))
const date = this.$moment().format('YYYY-MM-DD')
const mzName = window.localStorage.getItem('mzDoctorName')
this.tableData.forEach(item => {
if (item.name == '7') {
item.a = userData.signImgBase
item.b = mzName
item.c = date
}
})
},
setData() {
this.dataForm = this.formContent.a
this.tableData = this.formContent.b
this.setSign()
this.getPatientData()
},
reSet() {
@ -541,8 +608,33 @@ export default {
fileNUm: ''
}
this.tableData = this.originTableData
this.setSign()
this.getPatientData()
},
copyData() {
const ods = this.tableData.filter(item => item.name === '3')
const oss = this.tableData.filter(item => item.name === '4')
this.tableData.forEach(item => {
if (item.name === '5') {
item.a = ods[0].a
item.b = ods[0].b
item.c = ods[0].c
item.d = ods[0].d
item.e = ods[0].e
item.f = ods[0].f
item.g = ods[0].g
}
if (item.name === '6') {
item.a = oss[0].a
item.b = oss[0].b
item.c = oss[0].c
item.d = oss[0].d
item.e = oss[0].e
item.f = oss[0].f
item.g = oss[0].g
}
})
},
async getPatientData() {
const shili = window.localStorage.getItem('shili') ? JSON.parse(window.localStorage.getItem('shili')) : []
if (shili.length) {
@ -610,24 +702,22 @@ export default {
// wss://127.0.0.1:8030/data
// const url = 'ws://47.110.224.240:8036/xiangan-crf/websocket/0071'
// const url = 'ws://192.168.0.167:8036/xiangan-crf/websocket/0071'
const url = 'wss://127.0.0.1:8030/data'
console.log(123)
const url = 'ws://127.0.0.1:8030/data'
const self = this
this.ws = new WebSocket(url)
this.ws.onopen = function() {
console.log('连接成功')
self.start();
self.start()
}
this.ws.onclose = function() {
console.log('连接关闭')
self.reconnect();
// console.log('')
self.reconnect()
}
this.ws.onerror = function() {
console.log('连接失败')
self.reconnect();
// console.log('')
self.reconnect()
}
this.ws.onmessage = function(msg) {
console.log(msg)
const message = JSON.parse(msg.data)
// const message = JSON.parse(data.msgTxt)
console.log(message)
@ -646,7 +736,7 @@ export default {
item.e = message.LData.ADD
}
})
self.reset();
self.reset()
}
},
handleSaveTable() {
@ -659,14 +749,6 @@ export default {
handleDelete() {
this.$emit('del')
},
//
singHandle(text) {
const value = {
text: text,
pageName: 'operationRecord'
}
this.$store.commit('beginSign', value)
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
if (rowIndex === 0 || rowIndex === 3 || rowIndex === 6) {
@ -676,35 +758,42 @@ export default {
colspan: 1
}
}
// [0,11] 71
// [0,11] 91
if (rowIndex === 11) {
return {
rowspan: 1,
colspan: 7
colspan: 9
}
}
} else if (columnIndex === 1) {
if (rowIndex === 6 || rowIndex === 9 || rowIndex === 10) {
return {
rowspan: 1,
colspan: 6
colspan: 8
}
}
if (rowIndex === 1 || rowIndex === 2) {
return {
rowspan: 1,
colspan: 6
colspan: 7
}
}
} else if (columnIndex === 4) {
} else if (columnIndex === 3) {
if (rowIndex === 0) {
return {
rowspan: 1,
colspan: 2
}
}
} else if (columnIndex === 5) {
if (rowIndex === 0) {
return {
rowspan: 1,
colspan: 3
}
}
} else if (rowIndex === 6 || rowIndex === 9 || rowIndex === 10) {
if (columnIndex === 2 || columnIndex === 3 || columnIndex === 4 || columnIndex === 5 || columnIndex === 6) {
if (columnIndex === 2 || columnIndex === 3 || columnIndex === 4 || columnIndex === 5 || columnIndex === 3) {
return {
rowspan: 0,
colspan: 0
@ -786,9 +875,14 @@ export default {
width: 120px;
}
}
.width-180 {
.width-160 {
.el-input {
width: 160px;
}
}
.width-80 {
.el-input {
width: 180px;
width: 80px;
}
}
.el-input__inner {
@ -811,7 +905,7 @@ export default {
width: 140px;
}
.el-input__suffix {
top: -7px;
//top: -7px;
}
.el-checkbox__input.is-checked + .el-checkbox__label {
color: #606266;
@ -857,17 +951,5 @@ export default {
::v-deep .el-table .el-table__cell{
padding: 5px 0;
}
// .el-table--border .el-table__cell, .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed {
// border-right: 1px solid #808080;
// }
// .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf {
// border-bottom: 1px solid #808080 !important;
// }
// .el-table--border, .el-table--group {
// border: 1px solid #808080;
// }
// .el-table--border {
// border-bottom: 0;
// }
}
</style>

139
src/components/360View/commonForm/threeVision.vue

@ -64,14 +64,20 @@
<el-input v-model="scope.row.value" placeholder="" style="width: 80%" />
</div>
<div v-else-if="scope.row.name === '签名'" style="display: flex;justify-content: space-between;padding: 0 16px">
<div>
<span>视光师:</span>
<el-input v-model="scope.row.a" style="width: 160px" placeholder="" />
<div class="width-180" style="text-align: left">
<!-- <span>视光师:</span>-->
<!-- <el-input v-model="scope.row.a" style="width: 160px" placeholder="" />-->
<span style="display: inline-block;margin-top: 16px">视光师:</span>
<img v-if="scope.row.a" :src="scope.row.a" alt="" style="width: 80px;height: 60px">
</div>
<div>
<span>日期:</span>
<el-date-picker
v-model="scope.row.b"
<div class="width-180" style="text-align: left;margin-top: 16px">
<el-input v-model="scope.row.b" placeholder="">
<template slot="prepend">医师:</template>
</el-input>
</div>
<div class="width-180" style="text-align: left;margin-top: 16px">
日期<el-date-picker
v-model="scope.row.c"
type="date"
placeholder="选择日期"
/>
@ -233,6 +239,7 @@ export default {
patientAge: ''
},
patientData: {},
originTableData: [],
tableData: [
{
name: '基础信息',
@ -320,36 +327,35 @@ export default {
}, {
name: '签名',
a: '',
b: ''
b: '',
c: ''
}]
}
},
computed: {
operationRecord: {
get() {
return this.$store.getters.operationRecord
}
}
},
watch: {
operationRecord: {
handler(value) {
console.log(value)
},
deep: true,
immediate: true
}
},
created() {
// this.printPage('threeFunc')
},
mounted() {
this.originTableData = JSON.parse(JSON.stringify(this.tableData))
this.setSign()
this.getPatientData()
},
methods: {
setSign() {
const userData = JSON.parse(window.localStorage.getItem('qg-userData'))
const date = this.$moment().format('YYYY-MM-DD')
const mzName = window.localStorage.getItem('mzDoctorName')
this.tableData.forEach(item => {
if (item.name === '签名') {
item.a = userData.signImgBase
item.b = mzName
item.c = date
}
})
},
setData() {
this.dataForm = this.formContent.a
this.tableData = this.formContent.b
this.setSign()
this.getPatientData()
},
reSet() {
@ -359,77 +365,8 @@ export default {
sex: '',
age: ''
}
this.tableData = [
{
name: '基础信息',
type: ''
},
{
name: '屈光状态',
OD: '',
VA: '',
type: ''
}, {
name: '屈光状态a',
OS: '',
VA: '',
type: ''
}, {
name: 'CT+Prism',
ct: '',
type: ''
}, {
name: '同时视检查',
type: ''
}, {
name: '检查画片',
value: '',
type: '1'
}, {
name: '主观斜视角',
od: '',
os: ''
}, {
name: '客观斜视角',
od: '',
os: ''
}, {
name: '融合功能检查'
}, {
name: '检查画片',
value: '',
type: '2'
}, {
name: '融合点',
od: '',
os: '',
type: ''
}, {
name: 'Worth-4-dot',
a: '',
b: '',
c: '',
d: ''
}, {
name: '立体式检查',
value: ''
}, {
name: 'TITMUS(近)',
a: '',
b: '',
c: ''
}, {
name: '同视机九方位检查'
}, {
name: 'ODOS'
}, {
name: '报告描述',
value: ''
}, {
name: '签名',
a: '',
b: ''
}]
this.tableData = JSON.parse(JSON.stringify(this.originTableData))
this.setSign()
this.getPatientData()
},
async getPatientData() {
@ -447,14 +384,6 @@ export default {
this.$message.error(res.msg)
}
},
//
singHandle(text) {
const value = {
text: text,
pageName: 'operationRecord'
}
this.$store.commit('beginSign', value)
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
if (rowIndex === 0 || rowIndex === 4 || rowIndex === 8 || rowIndex === 12 || rowIndex === 17 || rowIndex === 15 || rowIndex === 16 || rowIndex === 14) {
@ -523,7 +452,7 @@ export default {
padding: 7px 0 !important;
}
}
.printBox{
.printBox {
.btnBox{
display: flex;
justify-content: flex-end;

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

@ -172,7 +172,7 @@ export default {
const params = {
flag: 8,
name: this.name,
jsonText,
jsonText: JSON.stringify(data),
patientId: this.patientId,
id: this.id,
platform: this.isSearch
@ -248,6 +248,7 @@ export default {
} else {
this.$message.error(res.msg)
}
this.getPatientData()
}
}
}

4
src/components/360View/opticalFile/index.vue

@ -101,7 +101,7 @@ export default {
}
},
mounted() {
this.getFormList()
this.getFormList(1)
},
methods: {
handleForm(index, item) {
@ -224,6 +224,8 @@ export default {
this.curIndex = 0
this.id = this.formList.length ? this.formList[0].id : ''
this.name = this.formList.length ? this.formList[0].name : ''
const jsonText = this.formList.length ? this.formList[0].jsonText : ''
this.handleForm(this.curIndex, { name: this.name, id: this.id, jsonText: jsonText })
}
} else {
this.$message.error(res.msg)

2
src/page-subspecialty/views/modules/optometryManagement/dioptric/index.vue

@ -261,6 +261,8 @@ export default {
this.detailViewVisible = true
this.patientId = scopeRow.patientId
this.patientIdNumber = scopeRow.patientIdNumber
const mzName = scopeRow.mzDoctorName ? scopeRow.mzDoctorName : ''
window.localStorage.setItem('mzDoctorName', mzName)
this.$nextTick(() => {
// // id--
this.$refs.viewRef.getPatientData()

2
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/first-visit/index.vue

@ -65,7 +65,7 @@ export default {
//
printerHandle() {
this.$refs.crfComponent.$el.contentWindow.print()
},
}
}
}
</script>

564
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/notice-book.vue

@ -0,0 +1,564 @@
<template>
<div class="notice-book">
<!-- 告知书头部 -->
<head-template head-left="患者告知书 ">
<el-button type="primary" size="small" @click="saveEditNotice()">保存</el-button>
<el-button v-print="'#noticePrint'" size="small">打印</el-button>
</head-template>
<div id="noticePrint" class="notice-content">
<div class="notice-box" v-if="isNew === 3">
<div id="notice-three" class="notice_tip" style="page-break-after:always">
<h3 style="text-align: center;margin-bottom: 32px;">
角膜塑形镜配戴告知书
<p style="font-size: 13px">此页告知书一式两份一份存档一份给患者</p>
</h3>
<p style="color: red">角膜塑形镜OK镜一夜戴型高透氧性硬性隐形眼镜属于易碎品</p>
<p style="font-weight: bold">角膜塑形镜的适应症</p>
<p>年龄8周岁以上近视量可矫正范围在-0.25DS~-6.00DS以低于-4.00DS为理想矫治范围</p>
<p>角膜散光小于1.50D顺规性散光者相对合适</p>
<p>角膜曲率在40.00~46.00D角膜曲率过平<40.0或过陡>46.0效果可能不理想需有经验医师酌情考虑处方</p>
<p>
1.验配单位所提供产品为国家食品药品监督管理局注册登记的合格产品
</p>
<p>
2.验配单位负责近视矫正过程中的配戴眼数据采集分析镜片订制戴镜后跟踪评估及疑难咨询等工作
</p>
<p>
3.验配单位保证以高度责任心尽力达到最优近视矫治效果但由于个体差异及其他多种因素的影响验配单位无法对角膜塑形镜的效果做出任何保证性承诺
</p>
<p>
4.OK镜属于隐形眼镜它与其它隐形眼镜一样存在各种感染的可能如遇严重感染可能会影响眼睛健康必须规范使用按时随访
</p>
<p>
5.OK镜对近视的加深有相对延缓作用但并不能完全阻止近视的发展也不可能根治近视
</p>
<p>
6.<span style="color: red">关于0K镜破碎的优惠条款</span>配戴者需将<span style="color: red">原包装及完整的碎片镜片上要有完整编码</span>交还验配单位后方可享受以下优惠自镜片交付日算起<span style="font-weight: bold">30</span>天内可享受<span style="color: red">免费</span>换片一次<span style="color: red">已享受免费换片的新片如再次破碎无法再免费换片</span><span style="font-weight: bold">31~90天内</span>破碎<span style="color: red">按原价的半价</span>补片如镜片丢失碎片无完整编码粉碎性损坏无法交还原镜片及包装碎片缺少部分大于1/4整片等验配单位不提供免费换片<span style="color: red">患者收到取镜通知30天内未取镜则视为自动放弃该项优惠</span>
</p>
<p>
7.自镜片交付日算起90天内按要求复查的配戴者如果出现适配不理想的情况经验配单位鉴定需调整镜片设计参数重新订片的配戴者无需承担二次配镜的镜片购买费用如经验配单位鉴定无法消除且必须终止矫正的在配戴者退回完好无损的镜片和原包装后双方共同承担损失验配机构返还配戴者镜片费用<span style="font-weight: bold">百分之五十</span>的款项
</p>
<p>
8.配戴者在<span style="color: red">订单已发出或取镜后30天内</span>要求退片的在配戴者交回完好的原镜片及原包装将退还配戴者镜片费用<span style="color: red">百分之五十</span>的款项超过30天一律视为配戴者已主动放弃退片权利验配单位有权不受理退片申请
</p>
<p>
9.体检的配戴者镜片一旦订片概不受理退片
</p>
<p>
10.验配单位对配戴角膜塑形镜的人员进行试戴评估以便评估配戴者是否适合配戴角膜塑形镜但是鉴于个体条件的差异性使用习惯卫生条件以及其他外部环境的影响上述评估效果仅在试戴时确定配戴者是否适合配戴并非确定配戴以后任何时期是否适合配戴的有效依据因此验配单位无法保证正式配戴过程中不出现排异性不适配或其他不良反应
<p>
11.镜片常规使用寿命为<span style="color: red">1~1.5</span>夜间常规配戴时间<span style="color: red">7-10小时不超过12小时</span>
</p>
<p>
12.常规复查时间<span style="color: red">复查都要挂号到1楼或2楼眼视光中心</span> 进行复查<span style="color: red">到片取镜时学习摘戴方法不用挂号戴镜后的第1天早上复查起床不摘镜第1周第1个月必须按期复查若无特殊情况以后每3个月至少复查一次</span>严格遵守医嘱按时复查这是保障角膜塑形术疗效及规避相关问题的前提否则验配单位具有免责权利
</p>
<p>
13.配戴初期出现轻微的眼刺激症状或异物感一过性的结膜充血或轻微的视物叠影晨起后分泌物稍增多摘镜后眼睛轻度干涩等均为正常现象随着矫正期的延续会逐渐缓解或消失<span style="color: red">戴镜期间如果感冒发烧或出现持续性眼红眼痛畏光流泪等症状必须先停戴然后及时到医院就诊</span>并遵循医师处理
</p>
<p>
14.为保证矫正的安全有效及镜片的使用寿命须使用和镜片性能相配套的护理产品和附件若擅自使用未经验配单位认可的物品接触镜片导致的意外事件或不良反应由配戴者自行负责
</p>
<p>
15.矫正期间若发现发生与配戴角膜塑形镜无关的眼疾或其他疾病并因此导致终止矫正配戴者应自己承担全部责任
</p>
<div style="margin-top: 30px">
<div style="position: relative">
<span style="margin-right: 8px;vertical-align: middle;">是否已阅读<span style="font-weight: bold">此页告知书</span>并同意配戴<span style="font-weight: bold">角膜塑形镜OK镜</span></span>
<span v-if="isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('1')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin: 0 16px 0 24px;vertical-align: middle"></span>
<span v-if="!isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('2')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin-left: 24px;vertical-align: middle"></span>
</div>
</div>
<div style="width: 100%;display: flex;justify-content: space-around;margin-top: 35px;">
<div @click="signClick(1)">
<span>验光师</span>
<img v-if="optomFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="doctorSign">
</div>
<div>
时间: <span v-if="doctorSignDate" style="padding-top: 8px;display: inline-block">{{doctorSignDate ? doctorSignDate.substring(0,16) : ''}}</span>
</div>
<div @click="signClick(6)">
<span>配戴者/监护人</span>
<img v-if="wearerOrGuardianFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="wearerOrGuardianSign">
</div>
<div>
时间: <span v-if="doctorSignDate" style="padding-top: 8px;display: inline-block">{{wearerOrGuardianSignDate ? wearerOrGuardianSignDate.substring(0,16) : ''}}</span>
</div>
</div>
</div>
</div>
<!-- 最老版本-->
<div class="notice-box" v-if="isNew === 2">
<div id="notice-one" class="notice_tip" style="page-break-after:always">
<h3 style="text-align: center;margin-bottom: 32px;">
宁波市眼科医院角膜塑形术双方责任约定
<p style="font-size: 13px">此页责任约定一式两份一份存档一份给患者</p>
</h3>
<p style="color: red">角膜塑形镜OK镜一夜戴型高透氧性硬性隐形眼镜属于易碎品</p>
<p>角膜塑形镜的适应症</p>
<p>年龄8周岁以上近视量可矫正范围在-0.25DS~-6.00DS以低于-4.00DS为理想矫治范围</p>
<p>角膜散光小于1.50D顺规性散光者相对合适</p>
<p>角膜曲率在40.00~46.00D角膜曲率过平<40.0或过陡>46.0效果可能不理想需有经验医师酌情考虑处方</p>
<p>
1.验配单位所提供产品为国家食品药品监督管理局注册登记的合格产品
</p>
<p>
2.验配单位负责近视矫正过程中的配戴眼数据采集分析镜片订制戴镜后跟踪评估镜片检测及疑难咨询等工作
</p>
<p>
3.验配单位保证以高度责任心尽力达到最优近视娇治效果但由于个体差异及其他多种因素的影响验配单位无法对角膜塑形术的效果做出任何保证性承诺
</p>
<p>
4.0K镜属于隐形眼镜它与其它隐形眼镜一样存在各种感染的可能如遇严重感染可能会影响眼睛健康 需严格按照医师的指导规范使用按时随访
</p>
<p>
5.0K镜对近视的加深有相对延缓作用但并不能完全阻止近视的发展也不可能根治近视
</p>
<p>
6.<span style="color: red">关于0K镜破碎的优惠条款</span>配戴者需将原包装及完整的碎片镜片上要有完整编码交还验配单位后方可享受以下优惠自镜片交付日算起30天内可享受<span style="color: red">免费</span>换片一次<span style="color: red">已享受免费换片的新片如再次破碎无法再免费换片</span>31~90天内破碎半价补片如镜片丢失出现粉碎性损坏无法交还原镜片及包装碎片缺少部分大于1/4整片等验配单位不提供免费换片<span style="color: red">患者收到取镜通知30天内未取镜则视为自动放弃该项优惠</span>
</p>
<p>
7.自镜片交付日算起90天内按要求复查的配戴者如果出现适配不理想的情况经验配单位鉴定需调整镜片设计参数重新订片的配戴者无需承担二次配镜的镜片购买费用如经验配单位鉴定无法消除且必须终止矫正的在配戴者退回完好无损的镜片和原包装后双方共同承担损失验配机构返还配戴者镜片费用百分之五十的款项
</p>
<p>
8.除本责任书约定条件外配戴者取镜后30天内要求退片终止矫正的在配戴者交回完好的原德片及原包装将退还配戴者镜片费用百分之五十的款项退款后本责任书自动终止超过30天一律视为配戴者已主动放弃退片权利验配单位有权不受理退片申请
</p>
<p>
9.体检的配戴者镜片一旦订出概不受理退片
</p>
<p>
10.验配单位对配戴角膜塑形镜的人员进行试戴评估以便评估配藏者是否适合配戴角膜塑形镜但是鉴于个体条件的差异性使用习惯卫生条件以及其他外部环境的影响上述评估效果仅在试戴时确定配戴者是否适合配戴并非确定配戴以后任何时期是否适合配戴的有效依据因此验配单位无法保证正式配戴过程中不出现排异性不适配或其他不良反应
</p>
<p>
11.镜片使用寿命为<span style="color: red">1~1.5</span>夜间常规配戴时间<span style="color: red">7-10小时不超过12小时</span>
</p>
<p>
12.常规复查时间<span style="color: red">复查都要挂号到2楼眼视光中心</span> 进行复查<span style="color: red">到片取镜时学习摘藏方法不用挂号戴镜后的第1天早上复查晨起不摘镜第1周第1个月必须按期复查若无特殊情况以后每3个月至少复查一次</span>严格遵守医嘱按时复查这是保障角膜塑形镜疗效及规避相关问题的前提否则验配单位具有免责权利
</p>
<p>
13.配戴初期出现轻微的眼刺激症状或异物感一过性的结膜充血或轻微的视物叠影晨起后分泌物稍增多摘镜后眼睛轻度干涩等均为正常现象随着矫正期的延续会逐渐级解或消失<span style="color: red">戴镜期间如果感冒发烧或出现持续性眼红眼痛畏光流泪等症状必须先停戴然后及时到医院就诊</span>并遵循医师处理
</p>
<p>
14.为保证娇正的安全有效及镜片的使用寿命须使用和镜片性能相配套的护理产品和附件若擅自使用未经验配单位认可的物品接触镜片导致的意外事件或不良反应由配戴者自行负责
</p>
<p>
15.矫正期间若发现发生与配戴角膜塑形镜无关的眼疾或其他疾病并因此导致终止娇正配戴者应自己承担全部责任
</p>
<div style="width: 100%;display: flex;justify-content: space-around;margin-top: 35px;">
<div @click="signClick(1)">
<span>医生/验光师</span>
<img v-if="optomFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="doctorSign">
</div>
<div @click="signClick(2)">
<span>配戴者</span>
<img v-if="wearerFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="patientSign">
</div>
<div @click="signClick(3)">
<span>监护人</span>
<img v-if="guardianFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="guardianSign">
</div>
</div>
</div>
<div id="notice-two" class="notice_tip">
<h3 style="text-align: center;margin-bottom: 32px;">
宁波市眼科医院角膜塑形术配镜用户表暨知情同意书
</h3>
<p style="font-weight: bold">
角膜塑形镜一夜戴型高遁氧性硬性隐形眼镜延缓青少年近视进展
</p>
<p>
近视发生发展的原因是复杂的主要有遗传因素与大最后天环境因素因此青少年近视进展是世界性难题目前仍缺乏完全控制青少年近视进展的有效手段
</p>
<p>
角膜塑形术对近视的加深有相对延缓作用但并不能完全阻止近视的发展也不可能根治近视戴镜后依然要注意用眼卫生习惯多去户外运动因个体差异戴镜后依然会呈现不同程度的近视进展停戴后逐渐呈现原近视程度加上在配戴期间可能已缓慢加深的近视度数
</p>
<p>
最适合对象中低度近视无或伴低度散光的具备一定认知能力与主动性的青少年
</p>
<p>
配戴随访期第1天旱上不摘镜第1周第1月之后每隔3个月清洁护理良好情况下1~1.5年半更换镜片
</p>
<p>
家长要重视监管青少年配戴护理等操作并且严格定期复查
</p>
<p style="margin-top: 32px;">
是否已阅读角膜塑形术双方责任约定,
<span>并同意接受</span>
<span style="font-size: 18px;">角膜塑形镜OK镜</span>
</p>
<div style="width: 100%;display: flex;justify-content: space-around;margin-top: 35px;">
<div style="position: relative">
<span style="margin-right: 8px;vertical-align: middle;">矫治</span>
<span v-if="isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('1')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin: 0 16px 0 24px;vertical-align: middle"></span>
<span v-if="!isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('2')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin-left: 24px;vertical-align: middle"></span>
</div>
<div @click="signClick(4)">
<span style="font-size: 18px;">阅读者</span>
<span>签名</span>
<img v-if="readFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="readerSign">
</div>
</div>
</div>
</div>
<!-- 第二版本-->
<div class="notice-box" v-if="isNew === 1">
<div id="notice-three" class="notice_tip" style="page-break-after:always">
<h3 style="text-align: center;margin-bottom: 32px;">
角膜塑形镜配戴告知书
<p style="font-size: 13px">此页告知书一式两份一份存档一份给患者</p>
</h3>
<p style="color: red">角膜塑形镜OK镜一夜戴型高透氧性硬性隐形眼镜属于易碎品</p>
<p style="font-weight: bold">角膜塑形镜的适应症</p>
<p>年龄8周岁以上近视量可矫正范围在-0.25DS~-6.00DS以低于-4.00DS为理想矫治范围</p>
<p>角膜散光小于1.50D顺规性散光者相对合适</p>
<p>角膜曲率在40.00~46.00D角膜曲率过平<40.0或过陡>46.0效果可能不理想需有经验医师酌情考虑处方</p>
<p>
1.验配单位所提供产品为国家食品药品监督管理局注册登记的合格产品
</p>
<p>
2.验配单位负责近视矫正过程中的配戴眼数据采集分析镜片订制戴镜后跟踪评估及疑难咨询等工作
</p>
<p>
3.验配单位保证以高度责任心尽力达到最优近视矫治效果但由于个体差异及其他多种因素的影响验配单位无法对角膜塑形镜的效果做出任何保证性承诺
</p>
<p>
4.OK镜属于隐形眼镜它与其它隐形眼镜一样存在各种感染的可能如遇严重感染可能会影响眼睛健康必须规范使用按时随访
</p>
<p>
5.OK镜对近视的加深有相对延缓作用但并不能完全阻止近视的发展也不可能根治近视
</p>
<p>
6.<span style="color: red">关于0K镜破碎的优惠条款</span>配戴者需将<span style="color: red">原包装及完整的碎片镜片上要有完整编码</span>交还验配单位后方可享受以下优惠自镜片交付日算起<span style="font-weight: bold">30</span>天内可享受<span style="color: red">免费</span>换片一次<span style="color: red">已享受免费换片的新片如再次破碎无法再免费换片</span><span style="font-weight: bold">31~90天内</span>破碎<span style="color: red">按原价的半价</span>补片如镜片丢失碎片无完整编码粉碎性损坏无法交还原镜片及包装碎片缺少部分大于1/4整片等验配单位不提供免费换片<span style="color: red">患者收到取镜通知30天内未取镜则视为自动放弃该项优惠</span>
</p>
<p>
7.自镜片交付日算起90天内按要求复查的配戴者如果出现适配不理想的情况经验配单位鉴定需调整镜片设计参数重新订片的配戴者无需承担二次配镜的镜片购买费用如经验配单位鉴定无法消除且必须终止矫正的在配戴者退回完好无损的镜片和原包装后双方共同承担损失验配机构返还配戴者镜片费用<span style="font-weight: bold">百分之五十</span>的款项
</p>
<p>
8.配戴者在<span style="color: red">订单已发出或取镜后30天内</span>要求退片的在配戴者交回完好的原镜片及原包装将退还配戴者镜片费用<span style="color: red">百分之五十</span>的款项超过30天一律视为配戴者已主动放弃退片权利验配单位有权不受理退片申请
</p>
<p>
9.体检的配戴者镜片一旦订片概不受理退片
</p>
<p>
10.验配单位对配戴角膜塑形镜的人员进行试戴评估以便评估配戴者是否适合配戴角膜塑形镜但是鉴于个体条件的差异性使用习惯卫生条件以及其他外部环境的影响上述评估效果仅在试戴时确定配戴者是否适合配戴并非确定配戴以后任何时期是否适合配戴的有效依据因此验配单位无法保证正式配戴过程中不出现排异性不适配或其他不良反应
<p>
11.镜片常规使用寿命为<span style="color: red">1~1.5</span>夜间常规配戴时间<span style="color: red">7-10小时不超过12小时</span>
</p>
<p>
12.常规复查时间<span style="color: red">复查都要挂号到1楼或2楼眼视光中心</span> 进行复查<span style="color: red">到片取镜时学习摘戴方法不用挂号戴镜后的第1天早上复查起床不摘镜第1周第1个月必须按期复查若无特殊情况以后每3个月至少复查一次</span>严格遵守医嘱按时复查这是保障角膜塑形术疗效及规避相关问题的前提否则验配单位具有免责权利
</p>
<p>
13.配戴初期出现轻微的眼刺激症状或异物感一过性的结膜充血或轻微的视物叠影晨起后分泌物稍增多摘镜后眼睛轻度干涩等均为正常现象随着矫正期的延续会逐渐缓解或消失<span style="color: red">戴镜期间如果感冒发烧或出现持续性眼红眼痛畏光流泪等症状必须先停戴然后及时到医院就诊</span>并遵循医师处理
</p>
<p>
14.为保证矫正的安全有效及镜片的使用寿命须使用和镜片性能相配套的护理产品和附件若擅自使用未经验配单位认可的物品接触镜片导致的意外事件或不良反应由配戴者自行负责
</p>
<p>
15.矫正期间若发现发生与配戴角膜塑形镜无关的眼疾或其他疾病并因此导致终止矫正配戴者应自己承担全部责任
</p>
<div style="margin-top: 30px">
<div style="position: relative">
<span style="margin-right: 8px;vertical-align: middle;">是否已阅读<span style="font-weight: bold">此页告知书</span>并同意配戴<span style="font-weight: bold">角膜塑形镜OK镜</span></span>
<span v-if="isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('1')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin: 0 16px 0 24px;vertical-align: middle"></span>
<span v-if="!isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('2')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin-left: 24px;vertical-align: middle"></span>
</div>
</div>
<div style="width: 100%;display: flex;justify-content: space-around;margin-top: 35px;">
<div @click="signClick(1)">
<span>医生/验光师</span>
<img v-if="optomFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="doctorSign">
</div>
<div @click="signClick(2)">
<span>配戴者</span>
<img v-if="wearerFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="patientSign">
</div>
<div @click="signClick(3)">
<span>监护人</span>
<img v-if="guardianFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 80px;height: 40px;" :src="guardianSign">
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import headTemplate from '@/components/head'
export default {
components: {
headTemplate
},
props: {
patientId: {
type: String,
default: ''
}
},
data() {
return {
isCkeck: false,
isNew: '',
noticeData: {},
isAgree: '1' // 1 2
}
},
computed: {
optomFlag: {
get() {
return this.$store.getters.optomFlag
},
set(val) {
}
},
wearerFlag: {
get() {
return this.$store.getters.wearerFlag
},
set(val) {
}
},
guardianFlag: {
get() {
return this.$store.getters.guardianFlag
},
set(val) {
}
},
readFlag: {
get() {
return this.$store.getters.readFlag
},
set(val) {
}
},
wearerOrGuardianFlag: {
get() {
return this.$store.getters.wearerOrGuardianFlag
},
set(val) {
}
},
doctorSign: {
get() {
return this.$store.getters.doctorSign
},
set(val) {
}
},
patientSign: {
get() {
return this.$store.getters.patientSign
},
set(val) {
}
},
guardianSign: {
get() {
return this.$store.getters.guardianSign
},
set(val) {
}
},
readerSign: {
get() {
return this.$store.getters.readerSign
},
set(val) {
}
},
wearerOrGuardianSign: {
get() {
return this.$store.getters.wearerOrGuardianSign
},
set(val) {
}
},
doctorSignDate: {
get() {
return this.$store.getters.doctorSignDate
},
set(val) {
}
},
wearerOrGuardianSignDate: {
get() {
return this.$store.getters.wearerOrGuardianSignDate
},
set(val) {
}
},
},
created() {
},
mounted() {
this.getNoticeName()
},
methods: {
selectRadio(index) {
this.isCkeck = !this.isCkeck
this.isAgree = index
},
signClick(index) {
this.$store.commit('beginSign', index)
},
handlePrint() {
this.printPage('notice-one')
this.printPage('notice-two')
},
//
getNoticeName() {
const params = {
patientId: this.patientId,
}
this.$http.get('/hospital/notice/getNoticeSign', { params: params }).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
if (res.data) {
this.noticeData = res.data
this.isAgree = res.data.isAgree
this.isNew = res.data.isNew
this.isCkeck = this.isAgree === '2'
this.$store.commit('optomFlag', !res.data.doctorSign)
this.$store.commit('wearerFlag', !res.data.patientSign)
this.$store.commit('guardianFlag', !res.data.guardianSign)
this.$store.commit('readFlag', !res.data.readerSign)
this.$store.commit('wearerOrGuardianFlag', !res.data.wearerOrGuardianSign)
this.$store.commit('doctorSign', res.data.doctorSign)
this.$store.commit('patientSign', res.data.patientSign)
this.$store.commit('guardianSign', res.data.guardianSign)
this.$store.commit('readerSign', res.data.readerSign)
this.$store.commit('wearerOrGuardianSign', res.data.wearerOrGuardianSign)
this.$store.commit('doctorSignDate', res.data.doctorSignDate)
this.$store.commit('wearerOrGuardianSignDate', res.data.wearerOrGuardianSignDate)
} else {
this.isAgree = '1'
this.isNew = 3
this.isCkeck = false
this.$store.commit('optomFlag', true)
this.$store.commit('wearerFlag', true)
this.$store.commit('guardianFlag', true)
this.$store.commit('readFlag', true)
this.$store.commit('wearerOrGuardianFlag', true)
this.$store.commit('doctorSign', '')
this.$store.commit('patientSign', '')
this.$store.commit('guardianSign', '')
this.$store.commit('readerSign', '')
this.$store.commit('wearerOrGuardianSign', '')
this.$store.commit('doctorSignDate', '')
this.$store.commit('wearerOrGuardianSignDate', '')
}
}).catch(() => {})
},
//
saveEditNotice() {
const params = {
isNew: 3,
patientId: this.patientId,
drgsName: window.localStorage.getItem('identity'),
doctorSign: this.doctorSign,
guardianSign: this.guardianSign,
patientSign: this.patientSign,
readerSign: this.readerSign,
wearerOrGuardianSign: this.wearerOrGuardianSign,
doctorSignDate: this.doctorSignDate,
wearerOrGuardianSignDate: this.wearerOrGuardianSignDate,
isAgree: this.isAgree
}
this.$http.post('/hospital/notice', params).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功!')
this.getNoticeName()
}
}).catch(() => {})
}
}
}
</script>
<style lang="scss" scoped>
.notice-book {
width: 100%;
height: 100%;
display:flex;
flex-direction: column;
.notice-content{
width: 100%;
flex:1;
overflow-y: auto;
.notice-box{
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
}
.notice_tip{
width: 100%;
height: fit-content;
border: 1px solid #000;
padding: 64px 32px;
margin-right: 16px;
.title{
text-align: center;
margin-bottom: 32px;
}
p{
font-size: 14px;
}
.signature{
width: 100%;
display: flex;
justify-content: space-around;
margin-top: 35px;
}
.read{
margin-top: 32px;
}
.read_18{
font-size: 18px;
}
.radios{
margin-right: 8px;
vertical-align: middle;
}
}
}
}
</style>

2
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/review.vue

@ -309,7 +309,7 @@ export default {
width: 100%;
height: calc( 100vh - 50px - 32px - 42px - 48px - 15px);
padding: 16px;
background: #EDEDED;
background: #ffffff;
overflow-x: auto;
}
.vision{

3
src/page-subspecialty/views/modules/outpatientManagement/call/index.vue

@ -265,7 +265,8 @@ export default {
this.detailViewVisible = true
this.patientId = scopeRow.patientId
this.patientIdNumber = scopeRow.patientIdNumber
// this.patientId = '797064'
const mzName = scopeRow.mzDoctorName ? scopeRow.mzDoctorName : ''
window.localStorage.setItem('mzDoctorName', mzName)
this.$nextTick(() => {
// // id--
this.$refs.viewRef.getPatientData()

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

@ -271,6 +271,8 @@ export default {
this.detailViewVisible = true
this.patientId = scopeRow.patientId
this.patientIdNumber = scopeRow.patientIdNumber
const mzName = scopeRow.mzDoctorName ? scopeRow.mzDoctorName : ''
window.localStorage.setItem('mzDoctorName', mzName)
this.$nextTick(() => {
// // id--
this.$refs.viewRef.getPatientData()

Loading…
Cancel
Save