Advertisement
Guest User

Untitled

a guest
Oct 31st, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 13.97 KB | None | 0 0
  1. <?php
  2.     /*
  3.     ######################## CLASS FUNCTION HEADERS ############################
  4.     GetAllEndoscopes()
  5.     InsertNewExam($userID, $currentCountry, $currentCity, $addressSince)
  6.     ############################################################################
  7.     */
  8.     abstract class DaoUsers
  9.     {
  10.         // =====================================================================
  11.         //  INSERTION FUNCTIONS
  12.         // =====================================================================
  13.         static public function InsertNewRequest($name, $email, $just = null, $institution)
  14.         {
  15.             $dal = DataAccessLayer::Instance();
  16.            
  17.             $query =
  18.             "   INSERT INTO ".$dal->get_dbschema().".request
  19.                 (
  20.                     name, email, justification, institution
  21.                 )
  22.                 VALUES
  23.                 (
  24.                     :name, :email, :justification, :institution
  25.                 )";
  26.                
  27.             //echo $query;
  28.  
  29.             $stmt = $dal->get_pdo()->prepare($query);
  30.            
  31.             if($stmt->execute(array(':name' => $name,
  32.                                     ':email'=> $email,
  33.                                     ':justification'=> $just,
  34.                                     ':institution'=> $institution)))
  35.             {
  36.                 return true;
  37.                 //return $dal->get_pdo()->lastInsertId();
  38.             }
  39.  
  40.             return false;
  41.         }
  42.        
  43.         static public function InsertInvites($email, $name, $institution, $accepted)
  44.         {
  45.             $dal = DataAccessLayer::Instance();
  46.            
  47.             $query =
  48.             "   INSERT INTO ".$dal->get_dbschema().".request
  49.                 (
  50.                     name, email, institution, accepted
  51.                 )
  52.                 VALUES
  53.                 (
  54.                     :name, :email, :institution, :accepted
  55.                 )";
  56.                
  57.             //echo $query;
  58.  
  59.             $stmt = $dal->get_pdo()->prepare($query);
  60.            
  61.             if($stmt->execute(array(':name'         => $name,
  62.                                     ':email'        => $email,
  63.                                     ':institution'  => $institution,
  64.                                     ':accepted'     => $accepted)))
  65.             {
  66.                 return $dal->get_pdo()->lastInsertId();
  67.             }
  68.  
  69.             return false;
  70.         }
  71.                
  72.         static public function InsertUserData($name, $age, $yearsOfExp, $email, $username, $password, $entityID, $roleID)
  73.         {
  74.             $dal = DataAccessLayer::Instance();
  75.            
  76.             $query =
  77.             "   INSERT INTO ".$dal->get_dbschema().".user
  78.                 (
  79.                     name, age, yearsOfExperience, username,
  80.                     password, email, entityID, roleID
  81.                 )
  82.                 VALUES
  83.                 (
  84.                     :name, :age, :yearsOfExperience, :username,
  85.                     :password, :email, :entityID, :roleID
  86.                 )";
  87.                
  88.             //echo $query;
  89.  
  90.             $stmt = $dal->get_pdo()->prepare($query);
  91.            
  92.             if($stmt->execute(array(':name'             => $name,
  93.                                     ':age'              => $age,
  94.                                     ':yearsOfExperience'=> $yearsOfExp,
  95.                                     ':email'            => $email,
  96.                                     ':username'         => $username,
  97.                                     ':password'         => $password,
  98.                                     ':entityID'         => $entityID,
  99.                                     ':roleID'           => $roleID )))
  100.             {
  101.                 return true;
  102.                 //return $dal->get_pdo()->lastInsertId();
  103.             }
  104.  
  105.             return false;
  106.         }
  107.         // =====================================================================
  108.         //  UPDATE/EDIT FUNCTIONS
  109.         // =====================================================================   
  110.         static public function UpdateUserData($ID, $name, $email, $age, $exp, $entity, $role)
  111.         {
  112.             $dal = DataAccessLayer::Instance();
  113.            
  114.             $query =
  115.             "   UPDATE " .
  116.                     $dal->get_dbschema().".user
  117.                 SET
  118.                     name                = :name,
  119.                     email               = :email,
  120.                     age                 = :age,
  121.                     yearsOfExperience   = :exp,
  122.                     entityID            = :entity,
  123.                     roleID              = :role
  124.                 WHERE
  125.                     ID = :ID";
  126.  
  127.             $stmt = $dal->get_pdo()->prepare($query);
  128.            
  129.             if ($stmt->execute(array(':ID'      => $ID,
  130.                                      ':name'    => $name,
  131.                                      ':email'   => $email,
  132.                                      ':age'     => $age,
  133.                                      ':exp'     => $exp,
  134.                                      ':entity'  => $entity,
  135.                                      ':role'    => $role )))
  136.             {
  137.                 return true;
  138.             }
  139.         }
  140.                    
  141.         static public function UpdateRequests($requestID, $accept)
  142.         {
  143.             $dal = DataAccessLayer::Instance();
  144.            
  145.             $query =
  146.             "   UPDATE " .
  147.                     $dal->get_dbschema().".request
  148.                 SET
  149.                     accepted        = :accept
  150.                 WHERE
  151.                     ID = :ID";
  152.  
  153.             $stmt = $dal->get_pdo()->prepare($query);
  154.            
  155.             if ($stmt->execute(array(':ID'      => $requestID,
  156.                                      ':accept'  => $accept)))
  157.             {
  158.                 if ($accept == true)
  159.                 {
  160.                     $query2 =
  161.                         "   SELECT
  162.                                 email
  163.                             FROM " .
  164.                                 $dal->get_dbschema().".request
  165.                             WHERE
  166.                                 ID = :ID";
  167.  
  168.                     $stmt2 = $dal->get_pdo()->prepare($query2);
  169.                    
  170.                     if ($stmt2->execute(array(':ID'     => $requestID)))
  171.                     {
  172.                         $resultArray = $stmt2->fetchAll(PDO::FETCH_ASSOC);
  173.                         return $resultArray;
  174.                     }
  175.                 }
  176.             }
  177.         }
  178.    
  179.         // =====================================================================
  180.         //  GETTER FUNCTIONS
  181.         // =====================================================================
  182.         static public function GetUserByID($ID)
  183.         {
  184.             $dal = DataAccessLayer::Instance();
  185.  
  186.             $query =
  187.             "   SELECT
  188.                     u.ID, u.name, u.age, u.yearsOfExperience,
  189.                     u.email,
  190.                    
  191.                     u.roleID,
  192.                    
  193.                     e.designation as entityName, e.ID as entityID
  194.                 FROM " .
  195.                     $dal->get_dbschema().".user AS u
  196.                 INNER JOIN ".
  197.                     $dal->get_dbschema().".entity AS e
  198.                 ON
  199.                     e.ID = u.entityID
  200.                 WHERE
  201.                     u.ID = :ID";
  202.  
  203.             $stmt = $dal->get_pdo()->prepare($query);
  204.  
  205.             if($stmt->execute(array(':ID' => $ID)))
  206.             {
  207.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  208.                 return $resultArray;
  209.             }
  210.  
  211.             return false;
  212.         }
  213.        
  214.         static public function GetUsers($entityID)
  215.         {
  216.             $dal = DataAccessLayer::Instance();
  217.  
  218.             $query =
  219.             "   SELECT
  220.                     u.ID, u.name, u.age, u.yearsOfExperience,
  221.                     u.email, u.password, u.username, u.roleID,
  222.                    
  223.                     e.designation as entityName, e.ID as entityID
  224.                 FROM " .
  225.                     $dal->get_dbschema().".user AS u
  226.                 INNER JOIN ".
  227.                     $dal->get_dbschema().".entity AS e
  228.                 ON
  229.                     e.ID = u.entityID
  230.                 WHERE
  231.                     u.entityID = :entityID";
  232.  
  233.             $stmt = $dal->get_pdo()->prepare($query);
  234.  
  235.             if($stmt->execute(array(':entityID' => $entityID)))
  236.             {
  237.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  238.                 return $resultArray;
  239.             }
  240.  
  241.             return false;
  242.         }
  243.        
  244.         static public function GetAllUsers()
  245.         {
  246.             $dal = DataAccessLayer::Instance();
  247.  
  248.             $query =
  249.             "   SELECT
  250.                     u.ID, u.name, u.age, u.yearsOfExperience,
  251.                     u.email, u.password, u.username, u.roleID,
  252.                    
  253.                     e.designation as entityName, e.ID as entityID
  254.                 FROM " .
  255.                     $dal->get_dbschema().".user AS u
  256.                 INNER JOIN ".
  257.                     $dal->get_dbschema().".entity AS e
  258.                 ON
  259.                     e.ID = u.entityID";
  260.  
  261.             $stmt = $dal->get_pdo()->prepare($query);
  262.  
  263.             if($stmt->execute())
  264.             {
  265.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  266.                 return $resultArray;
  267.             }
  268.  
  269.             return false;
  270.         }
  271.        
  272.         static public function CheckUsernameExists($username)
  273.         {
  274.             $dal = DataAccessLayer::Instance();
  275.  
  276.             $query =
  277.             "   SELECT
  278.                     *
  279.                 FROM " .
  280.                     $dal->get_dbschema().".user
  281.                 WHERE
  282.                     username = :username";
  283.  
  284.             $stmt = $dal->get_pdo()->prepare($query);
  285.  
  286.             if($stmt->execute(array(':username' => $username)))
  287.             {
  288.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  289.                
  290.                 if (!empty($resultArray))
  291.                 {
  292.                     return true;
  293.                 }
  294.                
  295.             }
  296.  
  297.             return false;
  298.         }
  299.        
  300.         static public function CheckLogin($password, $username)
  301.         {
  302.             $dal = DataAccessLayer::Instance();
  303.  
  304.             $query =
  305.             "   SELECT
  306.                     u.ID, u.email, u.name, u.username, u.roleID,
  307.                    
  308.                     u.entityID,
  309.                    
  310.                     e.designation AS entityName
  311.                 FROM " .
  312.                     $dal->get_dbschema().".user  AS u
  313.                 INNER JOIN " .
  314.                     $dal->get_dbschema().".entity AS e
  315.                 ON
  316.                     e.ID = u.entityID
  317.                 WHERE
  318.                     u.password = :pass
  319.                 AND
  320.                     u.username = :username";
  321.  
  322.             $stmt = $dal->get_pdo()->prepare($query);
  323.  
  324.             if($stmt->execute(array(':pass'     => $password,
  325.                                     ':username' => $username)))
  326.             {
  327.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  328.                
  329.                 if (!empty($resultArray))
  330.                 {
  331.                     return $resultArray[0];
  332.                 }
  333.                
  334.             }
  335.  
  336.             return false;
  337.         }
  338.        
  339.         static public function GetPatientByLocalID($ID)
  340.         {
  341.             $dal = DataAccessLayer::Instance();
  342.  
  343.             $query =
  344.             "   SELECT
  345.                     p.ID AS patientID
  346.                 FROM " .
  347.                     $dal->get_dbschema().".patient_ehr AS p
  348.                 WHERE
  349.                     localID = :ID";
  350.  
  351.             $stmt = $dal->get_pdo()->prepare($query);
  352.  
  353.             if($stmt->execute(array(':ID' => $ID)))
  354.             {
  355.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  356.                 if (!empty($resultArray))
  357.                     return $resultArray[0];
  358.                 else
  359.                     return false;
  360.             }
  361.  
  362.             return false;
  363.         }
  364.        
  365.         static public function GetRequestInfo($ID)
  366.         {
  367.             $dal = DataAccessLayer::Instance();
  368.  
  369.             $query =
  370.             "   SELECT
  371.                     email, name, institution, requestDate
  372.                 FROM " .
  373.                     $dal->get_dbschema().".request
  374.                 WHERE
  375.                     ID = :ID";
  376.  
  377.             $stmt = $dal->get_pdo()->prepare($query);
  378.  
  379.             if($stmt->execute(array(':ID' => $ID)))
  380.             {
  381.                 $resultArray = $stmt->fetch(PDO::FETCH_ASSOC);
  382.                 return $resultArray;
  383.             }
  384.  
  385.             return false;
  386.         }
  387.        
  388.         static public function CountPendingRequests()
  389.         {
  390.             $dal = DataAccessLayer::Instance();
  391.  
  392.             $query =
  393.                 "   SELECT count(*)
  394.                     FROM " .
  395.                         $dal->get_dbschema().".request
  396.                     WHERE
  397.                         accepted is NULL";
  398.                    
  399.  
  400.             $stmt = $dal->get_pdo()->prepare($query);
  401.            
  402.            
  403.             if($stmt->execute())
  404.             {
  405.                 $resultArray = $stmt->fetch(PDO::FETCH_ASSOC);
  406.                
  407.                 return $resultArray['count(*)'];
  408.             }
  409.  
  410.             return false;
  411.         }
  412.        
  413.         static public function CountPendingRequestsByEntity($entity)
  414.         {
  415.             $dal = DataAccessLayer::Instance();
  416.  
  417.             $query =
  418.                 "   SELECT count(*)
  419.                     FROM " .
  420.                         $dal->get_dbschema().".request
  421.                     WHERE
  422.                         accepted is NULL
  423.                     AND
  424.                         institution = :entity";
  425.                    
  426.  
  427.             $stmt = $dal->get_pdo()->prepare($query);
  428.            
  429.            
  430.             if($stmt->execute(array(':entity' => $entity)))
  431.             {
  432.                 $resultArray = $stmt->fetch(PDO::FETCH_ASSOC);
  433.                
  434.                 return $resultArray['count(*)'];
  435.             }
  436.  
  437.             return false;
  438.         }
  439.        
  440.         static public function GetAllPendingRequests()
  441.         {
  442.             $dal = DataAccessLayer::Instance();
  443.  
  444.             $query =
  445.                 "   SELECT
  446.                         *
  447.                     FROM " .
  448.                         $dal->get_dbschema().".request
  449.                     WHERE
  450.                         accepted is NULL";
  451.                    
  452.  
  453.             $stmt = $dal->get_pdo()->prepare($query);
  454.            
  455.            
  456.             if($stmt->execute())
  457.             {
  458.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  459.                
  460.                 return $resultArray;
  461.             }
  462.  
  463.             return false;
  464.         }
  465.        
  466.         static public function GetAllPendingRequestsByEntity($entity)
  467.         {
  468.             $dal = DataAccessLayer::Instance();
  469.  
  470.             $query =
  471.                 "   SELECT
  472.                         *
  473.                     FROM " .
  474.                         $dal->get_dbschema().".request
  475.                     WHERE
  476.                         accepted is NULL
  477.                     AND
  478.                         institution = :entity";
  479.                    
  480.  
  481.             $stmt = $dal->get_pdo()->prepare($query);
  482.            
  483.            
  484.             if($stmt->execute(array(':entity' => $entity)))
  485.             {
  486.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  487.                
  488.                 return $resultArray;
  489.             }
  490.  
  491.             return false;
  492.         }
  493.        
  494.         static public function GetEntity($ID)
  495.         {
  496.             $dal = DataAccessLayer::Instance();
  497.  
  498.             $query =
  499.                 "   SELECT
  500.                         institution
  501.                     FROM " .
  502.                         $dal->get_dbschema().".request
  503.                     WHERE
  504.                         ID = :ID";
  505.                    
  506.  
  507.             $stmt = $dal->get_pdo()->prepare($query);
  508.            
  509.            
  510.             if($stmt->execute(array(':ID' => $ID)))
  511.             {
  512.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  513.                
  514.                 return $resultArray[0];
  515.             }
  516.  
  517.             return false;
  518.         }
  519.        
  520.         static public function GetPatientData($examID)
  521.         {
  522.             $dal = DataAccessLayer::Instance();
  523.  
  524.             $query =
  525.                 "   SELECT
  526.                         p.initials, mg.name AS gender,
  527.                        
  528.                         p.smoke, p.drinks, p.birthDate,
  529.                         mc.cityName AS city, mct.countryName AS country, p.localID,
  530.                         e.addressHowLongYears, p.ID
  531.                     FROM " .
  532.                         $dal->get_dbschema().".patient_ehr AS p
  533.                     INNER JOIN " .
  534.                         $dal->get_dbschema().".exam AS e
  535.                     ON
  536.                         e.patientID = p.ID
  537.                     INNER JOIN " .
  538.                         $dal->get_dbschema().".mf_gender AS mg
  539.                     ON
  540.                         mg.ID = p.gender
  541.                     LEFT OUTER JOIN " .
  542.                         $dal->get_dbschema().".mf_city AS mc
  543.                     ON
  544.                         mc.ID = p.birthCity
  545.                     LEFT OUTER JOIN " .
  546.                         $dal->get_dbschema().".mf_country AS mct
  547.                     ON
  548.                         mct.ID = p.birthCountry
  549.                     WHERE
  550.                         e.ID = :ID";
  551.  
  552.             $stmt = $dal->get_pdo()->prepare($query);
  553.            
  554.            
  555.             if($stmt->execute(array(':ID' => $examID)))
  556.             {
  557.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  558.                
  559.                 return $resultArray[0];
  560.             }
  561.  
  562.             return false;
  563.         }
  564.        
  565.         static public function GetAddress($examID)
  566.         {
  567.             //var_dump($examID);
  568.             $dal = DataAccessLayer::Instance();
  569.  
  570.             $query =
  571.                 "   SELECT
  572.                         mc.cityName AS city,
  573.                         mct.countryName AS country
  574.                     FROM " .
  575.                         $dal->get_dbschema().".exam AS e
  576.                     LEFT OUTER JOIN " .
  577.                         $dal->get_dbschema().".mf_city AS mc
  578.                     ON
  579.                         mc.ID = e.addressCity
  580.                     LEFT OUTER JOIN " .
  581.                         $dal->get_dbschema().".mf_country AS mct
  582.                     ON
  583.                         mct.ID = e.addressCountry
  584.                     WHERE
  585.                         e.ID = :ID";
  586.  
  587.             $stmt = $dal->get_pdo()->prepare($query);
  588.            
  589.            
  590.             if($stmt->execute(array(':ID' => $examID)))
  591.             {
  592.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  593.                 //var_dump($resultArray);
  594.                 return $resultArray[0];
  595.             }
  596.  
  597.             return false;
  598.         }
  599.        
  600.         static public function GetEmailAdminEntity($entity)
  601.         {
  602.             $dal = DataAccessLayer::Instance();
  603.  
  604.             $query =
  605.                 "   SELECT
  606.                         u.email
  607.                     FROM " .
  608.                         $dal->get_dbschema().".user AS u
  609.                     INNER JOIN " .
  610.                         $dal->get_dbschema().".entity AS e
  611.                     ON
  612.                         e.ID = u.entityID
  613.                     WHERE
  614.                         e.designation = :desc
  615.                     AND
  616.                         u.roleID = 2";
  617.                    
  618.  
  619.             $stmt = $dal->get_pdo()->prepare($query);
  620.            
  621.            
  622.             if($stmt->execute(array(':desc' => $entity)))
  623.             {
  624.                 $resultArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
  625.                
  626.                 return $resultArray[0]['email'];
  627.             }
  628.  
  629.             return false;
  630.         }
  631.        
  632.         // =====================================================================
  633.         //  DELETE FUNCTIONS
  634.         // =====================================================================
  635.         static public function DeleteUser($userID)
  636.         {
  637.             $dal = DataAccessLayer::Instance();
  638.            
  639.             $query =
  640.             "   DELETE FROM " .
  641.                     $dal->get_dbschema().".user
  642.                 WHERE
  643.                     ID = :ID";
  644.            
  645.             $stmt = $dal->get_pdo()->prepare($query);
  646.            
  647.             if($stmt->execute(array(':ID'   => $userID)))
  648.             {
  649.                 return true;
  650.             }
  651.  
  652.             return false;
  653.         }  
  654.     }
  655. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement