v0.1.0-alpha
Transform dental appointment recordings into professional clinical notes with AI!
NoteSmith automatically transcribes your appointment recordings and generates structured clinical documentation using customizable templatesβsaving you hours of administrative work while maintaining HIPAA compliance.
πΊπΈ US users: For production use with live patient data, it is critical to read the HIPAA notes, and ensure your usage is in compliance with state and federal laws and regulations. Take patient privacy seriously!
Designed with healthcare security requirements in mind:
- Encrypted data storage
- Row-level security policies
- Comprehensive audit logging
- Role-based access control
Upload appointment recordings and receive accurate transcripts powered by OpenAI, Anthropic, or your AI provider of choice. Supports MP3, WAV, M4A, and other common audio formats up to 100MB. (On roadmap: multi-part audio support, for longer appointments or conversations)
Automatically extract clinical information from transcripts:
- Chief complaints
- Procedures performed
- Clinical findings
- Treatment recommendations
Generate professional clinical notes using built-in or custom templates:
- SOAP - Subjective, Objective, Assessment, Plan
- DAP - Data, Assessment, Plan
- Narrative - Free-form clinical notes
- Custom - Create your own templates
Export finalized notes in multiple formats:
- PDF for printing and archival
- DOCX for further editing
- Python 3.13 or higher
- Node.js 20 or higher
- A Supabase account (free tier works for development)
- An OpenAI API key
-
Clone the repository
-
Run the setup script (recommended)
On macOS/Linux/Git Bash:
chmod +x setup.sh ./setup.sh
On Windows PowerShell:
.\setup.ps1
This will check prerequisites, install all dependencies, and create config files.
Or set up manually:
Backend:
cd backend python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -e ".[dev]" cp env.example .env
Frontend:
cd frontend npm install cp env.example .env.local -
βοΈ Configure Supabase
- Create a new project at supabase.com
- Run the migrations in
supabase/migrations/via the SQL editor - Create a storage bucket named
recordings - Copy your project URL and keys
-
ποΈ Configure environment variables
Find your Supabase keys at: Dashboard β Settings β API
Backend (
backend/.env):SUPABASE_URL=https://your-project.supabase.co SUPABASE_SERVICE_ROLE_KEY=your-secret-key # "service_role" or "secret" key OPENAI_API_KEY=sk-your-openai-key SECRET_KEY=generate-a-random-string REDIS_URL=redis://localhost:6379/0Note: JWT verification uses Supabase's JWKS public key endpoint automatically. No JWT secret configuration needed!
Frontend (
frontend/.env.local):NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your-publishable-key # "anon" or "publishable" key NEXT_PUBLIC_API_URL=http://localhost:8000
Option 1: π³ Docker Compose (Recommended)
docker-compose upOnce all containers are running, visit http://localhost:3000 and create a login!
Option 2: βοΈ Manual
Terminal 1 - Backend:
cd backend
source venv/bin/activate # or venv\Scripts\activate on Windows
uvicorn app.main:app --reloadTerminal 2 - Frontend:
cd frontend
npm run devTerminal 3 - Redis (required for background jobs):
docker run -p 6379:6379 redis:7-alpineTerminal 4 - Celery Worker (optional, for async processing):
cd backend
celery -A app.workers.celery_app worker --loglevel=info-
π Open the application
Navigate to http://localhost:3000
- Sign up for an account
- Create an appointment from the dashboard
- Upload a recording of your dental appointment
- Wait for transcription (usually under 2 minutes)
- Generate a note by selecting a template
- Review and edit the generated content
- Export to PDF or DOCX
Default templates are provided for SOAP, DAP, and Narrative formats. To create custom templates:
- Go to Templates in the sidebar
- Click New Template
- Use placeholders like
{{ chief_complaint }},{{ procedures }},{{ findings }} - Save and use for future note generation
NoteSmith supports multiple AI providers for transcript analysis:
| Provider | Best For | Setup |
|---|---|---|
| OpenAI (default) | Best quality | Set OPENAI_API_KEY |
| Anthropic | Alternative cloud | Set ANTHROPIC_API_KEY |
| Ollama | Local/private | Run Ollama locally |
Change the default provider with DEFAULT_LLM_PROVIDER environment variable.
When running, visit:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
notesmith/
βββ backend/ # Python FastAPI server
βββ frontend/ # Next.js web application
βββ supabase/ # Database migrations
βββ docker-compose.yml
For production healthcare use:
- Supabase: Upgrade to Enterprise plan and execute a BAA
- OpenAI: Contact OpenAI for a BAA covering Whisper and GPT APIs
- Hosting: Deploy on HIPAA-compliant infrastructure
- Review: Conduct a security assessment before handling real PHI
This software is designed to support HIPAA compliance but requires proper configuration and agreements with service providers.
For issues and feature requests, please open a GitHub issue.
Private - All rights reserved