Преглед изворни кода

cleanup: remove blood pressure remnants in monitoring; wire real weight data on dashboard

17846405080 пре 1 месец
родитељ
комит
972c696596

+ 7 - 3
campus_health_app/frontend/campus-health-app/src/app/modules/dashboard/dashboard.component.html

@@ -54,11 +54,15 @@
               <span>今日体重</span>
             </div>
             <div class="home-kpi-main">
-              <span>{{ weightData.currentWeight }}</span>
-              <span class="home-kpi-unit">kg</span>
+              <span>{{ weightData.currentWeight ?? '—' }}</span>
+              <span class="home-kpi-unit" *ngIf="weightData.currentWeight !== null">kg</span>
             </div>
             <div class="home-kpi-extra">
-              目标 {{ weightData.targetWeight }}kg · 差 {{ weightData.targetDiff }}kg
+              @if (weightData.currentWeight !== null) {
+                目标 {{ weightData.targetWeight }}kg · 差 {{ weightData.targetDiff }}kg
+              } @else {
+                目标 {{ weightData.targetWeight }}kg · 暂无测量记录
+              }
             </div>
           </article>
 

+ 57 - 3
campus_health_app/frontend/campus-health-app/src/app/modules/dashboard/dashboard.component.ts

@@ -7,6 +7,8 @@ import { ChartConfiguration, ChartType, ChartData, Chart } from 'chart.js';
 import 'chart.js/auto';
 import { PageHeaderComponent } from '../../shared/page-header/page-header.component';
 import { AiChatComponent } from '../../shared/components/modal/ai-chat/ai-chat.component';
