Example #1
0
 /**
  * Iterate through each Organism in the World, created as a 2D array.
  * Check surroundings of each Organism and do some operations.
  *
  * @return $this
  */
 public function live()
 {
     if ($this->table) {
         $this->table();
     }
     for ($i = 0; $i < $this->iterations; $i++) {
         $this->operations = [];
         for ($x = 0; $x < $this->cells; $x++) {
             for ($y = 0; $y < $this->cells; $y++) {
                 // Calculate operation
                 $operation = !isset($this->life[$x][$y]) ? Organism::canBeBirthable($x, $y, $this->life) : $this->life[$x][$y]->whatShouldIDo($this->life);
                 if ($operation) {
                     $this->operations[] = array_merge($operation, ['x' => $x, 'y' => $y]);
                 }
             }
         }
         // After iteration is done, process all operations.
         $this->process();
         // Add current iteration life to output for simulation
         $this->addOrganismsToSimulation($i);
         if ($this->table) {
             $this->table($i);
         }
     }
     return $this;
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $action = Input::get('action');
     $user_id = Auth::user()->id;
     $test = Input::get('test');
     $organism = Input::get('organism');
     $drug = Input::get('drug');
     $zone = Input::get('zone');
     $interpretation = Input::get('interpretation');
     for ($i = 0; $i < count($test); $i++) {
         $sensitivity = Susceptibility::getDrugSusceptibility($test[$i], $organism[$i], $drug[$i]);
         if (count($sensitivity) > 0) {
             $drugSusceptibility = Susceptibility::find($sensitivity->id);
             $drugSusceptibility->user_id = $user_id;
             $drugSusceptibility->test_id = $test[$i];
             $drugSusceptibility->organism_id = $organism[$i];
             $drugSusceptibility->drug_id = $drug[$i];
             $drugSusceptibility->zone = $zone[$i];
             $drugSusceptibility->interpretation = $interpretation[$i];
             $drugSusceptibility->save();
         } else {
             $drugSusceptibility = new Susceptibility();
             $drugSusceptibility->user_id = $user_id;
             $drugSusceptibility->test_id = $test[$i];
             $drugSusceptibility->organism_id = $organism[$i];
             $drugSusceptibility->drug_id = $drug[$i];
             $drugSusceptibility->zone = $zone[$i];
             $drugSusceptibility->interpretation = $interpretation[$i];
             $drugSusceptibility->save();
         }
     }
     if ($action == "results") {
         $test_id = Input::get('testId');
         $organism_id = Input::get('organismId');
         $susceptibility = Susceptibility::where('test_id', $test_id)->where('organism_id', $organism_id)->where('zone', '!=', 0)->get();
         foreach ($susceptibility as $drugSusceptibility) {
             $drugSusceptibility->drugName = Drug::find($drugSusceptibility->drug_id)->name;
             $drugSusceptibility->pathogen = Organism::find($drugSusceptibility->organism_id)->name;
             if ($drugSusceptibility->interpretation == 'I') {
                 $drugSusceptibility->sensitivity = 'Intermediate';
             } else {
                 if ($drugSusceptibility->interpretation == 'R') {
                     $drugSusceptibility->sensitivity = 'Resistant';
                 } else {
                     if ($drugSusceptibility->interpretation == 'S') {
                         $drugSusceptibility->sensitivity = 'Sestitive';
                     }
                 }
             }
         }
         return json_encode($susceptibility);
     }
 }
 /**
  * Tests the update function in the OrganismController
  * @param  void
  * @return void
  */
 public function testUpdate()
 {
     Input::replace($this->organismData);
     $organism = new OrganismController();
     $organism->store();
     $organismStored = Organism::orderBy('id', 'desc')->take(1)->get()->toArray();
     Input::replace($this->organismDataUpdate);
     $organism->update($organismStored[0]['id']);
     $organismSavedUpdated = Organism::find($organismStored[0]['id']);
     $this->assertEquals($organismSavedUpdated->name, $this->organismDataUpdate['name']);
     $this->assertEquals($organismSavedUpdated->description, $this->organismDataUpdate['description']);
     //Getting the drugs related to the organism
     /*$organismDrugUpdated = Organism::find($organismStored[0]['id'])->drugs->toArray();
     		
     		$this->assertEquals(12, $this->organismDataUpdate['drugs'][0]);*/
 }
 public function run()
 {
     //Seed for drugs
     $penicillin = Drug::create(array('name' => "PENICILLIN"));
     $ampicillin = Drug::create(array('name' => "AMPICILLIN"));
     $clindamycin = Drug::create(array('name' => "CLINDAMYCIN"));
     $tetracycline = Drug::create(array('name' => "TETRACYCLINE"));
     $ciprofloxacin = Drug::create(array('name' => "CIPROFLOXACIN"));
     $trimeth = Drug::create(array('name' => "TRIMETHOPRIM/SULFA"));
     $nitrofurantoin = Drug::create(array('name' => "NITROFURANTOIN"));
     $chloramphenicol = Drug::create(array('name' => "CHLORAMPHENICOL"));
     $cefazolin = Drug::create(array('name' => "CEFAZOLIN"));
     $gentamicin = Drug::create(array('name' => "GENTAMICIN"));
     $amoxicillin = Drug::create(array('name' => "AMOXICILLIN-CLAV"));
     $cephalothin = Drug::create(array('name' => "CEPHALOTHIN"));
     $cefuroxime = Drug::create(array('name' => "CEFUROXIME"));
     $cefotaxime = Drug::create(array('name' => "CEFOTAXIME"));
     $piperacillin = Drug::create(array('name' => "PIPERACILLIN"));
     $cefixime = Drug::create(array('name' => "CEFIXIME"));
     $ceftazidime = Drug::create(array('name' => "CEFTAZIDIME"));
     $cefriaxone = Drug::create(array('name' => "CEFRIAXONE"));
     $levofloxacin = Drug::create(array('name' => "LEVOFLOXACIN"));
     $merodenem = Drug::create(array('name' => "MERODENEM"));
     $tazo = Drug::create(array('name' => "PIPERACILLIN/TAZO"));
     $imedenem = Drug::create(array('name' => "IMEDENEM"));
     $oxacillin = Drug::create(array('name' => "OXACILLIN (CEFOXITIN)"));
     $erythromycin = Drug::create(array('name' => "ERYTHROMYCIN"));
     $vancomycin = Drug::create(array('name' => "VANCOMYCIN"));
     $cefoxitin = Drug::create(array('name' => "CEFOXITIN"));
     $tobramycin = Drug::create(array('name' => "TOBRAMYCIN"));
     $sulbactam = Drug::create(array('name' => "AMPICILLIN-SULBACTAM"));
     $this->command->info('Drugs table seeded');
     //Seed for organisims
     $staphylococci = Organism::create(array('name' => "Staphylococci species"));
     $gramnegative = Organism::create(array('name' => "Gram negative cocci"));
     $pseudomonas = Organism::create(array('name' => "Pseudomonas aeruginosa"));
     $enterococcus = Organism::create(array('name' => "Enterococcus species"));
     $pneumoniae = Organism::create(array('name' => "Streptococcus pneumoniae"));
     $streptococcus = Organism::create(array('name' => "Streptococcus species viridans group"));
     $beta = Organism::create(array('name' => "Beta-haemolytic streptococci"));
     $haemophilus = Organism::create(array('name' => "Haemophilus influenzae"));
     $naisseria = Organism::create(array('name' => "Naisseria menengitidis"));
     $salmonella = Organism::create(array('name' => "Salmonella species"));
     $shigella = Organism::create(array('name' => "Shigella"));
     $vibrio = Organism::create(array('name' => "Vibrio cholerae"));
     $grampositive = Organism::create(array('name' => "Gram positive cocci"));
     $this->command->info('Organisms table seeded');
     //  Seed for organism_drugs
     //  Staphylococci species
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $penicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $oxacillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $cefoxitin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $erythromycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $clindamycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $trimeth->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $cefazolin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $cephalothin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $chloramphenicol->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $nitrofurantoin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $tetracycline->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $staphylococci->id, "drug_id" => $vancomycin->id));
     $this->command->info('Staphylococci species seeded');
     //  Gram negative cocci
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $ampicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $cefazolin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $gentamicin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $amoxicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $cephalothin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $cefuroxime->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $cefotaxime->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $ciprofloxacin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $trimeth->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $nitrofurantoin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $chloramphenicol->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $gramnegative->id, "drug_id" => $tetracycline->id));
     $this->command->info('Gram negative cocci seeded');
     //  Pseudomonas aeruginosa
     DB::table('organism_drugs')->insert(array("organism_id" => $pseudomonas->id, "drug_id" => $ceftazidime->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pseudomonas->id, "drug_id" => $gentamicin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pseudomonas->id, "drug_id" => $tobramycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pseudomonas->id, "drug_id" => $piperacillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pseudomonas->id, "drug_id" => $ciprofloxacin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pseudomonas->id, "drug_id" => $merodenem->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pseudomonas->id, "drug_id" => $tazo->id));
     $this->command->info('Pseudomonas aeruginosa seeded');
     //  Enterococcus species
     DB::table('organism_drugs')->insert(array("organism_id" => $enterococcus->id, "drug_id" => $ampicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $enterococcus->id, "drug_id" => $gentamicin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $enterococcus->id, "drug_id" => $nitrofurantoin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $enterococcus->id, "drug_id" => $ciprofloxacin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $enterococcus->id, "drug_id" => $tetracycline->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $enterococcus->id, "drug_id" => $chloramphenicol->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $enterococcus->id, "drug_id" => $vancomycin->id));
     $this->command->info('Enterococcus species seeded');
     //  Streptococcus pneumoniae
     DB::table('organism_drugs')->insert(array("organism_id" => $pneumoniae->id, "drug_id" => $penicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pneumoniae->id, "drug_id" => $cefriaxone->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pneumoniae->id, "drug_id" => $cefuroxime->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pneumoniae->id, "drug_id" => $erythromycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pneumoniae->id, "drug_id" => $trimeth->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pneumoniae->id, "drug_id" => $chloramphenicol->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pneumoniae->id, "drug_id" => $tetracycline->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $pneumoniae->id, "drug_id" => $levofloxacin->id));
     $this->command->info('Streptococcus pneumoniae seeded');
     //  Streptococcus species viridans group
     DB::table('organism_drugs')->insert(array("organism_id" => $streptococcus->id, "drug_id" => $penicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $streptococcus->id, "drug_id" => $cefriaxone->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $streptococcus->id, "drug_id" => $vancomycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $streptococcus->id, "drug_id" => $chloramphenicol->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $streptococcus->id, "drug_id" => $clindamycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $streptococcus->id, "drug_id" => $erythromycin->id));
     $this->command->info('Streptococcus species viridans group seeded');
     //  Beta-haemolytic streptococci
     DB::table('organism_drugs')->insert(array("organism_id" => $beta->id, "drug_id" => $penicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $beta->id, "drug_id" => $erythromycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $beta->id, "drug_id" => $clindamycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $beta->id, "drug_id" => $cefriaxone->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $beta->id, "drug_id" => $chloramphenicol->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $beta->id, "drug_id" => $vancomycin->id));
     $this->command->info('Beta-haemolytic streptococci seeded');
     //  Haemophilus influenzae
     DB::table('organism_drugs')->insert(array("organism_id" => $haemophilus->id, "drug_id" => $ampicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $haemophilus->id, "drug_id" => $trimeth->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $haemophilus->id, "drug_id" => $sulbactam->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $haemophilus->id, "drug_id" => $cefriaxone->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $haemophilus->id, "drug_id" => $chloramphenicol->id));
     $this->command->info('Haemophilus influenzae seeded');
     //  Naisseria menengitidis
     DB::table('organism_drugs')->insert(array("organism_id" => $naisseria->id, "drug_id" => $penicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $naisseria->id, "drug_id" => $cefriaxone->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $naisseria->id, "drug_id" => $chloramphenicol->id));
     $this->command->info('Neisseria menengitidis seeded');
     //  Salmonella species
     DB::table('organism_drugs')->insert(array("organism_id" => $salmonella->id, "drug_id" => $ampicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $salmonella->id, "drug_id" => $ciprofloxacin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $salmonella->id, "drug_id" => $trimeth->id));
     $this->command->info('Salmonella species seeded');
     //  Shigella
     DB::table('organism_drugs')->insert(array("organism_id" => $shigella->id, "drug_id" => $ampicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $shigella->id, "drug_id" => $ciprofloxacin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $shigella->id, "drug_id" => $trimeth->id));
     $this->command->info('Shigella seeded');
     //  Vibrio cholerae
     DB::table('organism_drugs')->insert(array("organism_id" => $vibrio->id, "drug_id" => $ampicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $vibrio->id, "drug_id" => $ciprofloxacin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $vibrio->id, "drug_id" => $trimeth->id));
     $this->command->info('Vibrio cholerae seeded');
     //  Gram positive cocci
     DB::table('organism_drugs')->insert(array("organism_id" => $grampositive->id, "drug_id" => $cefoxitin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $grampositive->id, "drug_id" => $clindamycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $grampositive->id, "drug_id" => $erythromycin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $grampositive->id, "drug_id" => $oxacillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $grampositive->id, "drug_id" => $penicillin->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $grampositive->id, "drug_id" => $tetracycline->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $grampositive->id, "drug_id" => $trimeth->id));
     DB::table('organism_drugs')->insert(array("organism_id" => $grampositive->id, "drug_id" => $vancomycin->id));
     $this->command->info('Gram positive cocci seeded');
 }
