/**
  * Add a new specialization to medical center
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function addSpecializationAction(Request $request)
 {
     $service = $this->get('services.institution_medical_center');
     if ($request->isMethod('POST')) {
         $submittedSpecializations = $request->get(InstitutionSpecializationFormType::NAME);
         $em = $this->getDoctrine()->getEntityManager();
         if (\count($submittedSpecializations) > 0) {
             foreach ($submittedSpecializations as $specializationId => $_data) {
                 $specialization = $this->get('services.treatment_bundle')->getSpecialization($specializationId);
                 $_institutionSpecialization = new InstitutionSpecialization();
                 $_institutionSpecialization->setSpecialization($specialization);
                 $_institutionSpecialization->setInstitutionMedicalCenter($this->institutionMedicalCenter);
                 $_institutionSpecialization->setStatus(InstitutionSpecialization::STATUS_ACTIVE);
                 $_institutionSpecialization->setDescription('');
                 // set passed treatments as choices
                 $default_choices = array();
                 if ($_data['treatments'] != '') {
                     $_treatment_choices = $this->get('services.treatment_bundle')->findTreatmentsByIds($_data['treatments']);
                     foreach ($_treatment_choices as $_t) {
                         $default_choices[$_t->getId()] = $_t->getName();
                         // add the treatment
                         $_institutionSpecialization->addTreatment($_t);
                     }
                     $form = $this->createForm(new InstitutionSpecializationFormType(), $_institutionSpecialization, array('default_choices' => $default_choices));
                     $form->bind($_data);
                     if ($form->isValid()) {
                         $em->persist($_institutionSpecialization);
                         $em->flush();
                         // Invalidate InstitutionMedicalCenter Profile cache
                         $this->get('services.memcache')->delete(FrontendMemcacheKeysHelper::generateInsitutionMedicalCenterProfileKey($this->institutionMedicalCenter->getId()));
                         // Invalidate Institution Profile cache
                         $this->get('services.memcache')->delete(FrontendMemcacheKeysHelper::generateInsitutionProfileKey($this->institutionMedicalCenter->getInstitution()->getId()));
                         return $this->redirect($this->generateUrl('admin_institution_medicalCenter_view', array('institutionId' => $this->institution->getId(), 'imcId' => $this->institutionMedicalCenter->getId())));
                     } else {
                         $request->getSession()->setFlash('notice', '<ul><li>Unable to save specializations. Please try again.</li></ul>');
                     }
                 } else {
                     $request->getSession()->setFlash('notice', '<ul><li> Please provide at least one treatment.</li></ul>');
                 }
             }
         } else {
             $request->getSession()->setFlash('notice', '<ul><li> Please provide at least one specialization.</li></ul>');
         }
     } else {
         $form = $this->createForm(new InstitutionSpecializationSelectorFormType());
         $assignedSpecialization = $this->getDoctrine()->getRepository('InstitutionBundle:InstitutionSpecialization')->findByInstitutionMedicalCenter($this->institutionMedicalCenter);
         $specializations = $this->getDoctrine()->getRepository('TreatmentBundle:Specialization')->getAvailableSpecializations($assignedSpecialization);
         $specializationArr = array();
         foreach ($specializations as $e) {
             $specializationArr[] = array('value' => $e->getName(), 'id' => $e->getId());
         }
     }
     $params = array('form' => $form->createView(), 'institution' => $this->institution, 'institutionMedicalCenter' => $this->institutionMedicalCenter, 'selectedSubMenu' => 'centers', 'specializationsJSON' => \json_encode($specializationArr));
     return $this->render('AdminBundle:InstitutionSpecialization:addSpecializations.html.twig', $params);
 }