Răsfoiți Sursa

RPM admin matrix - use new booleans + sort + filters

Vijayakrishnan 3 ani în urmă
părinte
comite
03d025323c

+ 107 - 0
app/Http/Controllers/PracticeManagementController.php

@@ -2060,6 +2060,96 @@ WHERE
             }
         }
 
+        if($request->input('f_mcp_billable')) {
+            if($request->input('f_mcp_billable') === 'no') {
+                $conditions[] = "(care_month.is_billable_by_mcp IS NULL OR care_month.is_billable_by_mcp IS FALSE)";
+            }
+            else {
+                $conditions[] = "(care_month.is_billable_by_mcp IS TRUE)";
+            }
+        }
+
+        if($request->input('f_rmm_billable')) {
+            if($request->input('f_rmm_billable') === 'no') {
+                $conditions[] = "(care_month.is_billable_by_rmm IS NULL OR care_month.is_billable_by_rmm IS FALSE)";
+            }
+            else {
+                $conditions[] = "(care_month.is_billable_by_rmm IS TRUE)";
+            }
+        }
+
+        switch($request->input('f_454')) {
+            case 'Claimable':
+                $conditions[] = "(care_month.is_99454_claimable IS TRUE)";
+                break;
+            case 'Not Claimable':
+                $conditions[] = "(care_month.is_99454_claimable IS NULL OR care_month.is_99454_claimable IS FALSE)";
+                break;
+            case 'Claimed':
+                $conditions[] = "(care_month.is_99454_claimable IS TRUE AND care_month.is_99454_claimed IS TRUE)";
+                break;
+            case 'Not Claimed':
+                $conditions[] = "(care_month.is_99454_claimable IS TRUE AND (care_month.is_99454_claimed IS NULL OR care_month.is_99454_claimed IS FALSE))";
+                break;
+            case 'Waived':
+                $conditions[] = "(care_month.is_99454_claimable IS TRUE AND care_month.is_99454_claiming_waived IS TRUE)";
+                break;
+        }
+
+        switch($request->input('f_454')) {
+            case 'Claimable':
+                $conditions[] = "(care_month.is_99454_claimable IS TRUE)";
+                break;
+            case 'Not Claimable':
+                $conditions[] = "(care_month.is_99454_claimable IS NULL OR care_month.is_99454_claimable IS FALSE)";
+                break;
+            case 'Claimed':
+                $conditions[] = "(care_month.is_99454_claimable IS TRUE AND care_month.is_99454_claimed IS TRUE)";
+                break;
+            case 'Not Claimed':
+                $conditions[] = "(care_month.is_99454_claimable IS TRUE AND (care_month.is_99454_claimed IS NULL OR care_month.is_99454_claimed IS FALSE))";
+                break;
+            case 'Waived':
+                $conditions[] = "(care_month.is_99454_claimable IS TRUE AND care_month.is_99454_claiming_waived IS TRUE)";
+                break;
+        }
+
+        switch($request->input('f_457')) {
+            case 'Claimable':
+                $conditions[] = "(care_month.is_99457_claimable IS TRUE)";
+                break;
+            case 'Not Claimable':
+                $conditions[] = "(care_month.is_99457_claimable IS NULL OR care_month.is_99457_claimable IS FALSE)";
+                break;
+            case 'Claimed':
+                $conditions[] = "(care_month.is_99457_claimable IS TRUE AND care_month.is_99457_claimed IS TRUE)";
+                break;
+            case 'Not Claimed':
+                $conditions[] = "(care_month.is_99457_claimable IS TRUE AND (care_month.is_99457_claimed IS NULL OR care_month.is_99457_claimed IS FALSE))";
+                break;
+            case 'Waived':
+                $conditions[] = "(care_month.is_99457_claimable IS TRUE AND care_month.is_99457_claiming_waived IS TRUE)";
+                break;
+        }
+
+        switch($request->input('f_458')) {
+            case 'Claimable':
+                $conditions[] = "(care_month.is_99458_claimable IS TRUE)";
+                break;
+            case 'Not Claimable':
+                $conditions[] = "(care_month.is_99458_claimable IS NULL OR care_month.is_99458_claimable IS FALSE)";
+                break;
+            case 'Claimed':
+                $conditions[] = "(care_month.is_99458_claimable IS TRUE AND care_month.is_99458_claimed IS TRUE)";
+                break;
+            case 'Not Claimed':
+                $conditions[] = "(care_month.is_99458_claimable IS TRUE AND (care_month.is_99458_claimed IS NULL OR care_month.is_99458_claimed IS FALSE))";
+                break;
+            case 'Waived':
+                $conditions[] = "(care_month.is_99458_claimable IS TRUE AND care_month.is_99458_claiming_waived IS TRUE)";
+                break;
+        }
+
         if($request->input('f_visit_90_days')) {
             /*if($request->input('f_visit_90_days') === 'yes') {
                 $conditions[] = "(care_month.is_claim_closed IS " . ($request->input('f_claim_closed') === 'yes' ? 'TRUE' : 'FALSE') . ")";
@@ -2134,6 +2224,23 @@ SELECT client.name_first, client.name_last,
        care_month.rm_num_measurements_not_stamped_by_non_hcp,
        care_month.rm_num_measurements_not_stamped_by_rmm,
        care_month.rm_num_measurements_not_stamped_by_rme,
+       care_month.is_99454_claimable,
+       care_month.is_99454_claimed,
+       care_month.is_99454_claiming_waived,
+       care_month.is_99457_claimable,
+       care_month.is_99457_claimed,
+       care_month.is_99457_claiming_waived,
+       care_month.is_99458_claimable,
+       care_month.is_99458_claimed,
+       care_month.is_99458_claiming_waived,
+       care_month.is_billable_by_mcp,
+       care_month.is_billable_by_rmm,
+       care_month.why_99454_not_claimable_reason,
+       care_month.why_99457_not_claimable_reason,
+       care_month.why_99458_not_claimable_reason,
+       care_month.why_claiming_99454_waived,
+       care_month.why_claiming_99457_waived,
+       care_month.why_claiming_99458_waived,
        care_month.mcp_pro_id as care_month_mcp_pro_id,
        care_month.rmm_pro_id as care_month_rmm_pro_id,
        client.mcp_pro_id,

+ 1 - 1
config/app.php

@@ -65,7 +65,7 @@ return [
 
     'hrm2_url' => env('HRM2_URL'),
 
-    'asset_version' => 103,
+    'asset_version' => 104,
 
 
     'temp_dir' => env('TEMP_DIR'),

+ 11 - 0
public/css/style.css

@@ -3709,6 +3709,17 @@ table.v-top th {
     line-height: 12px;
     right: calc(50% - 7px);
 }
+.multi-sort-index {
+    font-weight: bold;
+    font-size: 8px !important;
+    width: 14px;
+    height: 14px;
+    color: #0d59af;
+    border: 1px solid #0d59af;
+    border-radius: 100%;
+    text-align: center;
+    line-height: 12px;
+}
 .note-content-divider {
     background: #ddd;
     height: 20px;

+ 29 - 0
resources/views/app/practice-management/_sort_header_multi_v2.blade.php

@@ -0,0 +1,29 @@
+@if(@$key)
+    <?php
+    // sort=key:order,key:order...
+    $current = request()->input('sort_by');
+    $current = $current ? json_decode($current, true) : [];
+    $currentSortForKey = currentSortForKey($current, $key);
+    $targetSortParamForInclusionOrReversal = json_encode(includeOrReverseInMultiSort($current, $key));
+    $targetSortParamForRemoval = json_encode(removeFromMultiSort($current, $key));
+    ?>
+    <div class="">
+        <a href="{{ $route }}?{{queryLineExcept(['sort_by', 'page'])}}&sort_by={!! urlencode($targetSortParamForInclusionOrReversal) !!}" class="text-decoration-none d-block">
+            <b class="{{$currentSortForKey ? 'text-primary' : 'text-secondary'}}">{!! $label !!}</b>
+        </a>
+        <div class="mb-1 d-flex align-items-end position-relative sort-header-arrows flex-nowrap">
+            <i class="mr-1 text-sm fa fa-chevron-up {{$currentSortForKey && $currentSortForKey['order'] === 'DESC' ? 'text-primary' : 'on-hover-opaque text-secondary'}}"></i>
+            <i class="mr-1 text-sm fa fa-chevron-down {{$currentSortForKey && $currentSortForKey['order'] === 'ASC' ? 'text-primary' : 'on-hover-opaque text-secondary'}}"></i>
+            @if($currentSortForKey)
+                <div class="multi-sort-index mr-1">{{$currentSortForKey['index']}}</div>
+            @endif
+            @if($currentSortForKey)
+                <a href="{{ $route }}?{{queryLineExcept(['sort_by', 'page'])}}&sort_by={!! $targetSortParamForRemoval !== '[]' ? urlencode($targetSortParamForRemoval) : '' !!}" class="text-sm on-hover-opaque text-secondary">
+                    <i class="fa fa-times"></i>
+                </a>
+            @endif
+        </div>
+    </div>
+@else
+    <div class="">{!! $label !!}</div>
+@endif

+ 55 - 77
resources/views/app/practice-management/remote-monitoring-row-markup-for-admin.blade.php

@@ -1,7 +1,7 @@
 <?php $lastVisitWithin90Days = !is_null($iPatient->days_between_most_recent_mcp_note_date_and_end_of_care_month) && $iPatient->days_between_most_recent_mcp_note_date_and_end_of_care_month <= 120; ?>
 <tr data-client-uid="{{$iPatient->client_uid}}" data-care-month-uid="{{$iPatient->care_month_uid}}">
     <td>{{ $trIndex + 1 }}</td>
-    <td class="pl-2">
+    <td>
         <a href="/patients/view/{{ $iPatient->client_uid }}/care-months/view/{{$iPatient->care_month_uid}}"
            native target="_blank"
            open-in-stag-popup
@@ -111,109 +111,87 @@
     </td>
 
     <td>
-        @if($lastVisitWithin90Days && $iPatient->has_mcp_interacted_with_client_about_rm && $iPatient->number_of_days_with_remote_measurements >= 16 && $iPatient->rm_total_time_in_seconds_by_mcp >= 1200)
+        @if($iPatient->is_billable_by_mcp)
             <span class="text-success">
-                <i class="fa fa-check text-sm"></i>{{--
-                ${{friendly_money($pro->mcp_rpm_payment_amount, 0)}}--}}
+                <i class="fa fa-check text-sm"></i>
             </span>
         @else
-            <span class="text-danger font-weight-normal">
-                No
-            </span>
+            <span class="text-danger font-weight-normal">No</span>
         @endif
     </td>
     <td>
-        @if($lastVisitWithin90Days && $iPatient->has_mcp_interacted_with_client_about_rm && $iPatient->number_of_days_with_remote_measurements >= 16)
+        @if($iPatient->is_billable_by_rmm)
             <span class="text-success">
-                <i class="fa fa-check text-sm"></i>{{--
-                ${{friendly_money($pro->rmm_payment_amount, 0)}}--}}
+                <i class="fa fa-check text-sm"></i>
             </span>
         @else
-            <span class="text-danger font-weight-normal">
-                No
-            </span>
+            <span class="text-danger font-weight-normal">No</span>
         @endif
     </td>
     <td>
-        <?php
-        $codeStatus = 'No';
-        if($iPatient->number_of_days_with_remote_measurements >= 16 && $lastVisitWithin90Days) {
-            $codeStatus = 'Ready';
-            if($iPatient->claim_454) {
-                $codeStatus = 'Claimed';
-            }
-        }
-        ?>
-        @if($codeStatus === 'No')
-            <span class="text-nowrap text-danger font-weight-normal">
-                {{$codeStatus}}
-            </span>
-        @elseif($codeStatus === 'Ready')
-            <span class="text-nowrap text-dark">
-                <i class="fa fa-thumbs-up text-sm"></i>
-                {{$codeStatus}}
-            </span>
-        @elseif($codeStatus === 'Claimed')
-            <span class="text-nowrap text-success">
+        @if($iPatient->is_99454_claimable)
+            <span class="text-success">
                 <i class="fa fa-check text-sm"></i>
-                {{$codeStatus}}
             </span>
+        @else
+            <span class="text-danger font-weight-normal {{$iPatient->why_99454_not_claimable_reason ? 'font-underline c-pointer' : ''}}" title="{{$iPatient->why_99454_not_claimable_reason}}">No</span>
         @endif
     </td>
     <td>
-        <?php
-        $codeStatus = 'No';
-        if($iPatient->number_of_days_with_remote_measurements >= 10 && $iPatient->has_anyone_interacted_with_client_about_rm &&
-            $lastVisitWithin90Days &&
-            ($iPatient->rm_total_time_in_seconds_by_mcp + $iPatient->rm_total_time_in_seconds_by_rmm_pro) >= 1200) {
-            $codeStatus = 'Ready';
-            if($iPatient->claim_457) {
-                $codeStatus = 'Claimed';
-            }
-        }
-        ?>
-        @if($codeStatus === 'No')
-            <span class="text-nowrap text-danger font-weight-normal">
-                {{$codeStatus}}
-            </span>
-        @elseif($codeStatus === 'Ready')
-            <span class="text-nowrap text-dark">
-                <i class="fa fa-thumbs-up text-sm"></i>
-                {{$codeStatus}}
+        @if($iPatient->is_99454_claimed)
+            <span class="text-success">
+                <i class="fa fa-check text-sm"></i>
             </span>
-        @elseif($codeStatus === 'Claimed')
-            <span class="text-nowrap text-success">
+        @else
+            @if($iPatient->is_99454_claiming_waived)
+                <span class="text-secondary font-weight-normal {{$iPatient->why_claiming_99454_waived ? 'font-underline c-pointer' : ''}}" title="{{$iPatient->why_claiming_99454_waived}}">Waived</span>
+            @else
+                <span class="text-danger font-weight-normal">No</span>
+            @endif
+        @endif
+    </td>
+    <td>
+        @if($iPatient->is_99457_claimable)
+            <span class="text-success">
                 <i class="fa fa-check text-sm"></i>
-                {{$codeStatus}}
             </span>
+        @else
+            <span class="text-danger font-weight-normal {{$iPatient->why_99457_not_claimable_reason ? 'font-underline c-pointer' : ''}}" title="{{$iPatient->why_99457_not_claimable_reason}}">No</span>
         @endif
     </td>
     <td>
-        <?php
-        $codeStatus = 'No';
-        if($iPatient->number_of_days_with_remote_measurements >= 16 && $iPatient->has_anyone_interacted_with_client_about_rm &&
-            $lastVisitWithin90Days &&
-            ($iPatient->rm_total_time_in_seconds_by_mcp + $iPatient->rm_total_time_in_seconds_by_rmm_pro) >= 2400) {
-            $codeStatus = 'Ready';
-            if($iPatient->claim_458) {
-                $codeStatus = 'Claimed';
-            }
-        }
-        ?>
-        @if($codeStatus === 'No')
-            <span class="text-nowrap text-danger font-weight-normal">
-                {{$codeStatus}}
+        @if($iPatient->is_99457_claimed)
+            <span class="text-success">
+                <i class="fa fa-check text-sm"></i>
             </span>
-        @elseif($codeStatus === 'Ready')
-            <span class="text-nowrap text-dark">
-                <i class="fa fa-thumbs-up text-sm"></i>
-                {{$codeStatus}}
+        @else
+            @if($iPatient->is_99457_claiming_waived)
+                <span class="text-secondary font-weight-normal {{$iPatient->why_claiming_99457_waived ? 'font-underline c-pointer' : ''}}" title="{{$iPatient->why_claiming_99457_waived}}">Waived</span>
+            @else
+                <span class="text-danger font-weight-normal">No</span>
+            @endif
+        @endif
+    </td>
+    <td>
+        @if($iPatient->is_99458_claimable)
+            <span class="text-success">
+                <i class="fa fa-check text-sm"></i>
             </span>
-        @elseif($codeStatus === 'Claimed')
-            <span class="text-nowrap text-success">
+        @else
+            <span class="text-danger font-weight-normal {{$iPatient->why_99458_not_claimable_reason ? 'font-underline c-pointer' : ''}}" title="{{$iPatient->why_99458_not_claimable_reason}}">No</span>
+        @endif
+    </td>
+    <td>
+        @if($iPatient->is_99458_claimed)
+            <span class="text-success">
                 <i class="fa fa-check text-sm"></i>
-                {{$codeStatus}}
             </span>
+        @else
+            @if($iPatient->is_99458_claiming_waived)
+                <span class="text-secondary font-weight-normal {{$iPatient->why_claiming_99458_waived ? 'font-underline c-pointer' : ''}}" title="{{$iPatient->why_claiming_99458_waived}}">Waived</span>
+            @else
+                <span class="text-danger font-weight-normal">No</span>
+            @endif
         @endif
     </td>
 </tr>

+ 22 - 19
resources/views/app/practice-management/rpm-matrix-for-admin-table.blade.php

@@ -24,27 +24,30 @@
         <table class="table table-sm table-striped table-hover p-0 m-0 min-width-1100px" id="table-rm-matrix">
             <thead class="bg-light">
             <tr>
-		        <th class="border-0"></th>
-                <th class="border-0 pl-2">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Name', 'key' => 'client_name'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Insurance', 'key' => 'payer_name'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'State', 'key' => 'mailing_address_state'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'CM MCP', 'key' => 'mcp_name'])</th>
+                <th class="border-0 pr-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => '<span class="text-sm font-weight-normal text-secondary">Sort</span>'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Name', 'key' => 'client_name'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Insurance', 'key' => 'payer_name'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'State', 'key' => 'mailing_address_state'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'CM MCP', 'key' => 'mcp_name'])</th>
                 <th class="border-0 text-secondary">BP</th>
                 <th class="border-0 text-secondary">Scale</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'DSLM', 'key' => 'dslm'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'DSLV', 'key' => 'most_recent_completed_mcp_note_date'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Next<br>Visit', 'key' => 'next_visit_date'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => '<i class="text-sm fa fa-phone rotateh"></i> MCP', 'key' => 'has_mcp_interacted_with_client_about_rm'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => '<i class="text-sm fa fa-phone rotateh"></i> Any', 'key' => 'has_anyone_interacted_with_client_about_rm'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => '#Meas.<br>Days', 'key' => 'number_of_days_with_remote_measurements'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => '#MCP<br>Mins.', 'key' => 'rm_total_time_in_seconds_by_mcp'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => '#RMM<br>Mins.', 'key' => 'rm_total_time_in_seconds_by_rmm_pro'])</th>
-                <th class="border-0">@include('app.practice-management._sort_header_multi', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => '#Total<br>Mins.', 'key' => 'rm_total_time_in_seconds'])</th>
-                <th class="border-0 text-secondary">MCP</th>
-                <th class="border-0 text-secondary">RMM</th>
-                <th class="border-0 text-secondary">454</th>
-                <th class="border-0 text-secondary">457</th>
-                <th class="border-0 text-secondary">458</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'DSLM', 'key' => 'dslm'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'DSLV', 'key' => 'most_recent_completed_mcp_note_date'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Next<br>Visit', 'key' => 'next_visit_date'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => '<i class="text-sm fa fa-phone rotateh"></i> MCP', 'key' => 'has_mcp_interacted_with_client_about_rm'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => '<i class="text-sm fa fa-phone rotateh"></i> Any', 'key' => 'has_anyone_interacted_with_client_about_rm'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Meas.<br>Days', 'key' => 'number_of_days_with_remote_measurements'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'MCP<br>Mins.', 'key' => 'rm_total_time_in_seconds_by_mcp'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'RMM<br>Mins.', 'key' => 'rm_total_time_in_seconds_by_rmm_pro'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Total<br>Mins.', 'key' => 'rm_total_time_in_seconds'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'MCP', 'key' => 'is_billable_by_mcp'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'RMM', 'key' => 'is_billable_by_rmm'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Can<br>454', 'key' => 'is_99454_claimable'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Done<br>454', 'key' => 'is_99454_claimed'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Can<br>457', 'key' => 'is_99457_claimable'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Done<br>457', 'key' => 'is_99457_claimed'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Can<br>458', 'key' => 'is_99458_claimable'])</th>
+                <th class="border-0">@include('app.practice-management._sort_header_multi_v2', ['route' => route("practice-management.rpm-matrix-admin"), 'label' => 'Done<br>458', 'key' => 'is_99458_claimed'])</th>
             </tr>
             </thead>
             <tbody>

+ 68 - 0
resources/views/app/practice-management/rpm-matrix-for-admin.blade.php

@@ -211,6 +211,28 @@
                             </div>
                         </div>
 
+                        <div class="width-70px mr-2">
+                            <label class="mb-0 text-sm {{request()->input('f_mcp_billable') ? 'font-weight-bold text-info' : 'text-secondary'}}">MCP Billable</label>
+                            <div class="d-flex align-items-start">
+                                <select name="f_mcp_billable" class=" form-control form-control-sm min-width-unset pl-0">
+                                    <option value="">Any</option>
+                                    <option {{request()->input('f_mcp_billable') === 'Yes' ? 'selected' : ''}} value="Medicare">Yes</option>
+                                    <option {{request()->input('f_mcp_billable') === 'No' ? 'selected' : ''}} value="Non Medicare">No</option>
+                                </select>
+                            </div>
+                        </div>
+
+                        <div class="width-70px mr-2">
+                            <label class="mb-0 text-sm {{request()->input('f_rmm_billable') ? 'font-weight-bold text-info' : 'text-secondary'}}">RMM Billable</label>
+                            <div class="d-flex align-items-start">
+                                <select name="f_rmm_billable" class=" form-control form-control-sm min-width-unset pl-0">
+                                    <option value="">Any</option>
+                                    <option {{request()->input('f_rmm_billable') === 'Yes' ? 'selected' : ''}} value="Medicare">Yes</option>
+                                    <option {{request()->input('f_rmm_billable') === 'No' ? 'selected' : ''}} value="Non Medicare">No</option>
+                                </select>
+                            </div>
+                        </div>
+
                     </div>
 
                     <div class="d-flex align-items-start mt-2">
@@ -323,6 +345,52 @@
                             </div>
                         </div>
 
+                        <div class="min-width-110px mr-2">
+                            <label class="mb-0 text-sm {{request()->input('f_454') ? 'font-weight-bold text-info' : 'text-secondary'}}">454</label>
+                            <div class="d-flex align-items-start">
+                                <select name="f_454"
+                                        class=" form-control form-control-sm min-width-unset pl-0">
+                                    <option value="">Any</option>
+                                    <option {{request()->input('f_454') === 'Claimable' ? 'selected' : ''}} value="Claimable">Claimable</option>
+                                    <option {{request()->input('f_454') === 'Not Claimable' ? 'selected' : ''}} value="Not Claimable">Not Claimable</option>
+                                    <option {{request()->input('f_454') === 'Claimed' ? 'selected' : ''}} value="Claimed">Claimed</option>
+                                    <option {{request()->input('f_454') === 'Not Claimed' ? 'selected' : ''}} value="Not Claimed">Not Claimed</option>
+                                    <option {{request()->input('f_454') === 'Waived' ? 'selected' : ''}} value="Waived">Waived</option>
+                                </select>
+                            </div>
+                        </div>
+
+                        <div class="min-width-110px mr-2">
+                            <label class="mb-0 text-sm {{request()->input('f_457') ? 'font-weight-bold text-info' : 'text-secondary'}}">457</label>
+                            <div class="d-flex align-items-start">
+                                <select name="f_457"
+                                        class=" form-control form-control-sm min-width-unset pl-0">
+                                    <option value="">Any</option>
+                                    <option {{request()->input('f_457') === 'Claimable' ? 'selected' : ''}} value="Claimable">Claimable</option>
+                                    <option {{request()->input('f_457') === 'Not Claimable' ? 'selected' : ''}} value="Not Claimable">Not Claimable</option>
+                                    <option {{request()->input('f_457') === 'Claimed' ? 'selected' : ''}} value="Claimed">Claimed</option>
+                                    <option {{request()->input('f_457') === 'Not Claimed' ? 'selected' : ''}} value="Not Claimed">Not Claimed</option>
+                                    <option {{request()->input('f_457') === 'Waived' ? 'selected' : ''}} value="Waived">Waived</option>
+                                </select>
+                            </div>
+                        </div>
+
+                        <div class="min-width-110px mr-2">
+                            <label class="mb-0 text-sm {{request()->input('f_458') ? 'font-weight-bold text-info' : 'text-secondary'}}">458</label>
+                            <div class="d-flex align-items-start">
+                                <select name="f_458"
+                                        class=" form-control form-control-sm min-width-unset pl-0">
+                                    <option value="">Any</option>
+                                    <option {{request()->input('f_458') === 'Claimable' ? 'selected' : ''}} value="Claimable">Claimable</option>
+                                    <option {{request()->input('f_458') === 'Not Claimable' ? 'selected' : ''}} value="Not Claimable">Not Claimable</option>
+                                    <option {{request()->input('f_458') === 'Claimed' ? 'selected' : ''}} value="Claimed">Claimed</option>
+                                    <option {{request()->input('f_458') === 'Not Claimed' ? 'selected' : ''}} value="Not Claimed">Not Claimed</option>
+                                    <option {{request()->input('f_458') === 'Waived' ? 'selected' : ''}} value="Waived">Waived</option>
+                                </select>
+                            </div>
+                        </div>
+
+
                         <!--<div class="max-width-110px">
                             <label class="mb-0 text-sm {{request()->input('f_visit_90_days') ? 'font-weight-bold text-info' : 'text-secondary'}}">Visit 90 Days</label>
                             <div class="d-flex align-items-start">