Ver Fonte

Care month RMM billing

Vijayakrishnan há 3 anos atrás
pai
commit
d77212d4ad

+ 68 - 0
app/Models/CareMonth.php

@@ -204,4 +204,72 @@ class CareMonth extends Model
         }
     
     }
+
+    public function calculateBillabilityForRmm(){
+
+        if(!$this->rmmPro) {
+            return [
+                'billable' => false,
+                'reason' => 'RMM not set on the care month.'
+            ];
+        }
+
+        $strategy = $this->rmm_payment_strategy;
+        if(!$strategy){
+            return [
+                'billable' => false,
+                'reason' => 'RPM strategy has not been set.'
+            ];
+        }
+
+        $rmmRpmPaymentAmount =  $this->rmm_payment_amount;
+        $has16PlusDays = $this->number_of_days_with_remote_measurements >= 16;
+        $hasRmmBilled20Minutes = $this->rm_total_time_in_seconds_by_rmm_pro >= 1200;
+        $hasMcpInteracted = $this->has_mcp_interacted_with_client_about_rm;
+        if($strategy == 'X16_DAYS'){
+            //only check for 16 days
+            if($has16PlusDays){
+                return [
+                    'billable' => true,
+                    'amount' => $rmmRpmPaymentAmount
+                ];
+            } else {
+                //not billable
+                return [
+                    'billable' => false,
+                    'reason' => "This care month does not have 16 or more measurement days."
+                ];
+            }
+        }
+
+        if($strategy == 'X16_DAYS_20_MINS_ON_OWN_MCP_COM_DURING_CM'){
+            if ($has16PlusDays && $hasRmmBilled20Minutes && $hasMcpInteracted) {
+                return [
+                    'billable' => true,
+                    'amount' => $rmmRpmPaymentAmount
+                ];
+            } else {
+                if(!$has16PlusDays){
+                    return [
+                        'billable' => false,
+                        'reason' => 'Care month does not have 16 or more measurement days.'
+                    ];
+                }
+                if(!$hasRmmBilled20Minutes){
+                    return [
+                        'billable' => false,
+                        'reason' => 'Care month does not have 20 minutes in entries.'
+                    ];
+                }
+                if(!$hasMcpInteracted){
+                    return [
+                        'billable' => false,
+                        'reason' => 'Care month does not have MCP interaction.'
+                    ];
+                }
+
+            }
+        }
+
+    }
 }

+ 121 - 52
resources/views/app/patient/care-month/dashboard.blade.php

@@ -338,64 +338,133 @@
                                     </div>
                                 @endif
 
-                                <div class="mt-2 d-flex align-items-baseline">
-                                    <span class="font-weight-bold text-secondary mr-1">Billing:</span>
-                                    <div>
-                                @if($careMonth->mcpRmGenericBill == null )
-                                    
-                                    @php 
-                                        $rpmBillability = $careMonth->calculateBillabilityForMcp();
-                                    @endphp 
-
-                                    @if(!$rpmBillability['billable'])
-                                        <div class="alert alert-info">{{$rpmBillability['reason']}}</div>
-                                    @else 
-                                        <div moe relative class="d-inline-block">
-                                            <a class="font-weight-bold" href="" show start>Bill ${{$rpmBillability['amount']}}</a>
-                                            <form url="/api/careMonth/generateRmGenericBillForMcpAndAutoSign">
-                                                <input type="hidden" name="uid" value="{{$careMonth->uid}}">
-                                                <p>Bill ${{$rpmBillability['amount']}} for this care month?</p>
-                                                <div class="mb-0">
-                                                    <button class="btn btn-success btn-sm" submit>Bill &amp; Sign</button>
-                                                    <button class="btn btn-default border btn-sm" cancel>Cancel</button>
-                                                </div>
-                                            </form>
-                                        </div>   
-                                    @endif
-                                @else 
-                                    <div class="font-weight-bold text-success d-inline-flex align-items-baseline">
-                                        <i class="fa fa-check mr-1"></i>
-                                        <span>Billed: ${{$careMonth->mcpRmGenericBill->generic_pro_expected_payment_amount}}</span>
-                                        @if($careMonth->mcpRmGenericBill->is_signed_by_generic_pro)
-                                            <span class="text-success ml-1 text-sm">(Signed)</span>
-                                        @else 
-                                            <div moe relative class="d-inline-block text-sm ml-2">
-                                                <a class="font-weight-bold" href="" show start>Sign</a>
-                                                <form url="/api/bill/signAsGenericPro" right>
-                                                    <input type="hidden" name="uid" value="{{$careMonth->mcpRmGenericBill->uid}}">
-                                                    <p>Sign this bill?</p>
-                                                    <div class="mb-0">
-                                                        <button class="btn btn-success btn-sm" submit>Sign</button>
-                                                        <button class="btn btn-default border btn-sm" cancel>Cancel</button>
-                                                    </div>
-                                                </form>
-                                            </div>
+                                {{-- mcp billing --}}
+                                @if($performer->pro->pro_type == 'ADMIN' || $careMonth->mcp && $pro->id === $careMonth->mcp->id)
+                                    <div class="mt-2 d-flex align-items-baseline">
+                                        @if($performer->pro->pro_type == 'ADMIN')
+                                            <span class="font-weight-bold text-secondary mr-1">Billing (MCP):</span>
+                                        @else
+                                            <span class="font-weight-bold text-secondary mr-1">Billing:</span>
                                         @endif
