def get(self, request, format=None): terms = json.loads(request.body)['terms'] evidence = PubMedQuerier.find_evidence_for_terms(terms, skip_no_abstract=True) serialized_json = serializers.serialize('json', evidence) evidence_json = flattenSerializedJson(serialized_json) # let's provide topic modeling results in addition to the raw evidence output = {} output['evidence'] = json.loads(evidence_json) evidencePks = [e.pk for e in evidence] abstracts = [e.abstract for e in evidence] output['topics'], output['evidenceTopicMap'] = getTopicsForDocuments(evidencePks, abstracts) return HttpResponse(json.dumps(output), status=status.HTTP_201_CREATED)
def post(self, request, format=None): params = json.loads(request.body) terms = params['terms'] user_id = params['user_id'] texts = Text.objects.filter(created_by=user_id) serialized_json = serializers.serialize('json', texts) texts_json = flattenSerializedJson(serialized_json) evidenceCreated = Evidence.objects.filter(created_by=user_id) evidenceBookmarks = EvidenceBookmark.objects.filter(user_id=user_id) evidenceBookmarkedIds = [eb.evidence.pk for eb in evidenceBookmarks] evidenceBookmarked = Evidence.objects.filter(pk__in=evidenceBookmarkedIds) evidenceRetrieved = PubMedQuerier.find_evidence_for_terms(terms, skip_no_abstract=True) evidence = chain(evidenceCreated, evidenceBookmarked, evidenceRetrieved) print '>> serializing evidence...' serialized_json = serializers.serialize('json', evidence) print '>> flatten serialized evidence...' evidence_json = flattenSerializedJson(serialized_json) # let's provide topic modeling results in addition to the raw evidence output = {} print '>> loading evidence into json...' output['evidence'] = json.loads(evidence_json) contents = [t.content for t in texts] textPks = ['t-'+str(t.pk) for t in texts] abstracts = [e['abstract'] for e in output['evidence']] evidencePks = ['e-'+str(e['id']) for e in output['evidence']] if len(evidencePks + textPks) <= 1: output['topics'] = [] output['evidenceTextTopicMap'] = [] else: output['topics'], output['evidenceTextTopicMap'] = getTopicsForDocuments(evidencePks + textPks, abstracts + contents) return HttpResponse(json.dumps(output), status=status.HTTP_201_CREATED)