# atomo-tecnologias/sisgec architecture

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

- Interactive diagram: https://gitdiagram.com/atomo-tecnologias/sisgec
- Repository: https://github.com/atomo-tecnologias/sisgec

## Overview

SISGEC is a Laravel-based clinical-record manager for small medical practices. Its central workflow is maintaining a patient record and initial clinical history, then recording follow-up visits, measurements, studies, and prescriptions; appointments and doctor/assistant accounts support practice operations. The sampled patient controller shows creation and update of the nested history and PDF generation. Other capabilities are represented from the README and source index; their detailed routing and behavior were not sampled, so uncertain connections are omitted.

Main entry points: [`app/Http/Controllers/PatientController.php`](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/PatientController.php) (Patient management), [`app/Patient.php`](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Patient.php) (Patient), [`app/InitialClinicalHistory.php`](https://github.com/atomo-tecnologias/sisgec/blob/master/app/InitialClinicalHistory.php) (Initial history), [`app/Http/Controllers/TracingController.php`](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/TracingController.php) (Visit tracing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_records["Patient records"]
  node_patients["Patient management"]
  node_patient["Patient<br/>[Patient.php]"]
end

subgraph group_clinical["Clinical documentation"]
  node_history["Initial history"]
  node_anamnesis["Anamnesis<br/>[Anamnesis.php]"]
  node_nonpath["Non-pathological history"]
  node_pathpersonal["Personal pathology"]
  node_gyneco["Gynecological history"]
  node_physical["Physical examination"]
  node_neuro["Neurological examination"]
  node_orientation["Orientation<br/>[Orientation.php]"]
  node_cognitive["Cognitive functions"]
  node_measure["Measurements<br/>[Measure.php]"]
  node_study["Studies<br/>[Study.php]"]
  node_pdf["Clinical PDFs"]
end

subgraph group_practice["Practice operations"]
  node_appointments["Appointments"]
  node_appointmentdata["Appointment records"]
  node_tracing["Visit tracing"]
  node_tracingdata["Tracing records<br/>[Tracing.php]"]
  node_prescriptions["Prescriptions"]
  node_prescriptiondata["Prescription records<br/>[Prescription.php]"]
end

subgraph group_platform["Web application"]
  node_accounts["User accounts<br/>[User.php]"]
  node_login["Authentication"]
  node_registration["Registration"]
  node_settings["Practice settings<br/>[Settings.php]"]
  node_database[("Configured database<br/>[database.php]")]
end

node_doctor(("Doctor or assistant"))

node_doctor -.->|"manages patients"| node_patients
node_patients -->|"creates and updates"| node_patient
node_patients -->|"creates and updates"| node_history
node_patients -->|"creates and updates"| node_anamnesis
node_patients -->|"updates"| node_nonpath
node_patients -->|"updates"| node_pathpersonal
node_patients -->|"updates"| node_gyneco
node_patients -->|"creates history"| node_physical
node_patients -->|"creates and updates"| node_neuro
node_patients -->|"creates and updates"| node_orientation
node_patients -->|"creates and updates"| node_cognitive
node_patients -->|"attaches studies"| node_study
node_history -->|"has one"| node_anamnesis
node_anamnesis -->|"has one"| node_nonpath
node_anamnesis -->|"has one"| node_pathpersonal
node_anamnesis -->|"has one"| node_gyneco
node_history -->|"has one"| node_physical
node_physical -->|"has one"| node_neuro
node_neuro -->|"has one"| node_orientation
node_neuro -->|"has one"| node_cognitive
node_patient -->|"has one"| node_history
node_patient -->|"has one"| node_measure
node_patient -->|"has many"| node_appointmentdata
node_history -->|"has many"| node_study
node_patients -->|"renders PDF"| node_pdf
node_tracing -->|"reads and writes"| node_tracingdata
node_tracing -->|"loads patient"| node_patient
node_tracing -->|"uses measurements"| node_measure
node_tracing -->|"uses studies"| node_study
node_appointments -->|"reads and writes"| node_appointmentdata
node_appointmentdata -->|"belongs to"| node_patient
node_history -->|"has many"| node_prescriptiondata
node_measure -->|"belongs to"| node_patient
node_prescriptions -.->|"manages"| node_prescriptiondata
node_doctor -.->|"schedules"| node_appointments
node_doctor -.->|"records visits"| node_tracing
node_doctor -.->|"prescribes"| node_prescriptions
node_doctor -.->|"signs in"| node_login
node_registration -->|"registers"| node_accounts
node_login -.->|"authenticates"| node_accounts
node_settings -.->|"persists settings"| node_database

click node_patients "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/PatientController.php"
click node_patient "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Patient.php"
click node_history "https://github.com/atomo-tecnologias/sisgec/blob/master/app/InitialClinicalHistory.php"
click node_anamnesis "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Anamnesis.php"
click node_nonpath "https://github.com/atomo-tecnologias/sisgec/blob/master/app/NonPathological.php"
click node_pathpersonal "https://github.com/atomo-tecnologias/sisgec/blob/master/app/PathologicalPersonal.php"
click node_gyneco "https://github.com/atomo-tecnologias/sisgec/blob/master/app/GynecologicalObstetricHistory.php"
click node_physical "https://github.com/atomo-tecnologias/sisgec/blob/master/app/PhysicalExploration.php"
click node_neuro "https://github.com/atomo-tecnologias/sisgec/blob/master/app/NeurologicalExamination.php"
click node_orientation "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Orientation.php"
click node_cognitive "https://github.com/atomo-tecnologias/sisgec/blob/master/app/SuperiorCognitiveFunctions.php"
click node_measure "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Measure.php"
click node_study "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Study.php"
click node_appointments "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/MedicalAppointmentController.php"
click node_appointmentdata "https://github.com/atomo-tecnologias/sisgec/blob/master/app/MedicalAppointment.php"
click node_tracing "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/TracingController.php"
click node_tracingdata "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Tracing.php"
click node_prescriptions "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/PrescriptionController.php"
click node_prescriptiondata "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Prescription.php"
click node_accounts "https://github.com/atomo-tecnologias/sisgec/blob/master/app/User.php"
click node_login "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/Auth/LoginController.php"
click node_registration "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/Auth/RegisterController.php"
click node_settings "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Settings.php"
click node_pdf "https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/PatientController.php"
click node_database "https://github.com/atomo-tecnologias/sisgec/blob/master/config/database.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_patients,node_patient toneBlue
class node_history,node_anamnesis,node_nonpath,node_pathpersonal,node_gyneco,node_physical,node_neuro,node_orientation,node_cognitive,node_measure,node_study,node_pdf toneAmber
class node_appointments,node_appointmentdata,node_tracing,node_tracingdata,node_prescriptions,node_prescriptiondata toneMint
class node_accounts,node_login,node_registration,node_settings,node_database toneRose
class node_doctor toneIndigo
```

## Components

### Patient records

- [Patient management](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/PatientController.php): `app/Http/Controllers/PatientController.php`
- [Patient](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Patient.php): `app/Patient.php`

### Clinical documentation

- [Initial history](https://github.com/atomo-tecnologias/sisgec/blob/master/app/InitialClinicalHistory.php): `app/InitialClinicalHistory.php`
- [Anamnesis](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Anamnesis.php): `app/Anamnesis.php`
- [Non-pathological history](https://github.com/atomo-tecnologias/sisgec/blob/master/app/NonPathological.php): `app/NonPathological.php`
- [Personal pathology](https://github.com/atomo-tecnologias/sisgec/blob/master/app/PathologicalPersonal.php): `app/PathologicalPersonal.php`
- [Gynecological history](https://github.com/atomo-tecnologias/sisgec/blob/master/app/GynecologicalObstetricHistory.php): `app/GynecologicalObstetricHistory.php`
- [Physical examination](https://github.com/atomo-tecnologias/sisgec/blob/master/app/PhysicalExploration.php): `app/PhysicalExploration.php`
- [Neurological examination](https://github.com/atomo-tecnologias/sisgec/blob/master/app/NeurologicalExamination.php): `app/NeurologicalExamination.php`
- [Orientation](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Orientation.php): `app/Orientation.php`
- [Cognitive functions](https://github.com/atomo-tecnologias/sisgec/blob/master/app/SuperiorCognitiveFunctions.php): `app/SuperiorCognitiveFunctions.php`
- [Measurements](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Measure.php): `app/Measure.php`
- [Studies](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Study.php): `app/Study.php`
- [Clinical PDFs](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/PatientController.php): `app/Http/Controllers/PatientController.php`

### Practice operations

- [Appointments](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/MedicalAppointmentController.php): `app/Http/Controllers/MedicalAppointmentController.php`
- [Appointment records](https://github.com/atomo-tecnologias/sisgec/blob/master/app/MedicalAppointment.php): `app/MedicalAppointment.php`
- [Visit tracing](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/TracingController.php): `app/Http/Controllers/TracingController.php`
- [Tracing records](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Tracing.php): `app/Tracing.php`
- [Prescriptions](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/PrescriptionController.php): `app/Http/Controllers/PrescriptionController.php`
- [Prescription records](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Prescription.php): `app/Prescription.php`

### Web application

- [User accounts](https://github.com/atomo-tecnologias/sisgec/blob/master/app/User.php): `app/User.php`
- [Authentication](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/Auth/LoginController.php): `app/Http/Controllers/Auth/LoginController.php`
- [Registration](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Http/Controllers/Auth/RegisterController.php): `app/Http/Controllers/Auth/RegisterController.php`
- [Practice settings](https://github.com/atomo-tecnologias/sisgec/blob/master/app/Settings.php): `app/Settings.php`
- [Configured database](https://github.com/atomo-tecnologias/sisgec/blob/master/config/database.php): `config/database.php`

### Other components

- **Doctor or assistant**

## Connections

- Doctor or assistant → Patient management: manages patients
- Patient management → Patient: creates and updates (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Initial history: creates and updates (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Anamnesis: creates and updates (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Non-pathological history: updates (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Personal pathology: updates (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Gynecological history: updates (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Physical examination: creates history (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Neurological examination: creates and updates (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Orientation: creates and updates (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Cognitive functions: creates and updates (evidence: `app/Http/Controllers/PatientController.php`)
- Patient management → Studies: attaches studies (evidence: `app/Http/Controllers/PatientController.php`)
- Initial history → Anamnesis: has one (evidence: `app/InitialClinicalHistory.php`)
- Anamnesis → Non-pathological history: has one (evidence: `app/Anamnesis.php`)
- Anamnesis → Personal pathology: has one (evidence: `app/Anamnesis.php`)
- Anamnesis → Gynecological history: has one (evidence: `app/Anamnesis.php`)
- Initial history → Physical examination: has one (evidence: `app/InitialClinicalHistory.php`)
- Physical examination → Neurological examination: has one (evidence: `app/NeurologicalExamination.php`)
- Neurological examination → Orientation: has one (evidence: `app/NeurologicalExamination.php`)
- Neurological examination → Cognitive functions: has one (evidence: `app/NeurologicalExamination.php`)
- Patient → Initial history: has one (evidence: `app/Patient.php`)
- Patient → Measurements: has one (evidence: `app/Patient.php`)
- Patient → Appointment records: has many (evidence: `app/Patient.php`)
- Initial history → Studies: has many (evidence: `app/InitialClinicalHistory.php`)
- Patient management → Clinical PDFs: renders PDF (evidence: `app/Http/Controllers/PatientController.php`)
- Visit tracing → Tracing records: reads and writes (evidence: `app/Http/Controllers/TracingController.php`)
- Visit tracing → Patient: loads patient (evidence: `app/Http/Controllers/TracingController.php`)
- Visit tracing → Measurements: uses measurements (evidence: `app/Http/Controllers/TracingController.php`)
- Visit tracing → Studies: uses studies (evidence: `app/Http/Controllers/TracingController.php`)
- Appointments → Appointment records: reads and writes (evidence: `app/Http/Controllers/MedicalAppointmentController.php`)
- Appointment records → Patient: belongs to (evidence: `app/MedicalAppointment.php`)
- Initial history → Prescription records: has many (evidence: `app/InitialClinicalHistory.php`)
- Measurements → Patient: belongs to (evidence: `app/Measure.php`)
- Prescriptions → Prescription records: manages
- Doctor or assistant → Appointments: schedules
- Doctor or assistant → Visit tracing: records visits
- Doctor or assistant → Prescriptions: prescribes
- Doctor or assistant → Authentication: signs in
- Registration → User accounts: registers (evidence: `app/Http/Controllers/Auth/RegisterController.php`)
- Authentication → User accounts: authenticates
- Practice settings → Configured database: persists settings
