def METHOD_NAME(self):
    chrom = self.get_argument('referenceName', None)
    start = self.get_argument('start', None)
    ref = self.get_argument('referenceBases', None)
    alt = self.get_argument('alternateBases', None)
    assembly = self.get_argument('assemblyId', None)
    datasets = self.get_arguments('datasetIds', strip=False)
    include_datasets = self.get_argument('includeDatasetResponses', None)
    # Prep request for return
    allele_request = {
        'referenceName': chrom, 'start': start, 'referenceBases': ref,
        'alternateBases': alt, 'assemblyId': assembly, 'datsetIds': datasets,
        'includeDatasetResponses': include_datasets
    }
    if len(datasets) < 1:
        datasets = self.pos_dbs + self.assembly_dbs
    try:
        dataset_responses = []
        for dataset in datasets:
            dataset_responses.append(self.query_dataset(
                chrom, start, ref, alt, assembly, dataset))
        exists = any([response['exists'] for response in dataset_responses])
        out = {'exists': exists, 'alleleRequest': allele_request}
        if include_datasets:
            out['alleleDatasetRespone'] = dataset_responses
    except NameError as e:
        out = {'`error`': '{}'.format(e), 'alleleRequest': allele_request}
    except TypeError as e:
        out = {'`error`': '{}'.format(e), 'alleleRequest': allele_request}
    except AttributeError as e:
        out = {'`error`': '{}'.format(e), 'alleleRequest': allele_request}
    except BaseException:
        e = sys.exc_info()[0]
        out = {'`error`': '{}'.format(e), 'alleleRequest': allele_request}
    # Return the JSON response
    self.finish(out)