/**
  * Executes the update funtion in the MeasureController
  * @param  array $input Measure details, int $id ID of the Mesure stored (array for numeric Measure)
  * @return void
  */
 public function runUpdate($input, $measureId, $measureRanges)
 {
     $input[$measureId] = $input[0];
     unset($input[0]);
     if ($measureRanges != 0) {
         $input[$measureId]['measurerangeid'] = $measureRanges;
     }
     $measure = new MeasureController();
     $measure->update($input);
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     $rules = array('name' => 'required', 'test_category_id' => 'required|non_zero_key', 'specimentypes' => 'required');
     $validator = Validator::make(Input::all(), $rules);
     // process the login
     if ($validator->fails()) {
         return Redirect::back()->withErrors($validator);
     } else {
         // Update
         $testtype = TestType::find($id);
         $testtype->name = trim(Input::get('name'));
         $testtype->description = Input::get('description');
         $testtype->test_category_id = Input::get('test_category_id');
         $testtype->targetTAT = Input::get('targetTAT');
         $testtype->prevalence_threshold = Input::get('prevalence_threshold');
         $testtype->orderable_test = Input::get('orderable_test');
         $testtype->accredited = Input::get('accredited');
         try {
             $testtype->save();
             $testtype->setOrganisms(Input::get('organisms'));
             $testtype->setSpecimenTypes(Input::get('specimentypes'));
             $measureIds = array();
             if (Input::get('new-measures')) {
                 $inputNewMeasures = Input::get('new-measures');
                 $measures = new MeasureController();
                 $measureIds = $measures->store($inputNewMeasures);
             }
             if (Input::get('measures')) {
                 $inputMeasures = Input::get('measures');
                 foreach ($inputMeasures as $key => $value) {
                     $measureIds[] = $key;
                 }
                 $measures = new MeasureController();
                 $measures->update($inputMeasures);
             }
             $testtype->setMeasures($measureIds);
         } catch (QueryException $e) {
             Log::error($e);
         }
         // redirect
         $url = Session::get('SOURCE_URL');
         return Redirect::to($url)->with('message', trans('messages.success-updating-test-type'))->with('activetesttype', $testtype->id);
     }
 }