# amanpriyanshu/medtranslate-360 architecture

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

- Interactive diagram: https://gitdiagram.com/amanpriyanshu/medtranslate-360
- Repository: https://github.com/amanpriyanshu/medtranslate-360

## Overview

MedTranslate 360 is a Streamlit medical-note assistant. A clinician records a note; the app transcribes the audio, then on request translates the transcript and separately applies identifier-censoring prompts for a privacy-protected note. The README also describes automatic pause after two seconds of silence. The sampled app shows the orchestration and model calls; capabilities are represented only where documented or visible, and the graph does not imply a persistent clinical-record store or verified HIPAA compliance.

Main entry points: [`app.py`](https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py) (Streamlit Interface), [`sample.wav`](https://github.com/amanpriyanshu/medtranslate-360/blob/main/sample.wav) (Recorded Audio)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["Clinician Interaction"]
  node_streamlit_ui["Streamlit Interface<br/>[app.py]"]
  node_audio_capture["Audio Capture<br/>[app.py]"]
  node_note_results["Note Results<br/>[app.py]"]
end

subgraph group_processing["Note Processing"]
  node_recorded_audio["Recorded Audio<br/>[sample.wav]"]
  node_transcription["Speech Transcription<br/>[app.py]"]
  node_medical_transcript["Medical Transcript<br/>[app.py]"]
  node_translation["Note Translation<br/>[app.py]"]
  node_privacy_filter["Identifier Censoring<br/>[app.py]"]
end

subgraph group_ai_services["AI Services"]
  node_gemini["Gemini Service"]
  node_whisper["Whisper Model"]
end

node_clinician(("Clinician"))

node_clinician -->|"uses"| node_streamlit_ui
node_streamlit_ui -->|"starts capture"| node_audio_capture
node_audio_capture -->|"writes audio"| node_recorded_audio
node_streamlit_ui -->|"invokes"| node_transcription
node_transcription -->|"reads audio"| node_recorded_audio
node_transcription -->|"transcribes with"| node_whisper
node_transcription -->|"produces"| node_medical_transcript
node_streamlit_ui -->|"invokes on request"| node_translation
node_translation -->|"generates translation"| node_gemini
node_streamlit_ui -->|"invokes on request"| node_privacy_filter
node_privacy_filter -->|"generates censored note"| node_gemini
node_translation -->|"uses transcript"| node_medical_transcript
node_privacy_filter -->|"uses transcript"| node_medical_transcript
node_streamlit_ui -->|"displays"| node_note_results
node_translation -->|"supplies translation"| node_note_results
node_privacy_filter -->|"supplies censored note"| node_note_results

click node_streamlit_ui "https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py"
click node_audio_capture "https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py"
click node_recorded_audio "https://github.com/amanpriyanshu/medtranslate-360/blob/main/sample.wav"
click node_transcription "https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py"
click node_medical_transcript "https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py"
click node_translation "https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py"
click node_privacy_filter "https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py"
click node_note_results "https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.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_streamlit_ui,node_audio_capture,node_note_results toneBlue
class node_recorded_audio,node_transcription,node_medical_transcript,node_translation,node_privacy_filter toneAmber
class node_gemini,node_whisper toneMint
class node_clinician toneIndigo
```

## Components

### Clinician Interaction

- [Streamlit Interface](https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py): `app.py`
- [Audio Capture](https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py): `app.py`
- [Note Results](https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py): `app.py`

### Note Processing

- [Recorded Audio](https://github.com/amanpriyanshu/medtranslate-360/blob/main/sample.wav): `sample.wav`
- [Speech Transcription](https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py): `app.py`
- [Medical Transcript](https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py): `app.py`
- [Note Translation](https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py): `app.py`
- [Identifier Censoring](https://github.com/amanpriyanshu/medtranslate-360/blob/main/app.py): `app.py`

### AI Services

- **Gemini Service**
- **Whisper Model**

### Other components

- **Clinician**

## Connections

- Clinician → Streamlit Interface: uses (evidence: `README.md`)
- Streamlit Interface → Audio Capture: starts capture (evidence: `app.py`)
- Audio Capture → Recorded Audio: writes audio (evidence: `app.py`)
- Streamlit Interface → Speech Transcription: invokes (evidence: `app.py`)
- Speech Transcription → Recorded Audio: reads audio (evidence: `app.py`)
- Speech Transcription → Whisper Model: transcribes with (evidence: `app.py`)
- Speech Transcription → Medical Transcript: produces (evidence: `app.py`)
- Streamlit Interface → Note Translation: invokes on request (evidence: `app.py`)
- Note Translation → Gemini Service: generates translation (evidence: `app.py`)
- Streamlit Interface → Identifier Censoring: invokes on request (evidence: `app.py`)
- Identifier Censoring → Gemini Service: generates censored note (evidence: `app.py`)
- Note Translation → Medical Transcript: uses transcript (evidence: `app.py`)
- Identifier Censoring → Medical Transcript: uses transcript (evidence: `app.py`)
- Streamlit Interface → Note Results: displays (evidence: `app.py`)
- Note Translation → Note Results: supplies translation (evidence: `app.py`)
- Identifier Censoring → Note Results: supplies censored note (evidence: `app.py`)
