Explorar el Código

Merge branch 'optimization' of https://rav.triplestart.com/tigerphp/stagfe2 into optimization

Peter Muturi hace 1 año
padre
commit
6148fb3f3a

+ 30 - 2
app/Helpers/helpers.php

@@ -10,6 +10,7 @@ use App\Models\AppSession;
 use App\Models\Client;
 use App\Models\Pro;
 use App\Models\Bill;
+use App\Models\BillView;
 //require_once './class.Diff.php';
 use Illuminate\Support\Facades\Http;
 use Soundasleep\Html2Text as Html2Text;
@@ -137,9 +138,36 @@ if(!function_exists('inchesAfterFeetFromInches')) {
     }
 }
 
+if(!function_exists('genericBillsView')) {
+    function genericBillsView(Pro $performerPro, $patient,$careMonth, $entityType, $entityUid) {
+        $genericBills = BillView::where('bill_service_type', 'GENERIC');
+        if($performerPro->pro_type !== 'ADMIN') {
+            $genericBills = $genericBills->where('generic_pro_id', $performerPro->id);
+        }
+        if($patient) {
+            $genericBills = $genericBills->where('client_id', $patient->id);
+        }
+
+
+        if($careMonth){
+            $genericBills = $genericBills->where('care_month_id', $careMonth->id);
+        }
+
+        if($entityType && $entityUid) {
+
+            $genericBills = $genericBills
+                ->where('generic_target_entity_type', $entityType)
+                ->where('generic_target_entity_uid', $entityUid);
+
+
+        }
+        return $genericBills->orderBy('created_at', 'DESC')->paginate(20);
+    }
+}
+
 if(!function_exists('genericBills')) {
     function genericBills(Pro $performerPro, $patient,$careMonth, $entityType, $entityUid) {
-        $genericBills = Bill::where('bill_service_type', 'GENERIC');
+        $genericBills = Bill::where('bill_service_type', 'GENERIC')->with('genericPro');
         if($performerPro->pro_type !== 'ADMIN') {
             $genericBills = $genericBills->where('generic_pro_id', $performerPro->id);
         }
@@ -160,7 +188,7 @@ if(!function_exists('genericBills')) {
 
 
         }
-        return $genericBills->orderBy('created_at', 'DESC')->get();
+        return $genericBills->orderBy('created_at', 'DESC')->paginate(10000);
     }
 }
 

+ 5 - 2
app/Http/Controllers/NoteController.php

@@ -16,6 +16,7 @@ use Illuminate\Support\Facades\Http;
 use App\Models\Note;
 use App\Models\Client;
 use App\Models\CompanyPro;
+use App\Models\CompanyProView;
 use App\Models\Section;
 use App\Models\SectionTemplate;
 use App\Models\Segment;
@@ -91,12 +92,14 @@ class NoteController extends Controller
             $companyProIDInts[] = $cpId->company_pro_id;
         }
 
-        $companyPros = CompanyPro::whereIn('id', $companyProIDInts)->get();
+        $companyPros = CompanyPro::whereIn('id', $companyProIDInts)->with('documents')->get();
+
+        $noteHcpCompanyPros = CompanyProView::where('pro_id', $note->hcp_pro_id)->where('is_active', true)->get();
 
         return view('app.patient.note.dashboard', compact('patient', 'note',
             'allSections',
             'companyPros',
-            'supplyOrdersOnNote', 'otherOpenSupplyOrders'));
+            'supplyOrdersOnNote', 'otherOpenSupplyOrders', 'noteHcpCompanyPros'));
     }
 
     private function filterClientDocuments($documents){

+ 3 - 3
app/Http/Controllers/PracticeManagementController.php

@@ -475,7 +475,7 @@ OFFSET {$offset} LIMIT {$perPage}
         $allAllyProsIDs = DB::table('note')->pluck('ally_pro_id')->toArray();
         $allAllyPros = Pro::whereIn('id', $allAllyProsIDs)->get();
 
-        $notes = $query->orderBy('created_at', 'desc')->paginate(30);
+        $notes = $query->with('client', 'hcpPro', 'allyPro')->orderBy('created_at', 'desc')->paginate(30);
 
         return view('app.practice-management.all-notes', compact('notes', 'filters','allProsWithNotes', 'allPatientsWithNotes', 'allAllyPros'));
     }
@@ -1239,7 +1239,7 @@ WHERE claim_line.cpt = '99458' AND
         }
 
         // calculate totals (without pagination)
