leap
Python package for the Lifetime Exposures and Asthma outcomes Projection (LEAP) Model
Portfolio project that reads dental EOB PDFs, lets you review the draft, and exports an X12 835 or a PMS CSV. Not for real patient information.
HealthJavaScript · TypeScriptGitHub @shanifadhil33-blipOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A portfolio project that reads text-based dental Explanation of Benefits PDFs, drafts line items for a person to review, and exports an X12 835 file or a CSV for Dentrix, Eaglesoft, or Open Dental.
It is a learning project by Adhil. It is not for sale, not a HIPAA product, and not for real patient information. Use fictional documents only.Read the full README ↗A portfolio project that reads text-based dental Explanation of Benefits PDFs, drafts line items for a person to review, and exports an X12 835 file or a CSV for Dentrix, Eaglesoft, or Open Dental.
It is a learning project by Adhil. It is not for sale, not a HIPAA product, and not for real patient information. Use fictional documents only.
Live site: https://eob-reader.vercel.app
AI_PROVIDER=ollama to use a local Ollama server instead.audit_log table is unused, and so is payer_templates.npm install
npm run dev
The dev server listens on port 3020. Without Supabase env vars the marketing page and the demo still render. Google sign-in does not.
Copy the variables you need into .env.local. See .env.example.
Extraction tries providers in this order and skips any whose key is unset:
GEMINI_API_KEY — Google Gemini REST (generativelanguage.googleapis.com). Optional GEMINI_MODELS is a comma-separated list. The default is gemini-3.5-flash-lite,gemini-3.1-flash-lite,gemini-3.8-flash,gemini-2.5-flash-lite. Flash-Lite models are listed first because this key allows about 500 of those requests a day and about 20 Flash requests a day. A 429, 403, 404, or 5xx moves to the next model. Output is capped around 4000 tokens and asked for as JSON.GROQ_API_KEY — Groq’s OpenAI-compatible API. Optional GROQ_MODEL defaults to openai/gpt-oss-120b. That model spends tokens on reasoning, so the request asks for up to 6000 output tokens when they fit. Groq’s free tier allows about 8,000 tokens per minute and counts the prompt plus the max_tokens you request, so a long EOB gets a smaller ceiling. A request that still does not fit falls through.OPENROUTER_API_KEY — last resort. Same model order and request shape as before: google/gemini-2.5-flash, google/gemini-2.5-flash-lite, then meta-llama/llama-3.3-70b-instruct, with max_tokens 4000.Users never see the provider’s error text. A signed-in GET /api/ai-health pings the first model of each configured provider and does not return keys. Add ?all=1 to ping every model. That full check spends more of the daily quota.
Other variables:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY (keep-alive)NEXT_PUBLIC_APP_URLCRON_SECRET (keep-alive)AI_PROVIDER, OLLAMA_URL, OLLAMA_MODEL (optional local model)Apply supabase/migrations in order before using upload. 004_drop_billing_columns.sql drops leftover trial and Polar columns. Apply it by hand in the Supabase SQL editor. The app does not read those columns, so it works before the file is applied.
Questions: [email protected]