code: def _resolve_items_to_service_uids(items):
      
      def resolve_to_uid(item):
          if api.is_uid(item):
              return item
          elif IAnalysisService.providedBy(item):
              return item.UID()
          elif IRoutineAnalysis.providedBy(item):
              return item.getServiceUID()
  
          bsc = api.get_tool("bika_setup_catalog")
          brains = bsc(portal_type='AnalysisService', getKeyword=item)
          if brains:
              return brains[0].UID
          brains = bsc(portal_type='AnalysisService', title=item)
          if brains:
              return brains[0].UID
          raise RuntimeError(
              str(item) + " should be the UID, title, keyword "
                          " or title of an AnalysisService.")
  
      # Maybe only a single item was passed
      if type(items) not in (list, tuple):
          items = [items, ]
      service_uids = map(resolve_to_uid, list(set(items)))
      return list(set(service_uids))
docs: Returns a list of service uids without duplicates based on the items
      :param items:
          A list (or one object) of service-related info items. The list can be
          heterogeneous and each item can be:
          - Analysis Service instance
          - Analysis instance
          - Analysis Service title
          - Analysis Service UID
          - Analysis Service Keyword
          If an item that doesn't match any of the criterias above is found, the
          function will raise a RuntimeError