Bladeren bron

FDB Playground - drug coadministration notes (wip)

Vijayakrishnan 3 jaren geleden
bovenliggende
commit
23acb0ac68

+ 14 - 0
app/Http/Controllers/FDBPGController.php

@@ -338,4 +338,18 @@ INTERSECT
 
         return !!count($matches);
     }
+
+    public function drugCoadministration(Request $request) {
+        $gcnSeqnos = $request->input('gcn-seqnos') ? trim($request->input('gcn-seqnos')) : '';
+        if (empty($gcnSeqnos)) return '';
+        //$gcnSeqnos = explode(",", $gcnSeqnos);
+
+        $coadministration = DB::connection('pgsql_fdb')->select("
+SELECT distinct r1.coadmin_dosing_text
+FROM radige0_ddi_gcnseqno_except r1 
+WHERE r1.side_a_gcn_seqno in ($gcnSeqnos) AND r1.side_b_gcn_seqno in ($gcnSeqnos)
+            "
+        );
+        return view('app.fdb-pg.fdb-coadministration', compact('coadministration'));
+    }
 }

+ 16 - 0
resources/views/app/fdb-pg/fdb-coadministration.blade.php

@@ -0,0 +1,16 @@
+@if(count($coadministration))
+    <div class="d-flex px-2 py-1 bg-white border-bottom align-items-baseline">
+        <span>Count: <b>{{count($coadministration)}}</b></span>
+        <a href="#" class="text-sm ml-auto" onclick="$(this).parent().next('table').toggle(); return false;">Toggle</a>
+    </div>
+    <table class="table table-sm table-striped table-bordered" style="display: none">
+        <tbody>
+        @foreach($coadministration as $item)
+            <tr>
+                <td>{{$item->coadmin_dosing_text}}</td>
+            </tr>
+        @endforeach
+        </tbody>
+    </table>
+@endif
+

+ 40 - 12
resources/views/app/fdb-pg/fdb-rx.blade.php

@@ -132,7 +132,7 @@
             </table>
             </div>
             <div class="row">
-                <div class="col-6">
+                <div class="col-4">
                     <div class="bg-white p-3 border">
                         <div class="d-flex align-items-baseline mb-2">
                             <span class="font-size-14 font-weight-bold">Drug Allergy Notes</span>
@@ -140,13 +140,21 @@
                         <div class="drug-allergies"></div>
                     </div>
                 </div>
-                <div class="col-6 pl-0">
+                <div class="col-4 pl-0">
                     <div class="bg-white p-3 border">
                         <div class="d-flex align-items-baseline mb-2">
                             <span class="font-size-14 font-weight-bold">Drug Drug Interaction Notes</span>
                         </div>
                     </div>
                 </div>
+                <div class="col-4 pl-0">
+                    <div class="bg-white p-3 border">
+                        <div class="d-flex align-items-baseline mb-2">
+                            <span class="font-size-14 font-weight-bold">Coadministration Notes</span>
+                        </div>
+                        <div class="drug-coadministration"></div>
+                    </div>
+                </div>
             </div>
         </div>
     </div>
@@ -320,6 +328,34 @@
                                 $('[fdb-allergy-suggest-search]').last().focus();
                             });
                         },
+                        showDrugAllergyNotes: function() {
+                            $('.drug-allergies').html('');
+                            if(this.allergies && this.allergies.length) {
+                                $.get('/fdb-drug-allergies', {
+                                    data: JSON.stringify({
+                                        allergies: this.allergies,
+                                        rx: this.rx
+                                    })
+                                }, _data => {
+                                    $('.drug-allergies').html(_data);
+                                });
+                            }
+                        },
+                        showDrugCoadministrationNotes: function() {
+                            $('.drug-coadministration').html('');
+                            if(this.rx && this.rx.length > 1) {
+                                let gcnSeqNos = [];
+                                for (let i = 0; i < this.rx.length; i++) {
+                                    gcnSeqNos.push(this.rx[i].gcn_seqno);
+                                }
+                                gcnSeqNos = gcnSeqNos.join(",");
+                                $.get('/fdb-drug-coadministration', {
+                                    'gcn-seqnos': gcnSeqNos
+                                }, _data => {
+                                    $('.drug-coadministration').html(_data);
+                                });
+                            }
+                        },
                         initFDBRxSuggest: function() {
                             $('[fdb-med-suggest-search]:not([fdb-suggest-initialized])').each(function() {
                                 let elem = $(this);
@@ -552,16 +588,8 @@
                             let routedMedID = $('[fdb-med-suggest-route][fdb-suggest-group='+$(this).attr('fdb-suggest-group')+']').val();
                             fillContraindications($(this).attr('fdb-suggest-group'), routedMedID);
 
-                            if(vueApp.allergies && vueApp.allergies.length) {
-                                $.get('/fdb-drug-allergies', {
-                                    data: JSON.stringify({
-                                        allergies: vueApp.allergies,
-                                        rx: vueApp.rx
-                                    })
-                                }, _data => {
-                                    $('.drug-allergies').html(_data);
-                                });
-                            }
+                            vueApp.showDrugAllergyNotes();
+                            vueApp.showDrugCoadministrationNotes();
                         });
 
                         Vue.nextTick(() => {

+ 1 - 0
routes/web.php

@@ -335,6 +335,7 @@ Route::middleware('pro.auth')->group(function () {
     Route::get('/fdb-dx-suggest', 'FDBPGController@dxSuggest');
     Route::get('/fdb-allergy-suggest', 'FDBPGController@allergySuggest');
     Route::any('/fdb-drug-allergies', 'FDBPGController@drugAllergies');
+    Route::any('/fdb-drug-coadministration', 'FDBPGController@drugCoadministration');
 });
 
 Route::post("/process_form_submit", 'NoteController@processFormSubmit')->name('process_form_submit');