Przeglądaj źródła

Dx wizard - new add/edit implementations

Vijayakrishnan 3 lat temu
rodzic
commit
dc9403c3b6
1 zmienionych plików z 174 dodań i 149 usunięć
  1. 174 149
      resources/views/app/patient/problems-center.blade.php

+ 174 - 149
resources/views/app/patient/problems-center.blade.php

@@ -46,7 +46,6 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
                 <th class="border-bottom-0 text-secondary">Name</th>
                 <th class="border-bottom-0 text-secondary">Active?</th>
                 <th class="border-bottom-0 text-secondary">Edit</th>
-                <th class="border-bottom-0 text-secondary">Delete</th>
                 <th class="border-bottom-0 text-secondary">Started</th>
                 <th class="border-bottom-0 text-secondary">Ended</th>
                 <th class="border-bottom-0 text-secondary w-25">Last Review</th>
@@ -63,7 +62,7 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
             @endif
             <?php $prevRowRemoved = $problem->is_removed; ?>
             <?php $rel = $problem->relevanceToNote($note); ?>
-            <tr class="{{$problem->is_removed ? 'on-hover-opaque' : ''}}">
+            <tr class="">
                 <td class="text-center">
                     <a href="#" class="toggle-relevance"
                        data-relevant="{{$rel ? '1' : '0'}}"
@@ -109,24 +108,19 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
                     @endif
                 </td>
                 <td>
-                    @if($problem->added_in_note_id === $note->id)
-                        <div moe wide>
-                            <a start show href="#" title="Edit">Edit</a>
-                            <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1 frm-edit-problem">
-                                <input type="hidden" name="uid" value="<?= $problem->uid ?>">
-                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
-                                <p class="mb-2"><b>Update Problem</b></p>
+                    <div moe wide>
+                        <a start show href="#" title="Edit">Edit</a>
+                        <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1 frm-edit-problem">
+                            <input type="hidden" name="uid" value="<?= $problem->uid ?>">
+                            <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
+                            <p class="mb-2"><b>Update Problem</b></p>
 
-                                <input type="hidden" name="data">
+                            @if($problem->added_in_note_id === $note->id)
 
+                                <input type="hidden" name="data">
                                 <input type="hidden" data-name="dxid" value="{{@$problem->data->dxid}}">
                                 <input type="hidden" data-name="icd-type" value="{{@$problem->data->{'icd-type'} }}">
 
-                                <input type="hidden" name="additionReasonCategory" value="{{@$problem->addition_reason_category}}">
-                                <input type="hidden" name="isRemoved" value="{{@$problem->is_removed}}">
-                                <input type="hidden" name="removalReasonCategory" value="{{@$problem->removal_reason_category}}">
-                                <input type="hidden" name="isRemovedDueToEntryError" value="{{@$problem->is_removed_due_to_entry_error}}">
-
                                 <div class="mb-2">
                                     <label class="text-sm text-secondary mb-1">Problem</label>
                                     <input type="text" class="form-control form-control-sm min-width-unset"
@@ -144,113 +138,88 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
                                     </select>
                                 </div>
 
-                                <div class="mb-2">
-                                    <label class="text-sm text-secondary mb-0">Historic / Preexisting / New</label>
-                                    <select class="form-control form-control-sm additionReasonCategory_ui" name="additionReasonCategory_ui" required>
+                            @else
+
+                                <div class="mb-2 bg-light p-2 border">
+                                    <p class="mb-1 font-weight-bold">
+                                        {{ @$problem->data->name }}
+                                    </p>
+                                    <div class="text-secondary text-sm">Clinical details cannot be modified since the problem was added prior to this visit.</div>
+                                </div>
+
+                            @endif
+
+                            <hr class="my-3">
+
+                            <div class="row mb-2">
+                                <div class="col-4 pr-0">
+                                    <label class="text-sm mb-0">When Added</label>
+                                    <select class="form-control form-control-sm min-width-unset" name="additionReasonCategory" required>
                                         <option value="">-- select --</option>
