def single_patient(request, patient_id): patient = loader.get_patient(patient_id) xforms = CXFormInstance.view("patient/xforms", key=patient.get_id, include_docs=True) encounter_types = get_encounters(patient) options = TouchscreenOptions.default() # TODO: are we upset about how this breaks MVC? options.nextbutton.show = False options.backbutton = ButtonOptions(text="BACK", link=reverse("patient_select")) encounters = sorted(patient.encounters, key=lambda encounter: encounter.visit_date, reverse=True) # TODO: figure out a way to do this more centrally # Inject cases into encounters so we can show them linked in the view for encounter in patient.encounters: if encounter.get_xform(): encounter.dynamic_data["classification"] = get_classification(encounter.get_xform().namespace) encounter.dynamic_data["cases"] = [] for case in patient.cases: if case.encounter_id == encounter.get_id: encounter.dynamic_data["cases"].append(case) return render_to_response(request, "patient/single_patient_touchscreen.html", {"patient": patient, "encounters": encounters, "xforms": xforms, "encounter_types": encounter_types, "options": options })
def wrapped_view(request, *args, **kwargs): site = get_current_site() if site.type.slug in aggregation_levels: return view_func(request, *args, **kwargs) else: return render_to_response("bad_permissions.html", {"options": TouchscreenOptions.default()}, context_instance = RequestContext(request))
def not_found(request, template_name='404.html'): """ 404 error handler. """ t = loader.get_template(template_name) return HttpResponseServerError(t.render(RequestContext(request, {'STATIC_URL': settings.STATIC_URL, "options": TouchscreenOptions.default()})))
def server_error(request, template_name='500.html'): """ 500 error handler. """ # hat tip: http://www.arthurkoziel.com/2009/01/15/passing-mediaurl-djangos-500-error-view/ t = loader.get_template(template_name) return HttpResponseServerError(t.render(RequestContext(request, {'STATIC_URL': settings.STATIC_URL, "options": TouchscreenOptions.default()})))
def single_encounter(request, patient_id, encounter_id): patient = loader.get_patient(patient_id) encounters = [enc for enc in patient.encounters if enc.get_id == encounter_id] if not encounters: raise Exception("No matching encounter for id %s in patient %s" % (encounter_id, patient_id)) encounter = encounters[0] return render_to_response(request, "encounter/single_encounter.html", {"patient": patient, "encounter": encounter, "options": TouchscreenOptions.default()})
def clinic_report(request, view_name): url = reverse(view_name) view, args, kwargs = resolve(url) options = TouchscreenOptions.default() options.header = view.__doc__ options.backbutton = ButtonOptions(show=True, link=reverse("report_list"), text="BACK") return render_to_response(request, "reports/clinic_report_wrapper.html", {"options": options, "url": url})
def patient_case(request, patient_id, case_id): pat = CPatient.get(patient_id) found_case = None for case in pat.cases: if case.get_id == case_id: found_case = case break return render_to_response(request, "case/single_case.html", {"patient": pat, "case": found_case, "options": TouchscreenOptions.default()})
def test(request): dynamic = string_to_boolean(request.GET["dynamic"]) if "dynamic" in request.GET else True template = request.GET["template"] if "template" in request.GET \ else "touchscreen/example-inner.html" header = request.GET["header"] if "header" in request.GET \ else "Hello World!" pat_id = request.GET["id"] if "id" in request.GET \ else "000000000001" try: patient = loader.get_patient(pat_id) except Exception: patient = None if dynamic: return render_to_response(request, "touchscreen/wrapper-dynamic.html", {"header": header, "template": template, "patient": patient, "options": TouchscreenOptions.default()}) else: return render_to_response(request, template, {"patient": patient, "options": TouchscreenOptions.default()})
def clinic_landing_page(req): return render_to_response(req, "clinic_landing_page.html", {"options": TouchscreenOptions.default(), "can_power_down_server": settings.BHOMA_CAN_POWER_DOWN_SERVER})
def report_list(request): template = "reports/report_list_ts.html" if is_clinic() else "reports/report_list.html" return render_to_response(request, template, {"options": TouchscreenOptions.default()})