# huongni2201/ngoc_khanh_clinic_dx_nextjs architecture

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

- Interactive diagram: https://gitdiagram.com/huongni2201/ngoc_khanh_clinic_dx_nextjs
- Repository: https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs

## Overview

This is a clinic-operations frontend, not a general Next.js starter: its routes and modules cover appointments, patient records, reception/check-in, billing, doctor worklists and encounters, plus organization-based health-examination batches and reporting. The APIs shown use in-memory stores and simulated latency; no persistent database or external clinical service is evidenced. The README is only the stock Next.js template. Several route and page implementations were not sampled, so uncertain wiring between those layers is intentionally omitted.

Main entry points: [`src/modules/reception/api/index.ts`](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/reception/api/index.ts) (Reception API), [`src/modules/billing/api/index.ts`](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/billing/api/index.ts) (Billing API), [`src/modules/patients/api/index.ts`](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/patients/api/index.ts) (Patient API), [`src/modules/auth/hooks/use-auth.ts`](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/auth/hooks/use-auth.ts) (Auth hook)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access"]
  node_loginroute["Login route<br/>[page.tsx]"]
  node_loginpage["Login page<br/>[login-page.tsx]"]
  node_authhook["Auth hook<br/>[use-auth.ts]"]
  node_authapi["Auth API<br/>[auth-api.ts]"]
end

subgraph group_clinic["Clinic operations"]
  node_appointments["Appointments"]
  node_appointmentapi["Appointment API<br/>[index.ts]"]
  node_patients["Patient records<br/>[patients-page.tsx]"]
  node_patientapi["Patient API<br/>[index.ts]"]
  node_reception["Reception worklist<br/>[reception-page.tsx]"]
  node_receptionapi["Reception API<br/>[index.ts]"]
  node_billing["Payment worklist"]
  node_billingapi["Billing API<br/>[index.ts]"]
end

subgraph group_clinical["Clinical care"]
  node_doctor["Doctor worklist"]
  node_encounter["Encounter detail"]
  node_encounterapi["Encounter API<br/>[index.ts]"]
end

subgraph group_enterprise["Organization examinations"]
  node_organizations["Organizations"]
  node_organizationapi["Organization API<br/>[index.ts]"]
  node_batchdetail["Examination batch"]
  node_batchapi["Batch API<br/>[index.ts]"]
  node_export["Excel export<br/>[export-excel.ts]"]
end

subgraph group_runtime["Shared runtime"]
  node_queryprovider["Query provider<br/>[query-provider.tsx]"]
end

node_staff(("Clinic staff"))

node_staff -->|"opens"| node_loginroute
node_authhook -->|"calls"| node_authapi
node_appointmentapi -->|"looks up patient"| node_patientapi
node_receptionapi -->|"looks up patient"| node_patientapi
node_billingapi -->|"reads invoices and worklist"| node_receptionapi
node_billingapi -->|"submits payment"| node_receptionapi

click node_loginroute "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/app/auth/login/page.tsx"
click node_loginpage "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/auth/pages/login-page.tsx"
click node_authhook "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/auth/hooks/use-auth.ts"
click node_authapi "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/auth/api/auth-api.ts"
click node_appointments "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/appointments/pages/appointments-page.tsx"
click node_appointmentapi "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/appointments/api/index.ts"
click node_patients "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/patients/pages/patients-page.tsx"
click node_patientapi "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/patients/api/index.ts"
click node_reception "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/reception/pages/reception-page.tsx"
click node_receptionapi "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/reception/api/index.ts"
click node_billing "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/billing/pages/payment-worklist-page.tsx"
click node_billingapi "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/billing/api/index.ts"
click node_doctor "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/doctor/pages/doctor-worklist-page.tsx"
click node_encounter "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/encounters/pages/encounter-detail-page.tsx"
click node_encounterapi "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/encounters/api/index.ts"
click node_organizations "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/organizations/pages/organization-list-page.tsx"
click node_organizationapi "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/organizations/api/index.ts"
click node_batchdetail "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/health-examinations/pages/health-examination-batch-detail-page.tsx"
click node_batchapi "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/health-examinations/api/index.ts"
click node_export "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/health-examinations/utils/export-excel.ts"
click node_queryprovider "https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/providers/query-provider.tsx"

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_loginroute,node_loginpage,node_authhook,node_authapi toneBlue
class node_appointments,node_appointmentapi,node_patients,node_patientapi,node_reception,node_receptionapi,node_billing,node_billingapi toneAmber
class node_doctor,node_encounter,node_encounterapi toneMint
class node_organizations,node_organizationapi,node_batchdetail,node_batchapi,node_export toneRose
class node_queryprovider,node_staff toneIndigo
```

## Components

### Access

- [Login route](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/app/auth/login/page.tsx): `src/app/auth/login/page.tsx`
- [Login page](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/auth/pages/login-page.tsx): `src/modules/auth/pages/login-page.tsx`
- [Auth hook](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/auth/hooks/use-auth.ts): `src/modules/auth/hooks/use-auth.ts`
- [Auth API](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/auth/api/auth-api.ts): `src/modules/auth/api/auth-api.ts`

### Clinic operations

- [Appointments](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/appointments/pages/appointments-page.tsx): `src/modules/appointments/pages/appointments-page.tsx`
- [Appointment API](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/appointments/api/index.ts): `src/modules/appointments/api/index.ts`
- [Patient records](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/patients/pages/patients-page.tsx): `src/modules/patients/pages/patients-page.tsx`
- [Patient API](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/patients/api/index.ts): `src/modules/patients/api/index.ts`
- [Reception worklist](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/reception/pages/reception-page.tsx): `src/modules/reception/pages/reception-page.tsx`
- [Reception API](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/reception/api/index.ts): `src/modules/reception/api/index.ts`
- [Payment worklist](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/billing/pages/payment-worklist-page.tsx): `src/modules/billing/pages/payment-worklist-page.tsx`
- [Billing API](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/billing/api/index.ts): `src/modules/billing/api/index.ts`

### Clinical care

- [Doctor worklist](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/doctor/pages/doctor-worklist-page.tsx): `src/modules/doctor/pages/doctor-worklist-page.tsx`
- [Encounter detail](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/encounters/pages/encounter-detail-page.tsx): `src/modules/encounters/pages/encounter-detail-page.tsx`
- [Encounter API](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/encounters/api/index.ts): `src/modules/encounters/api/index.ts`

### Organization examinations

- [Organizations](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/organizations/pages/organization-list-page.tsx): `src/modules/organizations/pages/organization-list-page.tsx`
- [Organization API](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/organizations/api/index.ts): `src/modules/organizations/api/index.ts`
- [Examination batch](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/health-examinations/pages/health-examination-batch-detail-page.tsx): `src/modules/health-examinations/pages/health-examination-batch-detail-page.tsx`
- [Batch API](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/health-examinations/api/index.ts): `src/modules/health-examinations/api/index.ts`
- [Excel export](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/modules/health-examinations/utils/export-excel.ts): `src/modules/health-examinations/utils/export-excel.ts`

### Shared runtime

- [Query provider](https://github.com/huongni2201/ngoc_khanh_clinic_dx_nextjs/blob/main/src/providers/query-provider.tsx): `src/providers/query-provider.tsx`

### Other components

- **Clinic staff**

## Connections

- Clinic staff → Login route: opens
- Auth hook → Auth API: calls
- Appointment API → Patient API: looks up patient
- Reception API → Patient API: looks up patient
- Billing API → Reception API: reads invoices and worklist
- Billing API → Reception API: submits payment
