Project Story

Inspiration

Healthcare providers face a challenging task when diagnosing patients, often needing to consider hundreds of potential conditions based on limited clinical observations. We were inspired to create DxSonar after seeing how AI could assist in this complex decision-making process. By leveraging Perplexity's Sonar API, we saw an opportunity to build a tool that could analyze clinical data, generate evidence-based differential diagnoses, and provide supporting research—all in a fraction of the time it would take a provider to manually research each possibility.

What We Learned

Throughout this project, we gained valuable insights into clinical workflows and the challenges healthcare providers face when making diagnostic decisions. We learned how to effectively use Perplexity's Sonar API to conduct deep medical research, extract relevant diagnostic insights from clinical observations, and present these findings in an accessible format for healthcare professionals. We also explored the complexities of building healthcare solutions that must be both technically robust and clinically relevant.

How We Built It

DxSonar was built using a microservices architecture to ensure scalability and maintainability:

  1. API Gateway (Go): We developed a robust gateway using Go to handle request routing, authentication, and service orchestration.
  2. Clinical NLP Service (Python/FastAPI): This service processes clinical notes and extracts key symptoms, signs, and patient information.
  3. Diagnosis Extraction Service (Python/FastAPI): The core of our application, which uses Perplexity's Sonar API to research potential diagnoses based on the extracted clinical data.
  4. Frontend (Next.js/TypeScript): A clean, intuitive interface designed specifically for healthcare providers to input patient data and review diagnostic suggestions.

Challenges

We faced several significant challenges:

  1. Enterprise-Level Architecture: As a self-taught developer, designing a robust, enterprise-grade application architecture was my biggest challenge. I spent considerable time researching microservices patterns and best practices to ensure DxSonar would be scalable and maintainable.

  2. Limited Operational Experience: Having primarily built smaller applications for personal needs or to fix specific problems, orchestrating multiple services and handling cross-service communication presented a steep learning curve.

  3. Development Environment Complexity: Setting up a consistent development environment that accurately mirrors the production deployment across multiple services required significant effort and troubleshooting.

  4. API Integration Planning: Designing the application to effectively leverage Perplexity's Sonar API while maintaining flexibility for future enhancements required careful planning and multiple iterations.

  5. Technical Debt Management: As a solo developer building an ambitious project, balancing rapid development with code quality and documentation was an ongoing challenge.

Built with

  • Go (Echo framework)
  • Python (FastAPI)
  • Next.js
  • TypeScript
  • React
  • Perplexity Sonar API
  • Docker
  • PostgreSQL
  • gRPC
  • Redis

"Try it out" links

https://github.com/AllProAI/dxsonar

Built With

Share this project:

Updates