Billing Estimate Endpoints

For requests or help with our API
Post Reply
graham_mueller
Posts: 44
Joined: Fri Jan 19, 2024 10:57 am

Billing Estimate Endpoints

Post by graham_mueller » Wed Aug 21, 2024 4:40 pm

Hello,

We're working on a feature to allow patient to schedule treatment based on what providers have entered in their transaction plan region. I'm not sure if this is displayed via plugin, seems like it's a built in feature - the treatment plan shows a base Fee amount, which is list price, as well as Allowed by insurance, covered by Primary Insurance, covered by Secondary Insurance, Discount, and Patient portion. Example attached.

To my knowledge, there's no endpoint exposing this information. I can do the work of copying that logic myself, but it would be preferable to get this from OD and to ensure I'm staying fully in line with what's displayed there. Could this be exposed somehow?

justine
Posts: 286
Joined: Tue Dec 28, 2021 7:59 am

Re: Billing Estimate Endpoints

Post by justine » Thu Aug 22, 2024 8:59 am

graham_mueller wrote:
Wed Aug 21, 2024 4:40 pm
Hello,

We're working on a feature to allow patient to schedule treatment based on what providers have entered in their transaction plan region. I'm not sure if this is displayed via plugin, seems like it's a built in feature - the treatment plan shows a base Fee amount, which is list price, as well as Allowed by insurance, covered by Primary Insurance, covered by Secondary Insurance, Discount, and Patient portion. Example attached.

To my knowledge, there's no endpoint exposing this information. I can do the work of copying that logic myself, but it would be preferable to get this from OD and to ensure I'm staying fully in line with what's displayed there. Could this be exposed somehow?
Good morning graham_mueller,

I think the endpoints you're after are:

https://www.opendental.com/site/apiproctps.html
https://www.opendental.com/site/apitreatplans.html
https://www.opendental.com/site/apitrea ... aches.html

Thanks!

graham_mueller
Posts: 44
Joined: Fri Jan 19, 2024 10:57 am

Re: Billing Estimate Endpoints

Post by graham_mueller » Fri Aug 23, 2024 10:54 pm

Hi Justine,

What you've linked sounds like what I'm looking for, but the instance I'm looking at doesn't seem to align with that. I have a test patient that I've been using as an example, and in the Tx Plan tab of open dental, I can see both a series of groupings by priority, the individual procedure codes within each grouping, and a billing break down. Based on your links below, I would expect that the `proctp` table would contain entries for this. The particular instance I'm looking at *does* have something like 350 rows in that table, however this patient that has a fully built out plan does *not* exist in that table. Am I missing something, is there somewhere else I should be looking?
Attachments
Screenshot 2024-08-24 005107.png
Screenshot 2024-08-24 005107.png (166.15 KiB) Viewed 18954 times

graham_mueller
Posts: 44
Joined: Fri Jan 19, 2024 10:57 am

Re: Billing Estimate Endpoints

Post by graham_mueller » Sat Aug 24, 2024 10:11 am

Ok, spend a bit more time this morning. From the API docs, it appears ProcTP is only for *saved* / inactive plans, which is why I can't see them for the patient I'm looking at. Is there a way for *active* plans to see the cost information from my screenshot? I've not been able to find an endpoint that provides this data, or a table.

justine
Posts: 286
Joined: Tue Dec 28, 2021 7:59 am

Re: Billing Estimate Endpoints

Post by justine » Sat Aug 24, 2024 1:51 pm

graham_mueller wrote:
Sat Aug 24, 2024 10:11 am
Ok, spend a bit more time this morning. From the API docs, it appears ProcTP is only for *saved* / inactive plans, which is why I can't see them for the patient I'm looking at. Is there a way for *active* plans to see the cost information from my screenshot? I've not been able to find an endpoint that provides this data, or a table.

Good morning graham_muller,

The data you are looking for is derived from several tables and can vary depending on how an office has Open Dental configured.

For Active and Inactive Treatment Plans, you can do what Open Dental does to calculate the row(s) you need:

Code: Select all

 Procedure.ProcFee
 - Claimproc.InsEstTotalOverride or Claimproc.BaseEst for Primary Insurance
 - Claimproc.InsEstTotalOverride or Claimproc.BaseEst for Secondary Insurance
 - Claimproc.WriteOffEstOverride or Claimproc.WriteOffEst
 - Procedure.Discount 
 + Procedure.TaxAmt
=
Patient Portion

Like you mentioned, for Saved Treatment Plans, the grid rows are directly from the ProcTP table. You can use ProcTPs GET to obtain them and calculate the patient portion similar to above.

graham_mueller
Posts: 44
Joined: Fri Jan 19, 2024 10:57 am

Re: Billing Estimate Endpoints

Post by graham_mueller » Sun Aug 25, 2024 5:05 pm

Code: Select all

Procedure.ProcFee
 - Claimproc.InsEstTotalOverride or Claimproc.BaseEst for Primary Insurance
 - Claimproc.InsEstTotalOverride or Claimproc.BaseEst for Secondary Insurance
 - Claimproc.WriteOffEstOverride or Claimproc.WriteOffEst
 - Procedure.Discount 
 + Procedure.TaxAmt
=
Patient Portion
Comparing to what I have in my screenshot vs what's mentioned here, questions -

