Skip to content

acozy03/RadmappingPlus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

RadMapping+

RadMapping+ is a centralized platform for managing radiologist schedules, specialties, facility assignments, licensing, and workload analytics, along with other provider-related information. It integrates real-time data sync from Google Sheets with a secure Supabase backend and a Flask-based web dashboard.


Table of Contents


Visual Demo

Landing Page

Landing Page

  • Navigate to any page here upon landing on the site after authentication

Daily Schedule

Daily Schedule

  • Navigate day-by-day by hour with color-coded availability and RVU
  • Tooltips and modals for more details
  • Special tags for PRN and other shift types

Monthly Schedule

Monthly Schedule

  • View entries at a glance
  • Pinned and sorted doctors
  • Color coded by shift type

Capacity

Capacity

  • View gaps based on expected vs actual RVU/hour
  • Search by facility, state, and hour block

Doctor Directory

Doctor Directory

  • Search doctors, filter by active status
  • Pinned doctors prioritized

Doctor Profile

Doctor Profile

  • View/edit doctor info, facility assignments, and licenses
  • Changes are audit-logged

Facilities Directory

Facilities Directory

  • Search facilities, filter by status or state
  • Prioritized facilities feature

Facility Profile

Facility Profile

  • View facility info and assigned doctors
  • Facility-specific contact info

Specialties

Specialties

  • See specialty-to-doctor assignments

Licenses

Licenses

  • View/edit licenses
  • Expired licenses are auto-detected

Vacations

Vacations

  • View current and upcoming vacations

Information

Information

  • Provider-related policies and notes

Contacts

Contacts

  • Contact management with roles

Audit Log

Audit Log

  • View all changes from admins or sync
  • Searchable by field

RAG AI Assistant

RAG AI Assistant

  • Converts user questions into SQL using OpenAI + LlamaIndex

Authentication & Roles

  • Google OAuth via Supabase
  • Role-based access (Admin vs User)

Tech Stack

  • Backend: Python + Flask
  • Frontend: HTML, Jinja2, TailwindCSS
  • Database: Supabase (PostgreSQL + Auth + Storage)
  • AI Integration: OpenAI, LlamaIndex
  • Scheduling APIs: Google Sheets API
  • Data Processing: Pandas, openpyxl
  • Deployment: Docker-compatible, uses environment variables

Setup

1. Clone the repo

git clone https://github.com/acozy03/RadmappingPlus.git
cd RadMapping+

2. Create .env file

SUPABASE_URL=
SUPABASE_KEY=
SECRET_KEY=
SUPABASE_SUPER_KEY=
OPENAI_API_KEY=
OPENAI_ORG_ID=
SUPABASE_DB_URL=

3. Install dependencies

pip install -r requirements.txt

4. Run the app

python -m flask run

5. Re-Deploy to Google Cloud

gcloud builds submit --tag gcr.io/project-id/project-name
gcloud run deploy flask-app \
  --image gcr.io/project-id/project-name \
  --platform managed \
  --region region \
  --allow-unauthenticated \
  --env-vars-file .env.yaml

Security

  • Supabase Auth controls user access
  • All writes are logged with user IDs via audit logging
  • Editable sections are role-locked

Roles

Role Capabilities
Admin Full edit access to all modules and fields (CRUD ops)
User View-only access to the platform

Promote a User to Admin

  1. In Supabase, go to Authentication and copy the UID.

  2. Navigate to the users table.

  3. Click Insert Row:

    • Paste UID into id
    • Set role to admin

Demote a User

  1. Find user in users table

  2. Either:

    • Delete the row
    • Or change role to user

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •