/** * 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'); }
/** * 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); }