Ver código fonte

CM measurements matrix (entries list + Add)

Vijayakrishnan 3 anos atrás
pai
commit
fcdce43629

+ 8 - 0
app/Models/Client.php

@@ -684,8 +684,16 @@ ORDER BY m.effective_date
             $date = new \DateTime("@$time");
             $date->setTimezone(new \DateTimeZone($realTimezone));
             $match->date = $date->format("m/d/Y");
+            $match->dateYMD = $date->format("Y-m-d");
             $match->time = $date->format("h:i A");
 
+            // get existing entries for listing
+            $match->entries = CareMonthEntry::where('care_month_id', $match->care_month_id)
+                ->where('is_removed', false)
+                ->where('effective_date', $match->dateYMD)
+                ->orderBy('created_at')
+                ->get();
+
             if(!isset($days[$match->date])) {
                 $days[$match->date] = [];
             }

+ 3 - 0
public/css/style.css

@@ -1883,4 +1883,7 @@ table.dashboard-stats-table th {
 }
 .min-height-500px {
     min-height: 500px;
+}
+.inline-html-container p {
+    margin-bottom: 0;
 }

+ 185 - 86
resources/views/app/patient/care-month/_matrix.blade.php

@@ -9,110 +9,209 @@
         $performerRole = 'NON-HCP';
     }
 ?>
-<table class="table table-striped table-sm table-bordered mt-2 mb-0">
+<table class="table table-condensed table-sm table-bordered mt-2 mb-0">
     <thead>
     <tr>
-        <th class="px-2 text-secondary">Date</th>
-        <th class="px-2 text-secondary w-25">Measurements</th>
-        <th class="px-2 text-secondary w-25">Stamp + Entry</th>
-        <th class="px-2 text-secondary">Entries</th>
+        <th class="px-2 text-secondary align-bottom" rowspan="2">Date</th>
+        <th class="px-2 text-secondary border-bottom-0" colspan="4">Measurements</th>
+        <th class="px-2 text-secondary align-bottom" rowspan="2">Stamp + Entry</th>
+        <th class="px-2 text-secondary" rowspan="2">Entries</th>
+    </tr>
+    <tr>
+        <th class="text-secondary text-sm">Time</th>
+        <th class="text-secondary text-sm">Type</th>
+        <th class="text-secondary text-sm">Value</th>
+        <th class="text-secondary text-sm">Stamp</th>
+        <th></th>
     </tr>
     </thead>
     <tbody>
     @foreach($days as $k => $day)
+        <?php $unstamped = []; ?>
+        @foreach($days[$k] as $mIndex => $m)
         <tr>
+            @if($mIndex === 0)
+                <td rowspan="{{count($days[$k])}}">
+                    {{$k}}
+                </td>
+            @endif
+            <td>{{$m->time}}</td>
+            <td>
+                @if($m->label === 'BP')
+                    BP
+                @elseif($m->label === 'Wt. (lbs.)')
+                    Weight
+                @endif
+            </td>
             <td>
-                {{$k}}
+                @if($m->label === 'BP')
+                    {{ $m->sbp_mm_hg }}/{{ $m->dbp_mm_hg }}
+                @elseif($m->label === 'Wt. (lbs.)')
+                    {{ round(floatval($m->numeric_value), 2) }} lbs
+                @endif
             </td>
             <td>
