Overview

Namespaces

  • None
  • PHP

Classes

  • BasePresenter
  • CekarnaPresenter
  • ErrorPresenter
  • Model
  • NavstevaPresenter
  • PacientPresenter
  • SignPresenter

Functions

  • callback
  • dump
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Tento soubor je součástí projektu ErNISTo z předmetu A6N33LI Lékařská informatika
  4:  * v 1. ročníku magisterského studia oboru Biomedicínského inženýrství     
  5:  */
  6: 
  7: /**
  8:  * Model je základní službou (services) pro přístup k databázi. Využívá autowritingu pro inicializaci 
  9:  * a většina jeho metod vrací instanci Nette\Database\Table\ActiveRow zapouzdřující jeden řádek z tabulky nebo
 10:  * Nette\Database\Table\Selection pro více řádků.  
 11:  * 
 12:  * @author     Jakub Mottl
 13:  */
 14: 
 15: class Model extends Nette\Object
 16: {
 17:    
 18:     /** @var Nette\Database\Connection */
 19:     public $database;
 20: 
 21:     /** 
 22:     */
 23:     public function __construct(Nette\Database\Connection $database){
 24:           $this->database = $database;
 25:     }
 26:     
 27:    /**
 28:    * Vrací pole ($id => $value) z tabulky $table pro SelectBox seřazené abecedně 
 29:    * @param     string   Název tabulky
 30:    * @return    array
 31:    */
 32:     public function getSelectArray($table){
 33:         return $this->database->table($table)->select('id, nazev')->order('nazev')->fetchPairs('id','nazev'); 
 34:     }
 35:         
 36:    /**
 37:    * Vrací návštěvu podle jejího ID
 38:    * @param     int   ID návštevy
 39:    * @return    Nette\Database\Table\ActiveRow
 40:    */   
 41:     public function getNavsteva($id){
 42:         return $this->database->table('navsteva')->get($id); 
 43:     }
 44:     
 45:    /**
 46:    * Vrací seznam návštěv, které odpovídají zadanému datu.
 47:    * @param     Datetime   Datum podle kterého se mají vybrat návštevy
 48:    * @return    Nette\Database\Table\Selection|NULL
 49:    */
 50:     public function getNavstevaByDate($date){
 51:         return $this->database->table('navsteva')
 52:                 ->where('DATEDIFF(datum, ?) = 0',$date->format($date->format('Y-m-d')))
 53:                 ->order('datum DESC');
 54:     }
 55:   
 56:    /**
 57:    * Vrací seznam všech návštěv pacienta podle jeho ID
 58:    * @param     int   ID pacienta
 59:    * @return    Nette\Database\Table\Selection|NULL
 60:    */   
 61:     public function getNavstevaByPacient($id){
 62:         return $this->database->table('navsteva')->where('pacient_id',$id)->order('datum'); 
 63:     }
 64:     
 65:     /**
 66:    * Vrací všechny návštevy, které vyhovují zadanému řetězci
 67:    * @param     string   Hledaný řetězec
 68:    * @return    Nette\Database\Table\Selection  
 69:    */
 70:     public function getNavstevaByTerm($term){    
 71:     return $this->database->table('navsteva')
 72:                 ->where("datum LIKE ? OR pacient.prijmeni LIKE ? OR pacient_id LIKE ? OR oddeleni.nazev LIKE ? OR pracoviste.nazev LIKE ? OR cislo_mistnosti LIKE ?",
 73:                         '%'.$term.'%','%'.$term.'%','%'.$term.'%','%'.$term.'%','%'.$term.'%','%'.$term.'%')
 74:                 ->order('datum DESC');
 75:     }
 76:     
 77:    /**
 78:    * Vloží novou návštěvu do tabulky a vrátí nový řádek
 79:    * @param     array   Pole hodnot array($column => $value)
 80:    * @return    Nette\Database\Table\ActiveRow
 81:    */
 82:     public function addNavsteva($values){
 83:         return $this->database->table('navsteva')->insert($values); 
 84:     }
 85:    
 86:    /**
 87:    * Vrací diagnozu podle jejího ID
 88:    * @param     int   ID diagnozy
 89:    * @return    Nette\Database\Table\ActiveRow
 90:    */
 91:     public function getDiagnoza($id){
 92:         return $this->database->table('diagnoza')->get($id); 
 93:     }
 94: 
 95:    /**
 96:    * Vloží novou diagnozu do tabulky a vrátí nový řádek
 97:    * @param     array   Pole hodnot array($column => $value)
 98:    * @return    Nette\Database\Table\ActiveRow
 99:    */
100:     public function addDiagnoza($values){
101:         return $this->database->table('diagnoza')->insert($values); 
102:     }
103:    
104:    /**
105:    * Vrací všechny diagnozy, které vyhovují zadanému řetězci
106:    * @param     string   Hledaný řetězec
107:    * @return    Nette\Database\Table\Selection  
108:    */    
109:     public function getDiagnozaByTerm($term){
110:         return $this->database->table('mkn10')->where('nazev LIKE ? OR id LIKE ?',$term.'%',$term.'%')->order('nazev'); 
111:     }
112: 
113:    /**
114:    * Vrací diagnozu podle jejího ID
115:    * @param     int   ID diagnozy
116:    * @return    Nette\Database\Table\ActiveRow
117:    */   
118:     public function getTerapie($id){
119:         return $this->database->table('terapie')->get($id); 
120:     }
121: 
122:    /**
123:    * Vloží novou terapii do tabulky a vrátí nový řádek
124:    * @param     array   Pole hodnot array($column => $value)
125:    * @return    Nette\Database\Table\ActiveRow
126:    */
127:     public function addTerapie($values){
128:         return $this->database->table('terapie')->insert($values); 
129:     }
130:     
131:     /**
132:    * Vrací seznam zdrav. informací podle ID návštěvy
133:    * @param     int   ID pacienta
134:    * @return    Nette\Database\Table\Selection|NULL
135:    */      
136:     public function getInfoByNavsteva($id){
137:         return $this->database->table('zdrav_info')->where('navsteva_id',$id)->fetch(); 
138:     }
139: 
140:    /**
141:    * Vloží nové zdrav. info do tabulky a vrátí nový řádek
142:    * @param     array   Pole hodnot array($column => $value)
143:    * @return    Nette\Database\Table\ActiveRow
144:    */   
145:     public function addInfo($values){
146:         return $this->database->table('zdrav_info')->insert($values); 
147:     }
148: 
149:    /**
150:    * Vrací pacienta podle jejího ID
151:    * @param     int   ID Pacienta
152:    * @return    Nette\Database\Table\ActiveRow|NULL
153:    */      
154:     public function getPacient($id){
155:         return $this->database->table('pacient')->get($id);
156:     }
157:  
158:     /**
159:    * Vrací všechny pacienty, které vyhovují zadanému řetězci
160:    * @param     string   Hledaný řetězec
161:    * @return    Nette\Database\Table\Selection|NULL
162:    */    
163:     public function getPacientByTerm($term){
164:         return $this->database->table('pacient')
165:                 ->where('prijmeni LIKE ? OR id LIKE ? OR jmeno LIKE ? OR ulice LIKE ? OR mesto LIKE ? OR psc LIKE ? OR cp LIKE ? OR pojistovna_id LIKE ?',
166:                         $term.'%',$term.'%',$term.'%',$term.'%',$term.'%',$term.'%',$term.'%',$term.'%')
167:                 ->order('prijmeni'); 
168:     }
169:         
170:    /**
171:    * Vloží nového pacienta do tabulky a vrátí nový řádek
172:    * @param     array   Pole hodnot array($column => $value)
173:    * @return    Nette\Database\Table\ActiveRow
174:    */        
175:     public function addPacient($values){
176:         return $this->database->table('pacient')->insert($values); 
177:     }
178:     
179:    /**
180:    * Připojí zaměstnance k návštěve
181:    * @param     int   ID Návštěvy
182:    * @param     int   ID Návštěvy
183:    * @return    Nette\Database\Table\ActiveRow
184:    */        
185:     public function addZamestnanec($zamestnanec_id, $navsteva_id){
186:         $values = array('zamestnanec_id' => $zamestnanec_id, 'navsteva_id' => $navsteva_id);
187:         return $this->database->table('navsteva_has_zamestnanec')->insert($values); 
188:     }    
189:         
190:    /**
191:    * Odebere zaměstnance od návštěvy
192:    * @param     int   ID Návštěvy
193:    * @param     int   ID Návštěvy
194:    * @return    Nette\Database\Table\ActiveRow
195:    */           
196:     public function deleteZamestnanec($zamestnanec_id, $navsteva_id){
197:         $values = array('zamestnanec_id' => $zamestnanec_id, 'navsteva_id' => $navsteva_id);
198:         return $this->database->table('navsteva_has_zamestnanec')->where($values)->delete(); 
199:     }    
200:    
201:     /**
202:    * Vrací všechny zaměstnance, kteří vyhovují zadanému řetězci
203:    * @param     string   Hledaný řetězec
204:    * @return    Nette\Database\Table\Selection|NULL
205:    */
206:     public function getZamestnanecByTerm($term){
207:         return $this->database->table('zamestnanec')
208:                 ->where('prijmeni LIKE ? OR titul_pred LIKE ? OR titul_za LIKE ? OR jmeno LIKE ? OR oddeleni.nazev LIKE ?',
209:                         $term.'%',$term.'%',$term.'%',$term.'%',$term.'%')
210:                 ->order('prijmeni'); 
211:     }
212:     
213: //    public function createAuthenticatorService(){
214: //        return new Authenticator($this->database->table('betausers'));
215: //    }
216: 
217: }
218: 
ErNISTo API documentation generated by ApiGen 2.6.1