瀏覽代碼

Billing report - filters check

Vijayakrishnan 3 年之前
父節點
當前提交
3ff4dd4630

+ 15 - 33
app/Http/Controllers/PracticeManagementController.php

@@ -157,55 +157,31 @@ SELECT effective_date, count(*), sum(number_of_units) as units FROM bill WHERE c
         $verified = $request->get('verified');
 
         if($no_claims){
-            /*$rows = $rows->whereHas('note', function($noteQuery){
-                return $noteQuery->has('claims', '=', 0);
-            });*/
             $conditions[] = "(clm.id IS NULL)";
         }
 
-        /*
         if($zero_deductible){
-            $rows = $rows->whereHas('client', function($clientQuery){
-                return $clientQuery->where('client_engagement_status_category','<>' ,'DUMMY')
-                ->whereHas('effectiveClientPrimaryCoverage', function($lcpcQuery){
-                    return $lcpcQuery->where('auto_medicare_mpb_deductible', 0);
-                });
-            });
+            $conditions[] = "(SELECT count(*) FROM client_primary_coverage cpc WHERE 
+            ((cpc.plan_type = 'MEDICARE' AND cpc.auto_medicare_mpb_deductible > 0) OR (cpc.plan_type = 'COMMERCIAL' AND cpc.deductible_amount > 0))
+            AND c.effective_client_primary_coverage_id = cpc.id) = 0";
         }
-        */
 
         if($claim_status){
-            /*$rows = $rows->whereHas('note', function($noteQuery) use ($claim_status){
-                return $noteQuery->whereHas('claims', function($claimQuery) use ($claim_status) {
-                    return $claimQuery->where('status', $claim_status);
-                });
-            });*/
             $conditions[] = "(clm.status = '{$claim_status}')";
         }
 
-        /*
-
         if($verified){
             if($verified == 'VERIFIED'){
-                $rows = $rows->whereHas('note', function($noteQuery){
-                    return $noteQuery->whereHas('bills', function($billQuery) {
-                        return $billQuery->where('is_verified', true)->where('is_cancelled', false);
-                    });
-                });
+                $conditions[] = "(SELECT count(*) FROM bill b WHERE 
+            b.is_verified IS TRUE AND b.is_cancelled IS FALSE AND b.note_id = n.id) > 0";
             }
 
             if($verified == 'UNVERIFIED'){
-                $rows = $rows->whereHas('note', function($noteQuery){
-                    return $noteQuery->whereHas('bills', function($billQuery) {
-                        return $billQuery->where('is_verified', false)->where('is_cancelled', false);
-                    });
-                });
+                $conditions[] = "(SELECT count(*) FROM bill b WHERE 
+            b.is_verified IS FALSE AND b.is_cancelled IS FALSE AND b.note_id = n.id) > 0";
             }
         }
 
-        // $rows->paginate(50);
-        */
-
         $from = "FROM note n
          JOIN (SELECT count(*) AS count,
                       bill.note_id
@@ -214,7 +190,8 @@ SELECT effective_date, count(*), sum(number_of_units) as units FROM bill WHERE c
                GROUP BY bill.note_id) bill_sum ON n.id = bill_sum.note_id
          LEFT JOIN client c ON n.client_id = c.id
          LEFT JOIN pro p ON n.hcp_pro_id = p.id
-         LEFT JOIN claim clm on n.id = clm.note_id";
+         LEFT JOIN claim clm on n.id = clm.note_id
+         LEFT JOIN client_primary_coverage cpc on c.effective_client_primary_coverage_id = cpc.id";
 
         $defaultPageSize = 25;
 
@@ -252,7 +229,12 @@ SELECT c.id                                                                 AS c
        n.is_bill_closed                                                     AS is_billing_closed,
        n.is_claim_closed                                                    AS is_claiming_closed,
        bill_sum.count                                                       AS bill_count,
-       clm.status                                                           AS claim_status,
+       clm.status                                                           AS claim_status,    
+       cpc.plan_type                                                        AS plan_type,
+       cpc.auto_medicare_is_partbprimary                                    AS auto_medicare_is_partbprimary,
+       cpc.auto_medicare_mpb_deductible                                     AS medicare_deductible,
+       cpc.deductible_amount                                                AS commercial_deductible,
+       (SELECT name from payer WHERE payer.id = cpc.commercial_payer_id)    AS payer_name,
        array_to_string(
                ARRAY(SELECT ((((bill.code::text || ' | '::text) || bill.number_of_units::text) || ' units | '::text) ||
                              round(bill.number_of_units * 60::numeric)) || ' mins'::text

+ 8 - 13
resources/views/app/practice-management/billing-report.blade.php

@@ -78,22 +78,17 @@
                 </thead>
                 <tbody>
                     @foreach ($rows as $row)
-{{--                        <tr>--}}
-{{--                            <td colspan="20">--}}
-{{--                                <?php dump($row) ?>--}}
-{{--                            </td>--}}
-{{--                        </tr>--}}
                     <tr class="{{false ? 'bg-light' : ''}}">
                         <td class="text-nowrap border-left-0">
                             <a native target="_blank" href="/patients/view/{{$row->client_uid}}/notes/view/{{$row->note_uid}}">
                                 {{$row->client_first}} {{$row->client_last}}
                             </a>
-                            {{--@if($row->client->getPrimaryCoverage() )
-                                <div>Plan Type: {{$row->client->getPrimaryCoverage()->plan_type}}</div>
-                                @if($row->client->getPrimaryCoverage()->plan_type == 'MEDICARE')
-                                    @if($row->client->getPrimaryCoverage()->auto_medicare_is_partbprimary == 'YES')
+                            @if($row->plan_type)
+                                <div>Plan Type: {{$row->plan_type}}</div>
+                                @if($row->plan_type == 'MEDICARE')
+                                    @if($row->auto_medicare_is_partbprimary == 'YES')
                                         <div>
-                                            Deductible: {{friendly_money($row->client->getPrimaryCoverage()->auto_medicare_mpb_remaining)}}
+                                            Deductible: {{friendly_money($row->medicare_deductible)}}
                                         </div>
                                     @else 
                                         <div>
@@ -102,13 +97,13 @@
                                     @endif
                                 @else 
                                     <div>
-                                        {{$row->client->getPrimaryCoverage()->commercialPayer?$row->client->getPrimaryCoverage()->commercialPayer->name:''}}
+                                        {{$row->payer_name ?: '-'}}
                                     </div>
                                     <div>
-                                        Deductible: {{friendly_money($row->client->getPrimaryCoverage()->deductible_amount)}}
+                                        Deductible: {{friendly_money($row->commercial_deductible)}}
                                     </div>
                                 @endif
-                            @endif--}}
+                            @endif
                         </td>
                         <td class="text-nowrap border-left-0">
                             <a href="/patients/view/{{$row->client_uid}}/notes/view/{{$row->note_uid}}">