From 05c827fea632f004821cc746ba73880769fab7cd Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 14 七月 2025 10:06:43 +0800
Subject: [PATCH] gx1868 日期选择和排班患者查询条件,默认显示当天的已排班患者

---
 src/views/home/components/patient_file.vue |  150 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 124 insertions(+), 26 deletions(-)

diff --git a/src/views/home/components/patient_file.vue b/src/views/home/components/patient_file.vue
index f230d60..b8bff9f 100644
--- a/src/views/home/components/patient_file.vue
+++ b/src/views/home/components/patient_file.vue
@@ -8,7 +8,7 @@
                     </el-icon> <span> &nbsp; 服务套餐</span>
                 </div>
                 <div>
-                    <el-form  :inline="true" class="demo-form-inline">
+                    <el-form  :inline="true" class="demo-form-inline" size="small">
                         <el-form-item label="基础服务:">
                             <el-radio-group class="elradiozdi" :disabled="state.formdispl" v-model="state.taochan.基础服务">
                                 <el-radio value="是">是</el-radio>
@@ -71,23 +71,25 @@
                                     </el-icon>
                                 </span>
                             </td>
-                            <td>干体重:<span>{{ state.patientData.干体重 }} (kg)</span></td>
+                            <td>干体重:<span>{{ state.patientData.干体重 }} (kg)</span>
+                                <el-icon :size="14" color="#409EFF" @click="state.gtzshow=true">
+                                    <Calendar />
+                                </el-icon>
+                            </td>
 
 
                         </tr>
                         <tr>
-                            <td colspan="2">证件号:{{ patientsInfo.patientIdentityNo }}</td>
-                            <td>透析龄:<span v-if="patientsInfo.medHistoryStatByMonth">{{
-                                patientsInfo.medHistoryStatByMonth }}
-                                    (月)</span></td>
+                            <td colspan="2">证件号:{{ state.patientData.证件号 }}</td>
+                            <td>透析龄:<span>{{透析年龄}}</span></td>
                             <td>最近体重:<span>{{ state.patientData.上一次透前体重 }} (kg)</span></td>
                             <td>BMI:<span>{{ BMI }}</span></td>
 
                         </tr>
                         <tr>
-                            <td>电话号码:{{ patientsInfo.patientTelNo }}</td>
-                            <td>家属电话:{{ patientsInfo.patientTelNoRelative }}</td>
-                            <td colspan="3">家庭地址:{{ patientsInfo.patientAddress }}</td>
+                            <td>电话号码:{{ state.patientData.电话号码 }}</td>
+                            <td>家属电话:{{ state.patientData.亲属手机号 }}</td>
+                            <td colspan="3">家庭地址:{{ state.patientData.家庭住址 }}</td>
 
                         </tr>
                         <tr>
@@ -109,24 +111,25 @@
                 <div class="clearfix">
                     <el-icon size="16" color="#409efc">
                         <CreditCard />
-                    </el-icon> <span> &nbsp; 最新生化数据</span>
+                    </el-icon> <span> &nbsp; 最新生化数据 <span style="color: #606266; font-size: 80%;font-weight: 200;">(90天以内的)</span></span>
                 </div>
-                <el-scrollbar :height="(tableHeight-520)+'px'">
+                <el-scrollbar :height="(tableHeight-820)+'px'">
                     <div>
                         <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">
+                                    <!-- <div class="title">
                                         {{ key }}
-                                    </div>
+                                    </div> -->
                                     <div class="itemRes">
                                         <div class="itemResDtile">
                                             <div style="text-align: center;width: 100%;">
                                                 {{ item?.item_name }}
                                             </div>
                                             <div>
