| | |
| | | <template> |
| | | <div class="dietarySurvey-item"> |
| | | <el-dialog v-model="state.dialogTableVisible" title="主观全面评定(SGA)评价" :fullscreen="true" width="100%"> |
| | | <div class="container" style="width: 100%; height: 100%;overflow: auto;"> |
| | | <div> |
| | | <el-dialog v-model="state.dialogTableVisible" title="SGA" :fullscreen="true" width="100%"> |
| | | <div style="width: 100%; height: 100%;overflow: auto;"> |
| | | <div id="pinggu2"> |
| | | <div> |
| | | <el-form size="small"> |
| | | <div style="width: 100%"> |
| | |
| | | <tr> |
| | | <th colspan="2"> |
| | | <el-form-item label="初次调查日期"> |
| | | <el-date-picker v-model="state.tableData.初次调查日期" type="date" |
| | | <el-date-picker v-model="state.tableData.初次调查日期" type="date" readonly |
| | | style="width: 100px;" placeholder="" format="YYYY/MM/DD" |
| | | value-format="YYYY-MM-DD" /> |
| | | </el-form-item> |
| | |
| | | </th> |
| | | <th colspan="2"> |
| | | <el-form-item label="更新日期"> |
| | | <el-date-picker v-model="state.tableData.更新日期" type="date" |
| | | <el-date-picker v-model="state.tableData.更新日期" type="date" readonly |
| | | style="width: 100px;" placeholder="" format="YYYY/MM/DD" |
| | | value-format="YYYY-MM-DD" /> |
| | | </el-form-item> |
| | | |
| | | |
| | | </th> |
| | | <th colspan="2">记录者:{{ state.tableData.记录者 }}</th> |
| | | <th colspan="2"> |
| | | <el-form-item label="记录者"> |
| | | <el-input v-model="state.tableData.记录者" style="width: 100px;" readonly placeholder="" /> |
| | | </el-form-item> |
| | | </th> |
| | | |
| | | </tr> |
| | | <tr> |
| | |
| | | |
| | | </td> |
| | | <td colspan="3" style="color: red;"> |
| | | 评级结果:{{sum}} |
| | | 评级结果:{{sum.value}},{{sum.label}} |
| | | </td> |
| | | |
| | | |
| | |
| | | </tr> |
| | | <!-- 饮食 --> |
| | | <tr> |
| | | <td rowspan="4"> |
| | | <td rowspan="6"> |
| | | 进食 |
| | | |
| | | </td> |
| | | <td colspan="2">您的食欲??</td> |
| | | <td colspan="3" rowspan="3"> |
| | | <td colspan="3"> |
| | | <el-radio-group class="elradiozdi" v-model="state.tableData.进食1.type"> |
| | | <el-radio value="A">A:好;无变化,轻度;短期变化</el-radio> |
| | | <el-radio value="B">B:正常下限,但在减少;差,但在增加;差,没变化(取决于初始状态)</el-radio> |
| | | <el-radio value="C">C:差,并在减少;差,无变化</el-radio> |
| | | <el-radio value="A">A:好</el-radio> |
| | | <el-radio value="D">C:正常</el-radio> |
| | | <el-radio value="C">C:差</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | |
| | | <td colspan="2">您的进食量有变化吗?</td> |
| | | <td colspan="3"> |
| | | <el-radio-group class="elradiozdi" v-model="state.tableData.进食2.type"> |
| | | <el-radio value="A">A:不变</el-radio> |
| | | <el-radio value="B">B:增加</el-radio> |
| | | <el-radio value="C">C:减少</el-radio> |
| | | <!-- <el-radio value="D">D:非常好</el-radio> --> |
| | | </el-radio-group> |
| | | </td> |
| | | |
| | | </tr> |
| | | <tr> |
| | | |
| | | <td colspan="2">这种情况持续多长时间?</td> |
| | | <td colspan="3"> |
| | | <el-radio-group class="elradiozdi" v-model="state.tableData.进食3.type"> |
| | | <el-radio value="A">A:≤2周</el-radio> |
| | | <el-radio value="B">B:>2周</el-radio> |
| | | |
| | | </el-radio-group> |
| | | </td> |
| | | |
| | | </tr> |
| | | <tr> |
| | | |
| | | <td colspan="2">您的食物类型有变化吗?</td> |
| | | <td colspan="3"> |
| | | <el-radio-group class="elradiozdi" v-model="state.tableData.进食2.type"> |
| | | <el-radio-group class="elradiozdi" v-model="state.tableData.进食4.type"> |
| | | <el-radio value="A">A:没有变化</el-radio> |
| | | <el-radio value="B">B:半流食</el-radio> |
| | | <el-radio value="C">C:全流食</el-radio> |
| | |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | |
| | | <td colspan="2">摄食变化?</td> |
| | | <td colspan="3"> |
| | | <el-radio-group class="elradiozdi" v-model="state.tableData.进食5.type"> |
| | | <el-radio value="A">A:好;无变化,轻度;短期变化</el-radio> |
| | | <el-radio value="B">B:正常下限,但在减少;差,但在增加;差,没变化(取决于初始状态)</el-radio> |
| | | <el-radio value="C">C:差,并在减少;差,无变化</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | |
| | | <td colspan="2">摄食变化的时间?</td> |
| | | <td colspan="3"> |
| | | <el-radio-group class="elradiozdi" v-model="state.tableData.进食6.type"> |
| | | <el-radio value="A">A:≤2周,变化少或无变化</el-radio> |
| | | <el-radio value="B">B:>2周,轻-中度低于理想摄食量</el-radio> |
| | | <el-radio value="C">C:>2周,不能进食,饥饿</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td rowspan="6"> |
| | | 胃肠道症状 |
| | |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td colspan="6" style="font-weight: 600;"> |
| | | <td colspan="6" style="font-weight: 600; color: #000;"> |
| | | 注意: |
| | | <br /> |
| | | 1.体重变化,考虑过去6个月或近2周的,过去5个月变化显著,但近一个月无丢失无增加,或近2周经治疗后体重稳定,则体重丢失一项不予考虑。 |
| | | <br />2.胃肠道症状至少持续2周,偶尔一两次不予考虑。 |
| | | <br />3.应激参照:大面积烧伤、高烧、或大量出血属高应激,长期发烧、慢性腹泻属中应激,长期低烧或恶性肿瘤属低应 |
| | | <br />4.评价结果中,8项中至少5项属于C级或者B级,分别定位重度或中度具体参考:C>5项定为重度营养不良,有明显的躯体症状C小于5但B+C大于等于5项定为中度营养不良,B+C小于5项为轻度营养不良A≥5定为营养良好,或有明显的改善病例结果 |
| | | <br />4.评价结果中,8项中至少5项属于C级或者B级,分别定位重度或中度具体参考:C>5项定为重度营养不良,有明显的躯体症状C小于5但B+C>等于5项定为中度营养不良,B+C小于5项为轻度营养不良A≥5定为营养良好,或有明显的改善病例结果 |
| | | </td> |
| | | </tr> |
| | | |
| | |
| | | <el-button type="primary" @click="onSubmit"> |
| | | 保存 |
| | | </el-button> |
| | | <el-button v-if="state.viewInfo.id" type="primary" v-print="'#pinggu2'"> |
| | | <el-icon><Printer /></el-icon> |
| | | 打印 |
| | | </el-button> |
| | | <el-button type="primary" v-if="state.viewInfo.id" @click="generatePDF"> |
| | | <el-icon><Position /></el-icon> |
| | | 导出 |
| | | </el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts" name="visualizingLinkDemo2"> |
| | | import html2pdf from 'html2pdf.js'; |
| | | import { reactive, onMounted, onUnmounted, ref, computed } from 'vue'; |
| | | import { formatDate } from '/@/utils/formatTime'; |
| | | import { NextLoading } from '/@/utils/loading'; |
| | |
| | | import { storeToRefs } from 'pinia'; |
| | | import { useRoute, useRouter } from 'vue-router'; |
| | | import { ElMessage } from 'element-plus'; |
| | | import { getPatData } from '/@/api/Patients'; |
| | | const stores = useUserInfo(); |
| | | const { patientsInfo } = storeToRefs(storesPat); |
| | | const { userInfos } = storeToRefs(stores); |
| | |
| | | const state = reactive({ |
| | | dialogTableVisible: false, |
| | | tableData: { |
| | | 表名: '主观全面评定(SGA)评价', |
| | | 表名: 'SGA', |
| | | 初次调查日期: "", |
| | | 填表日期: '', |
| | | 更新日期: '', |
| | |
| | | 进食2: { type: '' }, |
| | | 进食3: { type: '' }, |
| | | 进食4: { type: '' }, |
| | | 进食5: { type: '' }, |
| | | 进食6: { type: '' }, |
| | | 胃肠道症状: { type: '' }, |
| | | 功能异常: { |
| | | type: '', |
| | |
| | | 腹水: { |
| | | type: '', |
| | | input1: '', |
| | | } |
| | | }, |
| | | 结果:'' |
| | | }, |
| | | loading: false, |
| | | viewInfo: { |
| | |
| | | surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'), |
| | | surveryPerson: userInfos.value.code, |
| | | surveryJsonBody: '', |
| | | suveryFormName: '主观全面评定(SGA)评价', |
| | | suveryFormName: 'SGA', |
| | | surveryFormType: 1, |
| | | updateTime: '' |
| | | } |
| | |
| | | let a = 0 |
| | | let b=0 |
| | | let c=0 |
| | | const res={ |
| | | value:'', |
| | | label:'', |
| | | color:'' |
| | | } |
| | | for (let key in state.tableData) { |
| | | console.log(key + 'key==' + state.tableData[key]?.type) |
| | | if (state.tableData[key]?.type==='A') { |
| | | a++ |
| | | }else if(state.tableData[key]?.type==='B') { |
| | |
| | | c++ |
| | | } |
| | | } |
| | | return `A:${a},B:${b},C:${c}` |
| | | if(c>5){ |
| | | res.label='重度营养不良' |
| | | res.color='#F56C6C' |
| | | }else if(c<5&&b+c>=5){ |
| | | res.label='中度营养不良' |
| | | res.color='#E6A23C' |
| | | }else if(b+c<5){ |
| | | res.label='轻度营养不良' |
| | | res.color='#E6A23C' |
| | | }else if(a>=5) { |
| | | res.label='营养良好' |
| | | res.color='#303133' |
| | | }else{ |
| | | res.label='' |
| | | } |
| | | res.value=`A:${a},B:${b},C:${c}` |
| | | return res |
| | | }) |
| | | const funhui = () => { |
| | | state.dialogTableVisible = false |
| | |
| | | const onSubmit = () => { |
| | | console.log('submit!') |
| | | console.log(state.tableData) |
| | | state.tableData.结果=sum.value |
| | | const info: tiaochabiaoInfo = { |
| | | id: state.viewInfo.id, |
| | | surveryFormType: 1, |
| | |
| | | surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'), |
| | | surveryPerson: userInfos.value.code, |
| | | surveryJsonBody: JSON.stringify(state.tableData), |
| | | suveryFormName: '主观全面评定(SGA)评价', |
| | | suveryFormName: 'SGA', |
| | | updateTime: '' |
| | | } |
| | | console.log(info) |
| | |
| | | |
| | | } |
| | | // 打开查看或者编辑明细 |
| | | const openShow = (type: string, mode: tiaochabiaoInfo) => { |
| | | const openShow = async (type: string, mode: tiaochabiaoInfo) => { |
| | | console.log(type) |
| | | |
| | | if (type === 'add') { |
| | | state.tableData.初次调查日期 = formatDate(new Date(), 'YYYY-mm-dd') |
| | | state.tableData.更新日期 = formatDate(new Date(), 'YYYY-mm-dd') |
| | | state.tableData.记录者 = userInfos.value.userName |
| | | getPageInfo() |
| | | await getPageInfo() |
| | | state.dialogTableVisible = true |
| | | } |
| | | else if (type === 'update') { |
| | |
| | | console.log(mode) |
| | | state.viewInfo = mode |
| | | state.tableData = JSON.parse(mode.surveryJsonBody) |
| | | state.tableData.初次调查日期=mode.surveryTime |
| | | state.tableData.更新日期=mode.updateTime |
| | | state.dialogTableVisible = true |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | const getPageInfo = () => { |
| | | const getPageInfo = async () => { |
| | | const res = await getPatData({ patCode: patientsInfo.value.code, }) |
| | | state.tableData = { |
| | | 表名: '主观全面评定(SGA)评价', |
| | | 表名: 'SGA', |
| | | 初次调查日期: formatDate(new Date(), 'YYYY-mm-dd'), |
| | | 填表日期: '', |
| | | 更新日期: formatDate(new Date(), 'YYYY-mm-dd'), |
| | | 记录者: userInfos.value.userName, |
| | | 您目前体重: '', |
| | | 您目前体重: res.data.上一次透前体重, |
| | | 体重改变1: { |
| | | type: '', |
| | | input1: '', |
| | |
| | | 进食2: { type: '' }, |
| | | 进食3: { type: '' }, |
| | | 进食4: { type: '' }, |
| | | 进食5: { type: '' }, |
| | | 进食6: { type: '' }, |
| | | 胃肠道症状: { type: '' }, |
| | | 功能异常: { |
| | | type: '', |
| | |
| | | 腹水: { |
| | | type: '', |
| | | input1: '', |
| | | } |
| | | }, |
| | | 结果:'' |
| | | } |
| | | state.viewInfo={ |
| | | id: 0, |
| | | code: '', |
| | | clientCode: userInfos.value.clientCode, |
| | | patientCode: patientsInfo.value.code, |
| | | surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'), |
| | | surveryPerson: userInfos.value.code, |
| | | surveryJsonBody: '', |
| | | suveryFormName: 'SGA', |
| | | surveryFormType: 1, |
| | | updateTime: '' |
| | | } |
| | | } |
| | | const generatePDF=()=> { |
| | | const element = document.getElementById('pinggu2'); |
| | | const opt = { |
| | | margin: 10, |
| | | filename: `${state.tableData.表名}.pdf`, |
| | | image: { type: 'jpeg', quality: 0.98 }, |
| | | html2canvas: { scale: 2 }, |
| | | jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' } |
| | | }; |
| | | html2pdf().set(opt).from(element).save(); |
| | | |
| | | } |
| | | // 第二步:暴露方法 |
| | | defineExpose({ getData, openShow }) |
| | | </script> |