-        $fPros = Pro::whereNotNull('balance')->where('balance', '>', 0)->get();
+        $fPros = Pro::whereNotNull('balance')->with('companyPros')->where('balance', '>', 0)->get();
         $grandTotal = 0;
         $companies = [];
         foreach ($fPros as $row) {
@@ -1255,7 +1255,7 @@ WHERE claim_line.cpt = '99458' AND
         }
         arsort($companies);
 
-        $fPros = Pro::whereNotNull('balance');
+        $fPros = Pro::whereNotNull('balance')->with('companyPros', 'debitBills');
         if($targetPro) {
             $fPros = $fPros->where('uid', $targetPro->uid);
         }

+ 10 - 0
app/Models/BillView.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App\Models;
+
+# use Illuminate\Database\Eloquent\Model;
+
+class BillView extends Model
+{
+    protected $table = 'bill_view';
+}

+ 12 - 0
app/Models/CompanyProView.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class CompanyProView extends Model
+{
+
+    protected $table = 'company_pro_view';
+
+}

+ 4 - 1
resources/views/app/generic-bills/add-bill-form/_default-fields.blade.php

@@ -66,7 +66,10 @@
             </select>
         </div>
     </div>
-    <input type="hidden" name="numberOfUnits" value="1">
+    <div>
+        <label for="" class="text-secondary text-sm mb-1">Number of Units</label>
+        <input type="number" class="form-control form-control-sm" name="numberOfUnits" value="1" />
+    </div>
     <div class="mb-2" calculated-generic-amount></div>
 </div>
 @if($entityType !== 'Note')

+ 5 - 2
resources/views/app/generic-bills/inline.blade.php

@@ -11,7 +11,7 @@ use App\Models\Client;
 /** @var $entityType */
 /** @var $entityUid */
 
-$genericBills = genericBills($pro, @$patient, @$careMonth, @$entityType, @$entityUid);
+$genericBills = genericBillsView($pro, @$patient, @$careMonth, @$entityType, @$entityUid);
 ?>
 
 @if(!count($genericBills))