-                @foreach($days[$k] as $m)
-                    <div class="mb-1 d-flex align-items-baseline">
-                        <span class="width-60px text-sm text-nowrap text-secondary">{{$m->time}}</span>
-                        <span class="width-50px">
-                            @if($m->label === 'BP')
-                                BP
-                            @elseif($m->label === 'Wt. (lbs.)')
-                                Weight
-                            @endif
-                        </span>
-                        <span class="width-100px font-weight-bold">
-                            @if($m->label === 'BP')
-                                {{ $m->sbp_mm_hg }}/{{ $m->dbp_mm_hg }}
-                            @elseif($m->label === 'Wt. (lbs.)')
-                                {{ round(floatval($m->numeric_value), 2) }} lbs
-                            @endif
-                        </span>
-                        @if($performerRole === 'MCP')
-                            <div class="width-100px">
-                                @if($m->has_been_stamped_by_mcp)
-                                    <span class="text-secondary text-sm">
-                                        <i class="fa fa-check"></i>
-                                        Stamped
-                                    </span>
-                                @else
-                                    <div moe relative>
-                                        <a href="#" start show>Stamp</a>
-                                        <form url="/api/measurement/stampAsMcp" right class="width-300px">
-                                            <input type="hidden" name="uid" value="{{$m->measurement_uid}}">
-                                            <p class="mb-1">Stamp this measurement?</p>
-                                            <div class="mt-2 bg-light border p-2">
-                                                <div class="mb-1 text-secondary">{{ $m->label }}</div>
-                                                <div class="font-weight-bold mb-1">
-                                                    @if($m->label === 'BP')
-                                                        {{ round($m->sbp_mm_hg, 2) }}/{{ round($m->dbp_mm_hg, 2) }} mmHg
-                                                        <span class="font-weight-normal d-inline-block pl-2">Pulse:</span>
-                                                        {{ $m->value_pulse }} {{ $m->value_irregular === 0?'Irregular':'' }} {{ $m->value_irregular === 1?'Regular':'' }}
-                                                    @elseif($m->label === 'Wt. (lbs.)')
-                                                        {{ round($m->numeric_value, 2) }} lbs
-                                                    @else
-                                                        {{ $m->value }}
-                                                    @endif
-                                                </div>
-                                                <div class="text-sm">
-                                                    {{ $m->date }} {{ $m->time }} EST
-                                                </div>
-                                            </div>
-                                            <div class="mb-2 border border-info p-2 mt-2 bg-light">
-                                                <span>I have had interactive communication with <b>{{$patient->displayName()}}</b> during this care month.</span>
-                                                <div class="d-flex border-top mt-2">
-                                                    <label class="mt-2 mb-0 d-inline-flex align-items-center mr-3">
-                                                        <input type="radio" class="mr-2" name="communicatedToPatient" value="true" required>
-                                                        <span>Yes</span>
-                                                    </label>
-                                                    <label class="mt-2 mb-0 d-inline-flex align-items-center">
-                                                        <input type="radio" class="mr-2" name="communicatedToPatient" value="false" checked required>
-                                                        <span>No</span>
-                                                    </label>
-                                                </div>
-                                            </div>
-                                            <div class="mb-2">
-                                                <label class="mb-1 text-secondary text-sm">Memo</label>
-                                                <textarea class="form-control form-control-sm" name="memo"></textarea>
-                                            </div>
-                                            <div class="form-group m-0">
-                                                <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
-                                                <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
-                                            </div>
-                                        </form>
+                @if($performerRole === 'MCP')
+                    <div class="width-100px">
+                        @if($m->has_been_stamped_by_mcp)
+                            <span class="text-secondary text-sm">
+                                <i class="fa fa-check"></i>
+                                Stamped
+                            </span>
+                        @else
+                            <?php $unstamped[] = $m->measurement_uid; ?>
+                            <div moe relative>
+                                <a href="#" start show>Stamp</a>
+                                <form url="/api/measurement/stampAsMcp" right class="width-300px">
+                                    <input type="hidden" name="uid" value="{{$m->measurement_uid}}">
+                                    <p class="mb-1">Stamp this measurement?</p>
+                                    <div class="mt-2 bg-light border p-2">
+                                        <div class="mb-1 text-secondary">{{ $m->label }}</div>
+                                        <div class="font-weight-bold mb-1">
+                                            @if($m->label === 'BP')
+                                                {{ round($m->sbp_mm_hg, 2) }}/{{ round($m->dbp_mm_hg, 2) }} mmHg
+                                                <span class="font-weight-normal d-inline-block pl-2">Pulse:</span>
+                                                {{ $m->value_pulse }} {{ $m->value_irregular === 0?'Irregular':'' }} {{ $m->value_irregular === 1?'Regular':'' }}
+                                            @elseif($m->label === 'Wt. (lbs.)')
+                                                {{ round($m->numeric_value, 2) }} lbs
+                                            @else
+                                                {{ $m->value }}
+                                            @endif
+                                        </div>
+                                        <div class="text-sm">
+                                            {{ $m->date }} {{ $m->time }} EST
+                                        </div>
+                                    </div>
+                                    <div class="mb-2 border border-info p-2 mt-2 bg-light">
+                                        <span>I have had interactive communication with <b>{{$patient->displayName()}}</b> during this care month.</span>
+                                        <div class="d-flex border-top mt-2">
+                                            <label class="mt-2 mb-0 d-inline-flex align-items-center mr-3">
+                                                <input type="radio" class="mr-2" name="communicatedToPatient" value="true" required>
+                                                <span>Yes</span>
+                                            </label>
+                                            <label class="mt-2 mb-0 d-inline-flex align-items-center">
+                                                <input type="radio" class="mr-2" name="communicatedToPatient" value="false" checked required>
+                                                <span>No</span>
+                                            </label>
+                                        </div>
+                                    </div>
+                                    <div class="mb-2">
+                                        <label class="mb-1 text-secondary text-sm">Memo</label>
+                                        <textarea class="form-control form-control-sm" name="memo"></textarea>
+                                    </div>
+                                    <div class="form-group m-0">
+                                        <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
+                                        <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
                                     </div>
