Skip to content

Diagrama de Casos de Uso

Lucas Christian edited this page Jun 4, 2026 · 4 revisions
flowchart LR

    %% =========================
    %% Atores
    %% =========================
    U["Usuário Comum"]:::actor
    M["Médico"]:::actor
    REC["Recepcionista"]:::actor
    ADM["Administrador"]:::actor
    KC["Keycloak"]:::external

    %% =========================
    %% Sistema
    %% =========================
        direction TB

        %% Comum
        UC0(["Autenticar no Sistema"]):::usecase
        UC27(["Autorizar Acesso<br/>por Permissões Funcionais"]):::usecase
        UC28(["Auditar Alterações<br/>com Hibernate Envers"]):::usecase

        %% Usuário comum
        UC1(["Consultar Especialidades<br/>e Médicos Disponíveis"]):::usecase
        UC2(["Agendar Consulta Presencial"]):::usecase
        UC3(["Gerir Próprias Consultas<br/>(Cancelar/Reagendar)"]):::usecase
        UC4(["Consultar Próximas Consultas<br/>e Histórico"]):::usecase
        UC5(["Visualizar Status da Consulta"]):::usecase
        UC6(["Acessar Anexos da Consulta"]):::usecase

        %% Médico
        UC7(["Visualizar Própria Agenda<br/>e Fila de Atendimento"]):::usecase
        UC8(["Gerir Bloqueios<br/>da Própria Agenda"]):::usecase
        UC9(["Realizar Atendimento Clínico"]):::usecase
        UC10(["Registrar Atendimento"]):::usecase
        UC11(["Consultar Histórico do Usuário Atendido"]):::usecase
        UC12(["Finalizar Atendimento"]):::usecase

        %% Recepcionista
        UC13(["Cadastrar Usuário Comum<br/>e Liberar Acesso"]):::usecase
        UC14(["Registrar Check-in"]):::usecase
        UC15(["Gerir Status da Consulta"]):::usecase
        UC16(["Reagendar ou Cancelar Consulta"]):::usecase
        UC17(["Anexar Arquivos à Consulta"]):::usecase
        UC18(["Acompanhar Fila de Atendimento"]):::usecase

        %% Administrador
        UC19(["Gerir Organização"]):::usecase
        UC20(["Gerir Unidades<br/>e Consultórios"]):::usecase
        UC21(["Gerir Usuários<br/>e Papéis de Acesso"]):::usecase
        UC22(["Gerir Médicos<br/>e Especialidades"]):::usecase
        UC23(["Definir Alocação de Médicos"]):::usecase
        UC24(["Configurar Agenda Médica"]):::usecase
        UC25(["Cadastrar Bloqueios de Agenda"]):::usecase
        UC26(["Consultar Relatórios Administrativos"]):::usecase

        %% =========================
        %% Relações include/extend
        %% =========================

        UC0 -.->|include| UC27

        UC2 -.->|include| UC1
        UC2 -.->|include| UC24
        UC3 -.->|extend| UC2

        UC9 -.->|include| UC10
        UC9 -.->|include| UC11
        UC12 -.->|extend| UC9

        UC14 -.->|include| UC15
        UC16 -.->|extend| UC15

        UC24 -.->|include| UC23
        UC25 -.->|extend| UC24

        UC13 -.->|include| UC0
        UC21 -.->|include| UC0

        UC10 -.->|include| UC28
        UC15 -.->|include| UC28
        UC17 -.->|include| UC28
        UC21 -.->|include| UC28
        UC24 -.->|include| UC28


    U --> UC0
    U --> UC1
    U --> UC2
    U --> UC3
    U --> UC4
    U --> UC5
    U --> UC6

    M --> UC0
    M --> UC7
    M --> UC8
    M --> UC9
    M --> UC11
    M --> UC12

    REC --> UC0
    REC --> UC13
    REC --> UC14
    REC --> UC15
    REC --> UC16
    REC --> UC17
    REC --> UC18

    ADM --> UC0
    ADM --> UC19
    ADM --> UC20
    ADM --> UC21
    ADM --> UC22
    ADM --> UC23
    ADM --> UC24
    ADM --> UC25
    ADM --> UC26

    KC --> UC0
    KC --> UC27
Loading

Clone this wiki locally