# microwavetuesday/idsc-clinic-system-clean architecture

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

- Interactive diagram: https://gitdiagram.com/microwavetuesday/idsc-clinic-system-clean
- Repository: https://github.com/microwavetuesday/idsc-clinic-system-clean

## Overview

IDSC Clinic System is a Django REST API for Clinic-owned health records, consultations, health-status projections, dispensations, reports, and Clinic accounts. The principal workflow is an authenticated HTTP request routed to a Clinic view, which delegates domain work to ClinicService and the in-memory Clinic repository; student validation and medicine stock actions cross Registrar and Inventory boundaries. README documentation establishes those integration responsibilities and the read-only Faculty and Student Portal projections. The frontend is explicitly a React/Vite starter, not the Clinic product UI. Some view-to-service and service-to-repository calls are supported by the source index and excerpts; unsampled route details are not inferred.

Main entry points: [`backend/clinic/views.py`](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/views.py) (Clinic endpoints), [`backend/clinic/services/clinic.py`](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py) (ClinicService), [`backend/authentication/views.py`](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/authentication/views.py) (Session and staff endpoints), [`backend/clinic/services/registrar.py`](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/registrar.py) (Registrar boundary)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Clinic API"]
  node_clinic_views["Clinic endpoints<br/>[views.py]"]
  node_health_check["Health check<br/>[views.py]"]
  node_dashboard["Clinic dashboard<br/>[views.py]"]
  node_reports["Clinic reports<br/>[views.py]"]
end

subgraph group_domain["Clinic Domain"]
  node_clinic_service["ClinicService<br/>[clinic.py]"]
  node_clinic_repository[("Mock clinic repository<br/>[clinic.py]")]
  node_health_records["Health records<br/>[clinic.py]"]
  node_consultations["Consultations<br/>[clinic.py]"]
  node_health_status["Health status<br/>[clinic.py]"]
  node_dispensations["Medicine dispensations<br/>[clinic.py]"]
end

subgraph group_integrations["Integrations"]
  node_registrar_service["Registrar boundary<br/>[registrar.py]"]
  node_registrar["Registrar"]
  node_inventory_service["Inventory boundary<br/>[inventory.py]"]
  node_inventory["Inventory"]
end

subgraph group_identity["Authentication"]
  node_auth_views["Session and staff endpoints<br/>[views.py]"]
  node_auth_serializers["Auth serializers<br/>[serializers.py]"]
  node_permissions["Clinic permissions<br/>[permissions.py]"]
end

node_client(("API client"))
node_faculty(("Faculty"))
node_student_portal(("Student Portal"))

node_client -->|"requests"| node_clinic_views
node_client -->|"checks health"| node_health_check
node_clinic_views -->|"delegates domain work"| node_clinic_service
node_clinic_views -->|"lists students"| node_registrar_service
node_clinic_views -->|"lists medicines"| node_inventory_service
node_clinic_views -->|"uses permissions"| node_permissions
node_clinic_service -->|"reads and writes"| node_clinic_repository
node_clinic_service -->|"validates students"| node_registrar_service
node_clinic_service -->|"coordinates stock"| node_inventory_service
node_registrar_service -.->|"mock boundary"| node_registrar
node_inventory_service -.->|"mock boundary"| node_inventory
node_clinic_views -->|"serves record operations"| node_health_records
node_clinic_views -->|"serves consultation operations"| node_consultations
node_clinic_views -->|"serves status projections"| node_health_status
node_clinic_views -->|"serves dispensation operations"| node_dispensations
node_clinic_views -->|"serves dashboard"| node_dashboard
node_clinic_views -->|"serves reports"| node_reports
node_faculty -->|"reads projections"| node_health_status
node_student_portal -->|"reads projections"| node_health_status
node_client -->|"authenticates"| node_auth_views
node_auth_views -->|"serializes requests"| node_auth_serializers
node_auth_views -->|"uses access rules"| node_permissions

