|
@@ -311,50 +311,6 @@ class HomeController extends Controller
|
|
|
|
|
|
$milliseconds = strtotime(date('Y-m-d')) . '000';
|
|
|
|
|
|
- // $measurements = $performer->pro->getMeasurements();
|
|
|
-
|
|
|
- $myClientIDs = [];
|
|
|
- if ($performer->pro->pro_type != 'ADMIN') {
|
|
|
- $myClientIDs = $this->getMyClientIds();
|
|
|
- }
|
|
|
-
|
|
|
- $measurements = DB::select(
|
|
|
- DB::raw(
|
|
|
-"
|
|
|
-SELECT measurement.uid as uid,
|
|
|
- care_month.uid as care_month_uid,
|
|
|
- measurement.label,
|
|
|
- measurement.value,
|
|
|
- measurement.sbp_mm_hg,
|
|
|
- measurement.dbp_mm_hg,
|
|
|
- measurement.numeric_value,
|
|
|
- measurement.ts,
|
|
|
- client.uid as client_uid,
|
|
|
- client.name_last,
|
|
|
- client.name_first,
|
|
|
- care_month.rm_total_time_in_seconds
|
|
|
-FROM measurement
|
|
|
- join client on measurement.client_id = client.id
|
|
|
- join care_month on client.id = care_month.client_id
|
|
|
-WHERE measurement.label NOT IN ('SBP', 'DBP')
|
|
|
- AND (measurement.is_cellular_zero = FALSE or measurement.is_cellular_zero IS NULL)
|
|
|
- AND measurement.is_removed IS FALSE
|
|
|
- AND measurement.ts IS NOT NULL
|
|
|
- AND measurement.client_bdt_measurement_id IS NOT NULL
|
|
|
- AND (measurement.status IS NULL OR (measurement.status <> 'ACK' AND measurement.status <> 'INVALID_ACK'))
|
|
|
- AND EXTRACT(MONTH from care_month.start_date) = EXTRACT(MONTH from now())
|
|
|
- AND EXTRACT(YEAR from care_month.start_date) = EXTRACT(YEAR from now())
|
|
|
-" .
|
|
|
- (
|
|
|
- $performer->pro->pro_type != 'ADMIN' && count($myClientIDs) ?
|
|
|
- ' AND client.id IN (' . implode(", ", $myClientIDs) . ')' :
|
|
|
- ''
|
|
|
- )
|
|
|
- ) .
|
|
|
-" ORDER BY measurement.ts DESC LIMIT 12"
|
|
|
-
|
|
|
- );
|
|
|
-
|
|
|
// bills & claims
|
|
|
$businessNumbers = [];
|
|
|
|
|
@@ -408,11 +364,93 @@ WHERE measurement.label NOT IN ('SBP', 'DBP')
|
|
|
->whereRaw('created_by_session_id IN (SELECT id FROM app_session where pro_id = ?)', [$performer->pro->id])
|
|
|
->count();
|
|
|
|
|
|
- return view('app/dashboard', compact('keyNumbers', 'reimbursement', 'milliseconds', 'measurements', 'businessNumbers',
|
|
|
+ return view('app/dashboard', compact('keyNumbers', 'reimbursement', 'milliseconds',
|
|
|
+ 'businessNumbers',
|
|
|
'incomingReports', 'tickets', 'supplyOrders',
|
|
|
'numERx', 'numLabs', 'numImaging', 'numSupplyOrders'));
|
|
|
}
|
|
|
|
|
|
+ public function dashboardMeasurementsTab(Request $request, $page = 1) {
|
|
|
+
|
|
|
+ $performer = $this->performer();
|
|
|
+
|
|
|
+ $myClientIDs = [];
|
|
|
+ if ($performer->pro->pro_type != 'ADMIN') {
|
|
|
+ $myClientIDs = $this->getMyClientIds();
|
|
|
+ $myClientIDs = implode(", ", $myClientIDs);
|
|
|
+ }
|
|
|
+
|
|
|
+ $ifNotAdmin = " AND (
|
|
|
+ client.mcp_pro_id = {$performer->pro->id}
|
|
|
+ OR client.rmm_pro_id = {$performer->pro->id}
|
|
|
+ OR client.rme_pro_id = {$performer->pro->id}
|
|
|
+ OR client.physician_pro_id = {$performer->pro->id}
|
|
|
+ OR client.id in (SELECT client_id FROM client_pro_access WHERE is_active AND pro_id = {$performer->pro->id})
|
|
|
+ OR client.id in (SELECT client_id FROM appointment WHERE status NOT IN ('CANCELLED', 'ABANDONED') AND pro_id = {$performer->pro->id})
|
|
|
+ )";
|
|
|
+
|
|
|
+ $numMeasurements = DB::select(
|
|
|
+ DB::raw(
|
|
|
+ "
|
|
|
+SELECT count(measurement.id) as cnt
|
|
|
+FROM measurement
|
|
|
+ join client on measurement.client_id = client.id
|
|
|
+ join care_month on client.id = care_month.client_id
|
|
|
+WHERE measurement.label NOT IN ('SBP', 'DBP')
|
|
|
+ AND (measurement.is_cellular_zero = FALSE or measurement.is_cellular_zero IS NULL)
|
|
|
+ AND measurement.is_removed IS FALSE
|
|
|
+ AND measurement.ts IS NOT NULL
|
|
|
+ AND measurement.client_bdt_measurement_id IS NOT NULL
|
|
|
+ AND (measurement.status IS NULL OR (measurement.status <> 'ACK' AND measurement.status <> 'INVALID_ACK'))
|
|
|
+ AND EXTRACT(MONTH from care_month.start_date) = EXTRACT(MONTH from now())
|
|
|
+ AND EXTRACT(YEAR from care_month.start_date) = EXTRACT(YEAR from now())
|
|
|
+" .
|
|
|
+ (
|
|
|
+ $performer->pro->pro_type != 'ADMIN' ? $ifNotAdmin : ''
|
|
|
+ )
|
|
|
+ )
|
|
|
+ );
|
|
|
+
|
|
|
+ $numMeasurements = $numMeasurements[0]->cnt;
|
|
|
+
|
|
|
+ $measurements = DB::select(
|
|
|
+ DB::raw(
|
|
|
+ "
|
|
|
+SELECT measurement.uid as uid,
|
|
|
+ care_month.uid as care_month_uid,
|
|
|
+ measurement.label,
|
|
|
+ measurement.value,
|
|
|
+ measurement.sbp_mm_hg,
|
|
|
+ measurement.dbp_mm_hg,
|
|
|
+ measurement.numeric_value,
|
|
|
+ measurement.ts,
|
|
|
+ client.uid as client_uid,
|
|
|
+ client.name_last,
|
|
|
+ client.name_first,
|
|
|
+ care_month.rm_total_time_in_seconds
|
|
|
+FROM measurement
|
|
|
+ join client on measurement.client_id = client.id
|
|
|
+ join care_month on client.id = care_month.client_id
|
|
|
+WHERE measurement.label NOT IN ('SBP', 'DBP')
|
|
|
+ AND (measurement.is_cellular_zero = FALSE or measurement.is_cellular_zero IS NULL)
|
|
|
+ AND measurement.is_removed IS FALSE
|
|
|
+ AND measurement.ts IS NOT NULL
|
|
|
+ AND measurement.client_bdt_measurement_id IS NOT NULL
|
|
|
+ AND (measurement.status IS NULL OR (measurement.status <> 'ACK' AND measurement.status <> 'INVALID_ACK'))
|
|
|
+ AND EXTRACT(MONTH from care_month.start_date) = EXTRACT(MONTH from now())
|
|
|
+ AND EXTRACT(YEAR from care_month.start_date) = EXTRACT(YEAR from now())
|
|
|
+" .
|
|
|
+ (
|
|
|
+ $performer->pro->pro_type != 'ADMIN' ? $ifNotAdmin : ''
|
|
|
+ )
|
|
|
+ ) .
|
|
|
+ " ORDER BY measurement.ts DESC LIMIT 20 OFFSET " . (($page - 1) * 20)
|
|
|
+
|
|
|
+ );
|
|
|
+
|
|
|
+ return view('app.dashboard.measurements', compact('numMeasurements', 'measurements', 'page'));
|
|
|
+ }
|
|
|
+
|
|
|
public function dashboardAppointments(Request $request, $from, $to) {
|
|
|
|
|
|
$performer = $this->performer();
|