-                                        <div moe relative class="d-inline-block text-sm ml-2">
-                                            <a class="font-weight-normal text-danger" href="" show start>Cancel</a>
-                                            <form url="/api/bill/markCancelled" right>
-                                                <input type="hidden" name="uid" value="{{$careMonth->mcpRmGenericBill->uid}}">
-                                                <p class="text-dark font-weight-normal">Cancel this bill?</p>
-                                                <div class="mb-0">
-                                                    <button class="btn btn-primary btn-sm" submit>Cancel</button>
-                                                    <button class="btn btn-default border btn-sm" cancel>Cancel</button>
+                                        <div>
+                                            @if($careMonth->mcpRmGenericBill == null )
+                                                @php
+                                                    $rpmBillability = $careMonth->calculateBillabilityForMcp();
+                                                @endphp
+                                                @if(!$rpmBillability['billable'])
+                                                    <div class="alert alert-info">{{$rpmBillability['reason']}}</div>
+                                                @else
+                                                    <div moe relative class="d-inline-block">
+                                                        <a class="font-weight-bold" href="" show start>Bill ${{$rpmBillability['amount']}}</a>
+                                                        <form url="/api/careMonth/generateRmGenericBillForMcpAndAutoSign">
+                                                            <input type="hidden" name="uid" value="{{$careMonth->uid}}">
+                                                            <p>Bill ${{$rpmBillability['amount']}} for this care month?</p>
+                                                            <div class="mb-0">
+                                                                <button class="btn btn-success btn-sm" submit>Bill &amp; Sign</button>
+                                                                <button class="btn btn-default border btn-sm" cancel>Cancel</button>
+                                                            </div>
+                                                        </form>
+                                                    </div>
+                                                @endif
+                                            @else
+                                                <div class="font-weight-bold text-success d-inline-flex align-items-baseline">
+                                                    <i class="fa fa-check mr-1"></i>
+                                                    <span>Billed: ${{$careMonth->mcpRmGenericBill->generic_pro_expected_payment_amount}}</span>
+                                                    @if($careMonth->mcpRmGenericBill->is_signed_by_generic_pro)
+                                                        <span class="text-success ml-1 text-sm">(Signed)</span>
+                                                    @else
+                                                        <div moe relative class="d-inline-block text-sm ml-2">
+                                                            <a class="font-weight-bold" href="" show start>Sign</a>
+                                                            <form url="/api/bill/signAsGenericPro" right>
+                                                                <input type="hidden" name="uid" value="{{$careMonth->mcpRmGenericBill->uid}}">
+                                                                <p>Sign this bill?</p>
+                                                                <div class="mb-0">
+                                                                    <button class="btn btn-success btn-sm" submit>Sign</button>
+                                                                    <button class="btn btn-default border btn-sm" cancel>Cancel</button>
+                                                                </div>
+                                                            </form>
+                                                        </div>
+                                                    @endif
+                                                    <div moe relative class="d-inline-block text-sm ml-2">
+                                                        <a class="font-weight-normal text-danger" href="" show start>Cancel</a>
+                                                        <form url="/api/bill/markCancelled" right>
+                                                            <input type="hidden" name="uid" value="{{$careMonth->mcpRmGenericBill->uid}}">
+                                                            <p class="text-dark font-weight-normal">Cancel this bill?</p>
+                                                            <div class="mb-0">
+                                                                <button class="btn btn-primary btn-sm" submit>Cancel</button>
+                                                                <button class="btn btn-default border btn-sm" cancel>Cancel</button>
+                                                            </div>
+                                                        </form>
+                                                    </div>
                                                 </div>
