Przejdź do głównej zawartości

PDF Analysis

Na tej stronie

PDF Analysis umożliwia analizę dokumentów medycznych (wyniki badań, zdjęcia RTG, dokumenty zewnętrzne) przez AI z ekstrakcją kluczowych informacji.


flowchart TB
subgraph Input["Document Input"]
PDF[PDF Upload]
Image[Image Upload]
Scan[Camera Scan]
end
subgraph Processing["Processing"]
Extract[Extract Content]
OCR[OCR if needed]
AI[unified_ai_analyze_document]
end
subgraph Output["Analysis Output"]
Summary[Document Summary]
KeyValues[Key Values]
Suggestions[Clinical Suggestions]
end
Input --> Extract
Extract --> OCR
OCR --> AI
AI --> Summary
AI --> KeyValues
AI --> Suggestions

TypeExamplesProcessing
Lab ResultsMorfologia, biochemiaExtract values, flag abnormals
ImagingRTG, USG descriptionsSummarize findings
External RecordsInne klinikiExtract history
PrescriptionsReceptyList medications
CertificatesKsiążeczka zdrowiaExtract vaccination dates

// UnifiedAIClient.analyzeDocument
const result = await UnifiedAIClient.analyzeDocument(
documentContent, // string | ArrayBuffer
documentType, // 'pdf' | 'image' | 'text'
analysisPrompt // Custom analysis instructions
);
// Backend command
// unified_ai_analyze_document

sequenceDiagram
participant User
participant UI as Document Viewer
participant Client as UnifiedAIClient
participant BE as Backend
participant Vision as Vision LLM
User->>UI: Upload PDF
UI->>UI: Extract pages
alt PDF with text
UI->>UI: Extract text content
else PDF with images
UI->>UI: Convert to images
end
UI->>Client: analyzeDocument(content, type, prompt)
Client->>BE: unified_ai_analyze_document
BE->>Vision: Analyze with Vision LLM
Vision-->>BE: Analysis result
BE-->>Client: AnalysisResult
Client-->>UI: Display results

Analizujesz wyniki badań laboratoryjnych pacjenta weterynaryjnego.
Wypisz:
1. Wartości poza normą (z wartościami referencyjnymi)
2. Możliwe przyczyny nieprawidłowości
3. Sugerowane dalsze badania
Analizujesz opis badania obrazowego.
Podsumuj:
1. Główne zmiany patologiczne
2. Diagnoza różnicowa
3. Zalecenia dalszej diagnostyki
Analizujesz dokumentację z innej kliniki.
Wyciągnij:
1. Historia choroby
2. Poprzednie diagnozy
3. Zastosowane leczenie
4. Szczepienia i profilaktyka

interface AnalysisResult {
summary: string; // Krótkie podsumowanie
keyFindings: Finding[]; // Główne odkrycia
abnormalValues?: LabValue[]; // Nieprawidłowe wartości
suggestions?: string[]; // Sugestie kliniczne
confidence: number; // 0-1
warnings?: string[]; // Ostrzeżenia
}
interface LabValue {
name: string;
value: string;
unit: string;
reference: string;
status: 'low' | 'normal' | 'high' | 'critical';
}

┌─────────────────────────────────────────────┐
│ 📄 Wyniki badań - morfologia.pdf │
├─────────────────────────────────────────────┤
│ │
│ Podsumowanie │
│ Morfologia krwi z odchyleniami: │
│ leukocytoza, niedokrwistość łagodna │
│ │
│ Wartości poza normą: │
│ • WBC: 18.5 (ref: 6-12) ↑ HIGH │
│ • RBC: 4.2 (ref: 5.5-8.5) ↓ LOW │
│ • HGB: 10.1 (ref: 12-18) ↓ LOW │
│ │
│ Sugestie: │
│ • Rozważyć infekcję bakteryjną │
│ • Kontrola żelaza i ferrytyny │
│ • Powtórna morfologia za 7 dni │
│ │
├─────────────────────────────────────────────┤
│ [Add to Visit Notes] [Save to Patient] │
└─────────────────────────────────────────────┘

// Attach analysis to visit
const attachAnalysis = async (visitId: string, analysis: AnalysisResult) => {
await visitApi.update(visitId, {
attachments: JSON.stringify([
...existingAttachments,
{
type: 'document_analysis',
data: {
documentName: file.name,
analysis: analysis,
analyzedAt: new Date().toISOString(),
},
timestamp: Date.now(),
}
]),
});
};


try {
const result = await analyzeDocument(content, type, prompt);
} catch (error) {
if (error.code === 'FILE_TOO_LARGE') {
showError('Plik jest zbyt duży (max 10MB)');
} else if (error.code === 'UNSUPPORTED_FORMAT') {
showError('Nieobsługiwany format pliku');
} else if (error.code === 'OCR_FAILED') {
showError('Nie udało się odczytać tekstu z dokumentu');
} else {
showError('Błąd analizy dokumentu');
}
}