Advertisement
kevinrossen

Production and Patients by Carrier, previous 18 months.

Dec 14th, 2018
631
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.71 KB | None | 0 0
  1. -- Production and Patients by Carrier. Provided by Divergent Dental Resources, LLC. Contact info@divergentdental.com for more.
  2. SET
  3.     @FromDate = CURDATE() - INTERVAL 18 MONTH,
  4.     @ToDate = CURDATE(),
  5.     @Carrier = '%%' -- Change 'Delta%' to '%%' to pull all patients.
  6. ;
  7. SELECT
  8.     CASE WHEN c.CarrierName IS NULL THEN '*Self-Pay' ELSE SUBSTRING_INDEX(c.CarrierName, ' ', 2) END AS PriCarrier,
  9.     COUNT(DISTINCT t1.PatNum) AS TotPats,
  10.     ROUND(SUM(CASE WHEN t1.Type LIKE 'Fee' THEN t1.Amt ELSE 0 END), 2) AS $Gross,
  11.     ROUND(SUM(CASE WHEN t1.Type LIKE 'WO' THEN t1.Amt ELSE 0 END), 2) AS $WO,
  12.     ROUND(SUM(CASE WHEN t1.Type LIKE 'Fee' THEN t1.Amt ELSE 0 END), 2) - ROUND(SUM(CASE WHEN t1.Type LIKE 'WO' THEN t1.Amt ELSE 0 END), 2) AS $Net,
  13.     ROUND((SUM(CASE WHEN t1.Type LIKE 'Fee' THEN t1.Amt ELSE 0 END) - SUM(CASE WHEN t1.Type LIKE 'WO' THEN t1.Amt ELSE 0 END)) / COUNT(DISTINCT t1.PatNum), 2) AS $NetPerPat
  14. FROM patient p
  15. INNER JOIN
  16.     (
  17.     SELECT
  18.         pl.PatNum,
  19.         pl.ProcNum,
  20.         'Fee' AS `Type`,
  21.         pl.ProcFee AS Amt
  22.     FROM procedurelog pl
  23.     WHERE
  24.         pl.ProcDate BETWEEN @FromDate AND @ToDate
  25.         AND pl.ProcStatus = 2
  26.  
  27.     UNION ALL
  28.  
  29.     SELECT
  30.         cp.PatNum,
  31.         cp.ProcNum,
  32.         'WO' AS `Type`,
  33.         cp.WriteOff
  34.     FROM claimproc cp
  35.     WHERE
  36.         cp.Status IN (1,4,0) /*received or supplemental or notreceived*/  
  37.         AND cp.ProcDate BETWEEN @FromDate AND @ToDate
  38.     ) t1 ON p.PatNum = t1.PatNum
  39. LEFT JOIN patplan pp ON pp.PatNum = p.PatNum AND pp.Ordinal = 1 -- Primary Insurance
  40. LEFT JOIN inssub ib ON pp.InsSubNum = ib.InsSubNum
  41. LEFT JOIN insplan ip ON ip.PlanNum = ib.PlanNum
  42. LEFT JOIN carrier c ON c.CarrierNum = ip.CarrierNum AND c.CarrierName LIKE @Carrier
  43. WHERE
  44.     p.PatStatus = 0 -- Active Patients 
  45. GROUP BY PriCarrier
  46. ORDER BY $Net DESC
  47. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement