RSS Git Download  Clone
Raw Blame History
<!-- BEGIN [% component.name %] -->
    [% # PROCESS dumper.tt dump = all_results %]
    [% # PROCESS dumper.tt dump = raw_lab_test_data.haematology_data %]

  [%
    results = {};
    FOREACH section IN all_results.keys.sort;
      FOREACH entry IN all_results.item(section).test;
        # PROCESS dumper.tt dump = entry.value.result;
        NEXT UNLESS entry.value.result;
        # PROCESS dumper.tt dump = entry.value.result;
        results.$section.result.${entry.key} = entry.value.result;
      END;
    END; # PROCESS dumper.tt dump = results;
	FOREACH summary IN result_summaries;
		section = summary.key;
		text = symbolise(summary.value.results_summary) | html_line_break; # escapeHTML already done
		results.$section.summary = text;
	END; # PROCESS dumper.tt dump = results;

    # haematology data:
	haem_data = raw_lab_test_data.haematology_data;
	IF haem_data; # INCLUDE dumper.tt dump = haem_data;
        BLOCK calculate; # INCLUDE dumper.tt dump = var
            DEFAULT factor = 10; # unless supplied
            result = haem_data.$var; # INCLUDE dumper.tt dump = result;
            flag = var _ '_f'; # eg wbc_f
            class = ( result.match('\*') || haem_data.$flag )
                ? 'red' : 'normal'; %]
			<span class="[% class %]">[%
                IF result.match('\*'); result; # ie *000
                ELSE;
                    IF float; # needs formatting:
                        FILTER format('%.' _ float _ 'f'); result / factor; END;
                    ELSE;
                        result / factor;
                    END;
               END;
            %]</span>[%
		END;
		IF haem_data.status == 'verified';
            wbc = INCLUDE calculate(var = 'wbc', float = 1); # ie int
            results.Haematology.result.wbc = wbc; # haem_summary.push(wbc);

            rbc = INCLUDE calculate(var = 'rbc', float = 2, factor = 100);
            results.Haematology.result.rbc = rbc; # haem_summary.push(rbc);

            hb = INCLUDE calculate(var = 'hb', factor = 1); # ie int
            results.Haematology.result.hb = hb; # haem_summary.push(hb);

            plt = INCLUDE calculate(var = 'plt', factor = 1); # ie int
            results.Haematology.result.plt = plt; # haem_summary.push(plt);

            hct = INCLUDE calculate(var = 'hct', float = 1); # ie int
            results.Haematology.result.hct = hct; # haem_summary.push(hct);

            mcv = INCLUDE calculate(var = 'mcv', float = 1); # ie int
            results.Haematology.result.mcv = mcv; # haem_summary.push(mcv);
		ELSE;
			USE url(app_url _ '/result/=/' _  data.id);
			results.Haematology.result.results
                = "[ <a href=\"$url\">awaiting validation</a> ]";
		END;
	END;
  %]

  [% IF results.size %]
    <p class="title">Lab test results:
      [% div_name = 'tests'; INCLUDE site/snippets/toggleview.tt %]
    </p>

    <div id="[% div_name %]" class="itemshown">
      <div class="indent">
      [% FOREACH section IN results.keys.sort %]
		<div style="margin-bottom: 1em">
            <span class="title">[% section | html %]</span>
            [% IF results.$section.result.size; %]
                <div class="test-summary">
                  [% FOREACH test IN results.$section.result.keys.sort;
                    # PROCESS dumper.tt dump = results.$section.result.$test %]
                    <i>[% test %]:</i>
                    [% results.$section.result.$test %]
                    [% UNLESS loop.last %]<span class="indent"></span>[% END %]
                  [% END %]
                </div>
            [% END %]
            [% IF results.$section.summary %]
                <div class="test-summary">
                    <u>Summary</u>: [% results.$section.summary %]
                </div>
            [% END %]
		</div>
      [% END %]
      </div>
    </div>
  [% ELSE %]
      <p><span class="title">Lab test results</span>: none</p>
  [% END %]
<!-- END [% component.name %] -->