-                                            </form>
+                                            @endif
                                         </div>
                                     </div>
                                 @endif
+
+                                {{-- rmm billing --}}
+                                @if($performer->pro->pro_type == 'ADMIN' || $careMonth->rmmPro && $pro->id === $careMonth->rmmPro->id)
+                                    <div class="mt-2 d-flex align-items-baseline">
+                                        @if($performer->pro->pro_type == 'ADMIN')
+                                            <span class="font-weight-bold text-secondary mr-1">Billing (RMM):</span>
+                                        @else
+                                            <span class="font-weight-bold text-secondary mr-1">Billing:</span>
+                                        @endif
+                                        <div>
+                                            @if($careMonth->rmmRmGenericBill == null )
+                                                @php
+                                                    $rpmBillability = $careMonth->calculateBillabilityForRmm();
+                                                @endphp
+                                                @if(!$rpmBillability['billable'])
+                                                    <div class="font-weight-bold">{{$rpmBillability['reason']}}</div>
+                                                @else
+                                                    <div moe relative class="d-inline-block">
+                                                        <a class="font-weight-bold" href="" show start>Bill ${{$rpmBillability['amount']}}</a>
+                                                        <form url="/api/careMonth/generateRmGenericBillForRmmAndAutoSign">
+                                                            <input type="hidden" name="uid" value="{{$careMonth->uid}}">
+                                                            <p>Bill ${{$rpmBillability['amount']}} for this care month?</p>
+                                                            <div class="mb-0">
+                                                                <button class="btn btn-success btn-sm" submit>Bill &amp; Sign</button>
+                                                                <button class="btn btn-default border btn-sm" cancel>Cancel</button>
+                                                            </div>
+                                                        </form>
+                                                    </div>
+                                                @endif
+                                            @else
+                                                <div class="font-weight-bold text-success d-inline-flex align-items-baseline">
+                                                    <i class="fa fa-check mr-1"></i>
+                                                    <span>Billed: ${{$careMonth->rmmRmGenericBill->generic_pro_expected_payment_amount}}</span>
+                                                    @if($careMonth->rmmRmGenericBill->is_signed_by_generic_pro)
+                                                        <span class="text-success ml-1 text-sm">(Signed)</span>
+                                                    @else
+                                                        <div moe relative class="d-inline-block text-sm ml-2">
+                                                            <a class="font-weight-bold" href="" show start>Sign</a>
+                                                            <form url="/api/bill/signAsGenericPro" right>
+                                                                <input type="hidden" name="uid" value="{{$careMonth->rmmRmGenericBill->uid}}">
+                                                                <p>Sign this bill?</p>
+                                                                <div class="mb-0">
+                                                                    <button class="btn btn-success btn-sm" submit>Sign</button>
+                                                                    <button class="btn btn-default border btn-sm" cancel>Cancel</button>
+                                                                </div>
+                                                            </form>
+                                                        </div>
+                                                    @endif
+                                                    <div moe relative class="d-inline-block text-sm ml-2">
+                                                        <a class="font-weight-normal text-danger" href="" show start>Cancel</a>
+                                                        <form url="/api/bill/markCancelled" right>
+                                                            <input type="hidden" name="uid" value="{{$careMonth->rmmRmGenericBill->uid}}">
+                                                            <p class="text-dark font-weight-normal">Cancel this bill?</p>
+                                                            <div class="mb-0">
+                                                                <button class="btn btn-primary btn-sm" submit>Yes</button>
+                                                                <button class="btn btn-default border btn-sm" cancel>No</button>
+                                                            </div>
+                                                        </form>
+                                                    </div>
+                                                </div>
+                                            @endif
+                                        </div>
                                     </div>
-                                </div>
+                                @endif
 
                                 <div class="mt-2">
                                     {{-- rm reasons --}}