Răsfoiți Sursa

Print summary

Samson Mutunga 1 an în urmă
părinte
comite
414aef82f2

+ 4 - 0
app/Http/Controllers/CareMonthController.php

@@ -36,4 +36,8 @@ class CareMonthController extends Controller
         return view('app.patient.care-month.dashboard', compact('patient', 'careMonth', 'pros', 'cmTemplates', 'rmTemplates'));
     }
 
+    public function measurementsPrint(Request $request, Client $patient, CareMonth $careMonth )
+    {
+        return view('app.patient.care-month.measurements-print', compact('patient', 'careMonth'));
+    }
 }

+ 5 - 1
resources/views/app/patient/care-month/dashboard.blade.php

@@ -85,8 +85,12 @@
                     <i class="fa fa-chevron-left"></i>
                 </a>
                 <div>
-                    <div>
+                    <div class="d-flex align-items-center">
                         <span class="text-dark font-weight-bold font-size-14">Care Month</span>&nbsp;for&nbsp;<span class="text-dark font-weight-bold">{{friendly_month($careMonth->start_date)}}</span>
+                        <div class="ml-3">
+                            <a href="" class="mr-2" target="_blank" native><i class="fas fa-print fa-fw"></i> Print Detailed</a>
+                            <a href="{{ route('patients.view.care-months.view.measurements-print', ['patient' => $patient, 'careMonth' => $careMonth]) }}" class="" target="_blank" native><i class="fas fa-print fa-fw"></i> Print Summary</a>
+                        </div>
                     </div>
                 </div>
             </h6>

+ 96 - 0
resources/views/app/patient/care-month/measurements-print.blade.php

@@ -0,0 +1,96 @@
+@extends('layouts.print')
+
+@section('content')
+    <style>
+        html,
+        body {
+            height: max-content
+        }
+    </style>
+    <div id="printableScreen">
+        <div style="text-align:center;margin-top:15px;">
+            <h6 class="font-weight-bold text-uppercase">{{ $patient->displayName() }}</h6>
+            <div>
+                <span class="text-dark font-weight-bold">Care Month</span>&nbsp;for&nbsp;<span
+                    class="text-dark font-weight-bold">{{ friendly_month($careMonth->start_date) }}</span>
+            </div>
+        </div>
+
+        <table class="table table-striped table-sm table-bordered mt-2 mb-0">
+            <thead>
+                <tr>
+                    <th class="px-2 text-secondary">Effective Date</th>
+                    <th class="px-2 text-secondary w-25">Category</th>
+                    <th class="px-2 text-secondary w-25">Value</th>
+                    <th class="px-2 text-secondary">Stamped</th>
+                </tr>
+            </thead>
+            <tbody>
+                @php
+                    $measurementsInCareMonth = $patient->measurementsInCareMonth($careMonth);
+                    $plottableMeasurements = [];
+                @endphp
+                @foreach ($measurementsInCareMonth as $measurement)
+                    @if (!empty($measurement->label) && !in_array($measurement->label, ['SBP', 'DBP']) && !$measurement->is_cellular_zero)
+                        <tr>
+                            <td class="px-2">
+                                @if ($measurement->ts)
+                                    <?php $timestampInSec = floor($measurement->ts / 1000); ?>
+                                    {{ friendly_date_time_short_with_tz_from_timestamp($timestampInSec, 'EASTERN') }}
+                                @else
+                                    {{ friendly_date_time_short_with_tz($measurement->effective_date, true, 'EASTERN') }}
+                                @endif
+                                EST
+                            </td>
+                            <td class="px-2">{{ $measurement->label }}</td>
+                            <td class="px-2">
+                                @if ($measurement->is_cellular_zero)
+                                    <i class="font-size-11 fa fa-rss"></i>
+                                @elseif($measurement->label === 'BP')
+                                    {{ $measurement->sbp_mm_hg }}/{{ $measurement->dbp_mm_hg }} mmHg
+                                @elseif($measurement->label === 'Wt. (lbs.)')
+                                    {{ round(floatval($measurement->numeric_value), 2) }} lbs
+                                @else
+                                    {{ $measurement->value }}
+                                @endif
+                            </td>
+                            <td colspan="px-2">
+                                <?php
+                                $stamps = ['has_been_stamped_by_mcp', 'has_been_stamped_by_non_hcp', 'has_been_stamped_by_rme', 'has_been_stamped_by_rmm'];
+                                $isStamped = false;
+                                foreach ($stamps as $stamp) {
+                                    if ($measurement->{$stamp}) {
+                                        $isStamped = true;
+                                    }
+                                }
+                                ?>
+                                @if($isStamped)
+                                    ✓
+                                @endif
+                            </td>
+                        </tr>
+                    @endif
+                @endforeach
+                @if (!$patient->measurements || !count($patient->measurements) === 0)
+                    <tr>
+                        <td class="text-secondary p-0 border-0">
+                            No items to show
+                        </td>
+                    </tr>
+                @endif
+            </tbody>
+        </table>
+    </div>
+    <script>
+        function printDiv(divName) {
+            var printContents = document.getElementById(divName).innerHTML;
+            var originalContents = document.body.innerHTML;
+            document.body.innerHTML = printContents;
+            window.print();
+            document.body.innerHTML = originalContents;
+        }
+        document.addEventListener("DOMContentLoaded", function(event) {
+            printDiv('printableScreen');
+        });
+    </script>
+@endsection

+ 1 - 0
routes/web.php

@@ -636,6 +636,7 @@ Route::middleware('pro.auth')->group(function () {
             Route::get('care-months', 'PatientController@careMonths')->name('care-months');
             Route::name('care-months.view.')->prefix('care-months/view/{careMonth}')->group(function () {
                 Route::get('', 'CareMonthController@dashboard')->name('dashboard');
+                Route::get('/measurements-print', 'CareMonthController@measurementsPrint')->name('measurements-print');
             });
 
             // appointment calendar