Kaynağa Gözat

Merge branch 'master' of rav.triplestart.com:jmudaka/stagfe2

= 3 yıl önce
ebeveyn
işleme
37bc0e2646

+ 1 - 1
config/app.php

@@ -65,7 +65,7 @@ return [
 
     'hrm2_url' => env('HRM2_URL'),
 
-    'asset_version' => 65,
+    'asset_version' => 66,
 
     'temp_dir' => env('TEMP_DIR'),
 

+ 31 - 19
js-dev/stag-suggest.js

@@ -72,6 +72,9 @@
                                 if(_data.data[i].tooltip) {
                                     item.attr('title', _data.data[i].tooltip);
                                 }
+                                if(i === 0) {
+                                    item.addClass('active');
+                                }
                                 suggestionsOuter.append(item);
                             }
                         }
@@ -122,32 +125,41 @@
                     markEventAsConsumed(e);
                     return false;
                 case 38:
-                    if (activeItem.prev().length) {
-                        activeItem.prev()
-                            .addClass('active')
-                            .siblings().removeClass('active');
-                        activeItem = suggestionsOuter.find('.suggest-item.active');
-                        if (activeItem.length) {
-                            activeItem[0].scrollIntoView();
+                    if(suggestionsOuter.is(':visible')) {
+                        if (activeItem.prev().length) {
+                            activeItem.prev()
+                                .addClass('active')
+                                .siblings().removeClass('active');
+                            activeItem = suggestionsOuter.find('.suggest-item.active');
+                            if (activeItem.length) {
+                                activeItem[0].scrollIntoView();
+                            }
                         }
+                        return false;
                     }
-                    return false;
+                    break;
                 case 40:
-                    if (activeItem.next().length) {
-                        activeItem.next()
-                            .addClass('active')
-                            .siblings().removeClass('active');
-                        activeItem = suggestionsOuter.find('.suggest-item.active');
-                        if (activeItem.length) {
-                            activeItem[0].scrollIntoView();
+                    if(suggestionsOuter.is(':visible')) {
+                        if (activeItem.next().length) {
+                            activeItem.next()
+                                .addClass('active')
+                                .siblings().removeClass('active');
+                            activeItem = suggestionsOuter.find('.suggest-item.active');
+                            if (activeItem.length) {
+                                activeItem[0].scrollIntoView();
+                            }
                         }
+                        return false;
                     }
-                    return false;
+                    break;
                 case 13:
-                    if (activeItem.length) {
-                        activeItem.first().trigger('mousedown');
+                    if(suggestionsOuter.is(':visible')) {
+                        if (activeItem.length) {
+                            activeItem.first().trigger('mousedown');
+                        }
+                        return false;
                     }
-                    return false;
+                    break;
                 default:
                     if (!!term) {
                         suggestionsOuter

+ 4 - 3
public/css/style.css

@@ -1991,8 +1991,9 @@ th.only-screen, td.only-screen {
     display: none;
 }
 #simpleSMSReminderComponent input[type="time"] {
-    max-width: 90px;
+    max-width: 120px;
     min-width: unset !important;
+    margin-top: 5px;
 }
 form.non-interactive .form-content {
     opacity: 0.5;
@@ -3253,7 +3254,7 @@ body.forced-masking #mask {
     padding: 0 10px;
 }
 .customized-form textarea.form-control {
-    width: 100% !important;    
+    width: 100% !important;
 }
 
 .customized-form form .row .section.bg-light {
@@ -3306,4 +3307,4 @@ body.forced-masking #mask {
 .stag-sheet tbody tr td textarea:focus,
 .stag-sheet tbody tr td textarea:focus-visible{
     border: 1px solid steelblue;
-}
+}

+ 58 - 50
resources/views/app/patient/allergies-center.blade.php

@@ -273,63 +273,71 @@ if(!@$summaryView) {
         @if(!@$summaryView)
         <div class="d-flex align-items-center">
             <div class="mt-1 w-100 border p-3 bg-aliceblue border-info rounded">
-                <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-allergy" novalidate>
-                    <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
-                    <input type="hidden" name="category" value="ALLERGY">
-                    <input type="hidden" name="data">
-
-                    <input type="hidden" data-name="damConceptId">
-                    <input type="hidden" data-name="damConceptIdType">
-
-                    <input type="hidden" name="isRemovedDueToEntryError" value="0">
-
-                    <div class="row">
-                        <div class="col-8">
-                            <div class="d-flex align-items-baseline mb-2">
-                                <b>Add Allergy</b>
-                                @if(count($favorites))
-                                    <div class="d-inline position-relative on-click-menu ml-4">
-                                        <span class="text-primary c-pointer">
-                                            <i class="fa fa-bookmark text-info mr-1"></i> Common Allergies <i class="ml-1 fa fa-caret-down"></i>
-                                        </span>
-                                        <div menu right class="bg-white border">
-                                            @foreach($favorites as $favorite)
-                                                <a native target="_blank" href="#"
-                                                   data-name="{{@($favorite->data->name)}}"
-                                                   data-damConceptId="{{@($favorite->data->damConceptId)}}"
-                                                   data-damConceptIdType="{{@($favorite->data->damConceptIdType)}}"
-                                                   class="px-2 py-1 d-block text-nowrap text-sm favorite-item">
-                                                    {{$favorite->data->name}}
-                                                </a>
-                                            @endforeach
+                <div class="row">
+                    <div class="col-8">
+                        <div class="d-flex align-items-baseline mb-3" tab-links="">
+                            <a class="tab-link-active" href="#" tab-link="add-multiple-pre-existing">Add Multiple Pre-existing</a>
+                            <a class="" href="#" tab-link="add-single">Add Single</a>
+                        </div>
+                        <div class="cm-tab" tab-key="add-multiple-pre-existing">
+                            @include('app.patient.wizard-partials.add-multiple-pre-existing', ['label' => 'allergy', 'adder' => 'Diagnosed By'])
+                        </div>
+                        <div class="cm-tab d-none" tab-key="add-single">
+                            <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-allergy" novalidate>
+                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                <input type="hidden" name="category" value="ALLERGY">
+                                <input type="hidden" name="data">
+
+                                <input type="hidden" data-name="damConceptId">
+                                <input type="hidden" data-name="damConceptIdType">
+
+                                <input type="hidden" name="isRemovedDueToEntryError" value="0">
+
+                                <div class="d-flex align-items-baseline mb-2">
+                                    <b>Add Allergy</b>
+                                    @if(count($favorites))
+                                        <div class="d-inline position-relative on-click-menu ml-4">
+                                            <span class="text-primary c-pointer">
+                                                <i class="fa fa-bookmark text-info mr-1"></i> Common Allergies <i class="ml-1 fa fa-caret-down"></i>
+                                            </span>
+                                            <div menu right class="bg-white border">
+                                                @foreach($favorites as $favorite)
+                                                    <a native target="_blank" href="#"
+                                                       data-name="{{@($favorite->data->name)}}"
+                                                       data-damConceptId="{{@($favorite->data->damConceptId)}}"
+                                                       data-damConceptIdType="{{@($favorite->data->damConceptIdType)}}"
+                                                       class="px-2 py-1 d-block text-nowrap text-sm favorite-item">
+                                                        {{$favorite->data->name}}
+                                                    </a>
+                                                @endforeach
+                                            </div>
                                         </div>
-                                    </div>
-                                @endif
-                            </div>
-                            <div class="mb-2">
-                                <label class="text-sm mb-0 font-weight-bold">Name</label>
-                                <input type="text" data-name="name" class="form-control form-control-sm"
-                                       stag-suggest
-                                       stag-suggest-ep="/fdb-allergy-suggest/json"
-                                       required>
-                            </div>
-
-                            <?php $point = null; ?>
-                            @include('app.patient.wizard-partials.common-fields', ['label' => 'allergy', 'addVerbPT' => 'Diagnosed', 'apTerm' => 'assessment/plan'])
+                                    @endif
+                                </div>
+                                <div class="mb-2">
+                                    <label class="text-sm mb-0 font-weight-bold">Name</label>
+                                    <input type="text" data-name="name" class="form-control form-control-sm"
+                                           stag-suggest
+                                           stag-suggest-ep="/fdb-allergy-suggest/json"
+                                           required>
+                                </div>
 
-                        </div>
-                        <div class="col-4 border-left">
-                            <div class="fdb-allergy-vigilance max-height-400px overflow-auto">
+                                <?php $point = null; ?>
+                                @include('app.patient.wizard-partials.common-fields', ['label' => 'allergy', 'addVerbPT' => 'Diagnosed', 'apTerm' => 'assessment/plan'])
 
-                            </div>
+                                <div class="d-flex align-items-center">
+                                    <button type="submit" class="btn btn-sm btn-primary mr-2 my-1">Save Allergy</button>
+                                    <button type="button" class="btn btn-sm btn-default border-secondary bg-white border mr-2" onclick="return closeStagPopup()">Close</button>
+                                </div>
+                            </form>
                         </div>
                     </div>
+                    <div class="col-4 border-left">
+                        <div class="fdb-allergy-vigilance max-height-400px overflow-auto">
 
-                    <div class="d-flex align-items-center">
-                        <button type="submit" class="btn btn-sm btn-primary mr-2 my-1">Save Allergy</button>
-                        <button type="button" class="btn btn-sm btn-default border-secondary bg-white border mr-2" onclick="return closeStagPopup()">Close</button>
+                        </div>
                     </div>
-                </form>
+                </div>
             </div>
         </div>
         @endif

+ 10 - 0
resources/views/app/patient/careteam-center.blade.php

@@ -269,6 +269,15 @@ list($careTeamMembers, $counts) = Point::getPointsOfCategoryExtended($patient, '
         @if(!@$summaryView)
         <div class="d-flex align-items-center">
             <div class="mt-1 w-100 border p-3 bg-aliceblue border-info rounded">
+
+                <div class="d-flex align-items-baseline mb-3" tab-links="">
+                    <a class="tab-link-active" href="#" tab-link="add-multiple-pre-existing">Add Multiple Pre-existing</a>
+                    <a class="" href="#" tab-link="add-single">Add Single</a>
+                </div>
+                <div class="cm-tab" tab-key="add-multiple-pre-existing">
+                    @include('app.patient.wizard-partials.add-multiple-pre-existing', ['label' => 'care team member', 'category' => 'CARE_TEAM_MEMBER', 'adder' => 'Added By'])
+                </div>
+                <div class="cm-tab d-none" tab-key="add-single">
                 <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-care-team-member" novalidate>
                     <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
                     <input type="hidden" name="category" value="CARE_TEAM_MEMBER">
@@ -349,6 +358,7 @@ list($careTeamMembers, $counts) = Point::getPointsOfCategoryExtended($patient, '
                         <button type="button" class="btn btn-sm btn-default border-secondary bg-white border mr-2" onclick="return closeStagPopup()">Close</button>
                     </div>
                 </form>
+                </div>
             </div>
         </div>
         @endif

+ 12 - 0
resources/views/app/patient/goals-center.blade.php

@@ -205,6 +205,16 @@ list($goals, $counts) = Point::getPointsOfCategoryExtended($patient, 'GOAL', $no
         @if(!@$summaryView)
         <div class="d-flex align-items-center">
             <div class="mt-1 w-100 border p-3 bg-aliceblue border-info rounded">
+
+                <div class="d-flex align-items-baseline mb-3" tab-links="">
+                    <a class="tab-link-active" href="#" tab-link="add-multiple-pre-existing">Add Multiple Pre-existing</a>
+                    <a class="" href="#" tab-link="add-single">Add Single</a>
+                </div>
+                <div class="cm-tab" tab-key="add-multiple-pre-existing">
+                    @include('app.patient.wizard-partials.add-multiple-pre-existing', ['label' => 'goal', 'adder' => 'Added By'])
+                </div>
+                <div class="cm-tab d-none" tab-key="add-single">
+
                 <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-goal" novalidate>
                     <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
                     <input type="hidden" name="category" value="GOAL">
@@ -241,6 +251,8 @@ list($goals, $counts) = Point::getPointsOfCategoryExtended($patient, 'GOAL', $no
                         <button type="button" class="btn btn-sm btn-default border-secondary bg-white border mr-2" onclick="return closeStagPopup()">Close</button>
                     </div>
                 </form>
+
+                </div>
             </div>
         </div>
         @endif

+ 1 - 1
resources/views/app/patient/medications-add-multi-preexisting.blade.php

@@ -147,7 +147,7 @@
                         case 13: // ENTER: If shift NOT pressed, move to next row same column
                             if (!_e.shiftKey) {
                                 if($(this).closest('.stag-sheet').is('.allow-row-addition')) {
-                                    createAndMoveToNextRowInput($(this).closest('td'), );
+                                    createAndMoveToNextRowInput($(this).closest('td'));
                                 }
                                 else {
                                     moveToNextRowInput($(this).closest('td'), false);

+ 76 - 79
resources/views/app/patient/medications-center.blade.php

@@ -265,97 +265,94 @@ if(!@$summaryView) {
         @if(!@$summaryView)
         <div class="d-flex align-items-center">
             <div class="mt-1 w-100 border p-3 bg-aliceblue border-info rounded">
-                <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add new medication, prescribed during this visit</a>-->
-                <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-medication" novalidate>
-                    <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
-                    <input type="hidden" name="category" value="MEDICATION">
-                    <input type="hidden" name="data">
-
-                    <input type="hidden" data-name="medId">
-                    <input type="hidden" data-name="routedMedId">
-                    <input type="hidden" data-name="routedDosageFormMedId">
-                    <input type="hidden" data-name="gcnSeqno">
-
-                    <input type="hidden" name="isRemovedDueToEntryError" value="0">
-
-                    <div class="row">
-                        <div class="col-8">
-                            <div class="d-flex align-items-baseline mb-2">
-                                <b>Add Medication</b>
-                                @if(count($favorites))
-                                    <div class="d-inline position-relative on-click-menu ml-4">
+                <div class="row">
+                    <div class="col-8">
+                        <div class="d-flex align-items-baseline mb-3" tab-links="">
+                            <a class="tab-link-active" href="#" tab-link="add-multiple-pre-existing">Add Multiple Pre-existing</a>
+                            <a class="" href="#" tab-link="add-single">Add Single</a>
+                        </div>
+                        <div class="cm-tab" tab-key="add-multiple-pre-existing">
+                            @include('app.patient.wizard-partials.add-multiple-pre-existing', ['label' => 'medication', 'adder' => 'Prescriber'])
+                        </div>
+                        <div class="cm-tab d-none" tab-key="add-single">
+                            <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-medication" novalidate>
+                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                <input type="hidden" name="category" value="MEDICATION">
+                                <input type="hidden" name="data">
+
+                                <input type="hidden" data-name="medId">
+                                <input type="hidden" data-name="routedMedId">
+                                <input type="hidden" data-name="routedDosageFormMedId">
+                                <input type="hidden" data-name="gcnSeqno">
+
+                                <input type="hidden" name="isRemovedDueToEntryError" value="0">
+
+                                <div class="d-flex align-items-baseline mb-2">
+                                    <b>Add Medication</b>
+                                    @if(count($favorites))
+                                        <div class="d-inline position-relative on-click-menu ml-4">
                                         <span class="text-primary c-pointer">
                                             <i class="fa fa-bookmark text-info mr-1"></i> Common Medications <i class="ml-1 fa fa-caret-down"></i>
                                         </span>
-                                        <div menu right class="bg-white border">
-                                            @foreach($favorites as $favorite)
-                                                <a native target="_blank" href="#"
-                                                   data-name="{{@($favorite->data->name)}}"
-                                                   data-medId="{{@($favorite->data->medId)}}"
-                                                   data-routedMedId="{{@($favorite->data->routedMedId)}}"
-                                                   data-routedDosageFormMedId="{{@($favorite->data->routedDosageFormMedId)}}"
-                                                   data-gcnSeqno="{{@($favorite->data->gcnSeqno)}}"
-                                                   class="px-2 py-1 d-block text-nowrap text-sm favorite-item">
-                                                    {{$favorite->data->name}}
-                                                </a>
-                                            @endforeach
+                                            <div menu right class="bg-white border">
+                                                @foreach($favorites as $favorite)
+                                                    <a native target="_blank" href="#"
+                                                       data-name="{{@($favorite->data->name)}}"
+                                                       data-medId="{{@($favorite->data->medId)}}"
+                                                       data-routedMedId="{{@($favorite->data->routedMedId)}}"
+                                                       data-routedDosageFormMedId="{{@($favorite->data->routedDosageFormMedId)}}"
+                                                       data-gcnSeqno="{{@($favorite->data->gcnSeqno)}}"
+                                                       class="px-2 py-1 d-block text-nowrap text-sm favorite-item">
+                                                        {{$favorite->data->name}}
+                                                    </a>
+                                                @endforeach
+                                            </div>
                                         </div>
-                                    </div>
-                                @endif
-                                <a class="ml-4"
-                                   native target="_blank"
-                                   open-in-stag-popup
-                                   popup-style="stag-popup-900 overflow-visible"
-                                   update-parent
-                                   title="Add Multiple Pre-existing"
-                                   mc-initer="medications-add-multi-preexisting-{{$note->id}}"
-                                   href="/medications-add-multi-preexisting/{{$note->uid}}">
-                                    Add Multiple Pre-existing
-                                </a>
-                            </div>
-                            <div class="mb-2">
-                                <label class="mb-0 font-weight-bold">Name</label>
-                                <input type="text"
-                                       data-name="name"
-                                       class="form-control form-control-sm"
-                                       stag-suggest
-                                       stag-suggest-bottom-left
-                                       stag-suggest-ep="/fdb-med-suggest-v2/json"
-                                       required>
-                            </div>
+                                    @endif
+                                </div>
+                                <div class="mb-2">
+                                    <label class="mb-0 font-weight-bold">Name</label>
+                                    <input type="text"
+                                           data-name="name"
+                                           class="form-control form-control-sm"
+                                           stag-suggest
+                                           stag-suggest-bottom-left
+                                           stag-suggest-ep="/fdb-med-suggest-v2/json"
+                                           required>
+                                </div>
 
-                            <?php $point = null; ?>
-                            @include('app.patient.wizard-partials.common-fields', ['label' => 'medication', 'addVerbPT' => 'Prescribed'])
+                                <?php $point = null; ?>
+                                @include('app.patient.wizard-partials.common-fields', ['label' => 'medication', 'addVerbPT' => 'Prescribed'])
 
+                                <div class="d-flex align-items-center">
+                                    <button type="submit" class="btn btn-sm btn-primary mr-2">Save Medication</button>
+                                    <button type="button" class="btn btn-sm btn-default border-secondary bg-white border mr-2" onclick="return closeStagPopup()">Close</button>
+                                </div>
+                            </form>
                         </div>
-                        <div class="col-4 border-left">
+                    </div>
+                    <div class="col-4 border-left">
 
-                            <?php
-                            $problems = \App\Models\Point::getPointsOfCategory($patient, "PROBLEM");
-                            ?>
-                            @if(count($problems))
-                                <h6 class="my-0 font-weight-bold text-secondary mb-2">Active Problems</h6>
-                                <div class="bg-light border px-2 pt-2 pb-1 mb-0">
-                                    @foreach($problems as $problem)
-                                        <div class="mb-1">
-                                            <b><?= !!@($problem->data->name) ? @($problem->data->name) : '-' ?></b>
-                                        </div>
-                                    @endforeach
-                                </div>
-                                <hr class="my-3 m-neg-3">
-                            @endif
+                        <?php
+                        $problems = \App\Models\Point::getPointsOfCategory($patient, "PROBLEM");
+                        ?>
+                        @if(count($problems))
+                            <h6 class="my-0 font-weight-bold text-secondary mb-2">Active Problems</h6>
+                            <div class="bg-light border px-2 pt-2 pb-1 mb-0">
+                                @foreach($problems as $problem)
+                                    <div class="mb-1">
+                                        <b><?= !!@($problem->data->name) ? @($problem->data->name) : '-' ?></b>
+                                    </div>
+                                @endforeach
+                            </div>
+                            <hr class="my-3 m-neg-3">
+                        @endif
 
-                            <div class="fdb-rx-vigilance max-height-400px overflow-auto">
+                        <div class="fdb-rx-vigilance max-height-400px overflow-auto">
 
-                            </div>
                         </div>
                     </div>
-
-                    <div class="d-flex align-items-center">
-                        <button type="submit" class="btn btn-sm btn-primary mr-2">Save Medication</button>
-                        <button type="button" class="btn btn-sm btn-default border-secondary bg-white border mr-2" onclick="return closeStagPopup()">Close</button>
-                    </div>
-                </form>
+                </div>
             </div>
         </div>
         @endif

+ 85 - 77
resources/views/app/patient/problems-center.blade.php

@@ -302,93 +302,101 @@ if(!@$summaryView) {
         @if(!@$summaryView)
         <div class="d-flex align-items-center">
             <div class="mt-1 w-100 border p-3 bg-aliceblue border-info rounded">
-                <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-problem" novalidate>
-                    <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
-                    <input type="hidden" name="category" value="PROBLEM">
-                    <input type="hidden" name="data">
-
-                    <input type="hidden" data-name="dxid">
-                    <input type="hidden" data-name="icd-type">
-
-                    <input type="hidden" name="isRemovedDueToEntryError" value="0">
-
-                    <div class="row">
-                        <div class="col-8">
-                            <div class="d-flex align-items-baseline mb-2">
-                                <b>Add Problem</b>
-                                @if(count($favorites))
-                                    <div class="d-inline position-relative on-click-menu ml-4">
-                                        <span class="text-primary c-pointer">
-                                            <i class="fa fa-bookmark text-info mr-1"></i> Common Problems <i class="ml-1 fa fa-caret-down"></i>
-                                        </span>
-                                        <div menu right class="bg-white border">
-                                            @foreach($favorites as $favorite)
-                                                <a native target="_blank" href="#"
-                                                   data-name="{{@($favorite->data->name)}}"
-                                                   data-dxid="{{@($favorite->data->dxid)}}"
-                                                   data-icd="{{@($favorite->data->icd)}}"
-                                                   data-icd-type="{{@($favorite->data->{'icd-type'})}}"
-                                                   class="px-2 py-1 d-block text-nowrap text-sm favorite-item">
-                                                    {{$favorite->data->name}}
-                                                </a>
-                                            @endforeach
+                <div class="row">
+                    <div class="col-8">
+                        <div class="d-flex align-items-baseline mb-3" tab-links="">
+                            <a class="tab-link-active" href="#" tab-link="add-multiple-pre-existing">Add Multiple Pre-existing</a>
+                            <a class="" href="#" tab-link="add-single">Add Single</a>
+                        </div>
+                        <div class="cm-tab" tab-key="add-multiple-pre-existing">
+                            @include('app.patient.wizard-partials.add-multiple-pre-existing', ['label' => 'problem', 'adder' => 'Diagnosed By'])
+                        </div>
+                        <div class="cm-tab d-none" tab-key="add-single">
+                            <form action="/api/visitPoint/addTopLevel" class="mcp-theme-1 w-100" id="frm-add-problem" novalidate>
+                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                                <input type="hidden" name="category" value="PROBLEM">
+                                <input type="hidden" name="data">
+
+                                <input type="hidden" data-name="dxid">
+                                <input type="hidden" data-name="icd-type">
+
+                                <input type="hidden" name="isRemovedDueToEntryError" value="0">
+
+                                <div class="d-flex align-items-baseline mb-2">
+                                    <b>Add Problem</b>
+                                    @if(count($favorites))
+                                        <div class="d-inline position-relative on-click-menu ml-4">
+                                            <span class="text-primary c-pointer">
+                                                <i class="fa fa-bookmark text-info mr-1"></i> Common Problems <i class="ml-1 fa fa-caret-down"></i>
+                                            </span>
+                                            <div menu right class="bg-white border">
+                                                @foreach($favorites as $favorite)
+                                                    <a native target="_blank" href="#"
+                                                       data-name="{{@($favorite->data->name)}}"
+                                                       data-dxid="{{@($favorite->data->dxid)}}"
+                                                       data-icd="{{@($favorite->data->icd)}}"
+                                                       data-icd-type="{{@($favorite->data->{'icd-type'})}}"
+                                                       class="px-2 py-1 d-block text-nowrap text-sm favorite-item">
+                                                        {{$favorite->data->name}}
+                                                    </a>
+                                                @endforeach
+                                            </div>
                                         </div>
-                                    </div>
-                                @endif
-                            </div>
-                            <div class="row mb-2">
-                                <div class="col-8 pr-0">
-                                    <label class="text-sm mb-0 font-weight-bold">Name</label>
-                                    <input type="text"
-                                           data-name="name"
-                                           class="form-control form-control-sm"
-                                           stag-suggest
-                                           stag-suggest-bottom-left
-                                           stag-suggest-ep="/fdb-dx-suggest-v2/json"
-                                           stag-suggest-text-only
-                                           value="{{trim(request()->input('dx')) ? trim(request()->input('dx')) : ''}}"
-                                           required>
+                                    @endif
                                 </div>
-                                <div class="col-4">
-                                    <label class="text-sm mb-0 font-weight-bold">ICD</label>
-                                    <input type="text"
-                                           data-name="icd"
-                                           class="form-control form-control-sm min-width-unset">
+                                <div class="row mb-2">
+                                    <div class="col-8 pr-0">
+                                        <label class="text-sm mb-0 font-weight-bold">Name</label>
+                                        <input type="text"
+                                               data-name="name"
+                                               class="form-control form-control-sm"
+                                               stag-suggest
+                                               stag-suggest-bottom-left
+                                               stag-suggest-ep="/fdb-dx-suggest-v2/json"
+                                               stag-suggest-text-only
+                                               value="{{trim(request()->input('dx')) ? trim(request()->input('dx')) : ''}}"
+                                               required>
+                                    </div>
+                                    <div class="col-4">
+                                        <label class="text-sm mb-0 font-weight-bold">ICD</label>
+                                        <input type="text"
+                                               data-name="icd"
+                                               class="form-control form-control-sm min-width-unset">
+                                    </div>
                                 </div>
-                            </div>
 
-                            <?php $point = null; ?>
-                            @include('app.patient.wizard-partials.common-fields', ['label' => 'problem', 'addVerbPT' => 'Diagnosed', 'reviewLabel' => 'Subjective/HPI', 'apTerm' => 'assessment/plan'])
+                                <?php $point = null; ?>
+                                @include('app.patient.wizard-partials.common-fields', ['label' => 'problem', 'addVerbPT' => 'Diagnosed', 'reviewLabel' => 'Subjective/HPI', 'apTerm' => 'assessment/plan'])
 
-                        </div>
-                        <div class="col-4 border-left">
-
-                            <?php
-                            $medications = \App\Models\Point::getPointsOfCategory($patient, "MEDICATION");
-                            ?>
-                            @if(count($medications))
-                                <h6 class="my-0 font-weight-bold text-secondary mb-2">Active Medications</h6>
-                                <div class="bg-light border px-2 pt-2 pb-1 mb-0">
-                                    @foreach($medications as $medication)
-                                        <div class="mb-1">
-                                            <b><?= !!@($medication->data->name) ? @($medication->data->name) : '-' ?></b>
-                                        </div>
-                                    @endforeach
+                                <div class="d-flex align-items-center">
+                                    <button type="submit" class="btn btn-sm btn-primary mr-2">Save Problem</button>
+                                    <button type="button" class="btn btn-sm btn-default border-secondary bg-white border mr-2" onclick="return closeStagPopup()">Close</button>
                                 </div>
-                                <hr class="my-3 m-neg-3">
-                            @endif
-
-                            <div class="fdb-dx-vigilance max-height-400px overflow-auto">
-
-                            </div>
+                            </form>
                         </div>
                     </div>
+                    <div class="col-4 border-left">
 
-                    <div class="d-flex align-items-center">
-                        <button type="submit" class="btn btn-sm btn-primary mr-2">Save Problem</button>
-                        <button type="button" class="btn btn-sm btn-default border-secondary bg-white border mr-2" onclick="return closeStagPopup()">Close</button>
+                        <?php
+                        $medications = \App\Models\Point::getPointsOfCategory($patient, "MEDICATION");
+                        ?>
+                        @if(count($medications))
+                            <h6 class="my-0 font-weight-bold text-secondary mb-2">Active Medications</h6>
+                            <div class="bg-light border px-2 pt-2 pb-1 mb-0">
+                                @foreach($medications as $medication)
+                                    <div class="mb-1">
+                                        <b><?= !!@($medication->data->name) ? @($medication->data->name) : '-' ?></b>
+                                    </div>
+                                @endforeach
+                            </div>
+                            <hr class="my-3 m-neg-3">
+                        @endif
+
+                        <div class="fdb-dx-vigilance max-height-400px overflow-auto">
+
+                        </div>
                     </div>
-                </form>
+                </div>
             </div>
         </div>
         @endif

+ 190 - 0
resources/views/app/patient/sms-reminders-form.blade.php

@@ -0,0 +1,190 @@
+<div <?= $smsReminder ?'relative':'' ?> moe>
+	<a start show class="py-0 mb-3">{{ $smsReminder ? 'Edit' : 'Add' }}</a>
+	<form url="/api/simpleSmsReminder/{{ $smsReminder ? 'update': 'create'}}" class="mcp-theme-1" <?= $smsReminder ? 'right':'' ?>>
+		<input type="hidden" name="clientUid" value="{{$patient->uid}}">
+		@if($smsReminder)
+		<input type="hidden" name="uid" value="{{$smsReminder->uid}}">
+		@endif
+		<div id="smsReminderForm{{ $smsReminder ? $smsReminder->uid : 'Create' }}" v-cloak>
+			<div class="row mb-2">
+				<div class="col-5 pr-0">
+					<label class="text-sm text-secondary mb-1">To Number</label>
+					<input type="text" name="smsNumber" class="form-control form-control-sm" v-model="form.smsNumber" required>
+				</div>
+			</div>
+			<div class="row mb-2">
+				<div class="col-5 pr-0">
+					<label class="text-sm text-secondary mb-1">Time Zone</label>
+					<select name="timeZone" class="form-control form-control-sm" v-model="form.timeZone">
+						<option value="EASTERN">Eastern</option>
+						<option value="CENTRAL">Central</option>
+						<option value="MOUNTAIN">Mountain</option>
+						<option value="PACIFIC">Pacific</option>
+						<option value="ALASKA">Alaska</option>
+						<option value="HAWAII">Hawaii</option>
+						<option value="PUERTO_RICO">Puerto Rico</option>
+					</select>
+				</div>
+			</div>
+			<div class="row mb-2">
+				<div class="col-12">
+					<label class="text-sm text-secondary mb-1">Message</label>
+					<textarea name="message" class="form-control form-control-sm" v-model="form.message"></textarea>
+				</div>
+			</div>
+			<div class="row">
+				<div class="col-12 my-3 text-nowrap">
+					<div class="form-check form-check-inline">
+						<input class="form-check-input" type="radio" name="sameTimeOrDifferentTimes" id="sameTimeOrDifferentTimes__Daily" value="SAME_TIME_DAILY" v-model="form.sameTimeOrDifferentTimes" required>
+						<label class="form-check-label" for="sameTimeOrDifferentTimes__Daily">Same Time Daily</label>
+					</div>
+					<div class="form-check form-check-inline">
+						<input class="form-check-input" type="radio" name="sameTimeOrDifferentTimes" id="sameTimeOrDifferentTimes__SpecificDays" value="SAME_TIME_SPECIFIC_DAYS" v-model="form.sameTimeOrDifferentTimes" required>
+						<label class="form-check-label" for="sameTimeOrDifferentTimes__SpecificDays">Same Time on Specific Days</label>
+					</div>
+					<div class="form-check form-check-inline">
+						<input class="form-check-input" type="radio" name="sameTimeOrDifferentTimes" id="sameTimeOrDifferentTimes__Custom" value="CUSTOM" v-model="form.sameTimeOrDifferentTimes" required>
+						<label class="form-check-label" for="sameTimeOrDifferentTimes__Custom">Custom</label>
+					</div>
+				</div>
+			</div>
+
+			<div v-if="form.sameTimeOrDifferentTimes == 'SAME_TIME_DAILY' || form.sameTimeOrDifferentTimes == 'SAME_TIME_SPECIFIC_DAYS'" class="row">
+				<div class="col-12">
+					<div class="form-group">
+						<label class="text-sm text-secondary mb-1">Time<sup class="text-danger">*</sup></label>
+						<input type="time" class="form-control" name="sameTimeOfDay" v-model="form.sameTimeOfDay" required />
+					</div>
+				</div>
+			</div>
+
+			<div v-if="form.sameTimeOrDifferentTimes == 'SAME_TIME_SPECIFIC_DAYS' || form.sameTimeOrDifferentTimes == 'CUSTOM'" class="row">
+				<div class="col-12">
+					<table class="table table-sm table-bordered">
+						<tbody>
+							<tr>
+								<td>
+									<div class="d-flex align-items-center mb-0">
+										<input type="checkbox" class="mr-1" style="margin-top:-1px;" name="isSameTimeOnMonday" v-model="form.isSameTimeOnMonday" />
+										<span class="font-weight-bold">Mon</span>
+									</div>
+									<input v-if="form.sameTimeOrDifferentTimes == 'CUSTOM'" :disabled="!form.isSameTimeOnMonday" type="time" class="form-control" name="timeOfDayMonday" v-model="form.timeOfDayMonday" :required="form.isSameTimeOnMonday" />
+								</td>
+								<td>
+									<div class="d-flex align-items-center mb-0">
+										<input type="checkbox" class="mr-1" style="margin-top:-1px;" name="isSameTimeOnTuesday" v-model="form.isSameTimeOnTuesday" />
+										<span class="font-weight-bold">Tue</span>
+									</div>
+									<input v-if="form.sameTimeOrDifferentTimes == 'CUSTOM'" :disabled="!form.isSameTimeOnTuesday" type="time" class="form-control" name="timeOfDayTuesday" v-model="form.timeOfDayTuesday" :required="form.isSameTimeOnTuesday" />
+								</td>
+								<td>
+									<div class="d-flex align-items-center mb-0">
+										<input type="checkbox" class="mr-1" style="margin-top:-1px;" name="isSameTimeOnWednesday" v-model="form.isSameTimeOnWednesday" />
+										<span class="font-weight-bold">Wed</span>
+									</div>
+									<input v-if="form.sameTimeOrDifferentTimes == 'CUSTOM'" :disabled="!form.isSameTimeOnWednesday" type="time" class="form-control" name="timeOfDayWednesday" v-model="form.timeOfDayWednesday" :required="form.isSameTimeOnWednesday" />
+								</td>
+								<td>
+									<div class="d-flex align-items-center mb-0">
+										<input type="checkbox" class="mr-1" style="margin-top:-1px;" name="isSameTimeOnThursday" v-model="form.isSameTimeOnThursday" />
+										<span class="font-weight-bold">Thu</span>
+									</div>
+									<input v-if="form.sameTimeOrDifferentTimes == 'CUSTOM'" :disabled="!form.isSameTimeOnThursday" type="time" class="form-control" name="timeOfDayThursday" v-model="form.timeOfDayThursday" :required="form.isSameTimeOnThursday" />
+								</td>
+								<td>
+									<div class="d-flex align-items-center mb-0">
+										<input type="checkbox" class="mr-1" style="margin-top:-1px;" name="isSameTimeOnFriday" v-model="form.isSameTimeOnFriday" />
+										<span class="font-weight-bold">Fri</span>
+									</div>
+									<input v-if="form.sameTimeOrDifferentTimes == 'CUSTOM'" :disabled="!form.isSameTimeOnFriday" type="time" class="form-control" name="timeOfDayFriday" v-model="form.timeOfDayFriday" :required="form.isSameTimeOnFriday" />
+								</td>
+								<td>
+									<div class="d-flex align-items-center mb-0">
+										<input type="checkbox" class="mr-1" style="margin-top:-1px;" name="isSameTimeOnSaturday" v-model="form.isSameTimeOnSaturday" />
+										<span class="font-weight-bold">Sat</span>
+									</div>
+									<input v-if="form.sameTimeOrDifferentTimes == 'CUSTOM'" :disabled="!form.isSameTimeOnSaturday" type="time" class="form-control" name="timeOfDaySaturday" v-model="form.timeOfDaySaturday" :required="form.isSameTimeOnSaturday" />
+								</td>
+								<td>
+									<div class="d-flex align-items-center mb-0">
+										<input type="checkbox" class="mr-1" style="margin-top:-1px;" name="isSameTimeOnSunday" v-model="form.isSameTimeOnSunday" />
+										<span class="font-weight-bold">Sun</span>
+									</div>
+									<input v-if="form.sameTimeOrDifferentTimes == 'CUSTOM'" :disabled="!form.isSameTimeOnSunday" type="time" class="form-control" name="timeOfDaySunday" v-model="form.timeOfDaySunday" :required="form.isSameTimeOnSunday" />
+								</td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+		</div>
+		<div class="mt-3">
+			<button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+			<button cancel class="btn btn-sm btn-default border">Cancel</button>
+		</div>
+	</form>
+</div>
+
+<script>
+	var smsReminderForm = new Vue({
+		el: '#smsReminderForm{{ $smsReminder ? $smsReminder->uid : "Create" }}',
+		data: {
+			form: {
+				smsNumber: "",
+				timeZone: "EASTERN",
+				message: "",
+				sameTimeOrDifferentTimes: "",
+				sameTimeOfDay: "",
+				isSameTimeOnMonday: null,
+				isSameTimeOnTuesday: null,
+				isSameTimeOnWednesday: null,
+				isSameTimeOnThursday: null,
+				isSameTimeOnFriday: null,
+				isSameTimeOnSaturday: null,
+				isSameTimeOnSunday: null,
+
+				timeOfDayMonday: null,
+				timeOfDayTuesday: null,
+				timeOfDayWednesday: null,
+				timeOfDayThursday: null,
+				timeOfDayFriday: null,
+				timeOfDaySaturday: null,
+				timeOfDaySunday: null,
+
+			},
+			smsReminder:<?= json_encode($smsReminder) ?>
+		},
+		methods: {
+			initDefaultData: function(){
+				if(!this.smsReminder) return;
+				this.form.smsNumber = this.smsReminder.sms_number;
+				this.form.timeZone = this.smsReminder.time_zone;
+				this.form.message = this.smsReminder.message;
+				this.form.sameTimeOrDifferentTimes = this.smsReminder.same_time_or_different_times;
+				this.form.sameTimeOfDay = this.smsReminder.same_time_of_day ? this.smsReminder.same_time_of_day.substring(0,5) : null;
+				this.form.isSameTimeOnMonday = this.smsReminder.is_same_time_on_monday;
+				this.form.isSameTimeOnTuesday = this.smsReminder.is_same_time_on_tuesday;
+				this.form.isSameTimeOnWednesday = this.smsReminder.is_same_time_on_wednesday;
+				this.form.isSameTimeOnThursday = this.smsReminder.is_same_time_on_thursday;
+				this.form.isSameTimeOnFriday = this.smsReminder.is_same_time_on_friday;
+				this.form.isSameTimeOnSaturday = this.smsReminder.is_same_time_on_saturday;
+				this.form.isSameTimeOnSunday = this.smsReminder.is_same_time_on_sunday;
+				this.form.timeOfDayMonday = this.smsReminder.time_of_day_monday ? this.smsReminder.time_of_day_monday.substring(0,5) : null;
+				this.form.timeOfDayTuesday = this.smsReminder.time_of_day_tuesday ? this.smsReminder.time_of_day_tuesday.substring(0,5) : null;
+				this.form.timeOfDayWednesday = this.smsReminder.time_of_day_wednesday ? this.smsReminder.time_of_day_wednesday.substring(0,5) : null;
+				this.form.timeOfDayThursday = this.smsReminder.time_of_day_thursday ? this.smsReminder.time_of_day_thursday.substring(0,5) : null;
+				this.form.timeOfDayFriday = this.smsReminder.time_of_day_friday ? this.smsReminder.time_of_day_friday.substring(0,5) : null;
+				this.form.timeOfDaySaturday = this.smsReminder.time_of_day_saturday ? this.smsReminder.time_of_day_saturday.substring(0,5) : null;
+				this.form.timeOfDaySunday = this.smsReminder.time_of_day_sunday ? this.smsReminder.time_of_day_sunday.substring(0,5) : null;
+
+				console.log(this.smsReminder);
+			},
+			init: function() {
+				this.initDefaultData();
+			}
+		},
+		mounted: function() {
+			this.init();
+		}
+	});
+</script>

+ 144 - 255
resources/views/app/patient/sms-reminders.blade.php

@@ -2,90 +2,17 @@
 
 @section('inner-content')
 
-    <div id="simpleSMSReminderComponent">
-        <div class="pt-2 d-flex align-items-start">
-            <h6 class="my-0 d-flex align-items-center w-100">
-                <span class="font-weight-bold">SMS Reminders</span>
-                <span class="mx-2 text-secondary">|</span>
-                <div moe>
-                    <a start show class="py-0 mb-3">Add</a>
-                    <form url="/api/simpleSmsReminder/create" class="mcp-theme-1">
-                        <input type="hidden" name="clientUid" value="{{$patient->uid}}">
-                        <div class="row mb-2">
-                            <div class="col-5 pr-0">
-                                <label class="text-sm text-secondary mb-1">To Number</label>
-                                <input type="text" name="smsNumber" class="form-control form-control-sm">
-                            </div>
-                        </div>
-                        <div class="row mb-2">
-                            <div class="col-5 pr-0">
-                                <label class="text-sm text-secondary mb-1">Time Zone</label>
-                                <select name="timeZone" class="form-control form-control-sm">
-                                    <option value="EASTERN">Eastern</option>
-	                                <option value="CENTRAL">Central</option>
-	                                <option value="MOUNTAIN">Mountain</option>
-	                                <option value="PACIFIC">Pacific</option>
-	                                <option value="ALASKA">Alaska</option>
-	                                <option value="HAWAII">Hawaii</option>
-	                                <option value="PUERTO_RICO">Puerto Rico</option>
-                                </select>
-                            </div>
-                        </div>
-                        <div class="row mb-2">
-                            <div class="col-12">
-                                <label class="text-sm text-secondary mb-1">Message</label>
-                                <textarea name="message" class="form-control form-control-sm"></textarea>
-                            </div>
-                        </div>
-                        <div class="row mb-2">
-                            <div class="col-12">
-                                <label class="text-sm text-secondary mb-1">Schedule</label>
-                                <table class="table table-sm table-bordered mb-0">
-                                    <thead>
-                                    <tr class="bg-light">
-                                        <th class="border-bottom-0 text-center">Sun</th>
-                                        <th class="border-bottom-0 text-center">Mon</th>
-                                        <th class="border-bottom-0 text-center">Tue</th>
-                                        <th class="border-bottom-0 text-center">Wed</th>
-                                        <th class="border-bottom-0 text-center">Thu</th>
-                                        <th class="border-bottom-0 text-center">Fri</th>
-                                        <th class="border-bottom-0 text-center">Sat</th>
-                                    </tr>
-                                    </thead>
-                                    <tbody>
-                                    <tr>
-                                        <td class="text-center"><input type="checkbox" data-day="sun"></td>
-                                        <td class="text-center"><input type="checkbox" data-day="mon"></td>
-                                        <td class="text-center"><input type="checkbox" data-day="tue"></td>
-                                        <td class="text-center"><input type="checkbox" data-day="wed"></td>
-                                        <td class="text-center"><input type="checkbox" data-day="thu"></td>
-                                        <td class="text-center"><input type="checkbox" data-day="fri"></td>
-                                        <td class="text-center"><input type="checkbox" data-day="sat"></td>
-                                    </tr>
-                                    <tr>
-                                        <td><input type="time" class="form-control form-control-sm" data-day="sun" name="timeOfDaySunday" readonly></td>
-                                        <td><input type="time" class="form-control form-control-sm" data-day="mon" name="timeOfDayMonday" readonly></td>
-                                        <td><input type="time" class="form-control form-control-sm" data-day="tue" name="timeOfDayTuesday" readonly></td>
-                                        <td><input type="time" class="form-control form-control-sm" data-day="wed" name="timeOfDayWednesday" readonly></td>
-                                        <td><input type="time" class="form-control form-control-sm" data-day="thu" name="timeOfDayThursday" readonly></td>
-                                        <td><input type="time" class="form-control form-control-sm" data-day="fri" name="timeOfDayFriday" readonly></td>
-                                        <td><input type="time" class="form-control form-control-sm" data-day="sat" name="timeOfDaySaturday" readonly></td>
-                                    </tr>
-                                    </tbody>
-                                </table>
-                            </div>
-                        </div>
-                        <div>
-                            <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
-                            <button cancel class="btn btn-sm btn-default border">Cancel</button>
-                        </div>
-                    </form>
-                </div>
-            </h6>
-        </div>
+<div id="simpleSMSReminderComponent">
+    <div class="pt-2 d-flex align-items-start">
+        <h6 class="my-0 d-flex align-items-center w-100">
+            <span class="font-weight-bold">SMS Reminders</span>
+            <span class="mx-2 text-secondary">|</span>
+            @include('app.patient.sms-reminders-form', ['smsReminder' => null])
+        </h6>
+    </div>
 
-        <table class="table table-sm table-striped table-bordered mb-0 mt-2 notes-list">
-            <thead>
+    <table class="table table-sm table-striped table-bordered mb-0 mt-2 notes-list">
+        <thead>
             <tr class="bg-light">
                 <th class="text-secondary border-0">#</th>
                 <th class="text-secondary border-0">To Number</th>
@@ -93,192 +20,154 @@
                 <th class="text-secondary border-0">Schedule</th>
                 <th class="text-secondary border-0">Actions</th>
             </tr>
-            </thead>
-            <tbody>
+        </thead>
+        <tbody>
             <?php $index = 0; ?>
             @foreach ($patient->smsReminders as $smsReminder)
-                <?php $index++; ?>
-                <tr class="{{$smsReminder->is_active ? '' : 'bg-light text-secondary'}}">
-                    <td>{{$index}}</td>
-                    <td>{{$smsReminder->sms_number}}</td>
-                    <td>{{$smsReminder->message}}</td>
-                    <td>
-                        <div class="my-1">
-                            Time Zone: {{friendly_timezone($smsReminder->time_zone)}}
-                        </div>
-                        @if($smsReminder->time_of_day_sunday)
-                            <div>
-                                <span class="text-secondary width-40px d-inline-block">Sun:</span>
-                                <b>{{friendly_time($smsReminder->time_of_day_sunday)}}</b>
-                            </div>
+            <?php $index++; ?>
+            <tr class="{{$smsReminder->is_active ? '' : 'bg-light text-secondary'}}">
+                <td>{{$index}}</td>
+                <td>{{$smsReminder->sms_number}}</td>
+                <td>{{$smsReminder->message}}</td>
+                <td>
+                    <div class="my-1">
+                        Time Zone: {{friendly_timezone($smsReminder->time_zone)}}
+                    </div>
+                                          
+                        @if($smsReminder->same_time_or_different_times == 'SAME_TIME_DAILY' && $smsReminder->same_time_of_day)
+                        <span class="text-secondary">Daily at: {{ friendly_time($smsReminder->same_time_of_day) }}</span>
                         @endif
-                        @if($smsReminder->time_of_day_monday)
-                            <div>
-                                <span class="text-secondary width-40px d-inline-block">Mon:</span>
-                                <b>{{friendly_time($smsReminder->time_of_day_monday)}}</b>
+                        
+                        @if($smsReminder->same_time_or_different_times == 'SAME_TIME_SPECIFIC_DAYS' || $smsReminder->same_time_or_different_times == 'CUSTOM')
+
+                            <div>                            
+                                @if($smsReminder->is_same_time_on_sunday || $smsReminder->time_of_day_sunday)
+                                <span class="text-secondary">Sun</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'SAME_TIME_SPECIFIC_DAYS' && $smsReminder->is_same_time_on_sunday)
+                                    <span class="text-secondary"> : {{ friendly_time($smsReminder->same_time_of_day) }}</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'CUSTOM' && $smsReminder->time_of_day_sunday)
+                                    <span class="text-secondary"> : {{friendly_time($smsReminder->time_of_day_sunday)}}</span>
+                                @endif
                             </div>
-                        @endif
-                        @if($smsReminder->time_of_day_tuesday)
-                            <div>
-                                <span class="text-secondary width-40px d-inline-block">Tue:</span>
-                                <b>{{friendly_time($smsReminder->time_of_day_tuesday)}}</b>
+                            <div>                            
+                                @if($smsReminder->is_same_time_on_monday || $smsReminder->time_of_day_monday)
+                                <span class="text-secondary">Mon</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'SAME_TIME_SPECIFIC_DAYS' && $smsReminder->is_same_time_on_monday)
+                                    <span class="text-secondary"> : {{ friendly_time($smsReminder->same_time_of_day) }}</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'CUSTOM' && $smsReminder->time_of_day_monday)
+                                    <span class="text-secondary"> : {{friendly_time($smsReminder->time_of_day_monday)}}</span>
+                                @endif
                             </div>
-                        @endif
-                        @if($smsReminder->time_of_day_wednesday)
-                            <div>
-                                <span class="text-secondary width-40px d-inline-block">Wed:</span>
-                                <b>{{friendly_time($smsReminder->time_of_day_wednesday)}}</b>
+                            <div>                            
+                                @if($smsReminder->is_same_time_on_tuesday || $smsReminder->time_of_day_tuesday)
+                                <span class="text-secondary">Tue</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'SAME_TIME_SPECIFIC_DAYS' && $smsReminder->is_same_time_on_tuesday)
+                                    <span class="text-secondary"> : {{ friendly_time($smsReminder->same_time_of_day) }}</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'CUSTOM' && $smsReminder->time_of_day_tuesday)
+                                    <span class="text-secondary"> : {{friendly_time($smsReminder->time_of_day_tuesday)}}</span>
+                                @endif
                             </div>
-                        @endif
-                        @if($smsReminder->time_of_day_thursday)
-                            <div>
-                                <span class="text-secondary width-40px d-inline-block">Thu:</span>
-                                <b>{{friendly_time($smsReminder->time_of_day_thursday)}}</b>
+                            <div>                            
+                                @if($smsReminder->is_same_time_on_wednesday || $smsReminder->time_of_day_wednesday)
+                                <span class="text-secondary">Wed</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'SAME_TIME_SPECIFIC_DAYS' && $smsReminder->is_same_time_on_wednesday)
+                                    <span class="text-secondary"> : {{ friendly_time($smsReminder->same_time_of_day) }}</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'CUSTOM' && $smsReminder->time_of_day_wednesday)
+                                    <span class="text-secondary"> : {{friendly_time($smsReminder->time_of_day_wednesday)}}</span>
+                                @endif
                             </div>
-                        @endif
-                        @if($smsReminder->time_of_day_friday)
-                            <div>
-                                <span class="text-secondary width-40px d-inline-block">Fri:</span>
-                                <b>{{friendly_time($smsReminder->time_of_day_friday)}}</b>
+                            <div>                            
+                                @if($smsReminder->is_same_time_on_thursday || $smsReminder->time_of_day_thursday)
+                                <span class="text-secondary">Thu</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'SAME_TIME_SPECIFIC_DAYS' && $smsReminder->is_same_time_on_thursday)
+                                    <span class="text-secondary"> : {{ friendly_time($smsReminder->same_time_of_day) }}</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'CUSTOM' && $smsReminder->time_of_day_thursday)
+                                    <span class="text-secondary"> : {{friendly_time($smsReminder->time_of_day_thursday)}}</span>
+                                @endif
                             </div>
-                        @endif
-                        @if($smsReminder->time_of_day_saturday)
-                            <div>
-                                <span class="text-secondary width-40px d-inline-block">Sat:</span>
-                                <b>{{friendly_time($smsReminder->time_of_day_saturday)}}</b>
+                            <div>                            
+                                @if($smsReminder->is_same_time_on_friday || $smsReminder->time_of_day_friday)
+                                <span class="text-secondary">Fri</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'SAME_TIME_SPECIFIC_DAYS' && $smsReminder->is_same_time_on_friday)
+                                    <span class="text-secondary"> : {{ friendly_time($smsReminder->same_time_of_day) }}</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'CUSTOM' && $smsReminder->time_of_day_friday)
+                                    <span class="text-secondary"> : {{friendly_time($smsReminder->time_of_day_friday)}}</span>
+                                @endif
                             </div>
-                        @endif
-                    </td>
-                    <td>
-                        <div class="d-flex align-items-center">
-                            <div moe relative="">
-                                <a start show class="py-0 mb-3">Edit</a>
-                                <form url="/api/simpleSmsReminder/update" class="mcp-theme-1" right="">
-                                    <input type="hidden" name="uid" value="{{$smsReminder->uid}}">
-                                    <div class="row mb-2">
-                                        <div class="col-5 pr-0">
-                                            <label class="text-sm text-secondary mb-1">To Number</label>
-                                            <input type="text" name="smsNumber" class="form-control form-control-sm" value="{{$smsReminder->sms_number}}">
-                                        </div>
-                                    </div>
-                                    <div class="row mb-2">
-                                        <div class="col-5 pr-0">
-                                            <label class="text-sm text-secondary mb-1">Time Zone</label>
-                                            <select name="timeZone" class="form-control form-control-sm">
-                                                <option value="EASTERN" {{$smsReminder->time_zone == 'EASTERN'? 'selected' : ''}} >Eastern</option>
-                                                <option value="CENTRAL" {{$smsReminder->time_zone == 'CENTRAL'? 'selected' : ''}} >Central</option>
-                                                <option value="MOUNTAIN" {{$smsReminder->time_zone == 'MOUNTAIN'? 'selected' : ''}} >Mountain</option>
-                                                <option value="PACIFIC" {{$smsReminder->time_zone == 'PACIFIC'? 'selected' : ''}} >Pacific</option>
-                                                <option value="ALASKA" {{$smsReminder->time_zone == 'ALASKA'? 'selected' : ''}} >Alaska</option>
-                                                <option value="HAWAII" {{$smsReminder->time_zone == 'HAWAII'? 'selected' : ''}} >Hawaii</option>
-                                                <option value="PUERTO_RICO" {{$smsReminder->time_zone == 'PUERTO_RICO'? 'selected' : ''}} >Puerto Rico</option>
-                                            </select>
-                                        </div>
-                                    </div>
-                                    <div class="row mb-2">
-                                        <div class="col-12">
-                                            <label class="text-sm text-secondary mb-1">Message</label>
-                                            <textarea name="message" class="form-control form-control-sm">{{$smsReminder->message}}</textarea>
-                                        </div>
-                                    </div>
-                                    <div class="row mb-2">
-                                        <div class="col-12">
-                                            <label class="text-sm text-secondary mb-1">Schedule</label>
-                                            <table class="table table-sm table-bordered mb-0">
-                                                <thead>
-                                                <tr class="bg-light">
-                                                    <th class="border-bottom-0 text-center">Sun</th>
-                                                    <th class="border-bottom-0 text-center">Mon</th>
-                                                    <th class="border-bottom-0 text-center">Tue</th>
-                                                    <th class="border-bottom-0 text-center">Wed</th>
-                                                    <th class="border-bottom-0 text-center">Thu</th>
-                                                    <th class="border-bottom-0 text-center">Fri</th>
-                                                    <th class="border-bottom-0 text-center">Sat</th>
-                                                </tr>
-                                                </thead>
-                                                <tbody>
-                                                <tr>
-                                                    <td class="text-center"><input type="checkbox" data-day="sun" {{$smsReminder->time_of_day_sunday ? 'checked' : ''}}></td>
-                                                    <td class="text-center"><input type="checkbox" data-day="mon" {{$smsReminder->time_of_day_monday ? 'checked' : ''}}></td>
-                                                    <td class="text-center"><input type="checkbox" data-day="tue" {{$smsReminder->time_of_day_tuesday ? 'checked' : ''}}></td>
-                                                    <td class="text-center"><input type="checkbox" data-day="wed" {{$smsReminder->time_of_day_wednesday ? 'checked' : ''}}></td>
-                                                    <td class="text-center"><input type="checkbox" data-day="thu" {{$smsReminder->time_of_day_thursday ? 'checked' : ''}}></td>
-                                                    <td class="text-center"><input type="checkbox" data-day="fri" {{$smsReminder->time_of_day_friday ? 'checked' : ''}}></td>
-                                                    <td class="text-center"><input type="checkbox" data-day="sat" {{$smsReminder->time_of_day_saturday ? 'checked' : ''}}></td>
-                                                </tr>
-                                                <tr>
-                                                    <td><input type="time" class="form-control form-control-sm" data-day="sun" name="timeOfDaySunday" {{$smsReminder->time_of_day_sunday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_sunday ? substr($smsReminder->time_of_day_sunday, 0, 5) : ''}}"></td>
-                                                    <td><input type="time" class="form-control form-control-sm" data-day="mon" name="timeOfDayMonday" {{$smsReminder->time_of_day_monday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_monday ? substr($smsReminder->time_of_day_monday, 0, 5) : ''}}"></td>
-                                                    <td><input type="time" class="form-control form-control-sm" data-day="tue" name="timeOfDayTuesday" {{$smsReminder->time_of_day_tuesday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_tuesday ? substr($smsReminder->time_of_day_tuesday, 0, 5) : ''}}"></td>
-                                                    <td><input type="time" class="form-control form-control-sm" data-day="wed" name="timeOfDayWednesday" {{$smsReminder->time_of_day_wednesday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_wednesday ? substr($smsReminder->time_of_day_wednesday, 0, 5) : ''}}"></td>
-                                                    <td><input type="time" class="form-control form-control-sm" data-day="thu" name="timeOfDayThursday" {{$smsReminder->time_of_day_thursday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_thursday ? substr($smsReminder->time_of_day_thursday, 0, 5) : ''}}"></td>
-                                                    <td><input type="time" class="form-control form-control-sm" data-day="fri" name="timeOfDayFriday" {{$smsReminder->time_of_day_friday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_friday ? substr($smsReminder->time_of_day_friday, 0, 5) : ''}}"></td>
-                                                    <td><input type="time" class="form-control form-control-sm" data-day="sat" name="timeOfDaySaturday" {{$smsReminder->time_of_day_saturday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_saturday ? substr($smsReminder->time_of_day_saturday, 0, 5) : ''}}"></td>
-                                                </tr>
-                                                </tbody>
-                                            </table>
-                                        </div>
-                                    </div>
-                                    <div>
-                                        <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
-                                        <button cancel class="btn btn-sm btn-default border">Cancel</button>
-                                    </div>
-                                </form>
+                            <div>                            
+                                @if($smsReminder->is_same_time_on_saturday || $smsReminder->time_of_day_saturday)
+                                <span class="text-secondary">Sat</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'SAME_TIME_SPECIFIC_DAYS' && $smsReminder->is_same_time_on_saturday)
+                                    <span class="text-secondary"> : {{ friendly_time($smsReminder->same_time_of_day) }}</span>
+                                @endif
+                                @if($smsReminder->same_time_or_different_times == 'CUSTOM' && $smsReminder->time_of_day_saturday)
+                                    <span class="text-secondary"> : {{friendly_time($smsReminder->time_of_day_saturday)}}</span>
+                                @endif
                             </div>
-                            @if($smsReminder->is_active)
-                                <div moe relative="" class="ml-2">
-                                    <a start show class="py-0 mb-3">Deactivate</a>
-                                    <form url="/api/simpleSmsReminder/deactivate" class="mcp-theme-1" right="">
-                                        <input type="hidden" name="uid" value="{{$smsReminder->uid}}">
-                                        <p>Deactivate this SMS reminder?</p>
-                                        <div>
-                                            <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
-                                            <button cancel class="btn btn-sm btn-default border">Cancel</button>
-                                        </div>
-                                    </form>
+                            
+
+                        @endif
+                </td>
+                <td>
+                    <div class="d-flex align-items-center">
+                        @include('app.patient.sms-reminders-form', ['smsReminder' => $smsReminder])
+                        @if($smsReminder->is_active)
+                        <div moe relative="" class="ml-2">
+                            <a start show class="py-0 mb-3">Deactivate</a>
+                            <form url="/api/simpleSmsReminder/deactivate" class="mcp-theme-1" right="">
+                                <input type="hidden" name="uid" value="{{$smsReminder->uid}}">
+                                <p>Deactivate this SMS reminder?</p>
+                                <div>
+                                    <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
                                 </div>
-                            @else
-                                <div moe relative="" class="ml-2">
-                                    <a start show class="py-0 mb-3">Reactivate</a>
-                                    <form url="/api/simpleSmsReminder/reactivate" class="mcp-theme-1" right="">
-                                        <input type="hidden" name="uid" value="{{$smsReminder->uid}}">
-                                        <p>Reactivate this SMS reminder?</p>
-                                        <div>
-                                            <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
-                                            <button cancel class="btn btn-sm btn-default border">Cancel</button>
-                                        </div>
-                                    </form>
+                            </form>
+                        </div>
+                        @else
+                        <div moe relative="" class="ml-2">
+                            <a start show class="py-0 mb-3">Reactivate</a>
+                            <form url="/api/simpleSmsReminder/reactivate" class="mcp-theme-1" right="">
+                                <input type="hidden" name="uid" value="{{$smsReminder->uid}}">
+                                <p>Reactivate this SMS reminder?</p>
+                                <div>
+                                    <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
                                 </div>
-                            @endif
+                            </form>
                         </div>
-                    </td>
-                </tr>
+                        @endif
+                    </div>
+                </td>
+            </tr>
             @endforeach
             @if(!count($patient->smsReminders))
-                <tr>
-                    <td colspan="5">No records found.</td>
-                </tr>
+            <tr>
+                <td colspan="5">No records found.</td>
+            </tr>
             @endif
-            </tbody>
-        </table>
-    </div>
+        </tbody>
+    </table>
+</div>
+
+<script>
+    (function() {
+        function init() {
 
-    <script>
-        (function () {
-            function init() {
-                $('input[type="checkbox"][data-day]').change(function() {
-                    let input = $(this).closest('form')
-                        .find('input[type="time"][data-day="' + $(this).attr('data-day') + '"]');
-                    input.prop('readonly', !this.checked);
-                    if(this.checked) {
-                        input.focus();
-                    }
-                    else {
-                        input.val('');
-                    }
-                });
-            }
-            addMCInitializer('simpleSMSReminderComponent', init, '#simpleSMSReminderComponent');
-        }).call(window);
-    </script>
-@endsection
+        }
+        addMCInitializer('simpleSMSReminderComponent', init, '#simpleSMSReminderComponent');
+    }).call(window);
+</script>
+@endsection

+ 201 - 0
resources/views/app/patient/sms-reminders_depricated.bladephp

@@ -0,0 +1,201 @@
+@extends ('layouts.patient')
+
+@section('inner-content')
+
+    <div id="simpleSMSReminderComponent">
+        <div class="pt-2 d-flex align-items-start">
+            <h6 class="my-0 d-flex align-items-center w-100">
+                <span class="font-weight-bold">SMS Reminders</span>
+                <span class="mx-2 text-secondary">|</span>
+                @include('app.patient.sms-reminders-form')
+            </h6>
+        </div>
+
+        <table class="table table-sm table-striped table-bordered mb-0 mt-2 notes-list">
+            <thead>
+            <tr class="bg-light">
+                <th class="text-secondary border-0">#</th>
+                <th class="text-secondary border-0">To Number</th>
+                <th class="text-secondary border-0">Message</th>
+                <th class="text-secondary border-0">Schedule</th>
+                <th class="text-secondary border-0">Actions</th>
+            </tr>
+            </thead>
+            <tbody>
+            <?php $index = 0; ?>
+            @foreach ($patient->smsReminders as $smsReminder)
+                <?php $index++; ?>
+                <tr class="{{$smsReminder->is_active ? '' : 'bg-light text-secondary'}}">
+                    <td>{{$index}}</td>
+                    <td>{{$smsReminder->sms_number}}</td>
+                    <td>{{$smsReminder->message}}</td>
+                    <td>
+                        <div class="my-1">
+                            Time Zone: {{friendly_timezone($smsReminder->time_zone)}}
+                        </div>
+                        @if($smsReminder->time_of_day_sunday)
+                            <div>
+                                <span class="text-secondary width-40px d-inline-block">Sun:</span>
+                                <b>{{friendly_time($smsReminder->time_of_day_sunday)}}</b>
+                            </div>
+                        @endif
+                        @if($smsReminder->time_of_day_monday)
+                            <div>
+                                <span class="text-secondary width-40px d-inline-block">Mon:</span>
+                                <b>{{friendly_time($smsReminder->time_of_day_monday)}}</b>
+                            </div>
+                        @endif
+                        @if($smsReminder->time_of_day_tuesday)
+                            <div>
+                                <span class="text-secondary width-40px d-inline-block">Tue:</span>
+                                <b>{{friendly_time($smsReminder->time_of_day_tuesday)}}</b>
+                            </div>
+                        @endif
+                        @if($smsReminder->time_of_day_wednesday)
+                            <div>
+                                <span class="text-secondary width-40px d-inline-block">Wed:</span>
+                                <b>{{friendly_time($smsReminder->time_of_day_wednesday)}}</b>
+                            </div>
+                        @endif
+                        @if($smsReminder->time_of_day_thursday)
+                            <div>
+                                <span class="text-secondary width-40px d-inline-block">Thu:</span>
+                                <b>{{friendly_time($smsReminder->time_of_day_thursday)}}</b>
+                            </div>
+                        @endif
+                        @if($smsReminder->time_of_day_friday)
+                            <div>
+                                <span class="text-secondary width-40px d-inline-block">Fri:</span>
+                                <b>{{friendly_time($smsReminder->time_of_day_friday)}}</b>
+                            </div>
+                        @endif
+                        @if($smsReminder->time_of_day_saturday)
+                            <div>
+                                <span class="text-secondary width-40px d-inline-block">Sat:</span>
+                                <b>{{friendly_time($smsReminder->time_of_day_saturday)}}</b>
+                            </div>
+                        @endif
+                    </td>
+                    <td>
+                        <div class="d-flex align-items-center">
+                            <div moe relative="">
+                                <a start show class="py-0 mb-3">Edit</a>
+                                <form url="/api/simpleSmsReminder/update" class="mcp-theme-1" right="">
+                                    <input type="hidden" name="uid" value="{{$smsReminder->uid}}">
+                                    <div class="row mb-2">
+                                        <div class="col-5 pr-0">
+                                            <label class="text-sm text-secondary mb-1">To Number</label>
+                                            <input type="text" name="smsNumber" class="form-control form-control-sm" value="{{$smsReminder->sms_number}}">
+                                        </div>
+                                    </div>
+                                    <div class="row mb-2">
+                                        <div class="col-5 pr-0">
+                                            <label class="text-sm text-secondary mb-1">Time Zone</label>
+                                            <select name="timeZone" class="form-control form-control-sm">
+                                                <option value="EASTERN" {{$smsReminder->time_zone == 'EASTERN'? 'selected' : ''}} >Eastern</option>
+                                                <option value="CENTRAL" {{$smsReminder->time_zone == 'CENTRAL'? 'selected' : ''}} >Central</option>
+                                                <option value="MOUNTAIN" {{$smsReminder->time_zone == 'MOUNTAIN'? 'selected' : ''}} >Mountain</option>
+                                                <option value="PACIFIC" {{$smsReminder->time_zone == 'PACIFIC'? 'selected' : ''}} >Pacific</option>
+                                                <option value="ALASKA" {{$smsReminder->time_zone == 'ALASKA'? 'selected' : ''}} >Alaska</option>
+                                                <option value="HAWAII" {{$smsReminder->time_zone == 'HAWAII'? 'selected' : ''}} >Hawaii</option>
+                                                <option value="PUERTO_RICO" {{$smsReminder->time_zone == 'PUERTO_RICO'? 'selected' : ''}} >Puerto Rico</option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                    <div class="row mb-2">
+                                        <div class="col-12">
+                                            <label class="text-sm text-secondary mb-1">Message</label>
+                                            <textarea name="message" class="form-control form-control-sm">{{$smsReminder->message}}</textarea>
+                                        </div>
+                                    </div>
+                                    <div class="row mb-2">
+                                        <div class="col-12">
+                                            <label class="text-sm text-secondary mb-1">Schedule</label>
+                                            <table class="table table-sm table-bordered mb-0">
+                                                <thead>
+                                                <tr class="bg-light">
+                                                    <th class="border-bottom-0 text-center">Sun</th>
+                                                    <th class="border-bottom-0 text-center">Mon</th>
+                                                    <th class="border-bottom-0 text-center">Tue</th>
+                                                    <th class="border-bottom-0 text-center">Wed</th>
+                                                    <th class="border-bottom-0 text-center">Thu</th>
+                                                    <th class="border-bottom-0 text-center">Fri</th>
+                                                    <th class="border-bottom-0 text-center">Sat</th>
+                                                </tr>
+                                                </thead>
+                                                <tbody>
+                                                <tr>
+                                                    <td class="text-center"><input type="checkbox" data-day="sun" {{$smsReminder->time_of_day_sunday ? 'checked' : ''}}></td>
+                                                    <td class="text-center"><input type="checkbox" data-day="mon" {{$smsReminder->time_of_day_monday ? 'checked' : ''}}></td>
+                                                    <td class="text-center"><input type="checkbox" data-day="tue" {{$smsReminder->time_of_day_tuesday ? 'checked' : ''}}></td>
+                                                    <td class="text-center"><input type="checkbox" data-day="wed" {{$smsReminder->time_of_day_wednesday ? 'checked' : ''}}></td>
+                                                    <td class="text-center"><input type="checkbox" data-day="thu" {{$smsReminder->time_of_day_thursday ? 'checked' : ''}}></td>
+                                                    <td class="text-center"><input type="checkbox" data-day="fri" {{$smsReminder->time_of_day_friday ? 'checked' : ''}}></td>
+                                                    <td class="text-center"><input type="checkbox" data-day="sat" {{$smsReminder->time_of_day_saturday ? 'checked' : ''}}></td>
+                                                </tr>
+                                                <tr>
+                                                    <td><input type="time" class="form-control form-control-sm" data-day="sun" name="timeOfDaySunday" {{$smsReminder->time_of_day_sunday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_sunday ? substr($smsReminder->time_of_day_sunday, 0, 5) : ''}}"></td>
+                                                    <td><input type="time" class="form-control form-control-sm" data-day="mon" name="timeOfDayMonday" {{$smsReminder->time_of_day_monday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_monday ? substr($smsReminder->time_of_day_monday, 0, 5) : ''}}"></td>
+                                                    <td><input type="time" class="form-control form-control-sm" data-day="tue" name="timeOfDayTuesday" {{$smsReminder->time_of_day_tuesday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_tuesday ? substr($smsReminder->time_of_day_tuesday, 0, 5) : ''}}"></td>
+                                                    <td><input type="time" class="form-control form-control-sm" data-day="wed" name="timeOfDayWednesday" {{$smsReminder->time_of_day_wednesday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_wednesday ? substr($smsReminder->time_of_day_wednesday, 0, 5) : ''}}"></td>
+                                                    <td><input type="time" class="form-control form-control-sm" data-day="thu" name="timeOfDayThursday" {{$smsReminder->time_of_day_thursday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_thursday ? substr($smsReminder->time_of_day_thursday, 0, 5) : ''}}"></td>
+                                                    <td><input type="time" class="form-control form-control-sm" data-day="fri" name="timeOfDayFriday" {{$smsReminder->time_of_day_friday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_friday ? substr($smsReminder->time_of_day_friday, 0, 5) : ''}}"></td>
+                                                    <td><input type="time" class="form-control form-control-sm" data-day="sat" name="timeOfDaySaturday" {{$smsReminder->time_of_day_saturday ? '' : 'readonly'}} value="{{$smsReminder->time_of_day_saturday ? substr($smsReminder->time_of_day_saturday, 0, 5) : ''}}"></td>
+                                                </tr>
+                                                </tbody>
+                                            </table>
+                                        </div>
+                                    </div>
+                                    <div>
+                                        <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+                                        <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                    </div>
+                                </form>
+                            </div>
+                            @if($smsReminder->is_active)
+                                <div moe relative="" class="ml-2">
+                                    <a start show class="py-0 mb-3">Deactivate</a>
+                                    <form url="/api/simpleSmsReminder/deactivate" class="mcp-theme-1" right="">
+                                        <input type="hidden" name="uid" value="{{$smsReminder->uid}}">
+                                        <p>Deactivate this SMS reminder?</p>
+                                        <div>
+                                            <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+                                            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                        </div>
+                                    </form>
+                                </div>
+                            @else
+                                <div moe relative="" class="ml-2">
+                                    <a start show class="py-0 mb-3">Reactivate</a>
+                                    <form url="/api/simpleSmsReminder/reactivate" class="mcp-theme-1" right="">
+                                        <input type="hidden" name="uid" value="{{$smsReminder->uid}}">
+                                        <p>Reactivate this SMS reminder?</p>
+                                        <div>
+                                            <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+                                            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                        </div>
+                                    </form>
+                                </div>
+                            @endif
+                        </div>
+                    </td>
+                </tr>
+            @endforeach
+            @if(!count($patient->smsReminders))
+                <tr>
+                    <td colspan="5">No records found.</td>
+                </tr>
+            @endif
+            </tbody>
+        </table>
+    </div>
+
+    <script>
+        (function () {
+            function init() {
+               
+            }
+            addMCInitializer('simpleSMSReminderComponent', init, '#simpleSMSReminderComponent');
+        }).call(window);
+    </script>
+@endsection

+ 91 - 0
resources/views/app/patient/wizard-partials/add-multiple-pre-existing.blade.php

@@ -0,0 +1,91 @@
+<div visit-moe no-auto-save id="{{$label}}-add-multi-preexisting-{{$note->id}}" class="w-100">
+    <form show url="/api/visitPoint/addTopLevelBulkPreExisting" class="mcp-theme-1 w-100 pb-3" novalidate>
+        <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+        <input type="hidden" name="category" value="{{@$category ?: strtoupper($label)}}">
+        <input type="hidden" name="dataJson">
+
+        <table class="table table-sm table-bordered stag-sheet allow-row-addition bg-white mb-2 point-table read">
+            <thead>
+            <tr class="bg-light">
+                <th class="border-bottom-0 text-secondary text-nowrap">{{ucwords($label)}}</th>
+                @if($label === 'problem')
+                    <th class="border-bottom-0 text-secondary width-70px">ICD</th>
+                @elseif($label === 'care team member')
+                    <th class="border-bottom-0 text-secondary">Specialty</th>
+                    <th class="border-bottom-0 text-secondary">Organization</th>
+                @endif
+                <th class="border-bottom-0 text-secondary width-100px">Start Date</th>
+                <th class="border-bottom-0 text-secondary width-100px text-nowrap">{{$adder}}</th>
+                <th class="border-bottom-0 text-secondary width-150px">Subjective</th>
+                <th class="border-bottom-0 text-secondary width-150px">Plan</th>
+                <th class="border-bottom-0 text-secondary width-40px"></th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr>
+                <td class="p-0">
+                    <input type="text" key="{{$label === 'goal' ? 'goal' : 'name'}}" bucket="data" required
+                           @if($label === 'medication')
+                           stag-suggest
+                           stag-suggest-bottom-left
+                           stag-suggest-ep="/fdb-med-suggest-v2/json"
+                           @elseif($label === 'problem')
+                           stag-suggest
+                           stag-suggest-bottom-left
+                           stag-suggest-ep="/fdb-dx-suggest-v2/json"
+                           @elseif($label === 'allergy')
+                           stag-suggest
+                           stag-suggest-bottom-left
+                           stag-suggest-ep="/fdb-allergy-suggest/json"
+                           @endif
+                    >
+                    @if($label === 'medication')
+                        <input type="hidden" key="routedMedId" bucket="data">
+                        <input type="hidden" key="routedDosageFormMedId" bucket="data">
+                        <input type="hidden" key="gcnSeqno" bucket="data">
+                        <input type="hidden" key="medId" bucket="data">
+                    @elseif($label === 'problem')
+                        <input type="hidden" key="dxid" bucket="data">
+                        <input type="hidden" key="icd-type" bucket="data">
+                    @elseif($label === 'allergy')
+                        <input type="hidden" key="damConceptId" bucket="data">
+                        <input type="hidden" key="damConceptIdType" bucket="data">
+                    @endif
+                </td>
+                @if($label === 'problem')
+                    <td class="p-0">
+                        <input type="text" key="icd" bucket="data">
+                    </td>
+                @elseif($label === 'care team member')
+                    <td class="p-0">
+                        <input type="text" key="specialty" bucket="data">
+                    </td>
+                    <td class="p-0">
+                        <input type="text" key="organization" bucket="data">
+                    </td>
+                @endif
+                <td class="p-0">
+                    <input type="date" key="start_date" bucket="data">
+                </td>
+                <td class="p-0">
+                    <input type="text" key="prescriber" bucket="data">
+                </td>
+                <td class="p-0">
+                    <textarea rows="1" key="value" bucket="childReviewData"></textarea>
+                </td>
+                <td class="p-0">
+                    <textarea rows="1" key="value" bucket="childPlanData"></textarea>
+                </td>
+                <td class="px-2 align-middle text-center text-nowrap">
+                    <a href="#" class="delete-line mr-2"><i class="fa fa-trash-alt text-danger on-hover-opaque"></i></a>
+                    <a href="#" class="add-line mr-2"><i class="fa fa-plus text-primary on-hover-opaque"></i></a>
+                </td>
+            </tr>
+            </tbody>
+        </table>
+        <div class="d-flex align-items-center">
+            <button class="btn-save-lines btn btn-sm btn-primary mr-2">Save</button>
+            <button class="btn btn-sm btn-default border bg-white" onclick="closeStagPopup(); return false;">Close</button>
+        </div>
+    </form>
+</div>

+ 166 - 1
resources/views/app/patient/wizard-partials/common-script.blade.php

@@ -807,4 +807,169 @@ $(document).on('rich-text-input.auto-save-rich-text-input', '#frm-cc-regenerate
     debouncedWizardEditModeSaver(this);
 });
 