Procedure.ProcFee vs ClaimProc.BaseEst - Are these values (always?) the same?
For the "ORs" you mentioned, I assume *prefer override if set*
What indicates an insurance as primary or secondary (or inactive)? The example patient I'm using appears to have two insurances providing ClaimProc rows, but the second set seem to be tied to an insurance that no longer is present in the account.
Is "Allowed" = Base - WriteOff?

DerekR
Posts: 103
Joined: Wed Aug 31, 2022 1:13 pm

Re: Billing Estimate Endpoints

Post by DerekR » Mon Aug 26, 2024 10:57 am

graham_mueller wrote:
Sun Aug 25, 2024 5:05 pm
Procedure.ProcFee vs ClaimProc.BaseEst - Are these values (always?) the same?
No, these values are not always the same. You can see our DB Schema for the difference between ProcedureLog.ProcFee and ClaimProc.BaseEst. More information can be found in our documentation: Procedure Codes , Procedure and Claim Procedures ( claimprocs )

graham_mueller wrote:
Sun Aug 25, 2024 5:05 pm
For the "ORs" you mentioned, I assume *prefer override if set*
Yes, if ClaimProc.InsEstTotalOverride has a value, it will override the InsEstTotal value.
graham_mueller wrote:
Sun Aug 25, 2024 5:05 pm
What indicates an insurance as primary or secondary (or inactive)? The example patient I'm using appears to have two insurances providing ClaimProc rows, but the second set seem to be tied to an insurance that no longer is present in the account.
patplan.Ordinal indicates an insurance as primary, secondary, ect.
graham_mueller wrote:
Sun Aug 25, 2024 5:05 pm
Is "Allowed" = Base - WriteOff?
Information on Allowed Amt can be found here: Claim Procedures ( claimprocs ) and ClaimProc.AllowedOverride

graham_mueller
Posts: 44
Joined: Fri Jan 19, 2024 10:57 am

Re: Billing Estimate Endpoints

Post by graham_mueller » Tue Aug 27, 2024 5:36 pm

DerekR wrote:
Mon Aug 26, 2024 10:57 am
You can see our DB Schema for the difference between ProcedureLog.ProcFee and ClaimProc.BaseEst.
ProcedureLog.ProcFee: Procedure fee.

ClaimProc.BaseEst: Always has a value. Used in TP, etc. The base estimate is the ((fee or allowedOverride)-Copay) x (percentage or percentOverride). Does not include all the extras like ded, annualMax,and paidOtherIns that InsEstTotal holds. BaseEst cannot be overridden by the user. Instead, the following fields can be manipulated: allowedOverride, CopayOverride, PercentOverride
The description for ProcFee leaves a bit up to the imagination for sure. It seems as though the BaseEst is a "fuller" estimate, and I think ProcFee is intended to just be the raw sum of the Proc Codes?
DerekR wrote:
Mon Aug 26, 2024 10:57 am
patplan.Ordinal indicates an insurance as primary, secondary, ect.
I'm a bit lost at how to link here. A ClaimProc has a PlanNum, which is a link to an InsPlan. InsPlan doesn't tie to a patient, so that's perhaps not the FK to follow... it also has InsSubNum which links to an InsSub which *does* have a patient, but still no link to PatPlan... Looking at PatPlan, it also has an InsSubNum, so is that a safe link? ClaimProc.PatNum = PatPlan.PatNum & ClaimProc.InsSubNum = PatPlan.InsSubNum?

Last question from the above, you pointed me at Procedure.Discount, but in my case, I'm always seeing 0 in that column, but in the UI, a value aligning with ClaimProc.WriteOff is always present. Is this a misconfiguration or something?

DerekR
Posts: 103
Joined: Wed Aug 31, 2022 1:13 pm

Re: Billing Estimate Endpoints

Post by DerekR » Wed Aug 28, 2024 9:12 am

graham_mueller wrote:
Tue Aug 27, 2024 5:36 pm
I think ProcFee is intended to just be the raw sum of the Proc Codes?
Procedure.ProcFee is the the billable fee of the procedure based on the fee schedule. Default fees are entered in the Procedure Code List.
graham_mueller wrote:
Tue Aug 27, 2024 5:36 pm
ClaimProc.PatNum = PatPlan.PatNum & ClaimProc.InsSubNum = PatPlan.InsSubNum?
Yes, that will link the claimproc to the patplan. Subscribers can share InsPlans by using the InsSub table. The patplan table determines coverage for individual patients and patplan.Ordinal represents primary ins, secondary ins, tertiary ins, etc.
graham_mueller wrote:
Tue Aug 27, 2024 5:36 pm
Last question from the above, you pointed me at Procedure.Discount, but in my case, I'm always seeing 0 in that column, but in the UI, a value aligning with ClaimProc.WriteOff is always present. Is this a misconfiguration or something?
Procedurelog.Discount stores the dollar amount of the discount, not full price. E.g. for a 10% discount, Fee = $160 Discount = $16. This column is used by treatment planned procedures to create an adjustment when set complete. It should not be used as an accurate monetary discount value for completed procedures.

ClaimProc.Writeoff is the amount not covered by insurance that the office decides not to charge the patient.

ClaimProc.WriteOffEst is generally the claimproc.BaseEst - claimproc.CopayAmt.

Post Reply