Commit b772f0f3 authored by 芮自成's avatar 芮自成

糖尿病随访修改

parent 5923c8c9
...@@ -9,6 +9,14 @@ export function addHypertensionForm(params) { ...@@ -9,6 +9,14 @@ export function addHypertensionForm(params) {
export function addDiabetesForm(params) { export function addDiabetesForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-diabetes/save`, body: params, loading: true }) return fetchBase({ url: `/chronic-admin/v1/chronic-visit-diabetes/save`, body: params, loading: true })
} }
// 修改糖尿病随访
export function updateDiabetesForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-diabetes/update`, body: params, loading: true })
}
// 主键查询糖尿病随访信息
export function getDiabetesForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-diabetes/record`, body: params, loading: true })
}
// 新增冠心病随访 // 新增冠心病随访
export function addCoronaryHeartDiseaseForm(params) { export function addCoronaryHeartDiseaseForm(params) {
......
...@@ -66,7 +66,7 @@ export default { ...@@ -66,7 +66,7 @@ export default {
if (!token) { if (!token) {
token = sessionStorage.getItem('token') token = sessionStorage.getItem('token')
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {
token = '9ed648f7-a0fe-4fa9-87f2-d4138c17282e' token = 'b5ab898f-4e29-4311-adce-1c44b1c59798'
} }
} }
if (token) { if (token) {
......
...@@ -246,6 +246,37 @@ export default { ...@@ -246,6 +246,37 @@ export default {
} }
return `${item.itemName}(${item.itemCode}) : ` return `${item.itemName}(${item.itemCode}) : `
} }
},
watch: {
'form.inspectList': {
handler() {
// this.viewData = this.form.inspectList
let { inspectList = [], auxiliaryExamination = [] } = this.form
let list = []
inspectList.forEach(x => {
this.viewData.forEach(y => {
if (x.insType === y.insType && x.itemCode === y.itemCode) {
list.push(y)
}
})
})
let array = []
let strToArrNum = auxiliaryExamination.split(',').map(e => +e)
strToArrNum.forEach(x => {
const items = list.filter(e => e.insType === x)
if (items.length > 0) {
array.push({
insType: items[0].insType,
insName: items[0].insName,
items: [...items]
})
}
})
this.form.auxiliaryExamination = strToArrNum
this.viewData = array
}
}
} }
} }
</script> </script>
......
...@@ -52,7 +52,7 @@ import StrokeForm from './components/StrokeForm.vue' ...@@ -52,7 +52,7 @@ import StrokeForm from './components/StrokeForm.vue'
import CopdForm from './components/CopdForm.vue' import CopdForm from './components/CopdForm.vue'
import ChronicKidneyDiseaseForm from './components/ChronicKidneyDiseaseForm.vue' import ChronicKidneyDiseaseForm from './components/ChronicKidneyDiseaseForm.vue'
import DyslipidemiaForm from './components/DyslipidemiaForm.vue' import DyslipidemiaForm from './components/DyslipidemiaForm.vue'
import { addHypertensionForm, addDiabetesForm, addCoronaryHeartDiseaseForm, updateCoronaryHeartDiseaseForm, addStrokeForm, updateStrokeForm, addCopdForm, updateCopdForm, addChronicKidneyDiseaseForm, updateChronicKidneyDiseaseForm, addDyslipidemiaForm, updateDyslipidemiaForm } from '@/api/doctor/separateFU' import { addHypertensionForm, addDiabetesForm, updateDiabetesForm, addCoronaryHeartDiseaseForm, updateCoronaryHeartDiseaseForm, addStrokeForm, updateStrokeForm, addCopdForm, updateCopdForm, addChronicKidneyDiseaseForm, updateChronicKidneyDiseaseForm, addDyslipidemiaForm, updateDyslipidemiaForm } from '@/api/doctor/separateFU'
export default { export default {
components: { HypertensionForm, DiabetesForm, CoronaryHeartDiseaseForm, StrokeForm, CopdForm, ChronicKidneyDiseaseForm, DyslipidemiaForm }, components: { HypertensionForm, DiabetesForm, CoronaryHeartDiseaseForm, StrokeForm, CopdForm, ChronicKidneyDiseaseForm, DyslipidemiaForm },
props: { props: {
...@@ -107,7 +107,8 @@ export default { ...@@ -107,7 +107,8 @@ export default {
}, true) }, true)
} else if (this.diseaseInfo.diseaseType === 2) { } else if (this.diseaseInfo.diseaseType === 2) {
const diabetesForm = await this.$refs.diabetesForm.submit() const diabetesForm = await this.$refs.diabetesForm.submit()
return await addDiabetesForm({ let fun = id ? updateDiabetesForm : addDiabetesForm
return await fun({
...form, ...form,
...diabetesForm ...diabetesForm
}, true) }, true)
......
...@@ -786,6 +786,110 @@ ...@@ -786,6 +786,110 @@
</div> </div>
</div> </div>
</van-popup> </van-popup>
<!-- 治疗方案 -->
<TreatmentPlan ref="treatmentPlan" :form="form"></TreatmentPlan>
<!-- 胰岛素 -->
<div class="label-title mt-2" required>胰岛素</div>
<van-field
v-model="form.insulinTypeName"
isLink
readonly
placeholder="请选择"
:rules="rules.insulinTypeName"
@click="showInsulinType = true"
class="form-input"
/>
<van-popup v-model:show="showInsulinType" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="showInsulinType = false">取消</div>
<div>随访方式(单选)</div>
<div></div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-2
:options="store.getDict('CP00121')"
v-model:value="form.insulinType"
:fieldNames="{ text: 'name', value: 'value' }"
@change="insulinTypeChange"
/>
</div>
</div>
</van-popup>
<van-field
v-if="form.insulinType === 99"
v-model="form.insulinTypeOther"
placeholder="其他胰岛素种类"
class="form-input mt-2"
/>
<div class="bg-fa mt-2">
<div class="label-title" style="font-size: 14px; color: #262626">用法</div>
<van-field style="padding: 0">
<template #input>
<van-radio-group
v-model="form.insulinUsage"
shape="dot"
direction="horizontal"
class="doc-radio-group-now"
>
<van-radio
v-for="item in store.getDict('CP00122')"
:key="item.value"
:name="item.value"
label-position="left"
>
{{ item.name }}
</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field
v-if="form.insulinUsage === 9"
v-model="form.insulinTypeOther"
placeholder="其他用法"
class="card-input mt-2"
/>
</div>
<!-- <div class="bg-fa mt-2">
<div class="label-title" style="font-size: 14px; color: #262626">用量</div>
<van-field style="padding: 0">
<template #input>
<van-checkbox-group
v-model="form.insulinDosage"
shape="square"
direction="horizontal"
class="doc-checkbox-group"
>
<van-checkbox
v-for="item in insulinDosage"
:key="item.value"
:name="item.checked"
label-position="left"
style="width: 48%"
>
{{ item.name }}
</van-checkbox>
</van-checkbox-group>
</template>
</van-field>
<template v-for="item in insulinDosage">
<van-field
v-if="item.checked"
:label="item.name"
v-model="item.dosage"
placeholder="请输入"
class="card-input mt-2"
>
<template #extra>
<span>IU</span>
</template>
</van-field>
</template>
</div> -->
<!-- 转诊 --> <!-- 转诊 -->
<div class="label-title mt-2" required>转诊</div> <div class="label-title mt-2" required>转诊</div>
<van-field :rules="rules.isReferral" style="padding: 0"> <van-field :rules="rules.isReferral" style="padding: 0">
...@@ -856,14 +960,12 @@ ...@@ -856,14 +960,12 @@
<!-- 现场随访照片 --> <!-- 现场随访照片 -->
<div class="label-title mt-2">现场随访照片</div> <div class="label-title mt-2">现场随访照片</div>
<DocImageUpload <DocImageUpload
description="最多支持上传8个文件,支持上传图片或PDF文件,图片支持上传jpg、png、jpeg格式,文件大小请勿超过10M。" :imageData="form.visitImageList"
lengthMessage="抱歉,最多可上传8个文件。"
:imageData="[]"
@change="(ids, option) => form.visitImage = ids" @change="(ids, option) => form.visitImage = ids"
:maxLength="8" :maxLength="8"
/> />
<!-- 下次随访日期 --> <!-- 下次随访日期 -->
<div class="label-title" required>下次随访日期</div> <div class="label-title mt-2" required>下次随访日期</div>
<van-field <van-field
v-model="form.nextVisitDate" v-model="form.nextVisitDate"
isLink isLink
...@@ -958,6 +1060,7 @@ ...@@ -958,6 +1060,7 @@
import { useStore } from '@/doctor/store' import { useStore } from '@/doctor/store'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue' import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import { checkboxReject, calculateBMI, fetchDataHandle } from '@/utils/common' import { checkboxReject, calculateBMI, fetchDataHandle } from '@/utils/common'
import { getDiabetesForm } from '@/api/doctor/separateFU'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue' import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue' import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue'
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue' import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
...@@ -966,8 +1069,10 @@ import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor ...@@ -966,8 +1069,10 @@ import DocOfficeDoctor from '@/doctor/components/docOfficeDoctor/DocOfficeDoctor
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue' import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
import Inspect from '../../components/Inspect.vue' import Inspect from '../../components/Inspect.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs'
export default { export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocUnit, DocOffice, DocOfficeDoctor, DocImageUpload, Inspect }, components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocUnit, DocOffice, DocOfficeDoctor, DocImageUpload, Inspect, TreatmentPlan },
inject: ['pressureObj'], inject: ['pressureObj'],
props: { props: {
diseaseInfo: { diseaseInfo: {
...@@ -1309,9 +1414,19 @@ export default { ...@@ -1309,9 +1414,19 @@ export default {
}, },
showVisitUnit: false, showVisitUnit: false,
showVisitOffice: false, showVisitOffice: false,
showVisitDoctor: false showVisitDoctor: false,
showInsulinType: false,
// insulinDosage: []
} }
}, },
computed: {
authInfo() {
return this.store.authInfo
}
},
created() {
this.getInfo()
},
methods: { methods: {
checkboxReject, checkboxReject,
calculateBMI, calculateBMI,
...@@ -1358,8 +1473,18 @@ export default { ...@@ -1358,8 +1473,18 @@ export default {
this.form.currentDiagnosisName = list.join() this.form.currentDiagnosisName = list.join()
this.showCurrentDiagnosis = false this.showCurrentDiagnosis = false
}, },
insulinTypeChange() {
this.store.getDict('CP00121').forEach(item => {
if (item.value === this.form.insulinType) {
this.form.insulinTypeName = item.name
}
})
this.showInsulinType = false
},
referralUnitChange(option = {}) { referralUnitChange(option = {}) {
this.form.referralUnitName = option.unitName this.form.referralUnitName = option.unitName
this.form.referralOfficeId = undefined
this.form.referralOfficeName = undefined
}, },
referralOfficeChange(option = {}) { referralOfficeChange(option = {}) {
this.form.referralOfficeName = option.officeName this.form.referralOfficeName = option.officeName
...@@ -1374,9 +1499,15 @@ export default { ...@@ -1374,9 +1499,15 @@ export default {
}, },
visitUnitChange(option = {}) { visitUnitChange(option = {}) {
this.form.visitUnitName = option.unitName this.form.visitUnitName = option.unitName
this.form.visitOfficeId = undefined
this.form.visitOfficeName = undefined
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
}, },
visitOfficeChange(option = {}) { visitOfficeChange(option = {}) {
this.form.visitOfficeName = option.officeName this.form.visitOfficeName = option.officeName
this.form.visitDoctorId = undefined
this.form.visitDoctorName = undefined
}, },
submit() { submit() {
...@@ -1391,6 +1522,38 @@ export default { ...@@ -1391,6 +1522,38 @@ export default {
}) })
}) })
},
getInfo() {
let { id } = this.$route.query
if (id) {
getDiabetesForm({ 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
// this.insulinDosage = this.store.getDict('CP00123')
// console.log(this.insulinDosage)
}
} }
}, },
watch: { watch: {
...@@ -1475,17 +1638,17 @@ export default { ...@@ -1475,17 +1638,17 @@ export default {
border-radius: 8px; border-radius: 8px;
} }
.doc-radio-group-now { .doc-radio-group-now {
column-gap: 8px; column-gap: 10px;
row-gap: 8px; row-gap: 8px;
background-color: #FAFAFA; background-color: #FAFAFA;
width: 100%; width: 100%;
.van-radio { .van-radio {
background-color: #FFFFFF; background-color: #FFFFFF;
padding: 8px 12px; padding: 8px 12px;
border-radius: 8px; border-radius: 8px;
justify-content: space-between; justify-content: space-between;
margin-right: 0; margin-right: 0;
flex-grow: 1;
} }
} }
.card-input { .card-input {
...@@ -1498,4 +1661,18 @@ export default { ...@@ -1498,4 +1661,18 @@ export default {
width: auto; width: auto;
} }
} }
.doc-checkbox-group {
column-gap: 10px;
row-gap: 8px;
background-color: #FAFAFA;
width: 100%;
.van-checkbox {
background-color: #FFFFFF;
padding: 8px 12px;
border-radius: 8px;
justify-content: space-between;
margin-right: 0;
flex-grow: 1;
}
}
</style> </style>
\ No newline at end of file
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