/**
  *
  * @param Institution $institution
  * @return boolean
  */
 public function isActive(Institution $institution)
 {
     $activeStatus = InstitutionStatus::getBitValueForActiveStatus();
     return $activeStatus == $activeStatus & $institution->getStatus() ? true : false;
 }
 /**
  * Add Institution Details, step 2 when creating new institution
  * 
  * @param Request $request
  * @return \Symfony\Component\HttpFoundation\Response
  * @author Chaztine Blance
  */
 public function addDetailsAction(Request $request)
 {
     $medicalProviderGroup = $this->getDoctrine()->getRepository('InstitutionBundle:MedicalProviderGroup')->getActiveMedicalGroups();
     $medicalProviderGroupArr = array();
     foreach ($medicalProviderGroup as $e) {
         $medicalProviderGroupArr[] = array('value' => $e->getName(), 'id' => $e->getId());
     }
     $this->get('services.contact_detail')->initializeContactDetails($this->institution, array(ContactDetailTypes::PHONE));
     $this->institution->setName('');
     //set institution name to empty
     // redirect to edit institution if status is already active
     if ($this->get('services.institution')->isActive($this->institution)) {
         return $this->redirect($this->generateUrl('admin_institution_edit_details', array('institutionId' => $this->institution->getId())));
     }
     if ($request->isMethod('GET')) {
         $form = $this->createForm(new InstitutionProfileFormType(), $this->institution);
     }
     if ($request->isMethod('POST')) {
         $formVariables = $request->get(InstitutionProfileFormType::NAME);
         unset($formVariables['_token']);
         $removedFields = \array_diff(InstitutionProfileFormType::getFieldNames(), array_keys($formVariables));
         $form = $this->createForm(new InstitutionProfileFormType(), $this->institution, array(InstitutionProfileFormType::OPTION_HIDDEN_FIELDS => array(''), InstitutionProfileFormType::OPTION_BUBBLE_ALL_ERRORS => false, InstitutionProfileFormType::OPTION_REMOVED_FIELDS => $removedFields));
         $formRequestData = $request->get($form->getName());
         if (isset($formRequestData['medicalProviderGroups'])) {
             // we always expect 1 medical provider group
             // if it is empty remove it from the array
             if (isset($formRequestData['medicalProviderGroups'][0]) && '' == trim($formRequestData['medicalProviderGroups'][0])) {
                 unset($formRequestData['medicalProviderGroups'][0]);
             }
         }
         $form->bind($formRequestData);
         if ($form->isValid()) {
             $institution = $form->getData();
             // update the sign up step status
             $institution->setSignupStepStatus(0);
             // update to active status
             $institution->setStatus(InstitutionStatus::getBitValueForActiveStatus());
             $this->get('services.contact_detail')->removeInvalidContactDetails($institution);
             $this->get('services.institution.factory')->save($institution);
             $this->get('session')->setFlash('notice', "Successfully completed details of {$institution->getName()}.");
             return $this->redirect($this->generateUrl('admin_institution_view', array('institutionId' => $this->institution->getId())));
         }
     }
     return $this->render('AdminBundle:Institution:addDetails.html.twig', array('form' => $form->createView(), 'institution' => $this->institution, 'id' => $this->institution->getId(), 'medicalProvidersJSON' => \json_encode($medicalProviderGroupArr)));
 }