From b2d04038df93bed77a49e3ad29004d9fc7eca888 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期五, 27 九月 2024 14:40:23 +0800
Subject: [PATCH] 更新
---
src/views/home/components/pingubiao/editDietary2.vue | 456 +++++++++++++
src/views/home/components/patient_file.vue | 39
src/views/home/components/dietary_survey.vue | 19
src/views/login/index.vue | 8
src/views/home/components/editDietary2.vue | 157 ++++
src/api/Patients/index.ts | 3
src/views/home/components/editDietary.vue | 64 +
src/assets/imgs/login.jpg | 0
src/views/home/components/pingubiao/editDietary3.vue | 487 ++++++++++++++
src/views/home/index.vue | 19
src/views/home/components/pingubiao/index.vue | 309 +++++++++
src/api/tiaochabiao/index.ts | 1
src/views/home/components/pingubiao/editDietary.vue | 445 +++++++++++++
13 files changed, 1,955 insertions(+), 52 deletions(-)
diff --git a/src/api/Patients/index.ts b/src/api/Patients/index.ts
index a273fdc..49a5725 100644
--- a/src/api/Patients/index.ts
+++ b/src/api/Patients/index.ts
@@ -34,7 +34,7 @@
*/
export function getLisResults(params: object) {
return request({
- url: '/nutrition/getLisResults',
+ url: '/lis/report/getLatestReportByPat',
method: 'post',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
@@ -43,3 +43,4 @@
});
}
+
diff --git a/src/api/tiaochabiao/index.ts b/src/api/tiaochabiao/index.ts
index 360eef4..acdc3e5 100644
--- a/src/api/tiaochabiao/index.ts
+++ b/src/api/tiaochabiao/index.ts
@@ -39,6 +39,7 @@
surveryTime:string,
//调查人用户编号
surveryPerson:string,
+ surveryFormType:number,
//调查内容
surveryJsonBody:string,
suveryFormName:string,
diff --git a/src/assets/imgs/login.jpg b/src/assets/imgs/login.jpg
new file mode 100644
index 0000000..292eac5
--- /dev/null
+++ b/src/assets/imgs/login.jpg
Binary files differ
diff --git a/src/views/home/components/dietary_survey.vue b/src/views/home/components/dietary_survey.vue
index 25f7e23..44516e1 100644
--- a/src/views/home/components/dietary_survey.vue
+++ b/src/views/home/components/dietary_survey.vue
@@ -1,6 +1,6 @@
<template>
<div class="dietarySurvey-home" >
- <el-row style="padding-left: 10px;">
+ <el-row v-if="patientsInfo.id" style="padding-left: 10px;">
<el-form size="small" :inline="true" :model="state.formInline">
<el-form-item label="调差表">
<el-select style="width: 120px;"
@@ -160,7 +160,7 @@
const pasm={
page: state.page,
size: state.size,
- wherecondition: `patient_code = '${patientsInfo.value.code}'`,
+ wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
ordercondition: 'survery_time desc'
}
if(state.formInline.date.length===2){
@@ -199,7 +199,7 @@
const pasm = {
page: 1,
size: 10,
- wherecondition:`patient_code='${patientsInfo.value.code}'`,
+ wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
ordercondition:'survery_time DESC'
}
if(state.formInline.date.length===2){
@@ -231,15 +231,12 @@
* 编辑
*/
const handleEdit = (index: number, row: any) => {
- console.log(index, row)
- if(state.formInline.formTableName){
- if(state.formInline.formTableName==='膳食调查表'){
- editDietaryRef.value.openShow('update',row)
- }else if(state.formInline.formTableName==='营养膳食调查表'){
- editDietaryRef2.value.openShow('update',row)
- }
+ console.log(index, row,state.formInline.formTableName)
+ if(row.suveryFormName==='膳食调查表'){
+ editDietaryRef.value.openShow('update',row)
+ }else if(row.suveryFormName==='营养膳食调查表'){
+ editDietaryRef2.value.openShow('update',row)
}
-// editDietaryRef.value.openShow('update',row)
}
const handleDelete = (index: number, row: any) => {
console.log(index, row)
diff --git a/src/views/home/components/editDietary.vue b/src/views/home/components/editDietary.vue
index 109160c..0355f2e 100644
--- a/src/views/home/components/editDietary.vue
+++ b/src/views/home/components/editDietary.vue
@@ -584,6 +584,7 @@
surveryPerson: userInfos.value.code,
surveryJsonBody: '',
suveryFormName:'膳食调查表',
+ surveryFormType:0,
updateTime: ''
}
@@ -597,6 +598,7 @@
console.log(state.tableData)
const info:tiaochabiaoInfo={
id: state.viewInfo.id,
+ surveryFormType:0,
code: state.viewInfo.code,
clientCode: userInfos.value.clientCode,
patientCode: patientsInfo.value.code,
@@ -623,6 +625,64 @@
}
}
+const getPageInfo=()=>{
+ state.tableData={
+ 表名: '膳食调查表',
+ 初次调查日期: formatDate(new Date(),'YYYY-mm-dd'),
+ 填表日期: '',
+ 更新日期: formatDate(new Date(),'YYYY-mm-dd'),
+ 记录者: userInfos.value.userName,
+ 人员构成: {
+ type: '', //只能选择独居或者家庭
+ input1: '',
+ },
+ 烹饪主要操作者: {
+ type: '',
+ input1: '',
+ },
+ 食材采购: {
+ type: '',
+ input1: '',
+ },
+ 食物偏好: {
+ type: '',
+ input1: '',
+ },
+ 三天饮食记录表:{
+ 透析日1:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''},
+ 非透析日:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''},
+ 透析日2:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''}
+ },
+ 外吃:{
+ type: '',
+ input1: '',
+ },
+ 每日饮水量种类:{
+ type: '',
+ input1: '',
+ },
+ 日常调味料使用种类:{
+ type: '',
+ input1: '',
+ },
+ 睡眠:{
+ type: '',
+ input1: '',
+ },
+ 运动:{ type: '',input1: ''},
+ 排便情况:{ type: '',input1: ''},
+ 是否吸烟:{ type: '',input1: ''},
+ 是否饮酒:{ type: '',input1: ''},
+ 易过敏体质: {type: '', input1: '',},
+ 胃肠道紊乱者: {type: '', input1: '',},
+ 过敏食物: {type: '', input1: '',},
+ 宗教信仰: {type: '', input1: '',},
+ 过敏症状表现为以下哪些: {type: '', input1: '',},
+ 您是如何知道自己食物过敏: {type: '', input1: '',},
+ 备注: {type: '', input1: ''},
+ }
+}
+
// 第一步:定义子组件里面的方法
const getData = (str: string) => {
console.log("子组件获取显示数据!" + str);
@@ -633,9 +693,7 @@
const openShow = (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()
state.dialogTableVisible = true
}
else if(type==='update'){
diff --git a/src/views/home/components/editDietary2.vue b/src/views/home/components/editDietary2.vue
index 80c97ad..dd897b1 100644
--- a/src/views/home/components/editDietary2.vue
+++ b/src/views/home/components/editDietary2.vue
@@ -1195,6 +1195,7 @@
viewInfo:{
id: 0,
code: '',
+ surveryFormType:0,
clientCode: userInfos.value.clientCode,
patientCode: patientsInfo.value.code,
surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
@@ -1221,6 +1222,7 @@
surveryPerson: userInfos.value.code,
surveryJsonBody: JSON.stringify(state.tableData),
suveryFormName:'营养膳食调查表',
+ surveryFormType:0,
updateTime: ''
}
console.log(info)
@@ -1250,9 +1252,7 @@
const openShow = (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()
state.dialogTableVisible = true
}
else if(type==='update'){
@@ -1265,6 +1265,157 @@
}
}
+const getPageInfo=()=>{
+ state.tableData={
+ 表名: '营养膳食调查表',
+ 初次调查日期: formatDate(new Date(),'YYYY-mm-dd'),
+ 填表日期: '',
+ 更新日期: formatDate(new Date(),'YYYY-mm-dd'),
+ 记录者: userInfos.value.userName,
+ 常吃的主食: {
+ type: '', //只能选择独居或者家庭
+ input1: '',
+ },
+ 常吃的蔬菜: {
+ type: '',
+ input1: '',
+ },
+ 蔬菜日食用量: {
+ type: '',
+ input1: '',
+ },
+ 水果食用量及频率:{
+ input1: '',
+ input2:''
+ },
+ 常吃的肉类: {
+ type: '',
+ input1: '',
+ input2:''
+ },
+ 常吃的大豆及其制品是: {
+ type: '',
+ input1: '',
+ input2:''
+ },
+ 坚果摄入量:{
+ type: '',
+ input1: '',
+ input2:''
+ },
+ 每天食用奶类的量:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 每日饮水量种类:{
+ type: '',
+ input1: '',
+ },
+ 日食盐量:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 烹饪油:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 经常使用的烹饪方法:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 是否食用零食:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 三餐怎么安排:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 中晚餐如何搭配:{
+ type: '',
+ input1: '',
+ input2: '',
+ input3: '',
+ input4: '',
+ },
+ 每日膳食搭配:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 一日三餐能按时:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 一日三餐中饮食结构最合理的是:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 是否加餐:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+
+ 三天饮食记录表:{
+ 透析日1:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''},
+ 非透析日:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''},
+ 透析日2:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''}
+ },
+ 每餐就餐时间:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 你如何调节自己的饮食:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 你对合理膳食的基本要求知道多少:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 过敏食物:{
+ type: '',
+ input1: '',
+ input2: '',
+ },
+ 过敏症状表现为以下哪些: {type: '', input1: '',},
+ 人员构成: {
+ type: '', //只能选择独居或者家庭
+ input1: '',
+ },
+ 烹饪主要操作者: {
+ type: '',
+ input1: '',
+ },
+ 食材采购: {
+ type: '',
+ input1: '',
+ },
+ 食物偏好: {
+ type: '',
+ input1: '',
+ },
+
+
+ 是否吸烟:{ type: '',input1: ''},
+ 是否饮酒:{ type: '',input1: '',input2: '',input3: ''},
+ 周运动频率:{ type: '',input1: '',input2: '',input3: ''},
+ 作息时间: {type: '', input1: '',input2: ''},
+ 排便情况:{ type: '',input1: ''},
+ }
+}
// 第二步:暴露方法
defineExpose({ getData, openShow })
diff --git a/src/views/home/components/patient_file.vue b/src/views/home/components/patient_file.vue
index d6f68af..f73cbe6 100644
--- a/src/views/home/components/patient_file.vue
+++ b/src/views/home/components/patient_file.vue
@@ -48,30 +48,29 @@
<el-icon size="16" color="#409efc"><CreditCard /></el-icon> <span> 最新生化数据</span>
</div>
<div >
- <el-row :gutter="10" v-if="state.listData.lis">
-
- <div v-for="(item, key) in state.listData.lis" :key="key">
- <div class="itemLis" v-if="item?.结果列表.length>0" >
+ <el-row :gutter="10" v-if="state.listData.length">
+ <el-col :xs="8" :sm="8" :md="6" :lg="6" :xl="4" v-for="(item, key) in state.listData" :key="key">
+ <div class="itemLis" v-if="item?.item_result" >
<div class="title">
{{key}}
</div>
- <div class="itemRes" v-for="(itemRes, resIndex) in item?.结果列表" :key="resIndex">
- <div class="itemResDtile" v-for="(tdKey, ttIndex) in formatResKeys(itemRes)" :key="ttIndex" >
- <div>
- {{ itemRes[tdKey].name }}
+ <div class="itemRes">
+ <div class="itemResDtile" >
+ <div style="text-align: center;width: 100%;">
+ {{ item?.item_name }}
</div>
<div>
- {{ itemRes[tdKey].result }}<span class="tdate">{{itemRes[tdKey].unit}}</span>
+ {{ item?.item_result }}<span class="tdate">{{item?.item_result_unit}}</span>
</div>
</div>
</div>
<div class="tdate" >
- {{item?.结果列表[0]?.标本日期}}
+ {{item?.sample_date_str}}
</div>
</div>
- </div>
+ </el-col>
</el-row>
</div>
</el-card>
@@ -136,23 +135,10 @@
catch(error){
state.loading = false
}
- // console.log("患者档案子组件获取显示数据!" + str);
- // console.log(props.tableHeight)
- // var pam = {
- // patCode: patientsInfo.value.code,
- // }
- // state.loading = true
- // getPatData(pam).then(re=>{
- // console.log(re.data)
- // state.patientData=re.data
- // })
}
onMounted(()=>{
// console.log(dayjs().add(-7, 'day').format('YYYY-MM-DD'),'---shan')
- if(state.listData.lis){
- console.log('有意义------------------')
- }
})
const formatResKeys = (obj: Object) => {
return Object.keys(obj).filter((k) => k !== '标本日期');
@@ -181,7 +167,8 @@
}
.itemLis{
- min-width: 120px;
+ margin-bottom: 10px;
+ width: 100%;
padding-left: 10px;
padding-right: 10px;
height: 100px;
@@ -207,9 +194,11 @@
color: #303133;
font-size: 16px;
div{
+ width: 100%;
line-height: 30px;text-align: center; padding-left: 10px; padding-right: 10px;
}
.itemResDtile:not(:first-child) {
+ width: 100%;
/* 在这里添加你想要的样式 */
border-left: 1px solid #909399; /* 示例样式:为除第一个div外的所有div添加红色边框 */
}
diff --git a/src/views/home/components/pingubiao/editDietary.vue b/src/views/home/components/pingubiao/editDietary.vue
new file mode 100644
index 0000000..bd95074
--- /dev/null
+++ b/src/views/home/components/pingubiao/editDietary.vue
@@ -0,0 +1,445 @@
+<template>
+ <div class="dietarySurvey-item">
+ <el-dialog v-model="state.dialogTableVisible" title="营养风险筛查表(NRS2002)" :fullscreen="true" width="100%">
+ <div class="container" style="width: 100%; height: 100%;overflow: auto;">
+ <div>
+ <div>
+ <el-form size="small">
+ <div style="width: 100%">
+ <table id="tabledome" class="gridtable">
+
+ <tr>
+ <th colspan="2">
+ <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>
+
+ </th>
+ <th colspan="2">
+ <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>
+
+
+ </th>
+ <th colspan="2">记录者:{{ state.tableData.记录者 }}</th>
+
+ </tr>
+ <tr>
+ <th colspan="2">
+ 患者姓名:{{patientsInfo.patientName}}
+
+ </th>
+ <th colspan="2">
+ 年龄:{{patientsInfo.age}}
+ </th>
+ <th colspan="2">性别:{{patientsInfo.patientGenderText}}</th>
+
+ </tr>
+
+
+ <tr>
+ <td colspan="4">
+ A、疾病状态(选最大分值)
+
+ </td>
+ <td colspan="1">
+ 分数
+ </td>
+ <td colspan="1">
+ 打分
+ <!-- <el-radio-group class="elradiozdi"
+ v-model="state.tableData.烹饪主要操作者.type">
+ <el-radio value="1">打分</el-radio>
+ </el-radio-group> -->
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="4">
+ 1.需要量轻度增加:一般恶性肿瘤、髋部骨折、长期血液透、糖尿病、慢性疾病有急性并发症(肝硬化、慢性阻塞性肺病)
+
+ </td>
+ <td colspan="1">
+ 1分
+ </td>
+ <td colspan="1">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.疾病状态.type">
+ <!-- <el-radio value="1">打分</el-radio> -->
+ <el-radio value="1">✔</el-radio>
+
+ </el-radio-group>
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="4">
+ 2.需要量中度增加:腹部大手术,卒中,重度肺炎,血液恶性肿瘤
+
+ </td>
+ <td colspan="1">
+ 2分
+ </td>
+ <td colspan="1">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.疾病状态.type">
+ <!-- <el-radio value="2">打分</el-radio> -->
+ <el-radio value="2">✔</el-radio>
+
+ </el-radio-group>
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="4">
+ 3.需要量明显增加;颅脑损伤、骨髓移植、重症监护
+ </td>
+ <td colspan="1">
+ 3分
+ </td>
+ <td colspan="1">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.疾病状态.type">
+ <!-- <el-radio value="3">打分</el-radio> -->
+ <el-radio value="3">✔</el-radio>
+
+ </el-radio-group>
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="6">
+ B、营养状态指标(选最大分值)
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ 1.正常营养状态
+ </td>
+ <td colspan="1">
+ 0分
+ </td>
+ <td colspan="1">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.营养状态.type">
+ <el-radio value="0">✔</el-radio>
+
+ </el-radio-group>
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="4">
+ 2.3个月内体重丢失>5%或者食物摄入比正常需要量低25%~50%
+ </td>
+ <td colspan="1">
+ 1分
+ </td>
+ <td colspan="1">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.营养状态.type">
+ <el-radio value="1">✔</el-radio>
+
+ </el-radio-group>
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="4">
+ 3.般情况差或2个月内体重丢失>5%或者食物摄入比正常需要量低
+ </td>
+ <td colspan="1">
+ 2分
+ </td>
+ <td colspan="1">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.营养状态.type">
+ <el-radio value="2">✔</el-radio>
+
+ </el-radio-group>
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="4">
+ 4.BMI<18.5kg/m2,且一般情况差或1个月内体重丢失>5%(或3个
+ </td>
+ <td colspan="1">
+ 3分
+ </td>
+ <td colspan="1">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.营养状态.type">
+ <el-radio value="3">✔</el-radio>
+
+ </el-radio-group>
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="6">
+ C、年龄评分
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ 小于70 岁
+ </td>
+ <td colspan="1">
+ 0分
+ </td>
+ <td colspan="1">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.年龄评分.type">
+ <el-radio value="0">✔</el-radio>
+
+ </el-radio-group>
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="4">
+ 大于、等于70 岁
+ </td>
+ <td colspan="1">
+ 1分
+ </td>
+ <td colspan="1">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.年龄评分.type">
+ <el-radio value="1">✔</el-radio>
+
+ </el-radio-group>
+ </td>
+
+ </tr>
+ <tr>
+ <td colspan="6">
+ 营养风险筛查总分
+ </td>
+ </tr>
+ <tr>
+ <td colspan="6" style="font-weight: 600;">
+ 注:NRS-2002评分=A+B+C。如患者NRS-2002评分>=3分,则提示患者存在营养风险,应进行营养评定,并制定和实施营养支持治疗计划。
+ <br>
+ <br>
+ <br>
+ <div style="color: blue;">
+ 最后得分:{{sum}}
+ </div>
+
+ <br>
+ <span></span>
+ </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>
+ </div>
+ </template>
+ </el-dialog>
+
+
+ </div>
+
+</template>
+
+<script setup lang="ts" name="visualizingLinkDemo2">
+import { reactive, onMounted, onUnmounted, ref, computed } 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} 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({
+ dialogTableVisible:false,
+ tableData: {
+ 表名: '营养风险筛查表(NRS2002)',
+ 初次调查日期:"",
+ 填表日期: '',
+ 更新日期: '',
+ 记录者: '陈银成',
+ 疾病状态: {
+ type: '',
+ input1: '',
+ },
+ 营养状态: {
+ type: '',
+ input1: '',
+ },
+
+ 年龄评分:{
+ type: '',
+ input1: '',
+ }
+ },
+ 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:'营养风险筛查表(NRS2002)',
+ surveryFormType:1,
+ updateTime: ''
+ }
+
+})
+const sum = computed(() => {
+ let x=0
+ for(let key in state.tableData){
+ console.log(key+'key=='+state.tableData[key]?.type)
+ if(Number(state.tableData[key]?.type)){
+ x+=Number(state.tableData[key]?.type)
+ }
+ }
+ return x
+})
+const funhui=()=>{
+ state.dialogTableVisible=false
+}
+const onSubmit = () => {
+ console.log('submit!')
+ console.log(state.tableData)
+ const info:tiaochabiaoInfo={
+ id: state.viewInfo.id,
+ surveryFormType:1,
+ 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:'营养风险筛查表(NRS2002)',
+ 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 getData = (str: string) => {
+ console.log("子组件获取显示数据!" + str);
+ state.loading = true
+
+}
+// 打开查看或者编辑明细
+const openShow = (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()
+ state.dialogTableVisible = true
+ }
+ else if(type==='update'){
+ console.log('------------------------3333333333333333')
+ console.log(mode)
+ state.viewInfo=mode
+ state.tableData=JSON.parse(mode.surveryJsonBody)
+ state.dialogTableVisible = true
+
+
+ }
+
+}
+const getPageInfo=()=>{
+ state.tableData={
+ 表名: '营养风险筛查表(NRS2002)',
+ 初次调查日期:formatDate(new Date(),'YYYY-mm-dd'),
+ 填表日期: '',
+ 更新日期: formatDate(new Date(),'YYYY-mm-dd'),
+ 记录者: userInfos.value.userName,
+ 疾病状态: {
+ type: '',
+ input1: '',
+ },
+ 营养状态: {
+ type: '',
+ input1: '',
+ },
+
+ 年龄评分:{
+ type: '',
+ input1: '',
+ }
+ }
+}
+
+// 第二步:暴露方法
+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;
+ text-align: left;
+ border-color: #666666;
+ background-color: #a4b0e2;
+}
+
+.gridtable td {
+ border-width: 1px;
+ padding: 8px;
+ border-style: solid;
+ border-color: #666666;
+ background-color: #ffffff;
+}
+
+</style>
diff --git a/src/views/home/components/pingubiao/editDietary2.vue b/src/views/home/components/pingubiao/editDietary2.vue
new file mode 100644
index 0000000..26c7a35
--- /dev/null
+++ b/src/views/home/components/pingubiao/editDietary2.vue
@@ -0,0 +1,456 @@
+<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>
+ <div>
+ <el-form size="small">
+ <div style="width: 100%">
+ <table id="tabledome" class="gridtable">
+
+ <tr>
+ <th colspan="2">
+ <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>
+
+ </th>
+ <th colspan="2">
+ <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>
+
+
+ </th>
+ <th colspan="2">记录者:{{ state.tableData.记录者 }}</th>
+
+ </tr>
+ <tr>
+ <th colspan="2">
+ 患者姓名:{{patientsInfo.patientName}}
+
+ </th>
+ <th colspan="2">
+ 年龄:{{patientsInfo.age}}
+ </th>
+ <th colspan="2">性别:{{patientsInfo.patientGenderText}}</th>
+
+ </tr>
+
+
+ <tr>
+ <td colspan="3">
+ 评价内容
+
+ </td>
+ <td colspan="3">
+ 评级结果
+ </td>
+
+
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="3">
+ 体重改变
+
+ </td>
+ <td colspan="2">您目前体重?</td>
+ <td colspan="3">
+ <el-input
+ v-model="state.tableData.您目前体重"
+ style="max-width: 150px"
+ placeholder=""
+ >
+ <template #append>kg</template>
+ </el-input>
+ </td>
+ </tr>
+ <tr>
+
+ <td colspan="2">与您六月份前的体重相比有变化吗?</td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.体重改变1.type">
+ <el-radio value="A">A:体重变化<5%或5%-10%但正在改善</el-radio>
+ <el-radio value="B">B:持续减少5%-10%或由10%升至5%-10%</el-radio>
+ <el-radio value="C">C:持续减少>10%</el-radio>
+ </el-radio-group>
+ </td>
+ </tr>
+ <tr>
+
+ <td colspan="2">近2周体重变化了吗?</td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.体重改变2.type">
+ <el-radio value="A">A:无变化,正常体重或恢复到5%内</el-radio>
+ <el-radio value="B">B:稳定,但低于理想或通常体重;部分恢复但不完全</el-radio>
+ <el-radio value="C">C:减少/降低</el-radio>
+ </el-radio-group>
+ </td>
+ </tr>
+ <!-- 饮食 -->
+ <tr>
+ <td rowspan="4">
+ 进食
+
+ </td>
+ <td colspan="2">您的食欲??</td>
+ <td colspan="3" rowspan="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-group>
+ </td>
+ </tr>
+ <tr>
+
+ <td colspan="2">您的进食量有变化吗?</td>
+
+ </tr>
+ <tr>
+
+ <td colspan="2">这种情况持续多长时间?</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 rowspan="6">
+ 胃肠道症状
+ </td>
+ <td colspan="5">近2周以来您经常出现下列问题吗?</td>
+ </tr>
+ <tr>
+ <td colspan="2">1:没有食欲:</td>
+ <td colspan="3">
+ 从不-很少-每天-一周1-2次-每周2-3次
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">2:腹泻:</td>
+ <td colspan="3">
+ 从不-很少-每天-一周1-2次-每周2-3次
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">3:恶心:</td>
+ <td colspan="3">
+ 从不-很少-每天-一周1-2次-每周2-3次
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">4:呕吐:</td>
+ <td colspan="3">
+ 从不-很少-每天-一周1-2次-每周2-3次
+ </td>
+ </tr>
+ <tr>
+ <td colspan="6">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.胃肠道症状.type">
+ <el-radio value="A">A:少有,间断</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">
+ 功能异常
+ </td>
+ <td colspan="5">您现在还能像往常那样做以下的事吗?</td>
+ </tr>
+ <tr>
+ <td colspan="2">1:散步:</td>
+ <td colspan="3">
+ 没有-稍微减少-明显减少-增多
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">2:工作:</td>
+ <td colspan="3">
+ 没有-稍微减少-明显减少-增多
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">3:室内活动:</td>
+ <td colspan="3">
+ 没有-稍微减少-明显减少-增多
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">4:再过去的两周内有何变化:</td>
+ <td colspan="3">
+ 有所改善-无变化-恶化
+ </td>
+ </tr>
+ <tr>
+ <td colspan="6">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.功能异常.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>
+ 疾病和相关营养需求
+ </td>
+ <td colspan="2">疾病诊断&代谢应激</td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.疾病和相关营养需求.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="6" style="font-weight: 600;">
+ 注意:
+ <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定为营养良好,或有明显的改善病例结果
+ </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>
+ </div>
+ </template>
+ </el-dialog>
+
+
+ </div>
+
+</template>
+
+<script setup lang="ts" name="visualizingLinkDemo2">
+import { reactive, onMounted, onUnmounted, ref, computed } 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} 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({
+ dialogTableVisible:false,
+ tableData: {
+ 表名: '主观全面评定(SGA)评价',
+ 初次调查日期:"",
+ 填表日期: '',
+ 更新日期: '',
+ 记录者: '陈银成',
+ 您目前体重:'',
+ 体重改变1: {
+ type: '',
+ input1: '',
+ },
+ 体重改变2: {
+ type: '',
+ input1: '',
+ },
+ 进食1:{type: ''},
+ 进食2:{type: ''},
+ 进食3:{type: ''},
+ 进食4:{type: ''},
+ 胃肠道症状:{type: ''},
+ 功能异常: {
+ type: '',
+ input1: '',
+ },
+
+ 疾病和相关营养需求:{
+ type: '',
+ input1: '',
+ }
+ },
+ 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:'主观全面评定(SGA)评价',
+ surveryFormType:1,
+ updateTime: ''
+ }
+
+})
+const sum = computed(() => {
+ let x=0
+ for(let key in state.tableData){
+ console.log(key+'key=='+state.tableData[key]?.type)
+ if(Number(state.tableData[key]?.type)){
+ x+=Number(state.tableData[key]?.type)
+ }
+ }
+ return x
+})
+const funhui=()=>{
+ state.dialogTableVisible=false
+}
+const onSubmit = () => {
+ console.log('submit!')
+ console.log(state.tableData)
+ const info:tiaochabiaoInfo={
+ id: state.viewInfo.id,
+ surveryFormType:1,
+ 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:'主观全面评定(SGA)评价',
+ 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 getData = (str: string) => {
+ console.log("子组件获取显示数据!" + str);
+ state.loading = true
+
+}
+// 打开查看或者编辑明细
+const openShow = (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()
+ state.dialogTableVisible = true
+ }
+ else if(type==='update'){
+ console.log('------------------------3333333333333333')
+ console.log(mode)
+ state.viewInfo=mode
+ state.tableData=JSON.parse(mode.surveryJsonBody)
+ state.dialogTableVisible = true
+
+
+ }
+
+}
+const getPageInfo=()=>{
+ state.tableData={
+ 表名: '主观全面评定(SGA)评价',
+ 初次调查日期:formatDate(new Date(),'YYYY-mm-dd'),
+ 填表日期: '',
+ 更新日期: formatDate(new Date(),'YYYY-mm-dd'),
+ 记录者: userInfos.value.userName,
+ 体重改变: {
+ type: '',
+ input1: '',
+ },
+ 营养状态: {
+ type: '',
+ input1: '',
+ },
+
+ 年龄评分:{
+ type: '',
+ input1: '',
+ }
+ }
+}
+
+// 第二步:暴露方法
+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;
+ text-align: left;
+ border-color: #666666;
+ background-color: #a4b0e2;
+}
+
+.gridtable td {
+ border-width: 1px;
+ padding: 8px;
+ border-style: solid;
+ border-color: #666666;
+ background-color: #ffffff;
+}
+
+</style>
diff --git a/src/views/home/components/pingubiao/editDietary3.vue b/src/views/home/components/pingubiao/editDietary3.vue
new file mode 100644
index 0000000..b113840
--- /dev/null
+++ b/src/views/home/components/pingubiao/editDietary3.vue
@@ -0,0 +1,487 @@
+<template>
+ <div class="dietarySurvey-item">
+ <el-dialog v-model="state.dialogTableVisible" title="营养不良炎症评分表(MIS)" :fullscreen="true" width="100%">
+ <div class="container" style="width: 100%; height: 100%;overflow: auto;">
+ <div>
+ <div>
+ <el-form size="small">
+ <div style="width: 100%">
+ <table id="tabledome" class="gridtable">
+
+ <tr>
+ <th colspan="2">
+ <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>
+
+ </th>
+ <th colspan="2">
+ <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>
+
+
+ </th>
+ <th colspan="2">记录者:{{ state.tableData.记录者 }}</th>
+
+ </tr>
+ <tr>
+ <th colspan="2">
+ 患者姓名:{{patientsInfo.patientName}}
+
+ </th>
+ <th colspan="2">
+ 年龄:{{patientsInfo.age}}
+ </th>
+ <th colspan="2">性别:{{patientsInfo.patientGenderText}}</th>
+
+ </tr>
+
+ <tr>
+ <td colspan="3">
+ 一、患者的相关病史
+ </td>
+ <td colspan="3">
+ 评分(ABCD=0123)
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 1:干体重在过去的3-6个月总的变化
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.患者的相关病史.type">
+ <el-radio value="0">A:干体重没有减少或体重丢失<0.5kg</el-radio>
+ <el-radio value="1">B:体重丢失大于等于0.5kg,但<1kg</el-radio>
+ <el-radio value="2">C:体重丢失大于等于1kg,但<5%体重评分结果</el-radio>
+ <el-radio value="3">D:体重丢失大于等于5%体重</el-radio>
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 2:膳食摄入
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.膳食摄入.type">
+ <el-radio value="0">A:食欲很好,膳食模式没有改变</el-radio>
+ <el-radio value="1">B:固体食物摄入欠佳</el-radio>
+ <el-radio value="2">C:饮食中度减少,完全流质饮食</el-radio>
+ <el-radio value="3">D:低能量流质饮食,甚至饥饿</el-radio>
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 3:胃肠道症状
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.胃肠道症状.type">
+ <el-radio value="0">A:没有症状,食欲良好</el-radio>
+ <el-radio value="1">B:轻微的症状,偶尔恶心或呕吐</el-radio>
+ <el-radio value="2">C:有时呕吐,中度的胃肠道症状</el-radio>
+ <el-radio value="3">D:频繁腹泻、呕吐或严重的厌食症</el-radio>
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 4:营养相关损害
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.营养相关损害.type">
+ <el-radio value="0">A:正常,功能能力良好</el-radio>
+ <el-radio value="1">B:偶尔步行困难,经常感到疲惫</el-radio>
+ <el-radio value="2">C:独立活动困难(如去厕所)</el-radio>
+ <el-radio value="3">D:卧床或轮椅,或几乎没有身体活动能力</el-radio>
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 5:并发症和血透年限
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.并发症和血透年限.type">
+ <el-radio value="0">A:透析时间<1年,无其他疾病</el-radio>
+ <el-radio value="1">B:透析时间1-4年,轻度并发症(不包括多种慢性病:MCC)</el-radio>
+ <el-radio value="2">C:透析时间>4年,中度患其他疾病(包括一种)</el-radio>
+ <el-radio value="3">D:任何严重疾病,患有多种慢性病(大于等于2种)</el-radio>
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="6">
+ 二、身体测量(根据SGA的资料)
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 6:脂肪存量减少或皮下脂肪减少(眼球下方三头肌、二头肌、胸部)
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.并发症和血透年限.type">
+ <el-radio value="0">A:正常(没有变化)</el-radio>
+ <el-radio value="1">B:轻度</el-radio>
+ <el-radio value="2">C:中度</el-radio>
+ <el-radio value="3">D:重度</el-radio>
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 7:肌肉消耗的迹象(太阳穴、锁骨、肩胛骨肋骨、股四头肌、膝关节、骨节)
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.肌肉消耗的迹象.type">
+ <el-radio value="0">A:正常(没有变化)</el-radio>
+ <el-radio value="1">B:轻度</el-radio>
+ <el-radio value="2">C:中度</el-radio>
+ <el-radio value="3">D:重度</el-radio>
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 8:体重指数(BMI)
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.体重指数BMI.type">
+ <el-radio value="0">A:BMI>20</el-radio>
+ <el-radio value="1">B:BM1:16-17.99</el-radio>
+ <el-radio value="2">C:BMI:18-19.99</el-radio>
+ <el-radio value="3">D:BMI<16</el-radio>
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="6">
+ 三、实验室数据
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 9:血清白蛋白
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.血清白蛋白.type">
+ <el-radio value="0">A:大于等于4.0g/dl</el-radio>
+ <el-radio value="1">B:3.5-3.9g/dl</el-radio>
+ <el-radio value="2">C:3.0-3.4g/dl</el-radio>
+ <el-radio value="3">D:小于3.0g/dl</el-radio>
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ 10:血清总铁结合力(TIBC))/血清转铁蛋白(TRF)
+ </td>
+ <td colspan="3">
+ <el-radio-group class="elradiozdi"
+ v-model="state.tableData.血清总铁结合力.type">
+ <el-radio value="0">A:TIBC>250mg/dl或TRF>200mg/dl</el-radio>
+ <el-radio value="1">B:TIBC200-249mg/dl或TRF170-199mg/dl</el-radio>
+
+ </el-radio-group>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="6" style="font-weight: 600;">评分结果</td>
+ </tr>
+ <tr>
+ <td colspan="6" style="font-weight: 600;">
+
+ 评分标准:<8分 轻度营养不良;9-18分 中度营养不良;>18分 重度营养不良;正常分值范围:0-30分。
+ <br>
+ <br>
+ <br>
+ <div style="color: blue;">
+ 最后得分:{{sum}}
+ </div>
+
+ <br>
+ <span></span>
+ </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>
+ </div>
+ </template>
+ </el-dialog>
+
+
+ </div>
+
+</template>
+
+<script setup lang="ts" name="visualizingLinkDemo2">
+import { reactive, onMounted, onUnmounted, ref, computed } 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} 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({
+ dialogTableVisible:false,
+ tableData: {
+ 表名: '营养不良炎症评分表(MIS)',
+ 初次调查日期:"",
+ 填表日期: '',
+ 更新日期: '',
+ 记录者: '陈银成',
+ 患者的相关病史: {
+ type: '',
+ input1: '',
+ },
+ 膳食摄入: {
+ type: '',
+ input1: '',
+ },
+ 胃肠道症状:{
+ type: '',
+ input1: '',
+ },
+ 营养相关损害:{
+ type: '',
+ input1: '',
+ },
+ 并发症和血透年限:{
+ type: '',
+ input1: '',
+ },
+ 脂肪存量减少或皮下脂肪减少:{
+ type: '',
+ input1: '',
+ },
+ 肌肉消耗的迹象:{
+ type: '',
+ input1: '',
+ },
+ 体重指数BMI:{
+ type: '',
+ input1: '',
+ },
+ 血清白蛋白:{
+ type: '',
+ input1: '',
+ },
+ 血清总铁结合力:{
+ type: '',
+ input1: '',
+ }
+ },
+ 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:'营养风险筛查表(NRS2002)',
+ surveryFormType:1,
+ updateTime: ''
+ }
+
+})
+const sum = computed(() => {
+ let x=0
+ for(let key in state.tableData){
+ console.log(key+'key=='+state.tableData[key]?.type)
+ if(Number(state.tableData[key]?.type)){
+ x+=Number(state.tableData[key]?.type)
+ }
+ }
+ return x
+})
+const funhui=()=>{
+ state.dialogTableVisible=false
+}
+const onSubmit = () => {
+ console.log('submit!')
+ console.log(state.tableData)
+ const info:tiaochabiaoInfo={
+ id: state.viewInfo.id,
+ surveryFormType:1,
+ 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:'营养不良炎症评分表(MIS)',
+ 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 getData = (str: string) => {
+ console.log("子组件获取显示数据!" + str);
+ state.loading = true
+
+}
+// 打开查看或者编辑明细
+const openShow = (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()
+ state.dialogTableVisible = true
+ }
+ else if(type==='update'){
+ console.log('------------------------3333333333333333')
+ console.log(mode)
+ state.viewInfo=mode
+ state.tableData=JSON.parse(mode.surveryJsonBody)
+ state.dialogTableVisible = true
+
+
+ }
+
+}
+const getPageInfo=()=>{
+ state.tableData={
+ 表名: '营养不良炎症评分表(MIS)',
+ 初次调查日期:formatDate(new Date(),'YYYY-mm-dd'),
+ 填表日期: '',
+ 更新日期: formatDate(new Date(),'YYYY-mm-dd'),
+ 记录者: userInfos.value.userName,
+ 患者的相关病史: {
+ type: '',
+ input1: '',
+ },
+ 膳食摄入: {
+ type: '',
+ input1: '',
+ },
+ 胃肠道症状:{
+ type: '',
+ input1: '',
+ },
+ 营养相关损害:{
+ type: '',
+ input1: '',
+ },
+ 并发症和血透年限:{
+ type: '',
+ input1: '',
+ },
+ 脂肪存量减少或皮下脂肪减少:{
+ type: '',
+ input1: '',
+ },
+ 肌肉消耗的迹象:{
+ type: '',
+ input1: '',
+ },
+ 体重指数BMI:{
+ type: '',
+ input1: '',
+ },
+ 血清白蛋白:{
+ type: '',
+ input1: '',
+ },
+ 血清总铁结合力:{
+ type: '',
+ input1: '',
+ }
+ }
+}
+
+// 第二步:暴露方法
+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;
+ text-align: left;
+ border-color: #666666;
+ background-color: #a4b0e2;
+}
+
+.gridtable td {
+ border-width: 1px;
+ padding: 8px;
+ border-style: solid;
+ border-color: #666666;
+ background-color: #ffffff;
+}
+
+</style>
diff --git a/src/views/home/components/pingubiao/index.vue b/src/views/home/components/pingubiao/index.vue
new file mode 100644
index 0000000..9ede20e
--- /dev/null
+++ b/src/views/home/components/pingubiao/index.vue
@@ -0,0 +1,309 @@
+<template>
+ <div class="dietarySurvey-home" >
+ <el-row v-if="patientsInfo.id" style="padding-left: 10px;">
+ <el-form size="small" :inline="true" :model="state.formInline">
+ <el-form-item label="调差表">
+ <el-select style="width: 120px;"
+ v-model="state.formInline.formTableName"
+ placeholder="不选默认查全部"
+ clearable
+ >
+ <el-option label="营养风险筛查表(NRS2002)" value="营养风险筛查表(NRS2002)" />
+ <el-option label="营养不良炎症评分表(MIS)" value="营养不良炎症评分表(MIS)" />
+ <el-option label="主观全面评定(SGA)评价" value="主观全面评定(SGA)评价" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="填报日期">
+ <el-date-picker
+ v-model="state.formInline.date"
+ type="daterange"
+ unlink-panels
+ range-separator="To"
+ start-placeholder="开始"
+ end-placeholder="结束"
+ :shortcuts="shortcuts"
+ format="YYYY/MM/DD"
+ value-format="YYYY-MM-DD"
+ />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="onSubmit">查询</el-button>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" plain @click="addItem">添加</el-button>
+ </el-form-item>
+ </el-form>
+ </el-row>
+ <div v-if="patientsInfo.id" class="divcont">
+ <el-table size="default" :data="state.tableData" stripe style="width: 100%" :height="tableHe">
+ <el-table-column fixed label="NO" type="index" widtd="80" >
+ <template #header>
+ <el-icon @click="onSubmit"><RefreshRight /></el-icon>
+ </template>
+
+ </el-table-column>
+ <el-table-column prop="surveryTime" label="填表时间" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.surveryTime?.substring(0,11)}}
+ </template>
+ </el-table-column>
+ <el-table-column prop="surveryTime" label="调查表名称" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.suveryFormName}}
+ </template>
+ </el-table-column>
+ <el-table-column prop="surveryPersonName" label="填表人" show-overflow-tooltip />
+ <!-- <el-table-column prop="updateTime" label="更新时间" show-overflow-tooltip /> -->
+ <el-table-column label="操作" >
+ <template #default="scope">
+ <el-button size="small" @click="handleEdit(scope.$index, scope.row)">
+ 编辑
+ </el-button>
+ <el-button
+ size="small"
+ type="danger"
+ @click="handleDelete(scope.$index, scope.row)"
+ >
+ 删除
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination
+ v-model:current-page="state.page"
+ v-model:page-size="state.size"
+ :page-sizes="[10, 20, 30, 40]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="state.total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ <el-empty v-if="!patientsInfo.id" description="无数据,请先选择患者"></el-empty>
+ <editDietary @shuaxin="onSubmit" ref="editDietaryRef"></editDietary>
+ <editDietary2 @shuaxin="onSubmit" ref="editDietaryRef2"></editDietary2>
+ <editDietary3 @shuaxin="onSubmit" ref="editDietaryRef3"></editDietary3>
+ </div>
+</template>
+
+<script setup lang="ts">
+import { storeToRefs } from 'pinia';
+import { usePatientsInfo } from '/@/stores/patientsInfo';
+import {list,tiaochabiaoInfo,deleteId} from '/@/api/tiaochabiao/index'
+import { computed, reactive, ref } from 'vue';
+import editDietary2 from './editDietary2.vue'
+import editDietary3 from './editDietary3.vue'
+import editDietary from './editDietary.vue'
+import { useRoute,useRouter } from 'vue-router';
+import { ElLoading, ElMessage, ElMessageBox } from 'element-plus';
+const storesPat = usePatientsInfo();
+const { patientsInfo } = storeToRefs(storesPat);
+const props = defineProps(['tableHeight'])
+const editDietaryRef=ref()
+const editDietaryRef2=ref()
+const editDietaryRef3=ref()
+const router = useRouter()
+const shortcuts = [
+ {
+ text: '上一周',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ },
+ },
+ {
+ text: '上一个月',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ },
+ },
+ {
+ text: '前三个月',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ },
+ },
+]
+const state = reactive({
+ tableData: [],
+ page:1,
+ size:10,
+ total:0,
+ loading: false,
+ formInline:{
+ user: '',
+ formTableName:'',
+ date: [],
+ },
+ dialogTableVisible:false
+})
+const tableHe = computed(() => {
+ return (props.tableHeight-200)+'px'
+})
+const handleSizeChange = (val: number) => {
+ console.log(`${val} items per page`)
+ state.size=val
+ onSubmit()
+}
+const handleCurrentChange = (val: number) => {
+ console.log(`current page: ${val}`)
+ state.page=val
+ onSubmit()
+}
+
+const onSubmit=()=>{
+ console.log(state.formInline)
+ const pasm={
+ page: state.page,
+ size: state.size,
+ wherecondition:`survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
+ ordercondition: 'survery_time desc'
+ }
+ if(state.formInline.date.length===2){
+ pasm.wherecondition+=` and survery_time BETWEEN '${state.formInline.date[0]} 00:00:00' AND '${state.formInline.date[1]} 23:59:59'`
+ }
+ if(state.formInline.formTableName){
+ pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
+ }
+ const loading = ElLoading.service({
+ lock: true,
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)',
+ })
+ list(pasm).then(re=>{
+ state.tableData=re.data.list
+ state.total=re.data.total
+ }).finally(()=>{
+ loading.close()
+ })
+}
+const addItem=()=>{
+
+ if(state.formInline.formTableName){
+ if(state.formInline.formTableName==='营养风险筛查表(NRS2002)'){
+ editDietaryRef.value.openShow('add')
+ }else if(state.formInline.formTableName==='主观全面评定(SGA)评价'){
+ editDietaryRef2.value.openShow('add')
+ }else if(state.formInline.formTableName==='营养不良炎症评分表(MIS)'){
+ editDietaryRef3.value.openShow('add')
+ }
+ }else{
+ ElMessage.warning('请先选择你要添加的表单名称!')
+ }
+ // router.push({path:'/tiaochabiao1',query:{type:'add',id:0}})
+}
+// 第一步:定义子组件里面的方法
+const getData = (str: string) => {
+ const pasm = {
+ page: 1,
+ size: 10,
+ wherecondition:`survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
+ ordercondition:'survery_time DESC'
+ }
+ if(state.formInline.date.length===2){
+ pasm.wherecondition+=`and survery_time BETWEEN '${state.formInline.date[0]} 00:00:00' AND '${state.formInline.date[1]} 23:59:59'`
+ }
+ if(state.formInline.formTableName){
+ pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
+ }
+ const loading = ElLoading.service({
+ lock: true,
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)',
+ })
+ list(pasm).then(re=>{
+ console.log(re)
+ state.tableData=re.data.list
+ state.total=re.data.total
+ }).finally(()=>{
+ loading.close()
+ })
+
+ state.loading = true
+
+}
+
+// 第二步:暴露方法
+defineExpose({ getData })
+/**
+ * 编辑
+ */
+const handleEdit = (index: number, row: any) => {
+ console.log(index, row,state.formInline.formTableName)
+ if(row.suveryFormName==='营养风险筛查表(NRS2002)'){
+ editDietaryRef.value.openShow('update',row)
+ }else if(row.suveryFormName==='主观全面评定(SGA)评价'){
+ editDietaryRef2.value.openShow('update',row)
+ }else if(row.suveryFormName==='营养不良炎症评分表(MIS)'){
+ editDietaryRef3.value.openShow('update',row)
+ }
+}
+const handleDelete = (index: number, row: any) => {
+ console.log(index, row)
+ ElMessageBox.confirm(
+ '你确定要删除该条记录?',
+ 'Warning',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ deleteId(`id=${row.id}`).then(re=>{
+ ElMessage.success('删除成功')
+ onSubmit()
+ }).catch(e=>{
+ ElMessage.error('删除失败!')
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '取消操作',
+ })
+ })
+
+}
+</script>
+
+<style lang="scss">
+
+
+ .gridtable {font-family: verdana,arial,sans-serif;font-size:11px;color:#333333;border-width: 1px;border-color: #666666;border-collapse: collapse;width: 100%;}
+
+ .gridtable th {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;}
+
+ .gridtable td {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;min-width: 100px;}
+ .input-underline {
+ border: none; /* 移除所有边框 */
+ border-bottom: 1px solid #ccc; /* 显示下边框 */
+ outline: none; /* 移除点击输入框时浏览器可能会提供的默认轮廓线 */
+ text-align: center;
+ }
+ .width50{
+ width: 50px;
+ }
+.infinite-list {
+ overflow: auto;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+.infinite-list .infinite-list-item {
+ display: flex;
+}
+
+.divcont{
+ overflow-y: auto; /* 垂直滚动条 */
+}
+
+</style>
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index d2343fc..fab0d63 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -25,7 +25,7 @@
</el-table-column>
</el-table>
</el-col>
- <el-col :xs="6" :sm="18" :md="20" :lg="21" :xl="21" >
+ <el-col :xs="18" :sm="18" :md="20" :lg="21" :xl="21" >
<el-tabs v-model="state.activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="患者档案" name="患者档案">
<template #label>
@@ -90,7 +90,7 @@
<span style="margin-left: 5px">营养筛查评估</span>
</span>
</template>
- Task
+
</el-tab-pane>
<el-tab-pane label="方案" name="方案">
<template #label>
@@ -116,13 +116,14 @@
</el-tab-pane>
</el-tabs>
<div class="itemDoby">
- <patientFile v-if="state.activeName === '患者档案'" :tableHeight="state.tableHeight.detailRight"
+ <patientFile v-show="state.activeName === '患者档案'" :tableHeight="state.tableHeight.detailRight"
ref="patientFileRef" />
- <lisUi v-if="state.activeName === '生化数据'" ref="lisUiRef">
+ <lisUi v-show="state.activeName === '生化数据'" ref="lisUiRef">
</lisUi>
- <MedicationRecords v-if="state.activeName === '用药记录'" :tableHeight="state.tableHeight.detailRight" ref="MedicationRecordsRef">
+ <MedicationRecords v-show="state.activeName === '用药记录'" :tableHeight="state.tableHeight.detailRight" ref="MedicationRecordsRef">
</MedicationRecords>
- <dietarySurvey ref="dietarySurveyRef" v-if="state.activeName === '膳食调查'" :tableHeight="state.tableHeight.detailRight"></dietarySurvey>
+ <dietarySurvey ref="dietarySurveyRef" v-show="state.activeName === '膳食调查'" :tableHeight="state.tableHeight.detailRight"></dietarySurvey>
+ <pinggubiao ref="pinggubiaoRef" v-show="state.activeName === '营养筛查评估'" :tableHeight="state.tableHeight.detailRight"></pinggubiao>
</div>
@@ -156,6 +157,8 @@
import patientFile from './components/patient_file.vue'
// 化验结果
import lisUi from './components/lis_.ui.vue'
+// 评估表
+import pinggubiao from './components/pingubiao/index.vue'
interface User {
code: string,
patientName: string
@@ -166,6 +169,7 @@
const patientFileRef = ref()
const currentRow = ref()
const lisUiRef = ref()
+const pinggubiaoRef=ref()
const dietarySurveyRef=ref()// 膳食调查
const state = reactive({
global: {
@@ -252,6 +256,9 @@
} else if(state.activeName === '膳食调查'){
dietarySurveyRef.value.getData()
+ }else if(state.activeName === '营养筛查评估'){
+ pinggubiaoRef.value.getData()
+
}
}
}
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index aa53bc4..84c8149 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -48,7 +48,7 @@
import { useThemeConfig } from '/@/stores/themeConfig';
import { NextLoading } from '/@/utils/loading';
import logoMini from '/@/assets/logo-mini.svg';
-import loginMain from '/@/assets/login-main.svg';
+import loginMain from '/@/assets/imgs/login.jpg';
import loginBg from '/@/assets/login-bg.svg';
// 引入组件
@@ -117,8 +117,10 @@
width: 100%;
height: 52%;
img {
- width: 100%;
- height: 100%;
+ text-align: center;
+ margin-left: 20%;
+ width: 500px;
+ height: 500px;
animation: error-num 0.6s ease;
}
}
--
Gitblit v1.8.0