-                                                {{ item?.item_result }}<span class="tdate">{{ item?.item_result_unit
+                                              <span style="font-weight: 600;" :style="{ color:item.item_result_flag==='d'?'#67C23A':'#F56C6C'}">{{ item?.item_result }}</span> 
+                                             <span class="tdate">{{ item?.item_result_unit
                                                     }}</span>
                                             </div>
                                         </div>
@@ -142,9 +145,57 @@
                     </div>
                 </el-scrollbar>
             </el-card>
+            <el-card class="box-card" style="margin-top:10px;">
+                <div class="clearfix">
+                    <el-icon size="16" color="#409efc">
+                        <CreditCard />
+                    </el-icon> <span> &nbsp; 最近营养筛查评估 <span style="color: #606266; font-size: 80%;font-weight: 200;">(90天以内的)</span></span>
+                </div>
+                <el-scrollbar :height="(tableHeight-820)+'px'">
+                    <div>
+                        <el-row :gutter="10" v-if="state.营养筛查历史表.length">
+                            <el-col :xs="8" :sm="8" :md="6" :lg="6" :xl="4" v-for="(item, key) in state.营养筛查历史表"
+                                :key="key">
+                                <div class="itemLis">
+                                    <div class="title">
+                                        {{ item?.结果.表名 }}
+                                    </div>
+                                    <div class="itemRes">
+                                        <div class="itemResDtile">
+                                           
+                                            <div>
+                                              <span style="font-weight: 600;" :style="{ color:item?.结果.结果.color}">{{ item?.结果.结果.label }}</span> 
+                                                <span class="tdate"> 得分:{{ item?.结果.结果.value}}</span>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="tdate">
+                                        {{ item?.surveryTime }}
+                                    </div>
+
+                                </div>
+
+                            </el-col>
+                        </el-row>
+                    </div>
+                </el-scrollbar>
+            </el-card>
 
         </div>
         <el-empty v-else description="无数据,请先选择患者"></el-empty>
+        <el-dialog v-model="state.gtzshow" title="干体重历史调整记录" width="800px">
+            <el-table  :data="state.gtztableData" height="300" >
+                    <el-table-column align="center" prop="createTime"  label="时间"  width="180" />  
+                    <el-table-column align="center" prop="pureWeight" label="干体重"  />
+                    <el-table-column align="center" label="启用时间">
+                        <template #default="scope">
+                            <span v-if="scope.row.enableRecordTime">{{scope.row.enableRecordTime.substring(0,11)}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column align="center" prop="remark"  label="备注" />
+                  
+                </el-table>
+        </el-dialog>
     </div>
 
 </template>
@@ -154,7 +205,8 @@
 import { usePatientsInfo } from '/@/stores/patientsInfo';
 import { useUserInfo } from '/@/stores/userInfo';
 import { computed, onMounted, reactive } from 'vue';
-import { getPatData, getLisResults, update ,updateNurtion,listNurtion,AddNurtion} from '/@/api/Patients';
+import { getPatData, getLisResults, update ,updateNurtion,listNurtion,AddNurtion,getDryWeightList} from '/@/api/Patients';
+import {list} from '/@/api/tiaochabiao/index'
 import { userInfo } from 'os';
 import { Search ,Edit,Check} from '@element-plus/icons-vue'
 import dayjs from 'dayjs';
@@ -169,6 +221,8 @@
 const { userInfos } = storeToRefs(stores);
 const props = defineProps(['tableHeight'])
 const state = reactive({
+    gtztableData:[],
+    gtzshow:false,
     formdispl:true,// 表单是否编辑
     // 患者套餐表
     taochanId:0,
@@ -189,8 +243,11 @@
         身高: '',
         上一次透前体重: '',
         出院诊断:'',
+        '透析龄(月)':''
     },
-    listData: <any>{}
+    // 最近检验数据
+    listData: <any>{},
+    营养筛查历史表:<any>[]
 })
 const tableHe = computed(() => {
     return props.tableHeight - 130
@@ -276,6 +333,15 @@
         return ''
     }
 })
+const 透析年龄=computed(() => {
+    if (state.patientData['透析龄(月)']) {
+        const nian=Math.floor(Number(state.patientData['透析龄(月)']) / 12)===0?'':Math.floor(Number(state.patientData['透析龄(月)']) / 12)+'年'
+        const yue=(Number(state.patientData['透析龄(月)']) % 12)===0?'':Number(state.patientData['透析龄(月)']) % 12+'月'
+        return  nian +yue
+    } else {
+        return ''
+    }
+})
 // 第一步:定义子组件里面的方法
 const getData = async (str: string) => {
     var pam = {
@@ -284,7 +350,7 @@
     const pam2 = {
         clientCode: userInfos.value.clientCode,
         patCode: patientsInfo.value.code,
-        date1: dayjs().add(-30, 'day').format('YYYY-MM-DD'),
+        date1: dayjs().add(-90, 'day').format('YYYY-MM-DD'),
         date2: dayjs().format('YYYY-MM-DD'),
     }
     const pas3={
@@ -292,15 +358,40 @@
         size: 0,
         wherecondition:`patient_code='${patientsInfo.value.code}'`,
     }
+    const pasm={
+        page: 0,
+        size: 0,
+        wherecondition:`survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
+        ordercondition: 'survery_time desc'
+    }
+    pasm.wherecondition+=` and survery_time BETWEEN '${dayjs().add(-90, 'day').format('YYYY-MM-DD')} 00:00:00' AND '${dayjs().format('YYYY-MM-DD')} 23:59:59'`
+    
     try {
         state.loading = true
-        const [res1, res2,res3] = await Promise.all([
+        getGtzList()
+        const [res1, res2,res3,res4] = await Promise.all([
             getPatData(pam),
             getLisResults(pam2),
-            listNurtion(pas3)
+            listNurtion(pas3),
+            list(pasm) //查询评估表
         ])
         state.patientData = res1.data
-        state.listData = res2.data
+        state.listData=[]
+        console.log('赋值患者信息',state.patientData)
+        // 赛选异常的值
+        res2.data.forEach(e=>{
+            if(e.item_result_flag!=='z'){
+                state.listData.push(e)
+            }
+        })
+        state.营养筛查历史表=[]
+        state.营养筛查历史表=res4.data.list.map(e=>{
+            e.结果=JSON.parse(e.surveryJsonBody)
+            return e
+        })
+        console.log(state.营养筛查历史表)
+        console.log('--------------------')
+        // state.listData = res2.data
         if(res3.data?.list.length>=1){
             const row=res3.data.list[0]
             console.log('taochanshuju----',row)
@@ -325,6 +416,17 @@
     }
 
 }
+const getGtzList=()=>{
+    var data = {
+    wherecondition: `patient_code = '${patientsInfo.value.code}'`,
+    ordercondition: 'create_time desc'
+    }
+    getDryWeightList(data).then((res:any) => {
+        state.gtztableData = res.data.list
+    }).finally(()=>{
+        
+    })
+}
 // 刷新套餐
 const getlistNurtion=()=>{
     const pas3={
@@ -342,15 +444,11 @@
         }
     })
 }
+
 onMounted(() => {
     // console.log(dayjs().add(-7, 'day').format('YYYY-MM-DD'),'---shan')
 })
-const formatResKeys = (obj: Object) => {
-    return Object.keys(obj).filter((k) => k !== '标本日期');
-};
-const formatResKeysDate = (obj: Object) => {
-    return Object.keys(obj).filter((k) => k === '标本日期');
-};
+
 
 // 第二步:暴露方法
 defineExpose({ getData })

--
Gitblit v1.8.0