/**
  * 
  * @param Treatment $treatment
  * @return \HealthCareAbroad\TermBundle\Entity\Term
  */
 private function createTermFromTreatment(Treatment $treatment)
 {
     // check first if this term already exists
     $term = $this->termRepository->findOneByName($treatment->getName());
     if (!$term) {
         // term does not exist
         $term = new Term();
         $term->setName($treatment->getName());
     }
     // create new term document
     $termDocument = new TermDocument();
     $termDocument->setDocumentId($treatment->getId());
     $termDocument->setTerm($term);
     $termDocument->setType(TermDocument::TYPE_TREATMENT);
     $term->setInternal(true);
     $term->addTermDocument($termDocument);
     return $term;
 }
 /**
  * Get the internal Term of a Treatment
  * 
  * @param Treatment $treatment
  * @return Term
  */
 public function getTreatmentInternalTerm(Treatment $treatment)
 {
     $qb = $this->doctrine->getManager()->createQueryBuilder();
     $qb->select('t, td')->from('TermBundle:Term', 't')->innerJoin('t.termDocuments', 'td')->where('td.documentId = :treatmentId')->setParameter('treatmentId', $treatment->getId())->andWhere('td.type = :documentType')->setParameter('documentType', TermDocument::TYPE_TREATMENT)->andWhere('t.name = :treatmentName')->setParameter('treatmentName', $treatment->getName())->andWhere('t.internal = 1');
     $term = $qb->getQuery()->getOneOrNullResult();
     return $term;
 }