Bladeren bron

Pharmacy suggest - use city/state/zip too while searching

Vijayakrishnan 3 jaren geleden
bovenliggende
commit
8501005f35

+ 11 - 1
app/Http/Controllers/HomeController.php

@@ -801,7 +801,17 @@ WHERE measurement.label NOT IN ('SBP', 'DBP')
                     ->orWhereRaw('LOWER(address_state::text) LIKE ?', ['%' . $term . '%'])
                     ->orWhereRaw('LOWER(phone::text) LIKE ?', ['%' . $term . '%'])
                     ->orWhereRaw('LOWER(address_zip::text) LIKE ?', ['%' . $term . '%']);
-            })
+            });
+        if($request->input('city')) {
+            $pharmacies = $pharmacies->whereRaw('LOWER(address_city::text) LIKE ?', ['%' . strtolower($request->input('city')) . '%']);
+        }
+        if($request->input('state')) {
+            $pharmacies = $pharmacies->whereRaw('LOWER(address_state::text) LIKE ?', ['%' . strtolower($request->input('state')) . '%']);
+        }
+        if($request->input('zip')) {
+            $pharmacies = $pharmacies->whereRaw('LOWER(address_zip::text) LIKE ?', ['%' . strtolower($request->input('zip')) . '%']);
+        }
+        $pharmacies = $pharmacies
             ->orderBy('name', 'asc')
             ->orderBy('address_line1', 'asc')
             ->orderBy('address_city', 'asc')

+ 2 - 0
resources/views/app/patient/tickets/erx-data.blade.php