-                                        <option value="HISTORIC" {{$problem->addition_reason_category === 'ON_INTAKE' && $problem->is_removed ? 'selected' : ''}}>Historic</option>
-                                        <option value="PRE_EXISTING" {{$problem->addition_reason_category === 'ON_INTAKE' && !$problem->is_removed ? 'selected' : ''}}>Preexisting</option>
-                                        <option value="NEW" {{$problem->addition_reason_category === 'DURING_VISIT' ? 'selected' : ''}}>New (Found during this visit)</option>
+                                        <option value="ON_INTAKE" {{$problem->addition_reason_category === 'ON_INTAKE' ? 'selected' : ''}}>On Intake</option>
+                                        <option value="DURING_VISIT" {{$problem->addition_reason_category === 'DURING_VISIT' ? 'selected' : ''}}>During Visit</option>
                                     </select>
                                 </div>
+                                <div class="col-8">
+                                    <label class="text-sm mb-0 min-width-unset">Addition Memo</label>
+                                    <input type="text"
+                                           name="additionReasonMemo"
+                                           value="{{$problem->addition_reason_memo}}"
+                                           class="form-control form-control-sm min-width-unset">
+                                </div>
+                            </div>
+
+                            <hr class="my-3">
 
-                                <div class="d-flex align-items-start">
-                                    <div class="w-50 mb-2">
-                                        <div class="start_date_ui" style="display: none">
-                                            <label class="text-sm text-secondary mb-0">Start Date</label>
-                                            <input type="date"
-                                                   data-name="start_date"
-                                                   class="form-control form-control-sm min-width-unset">
-                                        </div>
-                                    </div>
+                            <div class="row mb-2">
+                                <div class="col-6 pr-0">
+                                    <label class="text-sm mb-0 min-width-unset">Is problem active?</label>
+                                    <select class="form-control form-control-sm min-width-unset" name="isRemoved" required>
+                                        <option value="">-- select --</option>
+                                        <option value="0" {{!$problem->is_removed ? 'selected' : ''}}>Yes</option>
+                                        <option value="1" {{$problem->is_removed ? 'selected' : ''}}>No</option>
+                                    </select>
                                 </div>
-                                <div class="d-flex align-items-start">
-                                    <div class="w-50 mb-2">
-                                        <div class="removalEffectiveDate_ui" style="display: none">
-                                            <label class="text-sm text-secondary mb-0">End Date</label>
-                                            <input type="date"
-                                                   name="removalEffectiveDate"
-                                                   class="form-control form-control-sm min-width-unset">
-                                        </div>
-                                    </div>
-                                    <div class="w-50 pl-2 mb-2">
-                                        <div class="removalReasonMemo_ui" style="display: none">
-                                            <label class="text-sm text-secondary mb-0">Removal Memo</label>
-                                            <input type="text"
-                                                   name="removalReasonMemo"
-                                                   class="form-control form-control-sm min-width-unset">
-                                        </div>
-                                    </div>
+                                <div class="col-6 is_removed_ui_1" style="display: none">
+                                    <label class="text-sm mb-0 min-width-unset">Is entry error?</label>
+                                    <select class="form-control form-control-sm min-width-unset" name="isRemovedDueToEntryError">
+                                        <option value="1" {{$problem->is_removed_due_to_entry_error ? 'selected' : ''}}>Yes</option>
+                                        <option value="0" {{!$problem->is_removed_due_to_entry_error ? 'selected' : ''}}>No</option>
+                                    </select>
                                 </div>
+                            </div>
 
-                                <div class="mb-2">
-                                    <label class="text-sm text-secondary mb-1">Description</label>
-                                    <textarea rows="1" data-name="description" class="form-control form-control-sm">{{@$problem->data->description}}</textarea>
+                            <div class="row mb-2 is_removed_ui_2" style="display: none">
+                                <div class="col-4 pr-0">
+                                    <label class="text-sm mb-0 min-width-unset">When Removed</label>
+                                    <select class="form-control form-control-sm min-width-unset" name="removalReasonCategory">
+                                        <option value="">-- select --</option>
+                                        <option value="ON_INTAKE" {{$problem->removal_reason_category === 'ON_INTAKE' ? 'selected' : ''}}>On Intake</option>
+                                        <option value="DURING_VISIT" {{$problem->removal_reason_category === 'DURING_VISIT' ? 'selected' : ''}}>During Visit</option>
+                                    </select>
                                 </div>
