.
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
{% for output in outputs %}
|
||||
|
||||
<tr>
|
||||
<td>{{output.name}}</td>
|
||||
<td>Radiology {{output.name}}</td>
|
||||
<td>Order</td>
|
||||
<td>{{output.field_seq}}</td>
|
||||
|
||||
@@ -35,6 +35,25 @@
|
||||
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
<h3>Codesets</h3>
|
||||
|
||||
<table>
|
||||
|
||||
<tr><th>Codeset</th><th>Option</th></tr>
|
||||
{% for codeset, options in codesets %}
|
||||
|
||||
|
||||
{% for option in options %}
|
||||
<tr><td>{{codeset}}</td><td>{{option}}</td></tr>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
+81
-44
@@ -9,6 +9,7 @@ from django.views.generic.detail import DetailView
|
||||
from atlas.models import Subspecialty
|
||||
|
||||
from .models import Entry, Formats
|
||||
|
||||
# Create your views here.
|
||||
from .tables import EntryTable
|
||||
from .filters import EntryFilter
|
||||
@@ -17,34 +18,38 @@ from django.contrib.auth.decorators import user_passes_test
|
||||
|
||||
from django_tables2 import SingleTableView, SingleTableMixin
|
||||
|
||||
|
||||
class EntryUpdateView(UpdateView):
|
||||
model = Entry
|
||||
template_name = "oef/entry_update_view.html"
|
||||
fields = ['modality', 'exam_code', 'exam_name', 'questions', 'comments', "inactive"]
|
||||
fields = ["modality", "exam_code", "exam_name", "questions", "comments", "inactive"]
|
||||
|
||||
|
||||
class EntryDetailView(DetailView):
|
||||
model = Entry
|
||||
template_name = "oef/entry_detail_view.html"
|
||||
|
||||
|
||||
class FormatsCreateView(CreateView):
|
||||
model = Formats
|
||||
template_name_suffix = "_update_form"
|
||||
fields = ['name', 'format', 'inherits']
|
||||
fields = ["name", "format", "inherits"]
|
||||
|
||||
|
||||
class FormatsForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Formats
|
||||
fields = ['name', 'format', 'specialties', 'inherits']
|
||||
widgets = {
|
||||
'specialties': forms.CheckboxSelectMultiple()}
|
||||
fields = ["name", "format", "specialties", "inherits"]
|
||||
widgets = {"specialties": forms.CheckboxSelectMultiple()}
|
||||
|
||||
|
||||
class FormatsUpdateView(UpdateView):
|
||||
model = Formats
|
||||
template_name_suffix = "_update_form"
|
||||
#fields = ['name', 'format', 'specialties', 'inherits']
|
||||
# fields = ['name', 'format', 'specialties', 'inherits']
|
||||
form_class = FormatsForm
|
||||
|
||||
|
||||
class EntryTableView(SingleTableMixin, FilterView):
|
||||
model = Entry
|
||||
table_class = EntryTable
|
||||
@@ -53,16 +58,17 @@ class EntryTableView(SingleTableMixin, FilterView):
|
||||
|
||||
filterset_class = EntryFilter
|
||||
|
||||
|
||||
@dataclass
|
||||
class FormatOutput:
|
||||
name: str
|
||||
action: str=""
|
||||
field_seq: int=100
|
||||
field_label:str=""
|
||||
field_name:str=""
|
||||
field_status:str=""
|
||||
field_type:str=""
|
||||
field_codeset:str=""
|
||||
action: str = ""
|
||||
field_seq: int = 100
|
||||
field_label: str = ""
|
||||
field_name: str = ""
|
||||
field_status: str = ""
|
||||
field_type: str = ""
|
||||
field_codeset: str = ""
|
||||
|
||||
|
||||
def output(request):
|
||||
@@ -75,7 +81,6 @@ def output(request):
|
||||
codesets = []
|
||||
codeset_start = 100000
|
||||
|
||||
|
||||
for format in formats:
|
||||
seq = 100
|
||||
questions = format.format.strip().split("---")
|
||||
@@ -105,30 +110,38 @@ def output(request):
|
||||
case _:
|
||||
field_type = "unknown"
|
||||
|
||||
o = FormatOutput(format.name, field_label=name, field_name=name, field_seq=seq, field_status=status, field_type=field_type)
|
||||
|
||||
o = FormatOutput(
|
||||
format.name,
|
||||
field_label=name,
|
||||
field_name=name,
|
||||
field_seq=seq,
|
||||
field_status=status,
|
||||
field_type=field_type,
|
||||
)
|
||||
|
||||
if field_type == "CODESET":
|
||||
o.field_codeset = codeset_start
|
||||
|
||||
codeset_start = codeset_start + 1
|
||||
|
||||
outputs.append(o)
|
||||
codesets.append((codeset_start, other))
|
||||
|
||||
codeset_start = codeset_start + 1
|
||||
|
||||
outputs.append(o)
|
||||
|
||||
seq = seq + 100
|
||||
|
||||
return render(
|
||||
request,
|
||||
"oef/output.html",
|
||||
{"formats": formats, "outputs": outputs, "codesets": codesets},
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return render(request, "oef/output.html", {"formats": formats, "outputs": outputs})
|
||||
|
||||
def formats_view(request):
|
||||
formats = Formats.objects.all()
|
||||
return render(request, "oef/formats_view.html", {"formats": formats})
|
||||
|
||||
|
||||
@user_passes_test(lambda u: u.is_superuser)
|
||||
def formats_delete(request, pk):
|
||||
f = get_object_or_404(Formats, pk=pk)
|
||||
@@ -137,7 +150,6 @@ def formats_delete(request, pk):
|
||||
return HttpResponse("Format deleted")
|
||||
|
||||
|
||||
|
||||
def formats_apply(request, pk):
|
||||
format = get_object_or_404(Formats, pk=pk)
|
||||
|
||||
@@ -148,7 +160,12 @@ def formats_apply(request, pk):
|
||||
entry_list = []
|
||||
for entry in entries:
|
||||
entry_list.append((entry, entry.questions.replace(search_text, "")))
|
||||
return render(request, "oef/formats_apply.html", {"format": format, "entry_list": entry_list, "entries": entries})
|
||||
return render(
|
||||
request,
|
||||
"oef/formats_apply.html",
|
||||
{"format": format, "entry_list": entry_list, "entries": entries},
|
||||
)
|
||||
|
||||
|
||||
def entry_detail_formats(request, pk):
|
||||
entry = get_object_or_404(Entry, pk=pk)
|
||||
@@ -163,7 +180,12 @@ def entry_detail_formats(request, pk):
|
||||
|
||||
matching_formats = sorted(matching_formats, key=lambda x: len(x.get_format()))
|
||||
|
||||
return render(request, "oef/entry_detail_formats.html", {"entry": entry, "matching_formats": matching_formats})
|
||||
return render(
|
||||
request,
|
||||
"oef/entry_detail_formats.html",
|
||||
{"entry": entry, "matching_formats": matching_formats},
|
||||
)
|
||||
|
||||
|
||||
def replace_questions(request):
|
||||
if request.method == "POST":
|
||||
@@ -191,20 +213,24 @@ def replace_questions(request):
|
||||
else:
|
||||
return render(request, "oef/replace_questions.html", {})
|
||||
|
||||
|
||||
def entries(request):
|
||||
entries = Entry.objects.all().order_by("exam_code")
|
||||
return render(request, "oef/entries.html", {"entries": entries})
|
||||
|
||||
|
||||
def format_search(request):
|
||||
if request.method == "POST":
|
||||
search = request.POST.get("search")
|
||||
|
||||
entries = Entry.objects.filter(questions__icontains=search, inactive=False)
|
||||
|
||||
|
||||
|
||||
return render(request, "oef/format_search_results.html", {"entries": entries})
|
||||
return render(request, "oef/format_search.html",)
|
||||
return render(
|
||||
request,
|
||||
"oef/format_search.html",
|
||||
)
|
||||
|
||||
|
||||
def subspecialties(request):
|
||||
subspecialties = Subspecialty.objects.all()
|
||||
@@ -217,13 +243,15 @@ def subspecialties(request):
|
||||
("Nuclear Medicine", Formats.objects.filter(name__startswith="NM"))
|
||||
)
|
||||
|
||||
return render(request, "oef/subspecialties.html", context={
|
||||
"format_map": format_map
|
||||
})
|
||||
return render(
|
||||
request, "oef/subspecialties.html", context={"format_map": format_map}
|
||||
)
|
||||
|
||||
|
||||
def questions(request):
|
||||
questions = set(Entry.objects.filter(inactive=False).values_list("questions", flat=True))
|
||||
questions = set(
|
||||
Entry.objects.filter(inactive=False).values_list("questions", flat=True)
|
||||
)
|
||||
|
||||
questions = sorted(questions, key=lambda x: len(x))
|
||||
|
||||
@@ -236,7 +264,12 @@ def questions(request):
|
||||
format = None
|
||||
questions_and_formats.append((question, format))
|
||||
|
||||
return render(request, "oef/questions.html", {"questions": questions, "questions_and_formats": questions_and_formats})
|
||||
return render(
|
||||
request,
|
||||
"oef/questions.html",
|
||||
{"questions": questions, "questions_and_formats": questions_and_formats},
|
||||
)
|
||||
|
||||
|
||||
def entries_by_question(request):
|
||||
|
||||
@@ -245,19 +278,23 @@ def entries_by_question(request):
|
||||
entries = Entry.objects.filter(questions=question, inactive=False)
|
||||
|
||||
return render(request, "oef/entries_by_question.html", {"entries": entries})
|
||||
|
||||
|
||||
return HttpResponse("Please provide a question")
|
||||
|
||||
|
||||
def entries_by_question_codes(request):
|
||||
|
||||
if request.method == "POST":
|
||||
question = request.POST.get("question")
|
||||
entries = Entry.objects.filter(questions=question, inactive=False)
|
||||
|
||||
return render(request, "oef/entries_by_question_codes.html", {"entries": entries})
|
||||
|
||||
return render(
|
||||
request, "oef/entries_by_question_codes.html", {"entries": entries}
|
||||
)
|
||||
|
||||
return HttpResponse("Please provide a question")
|
||||
|
||||
|
||||
def questions_diff(request):
|
||||
if request.method == "POST":
|
||||
question1 = request.POST.get("question1", False)
|
||||
@@ -273,12 +310,14 @@ def questions_diff(request):
|
||||
|
||||
return HttpResponse("Please provide two questions")
|
||||
|
||||
|
||||
def questions_sym(request):
|
||||
if request.method == "POST":
|
||||
question = request.POST.get("question")
|
||||
|
||||
questions = set(Entry.objects.filter(inactive=False).values_list("questions", flat=True))
|
||||
|
||||
questions = set(
|
||||
Entry.objects.filter(inactive=False).values_list("questions", flat=True)
|
||||
)
|
||||
|
||||
output = []
|
||||
for q in questions:
|
||||
@@ -291,7 +330,6 @@ def questions_sym(request):
|
||||
|
||||
return render(request, "oef/questions_sym.html", {"output": output})
|
||||
|
||||
|
||||
return HttpResponse("Please provide a question set")
|
||||
|
||||
|
||||
@@ -311,8 +349,7 @@ def formats_save(request):
|
||||
return HttpResponse("Format questions already exists")
|
||||
|
||||
Formats.objects.create(name=format_name, format=question)
|
||||
|
||||
|
||||
return HttpResponse("Format saved")
|
||||
|
||||
|
||||
return HttpResponse("Please provide a question")
|
||||
return HttpResponse("Please provide a question")
|
||||
|
||||
Reference in New Issue
Block a user