Add Procedure model and integrate into CaseForm; update views and templates for procedure handling

This commit is contained in:
Ross
2026-02-16 14:04:37 +00:00
parent c61f92ae9e
commit a51a5c8d54
7 changed files with 141 additions and 1 deletions
+35
View File
@@ -118,6 +118,7 @@ from .models import (
UserReportAnswer,
PrerequisiteRequired
)
from .models import Procedure
from .models import NormalCase
from .tables import (
CaseCollectionTable,
@@ -590,6 +591,7 @@ def get_case_for_case_detail(pk: int) -> Case:
),
Prefetch("subspecialty", queryset=Subspecialty.objects.all()),
Prefetch("condition", queryset=Condition.objects.all()),
Prefetch("procedures", queryset=Procedure.objects.all()),
Prefetch("presentation", queryset=Presentation.objects.all()),
Prefetch("pathological_process", queryset=PathologicalProcess.objects.all()),
Prefetch("caseresource_set", queryset=CaseResource.objects.all()),
@@ -1198,6 +1200,23 @@ def presentation_detail(request, pk):
)
@login_required
def procedure_detail(request, pk):
procedure = get_object_or_404(Procedure, pk=pk)
# Cases that have this procedure
cases = Case.objects.filter(procedures__id=procedure.pk)
return render(
request,
"atlas/procedure_detail.html",
{
"procedure": procedure,
"cases": cases,
},
)
@login_required
# @user_is_atlas_editor
def pathological_process_detail(request, pk):
@@ -2985,6 +3004,22 @@ class ConditionAutocomplete(autocomplete.Select2QuerySetView):
return qs
class ProcedureAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
if not self.request.user.is_authenticated:
return Procedure.objects.none()
qs = Procedure.objects.all()
if self.q:
try:
qs = qs.filter(name__icontains=self.q)
except FieldError:
return Procedure.objects.none()
return qs
class ConditionAutocompleteRCRCurriculum(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Don't forget to filter out results depending on the visitor !