RSS Git Download  Clone
Raw Blame History
	[% 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="">&nbsp;</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 %] -->