]>
Softwares of Agnibho - simpleipd.git/blob - lib/functions.php
2 function resolveRange($arr, $val=false){
4 if(!empty($arr[0]) && $val<$arr[0]){
7 elseif(!empty($arr[1]) && $val>$arr[1]){
28 if(!empty($arr[0]) && !empty($arr[1])){
31 return implode("",$part);
34 function schema2form($file, $pid=null, $id=null, $cat=null, $data=null, $time=null){
36 $schema=json_decode(file_get_contents($file));
39 if(!empty($pid) && !empty($id) && !empty($cat)){
40 $data=json_decode($db->getData($pid, $id, $cat)->fetchArray()["data"]);
42 elseif(!empty($pid) && $file=="forms/admission.schema.json"){
43 $data=json_decode($db->getAdmissionData($pid)->fetchArray()["data"]);
46 elseif(!empty($pid) && $file=="forms/history.schema.json"){
47 $data=json_decode($db->getHistory($pid)->fetchArray()["history"]);
51 $form="<form method='post'>";
52 $form=$form."<input type='hidden' name='form' value='".str_replace(["forms/",".schema.json"], "", $file)."'>";
54 foreach($schema->properties
as $field=>$prop){
55 if($prop->type
== "integer") $prop->type
="number";
56 if($prop->type
== "string") $prop->type
="text";
57 if(!empty($data->$field)){
58 $value="value='".$data->$field."'";
59 $value2=$data->$field;
61 elseif(!empty($time) && $field=="date"){
62 $value="value='".date("Y-m-d", $time)."'";
63 $value2=date("Y-m-d", $time);
65 elseif(!empty($time) && $field=="time"){
66 $value="value='".date("H:i", $time)."'";
67 $value2=date("H:i", $time);
73 if(in_array($field, $schema->required
)){
79 if(isSet($prop->format
)){
87 $form=$form."<label class='form-label' for='".$field."'>".$prop->description
."</label>";
88 if(isSet($prop->enum
)){
89 $form=$form."<select class='form-control' ".$req." name='".$field."' id='".$field."'>";
90 foreach($prop->enum
as $opt){
92 $form=$form."<option selected>".$opt."</option>";
95 $form=$form."<option>".$opt."</option>";
98 $form=$form."</select>";
100 elseif(isSet($prop->format
) && $prop->format
=="textarea"){
101 $form=$form."<textarea class='form-control' name='".$field."' id='".$field."'>".$value2."</textarea>";
103 elseif($field=="pid"){
104 $form=$form."<input class='form-control' ".$lockpid." ".$req." type='".$type."' step='any' name='".$field."' id='".$field."' ".$value.">";
107 $form=$form."<input class='form-control' ".$req." type='".$type."' step='any' name='".$field."' id='".$field."' ".$value.">";
109 $form=$form."</div>";
112 if(!empty($data->extra_note
)){
113 $extra_note=$data->extra_note
;
118 $form=$form."<div><label class='form-label' for='extra_note'>Extra Notes</label><textarea class='form-control' name='extra_note' id='extra_note'>".$extra_note."</textarea></div>";
119 $form=$form."<button class='btn btn-primary mt-3' type='submit'>Save</button>";
120 $form=$form."</form>";
124 function getInfo($pid){
126 $info="<table class='table'>";
127 $info=$info."<tr><td>ID</td><td>".$pid."</td></tr>";
128 $info=$info."<tr><td>Name</td><td id='info-name'>".$db->getName($pid)->fetchArray()["name"]."</td></tr>";
129 $info=$info."<tr><td>Age</td><td id='info-age'>".$db->getAge($pid)->fetchArray()["age"]."</td></tr>";
130 $info=$info."<tr><td>Sex</td><td id='info-sex'>".$db->getSex($pid)->fetchArray()["sex"]."</td></tr>";
131 $info=$info."<tr><td>Bed</td><td>".$db->getWard($pid)->fetchArray()["ward"]."-".$db->getBed($pid)->fetchArray()["bed"]."</td></tr>";
132 $info=$info."<tr><td>Diagnosis</td><td>".$db->getDiagnosis($pid)->fetchArray()["diagnosis"]."</td></tr>";
133 $info=$info."</table>";
137 function viewData($data, $edit=null){
139 $data=json_decode($data);
140 if(!empty($data->form
)){
141 $schema=json_decode(file_get_contents("forms/".$data->form
.".schema.json"));
144 $view="<table class='table'>";
145 if(!empty($schema->description
)){
146 $description=$schema->description
;
151 if(!empty($data->date
)){
152 if(!empty($data->time
)){
153 $date=date("M d, Y h:i a", strtotime($data->date
." ".$data->time
));
162 if(!empty($data->rdate
)){
163 if(!empty($data->rtime
)){
164 $rdate=date("M d, Y h:i a", strtotime($data->rdate
." ".$data->rtime
));
173 $view=$view."<tr><th class='w-25'>".$description."</th><th>".$date."</th>";
174 $view=$view."<th></th>";
177 $view=$view."<tr><td class='w-25'>Reported</td><td>".$rdate."</td>";
178 $view=$view."<td></td>";
181 foreach($data as $field=>$value){
183 if(!empty($schema->properties
->$field->range
)){
184 $warn=resolveRange($schema->properties
->$field->range
, $value);
189 if(!empty($value) && $field!="form" && $field!="date" && $field!="time" && $field!="rdate" && $field!="rtime"){
190 if(!empty($schema->properties
->$field)){
191 $view=$view."<tr><td>".$schema->properties
->$field->description
."</td><td class='".$warn."'>".$value."</td>";
192 if(!empty($schema->properties
->$field->range
)){
193 $view=$view."<td>".resolveRange($schema->properties
->$field->range
)."</td>";
196 $view=$view."<td></td>";
200 elseif($field=="extra_note"){
201 $view=$view."<tr><td>Extra Notes</td><td><pre>".$value."</pre></td><td></td></tr>";
204 $view=$view."<tr><td>".$field."</td><td>".$value."</td><td></td></tr>";
209 $view=$view."<tr><td colspan='3'><a href='".$edit."'>Edit</a>";
211 $view=$view."</table>";
219 function viewAntibiogram($data, $edit=null){
220 $data=json_decode($data);
221 $view="<table class='table table-striped'>";
222 $view=$view."<tr><th>Vitek Report</th><th colspan='2'>".$data->date
."</th></tr>";
223 if(!empty($data->rdate
)){
224 $view=$view."<tr><td>Reported on</td><td colspan='2'>".$data->rdate
."</td></tr>";
226 $view=$view."<tr><td>Sample</td><td colspan='2'>".$data->sample
."</td></tr>";
227 $view=$view."<tr><td>Lab ID</td><td colspan='2'>".$data->labid
."</td></tr>";
228 $view=$view."<tr><td>Organism</td><td colspan='2'>".$data->organism
."</td></tr>";
229 $view=$view."<tr><th>Antibiotic</th><th>MIC</th><th>Interpretation</th>";
230 foreach($data as $k=>$v){
232 $view=$view."<tr><td>".$v->name
."</td><td>".$v->mic
."</td><td>".$v->interpretation
."</td></tr>";
235 if(!empty($data->note
)){
236 $view=$view."<tr><td>Note</td><td colspan='2'>".$data->note
."</td></tr>";
239 $view=$view."<tr><td colspan='2'><a href='".$edit."'>Edit</a></td></tr>";
241 $view=$view."</table>";
245 function view_drug($file){
247 $druglist=json_decode(file_get_contents($file));
252 $view="<form method='post' id='omitter'></form><table class='table'>";
253 $view=$view."<tr><th>Drug</th><th>Dose</th><th>Route</th><th>Frequency</th><th>Duration</th></tr>";
254 foreach($druglist as $id=>$drug){
256 $omit="style='display:none'";
261 $view=$view."<tr><td>".$drug->drug
."</td><td>".$drug->dose
."</td><td>".$drug->route
."</td><td>".$drug->freq
."</td><td>".$drug->duration
."</td><td>".$drug->note
."</td><td><button name='omit' value='".$id."' form='omitter' ".$omit.">Omit</button></td></tr>";
263 $view=$view."</table>";