-
-                                <div>
-                                    <button type="submit" class="btn-save-problem btn btn-sm btn-primary mr-2">Save</button>
-                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                <div class="col-4 pr-0">
+                                    <label class="text-sm mb-0 min-width-unset">End Date</label>
+                                    <input type="date"
+                                           name="removalEffectiveDate"
+                                           value="{{$problem->removal_effective_date ? $problem->removal_effective_date : ''}}"
+                                           class="form-control form-control-sm min-width-unset">
                                 </div>
-                            </form>
-                        </div>
-                    @endif
-                </td>
-                <td>
-                    @if($problem->added_in_note_id === $note->id)
-                        <div moe>
-                            <a start show href="#" title="Delete">Delete</a>
-                            <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1">
-                                <input type="hidden" name="uid" value="<?= $problem->uid ?>">
-                                <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
-                                <input type="hidden" name="isRemoved" value="1">
-                                <input type="hidden" name="isRemovedDueToEntryError" value="1">
-                                <input type="hidden" name="removalReasonMemo" value="Entry Error">
-                                <input type="hidden" name="removalEffectiveDate" value="<?= date('Y-m-d') ?>">
-                                <p class="mb-2"><b>Delete this problem?</b></p>
-                                <div>
-                                    <button submit class="btn btn-sm btn-danger mr-2">Delete</button>
-                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                <div class="col-4">
+                                    <label class="text-sm mb-0 min-width-unset">Removal By/Memo</label>
+                                    <input type="text"
+                                           name="removalReasonMemo"
+                                           value="{{$problem->removal_reason_memo}}"
+                                           class="form-control form-control-sm min-width-unset">
                                 </div>
-                            </form>
-                        </div>
-                    @else
-                        @if(!$problem->is_removed)
-                            <div moe>
-                                <a start show href="#" title="Discontinue">Delete</a>
-                                <form url="/api/visitPoint/updateTopLevel" class="mcp-theme-1">
-                                    <input type="hidden" name="uid" value="<?= $problem->uid ?>">
-                                    <input type="hidden" name="noteUid" value="<?= $note->uid ?>">
-                                    <input type="hidden" name="isRemoved" value="1">
-                                    <input type="hidden" name="isRemovedDueToEntryError" value="0">
-                                    <p class="mb-2"><b>Delete this problem?</b></p>
-                                    <div class="mb-2">
-                                        <label class="text-sm text-secondary mb-1">Already inactive?</label>
-                                        <select class="form-control form-control-sm" name="removalReasonCategory" required>
-                                            <option value="">-- select --</option>
-                                            <option value="ON_INTAKE">Already inactive (before this visit)</option>
-                                            <option value="DURING_VISIT">Mark inactive now</option>
-                                        </select>
-                                    </div>
-                                    <div class="mb-2">
-                                        <label class="text-sm text-secondary mb-1">Removal Reason</label>
-                                        <textarea name="removalReasonMemo" class="form-control form-control-sm" rows="2"></textarea>
-                                    </div>
-                                    <div class="mb-2">
-                                        <label class="text-sm text-secondary mb-1">Removal Effective Date</label>
-                                        <input type="date" name="removalEffectiveDate"
-                                               value="<?= date('Y-m-d') ?>"
-                                               max="<?= date('Y-m-d') ?>"
-                                               class="form-control form-control-sm">
-                                    </div>
-                                    <div>
-                                        <button submit class="btn btn-sm btn-danger mr-2">Delete</button>
-                                        <button cancel class="btn btn-sm btn-default border">Cancel</button>
-                                    </div>
-                                </form>
                             </div>
