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
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