@@ -55,7 +55,7 @@ $genericBills = genericBills($pro, @$patient, @$careMonth, @$entityType, @$entit
                     <tr class="{{$bill->is_cancelled ? 'bg-light text-secondary' : ''}}">
                         <td class="text-nowrap">{{friendlier_date_time($bill->effective_date, false)}}</td>
                         <td class="">
-                            <div class="text-nowrap font-weight-bold text-secondary">{{ $bill->genericPro->displayName() }}</div>
+                            <div class="text-nowrap font-weight-bold text-secondary">{{ $bill->generic_pro_display_name }}</div>
                             <div class="text-nowrap mt-1 screen-only">
                                 <span class="text-secondary">Paid: </span>
                                 <span>{{ $bill->has_generic_pro_been_paid ? 'Yes' : 'No' }}</span>
@@ -313,4 +313,7 @@ $genericBills = genericBills($pro, @$patient, @$careMonth, @$entityType, @$entit
                 </tbody>
             </table>
     </div>
+    <div class="mt-3 d-flex justify-content-center">
+    {{ $genericBills->withQueryString()->links() }}
+    </div>
 @endif

+ 4 - 1
resources/views/app/patient/note/custom-visit-with-layout.blade.php

@@ -1,7 +1,10 @@
 <?php
     $segmentMap = [];
     foreach($note->segments as $segment):
-        $segmentMap[$segment->segmentTemplate->internal_name] = $segment;
+        if($segment->segmentTemplate){
+            $segmentMap[$segment->segmentTemplate->internal_name] = $segment;
+        }
+        
     endforeach;
 
     function renderVisitTemplateNode($node, $segMap) {

+ 3 - 1
resources/views/app/patient/note/custom-visit.blade.php

@@ -1,7 +1,9 @@
 <?php
     $segmentMap = [];
     foreach($note->segments as $segment):
-        $segmentMap[$segment->segmentTemplate->internal_name] = $segment;
+        if($segment->segmentTemplate){
+           $segmentMap[$segment->segmentTemplate->internal_name] = $segment; 
+        }        
     endforeach;
 
     function renderVisitTemplateNode($note, $node, $pos, $segMap) {

+ 1 - 1
resources/views/app/patient/note/lhs-tree.blade.php

@@ -31,7 +31,7 @@
         echo '<div class="note-tree-node">' .
             '<a native target="_top" ' .
             'data-segment-uid="' . $segment->uid . '" ' .
-            'data-segment-internal-name="' . $segment->segmentTemplate->internal_name . '" ' .
+            'data-segment-internal-name="' . $segment->segmentTemplate ? $segment->segmentTemplate->internal_name : '' . '" ' .
             'href="#" ' .
             'class="' . ($segment->display_title === 'MedRisk Vigilence' || $segment->subheading === 'Lifestyle' ? 'd-none' : '') . '">' . $segment->display_title . '</a>' .
             '</div>';

+ 1 - 1
resources/views/app/patient/note/note-segment-list-print-v2.blade.php

@@ -3,7 +3,7 @@
     $previousHeading = null;
     $previousSubHeading = null;
     $segments = $note->segments->filter(function ($_x) {
-        $ok = !!$_x->is_active && $_x->segmentTemplate->internal_name !== 'medrisk_vigilence' && strpos($_x->segmentTemplate->internal_name, 'lifestyle_') !== 0;
+        $ok = !!$_x->is_active && $_x->segmentTemplate && $_x->segmentTemplate->internal_name !== 'medrisk_vigilence' && strpos($_x->segmentTemplate->internal_name, 'lifestyle_') !== 0;
         if ($ok) {
             $content = $_x->summary_html;
             if ($_x->accepted_suggestion_summary_html) {

+ 1 - 1
resources/views/app/patient/note/note-segment-list-print-v3.blade copy.php

@@ -3,7 +3,7 @@
     $previousHeading = null;
     $previousSubHeading = null;
     $segments = $note->segments->filter(function ($_x) {
-        $ok = !!$_x->is_active && $_x->segmentTemplate->internal_name !== 'medrisk_vigilence' && strpos($_x->segmentTemplate->internal_name, 'lifestyle_') !== 0;
+        $ok = !!$_x->is_active && $_x->segmentTemplate && $_x->segmentTemplate->internal_name !== 'medrisk_vigilence' && strpos($_x->segmentTemplate->internal_name, 'lifestyle_') !== 0;
         if ($ok) {
             $content = $_x->summary_html;
             if ($_x->accepted_suggestion_summary_html) {

+ 1 - 1
resources/views/app/patient/note/note-segment-list-print-v3.blade.php

@@ -3,7 +3,7 @@
     $previousHeading = null;
     $previousSubHeading = null;
     $segments = $note->segments->filter(function ($_x) {
-        $ok = !!$_x->is_active && $_x->segmentTemplate->internal_name !== 'medrisk_vigilence' && strpos($_x->segmentTemplate->internal_name, 'lifestyle_') !== 0;
+        $ok = !!$_x->is_active && $_x->segmentTemplate && $_x->segmentTemplate->internal_name !== 'medrisk_vigilence' && strpos($_x->segmentTemplate->internal_name, 'lifestyle_') !== 0;
         if ($ok) {
             $content = $_x->summary_html;
             if ($_x->accepted_suggestion_summary_html) {

+ 1 - 1
resources/views/app/patient/note/note-segment-list-print.blade.php

@@ -3,7 +3,7 @@
     $previousHeading = null;
     $previousSubHeading = null;
 	$segments = $note->segments->filter(function($_x) {
-		$ok = !!$_x->is_active && $_x->segmentTemplate->internal_name !== 'medrisk_vigilence' && strpos($_x->segmentTemplate->internal_name, 'lifestyle_') !== 0;
+		$ok = !!$_x->is_active && $_x->segmentTemplate && $_x->segmentTemplate->internal_name !== 'medrisk_vigilence' && strpos($_x->segmentTemplate->internal_name, 'lifestyle_') !== 0;
         if($ok) {
             $content = $_x->summary_html;
             if ($_x->accepted_suggestion_summary_html) {

+ 1 - 0
resources/views/app/patient/note/note-segment-list-single-col.blade.php

@@ -3,6 +3,7 @@ $previousHeading = null;
 $previousSubHeading = null;
 ?>
 @foreach($segments as $segment)
+    @if($segment->segmentTemplate) @continue @endif
     @if($segment->segmentTemplate->internal_name !== 'medrisk_vigilence')
         <?php
         if ($segment->heading !== $previousHeading) {

+ 1 - 0
resources/views/app/patient/note/note-segment-list-slim.blade.php

@@ -7,6 +7,7 @@
     $previousSubHeading = null;
     ?>
     @foreach($note->segmentsLeft as $segment)
+        @if(!$segment->segmentTemplate) @continue @endif
         <?php
         if ($segment->heading !== $previousHeading) {
             if (!empty($previousHeading)) {

+ 1 - 0
resources/views/app/patient/note/note-segment-list.blade.php

@@ -7,6 +7,7 @@
     $previousSubHeading = null;
     ?>
     @foreach($note->segmentsLeft as $segment)
+        @if(!$segment->segmentTemplate) @continue @endif
         <?php
         if ($segment->heading !== $previousHeading) {
             if (!empty($previousHeading)) {

+ 2 - 2
resources/views/app/patient/note/partials/cpp-bills-claims-container.blade.php

@@ -30,8 +30,8 @@
                                     <select name="hcpCompanyProUid" class="form-control form-control-sm">
                                         <option value="">-- select --</option>
                                         @if($note->hcpPro)
-                                            @foreach($note->hcpPro->companyPros as $companyPro)
-                                                <option value="{{$companyPro->uid}}">{{$companyPro->pro->displayName() . ' / ' . $companyPro->company->name}}</option>
+                                            @foreach($noteHcpCompanyPros as $companyPro)
+                                                <option value="{{$companyPro->uid}}">{{$companyPro->pro_display_name . ' / ' . $companyPro->company_name}}</option>
                                             @endforeach
                                         @endif
                                     </select>

+ 3 - 0
resources/views/app/patient/note/pdf.blade.php

@@ -140,6 +140,9 @@
 
     // find and store handle to specific segments
     foreach($note->segments as $segment) {
+        if(!$segment->segmentTemplate){
+            continue;
+        } 
         switch($segment->segmentTemplate->internal_name) {
             case 'plan_allergies':
                 $allergiesSegment = $segment;

+ 4 - 4
resources/views/app/patient/note/segment-always-open.blade.php

@@ -1,5 +1,5 @@
 <?php
-$iName = $segment->segmentTemplate->internal_name;
+$iName = $segment->segmentTemplate ? $segment->segmentTemplate->internal_name;: '';
 $wizardPowered = [
     'omega_medications',
     'omega_problems',
@@ -11,7 +11,7 @@ $wizardPowered = [
 <div class="border-bottom note-section visit-segment outline-0 {{$note->is_signed_by_hcp ? 'events-none' : (in_array($iName, $wizardPowered) !== FALSE ? 'edit-trigger' : 'edit')}}"
      data-segment-uid="{{ $segment->uid }}"
      data-segment-template-uid="{{ $segment->segmentTemplate->uid }}"
-     data-segment-template-name="{{ $segment->segmentTemplate->internal_name }}">
+     data-segment-template-name="{{ $iName }}">
 
     <div class="bg-white text-dark px-2 py-1">
         <div class="d-flex align-items-baseline">
@@ -39,13 +39,13 @@ $wizardPowered = [
             @endif
 
             {{-- if segment has log feature, link --}}
-            @if($pro->pro_type === 'ADMIN' && file_exists(resource_path("views/app/patient/segment-templates/{$segment->segmentTemplate->internal_name}/log.blade.php")))
+            @if($pro->pro_type === 'ADMIN' && file_exists(resource_path("views/app/patient/segment-templates/{$iName}/log.blade.php")))
                 <a native="" target="_blank"
                    class="c-pointer ml-2 text-decoration-none"
                    open-in-stag-popup=""
                    title="{{$segment->display_title}} - Change Log"
                    popup-style="medium"
-                   href="/note-segment-view/{{$patient->uid}}/{{$note->uid}}/{{$segment->uid}}/<?= $segment->segmentTemplate->internal_name ?>/log">
+                   href="/note-segment-view/{{$patient->uid}}/{{$note->uid}}/{{$segment->uid}}/<?= $iName ?>/log">
                     <i class="fas fa-history on-hover-opaque"></i>
                 </a>
             @endif

+ 2 - 2
resources/views/app/patient/note/segment-print-v3.blade.php

@@ -1,9 +1,9 @@
-<?php $iName = $segment->segmentTemplate->internal_name; ?>
+<?php $iName = $segment->segmentTemplate ? $segment->segmentTemplate->internal_name : ''; ?>
 <?php $isLSSegment = strpos($iName, 'lifestyle_') === 0; ?>
 <div class="note-section visit-segment mb-3 {{strpos($iName, 'lifestyle_') === 0 && $iName !== 'lifestyle_general' ? 'zero-height' : ''}}"
      data-segment-uid="{{ $segment->uid }}"
      data-segment-template-uid="{{ $segment->segmentTemplate->uid }}"
-     data-segment-template-name="{{ $segment->segmentTemplate->internal_name }}">
+     data-segment-template-name="{{ $iName }}">
 
     <div class="d-flex align-items-baseline">
         <span class="font-weight-bold d-flex align-items-center {{$isLSSegment || $iName === 'medrisk_vigilence' ? '' : 'xxxmb-2'}}" style="">