Commit 5079fca7 authored by gengchunlei's avatar gengchunlei

Merge branch 'chronic-dev' of http://gitlab.yiboshi.com/nightkis1995/frontend-h5 into chronic-dev

 Conflicts:
	src/doctor/Doctor.vue
parents ccb8d0c1 5923c8c9
......@@ -4,30 +4,76 @@ import { fetchBase } from '@/api/doctor/doctorFetch'
export function addHypertensionForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-hypertension/save`, body: params, loading: true })
}
// 新增糖尿病随访
export function addDiabetesForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-diabetes/save`, body: params, loading: true })
}
// 新增冠心病随访
export function addCoronaryHeartDiseaseForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-coronary/save`, body: params, loading: true })
}
// 修改冠心病随访
export function updateCoronaryHeartDiseaseForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-coronary/update`, body: params, loading: true })
}
// 主键查询冠心病随访信息
export function getCoronaryHeartDiseaseForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-coronary/record`, body: params, loading: true })
}
// 新增脑卒中随访
export function addStrokeForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-stroke/save`, body: params, loading: true })
}
// 修改脑卒中随访
export function updateStrokeForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-stroke/update`, body: params, loading: true })
}
// 主键查询脑卒中随访信息
export function getStrokeForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-stroke/record`, body: params, loading: true })
}
// 新增慢阻肺随访
export function addCopdForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-pulmonary/save`, body: params, loading: true })
}
// 修改慢阻肺随访
export function updateCopdForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-pulmonary/update`, body: params, loading: true })
}
// 主键查询慢阻肺随访信息
export function getCopdForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-pulmonary/record`, body: params, loading: true })
}
// 新增慢性肾病随访
export function addChronicKidneyDiseaseForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-nephrosis/save`, body: params, loading: true })
}
// 修改慢性肾病随访
export function updateChronicKidneyDiseaseForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-nephrosis/update`, body: params, loading: true })
}
// 主键查询慢性肾病随访信息
export function getChronicKidneyDiseaseForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-nephrosis/record`, body: params, loading: true })
}
// 新增血脂异常随访
export function addDyslipidemiaForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-dyslipemia/save`, body: params, loading: true })
}
// 修改血脂异常随访
export function updateDyslipidemiaForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-dyslipemia/update`, body: params, loading: true })
}
// 主键查询血脂异常随访信息
export function getDyslipidemiaForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-dyslipemia/record`, body: params, loading: true })
}
// 查询专病随访详情
......
<template>
</template>
\ No newline at end of file
<template>
<div class="label-title mt-2">辅助检查</div>
<div v-for="(item, index) in inspectList" :key="index" class="bg-fa mb-2">
<div v-if="diseaseInfo.diseaseType !== 5" class="label-title mt-2">辅助检查</div>
<div v-for="(item, index) in inspectList" :key="index" :class="['bg-fa', 'mb-2', diseaseInfo.diseaseType === 5 ? '' : 'p-8']">
<div style="background-color: #fff; padding: 8px">
<div style="color: #262626; font-size: 14px">检查名称</div>
<van-field
......@@ -35,12 +35,14 @@ export default {
diseaseInfo: {
type: Object,
default: () => {}
},
form: {
type: Object,
default: () => {}
}
},
data() {
return {
form: {},
rules: {},
inspectList: []
}
},
......@@ -61,6 +63,13 @@ export default {
resolve(this.inspectList)
})
}
},
watch: {
'form.inspectList': {
handler() {
this.inspectList = this.form.inspectList
}
}
}
}
</script>
......@@ -81,9 +90,12 @@ export default {
}
.bg-fa {
background-color: #FAFAFA;
padding: 8px;
// padding: 8px;
border-radius: 8px;
}
.p-8 {
padding: 8px;
}
.form-input {
background-color: #FAFAFA;
padding: 8px 12px;
......
......@@ -27,6 +27,7 @@
<DocDrug
v-model:value="item.drugId"
placeholder="拼音码查询药品"
:valueName="item.pinyinCode"
@change="drugChange($event, item)">
</DocDrug>
<div class="flex items-center justify-between w-full mt-2">
......@@ -136,10 +137,15 @@ import DocDrug from '@/doctor/components/docDrug/DocDrug.vue'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
export default {
components: { DocDrug, CheckBtn },
props: {
form: {
type: Object,
default: () => {}
}
},
data() {
return {
store: useStore(),
form: {},
showUnit: false,
showFrequency: false,
showUsage: false,
......@@ -186,6 +192,13 @@ export default {
resolve(this.medicateCase)
})
}
},
watch: {
'form.medicateCase': {
handler() {
this.medicateCase = JSON.parse(this.form.medicateCase)
}
}
}
}
</script>
......
......@@ -5,6 +5,7 @@
v-model="form.diseaseTypeName"
isLink
readonly
:disabled="$route.query.id"
placeholder="请选择"
:rules="rules.diseaseTypeName"
@click="showDiseaseType = true"
......@@ -87,8 +88,34 @@ export default {
},
methods: {
async init() {
// 获取居民信息
const res = await getChronicResidentsId(this.residentInfoId)
this.info = res.data || {}
// 未被诊断的病种置灰不可选
const diseaseList = [
{ name: '高血压', value: 1, code: '512' },
{ name: '糖尿病', value: 2, code: '1024' },
{ name: '冠心病', value: 3, code: '2048' },
{ name: '脑卒中', value: 4, code: '4096' },
{ name: '慢性阻塞性疾病', value: 5, code: '8192' },
{ name: '慢性肾脏病', value: 6, code: '16384' },
{ name: '血脂异常', value: 7, code: '32768' }
].filter(e => this.info.groupsArrays.includes(e.code))
this.store.getDict('CP00117').forEach(x => {
x.disabled = true
diseaseList.forEach(y => {
if (x.value === y.value) {
x.disabled = false
}
})
})
// 默认选中病种
let { diseaseType, id, serveType } = this.$route.query
this.form.diseaseType = parseInt(diseaseType)
this.form.diseaseTypeName = this.store.getDict('CP00117').find(
e => e.value === this.form.diseaseType
)?.name
this.form.serveType = parseInt(serveType)
},
diseaseTypeChange() {
this.store.getDict('CP00117').forEach(item => {
......
<template>
<div>
<!-- 高血压 -->
<HypertensionForm
v-if="diseaseInfo.diseaseType === 1"
:diseaseInfo="diseaseInfo"
ref="hypertensionForm">
</HypertensionForm>
<!-- 糖尿病 -->
<DiabetesForm
v-if="diseaseInfo.diseaseType === 2"
:diseaseInfo="diseaseInfo"
ref="diabetesForm">
</DiabetesForm>
<!-- 冠心病 -->
<CoronaryHeartDiseaseForm
v-if="diseaseInfo.diseaseType === 3"
:diseaseInfo="diseaseInfo"
ref="coronaryHeartDiseaseForm">
</CoronaryHeartDiseaseForm>
<StrokeForm v-if="diseaseInfo.diseaseType === 4" ref="strokeForm"></StrokeForm>
<CopdForm v-if="diseaseInfo.diseaseType === 5" ref="copdForm"></CopdForm>
<ChronicKidneyDiseaseForm v-if="diseaseInfo.diseaseType === 6" ref="chronicKidneyDiseaseForm"></ChronicKidneyDiseaseForm>
<DyslipidemiaForm v-if="diseaseInfo.diseaseType === 7" ref="dyslipidemiaForm"></DyslipidemiaForm>
<!-- 脑卒中 -->
<StrokeForm
v-if="diseaseInfo.diseaseType === 4"
:diseaseInfo="diseaseInfo"
ref="strokeForm">
</StrokeForm>
<!-- 慢阻肺 -->
<CopdForm
v-if="diseaseInfo.diseaseType === 5"
:diseaseInfo="diseaseInfo"
ref="copdForm">
</CopdForm>
<!-- 慢性肾脏病 -->
<ChronicKidneyDiseaseForm
v-if="diseaseInfo.diseaseType === 6"
:diseaseInfo="diseaseInfo"
ref="chronicKidneyDiseaseForm">
</ChronicKidneyDiseaseForm>
<!-- 血脂异常 -->
<DyslipidemiaForm
v-if="diseaseInfo.diseaseType === 7"
:diseaseInfo="diseaseInfo"
ref="dyslipidemiaForm">
</DyslipidemiaForm>
</div>
</template>
<script>
......@@ -29,7 +52,7 @@ import StrokeForm from './components/StrokeForm.vue'
import CopdForm from './components/CopdForm.vue'
import ChronicKidneyDiseaseForm from './components/ChronicKidneyDiseaseForm.vue'
import DyslipidemiaForm from './components/DyslipidemiaForm.vue'
import { addHypertensionForm, addDiabetesForm, addCoronaryHeartDiseaseForm, addStrokeForm, addCopdForm, addChronicKidneyDiseaseForm, addDyslipidemiaForm } from '@/api/doctor/separateFU'
import { addHypertensionForm, addDiabetesForm, addCoronaryHeartDiseaseForm, updateCoronaryHeartDiseaseForm, addStrokeForm, updateStrokeForm, addCopdForm, updateCopdForm, addChronicKidneyDiseaseForm, updateChronicKidneyDiseaseForm, addDyslipidemiaForm, updateDyslipidemiaForm } from '@/api/doctor/separateFU'
export default {
components: { HypertensionForm, DiabetesForm, CoronaryHeartDiseaseForm, StrokeForm, CopdForm, ChronicKidneyDiseaseForm, DyslipidemiaForm },
props: {
......@@ -75,6 +98,7 @@ export default {
// 数据来源(2为慢综app)
source: 2
}
let { id } = this.$route.query
if (this.diseaseInfo.diseaseType === 1) {
const hypertensionForm = await this.$refs.hypertensionForm.submit()
return await addHypertensionForm({
......@@ -89,31 +113,36 @@ export default {
}, true)
} else if (this.diseaseInfo.diseaseType === 3) {
const coronaryHeartDiseaseForm = await this.$refs.coronaryHeartDiseaseForm.submit()
return await addCoronaryHeartDiseaseForm({
let fun = id ? updateCoronaryHeartDiseaseForm : addCoronaryHeartDiseaseForm
return await fun({
...form,
...coronaryHeartDiseaseForm
}, true)
} else if (this.diseaseInfo.diseaseType === 4) {
const strokeForm = await this.$refs.strokeForm.submit()
return await addStrokeForm({
let fun = id ? updateStrokeForm : addStrokeForm
return await fun({
...form,
...strokeForm
}, true)
} else if (this.diseaseInfo.diseaseType === 5) {
const copdForm = await this.$refs.copdForm.submit()
return await addCopdForm({
let fun = id ? updateCopdForm : addCopdForm
return await fun({
...form,
...copdForm
}, true)
} else if (this.diseaseInfo.diseaseType === 6) {
const chronicKidneyDiseaseForm = await this.$refs.chronicKidneyDiseaseForm.submit()
return await addChronicKidneyDiseaseForm({
let fun = id ? updateChronicKidneyDiseaseForm : addChronicKidneyDiseaseForm
return await fun({
...form,
...chronicKidneyDiseaseForm
}, true)
} else if (this.diseaseInfo.diseaseType === 7) {
const dyslipidemiaForm = await this.$refs.dyslipidemiaForm.submit()
return await addDyslipidemiaForm({
let fun = id ? updateDyslipidemiaForm : addDyslipidemiaForm
return await fun({
...form,
...dyslipidemiaForm
}, true)
......
......@@ -561,6 +561,10 @@
</van-radio-group>
</template>
</van-field>
<!-- 辅助检查 -->
<InspectV2 ref="inspectRef" :diseaseInfo="diseaseInfo" :form="form"></InspectV2>
<!-- 服药依从性 -->
<div class="label-title mt-2" required>服药依从性</div>
<van-field :rules="rules.medicationCompliance" style="padding: 0">
......@@ -664,6 +668,10 @@
</div>
</div>
</van-popup>
<!-- 治疗方案 -->
<TreatmentPlan ref="treatmentPlan" :form="form"></TreatmentPlan>
<!-- 转诊 -->
<div class="label-title mt-2" required>转诊</div>
<van-field :rules="rules.isReferral" style="padding: 0">
......@@ -734,14 +742,12 @@
<!-- 现场随访照片 -->
<div class="label-title mt-2">现场随访照片</div>
<DocImageUpload
description="最多支持上传8个文件,支持上传图片或PDF文件,图片支持上传jpg、png、jpeg格式,文件大小请勿超过10M。"
lengthMessage="抱歉,最多可上传8个文件。"
:imageData="[]"
:imageData="form.visitImageList"
@change="(ids, option) => form.visitImage = ids"
:maxLength="8"
/>
<!-- 下次随访日期 -->
<div class="label-title" required>下次随访日期</div>
<div class="label-title mt-2" required>下次随访日期</div>
<van-field
v-model="form.nextVisitDate"
isLink
......@@ -836,15 +842,26 @@
import { useStore } from '@/doctor/store'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import { checkboxReject, calculateBMI, fetchDataHandle } from '@/utils/common'
import { getChronicKidneyDiseaseForm } from '@/api/doctor/separateFU'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs'
export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor },
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan },
inject: ['pressureObj'],
props: {
diseaseInfo: {
type: Object,
default: () => {}
}
},
data() {
return {
store: useStore(),
......@@ -1154,6 +1171,14 @@ export default {
showVisitDoctor: false
}
},
computed: {
authInfo() {
return this.store.authInfo
}
},
created() {
this.getInfo()
},
methods: {
checkboxReject,
calculateBMI,
......@@ -1194,6 +1219,8 @@ export default {
},
referralUnitChange(option = {}) {
this.form.referralUnitName = option.unitName
this.form.referralOfficeId = undefined
this.form.referralOfficeName = undefined
},
referralOfficeChange(option = {}) {
this.form.referralOfficeName = option.officeName
......@@ -1208,23 +1235,67 @@ export default {
},
visitUnitChange(option = {}) {
this.form.visitUnitName = option.unitName
this.form.visitOfficeId = undefined
this.form.visitOfficeName = undefined
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
},
visitOfficeChange(option = {}) {
this.form.visitOfficeName = option.officeName
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
},
submit() {
return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => {
this.$refs.form.validate().then(async () => {
// 辅助检查
const inspectList = await this.$refs.inspectRef.submit()
// 治疗方案
const medicateCase = await this.$refs.treatmentPlan.submit()
const form = fetchDataHandle(this.form, {
symptom: 'arrToStr',
currentDiagnosis: 'arrToStr'
})
resolve(form)
resolve({
...form,
inspectList: inspectList,
medicateCase: JSON.stringify(medicateCase)
})
}).catch(e => {
})
})
},
getInfo() {
let { id } = this.$route.query
if (id) {
getChronicKidneyDiseaseForm({ id }).then(res => {
const form = fetchDataHandle(res.data, {
symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum'
})
this.form = form
// 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期
this.form._visitDate = this.form.visitDate.split('-')
})
} else {
// 随访日期
this.form.visitDate = dayjs().format('YYYY-MM-DD')
// 随访单位
this.form.visitUnitId = this.authInfo.unitId
this.form.visitUnitName = this.authInfo.unitName
// 随访科室
this.form.visitOfficeId = this.authInfo.officeId
this.form.visitOfficeName = this.authInfo.officeName
// 随访医生
this.form.visitDoctorId = this.authInfo.relationId
this.form.visitDoctorName = this.authInfo.nickName
}
}
},
watch: {
......
......@@ -566,7 +566,7 @@
</van-field>
<!-- 辅助检查 -->
<InspectV2 ref="inspectRef" :diseaseInfo="diseaseInfo"></InspectV2>
<InspectV2 ref="inspectRef" :diseaseInfo="diseaseInfo" :form="form"></InspectV2>
<!-- 服药依从性 -->
<div class="label-title mt-2" required>服药依从性</div>
......@@ -653,9 +653,6 @@
@click="showCurrentDiagnosis = true"
class="form-input"
/>
<!-- 治疗方案 -->
<TreatmentPlan ref="treatmentPlan"></TreatmentPlan>
<!-- 目前诊断 -->
<van-popup v-model:show="showCurrentDiagnosis" position="bottom">
<div class="p-4" style="height: 100%">
......@@ -675,6 +672,10 @@
</div>
</div>
</van-popup>
<!-- 治疗方案 -->
<TreatmentPlan ref="treatmentPlan" :form="form"></TreatmentPlan>
<!-- 转诊 -->
<div class="label-title mt-2" required>转诊</div>
<van-field :rules="rules.isReferral" style="padding: 0">
......@@ -745,14 +746,12 @@
<!-- 现场随访照片 -->
<div class="label-title mt-2">现场随访照片</div>
<DocImageUpload
description="最多支持上传8个文件,支持上传图片或PDF文件,图片支持上传jpg、png、jpeg格式,文件大小请勿超过10M。"
lengthMessage="抱歉,最多可上传8个文件。"
:imageData="[]"
:imageData="form.visitImageList"
@change="(ids, option) => form.visitImage = ids"
:maxLength="8"
/>
<!-- 下次随访日期 -->
<div class="label-title" required>下次随访日期</div>
<div class="label-title mt-2" required>下次随访日期</div>
<van-field
v-model="form.nextVisitDate"
isLink
......@@ -847,6 +846,7 @@
import { useStore } from '@/doctor/store'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import { checkboxReject, calculateBMI, fetchDataHandle } from '@/utils/common'
import { getCoronaryHeartDiseaseForm } from '@/api/doctor/separateFU'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
......@@ -856,6 +856,7 @@ import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor
import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs'
export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan },
inject: ['pressureObj'],
......@@ -1172,6 +1173,14 @@ export default {
showVisitDoctor: false
}
},
computed: {
authInfo() {
return this.store.authInfo
}
},
created() {
this.getInfo()
},
methods: {
checkboxReject,
calculateBMI,
......@@ -1212,6 +1221,8 @@ export default {
},
referralUnitChange(option = {}) {
this.form.referralUnitName = option.unitName
this.form.referralOfficeId = undefined
this.form.referralOfficeName = undefined
},
referralOfficeChange(option = {}) {
this.form.referralOfficeName = option.officeName
......@@ -1226,9 +1237,15 @@ export default {
},
visitUnitChange(option = {}) {
this.form.visitUnitName = option.unitName
this.form.visitOfficeId = undefined
this.form.visitOfficeName = undefined
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
},
visitOfficeChange(option = {}) {
this.form.visitOfficeName = option.officeName
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
},
submit() {
......@@ -1252,6 +1269,35 @@ export default {
})
})
},
getInfo() {
let { id } = this.$route.query
if (id) {
getCoronaryHeartDiseaseForm({ id }).then(res => {
const form = fetchDataHandle(res.data, {
symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum'
})
this.form = form
// 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期
this.form._visitDate = this.form.visitDate.split('-')
})
} else {
// 随访日期
this.form.visitDate = dayjs().format('YYYY-MM-DD')
// 随访单位
this.form.visitUnitId = this.authInfo.unitId
this.form.visitUnitName = this.authInfo.unitName
// 随访科室
this.form.visitOfficeId = this.authInfo.officeId
this.form.visitOfficeName = this.authInfo.officeName
// 随访医生
this.form.visitDoctorId = this.authInfo.relationId
this.form.visitDoctorName = this.authInfo.nickName
}
}
},
watch: {
......
......@@ -564,6 +564,10 @@
</van-radio-group>
</template>
</van-field>
<!-- 辅助检查 -->
<InspectV2 ref="inspectRef" :diseaseInfo="diseaseInfo" :form="form"></InspectV2>
<!-- 服药依从性 -->
<div class="label-title mt-2" required>服药依从性</div>
<van-field :rules="rules.medicationCompliance" style="padding: 0">
......@@ -667,6 +671,10 @@
</div>
</div>
</van-popup>
<!-- 治疗方案 -->
<TreatmentPlan ref="treatmentPlan" :form="form"></TreatmentPlan>
<!-- 转诊 -->
<div class="label-title mt-2" required>转诊</div>
<van-field :rules="rules.isReferral" style="padding: 0">
......@@ -737,14 +745,12 @@
<!-- 现场随访照片 -->
<div class="label-title mt-2">现场随访照片</div>
<DocImageUpload
description="最多支持上传8个文件,支持上传图片或PDF文件,图片支持上传jpg、png、jpeg格式,文件大小请勿超过10M。"
lengthMessage="抱歉,最多可上传8个文件。"
:imageData="[]"
:imageData="form.visitImageList"
@change="(ids, option) => form.visitImage = ids"
:maxLength="8"
/>
<!-- 下次随访日期 -->
<div class="label-title" required>下次随访日期</div>
<div class="label-title mt-2" required>下次随访日期</div>
<van-field
v-model="form.nextVisitDate"
isLink
......@@ -839,15 +845,25 @@
import { useStore } from '@/doctor/store'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import { checkboxReject, calculateBMI, fetchDataHandle } from '@/utils/common'
import { getDyslipidemiaForm } from '@/api/doctor/separateFU'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue'
export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor },
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan },
inject: ['pressureObj'],
props: {
diseaseInfo: {
type: Object,
default: () => {}
}
},
data() {
return {
store: useStore(),
......@@ -1154,6 +1170,9 @@ export default {
showVisitDoctor: false
}
},
created() {
this.getInfo()
},
methods: {
checkboxReject,
calculateBMI,
......@@ -1194,6 +1213,8 @@ export default {
},
referralUnitChange(option = {}) {
this.form.referralUnitName = option.unitName
this.form.referralOfficeId = undefined
this.form.referralOfficeName = undefined
},
referralOfficeChange(option = {}) {
this.form.referralOfficeName = option.officeName
......@@ -1208,23 +1229,67 @@ export default {
},
visitUnitChange(option = {}) {
this.form.visitUnitName = option.unitName
this.form.visitOfficeId = undefined
this.form.visitOfficeName = undefined
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
},
visitOfficeChange(option = {}) {
this.form.visitOfficeName = option.officeName
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
},
submit() {
return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => {
this.$refs.form.validate().then(async () => {
// 辅助检查
const inspectList = await this.$refs.inspectRef.submit()
// 治疗方案
const medicateCase = await this.$refs.treatmentPlan.submit()
const form = fetchDataHandle(this.form, {
symptom: 'arrToStr',
currentDiagnosis: 'arrToStr'
})
resolve(form)
resolve({
...form,
inspectList: inspectList,
medicateCase: JSON.stringify(medicateCase)
})
}).catch(e => {
})
})
},
getInfo() {
let { id } = this.$route.query
if (id) {
getDyslipidemiaForm({ id }).then(res => {
const form = fetchDataHandle(res.data, {
symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum'
})
this.form = form
// 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期
this.form._visitDate = this.form.visitDate.split('-')
})
} else {
// 随访日期
this.form.visitDate = dayjs().format('YYYY-MM-DD')
// 随访单位
this.form.visitUnitId = this.authInfo.unitId
this.form.visitUnitName = this.authInfo.unitName
// 随访科室
this.form.visitOfficeId = this.authInfo.officeId
this.form.visitOfficeName = this.authInfo.officeName
// 随访医生
this.form.visitDoctorId = this.authInfo.relationId
this.form.visitDoctorName = this.authInfo.nickName
}
}
},
watch: {
......
......@@ -564,6 +564,10 @@
</van-radio-group>
</template>
</van-field>
<!-- 辅助检查 -->
<InspectV2 ref="inspectRef" :diseaseInfo="diseaseInfo" :form="form"></InspectV2>
<!-- 服药依从性 -->
<div class="label-title mt-2" required>服药依从性</div>
<van-field :rules="rules.medicationCompliance" style="padding: 0">
......@@ -667,6 +671,10 @@
</div>
</div>
</van-popup>
<!-- 治疗方案 -->
<TreatmentPlan ref="treatmentPlan" :form="form"></TreatmentPlan>
<!-- 转诊 -->
<div class="label-title mt-2" required>转诊</div>
<van-field :rules="rules.isReferral" style="padding: 0">
......@@ -737,14 +745,12 @@
<!-- 现场随访照片 -->
<div class="label-title mt-2">现场随访照片</div>
<DocImageUpload
description="最多支持上传8个文件,支持上传图片或PDF文件,图片支持上传jpg、png、jpeg格式,文件大小请勿超过10M。"
lengthMessage="抱歉,最多可上传8个文件。"
:imageData="[]"
:imageData="form.visitImageList"
@change="(ids, option) => form.visitImage = ids"
:maxLength="8"
/>
<!-- 下次随访日期 -->
<div class="label-title" required>下次随访日期</div>
<div class="label-title mt-2" required>下次随访日期</div>
<van-field
v-model="form.nextVisitDate"
isLink
......@@ -839,15 +845,26 @@
import { useStore } from '@/doctor/store'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import { checkboxReject, calculateBMI, fetchDataHandle } from '@/utils/common'
import { getStrokeForm } from '@/api/doctor/separateFU'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import DocOffice from '@/doctor/components/docOffice/DocOffice.vue'
import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor.vue'
import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs'
export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor },
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan },
inject: ['pressureObj'],
props: {
diseaseInfo: {
type: Object,
default: () => {}
}
},
data() {
return {
store: useStore(),
......@@ -1154,6 +1171,14 @@ export default {
showVisitDoctor: false
}
},
computed: {
authInfo() {
return this.store.authInfo
}
},
created() {
this.getInfo()
},
methods: {
checkboxReject,
calculateBMI,
......@@ -1167,7 +1192,7 @@ export default {
},
symptomConfirm() {
let list = []
this.store.getDict('CP00058').forEach(item => {
this.store.getDict('CP00064').forEach(item => {
let selected = this.form.symptom.filter(e => e === item.value)
if (selected && selected.length) {
list.push(item.name)
......@@ -1194,6 +1219,8 @@ export default {
},
referralUnitChange(option = {}) {
this.form.referralUnitName = option.unitName
this.form.referralOfficeId = undefined
this.form.referralOfficeName = undefined
},
referralOfficeChange(option = {}) {
this.form.referralOfficeName = option.officeName
......@@ -1208,23 +1235,67 @@ export default {
},
visitUnitChange(option = {}) {
this.form.visitUnitName = option.unitName
this.form.visitOfficeId = undefined
this.form.visitOfficeName = undefined
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
},
visitOfficeChange(option = {}) {
this.form.visitOfficeName = option.officeName
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
},
submit() {
return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => {
this.$refs.form.validate().then(async () => {
// 辅助检查
const inspectList = await this.$refs.inspectRef.submit()
// 治疗方案
const medicateCase = await this.$refs.treatmentPlan.submit()
const form = fetchDataHandle(this.form, {
symptom: 'arrToStr',
currentDiagnosis: 'arrToStr'
})
resolve(form)
resolve({
...form,
inspectList: inspectList,
medicateCase: JSON.stringify(medicateCase)
})
}).catch(e => {
})
})
},
getInfo() {
let { id } = this.$route.query
if (id) {
getStrokeForm({ id }).then(res => {
const form = fetchDataHandle(res.data, {
symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum'
})
this.form = form
// 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期
this.form._visitDate = this.form.visitDate.split('-')
})
} else {
// 随访日期
this.form.visitDate = dayjs().format('YYYY-MM-DD')
// 随访单位
this.form.visitUnitId = this.authInfo.unitId
this.form.visitUnitName = this.authInfo.unitName
// 随访科室
this.form.visitOfficeId = this.authInfo.officeId
this.form.visitOfficeName = this.authInfo.officeName
// 随访医生
this.form.visitDoctorId = this.authInfo.relationId
this.form.visitDoctorName = this.authInfo.nickName
}
}
},
watch: {
......
......@@ -218,7 +218,7 @@ export default {
query.excludeType = this.diagnoseList.map(e => e.value).join(',')
}
if (val === 7) {
query.diseaseType = this.activeTab
query.diseaseType = this.tabList[this.activeTab].value
}
this.$router.push({
path: option.path,
......
......@@ -53,7 +53,7 @@
<van-button round size='small' class='doc-btn-primary' @click='toDetail(item)'>详情
</van-button>
<!-- <van-button round size="small" class="doc-btn-primary" v-if="item.allowUpdate == 1">转诊</van-button>-->
<van-button round size='small' class='doc-btn-primary' @click='editBtn(item)'
<van-button round size='small' class='doc-btn-primary' @click.stop='editBtn(item)'
v-if='!(item.allowUpdate !==1 || item.serveType == 5)'>修改
</van-button>
<van-button round size='small' class='doc-btn-red' @click='delBtn(item)'
......@@ -183,6 +183,7 @@ export default {
query: {
residentInfoId: item.residentInfoId,
diseaseType: item.diseaseType,
serveType: item.serveType,
id: item.relationId
}
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment