@extends('layouts.azpet.base') @section('title', 'Repositorio do Pet') @section('subtitle', 'Arquivos, exames, imagens, prescricoes e relatorios por pet') @push('page_styles') @vite([ 'resources/css/pages/exames/style.css', 'resources/css/pages/exames/responsive.css' ]) @endpush @section('content') @php $defaultCategories = $categoryOptions['defaults'] ?? []; $customCategories = $categoryOptions['custom'] ?? collect(); $customLimit = $categoryOptions['custom_limit'] ?? 4; $rootUrl = $selectedPet ? route('web.exames.index', ['pet_code' => $selectedPet->id_azpet_code, 'status' => $status]) : route('web.exames.index'); $currentFolderUrl = $selectedPet ? route('web.exames.index', array_filter(['pet_code' => $selectedPet->id_azpet_code, 'folder' => $currentFolder?->id, 'status' => $status])) : route('web.exames.index'); $premiumEligible = (bool) data_get($premiumStats, 'eligible', false); $latestPremiumReport = data_get($premiumStats, 'latest_report'); @endphp
Escolha o pet primeiro
Selecione o ID.AZPET acima para abrir o repositorio correto e evitar confusao.
As pastas nascem da categoria
Basta escolher a categoria do arquivo e o sistema organiza a pasta automaticamente.
Envie varios arquivos de uma vez
Use um unico envio para guardar exames, fotos e receitas do mesmo momento clinico.
Relatorio premium
Com pelo menos 2 registros o sistema libera o Health Memory com OCR e IA.
Aprovacao do laboratorio
Itens do laboratorio ficam pendentes ate a clinica aprovar. O tutor so ve o que ja foi validado.
Selecionar repositorio
Limpar
@if ($selectedPet) Drive de {{ $selectedPet->nome }} @else Itens recentes @endif @if ($selectedPet) {{ $selectedPet->id_azpet_code }} @endif
@if ($selectedPet)
Raiz @foreach ($folderBreadcrumbs as $folder) / @if ($loop->last) {{ $folder->name }} @else {{ $folder->name }} @endif @endforeach
@if ($currentFolder?->parent_id) Voltar @elseif ($currentFolder) Voltar @endif
As pastas sao criadas automaticamente com o nome da categoria escolhida no upload.
@if ($premiumStats)
AZPET Health Memory Premium
@if ($premiumEligible) {{ $selectedPet->nome }} ja tem base suficiente para o relatorio premium. @else Envie pelo menos 2 registros para liberar o relatorio premium. @endif
{{ data_get($premiumStats, 'repository_count', 0) }} arquivo(s)/registro(s) no repositorio. {{ data_get($premiumStats, 'clinical_documents_count', 0) }} documento(s) sincronizado(s) no Health Memory. {{ data_get($premiumStats, 'review_required_count', 0) }} documento(s) aguardando revisao por baixa confianca.
@if ($premiumEligible)
@csrf
@if (auth()->user()?->isSuperAdmin() || auth()->user()?->isClinicaVeterinario()) Abrir Clinical Report @endif @endif @php $latestPremiumVariant = $latestPremiumReport ? ($latestPremiumReport->report_variant ?? data_get($latestPremiumReport->dados_snapshot, 'report_variant')) : null; @endphp @if ($latestPremiumReport && $latestPremiumVariant === 'health_memory') Baixar ultimo premium @elseif ($latestPremiumReport?->arquivo_pdf) Baixar ultimo premium @endif
O fluxo le PDFs/imagens via OCR, estrutura dados com IA quando houver chave configurada e gera o PDF a partir do banco.
@endif @if ($folders->isNotEmpty()) @else
Nenhuma pasta de categoria aqui ainda. Envie arquivos e a pasta da categoria sera criada automaticamente.
@endif @else
Selecione um pet acima para navegar pelas pastas de categoria e organizar os arquivos como um drive.
@endif
@forelse ($exames as $exame) @empty @endforelse
Pet Arquivo Pasta Categoria Contexto e origem Observacoes Status Acoes
@if ($exame->pet?->photo_url) Pet @endif
{{ $exame->pet?->id_azpet_code }}
{{ $exame->pet?->nome }}
FILE {{ $exame->display_title }} {{ optional($exame->exam_date)->format('d/m/Y') }} @if ($exame->original_file_name) {{ $exame->original_file_name }} @endif @if ($exame->formatted_file_size) {{ $exame->formatted_file_size }} @if($exame->file_mime_type) | {{ $exame->file_mime_type }} @endif @endif
{{ $exame->folder?->name ?? 'Raiz' }} {{ $exame->category_label }} {{ $exame->clinical_context }}
{{ min($exame->confidence, 99) }}%
{{ $exame->submission_source_label }}
@if ($exame->laboratorio?->nome_fantasia)
Lab: {{ $exame->laboratorio->nome_fantasia }}
@endif
{{ $exame->notes ?: '-' }}
{{ $exame->is_active ? 'Ativo' : 'Inativo' }}
{{ $exame->processing_status }}
{{ $exame->approval_label }}
@if ($exame->exam_file_path) @php $mime = (string) $exame->file_mime_type; $previewType = str_starts_with($mime, 'image/') ? 'image' : (str_contains($mime, 'pdf') ? 'pdf' : 'other'); @endphp Ver Baixar @endif @if ($exame->isApproved() && $exame->relatorio?->pdf_file_path) PDF @endif @if ($exame->isApproved())
@csrf
@else Aguardando aprovacao da clinica @endif @if($exame->pet) Historico @endif @if (auth()->user()?->isSuperAdmin())
@csrf @method('PATCH')
@endif
Nenhum arquivo neste local.
@if ($exames->hasPages())
@if ($exames->previousPageUrl()) Anterior @endif @if ($exames->nextPageUrl()) Proxima @endif
@endif
Enviar arquivos Categorias: {{ $customCategories->count() }}/{{ $customLimit }}
@if ($repositoryReadOnly ?? false)
Este repositorio esta aberto em modo somente consulta para o seu perfil. Os arquivos continuam acessiveis, mas novos envios ficam com o tutor atual ou com a clinica responsavel.
@else
@csrf @if ($selectedPet)
@else
@endif
Selecione varios arquivos de uma vez. Limite de 20 MB por arquivo.
@endif
@if ($selectedPet && $premiumEligible)
Relatorio premium disponivel

Gerar AZPET Health Memory™ de {{ $selectedPet->nome }}

Encontramos {{ data_get($premiumStats, 'repository_count', 0) }} registros no repositorio. O sistema pode processar todos os PDFs/imagens, organizar a linha da vida e baixar o relatorio premium.

{{ data_get($premiumStats, 'repository_count', 0) }} registros no Drive
OCR + IA leitura e organizacao
PDF download premium

A AZPET nao diagnostica. O relatorio descreve dados longitudinais e reforca que decisoes clinicas sao do medico veterinario.

@csrf
@if ($latestPremiumReport && $latestPremiumVariant === 'health_memory') Baixar ultimo gerado @elseif ($latestPremiumReport?->arquivo_pdf) Baixar ultimo gerado @endif
@endif @endsection