User Tools

Site Tools


openemr_manual

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
openemr_manual [2026/03/13 03:35] – [Download] brad.sharpopenemr_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's clearinghouse services directly into OpenEMR, giving practices access to claims processing, eligibility verification, ERA downloads, and more without leaving their EHR.+The **ClaimRev Connect** module integrates ClaimRev's clearinghouse services directly into OpenEMR, giving practices access to claims processing, eligibility verification, ERA downloads, payment posting, reconciliation, patient balance management, and analytics — all without leaving their EHR.
  
 ===== Table of Contents ===== ===== Table of Contents =====
Line 7: Line 7:
   - [[#Configuration|Configuration]]   - [[#Configuration|Configuration]]
   - [[#Features|Features]]   - [[#Features|Features]]
 +    - [[#Dashboard|Dashboard (Home)]]
     - [[#Claims Submission|Claims Submission]]     - [[#Claims Submission|Claims Submission]]
 +    - [[#Claims Tab|Claims Tab]]
 +    - [[#Payment Advice|Payment Advice]]
 +    - [[#Reconciliation|Reconciliation]]
 +    - [[#Patient Balance|Patient Balance]]
 +    - [[#Claim Status|Claim Status]]
 +    - [[#AR Aging Report|AR Aging Report]]
 +    - [[#Denial Analytics|Denial Analytics]]
     - [[#Eligibility Verification|Eligibility Verification]]     - [[#Eligibility Verification|Eligibility Verification]]
     - [[#ERA Downloads|ERA Downloads]]     - [[#ERA Downloads|ERA Downloads]]
 +    - [[#X12 Tracker|X12 Tracker]]
 +    - [[#Appointments|Appointments]]
     - [[#Notifications|Notifications]]     - [[#Notifications|Notifications]]
 +  - [[#Compatibility|Compatibility]]
   - [[#Troubleshooting|Troubleshooting]]   - [[#Troubleshooting|Troubleshooting]]
   - [[#Support|Support]]   - [[#Support|Support]]
Line 19: Line 30:
  
 ==== Requirements ==== ==== Requirements ====
-  * OpenEMR **8.0.0** 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 32: Line 43:
  
 | **Module File** | {{ :oe-module-claimrev-connect.zip | OpenEMR Module}} | | **Module File** | {{ :oe-module-claimrev-connect.zip | OpenEMR Module}} |
-| **Released** | March 12, 2026 |+| **Released** | March 16, 2026 |
 | **Changelog** | See [[#Changelog|Changelog]] below | | **Changelog** | See [[#Changelog|Changelog]] below |
  
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 connection status. Contact ClaimRev support if you need your API credentials.+**Tip:** To verify your connection, navigate to the ClaimRev module and click the **Connectivity** tab for a connection status check. Contact ClaimRev support if you need your API credentials.
  
 --- ---
  
 ===== 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: green (≥95%), yellow (90-94%), red (<90%)
 +
 +=== 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: green (≤35 days), yellow (36-50), red (>50)
 +  * **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, Claim Status, and Denial Analytics.
  
 ==== 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 ''pid-encounter''
 +  * 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's process file. This saves manual data entry when payers reject claims.
 +  * **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**, placing it back in the billing queue.
 +
 +=== 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's payment system.
 +
 +=== 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, and denials.
 +
 +== 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" section in the batch results, where you can review each one individually and click **Approve & Post** to post them one at a time.
 +
 +== What Gets Posted ==
 +When an ERA is posted, the following data flows into OpenEMR:
 +
 +  * **Payments** — Insurance payments are recorded in ''ar_session'' and ''ar_activity''
 +  * **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 ''Ins1 dedbl: 150.00'', ''Ins1 coins: 45.00'', ''Ins1 copay: 25.00''. These memos are later parsed by the Patient Balance screen to show the PR breakdown.
 +  * **Insurance Level Close** — The ''last_level_closed'' flag on the encounter is updated, indicating insurance has finished processing
 +
 +=== 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:** Only use test mode in development or training environments. Do not enable test mode in production with real patient data unless you understand that mock ERA data will be posted to OpenEMR.
 +
 +==== 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't updated in OpenEMR?"
 +  * "Do I have ERAs showing payment that haven't been posted?"
 +  * "Are there denials in the ERA that OpenEMR doesn't reflect?"
 +
 +=== 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, if any |
 +| 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't reflect |
 +
 +Rows are color-coded: **red** for danger-level discrepancies, **yellow** for warnings, and **gray** for encounters not found in ClaimRev.
 +
 +=== 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's rejection status (appears for rejected claims)
 +  * **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, payer paid amount
 +
 +==== 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 (''last_level_closed >= 1'' on the encounter)
 +  * There is a remaining balance after all payments and adjustments (using the same formula as OpenEMR's collections report: charges + drug sales - payments - adjustments)
 +
 +=== 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 "Collections" (red) |
 +| 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's deductible
 +    * **Coinsurance** — Patient's coinsurance portion
 +    * **Copay** — Copay amount
 +    * **Pt Resp** — Other patient responsibility amounts
 +  * **Per-Code Breakdown** — Each procedure code with its charge, adjustment, and remaining balance (from OpenEMR's InvoiceSummary)
 +  * **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's built-in statement tool (sl_eob_search) where you can print or email patient statements
 +  * **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's statement history
 +  * **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 ''mod_claimrev_patient_statements'' table. The queue shows whichever count is higher: the module's own count or OpenEMR's native ''stmt_count'' on the encounter. This means statements sent through either system are reflected.
 +
 +==== 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's timeline for team communication
 +  * **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/60/90/120 day aging breakdown of accounts receivable, grouped by payer.
 +
 +=== 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 "Self-Pay") |
 +| 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., "Adjust code 45")
 +  * **CARC Code** — The Claim Adjustment Reason Code number, if present
 +  * **CARC Description** — Human-readable description (e.g., "Charge exceeds fee schedule/max allowable"). The module includes descriptions for 30+ common CARC codes.
 +  * **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 (''OEGlobalsBag'' and ''ServiceContainer''). On OpenEMR 7.x, these shims provide equivalent functionality by wrapping ''$GLOBALS'' and ''CryptoGen'' directly. On 8.x, the shims are never loaded — the native classes are used.
 +
 +==== 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:
 +    * ''OEGlobalsBag'' — Whether the native class or shim is in use
 +    * ''ServiceContainer'' — Whether the native class or shim is in use
 +    * ''GlobalConfig'' and ''Bootstrap'' — Whether they instantiate successfully
 +    * 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)", the module is running with compatibility shims — all features work normally.
  
 --- ---
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: ''pid-encounter'')
 +  * 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 ''last_level_closed >= 1'' (insurance has responded)
 +  * Navigate to **Setup** and click **Run Upgrade** to ensure the ''mod_claimrev_patient_statements'' table exists
 +  * 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, denial rates, and patient responsibility at a glance
 +  * **Patient Balance Queue** — New tab showing encounters with outstanding patient responsibility after insurance has responded. Includes PR breakdown (deductible/coinsurance/copay parsed from ERA memos), per-code detail, statement tracking, and actions to generate statements or mark as sent
 +  * **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/60/90/120 day aging buckets grouped by payer, distribution visualization, and CSV export
 +  * **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 "Analytics" dropdown in the navigation bar
 +  * **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 ''mod_claimrev_patient_statements'' database table for tracking statement history per encounter
 +
 +== 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.1773372942.txt.gz · Last modified: by brad.sharp

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki