<template>
|
<div class="dietarySurvey-item">
|
<el-dialog v-model="state.dialogTableVisible" title="营养指导报告" :fullscreen="true" width="100%">
|
<div class="container" style="width: 100%; height: 100%;overflow: auto;" >
|
<div id="printFrom1" class="print-section">
|
<div>
|
<el-form size="small">
|
<div style="width: 100%">
|
<table id="tabledome" class="gridtable">
|
<tr>
|
<th colspan="8">
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="实施日期">
|
<el-date-picker v-model="state.tableData.实施日期" type="date"
|
style="width: 100px;" placeholder="" format="YYYY/MM/DD"
|
value-format="YYYY-MM-DD" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<div style="text-align:right;width: 100%">
|
|
<span>营养师:</span> <el-input v-model="state.tableData.记录者" readonly
|
style="width: 100px;" placeholder="" />
|
|
</div>
|
|
</el-col>
|
</el-row>
|
|
|
</th>
|
</tr>
|
|
<tr>
|
<td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
|
S:询问饮食营养状况、生活习惯</td>
|
</tr>
|
<tr>
|
<td class="htr">食物过敏原</td>
|
<td colspan="7">
|
<el-form-item>
|
<el-input v-model="state.tableData.食物过敏原" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 3 }" placeholder="食物过敏原" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr">胃肠功能状况</td>
|
<td colspan="7">
|
<el-form-item>
|
<el-input v-model="state.tableData.胃肠功能状况" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 3 }" placeholder="胃肠功能状况" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr">蛋白粉补充情况</td>
|
<td colspan="7">
|
<el-form-item>
|
<el-input v-model="state.tableData.蛋白粉补充情况" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 3 }" placeholder="蛋白粉补充情况" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr">饮食回顾时间</td>
|
<td class="htr">早餐</td>
|
<td class="htr">加餐</td>
|
<td class="htr">午餐</td>
|
<td class="htr">加餐</td>
|
<td class="htr">晚餐</td>
|
<td class="htr">加餐</td>
|
<td class="htr">其他</td>
|
|
</tr>
|
<tr>
|
<td class="htr">透析日</td>
|
<td>
|
<el-input v-model="state.tableData.透析日.早餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.透析日.早加餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.透析日.午餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.透析日.午加餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.透析日.晚餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.透析日.加餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.透析日.其他" placeholder="" />
|
</td>
|
|
</tr>
|
<tr>
|
<td class="htr">非透析日</td>
|
<td>
|
<el-input v-model="state.tableData.非透析日.早餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.非透析日.早加餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.非透析日.午餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.非透析日.午加餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.非透析日.晚餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.非透析日.加餐" placeholder="" />
|
</td>
|
<td>
|
<el-input v-model="state.tableData.非透析日.其他" placeholder="" />
|
</td>
|
|
</tr>
|
<tr>
|
<td class="htr">饮食问题</td>
|
<td colspan="7">
|
<el-form-item>
|
<el-input v-model="state.tableData.饮食问题" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 3 }" placeholder="饮食问题" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr" rowspan="2">生活习惯</td>
|
<td>大小便</td>
|
<td>
|
<el-input v-model="state.tableData.生活习惯.大小便" placeholder="" />
|
</td>
|
<td>睡眠</td>
|
<td>
|
<el-input v-model="state.tableData.生活习惯.睡眠" placeholder="" />
|
</td>
|
<td>运动</td>
|
<td colspan="2">
|
<el-input v-model="state.tableData.生活习惯.运动" placeholder="" />
|
</td>
|
|
</tr>
|
<tr>
|
<td>烟酒</td>
|
<td>
|
<el-input v-model="state.tableData.生活习惯.烟酒" placeholder="" />
|
</td>
|
<td>吞咽咀嚼功能</td>
|
<td>
|
<el-input v-model="state.tableData.生活习惯.吞咽咀嚼功能" placeholder="" />
|
</td>
|
<td>其他</td>
|
<td colspan="2">
|
<el-input v-model="state.tableData.生活习惯.其他" placeholder="" />
|
</td>
|
</tr>
|
<tr>
|
<td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
|
O:体格、生化营养状况检查</td>
|
</tr>
|
<tr>
|
<td class="htr" rowspan="2">营养筛查评估</td>
|
<td>营养风险筛查结果</td>
|
|
<td colspan="6">
|
<el-form-item>
|
<el-input v-model="state.tableData.营养筛查评估.营养风险筛查结果" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 3 }" placeholder="" />
|
</el-form-item>
|
|
</td>
|
|
</tr>
|
<tr>
|
<td>营养评估结果</td>
|
|
<td colspan="6">
|
<el-form-item>
|
<el-input v-model="state.tableData.营养筛查评估.营养评估结果" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 3 }" placeholder="" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr">异常生化指标</td>
|
|
<td colspan="7">
|
<el-form-item>
|
<el-input v-model="state.tableData.异常生化指标" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 3 }" placeholder="" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
|
A:营养评估结果,计算所需摄入量</td>
|
</tr>
|
<tr>
|
<td class="htr">营养指导初期目标</td>
|
|
<td colspan="7">
|
<el-form-item>
|
<el-input v-model="state.tableData.营养指导初期目标" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 3 }" placeholder="" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr" rowspan="6">营养师指导建议</td>
|
<td rowspan="3">透析饮食指导</td>
|
<td>能量</td>
|
<td> <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.能量" placeholder="" />
|
</td>
|
<td>蛋白质</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.透析饮食指导.蛋白质" placeholder="" />
|
</td>
|
<td>优质蛋白</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.透析饮食指导.优质蛋白" placeholder="" />
|
</td>
|
</tr>
|
<tr>
|
<td>钠</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.透析饮食指导.钠" placeholder="" />
|
</td>
|
<td>钾</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.透析饮食指导.钾" placeholder="" />
|
</td>
|
<td>磷</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.透析饮食指导.磷" placeholder="" />
|
</td>
|
</tr>
|
<tr>
|
<td>饮水量</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.透析饮食指导.饮水量" placeholder="" />
|
</td>
|
<td>食物种类</td>
|
<td colspan="3">
|
<el-input v-model="state.tableData.营养师指导建议.透析饮食指导.食物种类" placeholder="" />
|
</td>
|
</tr>
|
<tr>
|
<td rowspan="3">特殊饮食指导</td>
|
<td>高血压</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.高血压" placeholder="" />
|
</td>
|
<td>低蛋白血症</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.低蛋白血症" placeholder="" />
|
</td>
|
<td>贫血</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.贫血" placeholder="" />
|
</td>
|
</tr>
|
<tr>
|
<td>高血糖</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.高血糖" placeholder="" />
|
</td>
|
<td>高磷血症</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.高磷血症" placeholder="" />
|
</td>
|
<td>低钙血症</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.低钙血症" placeholder="" />
|
</td>
|
</tr>
|
<tr>
|
<td>高尿酸</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.高尿酸" placeholder="" />
|
</td>
|
<td>高钾血症</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.高钾血症" placeholder="" />
|
</td>
|
<td>蛋白质能量摄入不足</td>
|
<td>
|
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.蛋白质能量摄入不足"
|
placeholder="" />
|
</td>
|
</tr>
|
<tr class="page-break"></tr>
|
<tr>
|
<td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
|
P:饮食营养方案及食谱,定期随访并及时调整</td>
|
</tr>
|
<tr>
|
<td class="htr">烹饪技巧</td>
|
<td colspan="6">
|
<el-form-item>
|
<el-input v-model="state.tableData.烹饪技巧" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td>
|
<el-button type="primary" @click="Edit1('烹饪技巧')" :icon="Edit">模版</el-button>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr">食材选择</td>
|
<td colspan="6">
|
<el-form-item>
|
<el-input v-model="state.tableData.食材选择" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td>
|
<el-button type="primary" @click="Edit1('食材选择')" :icon="Edit">模版</el-button>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr">少盐控油</td>
|
<td colspan="6">
|
<el-form-item>
|
<el-input v-model="state.tableData.少盐控油" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td>
|
<el-button type="primary" @click="Edit1('少盐控油')" :icon="Edit">模版</el-button>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr">适量饮水,量出为入</td>
|
<td colspan="6">
|
<el-form-item>
|
<el-input v-model="state.tableData.适量饮水量出为入" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td>
|
<el-button type="primary" @click="Edit1('适量饮水量出为入')" :icon="Edit">模版</el-button>
|
</td>
|
</tr>
|
<tr>
|
<td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
|
三天食谱(参考)</td>
|
</tr>
|
<tr>
|
<td class="htr" colspan="2"></td>
|
<td class="htr" colspan="2">第一天(透析日)</td>
|
<td class="htr" colspan="2">第二天(非透析日)</td>
|
<td class="htr" colspan="2">第三天(透析日)</td>
|
|
</tr>
|
<tr>
|
<td colspan="2" class="htr">早餐</td>
|
<td colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.第一天.早餐" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td colspan="2">
|
<el-input v-model="state.tableData.三天食补参考.第二天.早餐" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</td>
|
<td colspan="2">
|
<el-input v-model="state.tableData.三天食补参考.第三天.早餐" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</td>
|
</tr>
|
<tr>
|
<td class="lvse" colspan="2">加餐</td>
|
<td class="lvse" colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.第一天.早加餐" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td class="lvse" colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.第二天.早加餐" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td class="lvse" colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.第三天.早加餐" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td colspan="2" class="htr">午餐</td>
|
<td colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.第一天.午餐" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td colspan="2">
|
<el-input v-model="state.tableData.三天食补参考.第二天.午餐" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</td>
|
<td colspan="2">
|
<el-input v-model="state.tableData.三天食补参考.第三天.午餐" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }">
|
</el-input>
|
</td>
|
</tr>
|
<tr>
|
<td class="lvse" colspan="2">加餐</td>
|
<td class="lvse" colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.第一天.午加餐" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td class="lvse" colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.第二天.午加餐" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td class="lvse" colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.第三天.午加餐" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td colspan="2" class="htr">晚餐</td>
|
<td colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.第一天.晚餐" type="textarea"
|
:autosize="{ minRows: 3, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td colspan="2">
|
<el-input v-model="state.tableData.三天食补参考.第二天.晚餐" type="textarea"
|
:autosize="{ minRows: 3, maxRows: 6 }">
|
</el-input>
|
</td>
|
<td colspan="2">
|
<el-input v-model="state.tableData.三天食补参考.第三天.晚餐" type="textarea"
|
:autosize="{ minRows: 3, maxRows: 6 }">
|
</el-input>
|
</td>
|
</tr>
|
<tr>
|
<td colspan="2" class="htr">全天用油量</td>
|
<td colspan="2">
|
<el-form-item>
|
<el-input v-model="state.tableData.三天食补参考.全天用油量" type="textarea"
|
:autosize="{ minRows: 3, maxRows: 6 }">
|
</el-input>
|
</el-form-item>
|
</td>
|
<td colspan="2" class="htr">
|
全天食盐量
|
</td>
|
<td colspan="2">
|
<el-input v-model="state.tableData.三天食补参考.全天食盐量" type="textarea"
|
:autosize="{ minRows: 3, maxRows: 6 }">
|
</el-input>
|
</td>
|
</tr>
|
|
<tr>
|
<td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
|
食物替换法</td>
|
</tr>
|
<tr>
|
<td class="htr">
|
肉类
|
</td>
|
<td colspan="3">
|
<el-input v-model="state.tableData.食物替换法.肉类" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</td>
|
<td class="htr">
|
瓜菜
|
</td>
|
<td colspan="3">
|
<el-input v-model="state.tableData.食物替换法.瓜菜" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</td>
|
</tr>
|
<tr>
|
<td class="htr">
|
肉类与豆腐、鸡蛋白
|
</td>
|
<td colspan="3">
|
<el-input v-model="state.tableData.食物替换法.肉类与豆腐鸡蛋白" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</td>
|
<td class="htr">
|
绿叶菜
|
</td>
|
<td colspan="3">
|
<el-input v-model="state.tableData.食物替换法.绿叶菜" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</td>
|
</tr>
|
<tr>
|
|
<td colspan="4" style="font-weight: 800">
|
1克盐=6.5克酱油=10克蚝油
|
</td>
|
<td class="htr">
|
水果
|
</td>
|
<td colspan="3">
|
<el-input v-model="state.tableData.食物替换法.水果" type="textarea"
|
:autosize="{ minRows: 1, maxRows: 6 }">
|
</el-input>
|
</td>
|
</tr>
|
|
|
</table>
|
</div>
|
</el-form>
|
</div>
|
|
</div>
|
</div>
|
<template #footer>
|
<div class="dialog-footer" style="text-align: center">
|
<el-button @click="funhui">取消</el-button>
|
<el-button type="primary" @click="onSubmit">
|
保存
|
</el-button>
|
<el-button v-if="state.viewInfo.id" type="primary" v-print="'#printFrom1'">
|
<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
|
v-model="state.innerVisible"
|
width="700"
|
title="模版"
|
append-to-body
|
>
|
<span>
|
<el-row v-for="(item,index) in state.mobanlist" :key="index" style="border-bottom: #909399 solid 1px;margin-bottom:20px ;">
|
<el-col :span="22">
|
<div>
|
{{item}}
|
</div>
|
</el-col>
|
<el-col :span="2" style="text-align:right" @click="setText(item)">
|
<el-button size="mini" :icon="Check" circle />
|
<!-- <el-button size="mini">应用</el-button> -->
|
</el-col>
|
</el-row>
|
</span>
|
</el-dialog>
|
</el-dialog>
|
|
|
</div>
|
|
</template>
|
|
<script setup lang="ts" name="visualizingLinkDemo2">
|
import { Check } from '@element-plus/icons-vue'
|
import html2pdf from 'html2pdf.js';
|
import html2canvas from 'html2canvas';
|
import { jsPDF } from 'jspdf';
|
import { reactive, onMounted, onUnmounted, ref } from 'vue';
|
import { formatDate } from '/@/utils/formatTime';
|
import { NextLoading } from '/@/utils/loading';
|
import { useUserInfo } from '/@/stores/userInfo';
|
import { usePatientsInfo } from '/@/stores/patientsInfo';
|
const storesPat = usePatientsInfo();
|
import { Add, update, deleteId, tiaochabiaoInfo, list } from '/@/api/tiaochabiao/index'
|
import { storeToRefs } from 'pinia';
|
import { useRoute, useRouter } from 'vue-router';
|
import { ElMessage } from 'element-plus';
|
const stores = useUserInfo();
|
const { patientsInfo } = storeToRefs(storesPat);
|
const { userInfos } = storeToRefs(stores);
|
const router = useRouter()
|
const emit = defineEmits(["shuaxin"]);
|
const state = reactive({
|
modeType:'',
|
mobanlist:[
|
'食材提前浸泡、焯水,可以去除1/2-2/3的磷钾;',
|
'少盐控油,可以适量使用葱姜蒜等天然调味品进行调味;',
|
'避免使用糖、味精、鸡精、黄豆酱、低钠盐等调味品;',
|
'选择蒸、煮、焖、炖、炒等做法,避免高温油炸等做法'
|
],
|
dialogTableVisible: false,
|
innerVisible:false,
|
tableData: {
|
表名: '患者方案表',
|
实施日期: "",
|
填表日期: '',
|
更新日期: '',
|
记录者: '陈银成',
|
食物过敏原: "",
|
胃肠功能状况: "",
|
蛋白粉补充情况: "",
|
透析日: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
加餐: '',
|
其他: ''
|
},
|
非透析日: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
加餐: '',
|
其他: ''
|
},
|
饮食问题: '',
|
生活习惯: {
|
大小便: '',
|
睡眠: '',
|
运动: '',
|
烟酒: '',
|
吞咽咀嚼功能: '',
|
其他: ''
|
},
|
//O:体格、生化营养状况检查
|
营养筛查评估: {
|
营养风险筛查结果: '',
|
营养评估结果: ''
|
},
|
异常生化指标: '',
|
// A:营养评估结果,计算所需摄入量
|
营养指导初期目标: '',//优先改善( )的问题,遵循血透饮食低磷低钾优质蛋白充足能量的饮食原则
|
营养师指导建议: {
|
透析饮食指导: {
|
能量: "",
|
蛋白质: '',//g
|
优质蛋白: '',//g
|
钠: '',
|
钾: '',
|
磷: '',
|
饮水量: '',
|
食物种类: '',
|
},
|
特殊饮食指导: {
|
高血压: '',
|
低蛋白血症: '',
|
贫血: '',
|
高血糖: '',
|
高磷血症: '',
|
低钙血症: '',
|
高尿酸: '',
|
高钾血症: '',
|
蛋白质能量摄入不足: ''
|
}
|
},
|
// P:饮食营养方案及食谱,定期随访并及时调整
|
烹饪技巧: '',
|
食材选择: '',
|
少盐控油: '',
|
适量饮水量出为入: '',
|
三天食补参考: {
|
第一天: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
},
|
第二天: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
},
|
第三天: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
},
|
全天用油量: '',
|
全天食盐量: '',
|
},
|
食物替换法: {
|
肉类: '同等重量的瘦猪肉、瘦牛肉、鸡肉替换',
|
瓜菜: '互相替换,如冬瓜、丝瓜、青瓜、节瓜',
|
肉类与豆腐鸡蛋白: '',
|
绿叶菜: '互相替换,如生菜、小白菜、红薯叶、油菜',
|
水果: '互相替换,如苹果/梨/西瓜/桃子/火龙果等',
|
其他: '1克盐=6.5克酱油=10克蚝油 水果 互相替换,如苹果/梨/西瓜/桃子/火龙果等'
|
}
|
|
|
|
|
|
|
|
},
|
loading: false,
|
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: '营养指导报告',
|
surveryFormType: 2,
|
updateTime: ''
|
}
|
|
})
|
const Edit1=(mode)=>{
|
state.innerVisible=true
|
state.modeType=mode
|
if( state.modeType==='烹饪技巧'){
|
state.mobanlist=[
|
'食材提前浸泡、焯水,可以去除1/2-2/3的磷钾;',
|
'少盐控油,可以适量使用葱姜蒜等天然调味品进行调味;',
|
'避免使用糖、味精、鸡精、黄豆酱、低钠盐等调味品;',
|
'选择蒸、煮、焖、炖、炒等做法,避免高温油炸等做法'
|
]
|
}else if( state.modeType==='食材选择'){
|
state.mobanlist=[
|
'均衡饮食,食物多样化,建议每天摄入12种以上食物,每周达到25种',
|
'建议优先从优质蛋白质食物摄入,必要时补充肾友专用低磷低钾乳清蛋白粉。优质蛋白质通常富含于动物性食物和大豆中,优先选择鱼禽类,其次是大豆类,最后是蛋奶畜肉。',
|
'新鲜蔬菜和水果富含维生素,必要时可补充维生素B12 和叶酸;适量膳食纤维摄入对维持肠道健康有利,建议每日膳食纤维摄入量为25-30g,建议增加蔬菜摄入量至6两-1斤,血钾正常时,可安排4两内低钾水果。'
|
]
|
}else if( state.modeType==='少盐控油'){
|
state.mobanlist=[
|
'推荐患者每日盐摄入量不超过3g,不吃烟熏、烧烤、腌制等过度加工食品,少吃酱油、味精、鸡精、各种酱料等调味品。建议烹调油摄入量不超过25-40g,可适当增加富含中链甘油三酯或w-3脂肪酸的油脂,如亚麻籽油、紫苏籽油等作为能量补充来源。',
|
]
|
}else if( state.modeType==='适量饮水量出为入'){
|
state.mobanlist=[
|
'水分摄入需根据每天的尿液排出量及透析脱水量来计划饮水量,除了计算饮用水,还要考虑用水加工成粥、汤等及蔬菜、水果中所含的水,建议不喝浓肉汤、老火汤、菜汤。'
|
]
|
}
|
}
|
const setText=(item)=>{
|
if( state.modeType==='烹饪技巧'){
|
if(state.tableData.烹饪技巧!==''){
|
state.tableData.烹饪技巧+=`\n${item}`
|
}else{
|
state.tableData.烹饪技巧+=item
|
}
|
|
}else if( state.modeType==='食材选择'){
|
if(state.tableData.食材选择!==''){
|
state.tableData.食材选择+=`\n${item}`
|
}else{
|
state.tableData.食材选择+=item
|
}
|
}else if( state.modeType==='少盐控油'){
|
if(state.tableData.少盐控油!==''){
|
state.tableData.少盐控油+=`\n${item}`
|
}else{
|
state.tableData.少盐控油+=item
|
}
|
}else if( state.modeType==='适量饮水量出为入'){
|
if(state.tableData.适量饮水量出为入!==''){
|
state.tableData.适量饮水量出为入+=`\n${item}`
|
}else{
|
state.tableData.适量饮水量出为入+=item
|
}
|
}
|
}
|
const funhui = () => {
|
state.dialogTableVisible = false
|
}
|
// 打印
|
const onPrint = () => {
|
|
}
|
const generatePDF = () => {
|
const element = document.getElementById('printFrom1');
|
const opt = {
|
margin: 0,
|
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();
|
|
}
|
const onSubmit = () => {
|
console.log('submit!')
|
console.log(state.tableData)
|
const info: tiaochabiaoInfo = {
|
id: state.viewInfo.id,
|
surveryFormType: 2,
|
code: state.viewInfo.code,
|
clientCode: userInfos.value.clientCode,
|
patientCode: patientsInfo.value.code,
|
surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
|
surveryPerson: userInfos.value.code,
|
surveryJsonBody: JSON.stringify(state.tableData),
|
suveryFormName: '营养指导报告',
|
updateTime: ''
|
}
|
console.log(info)
|
if (info.id === 0) {
|
Add(info).then(re => {
|
console.log(re.data)
|
state.dialogTableVisible = false
|
emit('shuaxin')
|
})
|
} else if (info.id > 0) {
|
info.surveryTime = state.viewInfo.surveryTime
|
update(info).then(re => {
|
console.log(re.data)
|
state.dialogTableVisible = false
|
emit('shuaxin')
|
})
|
}
|
|
}
|
const getPageInfo = async () => {
|
state.tableData = {
|
表名: '患者方案表',
|
实施日期: formatDate(new Date(),'YYYY-mm-dd'),
|
填表日期: '',
|
更新日期: '',
|
记录者: userInfos.value.userName,
|
食物过敏原: "",
|
胃肠功能状况: "",
|
蛋白粉补充情况: "",
|
透析日: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
加餐: '',
|
其他: ''
|
},
|
非透析日: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
加餐: '',
|
其他: ''
|
},
|
饮食问题: '',
|
生活习惯: {
|
大小便: '',
|
睡眠: '',
|
运动: '',
|
烟酒: '',
|
吞咽咀嚼功能: '',
|
其他: ''
|
},
|
//O:体格、生化营养状况检查
|
营养筛查评估: {
|
营养风险筛查结果: '',
|
营养评估结果: ''
|
},
|
异常生化指标: '',
|
// A:营养评估结果,计算所需摄入量
|
营养指导初期目标: '',//优先改善( )的问题,遵循血透饮食低磷低钾优质蛋白充足能量的饮食原则
|
营养师指导建议: {
|
透析饮食指导: {
|
能量: "",
|
蛋白质: '',//g
|
优质蛋白: '',//g
|
钠: '',
|
钾: '',
|
磷: '',
|
饮水量: '',
|
食物种类: '',
|
},
|
特殊饮食指导: {
|
高血压: '',
|
低蛋白血症: '',
|
贫血: '',
|
高血糖: '',
|
高磷血症: '',
|
低钙血症: '',
|
高尿酸: '',
|
高钾血症: '',
|
蛋白质能量摄入不足: ''
|
}
|
},
|
// P:饮食营养方案及食谱,定期随访并及时调整
|
烹饪技巧: '',
|
食材选择: '',
|
少盐控油: '',
|
适量饮水量出为入: '',
|
三天食补参考: {
|
第一天: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
},
|
第二天: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
},
|
第三天: {
|
早餐: '',
|
早加餐: '',
|
午餐: '',
|
午加餐: '',
|
晚餐: '',
|
},
|
全天用油量: '',
|
全天食盐量: '',
|
},
|
食物替换法: {
|
肉类: '同等重量的瘦猪肉、瘦牛肉、鸡肉替换',
|
瓜菜: '互相替换,如冬瓜、丝瓜、青瓜、节瓜',
|
肉类与豆腐鸡蛋白: '',
|
绿叶菜: '互相替换,如生菜、小白菜、红薯叶、油菜',
|
水果: '互相替换,如苹果/梨/西瓜/桃子/火龙果等',
|
其他: '1克盐=6.5克酱油=10克蚝油 水果 互相替换,如苹果/梨/西瓜/桃子/火龙果等'
|
}
|
}
|
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: '营养指导报告',
|
surveryFormType: 2,
|
updateTime: ''
|
};
|
const from1 = await getFrom1()
|
const from2 = await getFrom2()
|
const from3 = await getFrom3()
|
if (from1.data.list.length >= 1) {
|
const from1Json = JSON.parse(from1.data.list[0].surveryJsonBody)
|
console.log(from1Json)
|
state.tableData.食物过敏原= from1Json.过敏食物.type.join()
|
state.tableData.胃肠功能状况=from1Json.胃肠道紊乱者.input1
|
state.tableData.生活习惯.大小便=from1Json.排便情况.input1
|
state.tableData.生活习惯.睡眠=from1Json.睡眠.input1
|
state.tableData.生活习惯.吞咽咀嚼功能=from1Json.排便情况.input1
|
state.tableData.生活习惯.烟酒=from1Json.是否吸烟.type+''+from1Json.是否饮酒.type
|
state.tableData.生活习惯.运动=from1Json.运动.input1
|
state.tableData.透析日.早餐=from1Json.三天饮食记录表.透析日1.早餐
|
state.tableData.透析日.早加餐=from1Json.三天饮食记录表.透析日1.加餐1
|
state.tableData.透析日.午餐=from1Json.三天饮食记录表.透析日1.午餐
|
state.tableData.透析日.午加餐=from1Json.三天饮食记录表.透析日1.加餐2
|
state.tableData.透析日.晚餐=from1Json.三天饮食记录表.透析日1.晚餐
|
|
state.tableData.非透析日.早餐=from1Json.三天饮食记录表.非透析日.早餐
|
state.tableData.非透析日.早加餐=from1Json.三天饮食记录表.非透析日.加餐1
|
state.tableData.非透析日.午餐=from1Json.三天饮食记录表.非透析日.午餐
|
state.tableData.非透析日.午加餐=from1Json.三天饮食记录表.非透析日.加餐2
|
state.tableData.非透析日.晚餐=from1Json.三天饮食记录表.非透析日.晚餐
|
|
|
|
|
|
}
|
if (from2.data.list.length >= 1) {
|
const from2Json = JSON.parse(from2.data.list[0].surveryJsonBody)
|
console.log(from2Json)
|
state.tableData.营养筛查评估.营养风险筛查结果=from2Json.结果
|
}
|
if (from3.data.list.length >= 1) {
|
const from3Json = JSON.parse(from3.data.list[0].surveryJsonBody)
|
state.tableData.营养筛查评估.营养评估结果=from3Json.结果
|
console.log(from3Json)
|
}
|
|
|
|
}
|
// 获取膳食调查表
|
const getFrom1 = async () => {
|
const pasm = {
|
page: 0,
|
size: 1,
|
wherecondition: `survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
|
ordercondition: 'survery_time desc'
|
}
|
pasm.wherecondition += "and suvery_form_name='膳食调查表'"
|
const yinyangbiaodan1 = await list(pasm)
|
return yinyangbiaodan1
|
}
|
// 营养风险筛查结果
|
const getFrom2 = async () => {
|
const pasm = {
|
page: 0,
|
size: 1,
|
wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
|
ordercondition: 'survery_time desc'
|
}
|
pasm.wherecondition += "and suvery_form_name='NRS2002'"
|
const yinyangbiaodan1 = await list(pasm)
|
return yinyangbiaodan1
|
}
|
// 营养评估结果
|
const getFrom3 = async () => {
|
const pasm = {
|
page: 0,
|
size: 1,
|
wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
|
ordercondition: 'survery_time desc'
|
}
|
pasm.wherecondition += "and suvery_form_name='GNRI'"
|
const yinyangbiaodan1 = await list(pasm)
|
return yinyangbiaodan1
|
}
|
// 第一步:定义子组件里面的方法
|
const getData = (str: string) => {
|
console.log("子组件获取显示数据!" + str);
|
state.loading = true
|
|
}
|
// 打开查看或者编辑明细
|
const openShow = (type: string, mode: tiaochabiaoInfo) => {
|
console.log(type)
|
if (type === 'add') {
|
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
|
|
|
}
|
|
}
|
|
// 第二步:暴露方法
|
defineExpose({ getData, openShow })
|
</script>
|
|
|
<style scoped lang="scss">
|
.gridtable {
|
font-family: verdana, arial, sans-serif;
|
font-size: 11px;
|
color: #333333;
|
border-width: 1px;
|
border-color: #666666;
|
border-collapse: collapse;
|
|
}
|
|
.gridtable th {
|
border-width: 1px;
|
padding: 8px;
|
border-style: solid;
|
border-color: #666666;
|
background-color: #a4b0e2;
|
}
|
|
.gridtable td {
|
border-width: 1px;
|
padding: 8px;
|
border-style: solid;
|
border-color: #666666;
|
text-align: center;
|
}
|
|
.htr {
|
background-color: rgb(250, 236, 216);
|
font-weight: 800;
|
|
}
|
|
.lvse {
|
background-color: rgb(239.8, 248.9, 235.3);
|
}
|
@media print, screen {
|
.print-section {
|
width: auto !important;
|
max-width: none !important;
|
overflow: visible !important;
|
}
|
|
.print-section > * {
|
page-break-inside: avoid;
|
}
|
|
.page-break {
|
display: block;
|
page-break-after: always;
|
}
|
}
|
</style>
|