From 9fe8c843ffe857a3f85f7a5068da2c812d23319b Mon Sep 17 00:00:00 2001 From: Ross Date: Wed, 17 Jul 2024 22:18:43 +0100 Subject: [PATCH] try to add priors to ohif --- atlas/models.py | 24 ++++++++++++++++--- .../atlas/collection_case_view_take.html | 4 ++-- atlas/urls.py | 5 ++++ atlas/views.py | 7 ++++++ 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/atlas/models.py b/atlas/models.py index ee26a74c..7637dcc3 100644 --- a/atlas/models.py +++ b/atlas/models.py @@ -423,7 +423,7 @@ class Case(models.Model, AuthorMixin, QuestionMixin): examinations = [series.get_examination() for series in self.series.all()] return f"{self.pk}:{self.title} {'/'.join([str(c) for c in self.condition.all()])} [{', '.join(examinations)}]" - def get_case_dicom_json(self, case_title_as_patient_name=True): + def get_case_dicom_json(self, case_title_as_patient_name=True, priors=None): series_json = [] for series in self.series.all(): series_json.append(series.get_series_dicom_json()) @@ -432,7 +432,7 @@ class Case(models.Model, AuthorMixin, QuestionMixin): if case_title_as_patient_name: patient_name = self.title - return { + studies_json = { "studies": [ { "StudyInstanceUID": "1.3.6.1.4.1.14519.5.2.1.6279.6001.298806137288633453246975630178", @@ -446,8 +446,26 @@ class Case(models.Model, AuthorMixin, QuestionMixin): "series": series_json, } ] + } - pass + + if priors is not None: + for prior in priors: + studies_json["studies"].append( + { + "StudyInstanceUID": "1.3.6.1.4.1.14519.5.2.1.6279.6001.298806137288633453246975630177", + "StudyDate": "20000101", + "StudyTime": "", + "PatientName": patient_name, + "PatientID": "LIDC-IDRI-0001", + "AccessionNumber": "", + "PatientAge": "", + "PatientSex": "", + "series": prior.prior_case.get_series_dicom_json(), + } + ) + + return studies_json def get_viva_details(self): return { diff --git a/atlas/templates/atlas/collection_case_view_take.html b/atlas/templates/atlas/collection_case_view_take.html index 5d2fe7c2..23a4c75a 100644 --- a/atlas/templates/atlas/collection_case_view_take.html +++ b/atlas/templates/atlas/collection_case_view_take.html @@ -46,14 +46,14 @@ {% if collection.show_ohif_viewer %}
- +
{% endif %} {% if collection.show_ohif_viewer_link %}
- View case in OHIF + View case in OHIF
{% endif %} diff --git a/atlas/urls.py b/atlas/urls.py index 3acc6763..6cdb342f 100755 --- a/atlas/urls.py +++ b/atlas/urls.py @@ -121,6 +121,11 @@ urlpatterns = [ views.collection_case_priors, name="collection_case_priors", ), + path( + "collection//case//dicom_json", + views.collection_case_dicom_json, + name="collection_case_dicom_json", + ), path( "collection//question_schemas", views.collection_question_schemas, diff --git a/atlas/views.py b/atlas/views.py index 49f28625..453fbd63 100755 --- a/atlas/views.py +++ b/atlas/views.py @@ -2326,6 +2326,13 @@ def use_dates_as_descriptions(request, pk): return HttpResponse("Done") +def collection_case_dicom_json(request, exam_id, case_id): + case_detail = CaseDetail.objects.get(case=case_id, collection=exam_id) + + priors = case_detail.caseprior_set.all() + + return JsonResponse(case_detail.case.get_case_dicom_json(priors=priors)) + def case_dicom_json(request, pk): case = get_object_or_404(Case, pk=pk)