コード例 #1
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def getSampleNamebyID(sample_id):
    """
    sample_id:  required, integer
    """
    s = Sample.objects(__raw__={'sample_id': sample_id})
    return _try0_dict_key(s, 'sample', 'sample_id', sample_id, -99,
                          dict_key='sampleName')
コード例 #2
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def getSampleByID(sample_id, as_mongo_obj=False):
    """
    sample_id:  required, integer
    """

    s = Sample.objects(__raw__={'sample_id': sample_id})
    return _try0_maybe_mongo(s, 'sample', 'sample_id', sample_id, None,
                             as_mongo_obj=as_mongo_obj)
コード例 #3
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def getSampleRequestCount(sample_id):
    """
    get the 'request_count' attribute of the specified sample
    """
    
    s = Sample.objects(__raw__={'sample_id': sample_id})
    return _try0_dict_key(s, 'sample', 'sample_id', sample_id, None, 
                           dict_key='request_count')
コード例 #4
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def find_sample_request():
    req_list = []

    for samp in Sample.objects():
        for req in samp.requestList:
            req_list.append(req.to_mongo())
            
    return req_list
コード例 #5
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def getResultsforSample(sample_id):
    """
    Takes a sample_id and returns it's resultsList or [].
    """

    sample = Sample.objects(__raw__={'sample_id': sample_id}
                            ).only('resultList')
    return [r.to_mongo() for r in 
            _try0_maybe_mongo(sample, 'sample', 'sample_id', sample_id, None,
                             as_mongo_obj=True).resultList]
コード例 #6
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def incrementSampleRequestCount(sample_id):
    """
    increment the 'request_count' attribute of the specified sample by 1
    """
    
    # potential for race here?
    s = Sample.objects(__raw__={'sample_id': sample_id})[0]
    s.update(inc__request_count=1)
    s.reload()
    return s.request_count
コード例 #7
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def find_sample():
    ret_list = []
    headers = ['sample_name', 'sample_type']

    #return [s.to_mongo() for s in Sample.objects()]
    for samp in Sample.objects():
        s = samp.to_mongo()
        s['sample_type'] = samp.sample_type.name

        ret_list.append(s)
    return (headers, ret_list)
コード例 #8
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def addResulttoSample(result_type, sample_id, result_obj=None, timestamp=None,
                        as_mongo_obj=False, **kwargs):

    """
    like addResulttoRequest, but without a request
    """
    r = createResult(result_type, sample_id=sample_id, result_obj=result_obj, timestamp=timestamp,
                     as_mongo_obj=True, **kwargs)

    try:
        sample = Sample.objects(sample_id=sample_id)[0]
    except IndexError:
        return None
    
    sample.resultList.append(r)
    sample.save()

    return r.to_mongo()
コード例 #9
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def deleteResult(result_id, get_result=False):
    """
    Takes a result_id, deletes, and optionally returns the matching result or None.
    When should we ever be doing this?

    result_id:  required, int
    """
    result_id = int(result_id)

    # delete it from any samples first
    sample_qs = Sample.objects(__raw__={'resultList.result_id': result_id})
    sample = _try0_maybe_mongo(sample_qs, 'result', 'result_id', result_id, None,
                                 as_mongo_obj=True)

    for res in sample.resultList:
        if res.result_id == result_id:
            tmp = res
            sample.resultList.remove(res)
            sample.save()

    # then directly in Results
    r = getResult(result_id, as_mongo_obj=True)
    r.delete()
コード例 #10
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def addResultforRequest(result_type, request_id, result_obj=None, timestamp=None,
                        as_mongo_obj=False, **kwargs):

    """
    like createResult, but also adds it to the resultList of result['sample_id']
    """
    r = createResult(result_type, request_id, result_obj=result_obj, timestamp=timestamp,
                     as_mongo_obj=True, **kwargs)

    request = r.request_id

    #sample_qs = Sample.objects(__raw__={'requestList.request_id': request_id})
    #sample = _try0_maybe_mongo(sample_qs, 'request', 'request_id', request_id, None,
    #                           as_mongo_obj=True)

    try:
        sample = Sample.objects(requestList__in=[request])[0]
    except IndexError:
        return None
    
    sample.resultList.append(r)
    sample.save()

    return r.to_mongo()
コード例 #11
0
ファイル: db_lib.py プロジェクト: ericdill/lsdc
def getSampleIDbyName(sample_name):
    s = Sample.objects(__raw__={'sampleName': sample_name})
    return _try0_dict_key(s, 'sample', 'sampleName', sample_name, -99, 
                           dict_key='sample_id')