[% META title="Report" %] [% # handles initial report, (optional) authorisation and diagnosis revision: # 'authorisation_request' tt_param blocks loading of diagnosis, revision and # morphology/comment fields, and previous diagnoses list, and # disables all text, radio & checkbox fields - only diagnosis_id required # 'pre-authorisation-check' query param sets 'revision' field to optional %] [% # PROCESS dumper.tt dump = # data.as_tree # c.session.param('UserProfile'); # c.stash.errs; # history.reported; # data.request_report.diagnosis; # previous_cases; # result_summaries; # unresulted_tests; # raw_lab_test_data; # lab_section_notes; # previous_diagnoses_data; # request_options; # unrecognised_clinical_details; # unrecognised_comment_words; # unrecognised_biopsy_site_words; # highlighted_comment; # diagnosis_change_options; # unrecognised; # specimen_map; # outreach.demographics; # special_formatting; # url_with_path # outstanding_tests; %] [% # define some data structures: # c.debug('##############'); # to reveal any db calls from templates patient = data.patient_case.patient; # not as_tree - preserve datetime objects request_data = data.as_tree; # preserve 'data' in case it's overwritten in PROCESS's # PROCESS dumper.tt dump = request_data; is_outreach = specimen_map.item(data.id).sample_code.join(' ').match('CMP') AND c.cfg('settings').have_outreach; report_data = draft_report_data || request_data.request_report; # save multiple lookups if undefined # PROCESS dumper.tt dump = report_data; this_user = c.session.param('UserProfile'); %] [% PROCESS site/popup.tt height=280, width=800, top=280 %] [% # PROCESS site/js/jquery.tt # already loaded in html_wrapper %] [% INCLUDE site/js/openSpellChecker.tt form_name = 'reportForm' %] [% IF authorisation_request; this_form_action = 'pre_authorisation_check'; this_onsubmit = pre_authorisation_check_onsubmit; this_dfv_js = pre_authorisation_check_dfv_js; ELSE; this_form_action = 'update_report'; this_onsubmit = report_onsubmit; this_dfv_js = report_dfv_js; END; %] [% IF dfv_errors %]

[% c.cfg('msg').dfv_errors %]

[% END %] [% this_dfv_js # set above %] [% PROCESS record/content_header.tt %] [% INCLUDE site/previous_requests.tt # don't use PROCESS or 'data' gets clobbered %] [% patient_notes = patient.patient_note || outreach.demographics.patient_notes %]

Patient notes:

[% PROCESS report/test_summary.tt %] [% PROCESS report/result_summary.tt IF result_summaries.size %] [% IF lab_section_notes.size AND c.cfg('settings').report_display_notes.match('yes'); # create id => section_name map: FOREACH section IN raw_lab_test_data.all_lab_sections; # PROCESS dumper.tt dump = section.as_tree; lab_sections.${section.id} = section.section_name; END; # PROCESS dumper.tt dump = lab_sections; %]

Section notes: [% div_name = 'notes'; INCLUDE site/snippets/toggleview.tt %]

[% FOREACH section IN lab_section_notes; %]

[% lab_sections.item(section.key) %]: [% section.value %]

[% END %]
[% END %] [% IF outstanding_tests.size; # PROCESS dumper.tt dump = outstanding_tests have_outstanding_tests = 1 # flag for later %]

outstanding tests

[% FOREACH section IN outstanding_tests.keys %]

[% section %]: [% outstanding_tests.item(section).join(', ') %]

[% END %]
[% END %] [% IF unresulted_tests.size; # PROCESS dumper.tt dump = outstanding_tests have_outstanding_results = 1 # flag for later %]

outstanding results

[% END %] [% PROCESS site/make_chart.tt format_info = special_formatting %] [% IF is_outreach; # PROCESS dumper.tt dump = outreach %] [% INCLUDE report/outreach.tt %]

[% img_name = incomplete_dataset() ? 'question' : 'tick' %] Report [% div_name = 'report'; INCLUDE site/snippets/toggleview.tt %]

[% class = url_with_path.match('update_report') ? 'itemshow' : 'itemhidden' %]

[% IF outreach.requested_lab_tests.grep('rq_cml').size %] [% ELSE %] [% END %]

[% INCLUDE outreach/data_summary.tt; # PROCESS dumper.tt dump = outreach %] [% INCLUDE outreach/questionnaire_summary.tt; %]
Report table:
[% INCLUDE report/report.tt %]
[% ELSE %]

Report

[% INCLUDE report/report.tt %] [% END %]