openemr_manual
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| openemr_manual [2026/03/12 22:01] – [Download] brad.sharp | openemr_manual [2026/03/16 23:13] (current) – Add documentation for Patient Balance, KPI Dashboard, AR Aging Report, Denial Analytics, Claim Status, Compatibility Check, and 7.x support brad.sharp | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== OpenEMR ClaimRev Connect Module ====== | ====== OpenEMR ClaimRev Connect Module ====== | ||
| - | The **ClaimRev Connect** module integrates ClaimRev' | + | The **ClaimRev Connect** module integrates ClaimRev' |
| ===== Table of Contents ===== | ===== Table of Contents ===== | ||
| Line 7: | Line 7: | ||
| - [[# | - [[# | ||
| - [[# | - [[# | ||
| + | - [[# | ||
| - [[#Claims Submission|Claims Submission]] | - [[#Claims Submission|Claims Submission]] | ||
| + | - [[#Claims Tab|Claims Tab]] | ||
| + | - [[#Payment Advice|Payment Advice]] | ||
| + | - [[# | ||
| + | - [[#Patient Balance|Patient Balance]] | ||
| + | - [[#Claim Status|Claim Status]] | ||
| + | - [[#AR Aging Report|AR Aging Report]] | ||
| + | - [[#Denial Analytics|Denial Analytics]] | ||
| - [[# | - [[# | ||
| - [[#ERA Downloads|ERA Downloads]] | - [[#ERA Downloads|ERA Downloads]] | ||
| + | - [[#X12 Tracker|X12 Tracker]] | ||
| + | - [[# | ||
| - [[# | - [[# | ||
| + | - [[# | ||
| - [[# | - [[# | ||
| - [[# | - [[# | ||
| Line 19: | Line 30: | ||
| ==== Requirements ==== | ==== Requirements ==== | ||
| - | * OpenEMR **7.0.2** or later | + | * OpenEMR **7.0.0** or later (8.x recommended) |
| * PHP **8.2** or later | * PHP **8.2** or later | ||
| * An active ClaimRev account with API credentials | * An active ClaimRev account with API credentials | ||
| Line 27: | Line 38: | ||
| Download the latest version of the ClaimRev Connect module: | Download the latest version of the ClaimRev Connect module: | ||
| - | **Current Version: | + | **Current Version: |
| ~~NOTOC~~ | ~~NOTOC~~ | ||
| | **Module File** | {{ : | | **Module File** | {{ : | ||
| - | | **Released** | //Coming soon// | + | | **Released** | March 16, 2026 | |
| | **Changelog** | See [[# | | **Changelog** | See [[# | ||
| Line 45: | Line 56: | ||
| - After upload completes, find **ClaimRev Connect** in the module list and click **Install**. | - After upload completes, find **ClaimRev Connect** in the module list and click **Install**. | ||
| - Once installed, click **Enable** to activate the module. | - Once installed, click **Enable** to activate the module. | ||
| + | - Navigate to **ClaimRev Connect > Setup** and click **Run Upgrade** to create the required database tables. | ||
| --- | --- | ||
| Line 62: | Line 74: | ||
| - Click **Save** to store your settings. | - Click **Save** to store your settings. | ||
| - | **Tip:** To verify your connection, navigate to the ClaimRev module and check for a successful | + | **Tip:** To verify your connection, navigate to the ClaimRev module and click the **Connectivity** tab for a connection status |
| --- | --- | ||
| ===== Features ===== | ===== Features ===== | ||
| + | |||
| + | ==== Dashboard ==== | ||
| + | |||
| + | The **Home** tab is a KPI dashboard that gives billers a one-glance overview of the entire revenue cycle. It refreshes every time you open the module. | ||
| + | |||
| + | === Claim Pipeline === | ||
| + | * **Claims In Flight** — Encounters billed and awaiting payer response | ||
| + | * **Pending ERAs** — ERAs received from ClaimRev but not yet posted to OpenEMR | ||
| + | * **Rejected / Denied** — Claims denied in the last 90 days | ||
| + | * **Clean Claim Rate** — Percentage of claims accepted on first pass (90-day window). Color-coded: | ||
| + | |||
| + | === Accounts Receivable === | ||
| + | * **Total AR** — Sum of all outstanding balances, with the amount over 90 days shown below | ||
| + | * **Avg Days in AR** — Average age of outstanding balances. Color-coded: | ||
| + | * **Collections This Month** — Total payments received this month, with last month shown for comparison | ||
| + | * **Collections This Quarter** — Quarterly total | ||
| + | |||
| + | === Denials === | ||
| + | * **Denial Rate** — Percentage of claims denied vs. total processed (90-day window) | ||
| + | * **Top Adjustment Reasons** — The five most common adjustment reasons from posted ERAs | ||
| + | |||
| + | === Patient Responsibility === | ||
| + | * **Patient AR** — Total outstanding patient balances (encounters where insurance has responded) | ||
| + | * **Need Statements** — Encounters with a patient balance that have never had a statement sent | ||
| + | |||
| + | === Quick Actions === | ||
| + | Direct links to Search Claims, Payment Advice, Reconciliation, | ||
| ==== Claims Submission ==== | ==== Claims Submission ==== | ||
| Line 76: | Line 115: | ||
| * Claims can be marked as worked after review | * Claims can be marked as worked after review | ||
| * CSV export of claim search results is available | * CSV export of claim search results is available | ||
| + | |||
| + | ==== Claims Tab ==== | ||
| + | |||
| + | The **Claims** tab provides a searchable view of claims submitted through ClaimRev, with integrated OpenEMR status tracking and actions. | ||
| + | |||
| + | === Search and Filtering === | ||
| + | Search for claims using any combination of: | ||
| + | * Patient name (first and/or last) | ||
| + | * Date range (service date or received date) | ||
| + | * Payer name or payer number | ||
| + | * Patient control number (PCN) — format is '' | ||
| + | * Claim status (e.g., Accepted, Rejected, Pending) | ||
| + | * Billing provider NPI | ||
| + | |||
| + | === OpenEMR Status Integration === | ||
| + | Each claim row displays the **OpenEMR claim status** alongside the ClaimRev status. This lets you see at a glance whether the two systems agree. OpenEMR statuses include: | ||
| + | |||
| + | | **Status** | **Badge Color** | **Meaning** | | ||
| + | | Not Billed | Gray | Claim has not been sent | | ||
| + | | Unbilled | Light | Claim is queued but not yet sent | | ||
| + | | Billed | Green | Claim has been submitted | | ||
| + | | Crossover | Blue | Crossover claim submitted | | ||
| + | | Denied | Red | Claim was denied | | ||
| + | |||
| + | === Actions === | ||
| + | Each claim row provides action buttons: | ||
| + | |||
| + | * **Open Encounter** (folder icon, blue) — Opens the OpenEMR encounter directly in a new tab, allowing you to review charges, notes, and clinical documentation. | ||
| + | * **Sync Status** (sync icon, red) — Appears when ClaimRev shows a claim as rejected but OpenEMR still shows it as billed. Clicking this updates the OpenEMR claim status to **Denied** and records the rejection reason from ClaimRev in the claim' | ||
| + | * **Requeue for Billing** (redo icon, yellow) — Reopens the encounter for billing so it can be corrected and resubmitted. This resets the billing flags and creates a new claim version with status **Unbilled**, | ||
| + | |||
| + | === Detail View === | ||
| + | Click on any claim row to expand it and see: | ||
| + | * Full ClaimRev claim details (status, payer acceptance, ERA classification) | ||
| + | * OpenEMR status information | ||
| + | * Direct link to the encounter in OpenEMR | ||
| + | * Link to view the claim in the ClaimRev portal | ||
| + | |||
| + | ==== Payment Advice ==== | ||
| + | |||
| + | The **Payment Advice** tab allows you to search for ERA (835) payment advice records from ClaimRev and post them directly into OpenEMR' | ||
| + | |||
| + | === Searching for Payment Advice === | ||
| + | - Navigate to the **Payment Advice** tab. | ||
| + | - Enter search criteria (date range, payer, trace number, etc.). | ||
| + | - Click **Search** to retrieve matching payment advice records. | ||
| + | - Results show the payer name, check/trace number, payment date, total paid amount, and claim count. | ||
| + | |||
| + | === Previewing a Payment Advice === | ||
| + | Click on a payment advice record to expand it. Each claim line within the ERA shows: | ||
| + | * Patient name and control number | ||
| + | * Claim status (Paid, Denied, Reversed, Pended, etc.) | ||
| + | * Billed amount, allowed amount, paid amount, and adjustments | ||
| + | * Service line details with procedure codes and amounts | ||
| + | |||
| + | === Posting to OpenEMR === | ||
| + | Payment advice records can be posted to OpenEMR to record payments, adjustments, | ||
| + | |||
| + | == Single Claim Posting == | ||
| + | - Expand a payment advice record to see its claim lines. | ||
| + | - Click **Preview** on an individual claim to see exactly what will be posted. | ||
| + | - The preview shows the session details, payment amounts, and adjustment codes that will be created. | ||
| + | - Click **Post to OpenEMR** to post the payment. | ||
| + | - After posting, the claim line is marked with a green checkmark. | ||
| + | |||
| + | == Batch Posting == | ||
| + | - Click **Batch Post All** to post all eligible claims in a payment advice at once. | ||
| + | - The system processes each claim and shows a results summary with: | ||
| + | * **Posted** — Successfully posted claims (green) | ||
| + | * **Skipped** — Claims that were already posted or could not be matched (gray) | ||
| + | * **Errors** — Claims that encountered an error during posting (red) | ||
| + | * **Needs Approval** — Reversals and pended claims that require individual review (yellow, see below) | ||
| + | |||
| + | == Reversals and Pended Claims == | ||
| + | Some claim statuses require special attention before posting: | ||
| + | |||
| + | * **Reversals** (CLP02=22) — These represent a takeaway of a previous payment. Posting a reversal will create a negative payment in OpenEMR. When you click Post on a reversal, a confirmation dialog explains the impact and asks for approval before proceeding. | ||
| + | * **Pended Claims** (CLP02=5) — These indicate the payer is still processing the claim. Posting records the current adjudication info, but amounts may change. A confirmation dialog warns you of this before posting. | ||
| + | |||
| + | In **batch mode**, reversals and pended claims are **not** auto-posted. Instead, they are separated into a "Needs Approval" | ||
| + | |||
| + | == What Gets Posted == | ||
| + | When an ERA is posted, the following data flows into OpenEMR: | ||
| + | |||
| + | * **Payments** — Insurance payments are recorded in '' | ||
| + | * **Contractual Adjustments** — CO (Contractual Obligation) group adjustments reduce the balance | ||
| + | * **Patient Responsibility Memos** — PR (Patient Responsibility) adjustments are recorded as zero-dollar memos with labels like '' | ||
| + | * **Insurance Level Close** — The '' | ||
| + | |||
| + | === Test Mode === | ||
| + | A **Test Mode** toggle is available below the search button. When enabled: | ||
| + | * The search returns **mock data** instead of calling the ClaimRev API, allowing you to practice the posting workflow without real data. | ||
| + | * Posting still writes to OpenEMR (useful for testing with a development database). | ||
| + | * Claims are **not** marked as worked in ClaimRev when test mode is active. | ||
| + | * A yellow warning banner is displayed to remind you that test mode is active. | ||
| + | |||
| + | **Important: | ||
| + | |||
| + | ==== Reconciliation ==== | ||
| + | |||
| + | The **Reconciliation** tab provides a side-by-side comparison of OpenEMR encounters against their status in ClaimRev, helping you identify claims that may need attention. | ||
| + | |||
| + | === Purpose === | ||
| + | Reconciliation answers questions like: | ||
| + | * "Did all my billed claims actually reach ClaimRev?" | ||
| + | * "Are there claims rejected in ClaimRev that I haven' | ||
| + | * "Do I have ERAs showing payment that haven' | ||
| + | * "Are there denials in the ERA that OpenEMR doesn' | ||
| + | |||
| + | === How to Use === | ||
| + | - Navigate to the **Reconciliation** tab. | ||
| + | - Set your search filters: | ||
| + | * **Date Range** — Filter encounters by service date | ||
| + | * **OpenEMR Status** — Choose from: | ||
| + | * **Billed** — Encounters marked as billed or crossover (default) | ||
| + | * **Denied** — Encounters marked as denied | ||
| + | * **All Billed** — All encounters that have entered the billing process | ||
| + | * **Patient Name** — Filter by first and/or last name | ||
| + | * **Payer Name** — Filter by insurance company | ||
| + | * **Discrepancies Only** — Show only encounters where the OE and ClaimRev statuses don't match | ||
| + | - Click **Search** to run the reconciliation. | ||
| + | |||
| + | === Summary Cards === | ||
| + | At the top of the results, four summary cards show: | ||
| + | * **Total Encounters** — Number of OpenEMR encounters matching your filters | ||
| + | * **Found in ClaimRev** — How many of those encounters were found in ClaimRev | ||
| + | * **Not in ClaimRev** — Encounters that were not found (potential submission issues) | ||
| + | * **Discrepancies** — Encounters where the OE and ClaimRev statuses disagree | ||
| + | |||
| + | === Results Table === | ||
| + | The comparison table shows each encounter with columns for: | ||
| + | |||
| + | | **Column** | **Description** | | ||
| + | | Patient | Patient name | | ||
| + | | Encounter | Encounter number (click to expand details) | | ||
| + | | Service Date | Date of the encounter | | ||
| + | | Payer | Insurance company name | | ||
| + | | Charges | Total billed charges | | ||
| + | | OE Status | Current OpenEMR claim status (color-coded badge) | | ||
| + | | CR Status | ClaimRev claim status | | ||
| + | | ERA | ERA classification from ClaimRev (e.g., Paid, Denied) | | ||
| + | | CR Paid | Amount paid per ClaimRev | | ||
| + | | Issue | Description of the discrepancy, | ||
| + | | Actions | Available action buttons | | ||
| + | |||
| + | === Discrepancy Detection === | ||
| + | The system automatically detects five types of discrepancies: | ||
| + | |||
| + | | **Discrepancy** | **Severity** | **Meaning** | | ||
| + | | Billed in OpenEMR but not found in ClaimRev | Danger (red) | The claim may not have been submitted successfully | | ||
| + | | Rejected in ClaimRev but still Billed in OpenEMR | Danger (red) | ClaimRev shows the claim was rejected, but OpenEMR hasn't been updated | | ||
| + | | Denied in OpenEMR but Accepted in ClaimRev | Warning (yellow) | OpenEMR shows denied, but ClaimRev shows the payer accepted the claim | | ||
| + | | ERA shows paid but no payment posted in OpenEMR | Warning (yellow) | A payment was received but hasn't been recorded in OpenEMR | | ||
| + | | ERA shows denied but OpenEMR not marked as denied | Warning (yellow) | The ERA indicates a denial that OpenEMR doesn' | ||
| + | |||
| + | Rows are color-coded: | ||
| + | |||
| + | === Actions === | ||
| + | Each row provides action buttons depending on the situation: | ||
| + | * **Open Encounter** — Navigate directly to the encounter in OpenEMR | ||
| + | * **Sync Status** — Update OpenEMR to match ClaimRev' | ||
| + | * **Requeue for Billing** — Put the claim back in the billing queue for correction and resubmission | ||
| + | * **View in Portal** — Open the claim in the ClaimRev portal for full details | ||
| + | |||
| + | === Detail View === | ||
| + | Click on any row to expand a detailed comparison showing: | ||
| + | * **OpenEMR Info** — Claim status, bill time, process file | ||
| + | * **ClaimRev Info** — Claim status, payer acceptance, worked status | ||
| + | * **ERA Info** — ERA classification, | ||
| + | |||
| + | ==== Patient Balance ==== | ||
| + | |||
| + | The **Patient Balance** tab surfaces encounters with outstanding patient responsibility after insurance has responded. It helps billers identify who owes money and manage the statement workflow. | ||
| + | |||
| + | === When Encounters Appear === | ||
| + | An encounter appears in the Patient Balance queue when: | ||
| + | * Insurance has responded ('' | ||
| + | * There is a remaining balance after all payments and adjustments (using the same formula as OpenEMR' | ||
| + | |||
| + | === Search Filters === | ||
| + | * **Service Date Range** — Filter by encounter date | ||
| + | * **Patient Name** — Search by patient first or last name | ||
| + | * **Payer** — Filter by primary insurance company | ||
| + | * **Min Amount** — Only show balances above a threshold (default: $0.01) | ||
| + | * **Statement Status** — Filter by: | ||
| + | * **All** — Show everything | ||
| + | * **Never Sent** — Encounters where no statement has been sent | ||
| + | * **Sent 1x** — Exactly one statement sent | ||
| + | * **Sent 2+** — Two or more statements sent | ||
| + | * **In Collection** — Encounters marked as in collection | ||
| + | |||
| + | === Summary Cards === | ||
| + | * **Total w/ Balance** — Number of encounters with outstanding patient balances | ||
| + | * **Total Amount** — Sum of all outstanding patient balances | ||
| + | * **Never Sent** — Encounters needing their first statement | ||
| + | * **Sent 1x / Sent 2+** — Statement frequency breakdown | ||
| + | * **In Collection** — Encounters flagged for collections | ||
| + | |||
| + | === Results Table === | ||
| + | |||
| + | | **Column** | **Description** | | ||
| + | | Patient | Patient name and date of birth | | ||
| + | | Encounter | Encounter number | | ||
| + | | Service Date | Date of the encounter | | ||
| + | | Payer | Primary insurance | | ||
| + | | Charges | Total billed charges | | ||
| + | | Ins Paid | Total insurance payments | | ||
| + | | Patient Owes | Outstanding balance (bold) | | ||
| + | | Stmts | Statement status badge: "Never Sent" (yellow), count (blue), or " | ||
| + | | Last Statement | Date of the most recent statement | | ||
| + | | Actions | Action buttons | | ||
| + | |||
| + | === Detail View === | ||
| + | Click any row to expand and see: | ||
| + | |||
| + | * **Patient Responsibility Breakdown** — Parsed from the ERA posting memos. Shows the breakdown of //why// the patient owes money: | ||
| + | * **Deductible** — Amount applied to the patient' | ||
| + | * **Coinsurance** — Patient' | ||
| + | * **Copay** — Copay amount | ||
| + | * **Pt Resp** — Other patient responsibility amounts | ||
| + | * **Per-Code Breakdown** — Each procedure code with its charge, adjustment, and remaining balance (from OpenEMR' | ||
| + | * **Statement History** — Log of all statements sent for this encounter, with date, method, amount, and who sent it | ||
| + | |||
| + | === Actions === | ||
| + | |||
| + | * **Generate Statement** (file icon) — Opens OpenEMR' | ||
| + | * **Mark Sent** (check icon) — Records that a statement was sent for this encounter. Logs the date, amount, and user to the statement history. | ||
| + | * **Add Note** (sticky note icon) — Add a free-text note to the encounter' | ||
| + | * **View Ledger** (book icon) — Opens the OpenEMR payment ledger for the encounter | ||
| + | * **Open Encounter** (folder icon) — Opens the encounter in OpenEMR | ||
| + | * **Generate via ClaimRev** (cloud icon, disabled) — Placeholder for future ClaimRev statement generation integration | ||
| + | |||
| + | === Statement Tracking === | ||
| + | The module tracks statements in its own '' | ||
| + | |||
| + | ==== Claim Status ==== | ||
| + | |||
| + | The **Claim Status** tab provides a work-queue style dashboard for tracking claims through their lifecycle, with real-time 276/277 status checks. | ||
| + | |||
| + | === Features === | ||
| + | * **Work Queue** — Claims sorted by status, showing which need attention | ||
| + | * **Timeline View** — Click any claim to see its full event history: submitted, accepted, rejected, ERA received, payment posted, manual notes | ||
| + | * **Real-Time Status Check** — Send a 276 status inquiry to the payer and get a 277 response showing current claim status | ||
| + | * **Batch Sync** — Sync multiple claims from ClaimRev at once to update local tracking data | ||
| + | * **Manual Notes** — Add notes to any claim' | ||
| + | * **Dashboard Stats** — Summary cards showing claims by status category | ||
| + | |||
| + | === Status Categories === | ||
| + | Claims are categorized into actionable groups: | ||
| + | * **Needs Attention** — Rejected, denied, stale (no update in 30+ days), or paid but not posted | ||
| + | * **In Progress** — Submitted, accepted by payer, awaiting adjudication | ||
| + | * **Completed** — Paid and posted, or worked and resolved | ||
| + | |||
| + | ==== AR Aging Report ==== | ||
| + | |||
| + | The **AR Aging Report** is found under the **Analytics** dropdown in the navigation bar. It provides a standard 30/ | ||
| + | |||
| + | === How to Use === | ||
| + | - Click **Analytics > AR Aging Report** in the navigation bar. | ||
| + | - Optionally filter by payer name, patient name, or minimum balance amount. | ||
| + | - Click **Run Report**. | ||
| + | |||
| + | === Summary Cards === | ||
| + | * **Total AR** — Sum of all outstanding balances | ||
| + | * **Aging Buckets** — Dollar amounts in each bucket: 0-30, 31-60, 61-90, 91-120, 120+ days | ||
| + | * **Payer Count** — Number of distinct payers with outstanding balances | ||
| + | * **Encounter Count** — Total encounters with balances | ||
| + | |||
| + | === Payer Aging Table === | ||
| + | Each row represents a payer and shows: | ||
| + | |||
| + | | **Column** | **Description** | | ||
| + | | Payer | Insurance company name (or " | ||
| + | | 0-30 | Balance for encounters 0-30 days old | | ||
| + | | 31-60 | Balance for encounters 31-60 days old | | ||
| + | | 61-90 | Balance for encounters 61-90 days old | | ||
| + | | 91-120 | Balance for encounters 91-120 days old (red text) | | ||
| + | | 120+ | Balance for encounters over 120 days old (bold red) | | ||
| + | | Total | Total AR for this payer | | ||
| + | | Enc | Number of encounters | | ||
| + | | Distribution | Visual bar showing the percentage of AR that is over 90 days old. Green = healthy, yellow = caution, red = problem. | | ||
| + | |||
| + | Payers are sorted by total AR descending — the biggest balances appear first. | ||
| + | |||
| + | === CSV Export === | ||
| + | Click **Export CSV** to download the full encounter-level aging data as a spreadsheet. The CSV includes patient name, encounter, service date, payer, age in days, aging bucket, balance, insurance level, and statement count. | ||
| + | |||
| + | ==== Denial Analytics ==== | ||
| + | |||
| + | The **Denial Analytics** page is found under the **Analytics** dropdown. It analyzes adjustment and denial patterns to help identify systemic issues with specific payers or procedure codes. | ||
| + | |||
| + | === How to Use === | ||
| + | - Click **Analytics > Denial Analytics** in the navigation bar. | ||
| + | - The report auto-runs on page load showing the last 12 months of data. | ||
| + | - Optionally filter by date range or payer name. | ||
| + | - Click **Analyze** to refresh. | ||
| + | |||
| + | === Summary Cards === | ||
| + | * **Total Adjustments** — Number of individual adjustment line items in the period | ||
| + | * **Total Adjusted** — Dollar amount of all adjustments | ||
| + | * **Encounters** — Number of distinct encounters affected | ||
| + | * **Payers** — Number of distinct payers | ||
| + | |||
| + | === Top Adjustment Reasons === | ||
| + | The left panel shows the 20 most common adjustment reasons, with: | ||
| + | * **Reason** — The adjustment memo as recorded during ERA posting (e.g., " | ||
| + | * **CARC Code** — The Claim Adjustment Reason Code number, if present | ||
| + | * **CARC Description** — Human-readable description (e.g., " | ||
| + | * **Count** — How many times this adjustment appeared | ||
| + | * **Amount** — Total dollar amount adjusted | ||
| + | * **Visual bar** — Relative frequency compared to the top reason | ||
| + | |||
| + | === By Payer === | ||
| + | The right panel shows adjustments grouped by payer: | ||
| + | * Which payers have the most adjustments | ||
| + | * Total adjusted amount per payer | ||
| + | * Number of encounters affected per payer | ||
| + | |||
| + | This helps identify payers that are consistently adjusting or denying claims. | ||
| + | |||
| + | === Monthly Trend === | ||
| + | Below the payer breakdown, a monthly trend table shows adjustment counts and amounts over time, with visual bars. This helps answer: "Are our denials getting better or worse?" | ||
| + | |||
| + | === CSV Export === | ||
| + | Click **Export CSV** to download the denial reason data as a spreadsheet for further analysis. | ||
| ==== Eligibility Verification ==== | ==== Eligibility Verification ==== | ||
| Line 110: | Line 474: | ||
| * Search for available ERA files by date range | * Search for available ERA files by date range | ||
| * Download individual files for import into the OpenEMR billing system | * Download individual files for import into the OpenEMR billing system | ||
| + | |||
| + | ==== X12 Tracker ==== | ||
| + | |||
| + | The **X12 Tracker** tab shows the history of X12 files (837, 835, 270/271, 276/277, etc.) that have been transmitted through ClaimRev. | ||
| + | |||
| + | * View submitted and received X12 files with timestamps | ||
| + | * Track file acceptance and rejection status | ||
| + | * Download original X12 files for review or troubleshooting | ||
| + | |||
| + | ==== Appointments ==== | ||
| + | |||
| + | The **Appointments** tab provides visibility into appointment-related data synced with ClaimRev, supporting eligibility verification workflows tied to scheduled visits. | ||
| ==== Notifications ==== | ==== Notifications ==== | ||
| Portal notifications from ClaimRev are accessible within the module, keeping you informed of important updates about your claims and account. | Portal notifications from ClaimRev are accessible within the module, keeping you informed of important updates about your claims and account. | ||
| + | |||
| + | --- | ||
| + | |||
| + | ===== Compatibility ===== | ||
| + | |||
| + | ==== Supported OpenEMR Versions ==== | ||
| + | The ClaimRev Connect module supports: | ||
| + | * **OpenEMR 8.x** — Full native support | ||
| + | * **OpenEMR 7.x** — Supported via built-in compatibility shims | ||
| + | |||
| + | The module includes automatic compatibility shims for classes introduced in OpenEMR 8.x ('' | ||
| + | |||
| + | ==== Compatibility Check ==== | ||
| + | To verify the module works correctly on your OpenEMR version: | ||
| + | |||
| + | - Navigate to **ClaimRev Connect > Connectivity**. | ||
| + | - Click the **Run Compatibility Check** button. | ||
| + | - A diagnostic page shows the status of each critical component: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * OpenEMR version and PHP version | ||
| + | |||
| + | If all checks show green, the module is fully operational. If any check shows "Using ClaimRev shim (7.x mode)", | ||
| --- | --- | ||
| Line 123: | Line 523: | ||
| * Ensure your server can reach the ClaimRev API endpoint (check firewall rules) | * Ensure your server can reach the ClaimRev API endpoint (check firewall rules) | ||
| * Check the OpenEMR error log for detailed error messages | * Check the OpenEMR error log for detailed error messages | ||
| + | * Use the **Connectivity** tab in the module to test your connection | ||
| ==== Eligibility Check Returns No Results ==== | ==== Eligibility Check Returns No Results ==== | ||
| Line 128: | Line 529: | ||
| * Ensure the payer is enrolled for eligibility transactions — see [[payer_enrollment|Payer Enrollments]] | * Ensure the payer is enrolled for eligibility transactions — see [[payer_enrollment|Payer Enrollments]] | ||
| * Check that the subscriber ID and patient demographics are accurate | * Check that the subscriber ID and patient demographics are accurate | ||
| + | |||
| + | ==== Claims Not Appearing in ClaimRev ==== | ||
| + | * Confirm the claim was submitted through the OpenEMR billing manager | ||
| + | * Check the **X12 Tracker** tab to verify the 837 file was transmitted | ||
| + | * Use the **Reconciliation** tab to identify claims that were billed in OpenEMR but not found in ClaimRev | ||
| + | |||
| + | ==== Payment Advice Posting Errors ==== | ||
| + | * Ensure the encounter exists in OpenEMR and the patient control number matches (format: '' | ||
| + | * Check that the encounter has not already been fully paid | ||
| + | * Review the error message in the posting results for specific details | ||
| + | * If using test mode, remember that mock data may not match real encounters | ||
| + | |||
| + | ==== Patient Balance Shows No Results ==== | ||
| + | * Make sure ERAs have been posted — the Patient Balance queue only shows encounters where '' | ||
| + | * Navigate to **Setup** and click **Run Upgrade** to ensure the '' | ||
| + | * Try lowering the **Min Amount** filter or clearing all filters | ||
| + | |||
| + | ==== Database Upgrade Errors ==== | ||
| + | * If you see SQL errors when clicking **Run Upgrade** on the Setup tab, check the OpenEMR error log for the specific query that failed | ||
| + | * The upgrade process is idempotent — it skips tables and rows that already exist, so it is safe to run multiple times | ||
| ==== Module Not Appearing ==== | ==== Module Not Appearing ==== | ||
| Line 136: | Line 557: | ||
| ===== Changelog ===== | ===== Changelog ===== | ||
| + | |||
| + | == Version 2.1.0 (March 2026) == | ||
| + | * **KPI Dashboard** — Home tab replaced with a full revenue cycle dashboard showing claim pipeline, AR metrics, collections, | ||
| + | * **Patient Balance Queue** — New tab showing encounters with outstanding patient responsibility after insurance has responded. Includes PR breakdown (deductible/ | ||
| + | * **Claim Status Dashboard** — New work-queue tab with claim lifecycle timeline, real-time 276/277 status checks, batch sync, and manual notes | ||
| + | * **AR Aging Report** — New analytics page with 30/ | ||
| + | * **Denial Analytics** — New analytics page analyzing adjustment patterns by reason code, payer, and monthly trend with CARC code descriptions and CSV export | ||
| + | * **Analytics Dropdown** — AR Aging Report and Denial Analytics grouped under an " | ||
| + | * **OpenEMR 7.x Compatibility** — Built-in compatibility shims allow the module to run on OpenEMR 7.x without modification. A compatibility check tool is available under Connectivity. | ||
| + | * **Compatibility Check** — New diagnostic page (Connectivity > Run Compatibility Check) verifies all module dependencies resolve correctly | ||
| + | * **Statement Tracking Table** — New '' | ||
| + | |||
| + | == Version 2.0.0 == | ||
| + | * **Claims Tab** — Added OpenEMR claim status display, encounter links, status sync (ClaimRev rejected → OE denied), and requeue-for-billing action | ||
| + | * **Payment Advice** — New tab for searching, previewing, and posting ERA/835 payment advice to OpenEMR (single and batch), with approval workflows for reversals and pended claims | ||
| + | * **Payment Advice Test Mode** — Mock data mode for testing the posting workflow without live API calls | ||
| + | * **Reconciliation** — New tab that compares OpenEMR encounters against ClaimRev statuses with automatic discrepancy detection | ||
| + | * **X12 Tracker** — File transmission history and download | ||
| == Version 1.0.0 == | == Version 1.0.0 == | ||
| Line 155: | Line 594: | ||
| * **Phone**: 918-942-9564 | * **Phone**: 918-942-9564 | ||
| * **Hours**: Monday - Friday, 9 AM to 5 PM (CST) | * **Hours**: Monday - Friday, 9 AM to 5 PM (CST) | ||
| - | |||
openemr_manual.1773352894.txt.gz · Last modified: by brad.sharp
