/**
  *
  * @param Request $request
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function ajaxLoadSpecializationTreatmentsAction(Request $request)
 {
     $selectedTreatments = array();
     $specializationId = $request->get('specializationId');
     if ($this->institutionSpecialization && $this->institutionSpecialization->getTreatments()) {
         foreach ($this->institutionSpecialization->getTreatments() as $treatment) {
             $selectedTreatments[] = $treatment->getId();
         }
     }
     $form = $this->createForm(new InstitutionSpecializationFormType(), new InstitutionSpecialization());
     $specializationTreatments = $this->get('services.treatment_bundle')->getTreatmentsBySpecializationIdGroupedBySubSpecialization($specializationId);
     $html = $this->renderView('InstitutionBundle:Specialization/Widgets:form.specializationTreatments.html.twig', array('form' => $form->createView(), 'formName' => InstitutionSpecializationFormType::NAME, 'specializationId' => $specializationId, 'selectedTreatments' => $selectedTreatments, 'specializationTreatments' => $specializationTreatments, 'isId' => $this->institutionSpecialization ? $this->institutionSpecialization->getId() : null));
     return new Response(\json_encode(array('html' => $html)), 200, array('content-type' => 'application/json'));
 }
 public function getAvailableTreatments(InstitutionSpecialization $institutionSpecialization)
 {
     $qb = $this->_em->createQueryBuilder();
     $sql = "SELECT i.`treatment_id` as treatment_id FROM `institution_treatments` i WHERE i.`institution_specialization_id` = :institutionSpecializationId";
     $statement = $this->getEntityManager()->getConnection()->prepare($sql);
     $statement->execute(array('institutionSpecializationId' => $institutionSpecialization->getId()));
     $result = array();
     $ids = array();
     while ($row = $statement->fetch(Query::HYDRATE_ARRAY)) {
         $ids[] = $row['treatment_id'];
     }
     $hasIds = $statement->rowCount() > 0;
     if ($hasIds) {
         $dql = "SELECT t, s FROM TreatmentBundle:Treatment t LEFT JOIN t.subSpecializations s WHERE " . " t.id NOT IN (?1) " . "AND t.specialization = :specializationId AND t.status = :status ";
         $query = $this->_em->createQuery($dql)->setParameter(1, $ids)->setParameter('specializationId', $institutionSpecialization->getSpecialization()->getId())->setParameter('status', Treatment::STATUS_ACTIVE);
     } else {
         $dql = "SELECT t, s FROM TreatmentBundle:Treatment t LEFT JOIN t.subSpecializations s WHERE t.specialization = :specializationId AND t.status = :status";
         $query = $this->_em->createQuery($dql)->setParameter('specializationId', $institutionSpecialization->getSpecialization()->getId())->setParameter('status', Treatment::STATUS_ACTIVE);
     }
     return $query->getResult();
 }