public function saveAction()
 {
     parent::saveAction();
     // Pega parâmetros passados por intermédio do request
     $array = array();
     $values = $this->_request->getParams();
     $cdexamination = $this->_request->getParam('cdexamination');
     $idexamination = $this->_request->getParam('idexamination');
     $nmexamination = $this->_request->getParam('nmexamination');
     $nrminage = $this->_request->getParam('nrminage');
     $fgtypeagemin = $this->_request->getParam('fgtypeagemin');
     $nrmaxage = $this->_request->getParam('nrmaxage');
     $cddepartment = $this->_request->getParam('cddepartment');
     $fgtypeagemax = $this->_request->getParam('fgtypeagemax');
     $qtdsamples = $this->_request->getParam('qtdsamples');
     $fgsex = $this->_request->getParam('fgsex');
     $allowpartialsave = $this->_request->getParam('allowpartialsave');
     $dsdiagnosis = $this->_request->getParam('dsdiagnosis');
     $dsinterference = $this->_request->getParam('dsinterference');
     $departments = $this->_request->getParam('departments');
     $mapattrib = $this->_request->getParam('fgmapattrib');
     $departments = json_decode($departments);
     $synonyms = $this->_request->getParam('synonyms');
     $synonyms = json_decode($synonyms);
     $materials = $this->_request->getParam('materials');
     $materials = json_decode($materials);
     $examinationModel = new ExaminationModel();
     $examinationModel->getAdapter()->beginTransaction();
     /*
     var_dump($values);
     
     var_dump($this->view->controller);
     var_dump($this->view->action);
     die();
     */
     try {
         /*  Salva dados na tabela 'examination' */
         $examination = array();
         $examination['idexamination'] = $idexamination;
         $examination['nmexamination'] = $nmexamination;
         $examination['fgsex'] = $fgsex;
         $examination['nrsamplelimit'] = $qtdsamples;
         $examination['fgparcialsave'] = $allowpartialsave;
         $examination['dsdiagnosis'] = $dsdiagnosis;
         $examination['dsinterference'] = $dsinterference;
         $examination['nrminage'] = $nrminage;
         $examination['nrmaxage'] = $nrmaxage;
         $examination['cdtimeframeminage'] = $fgtypeagemin;
         $examination['cdtimeframemaxage'] = $fgtypeagemax;
         // Passar para ExaminationMaterial
         //$examination['cddepartment'] = $cddepartment;
         // Mostragem dos atributos no mapa
         if (isset($mapattrib)) {
             if ($mapattrib) {
                 $examination['fgmapattrib'] = 1;
             } else {
                 $examination['fgmapattrib'] = 2;
             }
         }
         $previousAction = GslabUtils::getPreviousAction($this->view);
         if (strcmp($previousAction, "edit") == 0) {
             $examinationModel->update($examination, 'examination.cdexamination = ' . $cdexamination);
         } else {
             $examinationModel->insert($examination);
             $cdexamination = $examinationModel->getAdapter()->lastInsertId();
         }
         /* Salva dados na tabela 'examinationdepartment' */
         $examinationPermissionModel = new ExaminationpermissionModel();
         foreach ($departments as $singleDepartment) {
             // Salva dados na tabela 'examinationpermission'
             $departmentPrintPermission = array('cddepartment' => $singleDepartment->cddepartment, 'cdexamination' => $cdexamination, 'fgprintmap' => $singleDepartment->map, 'fgprintsampleprotocol' => $singleDepartment->protocol, 'fgprintappraisal' => $singleDepartment->appraisal);
             $examinationPermissionModel->insert($departmentPrintPermission);
         }
         /* Salva dados na tabela 'examinationmaterial' */
         $examinationMaterialModel = new ExaminationmaterialModel();
         foreach ($materials as $singleMaterial) {
             $examinationMaterial = array('cdexamination' => $cdexamination, 'cdmaterial' => $singleMaterial->cdmaterial, 'fgdefault' => $singleMaterial->select);
             $examinationMaterialModel->insert($examinationMaterial);
         }
         /* Salva dados na tabela 'synonym' - Criando os registros */
         $synonymModel = new SynonymModel();
         $examinationSynonymModel = new ExaminationsynonymModel();
         foreach ($synonyms as $singleSynonym) {
             $synonym = array('nmsynonym' => $singleSynonym->nmsynonym, 'fgdefault' => $singleSynonym->select);
             $synonymModel->insert($synonym);
             $cdsynonym = $synonymModel->getAdapter()->lastInsertId();
             // Salva dados na tabela 'examinationsynonym' - ligando os sinonimias ao exame
             $examinationSynonym = array('cdexamination' => $cdexamination, 'cdsynonym' => $cdsynonym);
             $examinationSynonymModel->insert($examinationSynonym);
         }
         $examinationrevisionModel = new ExaminationrevisionModel();
         $columns = $examinationrevisionModel->info(Zend_Db_Table_Abstract::COLS);
         foreach ($values as $id => $value) {
             if (isset($value) && $value != '' && in_array($id, $columns)) {
                 $array[$id] = addslashes($value);
             }
         }
         //var_dump($values);
         //die();
         $examinationrevisionModel->insert($array);
         //$this->_model->getAdapter()->commit();
         // Avisa que o cadastro foi bem sucedido e retorna para o modo de inclusão de exames para um novo cadastro.
         $message = "Cadastro efetuado com sucesso.";
     } catch (Exception $e) {
         $message = "Erro na inserção dos dados. <br> Por favor, entre em contato e informe a mensagem a seguir: </br>";
         $this->_model->getAdapter()->rollBack();
     }
     $this->view->message = $message;
 }