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); }