Skip to content

Devasy/Hwiz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Hwiz - Health Analyzer 🩺

An open-source Flutter app for analyzing and visualizing blood report trends over time using AI.

🎯 Project Vision

Track your family's health by uploading blood test reports (images or PDFs), automatically extracting data using Google Gemini AI, and viewing beautiful trend charts for each parameter over time.

✨ Key Features

  • πŸ“Έ AI-Powered OCR: Upload blood report images/PDFs, extract data automatically
  • πŸ‘₯ Multi-Profile Support: Track reports for multiple family members
  • πŸ“Š Trend Visualization: Beautiful charts showing parameter trends over time
  • πŸ”’ Privacy First: All data stored locally using SQLite
  • 🎯 Smart Normalization: Handles different parameter naming conventions across labs
  • πŸ“± Cross-Platform: Works on Android, iOS, and Web

πŸ—οΈ Project Structure

Hwiz/
β”œβ”€β”€ health_analyzer/              # Main Flutter app
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ models/              βœ… Data models
β”‚   β”‚   β”œβ”€β”€ viewmodels/          πŸ“ State management (to be implemented)
β”‚   β”‚   β”œβ”€β”€ views/               πŸ“ UI screens (to be implemented)
β”‚   β”‚   β”œβ”€β”€ services/            βœ… Business logic & APIs
β”‚   β”‚   └── utils/               βœ… Constants & utilities
β”‚   β”œβ”€β”€ README.md                # Detailed app documentation
β”‚   β”œβ”€β”€ QUICK_START.md           # Getting started guide
β”‚   β”œβ”€β”€ IMPLEMENTATION_GUIDE.md  # Development roadmap
β”‚   β”œβ”€β”€ CODE_EXAMPLES.md         # Copy-paste ready code
β”‚   β”œβ”€β”€ CHECKLIST.md             # Implementation checklist
β”‚   └── ARCHITECTURE.md          # System architecture diagrams
└── README.md                    # This file

πŸš€ Current Status

Phase 1: Foundation - COMPLETE βœ…

  • βœ… Complete backend architecture (40% of total project)
  • βœ… SQLite database with optimized schema
  • βœ… Google Gemini AI integration for OCR
  • βœ… Parameter normalization engine (handles naming variations)
  • βœ… Document picker (images & PDFs)
  • βœ… All data models and services
  • βœ… Comprehensive documentation

Phase 2: Core UI - IN PROGRESS 🚧

  • βœ… Project initialization and setup
  • βœ… API key management with validation
  • βœ… Dynamic model selection from Gemini API
  • βœ… Profile management system (COMPLETE!)
    • βœ… Create/Edit/Delete profiles
    • βœ… Profile list with statistics
    • βœ… Home dashboard with navigation
  • βœ… Report scanning interface (COMPLETE!)
    • βœ… Camera capture
    • βœ… Gallery picker
    • βœ… PDF upload
    • βœ… AI-powered OCR extraction
    • βœ… Report viewing and management
  • πŸ”œ Trend visualization charts

Phase 3: Polish & Features (Coming Soon)

  • Advanced visualizations
  • Export and sharing features
  • Health insights

πŸ’‘ The Core Problem We Solve

Problem: Blood test reports use inconsistent parameter names across different labs:

  • One lab writes "RBC Count"
  • Another writes "RBC"
  • Another writes "Red Blood Cells"

Solution: Multi-layer normalization system:

  1. AI normalization during extraction
  2. LOINC-based mapping table (100+ variations)
  3. Fuzzy matching for unknown parameters
  4. Result: Consistent database keys β†’ Perfect visualizations!

πŸ› οΈ Technology Stack

  • Framework: Flutter (Dart)
  • Database: SQLite (local storage)
  • AI/OCR: Google Gemini 1.5 Pro API
  • Charts: FL Chart
  • State Management: Provider (MVVM pattern)
  • Security: flutter_secure_storage

πŸ“Š Architecture Highlights

Database Schema

profiles β†’ reports β†’ blood_parameters
   ↓          ↓            ↓
  Name    Test Date   Parameter Name (normalized)
          Lab Name    Parameter Value
          Image Path  Unit & Reference Ranges

Data Flow

Upload Report β†’ Gemini API β†’ Normalize Parameters β†’ SQLite β†’ Charts

🎯 Use Case Example

Your father wants to track his RBC count over time:

  1. Add Profile: Create "Father" profile
  2. Scan Report: Upload blood test image from January
  3. Auto-Extract: AI extracts "RBC: 5.1"
  4. Normalize: "RBC" β†’ rbc_count (standardized)
  5. Save: Stored in local database
  6. Repeat: Add more reports over months
  7. Visualize: View trend chart showing RBC changes from Jan to Oct

πŸ’° Cost Analysis

Gemini API Pricing:

  • ~$0.001 per report scan (less than 1 cent!)
  • 1000 scans = ~$1
  • Perfect for personal/family use

🚦 Getting Started

Prerequisites

  • Flutter SDK (>= 3.0.0)
  • Dart SDK (>= 3.0.0)
  • Google Gemini API key (free from Google AI Studio)

Quick Start

cd health_analyzer
flutter create . --project-name health_analyzer
flutter pub get
flutter run

See QUICK_START.md for detailed instructions.

πŸ“š Documentation

🎯 Roadmap

MVP (2-3 weeks)

  • Backend architecture (DONE)
  • Project initialization (DONE)
  • API key management (DONE)
  • Profile management UI (DONE)
  • Report scanning UI (DONE)
  • Trend visualization
  • Polish and refinement

Future Enhancements

  • More report types (lipid panel, thyroid, etc.)
  • Medication tracking
  • Export to PDF
  • Share with doctors
  • Cloud backup (encrypted)
  • Multi-device sync

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Devasy Patel (@Devasy23)

πŸ™ Acknowledgments

  • Google Gemini API for AI-powered extraction
  • Flutter team for the amazing framework
  • FL Chart for beautiful visualizations
  • The open-source community

⚠️ Disclaimer

This app is for personal health tracking only and should not be used as a substitute for professional medical advice. Always consult with qualified healthcare providers for medical decisions.


Status: Foundation Complete (40%) | Next: UI Implementation (60%)

Made with ❀️ for better health tracking

About

An open-source Health reports visualizing app

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors