How cirqlar/scamps works
This is a desktop clinic-management application. A user works through the root menu to patient management or the appointment queue: patient records can be added, edited, sorted, paged, and deleted; appointments can be created, finished, or cancelled. The app also loads and saves JSON data and exports appointment and patient reports. The graph reflects the shown app, controller, database, and view relationships; unsampled implementation details are represented only where the source index or explicit calls support them.
Main entry points: App.cpp App and routing · ClinicDatabase.cpp Clinic database · AppointmentsView.cpp Appointment view · PatientsView.cpp Patient view
Components 20
Application shell
- App and routing
src/App.cpp - Root window
src/views/root/RootView.cpp - Navigation and actions
src/views/components/menu_bar/MenuBar.cpp
Patient management
- Patient controller
src/controllers/patients/PatientsController.cpp - Patient view
src/views/patients/PatientsView.cpp - Patient list
src/views/components/patients_list/PatientsList.cpp - Patient editor
src/views/components/edit_patient/EditPatient.cpp - Form inputs
src/views/components/input/Input.h
Appointment management
- Appointment controller
src/controllers/appointments/AppointmentsController.cpp - Appointment view
src/views/appointments/AppointmentsView.cpp - Appointment list
src/views/components/appointments_list/AppointmentsList.cpp - Appointment details
src/views/components/appointment_details/AppointmentDetails.cpp - Create appointment
src/views/components/create_appointment/CreateAppointment.cpp
Clinic data
- Clinic database
src/models/ClinicDatabase.cpp - Patient record types
src/models/patient/PatientRecord.h - Appointment model
src/models/appointment/Appointment.h - JSON serializers
src/utils/serializers
Other components
- Clinic user
- JSON data file
- Text report file
Connections 25
- Clinic user → Root window: uses
- App and routing → Root window: creates
src/App.cpp - Root window → Navigation and actions: renders
src/views/root/RootView.cpp - Navigation and actions → App and routing: invokes actions
- App and routing → Patient controller: routes to
src/App.cpp - App and routing → Appointment controller: routes to
src/App.cpp - Patient controller → Clinic database: reads and updates
src/controllers/patients/PatientsController.cpp - Patient controller → Patient view: creates and refreshes
src/controllers/patients/PatientsController.cpp - Patient view → Patient controller: dispatches actions
src/views/patients/PatientsView.cpp - Patient view → Patient list: renders
src/views/patients/PatientsView.cpp - Patient view → Patient editor: renders
src/views/patients/PatientsView.cpp - Patient editor → Form inputs: uses
src/views/components/edit_patient/EditPatient.cpp - Appointment controller → Clinic database: reads and updates
src/controllers/appointments/AppointmentsController.cpp - Appointment controller → Appointment view: creates
src/controllers/appointments/AppointmentsController.cpp - Appointment view → Appointment controller: dispatches actions
src/views/appointments/AppointmentsView.cpp - Appointment view → Appointment list: renders
src/views/appointments/AppointmentsView.cpp - Appointment view → Appointment details: renders
src/views/appointments/AppointmentsView.cpp - Appointment view → Create appointment: renders
src/views/appointments/AppointmentsView.cpp - Clinic database → Patient record types: stores and searches
src/models/ClinicDatabase.cpp - Clinic database → Appointment model: stores and updates
src/models/ClinicDatabase.cpp - Clinic database → JSON serializers: serializes data
src/models/ClinicDatabase.cpp - App and routing → Clinic database: loads and saves
src/App.cpp - App and routing → JSON data file: chooses file for data
src/App.cpp - Clinic database → JSON data file: reads and writes JSON
src/models/ClinicDatabase.cpp - App and routing → Text report file: exports reports
src/App.cpp