Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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)