Example #5
0
 /**
  * Return parents if dead organism can be birthable
  *
  * @param $x
  * @param $y
  * @param $life
  * @return int
  */
 public static function canBeBirthable($x, $y, $life)
 {
     $organism = new Organism($x, $y);
     $organism->getSurroundings($life);
     if ($parent = $organism->isBirthAble()) {
         return ['result' => Result::BIRTH, 'parent' => $parent];
     }
     return FALSE;
 }
 /**
  * Remove the specified resource from storage (soft delete).
  *
  * @param  int  $id
  * @return Response
  */
 public function delete($id)
 {
     //Soft delete the organism
     $organism = Organism::find($id);
     /*$testCategoryInUse = TestType::where('test_category_id', '=', $id)->first();
     		if (empty($testCategoryInUse)) {
     		    // The test category is not in use
     			$testcategory->delete();
     		} else {
     		    // The test category is in use
     		    $url = Session::get('SOURCE_URL');
                 
                 return Redirect::to($url)
     		    	->with('message', trans('messages.failure-test-category-in-use'));
     		}*/
     // redirect
     $url = Session::get('SOURCE_URL');
     return Redirect::to($url)->with('message', trans('messages.success-deleting-organism'));
 }
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit($id)
 {
     //Get the testtype
     $testtype = TestType::find($id);
     $measures = Measure::all();
     $measuretype = MeasureType::all()->sortBy('id');
     $specimentypes = SpecimenType::orderBy('name')->get();
     $testcategory = TestCategory::all();
     $organisms = Organism::orderBy('name')->get();
     //Open the Edit View and pass to it the $testtype
     return View::make('testtype.edit')->with('testtype', $testtype)->with('testcategory', $testcategory)->with('measures', $measures)->with('measuretype', $measuretype)->with('specimentypes', $specimentypes)->with('organisms', $organisms);
 }