# jonaffrye/medapp architecture

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

- Interactive diagram: https://gitdiagram.com/jonaffrye/medapp
- Repository: https://github.com/jonaffrye/medapp

## Overview

MedApp is a prototype React Native app for healthcare professionals to manage patient records, appointments, prescriptions, vital signs, test results, and health information. The workflow starts at the Home dashboard, where navigation opens these feature screens; each screen presents or filters mostly local mock data. The graph reflects the documented capabilities, but the excerpts do not show backend services or persistent storage, and several screen implementations were only partially sampled.

Main entry points: [`App.js`](https://github.com/jonaffrye/medapp/blob/main/App.js) (Navigation stack), [`screens/Home.js`](https://github.com/jonaffrye/medapp/blob/main/screens/Home.js) (Home dashboard), [`components/HeaderAndSearchBar.js`](https://github.com/jonaffrye/medapp/blob/main/components/HeaderAndSearchBar.js) (Header and search), [`screens/Results.js`](https://github.com/jonaffrye/medapp/blob/main/screens/Results.js) (Test results)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_navigation["App Navigation"]
  node_entry["Expo entry<br/>[index.js]"]
  node_app["Navigation stack<br/>[App.js]"]
  node_home["Home dashboard<br/>[Home.js]"]
end

subgraph group_care["Patient Care"]
  node_patients["Patient records<br/>[Patients.js]"]
  node_monitoring["Vital monitoring<br/>[Monitoring.js]"]
end

subgraph group_clinical["Clinical Management"]
  node_appointments["Appointments<br/>[Appointments.js]"]
  node_prescriptions["Prescriptions<br/>[Prescriptions.js]"]
  node_results["Test results<br/>[Results.js]"]
  node_information["Health information<br/>[Information.js]"]
end

subgraph group_shared["Shared UI"]
  node_header["Header and search"]
  node_categories["Category selector"]
end

node_professional(("Healthcare professional"))

node_professional -->|"opens app"| node_entry
node_entry -->|"registers"| node_app
node_app -->|"starts at"| node_home
node_app -->|"registers"| node_patients
node_app -->|"registers"| node_appointments
node_app -->|"registers"| node_prescriptions
node_app -->|"registers"| node_monitoring
node_app -->|"registers"| node_information
node_app -->|"registers"| node_results
node_home -->|"navigates to"| node_patients
node_home -->|"navigates to"| node_appointments
node_home -->|"navigates to"| node_prescriptions
node_home -->|"navigates to"| node_monitoring
node_home -->|"navigates to"| node_information
node_home -->|"navigates to"| node_results
node_patients -->|"renders"| node_header
node_monitoring -->|"renders"| node_header
node_appointments -->|"renders"| node_header
node_prescriptions -->|"renders"| node_header
node_information -->|"renders"| node_header
node_results -->|"uses"| node_header
node_information -->|"uses"| node_categories
node_results -->|"uses"| node_categories

click node_entry "https://github.com/jonaffrye/medapp/blob/main/index.js"
click node_app "https://github.com/jonaffrye/medapp/blob/main/App.js"
click node_home "https://github.com/jonaffrye/medapp/blob/main/screens/Home.js"
click node_patients "https://github.com/jonaffrye/medapp/blob/main/screens/Patients.js"
click node_monitoring "https://github.com/jonaffrye/medapp/blob/main/screens/Monitoring.js"
click node_appointments "https://github.com/jonaffrye/medapp/blob/main/screens/Appointments.js"
click node_prescriptions "https://github.com/jonaffrye/medapp/blob/main/screens/Prescriptions.js"
click node_results "https://github.com/jonaffrye/medapp/blob/main/screens/Results.js"
click node_information "https://github.com/jonaffrye/medapp/blob/main/screens/Information.js"
click node_header "https://github.com/jonaffrye/medapp/blob/main/components/HeaderAndSearchBar.js"
click node_categories "https://github.com/jonaffrye/medapp/blob/main/components/SearchCategoryComponent.js"

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_entry,node_app,node_home toneBlue
class node_patients,node_monitoring toneAmber
class node_appointments,node_prescriptions,node_results,node_information toneMint
class node_header,node_categories toneRose
class node_professional toneIndigo
```

## Components

### App Navigation

- [Expo entry](https://github.com/jonaffrye/medapp/blob/main/index.js): `index.js`
- [Navigation stack](https://github.com/jonaffrye/medapp/blob/main/App.js): `App.js`
- [Home dashboard](https://github.com/jonaffrye/medapp/blob/main/screens/Home.js): `screens/Home.js`

### Patient Care

- [Patient records](https://github.com/jonaffrye/medapp/blob/main/screens/Patients.js): `screens/Patients.js`
- [Vital monitoring](https://github.com/jonaffrye/medapp/blob/main/screens/Monitoring.js): `screens/Monitoring.js`

### Clinical Management

- [Appointments](https://github.com/jonaffrye/medapp/blob/main/screens/Appointments.js): `screens/Appointments.js`
- [Prescriptions](https://github.com/jonaffrye/medapp/blob/main/screens/Prescriptions.js): `screens/Prescriptions.js`
- [Test results](https://github.com/jonaffrye/medapp/blob/main/screens/Results.js): `screens/Results.js`
- [Health information](https://github.com/jonaffrye/medapp/blob/main/screens/Information.js): `screens/Information.js`

### Shared UI

- [Header and search](https://github.com/jonaffrye/medapp/blob/main/components/HeaderAndSearchBar.js): `components/HeaderAndSearchBar.js`
- [Category selector](https://github.com/jonaffrye/medapp/blob/main/components/SearchCategoryComponent.js): `components/SearchCategoryComponent.js`

### Other components

- **Healthcare professional**

## Connections

- Healthcare professional → Expo entry: opens app
- Expo entry → Navigation stack: registers (evidence: `index.js`)
- Navigation stack → Home dashboard: starts at (evidence: `App.js`)
- Navigation stack → Patient records: registers (evidence: `App.js`)
- Navigation stack → Appointments: registers (evidence: `App.js`)
- Navigation stack → Prescriptions: registers (evidence: `App.js`)
- Navigation stack → Vital monitoring: registers (evidence: `App.js`)
- Navigation stack → Health information: registers (evidence: `App.js`)
- Navigation stack → Test results: registers (evidence: `App.js`)
- Home dashboard → Patient records: navigates to (evidence: `screens/Home.js`)
- Home dashboard → Appointments: navigates to (evidence: `screens/Home.js`)
- Home dashboard → Prescriptions: navigates to (evidence: `screens/Home.js`)
- Home dashboard → Vital monitoring: navigates to (evidence: `screens/Home.js`)
- Home dashboard → Health information: navigates to (evidence: `screens/Home.js`)
- Home dashboard → Test results: navigates to (evidence: `screens/Home.js`)
- Patient records → Header and search: renders (evidence: `screens/Patients.js`)
- Vital monitoring → Header and search: renders (evidence: `screens/Monitoring.js`)
- Appointments → Header and search: renders (evidence: `screens/Appointments.js`)
- Prescriptions → Header and search: renders (evidence: `screens/Prescriptions.js`)
- Health information → Header and search: renders (evidence: `screens/Information.js`)
- Test results → Header and search: uses (evidence: `screens/Results.js`)
- Health information → Category selector: uses (evidence: `screens/Information.js`)
- Test results → Category selector: uses (evidence: `screens/Results.js`)
