.
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user