diff --git a/atlas/static/atlas/js/markup_inserter.js b/atlas/static/atlas/js/markup_inserter.js
index d58db45c..f60dfbfc 100644
--- a/atlas/static/atlas/js/markup_inserter.js
+++ b/atlas/static/atlas/js/markup_inserter.js
@@ -293,9 +293,9 @@
function getDetailUrl(type, pk){
if(!type || !pk) return null;
- if(type === 'seriesfinding') return window.location.origin + '/atlas/series_finding/' + pk + '/details/';
+ if(type === 'seriesfinding') return window.location.origin + '/atlas/series_finding/' + pk + '/preview/';
if(type === 'finding') return window.location.origin + '/atlas/finding/' + pk;
- if(type === 'displayset') return window.location.origin + '/' + 'atlas/' + pk + '/display_sets/detail';
+ if(type === 'displayset') return window.location.origin + '/atlas/displayset/' + pk + '/preview/';
if(type === 'case') return window.location.origin + '/atlas/case/' + pk + '/';
return null;
}
diff --git a/atlas/templates/atlas/partials/_displayset_preview.html b/atlas/templates/atlas/partials/_displayset_preview.html
new file mode 100644
index 00000000..1c14985b
--- /dev/null
+++ b/atlas/templates/atlas/partials/_displayset_preview.html
@@ -0,0 +1,12 @@
+
+
Display Set
+
+
Name: {{ ds.name|default:'(unnamed)' }}
+ {% if ds.description %}
+
{{ ds.description }}
+ {% endif %}
+
+
diff --git a/atlas/templates/atlas/partials/_seriesfinding_preview.html b/atlas/templates/atlas/partials/_seriesfinding_preview.html
new file mode 100644
index 00000000..41ead413
--- /dev/null
+++ b/atlas/templates/atlas/partials/_seriesfinding_preview.html
@@ -0,0 +1,18 @@
+
+
Series Finding
+
Series: {% if finding.series %}
{{ finding.series.get_block|truncatechars:80 }}{% else %}—{% endif %}
+
{{ finding.description|default:'(no description)' }}
+ {% if finding.findings.all %}
+
Findings:
+
+ {% for f in finding.findings.all %}
+ - {{ f.name }}
+ {% endfor %}
+
+
+ {% endif %}
+
+
diff --git a/atlas/urls.py b/atlas/urls.py
index 9645a34f..a825ba1d 100755
--- a/atlas/urls.py
+++ b/atlas/urls.py
@@ -397,6 +397,7 @@ urlpatterns = [
path("/display_sets/edit", views.case_displaysets_edit, name="case_displaysets_edit"),
path("/display_sets/detail", views.case_displaysets_detail, name="case_displaysets_detail"),
path("/display_sets/modal", views.case_displaysets_modal, name="case_displaysets_modal"),
+ path('displayset//preview/', views.displayset_preview, name='displayset_preview'),
path("/display_sets/delete", views.case_displaysets_delete, name="case_displaysets_delete"),
path(
"case//dicom_json",
@@ -433,6 +434,7 @@ urlpatterns = [
path('series///remove-from-case/', views.remove_series_from_case, name='remove_series_from_case'),
path('series/bulk-delete/', views.series_bulk_delete, name='series_bulk_delete'),
path('series_finding//details/', views.series_finding_details, name='series_finding_details'),
+ path('series_finding//preview/', views.series_finding_preview, name='series_finding_preview'),
path('series_finding/migration-status/', views.seriesfinding_migration_status, name='seriesfinding_migration_status'),
path("uncategorised_dicoms/", views.uncategorised_dicoms, name="uncategorised_dicoms_view"),
path("question_schema/", views.QuestionSchemaView.as_view(), name="question_schema_overview"),
diff --git a/atlas/views.py b/atlas/views.py
index 299b2caf..3812eb58 100755
--- a/atlas/views.py
+++ b/atlas/views.py
@@ -725,6 +725,12 @@ def case_displaysets_modal(request, pk):
can_edit = False
return render(request, 'atlas/case_displayset_modal.html', {'ds': displayset, 'can_edit': can_edit})
+
+def displayset_preview(request, pk):
+ """Return a compact HTML fragment summarising a CaseDisplaySet for popups/modals."""
+ displayset = get_object_or_404(CaseDisplaySet, pk=pk)
+ return render(request, 'atlas/partials/_displayset_preview.html', {'ds': displayset})
+
def case_displaysets_delete(request, pk):
try:
displayset = CaseDisplaySet.objects.get(pk=pk)
@@ -6157,6 +6163,13 @@ def series_finding_details(request, finding_id):
finding = get_object_or_404(SeriesFinding, pk=finding_id)
return render(request, 'atlas/series_finding_details.html', {'finding': finding})
+
+@login_required
+def series_finding_preview(request, finding_id):
+ """Return a small HTML fragment summarising a SeriesFinding for popups/modals."""
+ finding = get_object_or_404(SeriesFinding, pk=finding_id)
+ return render(request, 'atlas/partials/_seriesfinding_preview.html', {'finding': finding})
+
@login_required
def series_finding_related(request, series_id):
series = get_object_or_404(Series, pk=series_id)