/** edited for newly markup
  * Add new CLINIC CENTER
  * @author Chaztine Blance
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function addMedicalCenterAction(Request $request)
 {
     if ($request->isMethod('POST')) {
         if (!$this->institutionMedicalCenter instanceof InstitutionMedicalCenter) {
             $this->institutionMedicalCenter = new InstitutionMedicalCenter();
             $this->institutionMedicalCenter->setInstitution($this->institution);
         }
         $formVariables = $request->get(InstitutionMedicalCenterFormType::NAME);
         unset($formVariables['_token']);
         $removedFields = \array_diff(InstitutionMedicalCenterFormType::getFieldNames(), array_keys($formVariables));
         $this->get('services.contact_detail')->initializeContactDetails($this->institutionMedicalCenter, array(ContactDetailTypes::PHONE), $this->institution->getCountry());
         $this->institutionMedicalCenter->setDescription(' ');
         $this->institutionMedicalCenter->setAddress($this->institution->getAddress1());
         $this->institutionMedicalCenter->setAddressHint($this->institution->getAddressHint());
         $this->institutionMedicalCenter->setCoordinates($this->institution->getCoordinates());
         $form = $this->createForm(new InstitutionMedicalCenterFormType($this->institution), $this->institutionMedicalCenter, array(InstitutionMedicalCenterFormType::OPTION_BUBBLE_ALL_ERRORS => false, InstitutionMedicalCenterFormType::OPTION_REMOVED_FIELDS => $removedFields));
         $form->bind($request);
         if ($form->isValid()) {
             $this->get('services.contact_detail')->removeInvalidContactDetails($this->institutionMedicalCenter);
             $this->institutionMedicalCenter = $this->get('services.institutionMedicalCenter')->saveAsDraft($form->getData());
             $output = $this->generateUrl('institution_medicalCenter_view', array('imcId' => $this->institutionMedicalCenter->getId()));
             $this->get('event_dispatcher')->dispatch(MailerBundleEvents::NOTIFICATIONS_CLINIC_CREATED, new GenericEvent($this->institutionMedicalCenter, array('userEmail' => $request->getSession()->get('userEmail'))));
             $response = new Response(\json_encode(array('redirect' => $output)), 200, array('content-type' => 'application/json'));
         } else {
             $errors = array();
             $form_errors = $this->get('validator')->validate($form);
             foreach ($form_errors as $_err) {
                 $errors[] = array('field' => str_replace('data.', '', $_err->getPropertyPath()), 'error' => $_err->getMessage());
             }
             $response = new Response(\json_encode(array('html' => $errors)), 400, array('content-type' => 'application/json'));
         }
     }
     return $response;
 }
 public function completeProfileOfInstitutionWithSingleCenter(Institution $institution, InstitutionMedicalCenter $institutionMedicalCenter)
 {
     // save the institution
     $this->institutionFactory->save($institution);
     // set medical center name and description to institution.name and institution.description
     $institutionMedicalCenter->setName($institution->getName());
     $institutionMedicalCenter->setDescription($institution->getDescription() ? $institution->getDescription() : '2');
     $institutionMedicalCenter->setInstitution($institution);
     $institutionMedicalCenter->setAddress($institution->getAddress1());
     $institutionMedicalCenter->setCoordinates($institution->getCoordinates());
     // save institution medical center as draft
     $this->institutionMedicalCenterService->saveAsDraft($institutionMedicalCenter);
 }