Images - Marlon-Souza16/Redes-Neurais-e-Proteomica GitHub Wiki

Diagrama de Contexto do Sistema

%% C4 – Nível 1  |  Breast‑Cancer Proteomics AI Platform

%%{init: {
  "theme": "neutral",
  "themeVariables": {
    "background": "#ffffff"
  },
  "flowchart": {
    "nodeSpacing": 35,
    "rankSpacing": 50
  }
}}%%
flowchart LR
    %% ─────── Atores ───────
    med(("Médico"))

    %% ─────── Sistema em construção ───────
    subgraph AIPlatform["Onco AI<br/>"]
        style AIPlatform fill:#cce5ff,stroke:#2978b5,stroke-width:2px
        core["Plataforma de análise de exames, suporte a Diagnóstico,<br/>Prognóstico e caminhos Terapeuticos"]
    
        notif["Serviço que manda E‑mail para médicos informando situações de alto risco<br/>"]
        style notif fill:#e0e0e0,stroke:#666,stroke-width:1px
    end

    %% ─────── Relacionamentos ───────
    med  -- "Usa via HTTPS (insere dados, visualiza relatórios)" --> core
    core -- "Alerta de alto risco (e‑mail)"              --> notif
    
Loading

Diagrama de Contêineres do Sistema

%%{init: {
  "theme": "neutral",
  "themeVariables": {
    "background": "#ffffff"
  },
  "flowchart": {
    "nodeSpacing": 35,
    "rankSpacing": 50
  }
}}%%
flowchart LR
    %% ─────────── Legend classes ───────────
    classDef personStyle fill:#0d3d77,color:#fff;
    classDef newContainer fill:#cce5ff,stroke:#2978b5,stroke-width:2px,color:#000;
    classDef databaseStyle fill:#cce5ff,stroke:#2978b5,stroke-width:2px,color:#000,stroke-dasharray: 5 5;
    classDef externalStyle fill:#e0e0e0,stroke:#666,stroke-width:1px,color:#000;

    
    %% ─────────── Atores ───────────
    med(["Médico"]):::personStyle

    %% ─────────── Boundary do sistema ───────────
    subgraph OncoAI ["Onco AI (Software System)"]
        direction TB
        webUI["Web Browser SPA<br/>(React)"]:::newContainer
        api["Backend API Gateway<br/>(FastAPI)"]:::newContainer
        aiCore["AI Engine<br/>(Explainable AI)"]:::newContainer
        graphDB[(Graph DB – Neo4j<br/>Clínica · Médico · Paciente · Exame)]:::databaseStyle
        vectorDB[(Vector DB – Weaviate<br/>Exam Embeddings ↔ idPaciente)]:::databaseStyle
    end
    style OncoAI stroke:#2978b5,stroke-width:2px,stroke-dasharray:3 3,fill:none

    %% ─────────── Sistemas externos ───────────
    auth["Serviço de Autenticação<br/>(Keycloak / OAuth2)"]:::externalStyle

    %% ─────────── Relacionamentos ───────────
    med -- "HTTPS" --> webUI
    webUI -- "REST/JSON" <--> api
    api -- "HTTP" <--> aiCore
    api -- "Bolt" <--> graphDB
    api -- "Read/Write/Delete" --> vectorDB
    aiCore -- "Bolt" <--> graphDB
    aiCore -- "Similarity search" <--> vectorDB
    api -- "JWT introspection" <--> auth
Loading

Diagrama de componentes do Sistema

c4_components

Diagrama de Casos de Uso:

use_cases

Base de Dados:

erDiagram
    %% ------------- RELACIONAMENTOS -------------
    CLINICA      ||--o{ MEDICO        : possui
    MEDICO       |{--o{ PACIENTE      : atende
    PACIENTE     ||--o{ EXAME         : realiza
    EXAME        ||--|{ BASE_VETORIAL : "armazenado em"

    %% ------------- ENTIDADES -------------
    CLINICA {
        int       idClinica   PK
        string    nome
        datetime  dataCriacao
    }

    MEDICO {
        int       idMedico    PK
        string    nome
        string    CRM
        datetime  dataCriacao
    }

    PACIENTE {
        int       idPaciente  PK
        string    nome
        string    contato
        date      dataNasc
        datetime  dataCriacao
    }

    EXAME {
        int       idExame     PK
        datetime  dataCriacao
    }

    BASE_VETORIAL {
        int       idPaciente  FK
        int       idExame     FK
        date      dataExame
        blob      laudo
        datetime  dataCriacao
    }

Loading
⚠️ **GitHub.com Fallback** ⚠️