Jordan Brown13 downloadsTrack medical records requests, billing specials, and records-retrieval playbooks for motor vehicle accident cases.
An Obsidian plugin for tracking a motor vehicle accident case's records requests, medical specials, and the step-by-step process for getting each kind of record.
All data lives in your notes as plain YAML inside fenced code blocks. You can read and edit it without the plugin, it syncs with your vault, and nothing is sent anywhere.
Records requests, tracked as packets. A mva-requests block in a case note renders as a table. Each request records:
doi frontmatter) and the categories asked forPartial productions. Records often come back incomplete. Recording a production asks whether it is complete. If not, you list what is missing. The request stays open as Partial, and the missing list becomes your follow-up.
Status is one of Pending, Due today, Overdue (follow-up or deadline passed), Partial, or Complete.
Encounter-level specials. A mva-specials block holds one row per date of service, with:
Totals are split into related, unknown, and not related (excluded), so carved-out charges stay visible.
Process playbooks. Each note in your playbook folder (MVA Playbooks by default) is a playbook, and its task list is the checklist. Playbook frontmatter can set record_type, method, delivery, and enclosures. Applying a playbook inserts a fresh checklist into the case note and opens a pre-filled request form. Run Create sample playbooks to get three editable starters.
Attachments. Requests and encounters can carry files: upload a PDF or image from your computer (it is copied into the case's files folder) or link one already in the vault. Each attachment has a type (letter of representation, HIPAA, records, bill, receipt, invoice, ...) and an "include in packets" checkbox. When you record a production as received, you can attach the records right there.
Packets and reports. Everything prints as a PDF saved in the case's Reports folder and opened in Obsidian, ready to view or print:
Password-protected PDFs and missing files are not silently dropped: they get a placeholder page and a notice.
Dashboard. A sidebar view lists every request across the vault, soonest due first, with Open, Overdue, Partial, and All filters. It also lists documentation gaps across cases, and has a case list with each case's totals, a link to its latest report, and a button to build a new one.
| Command | What it does |
|---|---|
| Open records dashboard | Opens the sidebar dashboard |
| Add records request to this note | Opens the request form; creates the block if the note has none |
| Add encounter (date of service) to this note | Opens the encounter form; creates the block if the note has none |
| Insert records playbook in this note | Inserts a playbook checklist and optionally a pre-filled request |
| Build case report for this note | Opens the report dialog for the current (or last opened) case note |
| Create sample playbooks | Writes three sample playbooks into the playbook folder |
```mva-requests
- id: a1
provider: Riverside General Hospital
type: Medical records and billing
method: Fax
delivery: Encrypted email
requested: "2026-08-01"
deadline: "2026-08-21"
followup: "2026-08-31"
scope_from: "2026-02-10"
categories: Chart notes, ER records, itemized billing
enclosures: [Letter of representation, Provider's own authorization form, Photo ID]
state: partial # sent | partial | complete
received: "2026-09-02"
missing:
- 03/14/2026 visit notes
```
```mva-specials
- id: b1
date: "2026-02-10"
provider: Riverside General Hospital
service: ER visit
related: yes # yes | no | unknown
related_reason: ""
records: true
bill: true
billed: 8420.50
plan_paid: 3100
patient_paid: 250
adjusted: 2200
lien_holder: Sample Health Plan
lien_amount: 3100
collections: ""
```
The dashboard uses the note's client or case frontmatter field as the case name, and falls back to the file name. New requests take their scope start date from a doi field (YYYY-MM-DD) if the note has one.
If a block has a YAML error, the plugin shows the error and does not write to that block until it is fixed.
{case} files)mva-requests or mva-specials blocks. It reads only those notes.This plugin is a record-keeping tool. It does not contain jurisdiction-specific rules, deadlines, or fee limits. It does not give legal advice. The sample playbooks are generic starting points to adapt to your office's practice.
npm install
npm run dev # watch build
npm run build # type-check and production build
Copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/mva-records-specials/ to test. The test-vault/ folder contains made-up sample cases.
PDF generation uses pdf-lib (MIT). All PDFs are built on your device; nothing is uploaded.
If this plugin saves you time, you can buy me a coffee. It is free either way.
MIT