PartB DMS Document Management & Payment Tracking
Not signed in

Dashboard

Part B pipeline from document to payment — coding, billing, clearinghouse submission and collections across your organization structure. Auto-refreshes every 20s.

—
Loading dashboard…

Uploads

Load one or more PDFs. Extraction runs page-by-page in your browser, then the Flask backend applies your rules.

Drop PDFs or a folder of PDFs here

Files picks individual PDFs · Folder pulls every PDF inside (recursive). Drag-and-drop supports both.

No files uploaded yet

Drop PDFs above or click Browse to get started.

Testing / maintenance Duplicate index: —

Results

One row per patient. Click View to open that patient in Views.

Patients
0
No data
Files processed
0
—
Facilities
0
—
Physicians
0
—

No extracted data yet

Upload PDFs and run processing from the Uploads tab.

Views

Open a patient from Results to see Form, HTML, PDF, and JSON representations in one place.

No patient loaded yet

On the Results tab, click View on any row to open that patient here.

Extraction rules

Edit per-patient extraction rules. Rules are persisted on the backend.

Each rule runs once per patient block. between grabs text from start to end. regex uses a regex with group / flags. fallbackEnd is an optional list of alternative end markers.

Settings

Global archive toggle and SFTP destinations. Admin sign-in required to change.

Archive

When on, the original PDF and its index (patient list + page ranges) are pushed to every enabled SFTP site after processing. Turn off during testing.

SFTP destinations

Index orphan PDFs

Find PDFs on pull-mode SFTP sites that aren't indexed in MongoDB yet, pull each one through the browser, run the same extraction pipeline as manual uploads, and push the resulting index back to the same site.

Purge Document Vault

Deletes every document in the Document Vault — the archived copy on each SFTP destination included (— on file). Organizations, facilities, categories, dictionaries and keyword lists are kept, as is everything outside the Vault. Cleansing and Operations will show no source documents until new files are uploaded. This cannot be undone.

RCM Inferences (Claude)

Configuration for the RCM Inferences button in the Form View (next to Medical Conditions). Ports the Medicare Billing Analyzer's prompt to Claude and returns Claim Routing & Bundling, Part B Rationale, and Part A Rationale. API keys are stored on the server in data/rcm_settings.json.

Edits take effect on the next RCM Inferences click.

Standard Operating Procedures

Browse the SOP index, open attached documents in the viewer, and upload supporting files (PDF, DOCX, XLSX, images, TXT) to any entry.

— entries
SOP code Title Owner Action Files Source Actions
Loading…

Add SOP entry

Create a manual SOP entry. The next default code is suggested (SOP.M-N); override it if your team uses its own numbering. Attach files afterwards from the Browse view.

SOPs · Seed & admin

The seed Excel lives in the database. Replace it when your index workbook changes, then re-seed to upsert. Manual entries and uploaded attachments are preserved unless you explicitly purge them.

Seed file

Loading…
Download cached seed

Statistics

—

Purge

Each button asks for confirmation before deleting.

Document Vault

Pick an organization at the top to see its filed documents. Narrow further by facility, category, or month.

Pick an organization to see its documents, or leave blank for all.
0 documents
Org ID Document Organization Facility Category Patient Month Size Uploaded Actions
Loading…

MAR / TAR uploads

Monthly MAR / TAR files filed from the Workspace. Each one is kept whole and split into one document per patient.

0 files
Org ID Monthly file Sub-facility Month Type Pages Patients Filed Actions
Loading…

Upload to Document Vault

File one or more documents against an organization, facility, category, and month. Files stream to MongoDB (GridFS).

The site everything is filed under. Pick this first.
Filled in from the sub-facility — used for invoicing only.
PDFs, images, and Office docs are all accepted (up to 1 GB per request).
Reads the Patient ID printed inside the PDF, files each patient's pages under that ID, and replaces any earlier MAR for the same patient so only the most current version is kept.

Bulk upload

Drop files from any number of organizations at once. Each filename is read for its organization, sub-facility, month and category, and filed automatically. Anything that doesn't match lands in the log below, where you can correct it — and teach the dictionary so the same spelling is recognised next time.

File types

Every type is accepted. Click a type to show only those rows.

Choose files

Pattern: Category_Organization_Sub-facility_Month.ext — e.g. Rejected_Foltscare LLC_WeCare at Sycamore Rehabilitation and Nursing_5-2026.xlsx. Order doesn't matter; any part the filename omits can be filled in below.
Used only for files whose name has no month.
Used only for files whose name matches no category.
Adds each fix to the filename dictionary so the same spelling is matched automatically from then on.

Dictionaries

Add and remove the entities used to file documents. Deleting an organization or facility also deletes every document under it. Deleting a category only removes it from the picker — historical documents keep their tag.

Organization tree —

Groups sit above organizations for administration only — they do not change what any user can see. Every site carries an Org ID, which bulk upload also recognises in filenames. Codes never change; the tree never deletes — mark a site inactive instead.

Export Excel

