Explorar o código

Vitals segment overhaul - BP split + copy from previous

Vijayakrishnan %!s(int64=3) %!d(string=hai) anos
pai
achega
0b037fd7ba

+ 3 - 0
public/css/style.css

@@ -1403,6 +1403,9 @@ table.table-edit-sheet tbody tr td textarea {
     min-width: unset !important;
     border-bottom: 1px solid #dee2e6;
 }
+table.table-edit-sheet tbody tr td>input.w-auto-input {
+    width: auto !important;
+}
 table.table-edit-sheet tbody tr td>input:focus,
 table.table-edit-sheet tbody tr td>select:focus {
     background: #fff;

+ 77 - 55
resources/views/app/patient/segment-templates/vitals/edit.blade.php

@@ -105,63 +105,74 @@ $copyTriggerAdded = [];
             </thead>
             <tbody>
                 @foreach($vitalLabels as $k => $v)
-                <tr>
-                    <td>
-                        <input type="text" tabindex="-1"
-                               class="form-control form-control-sm events-none border-0"
-                               value="{{ $v }}" readonly>
-                    </td>
-                    <td class="position-relative">
-                        @if($k === "bmi")
-                            <input type="text" readonly bmi
-                                   class="form-control form-control-sm vitals-title border-bottom border-top-0 border-left-0 border-right-0"
-                                   data-name="bmi" value="{{$contentData['bmi']}}">
-                            @if(isset($contentData['bmi']) && $contentData['bmi'] != "" )
-                                <p class="py-1 m-0 px-2 font-weight-bold bg-white">
-                                    <?php $bmi = $contentData['bmi']; ?>
-                                    @if($bmi < 18.5)
-                                        <span class="text-sm text-warning-mellow" v-if="+bmi < 18.5">Underweight</span>
-                                    @endif
-                                    @if($bmi >= 18.5 && $bmi < 25)
-                                        <span class="text-sm text-success" v-if="+bmi >= 18.5 && +bmi < 25">Healthy Weight</span>
-                                    @endif
-                                    @if($bmi >= 25 && $bmi > 30)
-                                        <span class="text-sm text-warning-mellow" v-if="+bmi >= 25 && +bmi < 30">Overweight</span>
-                                    @endif
-                                    @if($bmi >= 30)
-                                        <span class="text-sm text-warning-mellow" v-if="+bmi >= 30">Obese</span>
-                                    @endif
-                                </p>
+                    @if($k !== 'diastolicBP')
+                    <tr>
+                        <td>
+                            <input type="text" tabindex="-1"
+                                   class="form-control form-control-sm events-none border-0"
+                                   value="{{ $k === 'systolicBP' ? 'Blood Pressure' : $v }}" readonly>
+                        </td>
+                        <td class="position-relative">
+                            @if($k === "bmi")
+                                <input type="text" readonly bmi
+                                       class="form-control form-control-sm vitals-title border-bottom border-top-0 border-left-0 border-right-0"
+                                       data-name="bmi" value="{{$contentData['bmi']}}">
+                                @if(isset($contentData['bmi']) && $contentData['bmi'] != "" )
+                                    <p class="py-1 m-0 px-2 font-weight-bold bg-white">
+                                        <?php $bmi = $contentData['bmi']; ?>
+                                        @if($bmi < 18.5)
+                                            <span class="text-sm text-warning-mellow" v-if="+bmi < 18.5">Underweight</span>
+                                        @endif
+                                        @if($bmi >= 18.5 && $bmi < 25)
+                                            <span class="text-sm text-success" v-if="+bmi >= 18.5 && +bmi < 25">Healthy Weight</span>
+                                        @endif
+                                        @if($bmi >= 25 && $bmi > 30)
+                                            <span class="text-sm text-warning-mellow" v-if="+bmi >= 25 && +bmi < 30">Overweight</span>
+                                        @endif
+                                        @if($bmi >= 30)
+                                            <span class="text-sm text-warning-mellow" v-if="+bmi >= 30">Obese</span>
+                                        @endif
+                                    </p>
+                                @endif
+                            @elseif($k === "smokingStatus")
+                                <input type="text"
+                                       class="form-control form-control-sm border-0"
+                                       data-name="smokingStatus"
+                                       data-option-list="smokingStatus" value="{{$contentData['smokingStatus']}}">
+                                <div id="smoking-status-options" class="data-option-list">
+                                    <div>Current</div>
+                                    <div>Former</div>
+                                    <div>Never</div>
+                                </div>
+                            @elseif($k === 'systolicBP')
+                                <div class="d-flex align-items-stretch">
+                                    <input type="text" class="form-control form-control-sm min-width-unset w-auto-input flex-grow-1 border-bottom-0 border-right" data-name="systolicBP" systolicBP value="{{$contentData['systolicBP']}}">
+                                    <input type="text" class="form-control form-control-sm min-width-unset w-auto-input flex-grow-1 border-bottom-0" data-name="diastolicBP" diastolicBP value="{{$contentData['diastolicBP']}}">
+                                </div>
+                            @else
+                                <input type="text" class="form-control form-control-sm border-0" data-name="{{$k}}" {{$k}} value="{{$contentData[$k]}}"
+                                  @if($k == 'heightInInches' || $k == 'weightPounds') refresh-bmi @endif>
                             @endif
-                        @elseif($k === "smokingStatus")
-                            <input type="text"
-                                   class="form-control form-control-sm border-0"
-                                   data-name="smokingStatus"
-                                   data-option-list="smokingStatus" value="{{$contentData['smokingStatus']}}">
-                            <div id="smoking-status-options" class="data-option-list">
-                                <div>Current</div>
-                                <div>Former</div>
-                                <div>Never</div>
-                            </div>
+                        </td>
+                        @if(!$previousData || !count($previousData))
+                            <td class="bg-light"></td>
                         @else
-                            <input type="text" class="form-control form-control-sm border-0" data-name="{{$k}}" {{$k}} value="{{$contentData[$k]}}"
-                              @if($k == 'heightInInches' || $k == 'weightPounds') refresh-bmi @endif>
+                            @foreach($previousData as $pDay)
+                                <td class="bg-light {{!isset($copyTriggerAdded[$k]) ? 'px-2' : 'px-2'}} py-1 text-secondary position-relative">
+                                    @if($k === 'systolicBP')
+                                        {{ @$previousDataAssoc[$pDay['date']]['systolicBP'] ?: '-' }}/{{ @$previousDataAssoc[$pDay['date']]['diastolicBP'] ?: '-' }}
+                                    @else
+                                        {{$previousDataAssoc[$pDay['date']][$k] ?: '-' }}
+                                    @endif
+                                    @if(!isset($copyTriggerAdded[$k]) && $k !== "bmi")
+                                        <a href="#" title="Copy to this note" class="vitals-copy-trigger"><i class="fa fa-chevron-circle-left font-size-14"></i></a>
+                                    @endif
+                                </td>
+                                <?php $copyTriggerAdded[$k] = true ?>
+                            @endforeach
                         @endif
-                    </td>
-                    @if(!$previousData || !count($previousData))
-                        <td class="bg-light"></td>
-                    @else
-                        @foreach($previousData as $pDay)
-                            <td class="bg-light {{!isset($copyTriggerAdded[$k]) ? 'pl-4 pr-2' : 'px-2'}} py-1 text-secondary position-relative">
-                                {{$previousDataAssoc[$pDay['date']][$k] ?: '-' }}
-                                @if(!isset($copyTriggerAdded[$k]) && $k !== "bmi")
-                                    <a href="#" title="Copy to this note" class="vitals-copy-trigger"><i class="fa fa-chevron-circle-left font-size-14"></i></a>
-                                @endif
-                            </td>
-                            <?php $copyTriggerAdded[$k] = true ?>
-                        @endforeach
+                    </tr>
                     @endif
-                </tr>
                 @endforeach
             </tbody>
         </table>
@@ -186,8 +197,19 @@ $copyTriggerAdded = [];
 
         parentSegment.find('.vitals-copy-trigger').off('click.copy-vital');
         parentSegment.find('.vitals-copy-trigger').on('click.copy-vital', function () {
-            let td = $(this).closest('td');
-            td.prev().find('input').val($.trim(td.text())).trigger('change');
+            let td = $(this).closest('td'), value = $.trim(td.text());
+            if(value.indexOf('/') === -1) {
+                td.prev().find('input').val(value).trigger('change');
+            }
+            else {
+                let parts = value.split('/');
+                if(parts.length >= 1 && parts[0] !== '-') {
+                    td.prev().find('input:eq(0)').val(parts[0]).trigger('change');
+                }
+                if(parts.length >= 2 && parts[1] !== '-') {
+                    td.prev().find('input:eq(1)').val(parts[1]).trigger('change');
+                }
+            }
             return false;
         });
 

+ 9 - 2
resources/views/app/patient/segment-templates/vitals/summary.blade.php

@@ -52,9 +52,16 @@ if(!$contentData) {
 @foreach ($vitalLabels as $k => $v)
 <div class="d-flex vital-item align-items-center">
         <span class="content-html text-nowrap">
-            <span>{{$v}}:</span>
             <?php $vital = @$contentData[$k]; ?>
-            <b>{{ !empty($vital) ? $vital : '-' }}</b>
+                @if($k === 'systolicBP')
+                    <span>Blood Pressure:</span>
+                    <b>{{ @$contentData['systolicBP'] ?: '-' }}/{{ @$contentData['diastolicBP'] ?: '-' }}</b>
+                @elseif($k === 'diastolicBP') <!--ignore-->
+
+                @else
+                    <span>{{$v}}:</span>
+                    <b>{{ !empty($vital) ? $vital : '-' }}</b>
+                @endif
             @if($k === 'bmi' && !empty($vital))
                 <?php $bmi = floatval($vital); ?>
                 <span class="ml-2 py-1 m-0 font-weight-bold">