Browse Source

Processing Bills (RPM) - Filter for has/has-not 454, 457, 458

Vijayakrishnan 2 years ago
parent
commit
449faae981

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

@@ -1117,6 +1117,51 @@ OFFSET {$offset} LIMIT {$perPage}
             });
         }
 
+        // 99454
+        $filter = $request->input('c4');
+        if ($filter) {
+            $q = "(SELECT COUNT(claim_line.id) 
+FROM claim_line 
+WHERE claim_line.cpt = '99454' AND 
+    claim_line.claim_id IN (SELECT claim.id FROM claim WHERE status <> 'CANCELLED' AND care_month_id = bill.care_month_id))";
+            if ($filter == 'yes') {
+                $bills = $bills->whereRaw("$q > 0");
+            }
+            else {
+                $bills = $bills->whereRaw("$q = 0");
+            }
+        }
+
+        // 99457
+        $filter = $request->input('c7');
+        if ($filter) {
+            $q = "(SELECT COUNT(claim_line.id) 
+FROM claim_line 
+WHERE claim_line.cpt = '99457' AND 
+    claim_line.claim_id IN (SELECT claim.id FROM claim WHERE status <> 'CANCELLED' AND care_month_id = bill.care_month_id))";
+            if ($filter == 'yes') {
+                $bills = $bills->whereRaw("$q > 0");
+            }
+            else {
+                $bills = $bills->whereRaw("$q = 0");
+            }
+        }
+
+        // 99458
+        $filter = $request->input('c8');
+        if ($filter) {
+            $q = "(SELECT COUNT(claim_line.id) 
+FROM claim_line 
+WHERE claim_line.cpt = '99458' AND 
+    claim_line.claim_id IN (SELECT claim.id FROM claim WHERE status <> 'CANCELLED' AND care_month_id = bill.care_month_id))";
+            if ($filter == 'yes') {
+                $bills = $bills->whereRaw("$q > 0");
+            }
+            else {
+                $bills = $bills->whereRaw("$q = 0");
+            }
+        }
+
         $bills = $bills->orderBy('id', 'desc')->paginate();
 
         $companies = Company::where('is_active', true)->orderBy('name')->get();

+ 25 - 12
resources/views/app/practice-management/processing-bill-matrix2.blade.php

@@ -42,17 +42,30 @@
                         <option {{request()->input('c') === 'has-claims' ? 'selected' : ''}} value="has-claims">Has Claims</option>
                     </select>
                 </div>
-{{--                <div class="max-width-140px ml-2">--}}
-{{--                    <label class="text-sm text-secondary mb-1">Company</label>--}}
-{{--                    <select name="filter" class="form-control form-control-sm min-width-unset" onchange="return billsFilter('c', this.value)">--}}
-{{--                        <option {{!request()->input('c') ? 'selected' : ''}} value="">All Companies</option>--}}
-{{--                        @foreach($companies as $company)--}}
-{{--                            <option {{request()->input('c') == $company->id ? 'selected' : ''}} value="{{$company->id}}">--}}
-{{--                                {{$company->name}}--}}
-{{--                            </option>--}}
-{{--                        @endforeach--}}
-{{--                    </select>--}}
-{{--                </div>--}}
+                <div class="max-width-110px ml-2">
+                    <label class="text-sm text-secondary mb-1">99454</label>
+                    <select name="filter" class="form-control form-control-sm min-width-unset flex-grow-1" onchange="return billsFilter('c4', this.value)">
+                        <option {{request()->input('c4') === '' ? 'selected' : ''}} value="">All</option>
+                        <option {{request()->input('c4') === 'no' ? 'selected' : ''}} value="no">No 99454</option>
+                        <option {{request()->input('c4') === 'yes' ? 'selected' : ''}} value="yes">Has 99454</option>
+                    </select>
+                </div>
+                <div class="max-width-110px ml-2">
+                    <label class="text-sm text-secondary mb-1">99457</label>
+                    <select name="filter" class="form-control form-control-sm min-width-unset flex-grow-1" onchange="return billsFilter('c7', this.value)">
+                        <option {{request()->input('c7') === '' ? 'selected' : ''}} value="">All</option>
+                        <option {{request()->input('c7') === 'no' ? 'selected' : ''}} value="no">No 99457</option>
+                        <option {{request()->input('c7') === 'yes' ? 'selected' : ''}} value="yes">Has 99457</option>
+                    </select>
+                </div>
+                <div class="max-width-110px ml-2">
+                    <label class="text-sm text-secondary mb-1">99458</label>
+                    <select name="filter" class="form-control form-control-sm min-width-unset flex-grow-1" onchange="return billsFilter('c8', this.value)">
+                        <option {{request()->input('c8') === '' ? 'selected' : ''}} value="">All</option>
+                        <option {{request()->input('c8') === 'no' ? 'selected' : ''}} value="no">No 99458</option>
+                        <option {{request()->input('c8') === 'yes' ? 'selected' : ''}} value="yes">Has 99458</option>
+                    </select>
+                </div>
                 @if(@$targetPro || count(array_filter(request()->all(), function($_x) { return !!$_x && $_x !== 'na' && $_x !== 'hcp';})))
                     <div class="ml-3">
                         <label class="text-sm text-secondary mb-1">&nbsp;</label>
@@ -314,7 +327,7 @@
         window.billsFilter = function(_key, _value, _isClient = false) {
 
             <?php
-            $keys = ['f', 'bs', 'be', 't', 'c', 's'];
+            $keys = ['f', 'bs', 'be', 't', 'c', 's', 'c4', 'c7', 'c8'];
             $currentParams = [];
             for ($i = 0; $i < count($keys); $i++) {
                 if (!!request()->input($keys[$i])) {