docs: def add_phenotype(self, ind_obj, phenotype_id):
          """Add a phenotype term to the case."""
          if phenotype_id.startswith('HP:') or len(phenotype_id) == 7:
              logger.debug('querying on HPO term')
              hpo_results = phizz.query_hpo([phenotype_id])
          else:
              logger.debug('querying on OMIM term')
              hpo_results = phizz.query_disease([phenotype_id])
  
          added_terms = [] if hpo_results else None
          existing_ids = set(term.phenotype_id for term in ind_obj.phenotypes)
          for result in hpo_results:
              if result['hpo_term'] not in existing_ids:
                  term = PhenotypeTerm(phenotype_id=result['hpo_term'],
                                       description=result['description'])
                  logger.info('adding new HPO term: %s', term.phenotype_id)
                  ind_obj.phenotypes.append(term)
                  added_terms.append(term)
  
          logger.debug('storing new HPO terms')
          self.save()
  
          if added_terms is not None and len(added_terms) > 0:
              for case_obj in ind_obj.cases:
                  self.update_hpolist(case_obj)
  
          return added_terms