Images - Marlon-Souza16/Redes-Neurais-e-Proteomica GitHub Wiki
%% 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
%%{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
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
}