| __tests__ | ||
| .bundle | ||
| .cursor/rules | ||
| android | ||
| app | ||
| ios | ||
| .env | ||
| .eslintrc.js | ||
| .gitignore | ||
| .prettierrc.js | ||
| .watchmanconfig | ||
| app.json | ||
| App.tsx | ||
| babel.config.js | ||
| Gemfile | ||
| index.js | ||
| jest.config.js | ||
| metro.config.js | ||
| package-lock.json | ||
| package.json | ||
| PROJECT_STRUCTURE.md | ||
| react-native.config.js | ||
| README.md | ||
| setup.bat | ||
| setup.sh | ||
| THEME_FLOW.md | ||
| tsconfig.json | ||
NeoScan Physician App
A comprehensive React Native application designed for physicians to review AI-powered medical imaging predictions, manage patient cases, and provide clinical insights to improve AI diagnostic accuracy.
Design & Developed by Tech4Biz Solutions
Copyright (c) Spurrin Innovations. All rights reserved.
📋 Table of Contents
- 🚀 What is NeoScan Physician App?
- 🎯 Key Features
- 🏗️ How the App Works
- 🛠️ What You Need to Get Started
- ⚡ Quick Start Guide
- 📁 Understanding the Project Structure
- 🔧 Development Workflow
- 🚨 Common Issues & Solutions
- 📚 Learning Resources
- 🤝 Getting Help
🚀 What is NeoScan Physician App?
NeoScan Physician App is a mobile application that helps doctors (physicians) work with AI-powered medical imaging. Think of it as a smart assistant that:
- Shows AI predictions about what might be wrong in medical scans
- Lets doctors review these AI suggestions and provide feedback
- Helps improve AI accuracy over time through expert medical input
- Manages patient cases and medical imaging files (DICOM images)
🎯 Who is this for?
- Physicians who review medical imaging
- Medical students learning about AI in healthcare
- Developers building healthcare applications
- Anyone interested in AI-powered medical technology
🎯 Key Features
🔐 User Management
- Login/Registration: Secure access with email and password
- Hospital Integration: Connect to specific medical institutions
- Profile Management: Update personal information
📊 Dashboard Overview
- Statistics: View total predictions, patients, and feedback rates
- Performance Metrics: Track AI confidence scores and accuracy
- Quick Actions: Access common tasks and recent cases
👥 Patient Management
- Patient List: Browse all patients in the system
- Case Details: View comprehensive patient information
- Medical History: Access patient records and imaging data
🖼️ AI Analysis & Imaging
- DICOM Viewer: View high-quality medical images with Cornerstone.js integration
- AI Predictions: Review automated diagnostic findings with confidence scores (e.g., 98.6%)
- Finding Categories: Stroke detection, hemorrhage analysis, anatomical findings
- Severity Classification: High/Medium/Low risk stratification
- Finding Localization: Precise visualization of pathological findings
- Image Controls: Zoom, frame view with slider.
⚙️ Settings & Preferences
- App Configuration: Customize notification and display settings
- Account Management: Update passwords and personal information
- Privacy Controls: Manage data sharing and security preferences
🏗️ How the App Works
🔄 User Journey Flow
1. Login → 2. Dashboard → 3. Patient List → 4. Case Review → 5. AI Analysis → 6. Feedback
Step-by-Step Process:
- Login: Physician enters credentials and accesses the app
- Dashboard: Overview of current cases and statistics
- Patient List: Browse and search for specific patients
- Case Review: Open patient details and view medical information
- AI Analysis: Review AI predictions alongside medical images
- Feedback: Provide clinical validation and notes
🔐 User Onboarding Flow
The app supports two ways for physicians to join:
A. Self-Registration (via App)
- Start App Signup → Physician enters email address
- Email Check → If email exists, show "Already Registered" and redirect to Login
- Set Password → Create secure password
- Enter Personal Info → Complete profile information
- Upload ID Proof → Verify credentials
- Select Hospital → Choose affiliated hospital → Wait for admin approval
Note: Upon self-registration, a physician's status is set to 'Inactive' by default. The hospital administrator must review and approve the registration by changing the status to 'Active'.
B. Admin-Created Physician
- Admin creates physician account in the system
- Login credentials sent to physician's registered email address
- Physician logs in using received credentials
- Upload ID Proof → Complete verification
- Reset Password → Access Dashboard
📊 Case Review Workflow
- Select Case: Choose from patient queue or search
- View DICOM: Access medical imaging files
- Review AI: Analyze AI predictions and confidence scores
- Provide Feedback: Submit validation (Agree/Partially Agree/Disagree)
- Add Notes: Optional clinical observations
- Complete Review: Case marked as reviewed
📊 Data Flow
User Action → App Request → AI Analysis → Results Display → Feedback Collection → AI Learning
📝 Advanced Feedback System
- Binary Validation: Positive (✅) or Negative (❌) feedback
- Clinical Notes: Detailed observations and suggestions
- Performance Improvement: Feedback data enhances AI accuracy
- Quality Metrics: Continuous validation performance tracking
- Finding Validation: Validate specific findings like hemorrhage types, midline shift, etc.
🛠️ What You Need to Get Started
Essential Requirements
- Computer: Windows, macOS, or Linux
- Node.js: Version 18.0.0 or higher (download from nodejs.org)
- Git: For downloading the project (download from git-scm.com)
- Code Editor: Visual Studio Code (recommended) or any text editor
Technology Stack
- React Native 0.79.0: Cross-platform mobile development
- TypeScript 5.x: Type-safe development with strict typing
- React Navigation 6: Navigation management and routing
- Redux Toolkit: Modern Redux with simplified patterns
- Redux Persist: Local storage for offline capability
- React Native Vector Icons: Comprehensive icon library
- WebView: DICOM image viewing with Cornerstone.js integration
For Mobile Development
- Android Development: Android Studio (for Android apps)
- iOS Development: Xcode (only on macOS, for iPhone apps)
Knowledge Prerequisites
- Basic JavaScript: Understanding of variables, functions, and objects
- React Basics: Components, props, and state (helpful but not required)
- Command Line: Basic familiarity with terminal/command prompt
⚡ Quick Start Guide
Step 1: Get the Project (2 minutes)
# Download the project
git clone <repository-url>
cd NeoScan_Physician
# Check if everything downloaded correctly
ls
# You should see folders like: app, android, ios, package.json
Step 2: Install Dependencies (3 minutes)
# Install all required packages
npm install
# Wait for installation to complete (this might take a few minutes)
Step 3: Start the App (2 minutes)
# Start the development server
npm start
# In a new terminal window, run on your phone/emulator
npm run android # For Android
npm run ios # For iOS (macOS only)
🎉 You're Done!
The app should now be running on your device or emulator. You can start exploring the code and making changes!
📁 Understanding the Project Structure
📱 Main App Folder (app/)
This is where all the main code lives:
app/
├── 🎯 modules/ # Different parts of the app
│ ├── 🔐 Auth/ # Login, registration, user management
│ ├── 📊 Dashboard/ # Main screen with statistics
│ ├── 👥 PatientCare/ # Patient management and case review
│ └── ⚙️ Settings/ # App settings and user preferences
├── 🔧 shared/ # Code used across multiple parts
│ ├── components/ # Reusable UI pieces (buttons, cards, etc.)
│ ├── utils/ # Helper functions and tools
│ └── types/ # Data structure definitions
├── 🎨 theme/ # Colors, fonts, and styling
├── 🧭 navigation/ # How users move between screens
├── 📦 store/ # Data management (Redux)
└── 📁 assets/ # Images, fonts, and other files
🤖 Platform-Specific Folders
android/: Android-specific code and settingsios/: iPhone-specific code and settings
📄 Configuration Files
package.json: Lists all the packages the app needstsconfig.json: TypeScript configurationmetro.config.js: React Native bundler settings
🏗️ High-Level Architecture
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ React Native │ │ Redux Store │ │ API Services │
│ App Layer │◄──►│ (State Mgmt) │◄──►│ (Backend) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Native Modules │ │ Local Storage │ │ DICOM Viewer │
│ (iOS/Android) │ │ (Redux Persist)│ │ (WebView) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
🔧 Development Workflow
🔄 Making Changes
- Edit Code: Modify files in the
app/folder - Save File: Changes automatically reload in the app
- Test Changes: See results immediately on your device
- Repeat: Keep iterating until it works perfectly
📝 Where to Start Making Changes
For UI Changes:
- Colors & Styling:
app/theme/colors.ts - Buttons & Cards:
app/shared/components/ - Screen Layouts:
app/modules/[ModuleName]/screens/
For New Features:
- New Screens:
app/modules/[ModuleName]/screens/ - New Functions:
app/modules/[ModuleName]/services/ - Data Management:
app/modules/[ModuleName]/redux/
For Bug Fixes:
- Authentication Issues:
app/modules/Auth/ - Patient Data Problems:
app/modules/PatientCare/ - Dashboard Issues:
app/modules/Dashboard/
🚨 Common Issues & Solutions
❌ "Metro bundler not starting"
# Clear the cache and restart
npm start -- --reset-cache
❌ "App not loading on device"
# Stop the server (Ctrl+C) and restart
npm start
# Then run again: npm run android (or ios)
❌ "Dependencies not working"
# Remove and reinstall packages
rm -rf node_modules package-lock.json
npm install
❌ "Build errors"
# Clean the build
cd android && ./gradlew clean && cd .. # For Android
cd ios && xcodebuild clean && cd .. # For iOS
❌ "TypeScript errors"
- Check that you're using the correct data types
- Look at existing code for examples
- Use the
anytype temporarily if stuck (not recommended for production)
📚 Learning Resources
🌐 Online Learning
- React Native: reactnative.dev - Official documentation
- JavaScript: javascript.info - Modern JavaScript tutorial
- TypeScript: typescriptlang.org - TypeScript handbook
📱 App Development Concepts
- Mobile Apps: How touch interfaces work
- State Management: Keeping track of app data
- API Integration: Connecting to backend services
- User Experience: Making apps easy to use
🔧 Development Tools
- VS Code: Best code editor for React Native
- React Native Debugger: Debug your app
- Flipper: Advanced debugging and inspection
🤝 Getting Help
📖 Self-Help Resources
- This README: Start here for basic questions
- Code Comments: Most code has helpful explanations
- Console Logs: Check the terminal for error messages
- React Native Docs: Official documentation and examples
👥 Team Support
- Code Reviews: Ask team members to review your changes
- Pair Programming: Work together on difficult problems
- Team Chat: Use your team's communication platform
🐛 When You're Stuck
- Read the error message carefully
- Check the console for more details
- Search online for similar problems
- Ask the team with specific details about your issue
- Take a break - sometimes solutions come when you step away
🚀 Next Steps
🎯 For Beginners
- Explore the code: Look at different files to understand structure
- Make small changes: Try changing colors or text
- Add a button: Create a simple new feature
- Read more code: Understand how different parts work together
🚀 For Intermediate Developers
- Add new features: Create new screens or functionality
- Improve existing code: Refactor and optimize
- Write tests: Ensure code quality and reliability
- Help others: Share knowledge with team members
🏆 For Advanced Developers
- Architecture improvements: Suggest better ways to structure code
- Performance optimization: Make the app faster and more efficient
- Security enhancements: Improve data protection and privacy
- Mentorship: Guide junior developers and share expertise
📄 Project Information
- Project Name: NeoScan Physician App
- Version: 0.0.1
- Technology: React Native 0.79.0 + TypeScript
- Target Platforms: iOS and Android
- Development Status: Active Development
🎉 Welcome to the Team!
You're now part of building something that could help doctors save lives through better AI-powered medical imaging. Every line of code you write contributes to improving healthcare technology.
Remember: There are no stupid questions. If something doesn't make sense, ask! The team is here to help you succeed.
This README is designed to help developers at all levels understand and contribute to the NeoScan Physician App. For additional support, please refer to the code comments or ask your team members.
Happy Coding! 🚀