Inheritance: extends BaseActiveRecordVersioned
 /**
  * Update the dilation treatments - depends on their only being one treatment of a particular drug on a given side.
  *
  * @param $side \Eye::LEFT or \Eye::RIGHT
  * @param array $readings
  * @throws Exception
  */
 public function updateReadings($side, $readings)
 {
     $curr_by_id = array();
     $save = array();
     foreach ($this->readings as $r) {
         if ($r->eye_id == $side) {
             $curr_by_id[$r->method->id] = $r;
         }
     }
     foreach ($readings as $reading) {
         if (!($method_id = $reading['method_id'])) {
             $method_id = OphCiExamination_ColourVision_Value::model()->findByPk($reading['value_id'])->method->id;
         }
         if (!array_key_exists($method_id, $curr_by_id)) {
             $obj = new OphCiExamination_ColourVision_Reading();
         } else {
             $obj = $curr_by_id[$method_id];
             unset($curr_by_id[$method_id]);
         }
         $obj->attributes = $reading;
         $obj->element_id = $this->id;
         $obj->eye_id = $side;
         $save[] = $obj;
     }
     foreach ($save as $s) {
         if (!$s->save()) {
             throw new \Exception('unable to save reading:' . print_r($s->getErrors(), true));
         }
     }
     foreach ($curr_by_id as $curr) {
         if (!$curr->delete()) {
             throw new \Exception('unable to delete reading:' . print_r($curr->getErrors(), true));
         }
     }
 }