Commit 755791fc 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 09690767 3df4df10
...@@ -100,4 +100,62 @@ export function getSeparateFUDetail(params) { ...@@ -100,4 +100,62 @@ export function getSeparateFUDetail(params) {
// 获取检验项目对码表 // 获取检验项目对码表
export function getInspectCode(configType) { export function getInspectCode(configType) {
return fetchBase({ url: `/chronic-admin/v1/chronic-inspect-item/query-list/${configType}`, loading: true }) return fetchBase({ url: `/chronic-admin/v1/chronic-inspect-item/query-list/${configType}`, loading: true })
}
// 引用最近一次复筛数据-高血压
export function getScreenHypertensionLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-hypertension/reference-last-screen`, body: params, loading: true })
}
// 引用最近一次随访记录-高血压
export function getVisitHypertensionLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-hypertension/reference-last-time`, body: params, loading: true })
}
// 引用最近一次复筛数据-糖尿病
export function getScreenDiabetesLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-diabetes/reference-last-screen`, body: params, loading: true })
}
// 引用最近一次随访记录-糖尿病
export function getVisitDiabetesLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-diabetes/reference-last-time`, body: params, loading: true })
}
// 引用最近一次复筛数据-冠心病
export function getScreenCoronaryLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-coronary/reference-last-screen`, body: params, loading: true })
}
// 引用最近一次随访记录-冠心病
export function getVisitCoronaryLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-coronary/reference-last-time`, body: params, loading: true })
}
// 引用最近一次复筛数据-脑卒中
export function getScreenStrokeLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-stroke/reference-last-screen`, body: params, loading:
true })
}
// 引用最近一次随访记录-脑卒中
export function getVisitStrokeLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-stroke/reference-last-time`, body: params, loading: true })
}
// 引用最近一次复筛数据-慢阻肺
export function getScreenCopdLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-pulmonary/reference-last-screen`, body: params, loading: true })
}
// 引用最近一次随访记录-慢阻肺
export function getVisitCopdLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-pulmonary/reference-last-time`, body: params, loading: true })
}
// 引用最近一次复筛数据-慢性肾病
export function getScreenNephrosisLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-nephrosis/reference-last-screen`, body: params, loading: true })
}
// 引用最近一次随访记录-慢性肾病
export function getVisitNephrosisLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-nephrosis/reference-last-time`, body: params, loading: true })
}
// 引用最近一次复筛数据-血脂异常
export function getScreenDyslipemiaLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-dyslipemia/reference-last-screen`, body: params, loading: true })
}
// 引用最近一次随访记录-血脂异常
export function getVisitDyslipemiaLastTime(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-dyslipemia/reference-last-time`, body: params, loading: true })
} }
\ No newline at end of file
...@@ -269,7 +269,7 @@ export default { ...@@ -269,7 +269,7 @@ export default {
}) })
}) })
let array = [] let array = []
auxiliaryExamination.forEach(x => { auxiliaryExamination?.forEach(x => {
const items = list.filter(e => e.insType === x) const items = list.filter(e => e.insType === x)
if (items.length > 0) { if (items.length > 0) {
array.push({ array.push({
......
...@@ -169,12 +169,24 @@ ...@@ -169,12 +169,24 @@
<template #right-icon> <template #right-icon>
<doc-icon type="doc-down" /> <doc-icon type="doc-down" />
</template> </template>
<div v-for="(x, xIndex) in inspectList" :key="xIndex" class="gray-box mb-2"> <div v-for="item in columnsAssistant" :key="item.key" class="list">
<div>检查名称:{{ x.itemName }}</div> <div class="flex justify-between py-1 border-bottom item">
<div>检查结果:{{ x.itemValue }}</div> <span class="shrink-0 mr-2 label">{{ item.title }}</span>
<div>影像报告:</div> <span class="text-end">
<ImagePreview :img-list="x.picturesList"></ImagePreview> <span>{{ visitInfo[item.key] || '-' }}</span>
<span v-if="item.unit" class="ml-1">{{ item.unit }}</span>
</span>
</div>
</div> </div>
<template v-if="inspectList?.length > 0">
<div class="py-1">其他检查</div>
<div v-for="(x, xIndex) in inspectList" :key="xIndex" class="gray-box mb-2">
<div>检查名称:{{ x.itemName }}</div>
<div>检查结果:{{ x.itemValue }}</div>
<div>影像报告:</div>
<ImagePreview :img-list="x.picturesList"></ImagePreview>
</div>
</template>
</van-collapse-item> </van-collapse-item>
<van-collapse-item key="7" title="服药依从性" name="7"> <van-collapse-item key="7" title="服药依从性" name="7">
<template #right-icon> <template #right-icon>
...@@ -332,6 +344,22 @@ export default { ...@@ -332,6 +344,22 @@ export default {
{ title: '随访单位', key: 'visitUnitName' }, { title: '随访单位', key: 'visitUnitName' },
{ title: '随访科室', key: 'visitOfficeName' }, { title: '随访科室', key: 'visitOfficeName' },
{ title: '随访医生', key: 'visitDoctorName' } { title: '随访医生', key: 'visitDoctorName' }
],
columnsAssistant: [
{ title: 'SpO₂', key: 'spo2', unit: '%' },
{ title: 'FEV1', key: 'fev1', unit: 'L' },
{ title: 'FVC', key: 'fvc', unit: 'L' },
{ title: 'FEV1/FVC', key: 'fev1Fvc', unit: '%' },
{ title: 'FEV1%pred', key: 'fev1Pred', unit: '%' },
{ title: 'FVC%pred', key: 'fvcPred', unit: '%' },
{ title: '白细胞计数', key: 'wbcCount', unit: 'x10⁹/L' },
{ title: '中性粒细胞计数', key: 'nesCount', unit: 'x10⁹/L' },
{ title: '嗜酸性粒细胞计数', key: 'eosCount', unit: 'x10⁹/L' },
{ title: '嗜碱性粒细胞计数', key: 'bosCount', unit: 'x10⁹/L' },
{ title: '单核细胞计数', key: 'moCount', unit: 'x10⁹/L' },
{ title: '淋巴细胞计数', key: 'lymphCount', unit: 'x10⁹/L' },
{ title: '血红蛋白', key: 'hgbCount', unit: 'g/L' },
{ title: '血小板计数', key: 'pltCount', unit: 'x10⁹/L' },
] ]
} }
}, },
......
...@@ -185,8 +185,8 @@ ...@@ -185,8 +185,8 @@
</div> </div>
</div> </div>
<div v-for="(x, xIndex) in inspectList" :key="xIndex"> <div v-for="(x, xIndex) in inspectList" :key="xIndex">
<div style="color: #262626" :class="[xIndex === 0 ? '' : 'mt-2']">{{ x.insName }}</div> <div class="py-1">{{ x.insName }}</div>
<div class="gray-box mt-1"> <div class="gray-box">
<div v-for="(y, yIndex) in x.items" :key="yIndex"> <div v-for="(y, yIndex) in x.items" :key="yIndex">
<span>{{ y.itemName }}</span> <span>{{ y.itemName }}</span>
<span v-if="y.itemName"></span> <span v-if="y.itemName"></span>
...@@ -259,6 +259,36 @@ ...@@ -259,6 +259,36 @@
<template #right-icon> <template #right-icon>
<doc-icon type="doc-down" /> <doc-icon type="doc-down" />
</template> </template>
<div class="list">
<div class="flex justify-between py-1 border-bottom item">
<span class="shrink-0 mr-2 label">是否调整治疗方案</span>
<span class="text-end">{{ visitInfo.adjustTreatName }}</span>
</div>
</div>
<template v-if="visitInfo.adjustTreat === 1">
<div class="py-1">用药方案</div>
<div v-for="(item, index) in medicateCase" :key="index" class="gray-box">
<div>药物名称:{{ item.drugName }}</div>
<div>
<span>剂量:</span>
<span>{{ item.dose }}</span>
<span class="ml-1">{{ item.unitName || store.getDictValue('CP00081', item.unit) }}</span>
</div>
<div>频次:{{ item.frequencyName || store.getDictValue('CP00084', item.frequency) }}</div>
<div>用法:{{ item.usageName || store.getDictValue('CP00083', item.usage) }}</div>
</div>
</template>
<div class="py-1">胰岛素</div>
<div class="gray-box">
<div>
<span>胰岛素种类:{{ visitInfo.insulinTypeName }}</span>
<span v-if="visitInfo.insulinType === 99">({{ visitInfo.insulinTypeOther }})</span>
</div>
<div>
<span>用法:{{ visitInfo.insulinUsageName }}</span>
<span v-if="visitInfo.insulinUsage === 9">({{ visitInfo.insulinUsageOther }})</span>
</div>
</div>
</van-collapse-item> </van-collapse-item>
<van-collapse-item key="13" title="转诊" name="13"> <van-collapse-item key="13" title="转诊" name="13">
<template #right-icon> <template #right-icon>
...@@ -392,6 +422,13 @@ export default { ...@@ -392,6 +422,13 @@ export default {
} }
}) })
return list return list
},
medicateCase() {
if (this.visitInfo.medicateCase) {
return JSON.parse(this.visitInfo.medicateCase)
} else {
return []
}
} }
}, },
methods: { methods: {
......
...@@ -38,7 +38,10 @@ ...@@ -38,7 +38,10 @@
<div class="flex justify-between py-1 border-bottom item"> <div class="flex justify-between py-1 border-bottom item">
<span class="shrink-0 mr-2 label">随访方式</span> <span class="shrink-0 mr-2 label">随访方式</span>
<span class="text-end"> <span class="text-end">
{{ visitInfo.visitWayName || '-' }} <span>{{ visitInfo.visitWayName }}</span>
<span v-if="visitInfo.visitWay === 1 || visitInfo.visitWay === 4">
({{ visitInfo.interviewMethodName }})
</span>
</span> </span>
</div> </div>
</div> </div>
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
<van-field :rules="rules.serveType" style="padding: 0" class="mb-5"> <van-field :rules="rules.serveType" style="padding: 0" class="mb-5">
<template #input> <template #input>
<van-radio-group <van-radio-group
:disabled="$route.query.id ? true : false"
v-model="form.serveType" v-model="form.serveType"
shape="dot" shape="dot"
direction="horizontal" direction="horizontal"
......
...@@ -2,7 +2,25 @@ ...@@ -2,7 +2,25 @@
<van-form ref="form"> <van-form ref="form">
<div class="first-title"> <div class="first-title">
<span class="font-semibold">随访信息</span> <span class="font-semibold">随访信息</span>
<div class="btn-title">引入数据</div> <div class="btn-title" @click="showInData = true">引入数据</div>
<van-popup v-model:show="showInData" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="inDateCancel">取消</div>
<div>引入数据</div>
<div class="blueColor" @click="inDateConfirm">确定</div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="inDataList"
v-model:value="inData"
:fieldNames="{ text: 'name', value: 'value' }"
/>
</div>
</div>
</van-popup>
</div> </div>
<!-- 随访方式 --> <!-- 随访方式 -->
<div class="label-title mt-2" required>随访方式</div> <div class="label-title mt-2" required>随访方式</div>
...@@ -847,7 +865,7 @@ ...@@ -847,7 +865,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 { getChronicKidneyDiseaseForm } from '@/api/doctor/separateFU' import { getChronicKidneyDiseaseForm, getScreenNephrosisLastTime, getVisitNephrosisLastTime } 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 DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue' import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
...@@ -1156,9 +1174,24 @@ export default { ...@@ -1156,9 +1174,24 @@ export default {
{ required: true, message: '请选择' } { required: true, message: '请选择' }
] ]
}, },
showInData: false,
inData: null,
inDataList: [
{
value: 1,
name: '引入最近一次复筛数据'
},
{
value: 2,
name: '引入HIS检查数据'
},
{
value: 3,
name: '引入最近一次随访数据'
}
],
showVisitWay: false, showVisitWay: false,
showSymptom: false, showSymptom: false,
// showAuxiliaryExamination: false
showCurrentDiagnosis: false, showCurrentDiagnosis: false,
showReferralUnit: false, showReferralUnit: false,
showReferralOffice: false, showReferralOffice: false,
...@@ -1279,29 +1312,81 @@ export default { ...@@ -1279,29 +1312,81 @@ export default {
let { id } = this.$route.query let { id } = this.$route.query
if (id) { if (id) {
getChronicKidneyDiseaseForm({ id }).then(res => { getChronicKidneyDiseaseForm({ id }).then(res => {
const form = fetchDataHandle(res.data, { // const form = fetchDataHandle(res.data, {
symptom: 'strToArrNum', // symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum' // currentDiagnosis: 'strToArrNum'
}) // })
this.form = form // this.form = form
// 下次随访日期 // // 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-') // this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期 // // 随访日期
this.form._visitDate = this.form.visitDate.split('-') // this.form._visitDate = this.form.visitDate.split('-')
this.dataProcess(res.data)
}) })
} else { } else {
// 随访日期 this.defaultData()
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
} }
},
inDateCancel() {
this.showInData = false
this.inData = null
},
inDateConfirm() {
this.showInData = false
if (this.inData === 1) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getScreenNephrosisLastTime(params).then(res => {
if (res.data) {
this.form = res.data
this.defaultData()
} else {
showToast('暂无最近一次复筛数据')
}
})
} else if (this.inData === 2) {
showToast('暂无HIS检查数据')
} else if (this.inData === 3) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getVisitNephrosisLastTime(params).then(res => {
if (res.data) {
// this.form = res.data
// this.defaultData()
this.dataProcess(res.data)
} else {
showToast('暂无最近一次随访数据')
}
})
}
},
dataProcess(data) {
const form = fetchDataHandle(data, {
symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum'
})
this.form = form
// 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期
this.form._visitDate = this.form.visitDate.split('-')
},
defaultData() {
// 随访日期
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: { watch: {
......
...@@ -2,7 +2,25 @@ ...@@ -2,7 +2,25 @@
<van-form ref="form"> <van-form ref="form">
<div class="first-title"> <div class="first-title">
<span class="font-semibold">随访信息</span> <span class="font-semibold">随访信息</span>
<div class="btn-title">引入数据</div> <div class="btn-title" @click="showInData = true">引入数据</div>
<van-popup v-model:show="showInData" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="inDateCancel">取消</div>
<div>引入数据</div>
<div class="blueColor" @click="inDateConfirm">确定</div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="inDataList"
v-model:value="inData"
:fieldNames="{ text: 'name', value: 'value' }"
/>
</div>
</div>
</van-popup>
</div> </div>
<!-- 随访方式 --> <!-- 随访方式 -->
<div class="label-title mt-2" required>随访方式</div> <div class="label-title mt-2" required>随访方式</div>
...@@ -1203,7 +1221,7 @@ ...@@ -1203,7 +1221,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 { getCopdForm } from '@/api/doctor/separateFU' import { getCopdForm, getScreenCopdLastTime, getVisitCopdLastTime } 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 DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue' import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
...@@ -1487,6 +1505,22 @@ export default { ...@@ -1487,6 +1505,22 @@ export default {
{ required: true, message: '请选择' } { required: true, message: '请选择' }
] ]
}, },
showInData: false,
inData: null,
inDataList: [
{
value: 1,
name: '引入最近一次复筛数据'
},
{
value: 2,
name: '引入HIS检查数据'
},
{
value: 3,
name: '引入最近一次随访数据'
}
],
showVisitWay: false, showVisitWay: false,
showSymptom: false, showSymptom: false,
showComplication: false, showComplication: false,
...@@ -1630,31 +1664,84 @@ export default { ...@@ -1630,31 +1664,84 @@ export default {
let { id } = this.$route.query let { id } = this.$route.query
if (id) { if (id) {
getCopdForm({ id }).then(res => { getCopdForm({ id }).then(res => {
const form = fetchDataHandle(res.data, { // const form = fetchDataHandle(res.data, {
symptom: 'strToArrNum', // symptom: 'strToArrNum',
complication: 'strToArrNum', // complication: 'strToArrNum',
vaccinesHistoryHave: 'strToArrNum', // vaccinesHistoryHave: 'strToArrNum',
currentDiagnosis: 'strToArrNum' // currentDiagnosis: 'strToArrNum'
}) // })
this.form = form // this.form = form
// 下次随访日期 // // 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-') // this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期 // // 随访日期
this.form._visitDate = this.form.visitDate.split('-') // this.form._visitDate = this.form.visitDate.split('-')
this.dataProcess(res.data)
}) })
} else { } else {
// 随访日期 this.defaultData()
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
} }
},
inDateCancel() {
this.showInData = false
this.inData = null
},
inDateConfirm() {
this.showInData = false
if (this.inData === 1) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getScreenCopdLastTime(params).then(res => {
if (res.data) {
this.form = res.data
this.defaultData()
} else {
showToast('暂无最近一次复筛数据')
}
})
} else if (this.inData === 2) {
showToast('暂无HIS检查数据')
} else if (this.inData === 3) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getVisitCopdLastTime(params).then(res => {
if (res.data) {
// this.form = res.data
// this.defaultData()
this.dataProcess(res.data)
} else {
showToast('暂无最近一次随访数据')
}
})
}
},
dataProcess(data) {
const form = fetchDataHandle(data, {
symptom: 'strToArrNum',
complication: 'strToArrNum',
vaccinesHistoryHave: 'strToArrNum',
currentDiagnosis: 'strToArrNum'
})
this.form = form
// 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期
this.form._visitDate = this.form.visitDate.split('-')
},
defaultData() {
// 随访日期
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: { watch: {
......
...@@ -2,7 +2,25 @@ ...@@ -2,7 +2,25 @@
<van-form ref="form"> <van-form ref="form">
<div class="first-title"> <div class="first-title">
<span class="font-semibold">随访信息</span> <span class="font-semibold">随访信息</span>
<div class="btn-title">引入数据</div> <div class="btn-title" @click="showInData = true">引入数据</div>
<van-popup v-model:show="showInData" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="inDateCancel">取消</div>
<div>引入数据</div>
<div class="blueColor" @click="inDateConfirm">确定</div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="inDataList"
v-model:value="inData"
:fieldNames="{ text: 'name', value: 'value' }"
/>
</div>
</div>
</van-popup>
</div> </div>
<!-- 随访方式 --> <!-- 随访方式 -->
<div class="label-title mt-2" required>随访方式</div> <div class="label-title mt-2" required>随访方式</div>
...@@ -851,7 +869,7 @@ ...@@ -851,7 +869,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 { getCoronaryHeartDiseaseForm } from '@/api/doctor/separateFU' import { getCoronaryHeartDiseaseForm, getScreenCoronaryLastTime, getVisitCoronaryLastTime } 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 DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue' import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
...@@ -1157,10 +1175,25 @@ export default { ...@@ -1157,10 +1175,25 @@ export default {
{ required: true, message: '请选择' } { required: true, message: '请选择' }
] ]
}, },
showInData: false,
inData: null,
inDataList: [
{
value: 1,
name: '引入最近一次复筛数据'
},
{
value: 2,
name: '引入HIS检查数据'
},
{
value: 3,
name: '引入最近一次随访数据'
}
],
showVisitWay: false, showVisitWay: false,
showPaperReasons: false, showPaperReasons: false,
showSymptom: false, showSymptom: false,
// showAuxiliaryExamination: false
showCurrentDiagnosis: false, showCurrentDiagnosis: false,
showReferralUnit: false, showReferralUnit: false,
showReferralOffice: false, showReferralOffice: false,
...@@ -1281,29 +1314,80 @@ export default { ...@@ -1281,29 +1314,80 @@ export default {
let { id } = this.$route.query let { id } = this.$route.query
if (id) { if (id) {
getCoronaryHeartDiseaseForm({ id }).then(res => { getCoronaryHeartDiseaseForm({ id }).then(res => {
const form = fetchDataHandle(res.data, { // const form = fetchDataHandle(res.data, {
symptom: 'strToArrNum', // symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum' // currentDiagnosis: 'strToArrNum'
}) // })
this.form = form // this.form = form
// 下次随访日期 // // 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-') // this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期 // // 随访日期
this.form._visitDate = this.form.visitDate.split('-') // this.form._visitDate = this.form.visitDate.split('-')
this.dataProcess(res.data)
}) })
} else { } else {
// 随访日期 this.defaultData()
this.form.visitDate = dayjs().format('YYYY-MM-DD') }
// 随访单位 },
this.form.visitUnitId = this.authInfo.unitId
this.form.visitUnitName = this.authInfo.unitName inDateCancel() {
// 随访科室 this.showInData = false
this.form.visitOfficeId = this.authInfo.officeId this.inData = null
this.form.visitOfficeName = this.authInfo.officeName },
// 随访医生 inDateConfirm() {
this.form.visitDoctorId = this.authInfo.relationId this.showInData = false
this.form.visitDoctorName = this.authInfo.nickName if (this.inData === 1) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getScreenCoronaryLastTime(params).then(res => {
if (res.data) {
this.form = res.data
this.defaultData()
} else {
showToast('暂无最近一次复筛数据')
}
})
} else if (this.inData === 2) {
showToast('暂无HIS检查数据')
} else if (this.inData === 3) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getVisitCoronaryLastTime(params).then(res => {
if (res.data) {
// this.form = res.data
// this.defaultData()
this.dataProcess(res.data)
} else {
showToast('暂无最近一次随访数据')
}
})
} }
},
dataProcess(data) {
const form = fetchDataHandle(data, {
symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum'
})
this.form = form
// 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期
this.form._visitDate = this.form.visitDate.split('-')
},
defaultData() {
// 随访日期
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: { watch: {
......
...@@ -2,7 +2,25 @@ ...@@ -2,7 +2,25 @@
<van-form ref="form"> <van-form ref="form">
<div class="first-title"> <div class="first-title">
<span class="font-semibold">随访信息</span> <span class="font-semibold">随访信息</span>
<div class="btn-title">引入数据</div> <div class="btn-title" @click="showInData = true">引入数据</div>
<van-popup v-model:show="showInData" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="inDateCancel">取消</div>
<div>引入数据</div>
<div class="blueColor" @click="inDateConfirm">确定</div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="inDataList"
v-model:value="inData"
:fieldNames="{ text: 'name', value: 'value' }"
/>
</div>
</div>
</van-popup>
</div> </div>
<!-- 随访方式 --> <!-- 随访方式 -->
<div class="label-title mt-2" required>随访方式</div> <div class="label-title mt-2" required>随访方式</div>
...@@ -850,7 +868,7 @@ ...@@ -850,7 +868,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 { getDyslipidemiaForm } from '@/api/doctor/separateFU' import { getDyslipidemiaForm, getScreenDyslipemiaLastTime, getVisitDyslipemiaLastTime } 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 DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue' import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
...@@ -861,6 +879,7 @@ import MovementTip from '@/doctor/components/movementTip/MovementTip.vue' ...@@ -861,6 +879,7 @@ import MovementTip from '@/doctor/components/movementTip/MovementTip.vue'
import InspectV2 from '../../components/InspectV2.vue' import InspectV2 from '../../components/InspectV2.vue'
import TreatmentPlan from '../../components/TreatmentPlan.vue' import TreatmentPlan from '../../components/TreatmentPlan.vue'
import dayjs from 'dayjs'
export default { export default {
components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan, MovementTip }, components: { CheckBtn, BloodPressurePanel, BloodPressureBt, DocImageUpload, DocUnit, DocOffice, DocOfficeDoctor, InspectV2, TreatmentPlan, MovementTip },
inject: ['pressureObj'], inject: ['pressureObj'],
...@@ -1155,9 +1174,24 @@ export default { ...@@ -1155,9 +1174,24 @@ export default {
{ required: true, message: '请选择' } { required: true, message: '请选择' }
] ]
}, },
showInData: false,
inData: null,
inDataList: [
{
value: 1,
name: '引入最近一次复筛数据'
},
{
value: 2,
name: '引入HIS检查数据'
},
{
value: 3,
name: '引入最近一次随访数据'
}
],
showVisitWay: false, showVisitWay: false,
showSymptom: false, showSymptom: false,
// showAuxiliaryExamination: false
showCurrentDiagnosis: false, showCurrentDiagnosis: false,
showReferralUnit: false, showReferralUnit: false,
showReferralOffice: false, showReferralOffice: false,
...@@ -1176,6 +1210,11 @@ export default { ...@@ -1176,6 +1210,11 @@ export default {
showVisitDoctor: false showVisitDoctor: false
} }
}, },
computed: {
authInfo() {
return this.store.authInfo
}
},
created() { created() {
this.getInfo() this.getInfo()
}, },
...@@ -1273,29 +1312,81 @@ export default { ...@@ -1273,29 +1312,81 @@ export default {
let { id } = this.$route.query let { id } = this.$route.query
if (id) { if (id) {
getDyslipidemiaForm({ id }).then(res => { getDyslipidemiaForm({ id }).then(res => {
const form = fetchDataHandle(res.data, { // const form = fetchDataHandle(res.data, {
symptom: 'strToArrNum', // symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum' // currentDiagnosis: 'strToArrNum'
}) // })
this.form = form // this.form = form
// 下次随访日期 // // 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-') // this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期 // // 随访日期
this.form._visitDate = this.form.visitDate.split('-') // this.form._visitDate = this.form.visitDate.split('-')
this.dataProcess(res.data)
}) })
} else { } else {
// 随访日期 this.defaultData()
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
} }
},
inDateCancel() {
this.showInData = false
this.inData = null
},
inDateConfirm() {
this.showInData = false
if (this.inData === 1) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getScreenDyslipemiaLastTime(params).then(res => {
if (res.data) {
this.form = res.data
this.defaultData()
} else {
showToast('暂无最近一次复筛数据')
}
})
} else if (this.inData === 2) {
showToast('暂无HIS检查数据')
} else if (this.inData === 3) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getVisitDyslipemiaLastTime(params).then(res => {
if (res.data) {
// this.form = res.data
// this.defaultData()
this.dataProcess(res.data)
} else {
showToast('暂无最近一次随访数据')
}
})
}
},
dataProcess(data) {
const form = fetchDataHandle(data, {
symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum'
})
this.form = form
// 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期
this.form._visitDate = this.form.visitDate.split('-')
},
defaultData() {
// 随访日期
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: { watch: {
......
...@@ -2,7 +2,25 @@ ...@@ -2,7 +2,25 @@
<van-form ref="form"> <van-form ref="form">
<div class="first-title"> <div class="first-title">
<span class="font-semibold">随访信息</span> <span class="font-semibold">随访信息</span>
<div class="btn-title">引入数据</div> <div class="btn-title" @click="showInData = true">引入数据</div>
<van-popup v-model:show="showInData" position="bottom">
<div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="inDateCancel">取消</div>
<div>引入数据</div>
<div class="blueColor" @click="inDateConfirm">确定</div>
</div>
<div style="height: 80%; overflow: auto">
<CheckBtn
clearable
column-1
:options="inDataList"
v-model:value="inData"
:fieldNames="{ text: 'name', value: 'value' }"
/>
</div>
</div>
</van-popup>
</div> </div>
<!-- 随访方式 --> <!-- 随访方式 -->
<div class="label-title mt-2" required>随访方式</div> <div class="label-title mt-2" required>随访方式</div>
...@@ -850,7 +868,7 @@ ...@@ -850,7 +868,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 { getStrokeForm } from '@/api/doctor/separateFU' import { getStrokeForm, getScreenStrokeLastTime, getVisitStrokeLastTime } 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 DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue' import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
...@@ -1156,9 +1174,24 @@ export default { ...@@ -1156,9 +1174,24 @@ export default {
{ required: true, message: '请选择' } { required: true, message: '请选择' }
] ]
}, },
showInData: false,
inData: null,
inDataList: [
{
value: 1,
name: '引入最近一次复筛数据'
},
{
value: 2,
name: '引入HIS检查数据'
},
{
value: 3,
name: '引入最近一次随访数据'
}
],
showVisitWay: false, showVisitWay: false,
showSymptom: false, showSymptom: false,
// showAuxiliaryExamination: false
showCurrentDiagnosis: false, showCurrentDiagnosis: false,
showReferralUnit: false, showReferralUnit: false,
showReferralOffice: false, showReferralOffice: false,
...@@ -1279,29 +1312,80 @@ export default { ...@@ -1279,29 +1312,80 @@ export default {
let { id } = this.$route.query let { id } = this.$route.query
if (id) { if (id) {
getStrokeForm({ id }).then(res => { getStrokeForm({ id }).then(res => {
const form = fetchDataHandle(res.data, { // const form = fetchDataHandle(res.data, {
symptom: 'strToArrNum', // symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum' // currentDiagnosis: 'strToArrNum'
}) // })
this.form = form // this.form = form
// 下次随访日期 // // 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-') // this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期 // // 随访日期
this.form._visitDate = this.form.visitDate.split('-') // this.form._visitDate = this.form.visitDate.split('-')
this.dataProcess(res.data)
}) })
} else { } else {
// 随访日期 this.defaultData()
this.form.visitDate = dayjs().format('YYYY-MM-DD') }
// 随访单位 },
this.form.visitUnitId = this.authInfo.unitId
this.form.visitUnitName = this.authInfo.unitName inDateCancel() {
// 随访科室 this.showInData = false
this.form.visitOfficeId = this.authInfo.officeId this.inData = null
this.form.visitOfficeName = this.authInfo.officeName },
// 随访医生 inDateConfirm() {
this.form.visitDoctorId = this.authInfo.relationId this.showInData = false
this.form.visitDoctorName = this.authInfo.nickName if (this.inData === 1) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getScreenStrokeLastTime(params).then(res => {
if (res.data) {
this.form = res.data
this.defaultData()
} else {
showToast('暂无最近一次复筛数据')
}
})
} else if (this.inData === 2) {
showToast('暂无HIS检查数据')
} else if (this.inData === 3) {
let params = {
residentInfoId: this.$route.query.residentInfoId
}
getVisitStrokeLastTime(params).then(res => {
if (res.data) {
// this.form = res.data
// this.defaultData()
this.dataProcess(res.data)
} else {
showToast('暂无最近一次随访数据')
}
})
} }
},
dataProcess(data) {
const form = fetchDataHandle(data, {
symptom: 'strToArrNum',
currentDiagnosis: 'strToArrNum'
})
this.form = form
// 下次随访日期
this.form._nextVisitDate = this.form.nextVisitDate.split('-')
// 随访日期
this.form._visitDate = this.form.visitDate.split('-')
},
defaultData() {
// 随访日期
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: { watch: {
......
...@@ -30,12 +30,12 @@ module.exports = defineConfig({ ...@@ -30,12 +30,12 @@ module.exports = defineConfig({
} }
}, },
'/chronic-admin': { '/chronic-admin': {
target: 'https://beta-tumour.zmnyjk.com', // target: 'https://beta-tumour.zmnyjk.com',
// target: 'http://192.168.1.202:8900', target: 'http://192.168.1.202:8900',
changOrigin: true, changOrigin: true,
pathRewrite: { pathRewrite: {
// '^/chronic-admin': '/' '^/chronic-admin': '/'
'^/chronic-admin': '/chronic-admin' // '^/chronic-admin': '/chronic-admin'
} }
}, },
'/chronic-resident': { '/chronic-resident': {
......
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