click node_clinic_views "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/views.py"
click node_health_check "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/views.py"
click node_dashboard "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/views.py"
click node_reports "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/views.py"
click node_clinic_service "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py"
click node_clinic_repository "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/data/clinic.py"
click node_health_records "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py"
click node_consultations "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py"
click node_health_status "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py"
click node_dispensations "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py"
click node_registrar_service "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/registrar.py"
click node_inventory_service "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/inventory.py"
click node_auth_views "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/authentication/views.py"
click node_auth_serializers "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/authentication/serializers.py"
click node_permissions "https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/authentication/permissions.py"

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_clinic_views,node_health_check,node_dashboard,node_reports,node_client toneBlue
class node_clinic_service,node_clinic_repository,node_health_records,node_consultations,node_health_status,node_dispensations toneAmber
class node_registrar_service,node_registrar,node_inventory_service,node_inventory toneMint
class node_auth_views,node_auth_serializers,node_permissions toneRose
class node_faculty,node_student_portal toneIndigo
```

## Components

### Clinic API

- [Clinic endpoints](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/views.py): `backend/clinic/views.py`
- [Health check](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/views.py): `backend/clinic/views.py`
- [Clinic dashboard](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/views.py): `backend/clinic/views.py`
- [Clinic reports](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/views.py): `backend/clinic/views.py`

### Clinic Domain

- [ClinicService](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py): `backend/clinic/services/clinic.py`
- [Mock clinic repository](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/data/clinic.py): `backend/clinic/data/clinic.py`
- [Health records](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py): `backend/clinic/services/clinic.py`
- [Consultations](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py): `backend/clinic/services/clinic.py`
- [Health status](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py): `backend/clinic/services/clinic.py`
- [Medicine dispensations](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/clinic.py): `backend/clinic/services/clinic.py`

### Integrations

- [Registrar boundary](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/registrar.py): `backend/clinic/services/registrar.py`
- **Registrar**
- [Inventory boundary](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/clinic/services/inventory.py): `backend/clinic/services/inventory.py`
- **Inventory**

### Authentication

- [Session and staff endpoints](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/authentication/views.py): `backend/authentication/views.py`
- [Auth serializers](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/authentication/serializers.py): `backend/authentication/serializers.py`
- [Clinic permissions](https://github.com/microwavetuesday/idsc-clinic-system-clean/blob/main/backend/authentication/permissions.py): `backend/authentication/permissions.py`

### Other components

- **API client**
- **Faculty**
- **Student Portal**

## Connections

- API client → Clinic endpoints: requests (evidence: `README.md`)
- API client → Health check: checks health (evidence: `README.md`)
- Clinic endpoints → ClinicService: delegates domain work (evidence: `backend/clinic/views.py`)
- Clinic endpoints → Registrar boundary: lists students (evidence: `backend/clinic/views.py`)
- Clinic endpoints → Inventory boundary: lists medicines (evidence: `backend/clinic/views.py`)
- Clinic endpoints → Clinic permissions: uses permissions (evidence: `backend/clinic/views.py`)
- ClinicService → Mock clinic repository: reads and writes (evidence: `backend/clinic/services/clinic.py`)
- ClinicService → Registrar boundary: validates students (evidence: `backend/clinic/services/clinic.py`)
- ClinicService → Inventory boundary: coordinates stock (evidence: `backend/clinic/services/clinic.py`)
- Registrar boundary → Registrar: mock boundary
- Inventory boundary → Inventory: mock boundary
- Clinic endpoints → Health records: serves record operations (evidence: `README.md`)
- Clinic endpoints → Consultations: serves consultation operations (evidence: `README.md`)
- Clinic endpoints → Health status: serves status projections (evidence: `README.md`)
- Clinic endpoints → Medicine dispensations: serves dispensation operations (evidence: `README.md`)
- Clinic endpoints → Clinic dashboard: serves dashboard (evidence: `backend/clinic/views.py`)
- Clinic endpoints → Clinic reports: serves reports (evidence: `README.md`)
- Faculty → Health status: reads projections (evidence: `README.md`)
- Student Portal → Health status: reads projections (evidence: `README.md`)
- API client → Session and staff endpoints: authenticates (evidence: `README.md`)
- Session and staff endpoints → Auth serializers: serializes requests (evidence: `backend/authentication/views.py`)
- Session and staff endpoints → Clinic permissions: uses access rules (evidence: `backend/authentication/views.py`)
