further improvements
This commit is contained in:
+24
-5
@@ -32,6 +32,11 @@ class SeriesSchema(ModelSchema):
|
||||
def resolve_case_id(obj):
|
||||
return [i.id for i in obj.case.all()]
|
||||
|
||||
class CaseSchema(ModelSchema):
|
||||
class Config:
|
||||
model = Case
|
||||
model_fields = ["id", "title"]
|
||||
|
||||
|
||||
@router.post("/upload_dicom", auth=django_auth)
|
||||
def upload_dicom(request, files: List[UploadedFile] = File(...)):
|
||||
@@ -73,9 +78,7 @@ def uncategorised_dicoms(request):
|
||||
|
||||
return data
|
||||
|
||||
|
||||
@router.get("/import_dicoms", auth=django_auth, response=List[SeriesSchema])
|
||||
def import_dicoms(request):
|
||||
def import_dicoms_helper(request, case_id: int | None=None):
|
||||
dicoms = UncategorisedDicom.objects.filter(user=request.user)
|
||||
|
||||
data = defaultdict(list)
|
||||
@@ -104,16 +107,30 @@ def import_dicoms(request):
|
||||
# We might only want to add the author during creation....
|
||||
series.author.add(request.user)
|
||||
|
||||
if case_id is not None:
|
||||
series.case.add(case_id)
|
||||
|
||||
for dicom, dicom_tags in data[series_uid]:
|
||||
series_image = SeriesImage(image=dicom.image, series=series)
|
||||
series_image.save()
|
||||
dicom.image.delete()
|
||||
#dicom.image.delete()
|
||||
|
||||
dicom.delete()
|
||||
series_list.append(series)
|
||||
|
||||
return series_list
|
||||
|
||||
|
||||
@router.get("/import_dicoms", auth=django_auth, response=List[SeriesSchema])
|
||||
def import_dicoms(request):
|
||||
|
||||
return import_dicoms_helper(request)
|
||||
|
||||
@router.get("/import_dicoms/{case_id}", auth=django_auth, response=List[SeriesSchema])
|
||||
def import_dicoms_case(request, case_id: int):
|
||||
|
||||
return import_dicoms_helper(request, case_id=case_id)
|
||||
|
||||
@router.get("/orphan_series", auth=django_auth, response=List[SeriesSchema])
|
||||
def orphan_series(request):
|
||||
#print(request.user.series.filter(case=None))
|
||||
@@ -137,4 +154,6 @@ def series_remove_duplicate_images(request, series_id: int):
|
||||
|
||||
return len(dupes)
|
||||
|
||||
|
||||
@router.get("/get_cases_user", auth=django_auth, response=List[CaseSchema])
|
||||
def get_cases_user(request):
|
||||
return Case.objects.filter(author=request.user)
|
||||
Reference in New Issue
Block a user