]> Softwares of Agnibho - simpleipd.git/commitdiff
Added autocomplete
authorAgnibho Mondal <mondal@agnibho.com>
Fri, 14 May 2021 23:51:27 +0000 (05:21 +0530)
committerAgnibho Mondal <mondal@agnibho.com>
Fri, 14 May 2021 23:51:27 +0000 (05:21 +0530)
autocomplete/drugs.json [new file with mode: 0644]
autocomplete/frequency.json [new file with mode: 0644]
autocomplete/route.json [new file with mode: 0644]
discharge.php
forms/drugs.schema.json
lib/foot.php
res/bootstrap-4-autocomplete.min.js [new file with mode: 0644]
treatment.php

diff --git a/autocomplete/drugs.json b/autocomplete/drugs.json
new file mode 100644 (file)
index 0000000..a799fc2
--- /dev/null
@@ -0,0 +1,66 @@
+{
+    "Paracetamol":"Paracetamol",
+    "Drotaverine":"Drotaverine",
+    "Pantoprazole":"Pantoprazole",
+    "Ondansetron":"Ondansetron",
+    "Levocetrizine":"Levocetrizine",
+    "Montelukast":"Montelukast",
+    "Amoxycillin-Clavulinic Acid":"Amoxycillin-Clavulinic Acid",
+    "Azithromycin":"Azithromycin",
+    "Ciprofloxacin":"Ciprofloxacin",
+    "Metronidazole":"Metronidazole",
+    "Ceftriaxone":"Ceftriaxone",
+    "Vancomycin":"Vancomycin",
+    "Meropenem":"Meropenem",
+    "Piperacillin-Tazobactum":"Pipzo",
+    "Colistin":"Colistin",
+    "Polymyxin B": "Polymyxin B",
+    "Levosalbutamol-Ipratropium Bromide":"Levosalbutamol-Ipratropium Bromide",
+    "Budesonide":"Budesonide",
+    "NS":"NS",
+    "3% NaCl":"3% NaCl",
+    "RL":"RL",
+    "5D":"5D",
+    "25D":"25D",
+    "Half NS":"Half NS",
+    "ORS":"ORS",
+    "O2 with nasal cannula":"O2 with nasal cannula",
+    "O2 with face mask":"O2 with face mask",
+    "O2 with NRBM":"O2 with NRBM",
+    "O2 with HFNC":"O2 with HFNC",
+    "Ivermectin":"Ivermectin",
+    "Doxycycline":"Doxycycline",
+    "Zinc":"Zinc",
+    "Vitamin C":"Vitamin C",
+    "Antioxidant":"Antioxidant",
+    "Multivitamin":"Multivitamin",
+    "Remdesivir":"Remdesivir",
+    "Dexamethasone":"Dexamethasone",
+    "Enoxaparin":"Enoxaparin",
+    "LMWH":"LMWH",
+    "Warfarin":"Warfarin",
+    "Artesunate-SP":"Artesunate-SP",
+    "Artenmether-Lumefantrine":"Artemether-Lumefantrine",
+    "Primaquine":"Primaquine",
+    "Amphotericin B":"Amphotericin B",
+    "Liposomal AmB":"Liposomal AmB",
+    "Miltefosine":"Miltefosine",
+    "Cotrimoxazole":"Cotrimoxazole",
+    "ART":"ART",
+    "ATD":"ATD",
+    "Streptomycin":"Streptomycin",
+    "Levofloxacin":"Levofloxacin",
+    "Rifampicin":"Rifampicin",
+    "Isoniazide":"Isoniazide",
+    "Pyrazinamide":"Pyrazinamide",
+    "Ethambutol":"Ethambutol",
+    "Fluconazole":"Fluconazole",
+    "Acyclovir":"Acyclovir",
+    "Nor-Adrenaline":"Nor-Adrenaline",
+    "Adrenaline":"Adrenaline",
+    "Dopamine":"Dopamine",
+    "Dobutamine":"Dobutamine",
+    "Lorazepam":"Lorazepam",
+    "Phenytoin":"Phenytoin",
+    "Midazolam":"Midazolam"
+}
diff --git a/autocomplete/frequency.json b/autocomplete/frequency.json
new file mode 100644 (file)
index 0000000..301ac30
--- /dev/null
@@ -0,0 +1,24 @@
+{
+    "OD":"OD",
+    "BD":"BD",
+    "TDS":"TDS",
+    "QDS":"QDS",
+    "5 times/day":"5 times/day",
+    "ODHS":"ODHS",
+    "ODAC":"ODAC",
+    "BDAC":"BDAC",
+    "ODPC":"ODPC",
+    "BDPC":"BDPC",
+    "1 hourly":"1 hourly",
+    "2 hourly":"2 hourly",
+    "3 hourly":"3 hourly",
+    "4 hourly":"4 hourly",
+    "5 hourly":"5 hourly",
+    "6 hourly":"6 hourly",
+    "7 hourly":"7 hourly",
+    "9 hourly":"9 hourly",
+    "10 hourly":"10 hourly",
+    "11 hourly":"11 hourly",
+    "12 hourly":"12 hourly",
+    "Stat":"Stat"
+}
diff --git a/autocomplete/route.json b/autocomplete/route.json
new file mode 100644 (file)
index 0000000..468385d
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "PO":"PO",
+    "IV":"IV",
+    "IM":"IM",
+    "PR":"PR",
+    "Infusion":"Infusion",
+    "Transfusion":"Transfusion",
+    "Inhalation":"Inhalation",
+    "Nebulization":"Nebulization"
+}
index 32e7488c025577b00354896d672bade67f8fda1c..1b0a5ccf2e34e678799a531e200b320476b8a61d 100644 (file)
@@ -11,15 +11,15 @@ if(!empty($_GET["pid"])){
   if(!empty($_POST["delete"])){
     $db->deleteAdvice($_POST["delete"]);
   }
-  elseif(!empty($_POST["name"])){
-    $db->addAdvice($pid, $_POST["name"], $_POST["dose"], $_POST["route"], $_POST["frequency"], $_POST["duration"], $_POST["extra-note"]);
+  elseif(!empty($_POST["drug"])){
+    $db->addAdvice($pid, $_POST["drug"], $_POST["dose"], $_POST["route"], $_POST["frequency"], $_POST["duration"], $_POST["extra-note"]);
   }
   $list=$db->getAdvice($pid);
   $view="<form method='post' id='delete'></form>";
   $view=$view."<table class='table'>";
   $view=$view."<tr><th>Drug</th><th>Dose</th><th>Route</th><th>Frequency</th><th>Duration</th><th>Note</th></tr>";
   while($drug=$list->fetchArray()){
-    $view=$view."<tr><td>".$drug["name"]."</td><td>".$drug["dose"]."</td><td>".$drug["route"]."</td><td>".$drug["frequency"]."</td><td>".$drug["duration"]."</td><td>".$drug["addl"]."</td><td><button class='btn btn-warning' name='delete' value='".$drug["rowid"]."' form='delete'>Delete</button></td></tr>";
+    $view=$view."<tr><td>".$drug["drug"]."</td><td>".$drug["dose"]."</td><td>".$drug["route"]."</td><td>".$drug["frequency"]."</td><td>".$drug["duration"]."</td><td>".$drug["addl"]."</td><td><button class='btn btn-warning' name='delete' value='".$drug["rowid"]."' form='delete'>Delete</button></td></tr>";
   }
   $view=$view."</table>";
   $form=schema2form("forms/drugs.schema.json");
index 5d4d8c212273ff462da79ca8d4ea9c2d22d13a23..8605693363a30e658135b7f3ba9f3142de2b235b 100644 (file)
@@ -5,7 +5,7 @@
     "type": "object",
 
     "properties": {
-        "name": {
+        "drug": {
             "description": "Name",
             "type": "string"
         },
index 3103bf45442f28dcf5b31d126236d65a6ad9b612..c8308cff17ad3cea194524ea7b404ea918666a2d 100644 (file)
@@ -1,6 +1,7 @@
 <script src="res/jquery.min.js"></script>
 <script src="res/moment.js"></script>
 <script src="res/bootstrap/js/bootstrap.bundle.min.js"></script>
+<script src="res/bootstrap-4-autocomplete.min.js"></script>
 
 <script>
 $(document).ready(function(){
@@ -14,5 +15,29 @@ $(document).ready(function(){
       $(this).val(moment().format("HH:MM"));
     }
   });
+  if($("[name='drug']").length){
+    $(this).prop("autocomplete","off");
+    $.get("autocomplete/drugs.json", function(data){
+      $("[name='drug']").each(function(){
+        $(this).autocomplete({source:data, highlightClass:'text-danger',treshold:2});
+      });
+    });
+  };
+  if($("[name='route']").length){
+    $(this).prop("autocomplete","off");
+    $.get("autocomplete/route.json", function(data){
+      $("[name='route']").each(function(){
+        $(this).autocomplete({source:data, highlightClass:'text-danger',treshold:1});
+      });
+    });
+  };
+  if($("[name='frequency']").length){
+    $(this).prop("autocomplete","off");
+    $.get("autocomplete/frequency.json", function(data){
+      $("[name='frequency']").each(function(){
+        $(this).autocomplete({source:data, highlightClass:'text-danger',treshold:1});
+      });
+    });
+  };
 });
 </script>
diff --git a/res/bootstrap-4-autocomplete.min.js b/res/bootstrap-4-autocomplete.min.js
new file mode 100644 (file)
index 0000000..e581a88
--- /dev/null
@@ -0,0 +1 @@
+!function(u){var n={treshold:4,maximumItems:5,highlightTyped:!0,highlightClass:"text-primary"};function p(e,t,o){var a;if(o.highlightTyped){var n=t.label.toLowerCase().indexOf(e.toLowerCase());a=t.label.substring(0,n)+'<span class="'+function(e){if("string"==typeof e)return e;if(0==e.length)return"";for(var t="",o=0,a=e;o<a.length;o++){var n=a[o];t+=n+" "}return t.substring(0,t.length-1)}(o.highlightClass)+'">'+t.label.substring(n,n+e.length)+"</span>"+t.label.substring(n+e.length,t.label.length)}else a=t.label;return'<button type="button" class="dropdown-item" data-value="'+t.value+'">'+a+"</button>"}function l(e,t){var o=e.val();if(o.length<t.treshold)return e.dropdown("hide"),0;var a=e.next();a.html("");for(var n=0,l=Object.keys(t.source),r=0;r<l.length;r++){var d=l[r],s=t.source[d],i={label:t.label?s[t.label]:d,value:t.value?s[t.value]:s};if(0<=i.label.toLowerCase().indexOf(o.toLowerCase())&&(a.append(p(o,i,t)),0<t.maximumItems&&++n>=t.maximumItems))break}return e.next().find(".dropdown-item").click(function(){e.val(u(this).text()),t.onSelectItem&&t.onSelectItem({value:u(this).data("value"),label:u(this).text()},e[0])}),a.children().length}u.fn.autocomplete=function(e){var t={};u.extend(t,n,e);var o=u(this);o.parent().removeClass("dropdown"),o.removeAttr("data-toggle"),o.removeClass("dropdown-toggle"),o.parent().find(".dropdown-menu").remove(),o.dropdown("dispose"),o.parent().addClass("dropdown"),o.attr("data-toggle","dropdown"),o.addClass("dropdown-toggle");var a=u('<div class="dropdown-menu" ></div>');return t.dropdownClass&&a.addClass(t.dropdownClass),o.after(a),o.dropdown(t.dropdownOptions),this.off("click.autocomplete").click("click.autocomplete",function(e){0==l(o,t)&&(e.stopPropagation(),o.dropdown("hide"))}),this.off("keyup.autocomplete").keyup("keyup.autocomplete",function(){0<l(o,t)?o.dropdown("show"):o.click()}),this}}(jQuery);
\ No newline at end of file
index 6e037ca3ebe9211c518e3a45257c5f6434d6c67b..ac906fe338c4f508881f970bb8eef5699ca9cefc 100644 (file)
@@ -11,8 +11,8 @@ if(!empty($_GET["pid"])){
   if(!empty($_POST["omit"])){
     $db->omitDrug($_POST["omit"]);
   }
-  elseif(!empty($_POST["name"])){
-    $db->addDrug($pid, $_POST["name"], $_POST["dose"], $_POST["route"], $_POST["frequency"], $_POST["date"], $_POST["time"], $_POST["duration"], $_POST["extra-note"]);
+  elseif(!empty($_POST["drug"])){
+    $db->addDrug($pid, $_POST["drug"], $_POST["dose"], $_POST["route"], $_POST["frequency"], $_POST["date"], $_POST["time"], $_POST["duration"], $_POST["extra-note"]);
   }
   $list=$db->getDrugs($pid);
   $view="<form method='post' id='omitter'></form>";
@@ -31,7 +31,7 @@ if(!empty($_GET["pid"])){
         }
       } catch(TypeError $e){}
     }
-    $view=$view."<tr class='".$omit."'><td>".$drug["name"]."</td><td>".$drug["dose"]."</td><td>".$drug["route"]."</td><td>".$drug["frequency"]."</td><td>".date("M j", $drug["start"])."</td><td>".$drug["duration"]."</td><td>".$drug["addl"]."</td><td><button class='btn btn-warning' name='omit' value='".$drug["rowid"]."' form='omitter' ".$omit.">Omit</button></td></tr>";
+    $view=$view."<tr class='".$omit."'><td>".$drug["drug"]."</td><td>".$drug["dose"]."</td><td>".$drug["route"]."</td><td>".$drug["frequency"]."</td><td>".date("M j", $drug["start"])."</td><td>".$drug["duration"]."</td><td>".$drug["addl"]."</td><td><button class='btn btn-warning' name='omit' value='".$drug["rowid"]."' form='omitter' ".$omit.">Omit</button></td></tr>";
   }
   $view=$view."</table>";
   $form=schema2form("forms/drugs.schema.json");