[% META title="Results" %] [% PROCESS record/patient_summary.tt %] [% # data structures passed in: %] [% # PROCESS dumper.tt dump = all_results %] [% # PROCESS dumper.tt dump = result_summaries %] [% # PROCESS dumper.tt dump = results_summary_opts %] [% # PROCESS dumper.tt dump = data_map.requested_tests %] [% # PROCESS dumper.tt dump = data_files %] [% # PROCESS dumper.tt dump = lab_section_notes %] [% # PROCESS site/js/jquery.tt # already loaded in html_wrapper %]

Report [% div_name = 'lab_results'; INCLUDE site/snippets/toggleview.tt %]

[% PROCESS record/report.tt %]

General notes: [% site.html.submit UNLESS is_locked %]

Lab Investigations

[% FOREACH section IN all_results.keys.sort; # PROCESS dumper.tt dump = section %] [% # do some data manipulations: # PROCESS dumper.tt dump = all_results.item(section); this_section = all_results.item(section); # PROCESS dumper.tt dump = this_section; sectionName = section.replace(' ', '_') | lower; # for result summary tmpls NEXT UNLESS this_section.is_active.match('yes'); # get list of active (ie requested) lab_test field labels: active_tests = [ ]; # reset array for each section FOREACH entry IN this_section.panel; # PROCESS dumper.tt dump = entry; active_tests.push(entry.key) IF entry.value.status; # been requested if defined status END; # get list of resultable lab_test field labels: resultable_tests = [ ]; # reset array for each section FOREACH entry IN this_section.test; # PROCESS dumper.tt dump = entry; test_data = entry.value; # PROCESS dumper.tt dump = test_data; resultable_tests.push(test_data.field_label) IF test_data.has_results.match('yes'); active_tests.push(entry.key) IF entry.value.status; # been requested if defined status END; # PROCESS dumper.tt dump = active_tests; # PROCESS dumper.tt dump = resultable_tests; %]
[% div_name = sectionName; INCLUDE site/snippets/toggleview.tt type = 'folder' %] [% PROCESS result/section_header.tt %]
[% site.html.ie_span_fix %]
[% # if section uses results import and not already got them: IF this_section.has_results_import.match('yes') AND NOT is_locked AND NOT result_summaries.item(section).results_summary; %] [% # load link to datafile if exists AND record screened: IF has_optional.initial_screen AND have_data_files(); # callback sub in C::Result::load() %]

[ import results data ]

[% END; END %]

Requests: [% div_name = sectionName _ '_requests'; INCLUDE site/snippets/toggleview.tt %]

[% div_class = 'normal' # for panels.tt %]
[% IF this_section.panel.size; # PROCESS dumper.tt dump = this_section.panel %] [% div_class = 'indent' # override previous settings; for panels.tt %]

Investigations:

[% END %] [% UNLESS is_locked # can still view results section if locked %]
[% # IF we_still_need_this - only used by remote section (foreign_id) %] [% # END %] [% END %] [% PROCESS result/panels.tt IF this_section.panel.size %] [% PROCESS result/single_tests.tt IF this_section.test.size %] [% IF this_section.has_foreign_id.match('yes') %]

Remote system ID:

[% END %] [% IF this_section.has_section_notes.match('yes') %]

Section notes:

[% section_notes = lab_section_notes.item(this_section.id); meta_data = c.get_meta_data('ScreenLabTestDetail'); max_length = meta_data.column('test_details').length; %]

[% END %] [% UNLESS is_locked # can view results section if locked %]

[% site.html.submit %] [% site.html.reset %]

[% END # start form tag also blocked if record locked %]
[% IF this_section.has_result_summary.match('yes') OR resultable_tests.size %] [% PROCESS result/data_entry.tt %] [% END %]
[% END %]