[% META title="Results" %]
<!-- [% template.name %] -->
[% 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 %]
[% # PROCESS dumper.tt dump = data_files %]
[% # PROCESS dumper.tt dump = lab_section_notes %]
[% # PROCESS site/js/jquery.tt # already loaded in html_wrapper %]
<script type="text/javascript" src="/js/jquery.textarea-expander.js"></script>
<p class="title">Report
[% div_name = 'lab_results'; INCLUDE site/snippets/toggleview.tt %]
</p>
<div id="[% div_name %]" class="itemhidden">
[% PROCESS record/report.tt %]
</div>
<form action="[% app_url %]/result/notes/[% data.id %]" method="post"
name="notes" id="notes">
<p class="title">General notes:
<textarea name="general_notes" rows="1" cols="70" class="expand"
[% site.html.onfocus %]
>[% data.request_general_note.detail %]</textarea>
[% site.html.submit UNLESS is_locked %]
</p>
</form>
<p class="section_header">Lab Investigations</p>
[% 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;
%]
<!-- the javascript function to change the source of the frame -->
<script type="text/javascript">
function load_[% sectionName %]_template() {
var html = document.getElementById('[% sectionName %]_id').contentWindow.document.body.innerHTML;
document.[% sectionName %]_results.results_summary.value=document.[% sectionName %]_results.results_summary.value + html
}
</script>
<div class="indent">
<div class="linkwithicon">
[% div_name = sectionName;
INCLUDE site/snippets/toggleview.tt type = 'folder' %]
<!-- BEGIN section title & investigations summary: -->
[% PROCESS result/section_header.tt %]
<!-- END section title & investigations summary -->
</div>
[% site.html.ie_span_fix %]
<div id="[% sectionName %]" class="itemhidden">
[% # 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:
IF have_data_files(); # callback sub in C::Result::load() %]
<p class="indent">
[ <a href="[% app_url %]/result/preview_datafile/[% data.id %]">
import results data</a> ]
</p>
[% END; END %]
<!-- BEGIN resultable tests: -->
[% IF resultable_tests.size %]
[% PROCESS result/data_entry.tt %]
[% END %]
<!-- END resultable tests -->
[% div_class = 'normal' %]
[% IF resultable_tests.size AND this_section.panel; div_class = 'indent' %]
<p class="indent"><span class="title">Investigations:</span></p>
[% END %]
[% UNLESS is_locked # can still view results section if locked %]
<form action="[% app_url %]/result/update/[% data.id %]" method="post"
name="[% sectionName %]_results" id="[% sectionName %]_results">
<input type="hidden" name="_section_id" value="[% this_section.id %]" />
<input type="hidden" name="_section_name" value="[% section %]" />
[% END %]
<!-- BEGIN panels -->
[% PROCESS result/panels.tt IF this_section.panel.size %]
<!-- END panels -->
<!-- BEGIN single tests -->
[% PROCESS result/single_tests.tt IF this_section.test.size %]
<!-- END single tests -->
<!-- BEGIN remote system id -->
[% IF this_section.has_foreign_id.match('yes') %]
<p class="indent">
<span class="title">Remote system ID</span>:
<input type="text" name="foreign_id"
value="[% remote_system_ids.item(section).foreign_id %]" />
</p>
[% END %]
<!-- END remote system id -->
<!-- BEGIN section notes -->
[% IF this_section.has_section_notes.match('yes') %]
<p class="indent">
<span class="title">Section notes:</span>
</p>
<blockquote>
<p class="classname">
[%
section_notes = lab_section_notes.item(this_section.id);
meta_data = c.get_meta_data('ScreenLabTestDetail');
max_length = meta_data.column('test_details').length;
%]
<textarea name="section_notes" rows="1" cols="60" class="expand20-200"
[% # PROCESS site/limit_text.tt input_name = 'section_notes' %]
>[% section_notes # DO NOT WRAP THIS %]</textarea>
<br />
<!-- <span class="indent">[% PROCESS site/countdown.tt %]</span> -->
</p>
</blockquote>
[% END %]
<!-- END section notes -->
<!-- BEGIN result summary -->
[% IF this_section.has_result_summary.match('yes')
AND active_tests.size # only show results summaries if at least 1 test %]
<p class="indent">
<span class="title">Results summary:</span>
</p>
[% IF results_summary_opts.item(section); # may not have select menu opts %]
<blockquote>
<select name="_results_summary">
[% label = '' # initialise var in case optgroup %]
<option value=""> </option>
[% FOREACH option IN results_summary_opts.item(section);
# PROCESS dumper.tt dump = option; %]
[% IF option.match('~'); # numerical ordering
split = option.split('~'); # PROCESS dumper.tt dump = split;
%]
<option>[% split.1 # RHS value %]</option>
[% ELSIF option.match('::'); # optgroup symbol
split = option.split('::'); # PROCESS dumper.tt dump = split;
%]
[% IF split.0 != label # time to change optgroup label: %]
[% '</optgroup>' IF label # close opgroup block %]
[% label = split.0 # set new label %]
<optgroup label="[% label %]">
<option>[% split.1 # RHS value %]</option>
[% ELSE # discard split.0 (optgroup label) %]
<option>[% split.1 # RHS value %]</option>
[% END %]
[% '</optgroup>' IF loop.last %]
[% ELSE # not optgroup or numerical ordering %]
<option>[% option %]</option>
[% END %]
[% END %]
</select>
</blockquote>
[% END %]
<blockquote>
<p class="classname">
<textarea name="results_summary" rows="1" cols="80" class="expand20-200"
>[% result_summaries.item(section).results_summary # DO NOT WRAP THIS %]</textarea>
</p>
</blockquote>
[% END %]
<!-- END result summary -->
[% IF this_section.has_test_sign_out.match('yes') %]
<p class="indent">
<span class="title">Sign-off all tests in this section:</span>
<input type="checkbox" name="complete_all_tests" value="1" />
</p>
[% END %]
[% UNLESS is_locked # can view results section if locked %]
<div class="indent">
<p class="indent">
[% site.html.submit %]
[% site.html.reset %]
</p>
</div>
</form>
[% END # start form tag also blocked if record locked %]
<!-- added by pete for canned report (results_template) -->
[% IF this_section.has_result_summary.match('yes') AND active_tests.size
AND NOT is_locked %]
<!-- set up a frame to hold the information we require -->
<p class="indent">
<span class="title">Results summary templates:</span>
[% div_name = sectionName _ '_tmpl';
INCLUDE site/snippets/toggleview.tt %]
</p>
<div id="[% div_name %]" class="itemhidden">
<iframe name="[% sectionName %]_frame" class="indent"
id="[% sectionName %]_id" src="#" width="600"></iframe>
<!-- set up a form to search for a canned report file locally and submit
to a javascript function -->
<form name="[% sectionName %]_tmpl" enctype="multipart/form-data"
method="post" action="[% app_url %]/ajax/result_template"
target="[% sectionName %]_frame">
<p class="indent">
<!-- set up a file type input field which submits the form on change -->
<input type="file" name="report_template" size="30" onChange="form.submit()" />
<input type="button" onclick="load_[% sectionName %]_template();"
value="Import Template" />
</p>
</form>
</div>
[% END %]
</div>
</div>
[% END %]
<!-- END [% template.name %] -->