This commit is contained in:
Ross
2024-10-28 10:34:03 +00:00
parent 7981684005
commit 21fa4739ee
3 changed files with 33 additions and 8 deletions
+8
View File
@@ -31,6 +31,14 @@ def get_assessor(request):
return queryset
class OutcomeFilter(django_filters.FilterSet):
class Meta:
model = Item
fields = {
"outcome": ["exact"],
}
class ItemFilter(django_filters.FilterSet):
assigned_to_radiology = django_filters.ModelMultipleChoiceFilter(
queryset=get_rad, null_label="No user"
+15 -5
View File
@@ -3,9 +3,19 @@
{% block content %}
<h1>Radiology Gap Analysis</h1>
<details>
<summary>Filter</summary>
<form method="get">
{{ item_filter.form.as_p }}
<input type="submit" />
</form>
</details>
<p>This page lists all of the radiology categories and the items that exist within them. The items are grouped by category.</p>
<button _='on click toggle .visible on .id'> Toggle IDs</button>
<br/>
{% comment %} <br/>
Show outcomes
{% for outcome in outcomes %}
@@ -13,12 +23,12 @@ Show outcomes
<label for="{{outcome.name}}">{{outcome.name}}</label><input type="checkbox" name="{{outcome.name}}" value="{{outcome}}" checked
_="on click if me.checked show .outcome-{{outcome.id}} else hide .outcome-{{outcome.id}} end">
</span>
{% endfor %}
{% endfor %} {% endcomment %}
{% for category in categories %}
{% for category, items in filtered_categories %}
<h2>{{category.name}}</h2>
@@ -33,7 +43,7 @@ _="on click if me.checked show .outcome-{{outcome.id}} else hide .outcome-{{outc
<th>Radiology condition</th>
</tr>
{% for item in category.items_radiology.all %}
{% for item in items %}
<tr class="outcome-{{item.outcome.id}}">
<td class="id">{{item.rcr_platform_id}}</td>
<td>{{item.name}}</td>
@@ -47,7 +57,7 @@ _="on click if me.checked show .outcome-{{outcome.id}} else hide .outcome-{{outc
</table>
<p>
Item count: {{category.items_radiology.count}}
Item count: {{items.count}}
</p>
{% endfor %}
+10 -3
View File
@@ -11,7 +11,7 @@ from django.contrib.auth.models import User
from django.contrib.auth.decorators import user_passes_test
from django.db.models import Q
from rcr.filters import ItemFilter
from rcr.filters import ItemFilter, OutcomeFilter
from rcr.models import Item, Outcome, RadiologyCategory
from rcr.forms import AssessorAssignmentForm, ItemForm
@@ -76,17 +76,24 @@ def radiology_review(request):
def radiology_gap(request):
#items = Item.objects.all().prefetch_related("assessed_by")
item_filter = ItemFilter(request.GET, queryset=Item.objects.all().prefetch_related("assessed_by"))
items = item_filter.qs.prefetch_related("assessed_by")
item_filter = OutcomeFilter(request.GET, queryset=Item.objects.all().prefetch_related("assessed_by"))
items = item_filter.qs
categories = RadiologyCategory.objects.all().order_by("name").prefetch_related("items_radiology", "items_radiology__level", "items_radiology__radiology_condition")
filtered_categories = []
for category in categories:
filtered_categories.append((category, item_filter.qs.intersection(category.items_radiology.all())))
conditions = Condition.objects.all().order_by("name")
outcomes = Outcome.objects.all().order_by("name")
return render(request, "rcr/gap.html", {"items": items,
"item_filter": item_filter,
"filtered_categories": filtered_categories,
"categories": categories,
"conditions": conditions,
"outcomes": outcomes,