Organizations

    Facilities

      Keywords —

        Filename aliases —

        How a spelling that appears in filenames maps to an entity — "Foltscare LLC" → We Care (FOLTSCARE, LLC). Bulk upload consults this first, so one entry fixes every future file that spells it the same way. Corrections made in the bulk-upload log land here automatically.

          Categories

            Cleansing · Billing Workflow patients

            Filter uploaded Billing Workflow documents by organization, facility, and month. The app parses every matching workbook, groups rows by patient identifier, and shows one compact card per patient — steady values as text, varying values as dropdowns.

            Patient Lookup

            Search the persisted patient store by Patient ID, name or physician. Every patient that reaches the Cleansing stage is saved to the database with its coding & billing status.

            Enter a Patient ID (or name) and press Search.

            Operations · Coding

            Fetch one claim at a time from the Coding bucket — the records that passed L1 validation in Cleansing. Each fetch assigns a single patient claim to you; complete the L2 validation in PCC as you code. Fill the Medical Coding section, then set the status to Move to Billing to hand it to the Billing team.

            No claims assigned yet. Pick a scope and press Fetch next claim.

            Operations · Billing

            Auto-fetch claims that coders have moved to billing. You only see claims assigned to you. Fill the Billing section for each.

            No billing claims assigned yet. Press Fetch next claim.

            Payment Tracking Sheets

            Every uploaded sheet becomes a Payment Tracking Sheet (PTS) — a scrollable, paginated grid of the payment and denial records, ready for analysis and reporting.

            Payment Tracking · Dashboard

            Every standing report, drawn. Pick a facility and a period; each chart is a tile you can click to open at reading size.

            Payment Tracking · Reports

            Pick the facility, payers and period once, then read the same records many ways — one report per tab. Every report shows what was billed, what was paid, what is still owed and an estimate of what may still come in.

            Generated for the scope below Not generated yet Generated, but no data in this scope

            Every facility · Lifetime

            Which uploaded sheets to read. None selected = all of them.

            Sets From/To to that whole month.

            Advanced options Which date the period uses, how claims are counted, the estimate rate, and more. Each report sets these itself.

            Each report sets this itself.

            One row per facility, payer, status…

            Adds a column per month, quarter or year.

            A column per payer, status… instead of per period.

            Needs a period with both ends set.

            Lines that share this number count as one claim.

            The rest roll into one Other row.

            Expected Payment = what is still owed × this rate. It is a guess, not a contracted amount.

            Or set a different estimate rate per aging bucket

            Spellings like “AETNA” and “Aetna” are read as one payer. See and adjust which names are merged.
            Pick a report above, set the scope, then press Generate this report.

            Upload Payment Tracking Sheet

            Built for large exports — 30,000–40,000 records import in one pass. Headers are matched by name; blank headers take the canonical PTS name for their position and anything after Invoice Quickbook link is ignored.

            .xlsx, .xlsm or .csv. A 40k-row workbook takes about 20 seconds.

            Defaults to the file name.

            PTS column schema (41 columns)

              Coverage & retention

              What each site is expected to send and whether it arrived, and which documents have now outlived the period you keep them for.

              Did it arrive?

              Nothing is expected until you say so — an expectation nobody set is not a gap.

              How long documents are kept

              Per category, in months. A MAR does not carry the same obligation as a billing export.

              Past its retention period

              Reported only — nothing here deletes anything.

              Operations Insights

              How much work is waiting, how long it has been waiting, who is carrying it — and which claims are running out of time to file.

              Time left to file

              Measured from date of service against the payer's window. A claim past it can no longer be billed.

              How long work has been sitting

              Time in the current stage.

              Who is carrying the work

              Claims Upload

              Load claims downloaded from Inovalon, Waystar or another clearinghouse. The file is identified before it is read, the original is filed in the Document Vault, and lines already loaded are skipped rather than counted twice.

              1

              Where these claims belong

              Filed in the Document Vault under this site, and stamped on every claim line.

              2

              The file

              .xlsx, .xlsm or .csv

              Upload history

              Every claims file loaded — who, when, from where, and what it produced.

              Payment Tracking · Insights

              The cash cycle, margin, denials and volume.

              Payment Entry

              Pull a claim by its Claim ID, confirm it, and post what the payer paid. A claim is posted line by line, the way an EOB pays it. Every posting is kept, so a partial payment is just the next one and a mistake is reversed rather than re-typed.

              Recent postings

              Users

              Every account with access to the app. Admins see all modules implicitly. Assign specific modules to non-admin users so they only see what they need.

              Email Name Role Modules Organizations Last login Actions
              Loading…

              Add user

              Create an account and grant module access. The user can sign in with the email + password below immediately.

              Access
              Modules Sections this user can open
              Organizations Whose data they can see

              Settings · SFTP destinations

              Uploads to the Document Vault are auto-pushed to every enabled destination flagged as Vault target. Files land under <prefix>/<org>/<sub-facility>/<YYYY-MM>/<category>/<filename> — missing folders (including new months) are created on the fly.

              Name Host · user Path prefix Status Auto-push Vault Actions
              Loading…