# aliou-8/vitalitygn architecture

> Architecture diagram of the GitHub repository aliou-8/vitalitygn, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aliou-8/vitalitygn
- Repository: https://github.com/aliou-8/vitalitygn

## Overview

VitalityGN is a Laravel hospital and establishment-management application. Staff use the establishment portal for patient admission and follow-on care, including consultation, triage, laboratory exams, billing, and care plans; administrators manage personnel and establishments and produce reports. The portal controller and several service relationships are evidenced in the supplied excerpts and source index; other domain capabilities are represented from the file tree, so their internal links are omitted rather than inferred.

Main entry points: [`app/Http/Controllers/Portail/EtablissementPortailController.php`](https://github.com/aliou-8/vitalitygn/blob/main/app/Http/Controllers/Portail/EtablissementPortailController.php) (Portal controller), [`app/Services/Portail/PortailAdmissionService.php`](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailAdmissionService.php) (Admission), [`app/Services/Portail/PortailEtablissementContextService.php`](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailEtablissementContextService.php) (Establishment context), [`app/Services/core_etablissements/CoreEtablissementsService.php`](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/core_etablissements/CoreEtablissementsService.php) (Establishment management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portal["Establishment portal"]
  node_portal_controller["Portal controller"]
  node_portal_context["Establishment context"]
  node_personnel["Portal personnel"]
end

subgraph group_care["Clinical operations"]
  node_admission["Admission"]
  node_consultation["Consultation"]
  node_triage["Triage and orientation"]
  node_lab["Laboratory exams"]
  node_patient_record["Patient dossier"]
  node_billing["Billing"]
  node_care_plan["Care plan"]
  node_patients["Patient records<br/>[CorePatients.php]"]
  node_stays["Hospital stays"]
end

subgraph group_admin["Administration"]
  node_admin_user["Personnel administration"]
  node_establishment["Establishment management"]
  node_dashboard["Dashboard data"]
  node_resources["Establishment resources"]
  node_reports["Reports"]
end

subgraph group_internal["Application layers"]
  node_crud["Generic CRUD"]
  node_gen_service["Generic service<br/>[GenService.php]"]
  node_gen_repository["Generic repository<br/>[GenRepository.php]"]
  node_database[("Application database")]
end

node_staff(("Hospital staff"))

node_staff -.->|"uses portal"| node_portal_controller
node_portal_controller -->|"resolves context"| node_portal_context
node_portal_controller -->|"records admission"| node_admission
node_portal_controller -->|"handles consultation"| node_consultation
node_portal_controller -->|"handles triage"| node_triage
node_portal_controller -->|"handles exams"| node_lab
node_portal_controller -->|"serves dossiers"| node_patient_record
node_portal_controller -->|"handles billing"| node_billing
node_portal_controller -->|"serves care plans"| node_care_plan
node_portal_controller -->|"manages personnel"| node_personnel
node_portal_context -->|"gets establishment"| node_admission
node_portal_context -->|"looks up facility"| node_establishment
node_admission -->|"uses resources"| node_resources
node_admission -->|"creates patient"| node_patients
node_admission -->|"creates stay"| node_stays
node_reports -->|"uses dashboard data"| node_dashboard
node_reports -->|"lists establishments"| node_establishment
node_admin_user -->|"loads establishments"| node_establishment
node_crud -->|"delegates CRUD"| node_gen_service
node_gen_service -->|"delegates persistence"| node_gen_repository
node_gen_repository -.->|"queries data"| node_database

click node_portal_controller "https://github.com/aliou-8/vitalitygn/blob/main/app/Http/Controllers/Portail/EtablissementPortailController.php"
click node_portal_context "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailEtablissementContextService.php"
click node_admission "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailAdmissionService.php"
click node_consultation "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailConsultationService.php"
click node_triage "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailOrientationTriageService.php"
click node_lab "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailExamensLaboService.php"
click node_patient_record "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailPatientDossierService.php"
click node_billing "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailFacturationService.php"
click node_care_plan "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailPlanSoinService.php"
click node_personnel "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailPersonnelService.php"
click node_patients "https://github.com/aliou-8/vitalitygn/blob/main/app/Models/core_patients/CorePatients.php"
click node_stays "https://github.com/aliou-8/vitalitygn/blob/main/app/Models/hospitalisation_sejours/HospitalisationSejours.php"
click node_admin_user "https://github.com/aliou-8/vitalitygn/blob/main/app/Http/Controllers/core_utilisateurs/CoreUtilisateursController.php"
click node_establishment "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/core_etablissements/CoreEtablissementsService.php"
click node_dashboard "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/DashboardDataService.php"
click node_resources "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/RessourcesEtablissementDataService.php"
click node_reports "https://github.com/aliou-8/vitalitygn/blob/main/app/Http/Controllers/Admin/ReportsController.php"
click node_crud "https://github.com/aliou-8/vitalitygn/blob/main/app/Http/Controllers/GenCrudController.php"
click node_gen_service "https://github.com/aliou-8/vitalitygn/blob/main/app/Services/GenService.php"
click node_gen_repository "https://github.com/aliou-8/vitalitygn/blob/main/app/Repositories/GenRepository.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_portal_controller,node_portal_context,node_personnel toneBlue
class node_admission,node_consultation,node_triage,node_lab,node_patient_record,node_billing,node_care_plan,node_patients,node_stays toneAmber
class node_admin_user,node_establishment,node_dashboard,node_resources,node_reports toneMint
class node_crud,node_gen_service,node_gen_repository,node_database toneRose
class node_staff toneIndigo
```

## Components

### Establishment portal

- [Portal controller](https://github.com/aliou-8/vitalitygn/blob/main/app/Http/Controllers/Portail/EtablissementPortailController.php): `app/Http/Controllers/Portail/EtablissementPortailController.php`
- [Establishment context](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailEtablissementContextService.php): `app/Services/Portail/PortailEtablissementContextService.php`
- [Portal personnel](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailPersonnelService.php): `app/Services/Portail/PortailPersonnelService.php`

### Clinical operations

- [Admission](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailAdmissionService.php): `app/Services/Portail/PortailAdmissionService.php`
- [Consultation](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailConsultationService.php): `app/Services/Portail/PortailConsultationService.php`
- [Triage and orientation](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailOrientationTriageService.php): `app/Services/Portail/PortailOrientationTriageService.php`
- [Laboratory exams](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailExamensLaboService.php): `app/Services/Portail/PortailExamensLaboService.php`
- [Patient dossier](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailPatientDossierService.php): `app/Services/Portail/PortailPatientDossierService.php`
- [Billing](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailFacturationService.php): `app/Services/Portail/PortailFacturationService.php`
- [Care plan](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/Portail/PortailPlanSoinService.php): `app/Services/Portail/PortailPlanSoinService.php`
- [Patient records](https://github.com/aliou-8/vitalitygn/blob/main/app/Models/core_patients/CorePatients.php): `app/Models/core_patients/CorePatients.php`
- [Hospital stays](https://github.com/aliou-8/vitalitygn/blob/main/app/Models/hospitalisation_sejours/HospitalisationSejours.php): `app/Models/hospitalisation_sejours/HospitalisationSejours.php`

### Administration

- [Personnel administration](https://github.com/aliou-8/vitalitygn/blob/main/app/Http/Controllers/core_utilisateurs/CoreUtilisateursController.php): `app/Http/Controllers/core_utilisateurs/CoreUtilisateursController.php`
- [Establishment management](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/core_etablissements/CoreEtablissementsService.php): `app/Services/core_etablissements/CoreEtablissementsService.php`
- [Dashboard data](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/DashboardDataService.php): `app/Services/DashboardDataService.php`
- [Establishment resources](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/RessourcesEtablissementDataService.php): `app/Services/RessourcesEtablissementDataService.php`
- [Reports](https://github.com/aliou-8/vitalitygn/blob/main/app/Http/Controllers/Admin/ReportsController.php): `app/Http/Controllers/Admin/ReportsController.php`

### Application layers

- [Generic CRUD](https://github.com/aliou-8/vitalitygn/blob/main/app/Http/Controllers/GenCrudController.php): `app/Http/Controllers/GenCrudController.php`
- [Generic service](https://github.com/aliou-8/vitalitygn/blob/main/app/Services/GenService.php): `app/Services/GenService.php`
- [Generic repository](https://github.com/aliou-8/vitalitygn/blob/main/app/Repositories/GenRepository.php): `app/Repositories/GenRepository.php`
- **Application database**

### Other components

- **Hospital staff**

## Connections

- Hospital staff → Portal controller: uses portal
- Portal controller → Establishment context: resolves context (evidence: `app/Http/Controllers/Portail/EtablissementPortailController.php`)
- Portal controller → Admission: records admission (evidence: `app/Http/Controllers/Portail/EtablissementPortailController.php`)
- Portal controller → Consultation: handles consultation (evidence: `app/Http/Controllers/Portail/EtablissementPortailController.php`)
- Portal controller → Triage and orientation: handles triage (evidence: `app/Http/Controllers/Portail/EtablissementPortailController.php`)
- Portal controller → Laboratory exams: handles exams (evidence: `app/Http/Controllers/Portail/EtablissementPortailController.php`)
- Portal controller → Patient dossier: serves dossiers (evidence: `app/Http/Controllers/Portail/EtablissementPortailController.php`)
- Portal controller → Billing: handles billing (evidence: `app/Http/Controllers/Portail/EtablissementPortailController.php`)
- Portal controller → Care plan: serves care plans (evidence: `app/Http/Controllers/Portail/EtablissementPortailController.php`)
- Portal controller → Portal personnel: manages personnel (evidence: `app/Http/Controllers/Portail/EtablissementPortailController.php`)
- Establishment context → Admission: gets establishment (evidence: `app/Services/Portail/PortailEtablissementContextService.php`)
- Establishment context → Establishment management: looks up facility (evidence: `app/Services/Portail/PortailEtablissementContextService.php`)
- Admission → Establishment resources: uses resources (evidence: `app/Services/Portail/PortailAdmissionService.php`)
- Admission → Patient records: creates patient (evidence: `app/Services/Portail/PortailAdmissionService.php`)
- Admission → Hospital stays: creates stay (evidence: `app/Services/Portail/PortailAdmissionService.php`)
- Reports → Dashboard data: uses dashboard data (evidence: `app/Http/Controllers/Admin/ReportsController.php`)
- Reports → Establishment management: lists establishments (evidence: `app/Http/Controllers/Admin/ReportsController.php`)
- Personnel administration → Establishment management: loads establishments (evidence: `app/Http/Controllers/core_utilisateurs/CoreUtilisateursController.php`)
- Generic CRUD → Generic service: delegates CRUD (evidence: `app/Http/Controllers/GenCrudController.php`)
- Generic service → Generic repository: delegates persistence (evidence: `app/Services/GenService.php`)
- Generic repository → Application database: queries data
