# emersonsan07/farmausf architecture

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

- Interactive diagram: https://gitdiagram.com/emersonsan07/farmausf
- Repository: https://github.com/emersonsan07/farmausf

## Overview

FarmaUSF is a browser-based primary-care pharmacy application for pharmacists. The workflow begins with professional authentication and navigation into clinical tools; pharmacists assess patients, record SOAP consultations, use decision support, and produce e-SUS documents. The modules also cover quick tests, protocols, education/POPs, phytotherapy and a dashboard. The sampled entry point explicitly initializes the modular features; sampled code also shows SOAP handoff from calculators and Supabase authentication. Many data-to-feature and persistence links are not visible in the excerpts, so they are omitted.

Main entry points: [`js/main.js`](https://github.com/emersonsan07/farmausf/blob/main/js/main.js) (Module initializer), [`js/modules/calculators.js`](https://github.com/emersonsan07/farmausf/blob/main/js/modules/calculators.js) (Clinical calculators), [`js/modules/documentos_esus.js`](https://github.com/emersonsan07/farmausf/blob/main/js/modules/documentos_esus.js) (e-SUS documents), [`js/modules/supabaseClient.js`](https://github.com/emersonsan07/farmausf/blob/main/js/modules/supabaseClient.js) (Supabase client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_main["Module initializer<br/>[main.js]"]
  node_navigation["Navigation<br/>[navigation.js]"]
  node_theme["Theme<br/>[theme.js]"]
end

subgraph group_clinical["Clinical care"]
  node_dashboard["Dashboard<br/>[dashboard.js]"]
  node_cim["Medicine information<br/>[cim.js]"]
  node_soap["SOAP consultation<br/>[soap.js]"]
  node_calculators["Clinical calculators<br/>[calculators.js]"]
  node_protocols["Clinical protocols<br/>[protocols.js]"]
  node_rapidtests["Rapid-test workflows<br/>[testes_rapidos.js]"]
  node_documents["e-SUS documents<br/>[documentos_esus.js]"]
  node_app["Legacy application logic<br/>[app.js]"]
end

subgraph group_reference["Clinical reference"]
  node_medicines[("Medicine catalog<br/>[medicamentos.js]")]
  node_protocoldata[("Protocol data<br/>[protocolos.js]")]
  node_testdata[("Rapid-test catalog<br/>[testes_rapidos.js]")]
  node_codes[("e-SUS codes<br/>[esus_codigos.js]")]
  node_popsdata[("POPs and vaccines<br/>[pops_e_vacinas.js]")]
  node_herbaldata[("Phytotherapy data<br/>[fitoterapia.js]")]
  node_simulation[("Sample consultations<br/>[simulacao.js]")]
  node_localdata[("Local clinical database<br/>[database.js]")]
end

subgraph group_operations["Pharmacy operations"]
  node_education["POPs education<br/>[educacao_pops.js]"]
  node_herbal["Herbal storage"]
end

subgraph group_identity["Identity and storage"]
  node_auth["Professional auth<br/>[auth.js]"]
  node_supabase["Supabase client<br/>[supabaseClient.js]"]
end

node_pharmacist(("Pharmacist"))
node_cloud[("Supabase service")]

node_pharmacist -->|"uses"| node_main
node_main -->|"initializes"| node_theme
node_main -->|"initializes"| node_navigation
node_main -->|"initializes"| node_cim
node_main -->|"initializes"| node_soap
node_main -->|"initializes"| node_protocols
node_main -->|"initializes"| node_calculators
node_main -->|"initializes"| node_documents
node_main -->|"initializes"| node_rapidtests
node_main -->|"initializes"| node_dashboard
node_main -->|"loads initial data"| node_simulation
node_auth -->|"signs in through"| node_supabase
node_supabase -->|"authenticates and syncs"| node_cloud
node_calculators -->|"sends results"| node_soap
node_documents -->|"reads codes"| node_codes

click node_main "https://github.com/emersonsan07/farmausf/blob/main/js/main.js"
click node_navigation "https://github.com/emersonsan07/farmausf/blob/main/js/modules/navigation.js"
click node_theme "https://github.com/emersonsan07/farmausf/blob/main/js/modules/theme.js"
click node_auth "https://github.com/emersonsan07/farmausf/blob/main/js/modules/auth.js"
click node_supabase "https://github.com/emersonsan07/farmausf/blob/main/js/modules/supabaseClient.js"
click node_dashboard "https://github.com/emersonsan07/farmausf/blob/main/js/modules/dashboard.js"
click node_cim "https://github.com/emersonsan07/farmausf/blob/main/js/modules/cim.js"
click node_soap "https://github.com/emersonsan07/farmausf/blob/main/js/modules/soap.js"
click node_calculators "https://github.com/emersonsan07/farmausf/blob/main/js/modules/calculators.js"
click node_protocols "https://github.com/emersonsan07/farmausf/blob/main/js/modules/protocols.js"
click node_rapidtests "https://github.com/emersonsan07/farmausf/blob/main/js/modules/testes_rapidos.js"
click node_documents "https://github.com/emersonsan07/farmausf/blob/main/js/modules/documentos_esus.js"
click node_medicines "https://github.com/emersonsan07/farmausf/blob/main/js/data/medicamentos.js"
click node_protocoldata "https://github.com/emersonsan07/farmausf/blob/main/js/data/protocolos.js"
click node_testdata "https://github.com/emersonsan07/farmausf/blob/main/js/data/testes_rapidos.js"
click node_codes "https://github.com/emersonsan07/farmausf/blob/main/js/data/esus_codigos.js"
click node_popsdata "https://github.com/emersonsan07/farmausf/blob/main/js/data/pops_e_vacinas.js"
click node_herbaldata "https://github.com/emersonsan07/farmausf/blob/main/js/data/fitoterapia.js"
click node_simulation "https://github.com/emersonsan07/farmausf/blob/main/js/data/simulacao.js"
click node_education "https://github.com/emersonsan07/farmausf/blob/main/js/modules/educacao_pops.js"
click node_herbal "https://github.com/emersonsan07/farmausf/blob/main/js/modules/fitoterapia_armazenamento.js"
click node_app "https://github.com/emersonsan07/farmausf/blob/main/app.js"
click node_localdata "https://github.com/emersonsan07/farmausf/blob/main/database.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_main,node_navigation,node_theme toneBlue
class node_dashboard,node_cim,node_soap,node_calculators,node_protocols,node_rapidtests,node_documents,node_app,node_cloud toneAmber
class node_medicines,node_protocoldata,node_testdata,node_codes,node_popsdata,node_herbaldata,node_simulation,node_localdata toneMint
class node_education,node_herbal toneRose
class node_auth,node_supabase,node_pharmacist toneIndigo
```

## Components

### Application entry

- [Module initializer](https://github.com/emersonsan07/farmausf/blob/main/js/main.js): `js/main.js`
- [Navigation](https://github.com/emersonsan07/farmausf/blob/main/js/modules/navigation.js): `js/modules/navigation.js`
- [Theme](https://github.com/emersonsan07/farmausf/blob/main/js/modules/theme.js): `js/modules/theme.js`

### Clinical care

- [Dashboard](https://github.com/emersonsan07/farmausf/blob/main/js/modules/dashboard.js): `js/modules/dashboard.js`
- [Medicine information](https://github.com/emersonsan07/farmausf/blob/main/js/modules/cim.js): `js/modules/cim.js`
- [SOAP consultation](https://github.com/emersonsan07/farmausf/blob/main/js/modules/soap.js): `js/modules/soap.js`
- [Clinical calculators](https://github.com/emersonsan07/farmausf/blob/main/js/modules/calculators.js): `js/modules/calculators.js`
- [Clinical protocols](https://github.com/emersonsan07/farmausf/blob/main/js/modules/protocols.js): `js/modules/protocols.js`
- [Rapid-test workflows](https://github.com/emersonsan07/farmausf/blob/main/js/modules/testes_rapidos.js): `js/modules/testes_rapidos.js`
- [e-SUS documents](https://github.com/emersonsan07/farmausf/blob/main/js/modules/documentos_esus.js): `js/modules/documentos_esus.js`
- [Legacy application logic](https://github.com/emersonsan07/farmausf/blob/main/app.js): `app.js`

### Clinical reference

- [Medicine catalog](https://github.com/emersonsan07/farmausf/blob/main/js/data/medicamentos.js): `js/data/medicamentos.js`
- [Protocol data](https://github.com/emersonsan07/farmausf/blob/main/js/data/protocolos.js): `js/data/protocolos.js`
- [Rapid-test catalog](https://github.com/emersonsan07/farmausf/blob/main/js/data/testes_rapidos.js): `js/data/testes_rapidos.js`
- [e-SUS codes](https://github.com/emersonsan07/farmausf/blob/main/js/data/esus_codigos.js): `js/data/esus_codigos.js`
- [POPs and vaccines](https://github.com/emersonsan07/farmausf/blob/main/js/data/pops_e_vacinas.js): `js/data/pops_e_vacinas.js`
- [Phytotherapy data](https://github.com/emersonsan07/farmausf/blob/main/js/data/fitoterapia.js): `js/data/fitoterapia.js`
- [Sample consultations](https://github.com/emersonsan07/farmausf/blob/main/js/data/simulacao.js): `js/data/simulacao.js`
- [Local clinical database](https://github.com/emersonsan07/farmausf/blob/main/database.js): `database.js`

### Pharmacy operations

- [POPs education](https://github.com/emersonsan07/farmausf/blob/main/js/modules/educacao_pops.js): `js/modules/educacao_pops.js`
- [Herbal storage](https://github.com/emersonsan07/farmausf/blob/main/js/modules/fitoterapia_armazenamento.js): `js/modules/fitoterapia_armazenamento.js`

### Identity and storage

- [Professional auth](https://github.com/emersonsan07/farmausf/blob/main/js/modules/auth.js): `js/modules/auth.js`
- [Supabase client](https://github.com/emersonsan07/farmausf/blob/main/js/modules/supabaseClient.js): `js/modules/supabaseClient.js`

### Other components

- **Pharmacist**
- **Supabase service**

## Connections

- Pharmacist → Module initializer: uses (evidence: `js/main.js`)
- Module initializer → Theme: initializes (evidence: `js/main.js`)
- Module initializer → Navigation: initializes (evidence: `js/main.js`)
- Module initializer → Medicine information: initializes (evidence: `js/main.js`)
- Module initializer → SOAP consultation: initializes (evidence: `js/main.js`)
- Module initializer → Clinical protocols: initializes (evidence: `js/main.js`)
- Module initializer → Clinical calculators: initializes (evidence: `js/main.js`)
- Module initializer → e-SUS documents: initializes (evidence: `js/main.js`)
- Module initializer → Rapid-test workflows: initializes (evidence: `js/main.js`)
- Module initializer → Dashboard: initializes (evidence: `js/main.js`)
- Module initializer → Sample consultations: loads initial data (evidence: `js/main.js`)
- Professional auth → Supabase client: signs in through (evidence: `js/modules/auth.js`)
- Supabase client → Supabase service: authenticates and syncs (evidence: `js/modules/supabaseClient.js`)
- Clinical calculators → SOAP consultation: sends results (evidence: `js/modules/calculators.js`)
- e-SUS documents → e-SUS codes: reads codes (evidence: `js/modules/documentos_esus.js`)
