KitwareMedical / otm-server

Apache License 2.0
0 stars 2 forks source link

Ensure 'name' field in image metadata during analysis #91

Closed jjnesbitt closed 2 years ago

jjnesbitt commented 2 years ago

Closes #86

This also updates the upload batch endpoint to return an error if the user tries to upload a batch that has no new images (i.e. if they tried to upload the same csv twice).

jjnesbitt commented 2 years ago

@ebrahimebrahim before running anything, you'll need to run

docker-compose run --rm django ./manage.py migrate

to include the new db constraint.

jjnesbitt commented 2 years ago

When trying this locally, I now get:

celery_1    | [2022-08-12 19:47:37,457: INFO/MainProcess] Task optimal_transport_morphometry.core.tasks.run_utm[7d82da1d-ebe0-44a8-ab6b-84f392bea23c] received
celery_1    | [2022-08-12 19:47:37,464: ERROR/ForkPoolWorker-1] Task optimal_transport_morphometry.core.tasks.run_utm[7d82da1d-ebe0-44a8-ab6b-84f392bea23c] raised unexpected: KeyError('name')
celery_1    | Traceback (most recent call last):
celery_1    |   File "/usr/local/lib/python3.9/dist-packages/celery/app/trace.py", line 451, in trace_task
celery_1    |     R = retval = fun(*args, **kwargs)
celery_1    |   File "/usr/local/lib/python3.9/dist-packages/celery/app/trace.py", line 734, in __protected_call__
celery_1    |     return self.run(*args, **kwargs)
celery_1    |   File "/opt/django-project/optimal_transport_morphometry/core/tasks.py", line 152, in run_utm
celery_1    |     meta['name'].setdefault('name', image.name)
celery_1    | KeyError: 'name'

:facepalm: That was a dumb error on my part, it should be good now.

ebrahimebrahim commented 2 years ago

Analysis fully works for me now! Ready to merge