public function processPatientProcedureAction()
 {
     $patientId = (int) $this->_getParam('patientId');
     $procedures = $this->_getParam('procedures');
     if ($patientId > 0) {
         $patientProcedureIterator = new PatientProcedureIterator();
         $patientProcedureIterator->setFilters(array('patientId' => $patientId));
         $existingProcedures = $patientProcedureIterator->toArray('code', 'patientId');
         if (is_array($procedures)) {
             foreach ($procedures as $code => $procedure) {
                 if (isset($existingProcedures[$code])) {
                     unset($existingProcedures[$code]);
                 }
                 $procedure['code'] = $code;
                 $procedure['patientId'] = $patientId;
                 $patientProcedure = new PatientProcedure();
                 $patientProcedure->populateWithArray($procedure);
                 $patientProcedure->persist();
             }
         }
         // delete un-used records
         foreach ($existingProcedures as $code => $patientId) {
             $patientProcedure = new PatientProcedure();
             $patientProcedure->code = $code;
             $patientProcedure->patientId = $patientId;
             $patientProcedure->setPersistMode(WebVista_Model_ORM::DELETE);
             $patientProcedure->persist();
         }
     }
     $data = array();
     $data['msg'] = __('Record saved successfully');
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($data);
 }