<!-- 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 %] -->