RSS Git Download  Clone
Raw Blame History
	[% META title="Results" %]

<!-- BEGIN [% template.name %] -->
	[%
        patient = data.patient_case.patient;
        request_data = data.as_tree; # save multiple lookups if undefined
            # PROCESS dumper.tt dump =
            # request_data;
            # all_results;
            # result_summaries;
            # results_summary_opts;
            # data_map.requested_tests;
            # data_files;
            # c.stash.error_msg;
            # validation_failures;
            # raw_lab_test_data.haematology_data;
            # section_with_result_errors_id;
            # c.debug('######################'); # to reveal any db calls from templates
    %]

    [% # PROCESS site/js/jquery.tt # already loaded in html_wrapper %]
    <script type="text/javascript" src="/js/jquery.textarea-expander.js"></script>

    [% PROCESS record/content_header.tt %]

    [% IF c.is_lab_staff;
      patient_notes = patient.patient_note || outreach.demographics.patient_notes;
      INCLUDE site/previous_requests.tt; # don't use PROCESS or 'data' gets clobbered
	  INCLUDE site/previous_lab_tests.tt IF previous_requests.size;
    %]
	  <form method="post" name="patientNotes" id="patientNotes" action="[%
		app_url %]/patient/patient_notes/[% request_data.id %]/[% patient.id %]">
		  <p class="title">
			  Patient notes: <textarea name="patient_notes" rows="1" cols="70"
			  style="vertical-align: middle" class="expand20-200"
			  id="patient_notes">[% patient_notes.detail %]</textarea>
			  <input class="button" type="submit" value="Update" />
		  </p>
          <input type="hidden" name="fwd_to" value="[% c.query.url(path_info=1) %]" />
	  </form>
	[% END %]

    <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 %]/request/general_notes/[% request_data.id %]"
          method="post" name="notes" id="notes">
        <input type="hidden" name="rm" value="result" />
      <p class="title">Request notes:
        [% notes = request_data.request_general_note.detail %]
        <textarea name="general_notes" rows="1" cols="70" class="expand"
          [% site.html.onfocus %] style="vertical-align: middle"
          [% IF is_locked %]readonly="readonly"[% END %]>[% notes %]</textarea>
        [% site.html.submit UNLESS is_locked %]
      </p>
    </form>

    <p class="section_header">Lab Investigations</p>

    [% haem_data = raw_lab_test_data.haematology_data %]
	[% IF haem_data AND
	  ( haem_data.status.match('verified') OR c.user_can('modify_results') ) %]
    <div class="indent">
      <div class="linkwithicon">
		[% div_name = 'HaemData';
		  INCLUDE site/snippets/toggleview.tt type = 'folder' %]

        <div class="aftericon" id="toggleHaemData">
          <span class="title">Haematology</span>
		  [% IF NOT haem_data.status.match('verified') %]
			<span class="red">[ UNVERIFIED ]</span>
		  [% END %]
        </div>
      </div>
      <div id="HaemData" class="itemhidden">
        [% INCLUDE result/haem_data.tt function = 'result'%]
      </div>
    </div>
    [% END %]

  [%
    # FOREACH section IN all_results.keys.sort; # doesn't handle Genomics section names
    nsorted_sections = natural_sort(all_results.keys); # PROCESS dumper.tt dump = nsorted_sections;
    FOREACH section IN nsorted_sections; # PROCESS dumper.tt dump = all_results.item(section);
        # do some data manipulations:
      this_section = all_results.item(section); # PROCESS dumper.tt dump = this_section;
      sectionName  = section.replace('\W', '_') | lower; # for result summary tmpls
      NEXT UNLESS this_section.is_active.match('yes');

      # get list of active (ie requested) lab_test field labels:
	    incomplete_tests = [ ];
      active_tests     = [ ]; # reset array for each section
      FOREACH entry IN this_section.panel; # PROCESS dumper.tt dump = entry;
        test_data = entry.value; # PROCESS dumper.tt dump = test_data;
        active_tests.push(entry.key) IF test_data.status; # been requested if defined status
			incomplete_tests.push(entry.key) IF test_data.status
				AND NOT test_data.status.match('complete');
	    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 test_data.status; # been requested if defined status
				incomplete_tests.push(entry.key) IF test_data.status
					AND NOT test_data.status.match('complete');
      END;
        # PROCESS dumper.tt dump = active_tests;
        # PROCESS dumper.tt dump = resultable_tests;
        # PROCESS dumper.tt dump = incomplete_tests;
    %]

    <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 %]
        [% toggle_class =
            section_with_result_errors_id.match('^' _ this_section.id _ '$')
                ? 'itemshow' : 'itemhidden' %]
      <div id="[% sectionName %]" class="[% toggle_class %]">
        [% # 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() %]
          <p class="indent">
            [ <a href="[% app_url %]/result/preview_datafile/[% request_data.id %]">
              import results data</a> ]
          </p>
        [% END; END %]

        <p class="indent"><span class="title">Requests:</span>
          [% div_name = sectionName _ '_requests'; INCLUDE site/snippets/toggleview.tt %]
          [% IF c.user_can('modify_results') AND incomplete_tests.size;
              USE url(
                app_url _ '/worklist/display/' _ this_section.id,
                request_id = data.id,
                display_format='Data Entry');
          %]
            <a href="[% url %]" title="data entry worklist">
              <i style="vertical-align: text-top" class="fa fa-file-word-o"></i>
            </a>
          [% END %]
        </p>

        <div id="[% div_name %]" class="itemhidden">

        [% div_class = 'normal' # for panels.tt %]

        <div class="test_results">

        [% IF this_section.panel.size; # PROCESS dumper.tt dump = this_section.panel %]
            [%  div_class = 'indent' # override previous settings; for panels.tt %]
          <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/[% request_data.id %]" method="post"
            name="[% sectionName %]_requests" id="[% sectionName %]_requests">
          <input type="hidden" name="_section_id" value="[% this_section.id %]" />
            [% # IF we_still_need_this - only used by remote section (foreign_id) %]
          <input type="hidden" name="_section_name" value="[% section %]" />
            [% # END %]
        [% 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 -->

		  [% 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 %]
        </div>
       </div>

        <!-- BEGIN resultable tests: -->
        [% IF this_section.has_result_summary.match('yes') OR resultable_tests.size %]
            [% PROCESS result/data_entry.tt %]
        [% END %]
        <!-- END resultable tests -->

      </div>
    </div>
  [% END %]
<!-- END [% template.name %] -->