@@ -32,6 +32,7 @@ erxModel: {
         pharmacyAddressMemo: '',
         pharmacyPhone: '',
         pharmacyFax: '',
+        pharmacyZip: '',
         comments: [{
             pro_id: '',
             message: '',
@@ -70,6 +71,7 @@ erxPopupItem: {
         pharmacyAddressMemo: '',
         pharmacyPhone: '',
         pharmacyFax: '',
+        pharmacyZip: '',
         comments: [{
             pro_id: '',
             message: '',

+ 2 - 0
resources/views/app/patient/tickets/imaging-data.blade.php

@@ -17,6 +17,7 @@ imagingModel: {
         pharmacyAddressMemo: '',
         pharmacyPhone: '',
         pharmacyFax: '',
+        pharmacyZip: '',
         comments: [{
             pro_id: '',
             message: '',
@@ -40,6 +41,7 @@ imagingPopupItem: {
         pharmacyAddressMemo: '',
         pharmacyPhone: '',
         pharmacyFax: '',
+        pharmacyZip: '',
         comments: [{
             pro_id: '',
             message: '',

+ 2 - 0
resources/views/app/patient/tickets/lab-data.blade.php

@@ -17,6 +17,7 @@ labModel: {
         pharmacyAddressMemo: '',
         pharmacyPhone: '',
         pharmacyFax: '',
+        pharmacyZip: '',
         comments: [{
             pro_id: '',
             message: '',
@@ -40,6 +41,7 @@ labPopupItem: {
         pharmacyAddressMemo: '',
         pharmacyPhone: '',
         pharmacyFax: '',
+        pharmacyZip: '',
         comments: [{
             pro_id: '',
             message: '',

+ 9 - 1
resources/views/app/patient/tickets/pharmacy-suggest.blade.php

@@ -14,8 +14,15 @@
     var lastTerm = '';
     var returnedFunction = debounce(function () {
         var term = $('#{{$category}}-pharmacy-search').val();
+        var city = $('#{{$category}}-pharmacy-search-city').val(),
+            state = $('#{{$category}}-pharmacy-search-state').val(),
+            zip = $('#{{$category}}-pharmacy-search-zip').val();
         if (!!term && lastTerm !== term) {
-            $.get('/pharmacy-suggest?term=' + $.trim(term), function (_data) {
+            $.get('/pharmacy-suggest?term=' + encodeURIComponent($.trim(term)) +
+                (!!city ? '&city=' + encodeURIComponent(city) : '') +
+                (!!state ? '&state=' + encodeURIComponent(state) : '') +
+                (!!zip ? '&zip=' + encodeURIComponent(zip) : ''),
+            function (_data) {
                 $('.suggestions-outer.{{$category}}-pharmacy-suggestions').html(_data).removeClass('d-none');
             });
             lastTerm = term;
@@ -95,4 +102,5 @@
     this.{{$category}}PopupItem.data.pharmacyAddressMemo = $(_elem).attr('data-pharmacyAddressMemo');
     this.{{$category}}PopupItem.data.pharmacyPhone = $(_elem).attr('data-pharmacyPhone');
     this.{{$category}}PopupItem.data.pharmacyFax = $(_elem).attr('data-pharmacyFax');
+    this.{{$category}}PopupItem.data.pharmacyZip = $(_elem).attr('data-pharmacyZip');
 },

+ 20 - 8
resources/views/app/patient/tickets/pharmacy.blade.php

@@ -6,25 +6,37 @@
     </div>
     <div class="row mb-2">
         <div class="col-12">
-            <label class="text-sm text-secondary mb-1">Business Name</label>
+            <label class="text-sm text-secondary mb-1">Business Name <b class="text-sm">(fields marked <span class="text-sm text-info font-weight-bold">#</span> will be used to narrow down results)</b></label>
             <input type="text" autocomplete="donotdoit" placeholder="Business Name" id="{{$category}}-pharmacy-search" v-model="{{$category}}PopupItem.data.pharmacyName" class="form-control form-control-sm">
             <div class="suggestions-outer pharmacy-suggestions {{$category}}-pharmacy-suggestions position-absolute d-none"></div>
         </div>
     </div>
     <div class="row mb-2">
         <div class="col-4">
-            <label class="text-sm text-secondary mb-1">City</label>
-            <input type="text" placeholder="City" v-model="{{$category}}PopupItem.data.pharmacyCity" class="form-control form-control-sm min-width-unset">
+            <label class="text-sm text-secondary mb-1">City <span class="text-sm text-info font-weight-bold">#</span></label>
+            <input type="text" placeholder="City" v-model="{{$category}}PopupItem.data.pharmacyCity"
+                   id="{{$category}}-pharmacy-search-city"
+                   class="form-control form-control-sm min-width-unset">
         </div>
-        <div class="col-2 pl-0">
-            <label class="text-sm text-secondary mb-1">State</label>
-            <input type="text" placeholder="State" v-model="{{$category}}PopupItem.data.pharmacyState" class="form-control form-control-sm min-width-unset">
+        <div class="col-4 pl-0">
+            <label class="text-sm text-secondary mb-1">State <span class="text-sm text-info font-weight-bold">#</span></label>
+            <input type="text" placeholder="State" v-model="{{$category}}PopupItem.data.pharmacyState"
+                   id="{{$category}}-pharmacy-search-state"
+                   class="form-control form-control-sm min-width-unset">
         </div>
-        <div class="col-3 pl-0">
+        <div class="col-4 pl-0">
+            <label class="text-sm text-secondary mb-1">ZIP <span class="text-sm text-info font-weight-bold">#</span></label>
+            <input type="text" placeholder="Zip" v-model="{{$category}}PopupItem.data.pharmacyZip"
+                   id="{{$category}}-pharmacy-search-zip"
+                   class="form-control form-control-sm min-width-unset">
+        </div>
+    </div>
+    <div class="row mb-2">
+        <div class="col-4">
             <label class="text-sm text-secondary mb-1">Phone</label>
             <input type="text" placeholder="Phone" v-model="{{$category}}PopupItem.data.pharmacyPhone" class="form-control form-control-sm min-width-unset">
         </div>
-        <div class="col-3 pl-0">
+        <div class="col-4 pl-0">
             <label class="text-sm text-secondary mb-1">Fax</label>
             <input type="text" placeholder="Fax" v-model="{{$category}}PopupItem.data.pharmacyFax" class="form-control form-control-sm min-width-unset">
         </div>

+ 1 - 0
resources/views/app/pharmacy-suggest.blade.php

@@ -11,6 +11,7 @@
        data-pharmacyAddressMemo="{{$pharmacy->address_line1}}"
        data-pharmacyPhone="{{$pharmacy->phone}}"
        data-pharmacyFax="{{$pharmacy->fax}}"
+       data-pharmacyZip="{{$pharmacy->address_zip}}"
     >
         {{$pharmacy->displayString()}}
     </a>