RSS Git Download  Clone
Raw Blame History
[%
  # META title = '' # using my.meta_title to allow processing dynamic vars:
  status_query = c.query.param('status_query').replace('_', ' ') | ucfirst;
  my.meta_title = "Worklist » Request Status » ${status_query}"
-%]

<!-- BEGIN [% template.name %] -->
    [% # PROCESS dumper.tt dump = request_options_map %]
    [% # PROCESS dumper.tt dump = incomplete_lab_tests %]

    [%
	  status_query = c.query.param('status_query');
	  duration = c.query.param('duration') || c.cfg('settings').unreported_duration;
	  filter = c.query.param('filter'); # INCLUDE dumper.tt dump = filter;
	%]

  [% class = ( ! filter OR filter.match('all') ) ? 'normal' : 'grey' %]
  <h3 class="header">Request status - [% status_query.replace('_', ' ') %] cases
	[<span class="[% class %]">[% requests.size %]</span>]</h3>

  <div class="indent">
    [% IF status_query.match('unreported') # only customising unreported so far %]
      <form action="[% c.query.url(path_info=1) %]" method="get">
        <input type="hidden" name="status_query" value="[% status_query %]" />
        <p class="info">Cut-off (days):
		  <input type="textbox" size="2" name="duration" value="[% duration %]" />
          [% site.html.go_btn %]
        </p>
      </form>
    [% END %]

	<form action="[% c.query.url(path_info=1) %]" method="get">
	  <input type="hidden" name="status_query" value="[% status_query %]" />
      <input type="hidden" name="duration" value="[% duration %]" />
	  <p>
		<span class="bold">Filter:</span>

		[% IF c.cfg('settings').have_outreach;
			class = filter.match('cmp') ? 'highlight' : 'normal' %]
		  <span class="[% class %]">CMP only</span>
		  <input type="radio" name="filter" value="cmp"
		    [% 'checked' IF class.match('highlight') %] /> |
		[% END %]

	    [% class = filter.match('liquid') ? 'highlight' : 'normal' %]
	    <span class="[% class %]">liquid samples</span>
	    <input type="radio" name="filter" value="liquid"
	      [% 'checked' IF class.match('highlight') %] /> |

	    [% class = filter.match('tissue') ? 'highlight' : 'normal' %]
	    <span class="[% class %]">tissue samples</span>
	    <input type="radio" name="filter" value="tissue"
	      [% 'checked' IF class.match('highlight') %] />

		[% IF filter; # no point allowing 'all' if not already filtered
			class = filter.match('all') ? 'highlight' : 'normal' %]
		  | <span class="[% class %]">show all</span>
		  <input type="radio" name="filter" value="all"
			[% 'checked' IF class.match('highlight') %] />
		[% END %]
		[% site.html.go_btn %]
	  </p>
	</form>

    <table>
      <tr>
        <td></td>
        <th>Lab No</th>
        <th>Name</th>
        <th>Date</th>
        <th>Sample</th>
        <th>Source</th>
        [% UNLESS status_query == 'unscreened' %]
            <th>Presentation</th>
          [% IF incomplete_lab_tests %]
            <th>Incomplete tests</th>
          [% END %]
        [% END %]
		<th>Delta</th>
      </tr>

      [% FOREACH data IN requests; # PROCESS dumper.tt dump = data.as_tree
		  patient = data.patient_case.patient;

		  IF filter;
			  tissue = '[DGLRTX](A|[BS][LP]|F|U)';
			IF filter.match('cmp');
			  NEXT UNLESS specimen_map.item(data.id).sample_code.grep('CMP').size;
			ELSIF filter.match('liquid');
			  NEXT IF specimen_map.item(data.id).sample_code.grep(tissue).size;
			ELSIF filter.match('tissue');
			  NEXT UNLESS specimen_map.item(data.id).sample_code.grep(tissue).size;
			END;
		  END;
	  %]
      <tr>
        <td>[% i = ( i || 0 ) + 1; i %]</td>
        <td>
          [% PROCESS site/lab_number.tt want_url = 1; # expects request object 'data' %]
        </td>
        [% class = request_options_map.item(data.id).urgent ? 'red' : 'normal' %]
        <td class="[% class %]">
          [% patient.last_name | upper %],
          [% format_firstname(patient) || patient.first_name | ucfirst %]
          [% patient.middle_name | ucfirst %]
        </td>
		<td>[% data.created_at.strftime('%d.%b.%Y') %]</td>
        <td>
		  [% specimen_map.item(data.id).sample_code.join(', ') %]
          [% INCLUDE site/snippets/doi.tt IF request_options_map.item(data.id).doi %]
		</td>
		<td>
		    [% SET location = data.patient_case.referral_source.display_name %]
            [% PROCESS site/display_name.tt %]
		</td>
        [% UNLESS status_query == 'unscreened' %]
          <td>
		    [% IF data.request_initial_screen;
			  data.request_initial_screen.screen.description;
			ELSE; site.html.grey_null; END; %]
		  </td>
          [% IF incomplete_lab_tests; tests = incomplete_lab_tests.${data.id} %]
            <td>
                [% IF tests; FOREACH t IN tests %]
                    <div class="no-wrap">
                        <span class="acronym" title="[% t.section %]">[% t.test %]</span>
                    </div>
                    [% END %]
                [% ELSE %]
                    <span class="grey">[none]</span>
                [% END %]
            </td>
          [% END %]
        [% END %]
        <td>[% duration_map.item(data.id) %]</td>
      </tr>
      [% END %]
    </table>
  </div>

  <p>
	[% site.html.back_button %]
  </p>

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