-                        @endif
-                    @endif
+
+                            <div>
+                                <button type="submit" class="btn-save-problem btn btn-sm btn-primary mr-2">Save</button>
+                                <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                            </div>
+                        </form>
+                    </div>
                 </td>
                 <td>
                     <?= !!@($problem->data->start_date) ? @($problem->data->start_date) : '-' ?>
@@ -326,11 +295,6 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
                     <input type="hidden" data-name="dxid">
                     <input type="hidden" data-name="icd-type">
 
-                    <input type="hidden" name="additionReasonCategory">
-                    <input type="hidden" name="isRemoved">
-                    <input type="hidden" name="removalReasonCategory">
-                    <input type="hidden" name="isRemovedDueToEntryError">
-
                     <p class="mb-2"><b>Add Problem</b></p>
 
                     <div class="row">
@@ -355,42 +319,79 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
                                 </div>
                             </div>
                             <div class="row mb-2">
-                                <div class="col-12">
-                                    <label class="text-sm text-secondary mb-0">Historic / Preexisting / New</label>
-                                    <select class="form-control form-control-sm additionReasonCategory_ui" name="additionReasonCategory_ui" required>
+                                <div class="col-6 pr-0">
+                                    <label class="text-sm mb-0">Start Date</label>
+                                    <input type="date"
+                                           data-name="start_date"
+                                           class="form-control form-control-sm min-width-unset">
+                                </div>
+                                <div class="col-6">
+                                    <label class="text-sm mb-0">Added By</label>
+                                    <input type="text"
+                                           data-name="prescriber"
+                                           class="form-control form-control-sm min-width-unset">
+                                </div>
+                            </div>
+                            <!--<div class="mb-2">
+                                <label class="text-sm mb-1">Description</label>
+                                <textarea rows="1" data-name="description" class="form-control form-control-sm"></textarea>
+                            </div>-->
+
+                            <hr class="my-3">
+
+                            <div class="row mb-2">
+                                <div class="col-4 pr-0">
+                                    <label class="text-sm mb-0">When Added</label>
+                                    <select class="form-control form-control-sm min-width-unset" name="additionReasonCategory" required>
                                         <option value="">-- select --</option>
-                                        <option value="HISTORIC">Historic</option>
-                                        <option value="PRE_EXISTING">Preexisting</option>
-                                        <option value="NEW">New (Found during this visit)</option>
+                                        <option value="ON_INTAKE">On Intake</option>
+                                        <option value="DURING_VISIT">During Visit</option>
                                     </select>
                                 </div>
+                                <div class="col-8">
+                                    <label class="text-sm mb-0 min-width-unset">Addition Memo</label>
+                                    <input type="text"
+                                           name="additionReasonMemo"
+                                           class="form-control form-control-sm min-width-unset">
+                                </div>
                             </div>
-                            <div class="d-flex align-items-start mb-2">
-                                <div class="w-25">
-                                    <div class="start_date_ui" style="display: none">
-                                        <label class="text-sm text-secondary mb-0">Start Date</label>
-                                        <input type="date"
-                                               data-name="start_date"
-                                               class="form-control form-control-sm min-width-unset">
-                                    </div>
+
+                            <hr class="my-3">
+
+                            <div class="row mb-2">
+                                <div class="col-6 pr-0">
+                                    <label class="text-sm mb-0 min-width-unset">Is problem active?</label>
+                                    <select class="form-control form-control-sm min-width-unset" name="isRemoved" required>
+                                        <option value="0" selected>Yes</option>
+                                        <option value="1">No</option>
+                                    </select>
                                 </div>
