| | |
| | | <template> |
| | | <div class="dietarySurvey-item"> |
| | | <el-dialog v-model="state.dialogTableVisible" title="GNIR营养评估分" :fullscreen="true" width="100%"> |
| | | <div class="container" style="width: 100%; height: 100%;overflow: auto;"> |
| | | <div> |
| | | <el-dialog v-model="state.dialogTableVisible" title="GNRI" :fullscreen="true" width="100%"> |
| | | <div style="width: 100%; height: 100%;overflow: auto;"> |
| | | <div id="pinggu5"> |
| | | <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"> |
| | | <el-form-item label="记录者"> |
| | | <el-input v-model="state.tableData.记录者" style="width: 100px;" |
| | | <el-input v-model="state.tableData.记录者" style="width: 100px;" readonly |
| | | placeholder="" /> |
| | | </el-form-item> |
| | | </th> |
| | |
| | | |
| | | </td> |
| | | <td colspan="2" rowspan="3" style="text-align: center;font-size: 18px;"> |
| | | {{ sum }} |
| | | <!-- <div v-if="sum"> |
| | | |
| | | |
| | | <span v-if="sum<82">高营养风险</span> |
| | | <span v-if="sum>=82&&sum<92">中营养风险</span> |
| | | <span v-if="sum>=92&&sum<98">低营养风险</span> |
| | | <span v-if="sum>98">无营养风险</span> |
| | | </div> |
| | | <br> --> |
| | | |
| | | <div v-if="sum.label" :style="{color:sum.color}"> |
| | | {{ sum.value }}分,{{sum.label}} |
| | | </div> |
| | | |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | |
| | | </td> |
| | | <td colspan="2"> |
| | | 血清白蛋白浓度 |
| | | <el-input v-model="state.tableData.血清白蛋白浓度" placeholder="轻输入血清白蛋白浓度"> |
| | | <el-input v-model="state.tableData.血清白蛋白浓度" placeholder="请输入血清白蛋白浓度"> |
| | | <template #append>g/L</template> |
| | | </el-input> |
| | | </td> |
| | |
| | | 注意事项:<br> |
| | | 对于直立困难而无法测量身高的患者,可以通过测量膝高来估算身高。 |
| | | 男性身高=2.02x膝高(cm)-0.04x年龄+64.19;<br> |
| | | 女性身高=1.83x膝高(cm)-0.24x年龄+84.88。如果体重大于理想体重,<br> |
| | | 女性身高=1.83x膝高(cm)-0.24x年龄+84.88。如果体重>理想体重,<br> |
| | | 体重与理想体重的比值以1计算。 |
| | | |
| | | |
| | |
| | | </tr> |
| | | <tr> |
| | | <td colspan="6" style="color: #E6A23C;"> |
| | | GNIR营养评估分为4个等级:<br> |
| | | GNRI为4个等级:<br> |
| | | 高营养风险(GNIR<82<br> |
| | | 中营养风险(82≤GNIR<92)<br> |
| | | 低营养风险(92≤GNIR≤98)<br> |
| | |
| | | <el-button type="primary" @click="onSubmit"> |
| | | 保存 |
| | | </el-button> |
| | | <el-button v-if="state.viewInfo.id" type="primary" v-print="'#pinggu5'"> |
| | | <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, watch } from 'vue'; |
| | | import { formatDate } from '/@/utils/formatTime'; |
| | | import { NextLoading } from '/@/utils/loading'; |
| | |
| | | options: [0, 1], |
| | | dialogTableVisible: false, |
| | | tableData: { |
| | | 表名: 'GNIR营养评估分', |
| | | 表名: 'GNRI', |
| | | 初次调查日期: "", |
| | | 填表日期: '', |
| | | 更新日期: '', |
| | |
| | | surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'), |
| | | surveryPerson: userInfos.value.code, |
| | | surveryJsonBody: '', |
| | | suveryFormName: 'GNIR营养评估分', |
| | | suveryFormName: 'GNRI', |
| | | surveryFormType: 1, |
| | | updateTime: '' |
| | | } |
| | |
| | | } |
| | | }) |
| | | const sum = computed(() => { |
| | | const res={ |
| | | value:'', |
| | | label:'', |
| | | color:'' |
| | | } |
| | | let data=0 |
| | | if (isNumeric(state.tableData.体重) && isNumeric(state.tableData.身高) && isNumeric(state.tableData.血清白蛋白浓度)) { |
| | | if (Number(state.tableData.体重) <= Number(state.tableData.理想体重)) { |
| | |
| | | data= Number(((1.498 * Number(state.tableData.血清白蛋白浓度)) + 41.7).toFixed(2)) |
| | | } |
| | | if(data<82){ |
| | | return `${data} 高营养风险` |
| | | res.value=data |
| | | res.label='高营养风险' |
| | | res.color='#F56C6C' |
| | | }else if(data>=82&&data<92){ |
| | | return `${data} 中营养风险` |
| | | res.value=data |
| | | res.label='中营养风险' |
| | | res.color='#E6A23C' |
| | | }else if(data>=92&&data<98){ |
| | | return `${data} 低营养风险` |
| | | res.value=data |
| | | res.label='低营养风险' |
| | | res.color='#E6A23C' |
| | | }else if(data>=98){ |
| | | return `${data} 无营养风险` |
| | | }else{ |
| | | return '' |
| | | |
| | | res.value=data |
| | | res.label='低营养风险' |
| | | res.color='#303133' |
| | | } |
| | | return res |
| | | } else{ |
| | | return '' |
| | | return res |
| | | } |
| | | }) |
| | | const sumtest=()=>{ |
| | | let data=0 |
| | | if (isNumeric(state.tableData.体重) && isNumeric(state.tableData.身高) && isNumeric(state.tableData.血清白蛋白浓度)) { |
| | | if (Number(state.tableData.体重) <= Number(state.tableData.理想体重)) { |
| | | data= Number(((1.498 * Number(state.tableData.血清白蛋白浓度)) + (41.7 * ((Number(state.tableData.体重) / Number(state.tableData.理想体重))))).toFixed(2)) |
| | | } else { |
| | | data= Number(((1.498 * Number(state.tableData.血清白蛋白浓度)) + 41.7).toFixed(2)) |
| | | } |
| | | if(data<82){ |
| | | return `GNIR营养评估分:${data} 高营养风险` |
| | | }else if(data>=82&&data<92){ |
| | | return `GNIR营养评估分:${data} 中营养风险` |
| | | }else if(data>=92&&data<98){ |
| | | return `GNIR营养评估分:${data} 低营养风险` |
| | | }else if(data>=98){ |
| | | return `GNIR营养评估分:${data} 无营养风险` |
| | | }else{ |
| | | return '' |
| | | } |
| | | } else{ |
| | | return '' |
| | | } |
| | | } |
| | | const funhui = () => { |
| | | state.dialogTableVisible = false |
| | | } |
| | | const onSubmit = () => { |
| | | state.tableData.结果=sumtest() |
| | | state.tableData.结果=sum.value |
| | | console.log('submit!') |
| | | console.log(state.tableData) |
| | | const info: tiaochabiaoInfo = { |
| | |
| | | surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'), |
| | | surveryPerson: userInfos.value.code, |
| | | surveryJsonBody: JSON.stringify(state.tableData), |
| | | suveryFormName: 'GNIR营养评估分', |
| | | suveryFormName: 'GNRI', |
| | | updateTime: '' |
| | | } |
| | | console.log(info) |
| | |
| | | console.log(mode) |
| | | state.viewInfo = mode |
| | | state.tableData = JSON.parse(mode.surveryJsonBody) |
| | | state.tableData.初次调查日期=mode.surveryTime |
| | | state.tableData.更新日期=mode.updateTime |
| | | state.dialogTableVisible = true |
| | | } |
| | | |
| | |
| | | const res = await getPatData({ patCode: patientsInfo.value.code, }) |
| | | console.log(res.data, '----') |
| | | state.tableData = { |
| | | 表名: 'GNIR营养评估分', |
| | | 表名: 'GNRI', |
| | | 初次调查日期: formatDate(new Date(), 'YYYY-mm-dd'), |
| | | 填表日期: '', |
| | | 更新日期: formatDate(new Date(), 'YYYY-mm-dd'), |
| | |
| | | surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'), |
| | | surveryPerson: userInfos.value.code, |
| | | surveryJsonBody: '', |
| | | suveryFormName:'GNIR营养评估分', |
| | | suveryFormName:'GNRI', |
| | | surveryFormType:1, |
| | | updateTime: '' |
| | | } |
| | | } |
| | | const generatePDF=()=> { |
| | | const element = document.getElementById('pinggu5'); |
| | | const opt = { |
| | | margin: 10, |
| | | filename: `${state.tableData.表名}.pdf`, |
| | | image: { type: 'jpeg', quality: 0.98 }, |
| | | html2canvas: { scale: 2 }, |
| | | jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrai' } |
| | | }; |
| | | html2pdf().set(opt).from(element).save(); |
| | | |
| | | } |
| | | // 第二步:暴露方法 |
| | | defineExpose({ getData, openShow }) |
| | | </script> |