]> Softwares of Agnibho - simpleipd.git/blobdiff - lib/db.php
Bugfix
[simpleipd.git] / lib / db.php
index 428286dcc8684e748acc53c5b64910a475a19cf4..bcb192af9e04c61cf587008cd73b8238a25fc501 100644 (file)
@@ -33,19 +33,21 @@ class DB extends SQLite3 {
   function admit($post){
     global $log;
     if(!checkAccess("admission", "dbSet")) return false;
+    $post["name"]=ucwords(strtolower($post["name"]));
     $query=$this->prepare("SELECT count(rowid) FROM patients WHERE pid=:pid");
     $query->bindValue(":pid", $post["pid"]);
     $exist=$query->execute();
     if($exist->fetchArray()[0]==0){
-      $stmt=$this->prepare("INSERT INTO patients (pid,name,age,sex,status,vp,ward,bed,data) VALUES (:pid,:name,:age,:sex,:status,:vp,:ward,:bed,:data);");
+      $stmt=$this->prepare("INSERT INTO patients (pid,name,age,sex,admission,status,vp,ward,bed,data) VALUES (:pid,:name,:age,:sex,:admission,:status,:vp,:ward,:bed,:data);");
     }
     else{
-      $stmt=$this->prepare("UPDATE patients SET name=:name,age=:age,sex=:sex,ward=:ward,bed=:bed,vp=:vp,data=:data WHERE pid=:pid;");
+      $stmt=$this->prepare("UPDATE patients SET name=:name,age=:age,sex=:sex,admission=:admission,ward=:ward,bed=:bed,vp=:vp,data=:data WHERE pid=:pid;");
     }
     $stmt->bindValue(":pid", $post["pid"]);
     $stmt->bindValue(":name", $post["name"]);
     $stmt->bindValue(":age", $post["age"]);
     $stmt->bindValue(":sex", $post["sex"]);
+    $stmt->bindValue(":admission", strtotime($post["date"]." ".$post["time"]));
     $stmt->bindValue(":status", "admitted");
     $stmt->bindValue(":ward", $post["ward"]);
     $stmt->bindValue(":bed", $post["bed"]);
@@ -73,6 +75,24 @@ class DB extends SQLite3 {
     $stmt->execute();
     $log->log($pid, "history", json_encode($post));
   }
+  function advice($post, $pid){
+    global $log;
+    if(!checkAccess("treatment", "dbSet")) return false;
+    $query=$this->prepare("SELECT count(rowid) FROM advice WHERE pid=:pid");
+    $query->bindValue(":pid", $pid);
+    $exist=$query->execute();
+    if($exist->fetchArray()[0]==0){
+      $stmt=$this->prepare("INSERT INTO advice (pid,time,data) VALUES (:pid,:time,:data);");
+    }
+    else{
+      $stmt=$this->prepare("UPDATE advice SET pid=:pid,time=:time,data=:data WHERE pid=:pid;");
+    }
+    $stmt->bindValue(":pid", $pid);
+    $stmt->bindValue(":time", time());
+    $stmt->bindValue(":data", json_encode($post));
+    $stmt->execute();
+    $log->log($pid, "advice", json_encode($post));
+  }
   function addPhysician($post, $pid){
     global $log;
     if(!checkAccess("physician", "dbSet")) return false;
@@ -173,6 +193,15 @@ class DB extends SQLite3 {
     $stmt->execute();
     $log->log(null, "drug_omitted", $id);
   }
+  function deleteDrug($id){
+    global $log;
+    if(!checkAccess("treatment", "dbSet")) return false;
+    $stmt=$this->prepare("UPDATE treatment SET omit=:omit WHERE rowid=:id;");
+    $stmt->bindValue(":omit", -1);
+    $stmt->bindValue(":id", $id);
+    $stmt->execute();
+    $log->log(null, "drug_deleted", $id);
+  }
   function giveDrug($id, $given){
     global $log;
     if(!checkAccess("nursing", "dbSet")) return false;
@@ -238,9 +267,10 @@ class DB extends SQLite3 {
   function setDischarged($pid){
     global $log;
     if(!checkAccess("discharge", "dbSet")) return false;
-    $stmt=$this->prepare("UPDATE patients SET status=:discharged WHERE pid=:pid;");
+    $stmt=$this->prepare("UPDATE patients SET status=:discharged,departure=:time WHERE pid=:pid;");
     $stmt->bindValue(":pid", $pid);
     $stmt->bindValue(":discharged", "discharged");
+    $stmt->bindValue(":time", time());
     $stmt->execute();
     $log->log($pid, "discharged", null);
   }
@@ -252,16 +282,19 @@ class DB extends SQLite3 {
     $stmt->bindValue(":time", strtotime($post["date"].$post["time"]));
     $stmt->bindValue(":data", json_encode($post));
     $stmt->execute();
-    $stmt=$this->prepare("UPDATE patients SET status='expired' WHERE pid=:pid;");
+    $stmt=$this->prepare("UPDATE patients SET status=:expired,departure=:time WHERE pid=:pid;");
     $stmt->bindValue(":pid", $pid);
+    $stmt->bindValue(":expired", "expired");
+    $stmt->bindValue(":time", time());
     $stmt->execute();
     $log->log($pid, "death_declare", json_encode($post));
   }
   function getDrugs($pid){
     global $log;
     if(!checkAccess("treatment", "dbGet")) return false;
-    $stmt=$this->prepare("SELECT rowid,* FROM treatment WHERE pid=:pid ORDER BY omit,start;");
+    $stmt=$this->prepare("SELECT rowid,* FROM treatment WHERE pid=:pid AND omit!=:omit ORDER BY omit,drug,start;");
     $stmt->bindValue(":pid", $pid);
+    $stmt->bindValue(":omit", -1);
     $result=$stmt->execute();
     return($result);
   }
@@ -282,7 +315,7 @@ class DB extends SQLite3 {
     $result=$stmt->execute();
     return($result);
   }
-  function getAdvice($pid){
+  function getDischargeAdvice($pid){
     global $log;
     if(!checkAccess("discharge", "dbGet")) return false;
     $stmt=$this->prepare("SELECT rowid,* FROM discharge WHERE pid=:pid;");
@@ -357,14 +390,21 @@ class DB extends SQLite3 {
   function getPatientList(){
     global $log;
     if(!checkAccess("info", "dbGet")) return false;
-    $stmt=$this->prepare("SELECT pid,ward,bed,name,diagnosis,status FROM patients ORDER BY pid;");
+    $stmt=$this->prepare("SELECT pid,ward,bed,name,diagnosis,status FROM patients ORDER BY admission;");
     $result=$stmt->execute();
     return($result);
   }
   function getAdmittedPatientList(){
     global $log;
     if(!checkAccess("info", "dbGet")) return false;
-    $stmt=$this->prepare("SELECT pid,ward,bed,name,diagnosis FROM patients WHERE status='admitted' ORDER BY ward,bed;");
+    $stmt=$this->prepare("SELECT pid,ward,bed,name,diagnosis FROM patients WHERE status='admitted' ORDER BY UPPER(ward),bed;");
+    $result=$stmt->execute();
+    return($result);
+  }
+  function getArchivedPatientList(){
+    global $log;
+    if(!checkAccess("info", "dbGet")) return false;
+    $stmt=$this->prepare("SELECT pid,ward,bed,name,diagnosis,status FROM patients WHERE status!='admitted' ORDER BY admission;");
     $result=$stmt->execute();
     return($result);
   }
@@ -374,6 +414,7 @@ class DB extends SQLite3 {
     $stmt=$this->prepare("SELECT requisition.rowid,requisition.* FROM requisition INNER JOIN patients ON requisition.pid=patients.pid WHERE requisition.status!=:status AND patients.status=:admitted ORDER BY requisition.room,requisition.test;");
     $stmt->bindValue(":status", "done");
     $stmt->bindValue(":admitted", "admitted");
+    $stmt->bindValue(":today", time());
     $result=$stmt->execute();
     return($result);
   }
@@ -425,6 +466,14 @@ class DB extends SQLite3 {
     $result=$stmt->execute();
     return($result);
   }
+  function getAdvice($pid){
+    global $log;
+    if(!checkAccess("treatment", "dbGet")) return false;
+    $stmt=$this->prepare("SELECT data FROM advice WHERE pid=:pid;");
+    $stmt->bindValue(":pid", $pid);
+    $result=$stmt->execute();
+    return($result);
+  }
   function getData($pid, $id, $cat){
     global $log;
     if($cat=="physician"){