-                                <div class="w-25 pl-2">
-                                    <div class="removalEffectiveDate_ui" style="display: none">
-                                        <label class="text-sm text-secondary mb-0">End Date</label>
-                                        <input type="date"
-                                               name="removalEffectiveDate"
-                                               class="form-control form-control-sm min-width-unset">
-                                    </div>
+                                <input type="hidden" name="isRemovedDueToEntryError" value="0">
+                            </div>
+
+                            <div class="row mb-2 is_removed_ui_2" style="display: none">
+                                <div class="col-4 pr-0">
+                                    <label class="text-sm mb-0 min-width-unset">When Removed</label>
+                                    <select class="form-control form-control-sm min-width-unset" name="removalReasonCategory">
+                                        <option value="">-- select --</option>
+                                        <option value="ON_INTAKE">On Intake</option>
+                                        <option value="DURING_VISIT">During Visit</option>
+                                    </select>
+                                </div>
+                                <div class="col-4 pr-0">
+                                    <label class="text-sm mb-0 min-width-unset">End Date</label>
+                                    <input type="date"
+                                           name="removalEffectiveDate"
+                                           class="form-control form-control-sm min-width-unset">
                                 </div>
-                                <div class="w-25 pl-2">
-                                    <div class="removalReasonMemo_ui" style="display: none">
-                                        <label class="text-sm text-secondary mb-0">Removal By/Memo</label>
-                                        <input type="text"
-                                               name="removalReasonMemo"
-                                               class="form-control form-control-sm min-width-unset">
-                                    </div>
+                                <div class="col-4">
+                                    <label class="text-sm mb-0 min-width-unset">Removal By/Memo</label>
+                                    <input type="text"
+                                           name="removalReasonMemo"
+                                           class="form-control form-control-sm min-width-unset">
                                 </div>
                             </div>
+
                         </div>
                         <div class="col-5 border-left">
 
@@ -430,9 +431,11 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
                 var toolbar = $(quill.container).prev('.ql-toolbar');
 
                 // add button for new shortcut
-                var newSCButton = $('<button class="btn bg-white btn-sm btn-default text-primary w-auto px-2 border py-0 ' +
-                    'text-sm add-shortcut" data-editor-id="' + editorID + '">+ Shortcut</button>');
-                toolbar.append(newSCButton);
+                if(!noteRTE.is('[use-shortcuts]') || !noteRTE.attr('use-shortcuts')) {
+                    var newSCButton = $('<button class="btn bg-white btn-sm btn-default text-primary w-auto px-2 border py-0 ' +
+                        'text-sm add-shortcut" data-editor-id="' + editorID + '">+ Shortcut</button>');
+                    toolbar.append(newSCButton);
+                }
 
                 quill.root.innerHTML = existingContent;
 
@@ -441,7 +444,11 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
                     let dataObject = {};
                     dataObject[fieldName] = content;
                     var dataValue = JSON.stringify(dataObject);
-                    $(el).closest('[visit-moe]').find('input[name=data]').val(dataValue);
+                    let pElem = $(el).closest('[visit-moe]');
+                    if(!pElem.length) {
+                        pElem = $(el).closest('form');
+                    }
+                    pElem.find('input[name=data]').val(dataValue);
                 };
 
                 quill.on('text-change', onTextChange);
@@ -517,6 +524,23 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
 
                 });
 
+            parentSegment.find('[name="isRemoved"], [name="isRemovedDueToEntryError"]')
+                .off('change')
+                .on('change', function () {
+                    let form = $(this).closest('form');
+
+                    form.find('.is_removed_ui_1').hide();
+                    if(form.find('[name="isRemoved"]').val() === '1') {
+                        form.find('.is_removed_ui_1').show();
+                    }
+
+                    form.find('.is_removed_ui_2').hide();
+                    if(form.find('[name="isRemoved"]').val() === '1' && form.find('[name="isRemovedDueToEntryError"]').val() !== '1') {
+                        form.find('.is_removed_ui_2').show();
+                    }
+                    return false;
+                });
+
             parentSegment.find('#frm-add-problem')
                 .off('submit')
                 .on('submit', function () {
@@ -680,7 +704,8 @@ $ccSegment = $note->getSegmentByInternalName('chief_complaint');
 
             initStagSuggest();
 
-            $('.additionReasonCategory_ui').trigger('change');
+            parentSegment.find('.additionReasonCategory_ui').trigger('change');
+            parentSegment.find('[name="isRemoved"]').trigger('change');
 
             initSegmentMoes($('#problems-center-{{$note->id}}'));
             initVisitMoeRTEs();