Ejemplo n.º 1
0
def properties(request):
    study_props = qs.get_study_property_list()
    tree_props = qt.get_tree_property_list()
    results = {
        "tree_properties" : tree_props,
        "study_properties" : study_props
        }
    return results
Ejemplo n.º 2
0
def find_studies(request):
    # set defaults
    verbose = False
    exact = False
    property_type = None
    property_value = None
    _LOG.debug('find_studies')

    if (request.body):
        payload = request.json_body
        # check that we only have valid parameters
        valid_parameters = ['verbose','property','value','exact']
        parameters = payload.keys()

        _LOG.debug('find_studies with parameters: {p}'.format(p=parameters))

        extra_params = set(parameters).difference(valid_parameters)
        if len(extra_params) > 0:
            _LOG.debug('found extra parameters: {x}'.format(x=extra_params))
            return HTTPBadRequest()

        if 'verbose' in payload:
            verbose = payload['verbose']

        if 'property' in payload:
            if 'value' in payload:
                property_type = payload['property']
                property_value = payload['value']
                # is this a valid property?
                study_properties = qs.get_study_property_list()
                if property_type not in study_properties:
                    _msg="Study property {p} is unknown".format(p=property_type)
                    raise HTTPBadRequest(body=_msg)

            else:
                # no value for property
                _msg = "No value given for property {p}".format(p=property_type)
                raise HTTPBadRequest(body=_msg)

    else:
        _LOG.debug('find_studies with no parameters')

    # query time!
    if (property_type is None):
        resultlist = qs.get_all_studies(verbose)
    else:
        resultlist = qs.query_studies(verbose,property_type,property_value)
    resultdict = { "matched_studies" : resultlist}
    return resultdict