AI-Powered Medical Documentation Assistant
Streamlining healthcare documentation with intelligent transcription, coding, and clinical note generation
ScribeMed is a comprehensive healthcare documentation platform that leverages AI to automate medical transcription, clinical coding, and documentation workflows. Built as a modern monorepo, it provides scalable microservices architecture for healthcare organizations seeking to reduce administrative burden and improve documentation accuracy.
- Real-time Audio Transcription - High-accuracy speech-to-text for clinical encounters
- Intelligent Documentation - AI-powered clinical note generation
- Automated Coding - ICD-10 and CPT code suggestions
- Authentication & Authorization - Secure login with MFA, refresh sessions, and RBAC
- RAG-Powered Retrieval - Context-aware information retrieval
- FHIR Integration - Standards-compliant healthcare data exchange
- Agent Orchestration - Coordinated multi-service workflows
- Multi-Platform - Web, mobile, and admin interfaces
Ensure you have the following installed:
- Node.js ≥ 18.0.0
- PNPM ≥ 8.0.0
- Docker & Docker Compose
- PostgreSQL 15+
# Clone the repository
git clone https://github.com/Sakeeb91/scribemed.git
cd scribemed
# Install dependencies
pnpm install
# Set up environment variables
cp .env.example .env
# Edit .env with your configuration
# Run database migrations
pnpm run db:migrate
# Seed development database (optional)
pnpm run db:seed:dev
# Start all services in development mode
pnpm run dev| Command | Description |
|---|---|
pnpm dev |
Start all services in development mode |
pnpm build |
Build all packages and services |
pnpm test |
Run all unit and integration tests |
pnpm test:unit |
Run unit tests only |
pnpm test:integration |
Run integration tests only |
pnpm lint |
Lint all code |
pnpm format |
Format all code with Prettier |
pnpm format:check |
Check code formatting |
pnpm type-check |
Run TypeScript type checking |
pnpm db:migrate |
Run database migrations |
pnpm db:migrate:info |
Show migration status |
pnpm db:migrate:undo |
Rollback last migration |
pnpm db:seed:dev |
Seed development database |
pnpm clean |
Clean all build artifacts and node_modules |
pnpm --filter @scribemed/auth-service dev # run the REST API locally
pnpm --filter @scribemed/auth-service test # execute auth service tests
Required environment variables for local execution:
AUTH_SERVICE_PORTJWT_ACCESS_TOKEN_SECRET/JWT_REFRESH_TOKEN_SECRETSESSION_TTL_HOURSPASSWORD_RESET_TOKEN_TTL_MINUTESMFA_ISSUER
scribemed/
├── apps/ # End-user applications
│ ├── web/ # Web application
│ ├── mobile/ # Mobile application
│ ├── admin-portal/ # Admin dashboard
│ └── api-gateway/ # API gateway service
│
├── services/ # Backend microservices
│ ├── auth/ # Authentication & authorization service
│ ├── transcription/ # Audio transcription service
│ ├── documentation/ # Clinical note generation
│ ├── coding/ # Medical coding service
│ ├── rag/ # Retrieval-augmented generation
│ ├── agent-orchestrator/ # Service orchestration
│ ├── audio-capture/ # Audio capture service
│ └── fhir-adapter/ # FHIR integration
│
├── packages/ # Shared libraries
│ ├── database/ # Database migrations & connection
│ ├── auth/ # Authentication utilities
│ ├── logging/ # Logging infrastructure
│ ├── monitoring/ # Monitoring & observability
│ ├── config/ # Configuration management
│ ├── types/ # Shared TypeScript types
│ ├── ui-components/ # Reusable UI components
│ └── utils/ # Common utilities
│
├── infrastructure/ # Infrastructure as code
│ ├── terraform/ # Terraform configurations
│ ├── kubernetes/ # K8s manifests
│ ├── docker/ # Docker configurations
│ └── scripts/ # Deployment scripts
│
└── docs/ # Documentation
├── architecture/ # Architecture documentation
├── api/ # API specifications
├── database/ # Database documentation
├── ci-cd/ # CI/CD documentation
├── compliance/ # Compliance documentation
└── runbooks/ # Operational runbooks
ScribeMed follows a monorepo architecture powered by Turborepo for efficient builds and task orchestration. The platform is organized into:
- Applications (
apps/) - User-facing interfaces and gateways - Services (
services/) - Independent microservices with specific responsibilities - Packages (
packages/) - Shared libraries and utilities - Infrastructure (
infrastructure/) - IaC and deployment configurations
Comprehensive documentation is available in the docs/ directory:
- Architecture Overview - System design and architecture decisions
- Database Documentation - Schema, migrations, and data dictionary
- API Documentation - API specifications and endpoints
- CI/CD Guide - Continuous integration and deployment
- Compliance - Healthcare compliance and security
- Runbooks - Operational procedures
-
Create a feature branch from
maingit checkout -b feature/your-feature-name
-
Make your changes with accompanying tests and documentation
-
Run quality checks before pushing
pnpm lint pnpm test pnpm build pnpm type-check -
Commit your changes (Husky will run lint-staged automatically)
git commit -m "feat: your feature description" -
Push and create a pull request referencing related issues
- Linting: ESLint with TypeScript support
- Formatting: Prettier with consistent configuration
- Type Checking: TypeScript strict mode
- Testing: Node.js built-in test runner
- Pre-commit Hooks: Husky + lint-staged
We welcome contributions! Please see our Contributing Guide for:
- Development setup instructions
- Code style guidelines
- Commit message conventions
- Pull request process
- Code follows project style guidelines
- Tests added/updated and passing
- Documentation updated
- Linting and type checking passes
- No breaking changes (or documented if necessary)
ScribeMed handles Protected Health Information (PHI) and adheres to healthcare compliance standards:
- HIPAA compliance considerations
- FHIR standards for healthcare data exchange
- Secure credential management via AWS Secrets Manager
- Environment-specific security configurations
For security concerns, please contact the maintainers directly.
This project is private and proprietary. All rights reserved.
Built for healthcare professionals