-initStagSuggest();
+initStagSuggest();
+
+parentSegment.find('.stag-sheet input[stag-suggest][key="name"]')
+    .off('stag-suggest-selected')
+    .on('stag-suggest-selected', (_e, _input, _data) => {
+        _input = $(_input);
+        @if($label === 'medication')
+            _input.closest('tr').find('input[key="routedMedId"]').val(_data.routed_med_id);
+            _input.closest('tr').find('input[key="routedDosageFormMedId"]').val(_data.routed_dosage_form_med_id);
+            _input.closest('tr').find('input[key="gcnSeqno"]').val(_data.gcn_seqno);
+            _input.closest('tr').find('input[key="medId"]').val(_data.medid);
+        @elseif($label === 'problem')
+            _input.closest('tr').find('input[key="dxid"]').val(_data.dxid);
+            _input.closest('tr').find('input[key="icd"]').val(_data.sub_text);
+        @elseif($label === 'allergy')
+            _input.closest('tr').find('input[key="damConceptId"]').val(_data.dam_concept_id);
+            _input.closest('tr').find('input[key="damConceptIdType"]').val(_data.dam_concept_id_typ);
+        @endif
+        return false;
+    });
+
+function getRowBefore(_tr) {
+    return _tr.prev();
+}
+
+function moveToPrevRowInput(_td) {
+    let tr = getRowBefore(_td.closest('tr'));
+    tr.find('td:eq(' + _td.index() + ')').find('input, textarea').first().focus();
+}
+
+function getRowAfter(_tr) {
+    return _tr.next();
+}
+
+function getOrCreateRowAfter(_tr) {
+    let tr = getRowAfter(_tr);
+    if(!tr.length) {
+        tr = newRow(_tr).insertAfter(_tr);
+    }
+    return tr;
+}
+
+function createRowAfter(_tr) {
+    return newRow(_tr).insertAfter(_tr);
+}
+
+function newRow(_tr) {
+    let newTr = _tr.clone(true);
+    newTr.find('input, textarea').val('');
+    newTr.find('textarea').attr('rows', 1).css({minHeight: '', height: ''});
+    newTr.find('[stag-suggest-initialized]').removeAttr('stag-suggest-initialized');
+    return newTr;
+}
+
+function createAndMoveToNextRowInput(_td) {
+    let tr = createRowAfter(_td.closest('tr'));
+    tr.find('td:eq(0)').find('input, textarea').first().focus();
+}
+
+function moveToNextRowInput(_td, _forceCreate = false) {
+    let tr = _forceCreate ? getOrCreateRowAfter(_td.closest('tr')) : getRowAfter(_td.closest('tr'));
+    if(tr.length) {
+        tr.find('td:eq(' + _td.index() + ')').find('input, textarea').first().focus();
+    }
+}
+
+function moveToPrevInput(_td) {
+    _td.prev().find('input, textarea').first().focus();
+}
+
+function moveToNextInput(_td) {
+    _td.next().find('input, textarea').first().focus();
+}
+
+function generateData(_parentSegment) {
+    let lines = [];
+    _parentSegment.find('.stag-sheet tbody tr').each(function() {
+        let line = {
+            data: {},
+            childReviewData: {},
+            childPlanData: {}
+        };
+        $(this).find('input, textarea').each(function() {
+            line[$(this).attr('bucket')][$(this).attr('key')] = this.value;
+        });
+        line.data = JSON.stringify(line.data);
+        line.childReviewData = JSON.stringify(line.childReviewData);
+        line.childPlanData = JSON.stringify(line.childPlanData);
+        lines.push(line);
+    });
+    return JSON.stringify(lines);
+}
+
+parentSegment
+    .off('keydown', '.stag-sheet input, .stag-sheet textarea')
+    .on('keydown', '.stag-sheet input, .stag-sheet textarea', function(_e) {
+        switch (_e.which) {
+            case 13: // ENTER: If shift NOT pressed, move to next row same column
+                if (!_e.shiftKey || !$(this).is('textarea')) {
+                    if($(this).closest('.stag-sheet').is('.allow-row-addition')) {
+                        createAndMoveToNextRowInput($(this).closest('td'));
+                    }
+                    else {
+                        moveToNextRowInput($(this).closest('td'), false);
+                    }
+                    return false;
+                }
+                break;
+            case 38: // UP: If caret already at 0, move up to prev row same column
+                if (this.selectionStart === this.selectionEnd && this.selectionStart === 0) {
+                    moveToPrevRowInput($(this).closest('td'));
+                    return false;
+                }
+                break;
+            case 40: // DOWN: If caret already at end, move down to next row same column
+                if (this.selectionStart === this.selectionEnd && this.selectionStart === this.value.length) {
+                    moveToNextRowInput($(this).closest('td'));
+                    return false;
+                }
+                break;
+            case 37: // LEFT: If caret already at 0, move left to prev column
+                if (this.selectionStart === this.selectionEnd && this.selectionStart === 0) {
+                    moveToPrevInput($(this).closest('td'));
+                    return false;
+                }
+                break;
+            case 39: // RIGHT: If caret already at end, move right to next column
+                if (this.selectionStart === this.selectionEnd && this.selectionStart === this.value.length) {
+                    moveToNextInput($(this).closest('td'));
+                    return false;
+                }
+                break;
+            case 8: // BACKSPACE: If caret already at 0, move left to prev column
+                break;
+        }
+
+    });
+
+parentSegment
+    .off('click.delete-line', '.stag-sheet .delete-line')
+    .on('click.delete-line', '.stag-sheet .delete-line', function() {
+        let tr = $(this).closest('tr');
+        let isFirst = (tr.index() === 0);
+        if(isFirst) {
+            newRow(tr).insertAfter(tr);
+        }
+        tr.remove();
+        return false;
+    });
+
+parentSegment
+    .off('click.add-line', '.stag-sheet .add-line')
+    .on('click.add-line', '.stag-sheet .add-line', function() {
+        let tr = $(this).closest('tr');
+        newRow(tr).insertAfter(tr);
+        initStagSuggest();
+        return false;
+    });
+
+parentSegment
+    .off('click.btn-save-lines', '.btn-save-lines')
+    .on('click.btn-save-lines', '.btn-save-lines', function() {
+        parentSegment.find('[name="dataJson"]').val(generateData(parentSegment));
+        saveVisitForm(this);
+        return false;
+    });