+import { WeightDataService } from '../../services/weight-data.service';
+import { WeightRecord } from '../weight/models/weight.models';
 
 // 健康统计数据模型
 interface HealthStats {
@@ -27,13 +29,13 @@ interface HealthStats {
 
 // 体重数据模型
 interface WeightData {
-  currentWeight: number;
+  currentWeight: number | null; // null = 暂无测量记录
   targetWeight: number;
   weeklyWeightChange: string;
   bmi: number;
   bmiStatus: string;
   weeklyRecords: number;
-  targetDiff: number;
+  targetDiff: number | null;
   lastRecord: string;
   suggestion: string;
 }
@@ -276,13 +278,65 @@ export class DashboardComponent {
 
   recovery: { status: string; ratio: number; baseline: number; hrv: number; restingHr: number } | null = null;
 
-  constructor(private router: Router, private http: HttpClient) {
+  constructor(private router: Router, private http: HttpClient, private weightSvc: WeightDataService) {
     this.initMonthlyData();
     this.updateSleepChart();
   }
 
   ngOnInit() {
     this.loadHealthMetrics();
+    this.loadWeightData();
+  }
+
+  // 从 WeightDataService 订阅真实体重记录(localStorage + /api/weight/records)
+  private loadWeightData(): void {
+    this.weightSvc.records$.subscribe(records => {
+      if (!records || records.length === 0) return;
+      // 按日期+时间倒序,取最新一条
+      const sorted = [...records].sort((a, b) => {
+        const ta = new Date(`${a.date}T${a.measurementTime || '00:00'}`).getTime();
+        const tb = new Date(`${b.date}T${b.measurementTime || '00:00'}`).getTime();
+        return tb - ta;
+      });
+      const latest = sorted[0];
+      const current = Number(latest.weight) || null;
+      this.weightData.currentWeight = current;
+      this.weightData.lastRecord = latest.measurementTime
+        ? `${latest.date} ${latest.measurementTime}`
+        : latest.date;
+
+      // 周变化:找 7 天前的最近一条记录对比
+      const weekAgo = new Date(`${latest.date}T00:00`).getTime() - 7 * 86400000;
+      const prev = sorted.find(r => new Date(`${r.date}T00:00`).getTime() <= weekAgo && r.id !== latest.id);
+      if (prev && current) {
+        const diff = current - Number(prev.weight);
+        this.weightData.weeklyWeightChange = `${diff >= 0 ? '+' : ''}${diff.toFixed(1)}`;
+      } else {
+        this.weightData.weeklyWeightChange = '—';
+      }
+
+      // 目标差
+      if (current != null) {
+        const diff = Math.round((current - this.weightData.targetWeight) * 10) / 10;
+        this.weightData.targetDiff = diff;
+        this.healthStats.weight = current;
+      }
+    });
+
+    this.weightSvc.goal$.subscribe(goal => {
+      if (goal && goal.targetWeight) {
+        const oldTarget = this.weightData.targetWeight;
+        this.weightData.targetWeight = goal.targetWeight;
+        // 目标变了,重算目标差
+        if (this.weightData.currentWeight != null) {
+          this.weightData.targetDiff = Math.round((this.weightData.currentWeight - goal.targetWeight) * 10) / 10;
+        }
+        if (oldTarget !== goal.targetWeight) {
+          // targetWeight 更新后 healthStats 同步
+          this.healthStats.targetWeight = goal.targetWeight;
+        }
+      }
+    });
   }
 
   private loadHealthMetrics() {

+ 16 - 31
campus_health_app/frontend/campus-health-app/src/app/modules/monitoring/monitoring.component.html

@@ -79,7 +79,6 @@
       <div class="trend-card">
         <div class="trend-tabs">
           <button class="trend-tab" [class.active]="activeTrendTab === 'heartRate'" (click)="setActiveTrendTab('heartRate')">心率</button>
-          <button class="trend-tab" [class.active]="activeTrendTab === 'bloodPressure'" (click)="setActiveTrendTab('bloodPressure')">血压</button>
           <button class="trend-tab" [class.active]="activeTrendTab === 'bloodOxygen'" (click)="setActiveTrendTab('bloodOxygen')">血氧</button>
         </div>
         <div class="chart-wrapper">
@@ -173,13 +172,6 @@
           <div class="metric-selection-desc">记录心跳频率</div>
         </div>
       </button>
-      <button class="metric-selection-btn" (click)="selectMetricAndRecord('bloodPressure')">
-        <div class="metric-selection-icon">🩺</div>
-        <div class="metric-selection-info">
-          <div class="metric-selection-label">血压</div>
-          <div class="metric-selection-desc">记录收缩压/舒张压</div>
-        </div>
-      </button>
       <button class="metric-selection-btn" (click)="selectMetricAndRecord('bloodOxygen')">
         <div class="metric-selection-icon">🫁</div>
         <div class="metric-selection-info">
@@ -195,8 +187,8 @@
 <app-modal 
   [(isOpen)]="showRecordModal"
   [config]="{
-    title: recordForm.type === 'heartRate' ? '记录心率' : recordForm.type === 'bloodPressure' ? '记录血压' : '记录血氧',
-    icon: recordForm.type === 'heartRate' ? '💗' : recordForm.type === 'bloodPressure' ? '🩺' : '🫁',
+    title: recordForm.type === 'heartRate' ? '记录心率' : '记录血氧',
+    icon: recordForm.type === 'heartRate' ? '💗' : '🫁',
     size: 'small',
     theme: 'default',
     showFooter: false
@@ -204,18 +196,10 @@
   <div class="record-modal-content">
     <form (ngSubmit)="submitRecord()">
       <div class="form-group">
-        <label for="recordValue">{{ recordForm.type === 'heartRate' ? '心率值' : recordForm.type === 'bloodPressure' ? '收缩压' : '血氧饱和度' }}:</label>
+        <label for="recordValue">{{ recordForm.type === 'heartRate' ? '心率值' : '血氧饱和度' }}:</label>
         <div class="input-with-unit">
           <input type="number" id="recordValue" [(ngModel)]="recordForm.value" name="recordValue" placeholder="请输入数值" min="0" required>
-          <span class="unit">{{ recordForm.type === 'heartRate' ? 'bpm' : recordForm.type === 'bloodPressure' ? 'mmHg' : '%' }}</span>
-        </div>
-      </div>
-      
-      <div class="form-group" *ngIf="recordForm.type === 'bloodPressure'">
-        <label for="diastolicValue">舒张压:</label>
-        <div class="input-with-unit">
-          <input type="number" id="diastolicValue" [(ngModel)]="recordForm.diastolic" name="diastolicValue" placeholder="请输入舒张压" min="0" required>
-          <span class="unit">mmHg</span>
+          <span class="unit">{{ recordForm.type === 'heartRate' ? 'bpm' : '%' }}</span>
         </div>
       </div>
       
@@ -237,7 +221,7 @@
   [(isOpen)]="showDetailModal"
   [config]="{
     title: selectedMetric === 'heartRate' ? '心率详情' : 
-           selectedMetric === 'bloodPressure' ? '血压详情' : 
+           selectedMetric === 'hrv' ? 'HRV 详情' : 
            selectedMetric === 'bloodOxygen' ? '血氧详情' : 
            selectedMetric === 'menstrualCycle' ? '经期详情' : '',
     icon: selectedMetric === 'comprehensive' ? '' : '📊',
@@ -266,12 +250,12 @@
             <span class="metric-report-status" [class.normal]="heartRate.status === 'normal'" [class.warning]="heartRate.status === 'warning'" [class.danger]="heartRate.status === 'danger'">{{ getStatusText(heartRate.status) }}</span>
           </div>
           <div class="metric-report-item">
-            <div class="metric-report-icon">🩺</div>
+            <div class="metric-report-icon">🌿</div>
             <div class="metric-report-info">
-              <div class="metric-report-label">血压</div>
-              <div class="metric-report-value">{{ bloodPressure.systolic.value }}/{{ bloodPressure.diastolic.value }} mmHg</div>
+              <div class="metric-report-label">HRV</div>
+              <div class="metric-report-value">{{ hrv.value }} {{ hrv.unit }}<span *ngIf="recovery" class="metric-report-extra"> · 恢复比 {{ recovery.ratio }}</span></div>
             </div>
-            <span class="metric-report-status" [class.normal]="bloodPressure.systolic.status === 'normal'" [class.warning]="bloodPressure.systolic.status === 'warning'" [class.danger]="bloodPressure.systolic.status === 'danger'">{{ getStatusText(bloodPressure.systolic.status) }}</span>
+            <span class="metric-report-status" [class.normal]="hrv.status === 'normal'" [class.warning]="hrv.status === 'warning'" [class.danger]="hrv.status === 'danger'">{{ getStatusText(hrv.status) }}</span>
           </div>
           <div class="metric-report-item">
             <div class="metric-report-icon">🫁</div>
@@ -301,13 +285,14 @@
         <div class="detail-item"><span class="label">趋势:</span><span class="value">{{ getTrendIcon(heartRate.trend) }} {{ getTrendText(heartRate.trend) }}</span></div>
         <div class="advice-box"><h4>健康建议</h4><p>{{ getHealthAdvice('heartRate') }}</p></div>
       </div>
-    } @else if (selectedMetric === 'bloodPressure') {
+    } @else if (selectedMetric === 'hrv') {
       <div class="metric-details">
-        <div class="detail-item"><span class="label">收缩压:</span><span class="value">{{ bloodPressure.systolic.value }} mmHg</span></div>
-        <div class="detail-item"><span class="label">舒张压:</span><span class="value">{{ bloodPressure.diastolic.value }} mmHg</span></div>
-        <div class="detail-item"><span class="label">状态:</span><span class="value" [class.normal]="bloodPressure.systolic.status === 'normal'" [class.warning]="bloodPressure.systolic.status === 'warning'" [class.danger]="bloodPressure.systolic.status === 'danger'">{{ getStatusText(bloodPressure.systolic.status) }}</span></div>
-        <div class="detail-item"><span class="label">记录时间:</span><span class="value">{{ bloodPressure.systolic.timestamp | date: 'yyyy-MM-dd HH:mm' }}</span></div>
-        <div class="advice-box"><h4>健康建议</h4><p>{{ getHealthAdvice('bloodPressure') }}</p></div>
+        <div class="detail-item"><span class="label">当前 HRV:</span><span class="value">{{ hrv.value }} {{ hrv.unit }}</span></div>
+        <div class="detail-item" *ngIf="recovery"><span class="label">30天均值:</span><span class="value">{{ recovery.baseline }} {{ hrv.unit }}</span></div>
+        <div class="detail-item" *ngIf="recovery"><span class="label">恢复比值:</span><span class="value">{{ recovery.ratio }}(≥1.0 良好 / 0.85-1.0 一般 / &lt;0.85 疲劳)</span></div>
+        <div class="detail-item"><span class="label">状态:</span><span class="value" [class.normal]="hrv.status === 'normal'" [class.warning]="hrv.status === 'warning'" [class.danger]="hrv.status === 'danger'">{{ getStatusText(hrv.status) }}</span></div>
+        <div class="detail-item"><span class="label">记录时间:</span><span class="value">{{ hrv.timestamp | date: 'yyyy-MM-dd HH:mm' }}</span></div>
+        <div class="advice-box"><h4>健康建议</h4><p>{{ getHealthAdvice('hrv') }}</p></div>
       </div>
     } @else if (selectedMetric === 'bloodOxygen') {
       <div class="metric-details">

+ 22 - 110
campus_health_app/frontend/campus-health-app/src/app/modules/monitoring/monitoring.component.ts

@@ -26,9 +26,8 @@ export interface HealthMetricHistory {
 
 // 数据记录表单接口
 export interface DataRecordForm {
-  type: 'heartRate' | 'bloodPressure' | 'bloodOxygen';
+  type: 'heartRate' | 'bloodOxygen';
   value: number;
-  diastolic?: number;
   date: Date;
 }
 
@@ -95,12 +94,6 @@ export class MonitoringComponent implements OnInit, OnDestroy {
     trend: 'stable'
   };
 
-  // 血压(保留字段以兼容旧弹窗/趋势代码,主界面不再展示)
-  bloodPressure: { systolic: HealthMetric; diastolic: HealthMetric } = {
-    systolic: { value: 0, unit: 'mmHg', status: 'normal', timestamp: new Date(), trend: 'stable' },
-    diastolic: { value: 0, unit: 'mmHg', status: 'normal', timestamp: new Date(), trend: 'stable' }
-  };
-
   recovery: { status: string; ratio: number; baseline: number; hrv: number; restingHr: number } | null = null;
 
   // 血氧数据
@@ -134,10 +127,6 @@ export class MonitoringComponent implements OnInit, OnDestroy {
 
   // 历史数据
   heartRateHistory: HealthMetricHistory[] = [];
-  bloodPressureHistory: { systolic: HealthMetricHistory[]; diastolic: HealthMetricHistory[] } = {
-    systolic: [],
-    diastolic: []
-  };
   bloodOxygenHistory: HealthMetricHistory[] = [];
 
   // 数据记录表单
@@ -179,7 +168,7 @@ export class MonitoringComponent implements OnInit, OnDestroy {
   healthScore: number = 85;
   
   // 当前趋势图标签
-  activeTrendTab: 'heartRate' | 'bloodPressure' | 'bloodOxygen' = 'heartRate';
+  activeTrendTab: 'heartRate' | 'bloodOxygen' = 'heartRate';
   
   // 合并后的趋势图表
   trendChart: any = null;
@@ -290,8 +279,6 @@ export class MonitoringComponent implements OnInit, OnDestroy {
     // 根据各项指标状态扣分
     if (this.heartRate.status === 'warning') score -= 10;
     if (this.heartRate.status === 'danger') score -= 20;
-    if (this.bloodPressure.systolic.status === 'warning') score -= 10;
-    if (this.bloodPressure.systolic.status === 'danger') score -= 20;
     if (this.bloodOxygen.status === 'warning') score -= 10;
     if (this.bloodOxygen.status === 'danger') score -= 20;
     this.healthScore = Math.max(0, score);
@@ -305,19 +292,19 @@ export class MonitoringComponent implements OnInit, OnDestroy {
   
   // 获取健康摘要
   getHealthSummary(): string {
-    const statuses = [this.heartRate.status, this.bloodPressure.systolic.status, this.bloodOxygen.status];
+    const statuses = [this.heartRate.status, this.bloodOxygen.status];
     const allNormal = statuses.every(s => s === 'normal');
     const hasWarning = statuses.some(s => s === 'warning');
     const hasDanger = statuses.some(s => s === 'danger');
-    
-    if (allNormal) return '心率、血压、血氧指标均在正常范围内,继续保持!';
+
+    if (allNormal) return '心率、血氧指标均在正常范围内,继续保持!';
     if (hasDanger) return '部分指标异常,建议及时就医检查。';
     if (hasWarning) return '部分指标需要关注,请注意调整生活方式。';
     return '请定期监测健康指标。';
   }
   
   // 设置当前趋势图标签
-  setActiveTrendTab(tab: 'heartRate' | 'bloodPressure' | 'bloodOxygen'): void {
+  setActiveTrendTab(tab: 'heartRate' | 'bloodOxygen'): void {
     this.activeTrendTab = tab;
     this.initializeTrendChart();
   }
@@ -367,14 +354,6 @@ export class MonitoringComponent implements OnInit, OnDestroy {
         minVal = data.length > 0 ? Math.max(50, Math.min(...data.map(d => d.value)) - 10) : 50;
         maxVal = data.length > 0 ? Math.min(120, Math.max(...data.map(d => d.value)) + 10) : 120;
         break;
-      case 'bloodPressure':
-        data = filteredData.bloodPressure.systolic;
-        color = '#3b82f6';
-        name = '收缩压';
-        unit = 'mmHg';
-        minVal = data.length > 0 ? Math.max(80, Math.min(...data.map(d => d.value)) - 10) : 80;
-        maxVal = data.length > 0 ? Math.min(180, Math.max(...data.map(d => d.value)) + 10) : 180;
-        break;
       case 'bloodOxygen':
         data = filteredData.bloodOxygen;
         color = '#8b5cf6';
@@ -455,18 +434,6 @@ export class MonitoringComponent implements OnInit, OnDestroy {
         value: heartRateValue
       });
 
-      // 血压历史数据
-      const systolicValue = 110 + Math.floor(Math.random() * 30);
-      const diastolicValue = 70 + Math.floor(Math.random() * 20);
-      this.bloodPressureHistory.systolic.push({
-        date: new Date(date),
-        value: systolicValue
-      });
-      this.bloodPressureHistory.diastolic.push({
-        date: new Date(date),
-        value: diastolicValue
-      });
-
       // 血氧历史数据(95-100之间波动)
       const bloodOxygenValue = 95 + Math.floor(Math.random() * 5);
       this.bloodOxygenHistory.push({
@@ -499,10 +466,6 @@ export class MonitoringComponent implements OnInit, OnDestroy {
 
     return {
       heartRate: this.heartRateHistory.filter(item => item.date >= startDate),
-      bloodPressure: {
-        systolic: this.bloodPressureHistory.systolic.filter(item => item.date >= startDate),
-        diastolic: this.bloodPressureHistory.diastolic.filter(item => item.date >= startDate)
-      },
       bloodOxygen: this.bloodOxygenHistory.filter(item => item.date >= startDate)
     };
   }
@@ -515,12 +478,11 @@ export class MonitoringComponent implements OnInit, OnDestroy {
   }
 
   // 打开数据记录模态框
-  openRecordModal(type: 'heartRate' | 'bloodPressure' | 'bloodOxygen'): void {
+  openRecordModal(type: 'heartRate' | 'bloodOxygen'): void {
     const now = new Date();
     this.recordForm = {
       type,
       value: 0,
-      diastolic: type === 'bloodPressure' ? 0 : undefined,
       date: now
     };
     // 初始化datetime-local输入框的值
@@ -544,7 +506,7 @@ export class MonitoringComponent implements OnInit, OnDestroy {
   }
 
   // 选择指标并打开记录模态框
-  selectMetricAndRecord(type: 'heartRate' | 'bloodPressure' | 'bloodOxygen'): void {
+  selectMetricAndRecord(type: 'heartRate' | 'bloodOxygen'): void {
     this.closeMetricSelectionModal();
     this.openRecordModal(type);
   }
@@ -648,11 +610,6 @@ export class MonitoringComponent implements OnInit, OnDestroy {
       return;
     }
 
-    if (this.recordForm.type === 'bloodPressure' && (!this.recordForm.diastolic || this.recordForm.diastolic <= 0)) {
-      alert('请输入有效的舒张压数值');
-      return;
-    }
-
     // 更新当前数据
     switch (this.recordForm.type) {
       case 'heartRate':
@@ -668,31 +625,6 @@ export class MonitoringComponent implements OnInit, OnDestroy {
           value: this.recordForm.value
         });
         break;
-      case 'bloodPressure':
-        this.bloodPressure = {
-          systolic: {
-            ...this.bloodPressure.systolic,
-            value: this.recordForm.value,
-            timestamp: this.recordForm.date,
-            status: this.calculateBloodPressureStatus(this.recordForm.value, 'systolic')
-          },
-          diastolic: {
-            ...this.bloodPressure.diastolic,
-            value: this.recordForm.diastolic || 0,
-            timestamp: this.recordForm.date,
-            status: this.calculateBloodPressureStatus(this.recordForm.diastolic || 0, 'diastolic')
-          }
-        };
-        // 添加到历史记录
-        this.bloodPressureHistory.systolic.push({
-          date: new Date(this.recordForm.date),
-          value: this.recordForm.value
-        });
-        this.bloodPressureHistory.diastolic.push({
-          date: new Date(this.recordForm.date),
-          value: this.recordForm.diastolic || 0
-        });
-        break;
       case 'bloodOxygen':
         this.bloodOxygen = {
           ...this.bloodOxygen,
@@ -738,19 +670,6 @@ export class MonitoringComponent implements OnInit, OnDestroy {
     return 'danger';
   }
 
-  // 计算血压状态
-  calculateBloodPressureStatus(value: number, type: 'systolic' | 'diastolic'): 'normal' | 'warning' | 'danger' {
-    if (type === 'systolic') {
-      if (value < 120) return 'normal';
-      if (value < 140) return 'warning';
-      return 'danger';
-    } else {
-      if (value < 80) return 'normal';
-      if (value < 90) return 'warning';
-      return 'danger';
-    }
-  }
-
   // 计算血氧状态
   calculateBloodOxygenStatus(value: number): 'normal' | 'warning' | 'danger' {
     if (value >= 95) return 'normal';
@@ -819,17 +738,11 @@ export class MonitoringComponent implements OnInit, OnDestroy {
         } else {
           return '心率异常,建议尽快就医检查,并避免剧烈运动。';
         }
-      case 'bloodPressure':
-        const systolicStatus = this.bloodPressure.systolic.status;
-        const diastolicStatus = this.bloodPressure.diastolic.status;
-        
-        if (systolicStatus === 'normal' && diastolicStatus === 'normal') {
-          return '血压控制良好,建议减少盐的摄入,保持适量运动。';
-        } else if (systolicStatus === 'warning' || diastolicStatus === 'warning') {
-          return '血压略偏高,建议减少盐分摄入,增加运动,定期监测。';
-        } else {
-          return '血压明显偏高,建议遵循医嘱,限制盐分,避免剧烈运动。';
+      case 'hrv':
+        if (this.recovery && this.recovery.ratio < 0.85) {
+          return 'HRV 低于近期均值,身体可能处于疲劳状态,建议低强度训练或休息。';
         }
+        return 'HRV 反映自主神经调节能力,保持规律作息和适度运动有助于提升 HRV。';
       case 'bloodOxygen':
         if (this.bloodOxygen.status === 'normal') {
           return '血氧饱和度正常,继续保持良好的生活习惯。';
@@ -855,12 +768,15 @@ export class MonitoringComponent implements OnInit, OnDestroy {
     report += `- 状态: ${this.getStatusText(this.heartRate.status)}\n`;
     report += `- 趋势: ${this.getTrendText(this.heartRate.trend)}\n\n`;
     
-    // 血压评估
-    report += `### 血压状况\n`;
-    report += `- 当前值: ${this.bloodPressure.systolic.value}/${this.bloodPressure.diastolic.value} ${this.bloodPressure.systolic.unit}\n`;
-    report += `- 状态: ${this.getStatusText(this.bloodPressure.systolic.status)}\n`;
-    report += `- 趋势: ${this.getTrendText(this.bloodPressure.systolic.trend)}\n\n`;
-    
+    // HRV 评估
+    report += `### HRV 状况\n`;
+    report += `- 当前值: ${this.hrv.value} ${this.hrv.unit}\n`;
+    if (this.recovery) {
+      report += `- 30天均值: ${this.recovery.baseline} ${this.hrv.unit}\n`;
+      report += `- 恢复比值: ${this.recovery.ratio}\n`;
+    }
+    report += `- 趋势: ${this.getTrendText(this.hrv.trend)}\n\n`;
+
     // 血氧评估
     report += `### 血氧状况\n`;
     report += `- 当前值: ${this.bloodOxygen.value} ${this.bloodOxygen.unit}\n`;
@@ -873,11 +789,7 @@ export class MonitoringComponent implements OnInit, OnDestroy {
     report += `- 饮食清淡,减少盐分和脂肪摄入\n`;
     report += `- 保证充足睡眠,避免熬夜\n`;
     report += `- 保持良好心态,避免长期精神压力\n`;
-    
-    if (this.bloodPressure.systolic.status !== 'normal' || this.bloodPressure.diastolic.status !== 'normal') {
-      report += `- 建议每日测量血压并记录,如有异常及时就医\n`;
-    }
-    
+
     return report;
   }