diff --git a/backend/src/document-processor/controllers/document-processor.controller.ts b/backend/src/document-processor/controllers/document-processor.controller.ts index e31f79dd..8c7e3f50 100644 --- a/backend/src/document-processor/controllers/document-processor.controller.ts +++ b/backend/src/document-processor/controllers/document-processor.controller.ts @@ -151,6 +151,9 @@ export class DocumentProcessorController { report.labValues = result.analysis.labValues || []; report.confidence = result.analysis.metadata.confidence || 0; + if (result.analysis.metadata.missingInformation) { + report.missingInformation = result.analysis.metadata.missingInformation; + } // Create summary from simplified explanation or diagnoses report.summary = result.simplifiedExplanation!; diff --git a/backend/src/reports/models/report.model.ts b/backend/src/reports/models/report.model.ts index 9fc327cb..3ac3373c 100644 --- a/backend/src/reports/models/report.model.ts +++ b/backend/src/reports/models/report.model.ts @@ -72,6 +72,9 @@ export class Report { @ApiProperty({ description: 'File size in bytes' }) fileSize: number; + @ApiProperty({ description: 'Missing information in the report' }) + missingInformation?: string[]; + @ApiProperty({ description: 'Creation timestamp' }) createdAt: string; diff --git a/frontend/src/common/components/Input/__tests__/SelectInput.test.tsx b/frontend/src/common/components/Input/__tests__/SelectInput.test.tsx index fe92c27f..582d6e9f 100644 --- a/frontend/src/common/components/Input/__tests__/SelectInput.test.tsx +++ b/frontend/src/common/components/Input/__tests__/SelectInput.test.tsx @@ -1,4 +1,4 @@ -import { describe, expect, it } from 'vitest'; +import { describe, expect, it, beforeAll, vi } from 'vitest'; import { IonSelectOption } from '@ionic/react'; import { Form, Formik } from 'formik'; import userEvent from '@testing-library/user-event'; @@ -7,6 +7,11 @@ import { render, screen, waitFor } from 'test/test-utils'; import SelectInput from '../SelectInput'; +// Mock scrollIntoView globally +beforeAll(() => { + Element.prototype.scrollIntoView = vi.fn(); +}); + describe('SelectInput', () => { it('should render successfully', async () => { // ARRANGE diff --git a/frontend/src/common/models/medicalReport.ts b/frontend/src/common/models/medicalReport.ts index 31f12e35..065968b5 100644 --- a/frontend/src/common/models/medicalReport.ts +++ b/frontend/src/common/models/medicalReport.ts @@ -39,15 +39,6 @@ export interface LabValue { suggestions: string; } -/** - * Interface for report metadata. - */ -export interface ReportMetadata { - isMedicalReport: boolean; - confidence: number; - missingInformation: string[]; -} - /** * Interface representing a medical report. */ @@ -64,10 +55,10 @@ export interface MedicalReport { filePath: string; originalFilename: string; fileSize: number; + missingInformation?: string[]; status: ReportStatus; errorMessage?: string; // Optional error message for the report isMedicalReport?: boolean; // Optional flag to indicate if the report is a medical report createdAt: string; // ISO date string updatedAt: string; // ISO date string - metadata?: ReportMetadata; // Optional metadata for the report } diff --git a/frontend/src/pages/Reports/components/AiAnalysisTab.tsx b/frontend/src/pages/Reports/components/AiAnalysisTab.tsx index 3668fd02..cc1b0d54 100644 --- a/frontend/src/pages/Reports/components/AiAnalysisTab.tsx +++ b/frontend/src/pages/Reports/components/AiAnalysisTab.tsx @@ -36,9 +36,11 @@ const AiAnalysisTab: React.FC = ({ const confidenceScore = reportData.confidence; const isLowConfidence = confidenceScore < 0.75; - + // Check if reference ranges are missing - const hasReferenceRangesMissing = reportData.metadata?.missingInformation?.includes('reference-ranges-missing'); + const hasReferenceRangesMissing = !!reportData.missingInformation?.includes( + 'reference-ranges-missing', + ); return (
@@ -47,7 +49,7 @@ const AiAnalysisTab: React.FC = ({ {/* Low confidence notice */} {isLowConfidence && } - + {/* Missing reference ranges notice */} {hasReferenceRangesMissing && } diff --git a/frontend/src/pages/Reports/components/EmergencyAlert.tsx b/frontend/src/pages/Reports/components/EmergencyAlert.tsx index 56dae4c7..1c63ce20 100644 --- a/frontend/src/pages/Reports/components/EmergencyAlert.tsx +++ b/frontend/src/pages/Reports/components/EmergencyAlert.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; +import redAlertIcon from 'assets/icons/red-alert.svg'; const EmergencyAlert: React.FC = () => { const { t } = useTranslation(); @@ -7,35 +8,7 @@ const EmergencyAlert: React.FC = () => { return (
- - - - - + Emergency Alert

{t('report.emergency.message', { ns: 'reportDetail' })}