A modern web application that provides AI-powered clinical assistance for healthcare providers. Built with React, FastAPI, and OpenAI integration.
- AI-Powered Chat Interface: Interactive chat with AI agents for clinical assistance
- Patient Context Management: Secure patient data integration with SMART on FHIR
- Clinical Summaries: Automated generation of patient summaries and medication insights
- Modern Tech Stack: React 19, FastAPI, TypeScript, and comprehensive testing
- React 19 with TypeScript
- VA Clinical Design System (VACDS) for UI components
- React Router v7 for navigation
- Zustand for state management
- TanStack Query for server state
- AI SDK for chat functionality
- SMART on FHIR for healthcare authentication
- FastAPI with Python 3.13
- OpenAI Agents framework
- Azure OpenAI integration
- Pydantic for data validation
- LangSmith for observability
- MCP (Model Context Protocol) for external integrations
- Node.js 22.18.0 LTS
- Python 3.13.1+
- Git
-
Clone the repository
git clone <repository-url> cd ai-assist
-
Install dependencies
# Install all dependencies pnpm setup -
Configure environment variables
# Frontend cp apps/web/.env.example apps/web/.env.local # Backend cp apps/api/.env.example apps/api/.env
-
Start development servers
# Start both frontend and backend pnpm dev # Or start individually pnpm dev:web # Frontend at http://localhost:3000 pnpm dev:api # Backend at http://localhost:8080
This project enforces high code quality standards:
# Run all quality checks
pnpm check:all
# Format code
pnpm format
# Lint code
pnpm lint
# Type check
pnpm typecheck# Run all tests
pnpm test
# Frontend tests only
pnpm test:web
# Backend tests only
pnpm test:apiai-assist/
├── apps/
│ ├── web/ # React frontend
│ │ ├── src/
│ │ │ ├── components/ # Reusable components
│ │ │ ├── pages/ # Route pages
│ │ │ ├── hooks/ # Custom hooks
│ │ │ └── stores/ # Zustand stores
│ │ └── package.json
│ │
│ └── api/ # FastAPI backend
│ ├── app/
│ │ ├── routers/ # API routes
│ │ ├── services/ # Business logic
│ │ ├── models/ # Data models
│ │ └── agents/ # AI agents
│ └── pyproject.toml
│
├── docs/ # Documentation
└── package.json # Root scripts
Frontend (apps/web/.env.local):
VITE_API_URL- Backend API URLVITE_SMART_CONTAINER_URL- SMART on FHIR container URLVITE_AUTH_CLIENT_ID- OAuth client ID
Backend (apps/api/.env):
AZURE_OPENAI_ENDPOINT- Azure OpenAI endpointAZURE_OPENAI_API_KEY- Azure OpenAI API keyCORS_ORIGINS- Allowed CORS originsENVIRONMENT- Environment (development/staging/production)
When running locally, API documentation is available at:
- Swagger UI: http://localhost:8080/docs
- ReDoc: http://localhost:8080/redoc
- OpenAPI Schema: http://localhost:8080/openapi.json
- Fork the repository
- Create a feature branch
- Make your changes
- Run quality checks:
pnpm check:all - Write tests for new functionality
- Submit a pull request
This project uses Conventional Commits:
feat(web): add dark mode toggle
fix(api): resolve authentication issue
docs: update README with setup instructionsThis project is licensed under the MIT License - see the LICENSE file for details.
For questions and support, please open an issue in the repository.