public function processPatientDiagnosesAction()
 {
     $patientId = (int) $this->_getParam('patientId');
     $diagnoses = $this->_getParam('diagnoses');
     if ($patientId > 0) {
         $patientDiagnosisIterator = new PatientDiagnosisIterator();
         $patientDiagnosisIterator->setFilters(array('patientId' => $patientId));
         $existingDiagnoses = $patientDiagnosisIterator->toArray('code', 'patientId');
         foreach ($diagnoses as $code => $diagnosis) {
             if (isset($existingDiagnoses[$code])) {
                 unset($existingDiagnoses[$code]);
             }
             $diagnosis['code'] = $code;
             $diagnosis['patientId'] = $patientId;
             $patientDiagnosis = new PatientDiagnosis();
             $patientDiagnosis->code = $code;
             $patientDiagnosis->populate();
             if ($patientDiagnosis->dateTime == '0000-00-00 00:00:00') {
                 $diagnosis['dateTime'] = date('Y-m-d H:i:s');
             }
             $patientDiagnosis->populateWithArray($diagnosis);
             $patientDiagnosis->persist();
         }
         // delete un-used records
         foreach ($existingDiagnoses as $code => $patientId) {
             $patientDiagnosis = new PatientDiagnosis();
             $patientDiagnosis->code = $code;
             $patientDiagnosis->patientId = $patientId;
             $patientDiagnosis->setPersistMode(WebVista_Model_ORM::DELETE);
             $patientDiagnosis->persist();
         }
     }
     $data = array();
     $data['msg'] = __('Record saved successfully');
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($data);
 }