|
@@ -1892,6 +1892,8 @@ WHERE
|
|
|
|
|
|
public function rpmMatrixForAdmin(Request $request) {
|
|
public function rpmMatrixForAdmin(Request $request) {
|
|
|
|
|
|
|
|
+ if($request->get('ql')) DB::enableQueryLog();
|
|
|
|
+
|
|
$performer = $this->performer();
|
|
$performer = $this->performer();
|
|
|
|
|
|
// abort_if($performer->pro->pro_type !== 'ADMIN' && !$performer->pro->can_view_rm_matrix, 403);
|
|
// abort_if($performer->pro->pro_type !== 'ADMIN' && !$performer->pro->can_view_rm_matrix, 403);
|
|
@@ -2268,6 +2270,17 @@ WHERE
|
|
$total = $countResult[0]->count;
|
|
$total = $countResult[0]->count;
|
|
|
|
|
|
$query = "
|
|
$query = "
|
|
|
|
+WITH claim_counts AS (
|
|
|
|
+ SELECT
|
|
|
|
+ c.care_month_id,
|
|
|
|
+ COUNT(*) FILTER (WHERE cl.cpt = '99454') AS claim_454,
|
|
|
|
+ COUNT(*) FILTER (WHERE cl.cpt = '99457') AS claim_457,
|
|
|
|
+ COUNT(*) FILTER (WHERE cl.cpt = '99458') AS claim_458
|
|
|
|
+ FROM claim_line cl
|
|
|
|
+ JOIN claim c ON cl.claim_id = c.id
|
|
|
|
+ WHERE c.status <> 'CANCELLED'
|
|
|
|
+ GROUP BY c.care_month_id
|
|
|
|
+)
|
|
SELECT client.name_first, client.name_last,
|
|
SELECT client.name_first, client.name_last,
|
|
(client.name_first || ' ' || client.name_last) as client_name,
|
|
(client.name_first || ' ' || client.name_last) as client_name,
|
|
client.uid as client_uid,
|
|
client.uid as client_uid,
|
|
@@ -2276,7 +2289,6 @@ SELECT client.name_first, client.name_last,
|
|
care_month.is_client_enrolled_in_rm,
|
|
care_month.is_client_enrolled_in_rm,
|
|
client.most_recent_completed_mcp_note_date,
|
|
client.most_recent_completed_mcp_note_date,
|
|
client.most_recent_completed_mcp_note_id,
|
|
client.most_recent_completed_mcp_note_id,
|
|
- client.cell_number,
|
|
|
|
client.is_assigned_cellular_bp_device,
|
|
client.is_assigned_cellular_bp_device,
|
|
client.is_assigned_cellular_weight_scale_device,
|
|
client.is_assigned_cellular_weight_scale_device,
|
|
nv.raw_date as next_visit_date,
|
|
nv.raw_date as next_visit_date,
|
|
@@ -2338,11 +2350,12 @@ SELECT client.name_first, client.name_last,
|
|
WHEN cpc.plan_type LIKE 'COMMERCIAL' THEN payer.name
|
|
WHEN cpc.plan_type LIKE 'COMMERCIAL' THEN payer.name
|
|
ELSE cpc.plan_type
|
|
ELSE cpc.plan_type
|
|
END) as payer_name,
|
|
END) as payer_name,
|
|
- (SELECT COUNT(*) FROM claim_line where claim_line.cpt = '99454' AND claim_line.claim_id IN (SELECT claim.id FROM claim WHERE claim.care_month_id = care_month.id AND claim.status != 'CANCELLED')) as claim_454,
|
|
|
|
- (SELECT COUNT(*) FROM claim_line where claim_line.cpt = '99457' AND claim_line.claim_id IN (SELECT claim.id FROM claim WHERE claim.care_month_id = care_month.id AND claim.status != 'CANCELLED')) as claim_457,
|
|
|
|
- (SELECT COUNT(*) FROM claim_line where claim_line.cpt = '99458' AND claim_line.claim_id IN (SELECT claim.id FROM claim WHERE claim.care_month_id = care_month.id AND claim.status != 'CANCELLED')) as claim_458,
|
|
|
|
|
|
+ cc.claim_454,
|
|
|
|
+ cc.claim_457,
|
|
|
|
+ cc.claim_458,
|
|
{$genericBillIdColumns}
|
|
{$genericBillIdColumns}
|
|
FROM care_month join client on care_month.client_id = client.id
|
|
FROM care_month join client on care_month.client_id = client.id
|
|
|
|
+ LEFT JOIN claim_counts cc ON cc.care_month_id = care_month.id
|
|
left join note mrnote on client.most_recent_completed_mcp_note_id = mrnote.id
|
|
left join note mrnote on client.most_recent_completed_mcp_note_id = mrnote.id
|
|
left join pro mcpPro on care_month.mcp_pro_id = mcpPro.id
|
|
left join pro mcpPro on care_month.mcp_pro_id = mcpPro.id
|
|
left join pro rmmPro on care_month.rmm_pro_id = rmmPro.id
|
|
left join pro rmmPro on care_month.rmm_pro_id = rmmPro.id
|
|
@@ -2373,19 +2386,16 @@ WHERE
|
|
$commonStatSQL = "
|
|
$commonStatSQL = "
|
|
SELECT COUNT(*)
|
|
SELECT COUNT(*)
|
|
FROM care_month join client on care_month.client_id = client.id
|
|
FROM care_month join client on care_month.client_id = client.id
|
|
- left join note mrnote on client.most_recent_completed_mcp_note_id = mrnote.id
|
|
|
|
- left join pro mcpPro on care_month.mcp_pro_id = mcpPro.id
|
|
|
|
- left join pro rmmPro on care_month.rmm_pro_id = rmmPro.id
|
|
|
|
- left join client_primary_coverage cpc on client.effective_client_primary_coverage_id = cpc.id
|
|
|
|
- left join payer on cpc.commercial_payer_id = payer.id
|
|
|
|
- {$genericBillJoinClause}
|
|
|
|
WHERE
|
|
WHERE
|
|
";
|
|
";
|
|
|
|
|
|
$stats['withMeasOn'] = 'N/A';
|
|
$stats['withMeasOn'] = 'N/A';
|
|
$v = $request->input('wmo') ?: date('Y-m-d');
|
|
$v = $request->input('wmo') ?: date('Y-m-d');
|
|
$statQuery = "$commonStatSQL
|
|
$statQuery = "$commonStatSQL
|
|
-(SELECT COUNT(mstat.id) FROM measurement mstat WHERE mstat.care_month_id = care_month.id AND mstat.ts_date_time::date = '$v' AND mstat.is_cellular_zero IS FALSE) > 0 AND
|
|
|
|
|
|
+EXISTS (SELECT 1 FROM measurement mstat WHERE mstat.care_month_id = care_month.id
|
|
|
|
+ AND mstat.ts_date_time >= '$v 00:00:00'
|
|
|
|
+ AND mstat.ts_date_time <= '$v 23:59:59'
|
|
|
|
+ AND mstat.is_cellular_zero IS FALSE) AND
|
|
" . (count($conditions) > 0 ? implode(" AND ", $conditions) : '1') . "
|
|
" . (count($conditions) > 0 ? implode(" AND ", $conditions) : '1') . "
|
|
";
|
|
";
|
|
$statResult = DB::select($statQuery);
|
|
$statResult = DB::select($statQuery);
|
|
@@ -2394,7 +2404,10 @@ WHERE
|
|
$stats['noMeasOn'] = 'N/A';
|
|
$stats['noMeasOn'] = 'N/A';
|
|
$v = $request->input('nmo') ?: date('Y-m-d');
|
|
$v = $request->input('nmo') ?: date('Y-m-d');
|
|
$statQuery = "$commonStatSQL
|
|
$statQuery = "$commonStatSQL
|
|
-(SELECT COUNT(mstat.id) FROM measurement mstat WHERE mstat.care_month_id = care_month.id AND mstat.ts_date_time::date = '$v' AND mstat.is_cellular_zero IS FALSE) = 0 AND
|
|
|
|
|
|
+EXISTS (SELECT 1 FROM measurement mstat WHERE mstat.care_month_id = care_month.id
|
|
|
|
+ AND mstat.ts_date_time >= '$v 00:00:00'
|
|
|
|
+ AND mstat.ts_date_time <= '$v 23:59:59'
|
|
|
|
+ AND mstat.is_cellular_zero IS FALSE) AND
|
|
" . (count($conditions) > 0 ? implode(" AND ", $conditions) : '1') . "
|
|
" . (count($conditions) > 0 ? implode(" AND ", $conditions) : '1') . "
|
|
";
|
|
";
|
|
$statResult = DB::select($statQuery);
|
|
$statResult = DB::select($statQuery);
|
|
@@ -2421,6 +2434,8 @@ WHERE
|
|
$statResult = DB::select($statQuery);
|
|
$statResult = DB::select($statQuery);
|
|
$stats['gt40M'] = $statResult[0]->count;
|
|
$stats['gt40M'] = $statResult[0]->count;
|
|
|
|
|
|
|
|
+ if($request->get('ql')) dd(DB::getQueryLog());
|
|
|
|
+
|
|
return view('app.practice-management.rpm-matrix-for-admin', compact('patients', 'daysRemaining', 'careMonthStart', 'paginator', 'perPage', 'stats'));
|
|
return view('app.practice-management.rpm-matrix-for-admin', compact('patients', 'daysRemaining', 'careMonthStart', 'paginator', 'perPage', 'stats'));
|
|
}
|
|
}
|
|
|
|
|