def review_candidate(request, candidate_id): try: review_result = json.loads(request.body)['review_result'] except Exception as e: return Response({'response': "An error occurred: {}".format(e)}, 500) if review_result is None: review_result = enums.CandidateReviewResult.NONE review_choices = [result.value for result in enums.CandidateReviewResult] if review_result not in review_choices: return Response( { 'response': "ValueError: review_result must be one of {}".format( review_choices) }, 500) candidate = Candidate.objects.get(pk=candidate_id) candidate.review_result = review_result candidate.save() serialized_candidate = serializers.CandidateSerializer(candidate, context={ 'request': None }).data append_files_to_candidate(serialized_candidate) return Response(serialized_candidate)
def candidates_info(request): all_candidates = Candidate.objects.prefetch_related('case__series').all() serialized_candidates = serializers.CandidateSerializer(all_candidates, context={'request': None}, many=True).data return Response(serialized_candidates)
def candidates_info(request): all_candidates = Candidate.objects.prefetch_related('case__series').all() serialized_candidates = serializers.CandidateSerializer(all_candidates, context={ 'request': None }, many=True).data # append DICOM files to response [ append_files_to_candidate(candidate) for candidate in serialized_candidates ] return Response(serialized_candidates)
def candidates_info(request): all_candidates = Candidate.objects.prefetch_related('case__series').all() serialized_candidates = serializers.CandidateSerializer(all_candidates, context={ 'request': None }, many=True).data # append DICOM files to response for candidate in serialized_candidates: series = candidate['case']['series'] if 'files' not in series: # using `glob1` as it returns filenames without a directory path series['files'] = glob.glob1(series['uri'], '*.dcm') return Response(serialized_candidates)
def update_candidate_location(request, candidate_id): try: request_body = json.loads(request.body) x = request_body['x'] y = request_body['y'] z = request_body['z'] except Exception as e: return Response({'response': "An error occurred: {}".format(e)}, 500) # find the candidate and update the centroid location candidate = get_object_or_404(Candidate, pk=candidate_id) candidate.centroid.x = x candidate.centroid.y = y candidate.centroid.z = z candidate.centroid.save() serialized_candidate = serializers.CandidateSerializer(candidate, context={'request': None}).data return Response(serialized_candidate)