-                                @endif
+                                </form>
                             </div>
-                        @elseif($performerRole === 'MCP')
-                            <div class="width-100px">
-                                @if($m->has_been_stamped_by_non_hcp)
-                                    <span class="text-secondary text-sm">
-                                        <i class="fa fa-check"></i>
-                                        Stamped
-                                    </span>
-                                @else
-                                    NOT STAMPED
-                                @endif
+                        @endif
+                    </div>
+                @elseif($performerRole === 'MCP')
+                    <div class="width-100px">
+                        @if($m->has_been_stamped_by_non_hcp)
+                            <span class="text-secondary text-sm">
+                                <i class="fa fa-check"></i>
+                                Stamped
+                            </span>
+                        @else
+                            <?php $unstamped[] = $m->measurement_uid; ?>
+                        @endif
+                    </div>
+                @endif
+            </td>
+                @if($mIndex === 0)
+                    <td rowspan="{{count($days[$k])}}">
+                        @if(count($unstamped))
+                            <div moe relative class="btn-stamp-all">
+                                <a href="#" start show class="">
+                                    Stamp All &amp; Create Entry
+                                </a>
+                                <form url="/api/measurement/bulkStampAsMcp">
+                                    <input type="hidden" name="measurementUids" value="{{implode('|', $unstamped)}}">
+                                    <p class="mb-1">Stamp all measurements?</p>
+                                    <div class="mb-2 border border-info p-2 mt-2 bg-light width-300px">
+                                        <span>I have had interactive communication with <b>{{$patient->displayName()}}</b> during this care month.</span>
+                                        <div class="d-flex border-top mt-2">
+                                            <label class="mt-2 mb-0 d-inline-flex align-items-center mr-3">
+                                                <input type="radio" class="mr-2" name="communicatedToPatient" value="true" required>
+                                                <span>Yes</span>
+                                            </label>
+                                            <label class="mt-2 mb-0 d-inline-flex align-items-center">
+                                                <input type="radio" class="mr-2" name="communicatedToPatient" value="false" checked required>
+                                                <span>No</span>
+                                            </label>
+                                        </div>
+                                    </div>
+                                    <div class="mb-2">
+                                        <label class="mb-1 text-secondary text-sm">Memo</label>
+                                        <textarea class="form-control form-control-sm" name="memo"></textarea>
+                                    </div>
+                                    <div class="form-group m-0">
+                                        <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
+                                        <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
+                                    </div>
+                                </form>
                             </div>
                         @endif
+                    </td>
+                @endif
+            </td>
+            <td>
+                @foreach($m->entries as $entry)
+                    <div class="my-1 d-flex align-items-start">
+                        <b>{{round($entry->time_in_seconds / 60)}}m</b>
+                        <span class="text-secondary ml-2 inline-html-container">{!! $entry->content_text !!}</span>
                     </div>
                 @endforeach
+                    <div moe large>
+                        <a start show class="py-0 mb-3 text-sm">+ Add</a>
+                        <form url="/api/careMonthEntry/createForRm">
+                            <input type="hidden" name="careMonthUid" value="{{ $careMonth->uid }}">
+                            <div class="mb-2">
+                                <div class="row">
+                                    <div class="col-4 pr-0">
+                                        <select class="form-control form-control-sm w-100" name="proUid" provider-search data-pro-uid="{{ @$pro->uid }}"
+                                                required>
+                                            <option value="">-- Select Pro --</option>
+                                        </select>
+                                    </div>
+                                    <div class="col-4 pr-0">
+                                        <?php
+                                        $sD = strtotime($careMonth->start_date);
+                                        $y = date('Y', $sD);
+                                        $m0 = date('m', $sD);
+                                        $d = date('t', $sD);
+                                        $yCurrent = date('Y');
+                                        $mCurrent = date('m');
+                                        ?>
+                                        <input autofocus type="date" min="{{ date($y . '-' . $m0 . '-01') }}" max="{{ date($y . '-' . $m0 . '-' . $d) }}"
+                                               value="{{$m->dateYMD}}"
+                                               class="form-control form-control-sm w-100" name="effectiveDate"
+                                               placeholder="Effective Date" required>
+                                    </div>
+                                    <div class="col-4">
+                                        <input type="number" min="0" max="5400" class="form-control form-control-sm w-100 cm-time-value" name="timeInMinutes"
+                                               value="2" placeholder="Time (mins.)" required>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="mb-2">
+                                <div class="row">
+                                    <div class="col-12">
+                                        <div cm-rte data-content="Reviewed/managed patient measurements" data-name="contentText"></div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="d-flex align-items-center">
+                                <button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+                                <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                            </div>
+                        </form>
+                    </div>
             </td>
         </tr>
+        @endforeach
     @endforeach
     </tbody>
 </table>