[% IF report; # PROCESS dumper.tt dump = report.as_tree %]
[% '1.' IF have_secondary_diagnosis;
class = is_updated_diagnosis ? 'warning' : 'normal' -%]
[% report.diagnosis.name %]
[% IF report.diagnosis.icdo3 %]
[[% report.diagnosis.icdo3 %]]
[% END %]
[% UNLESS is_print_request %]
[% INCLUDE site/snippets/hmrn_info_link.tt
diagnosis = request_data.request_report.diagnosis %]
[% END %]
[% ELSE %]
[ REPORT PENDING AUTHORISATION ]
[% END %]
[% IF have_secondary_diagnosis %]
2.
[% request_data.request_secondary_diagnosis.diagnosis.name %]
[% IF request_data.request_secondary_diagnosis.diagnosis.icdo3 %]
[[% request_data.request_secondary_diagnosis.diagnosis.icdo3 %]]
[% END %]
[% UNLESS is_print_request %]
[% INCLUDE site/snippets/hmrn_info_link.tt
diagnosis = request_data.request_secondary_diagnosis.diagnosis %]
[% END %]
[% END %]
[% INCLUDE record/report/specimen.tt %]
[% # report comment:
IF report.comment; # PROCESS dumper.tt dump = report.comment;
comment = [];
UNLESS special_formatting.no_comment;
formatted_comment = symbolise(report.comment).replace(
'[Aa]dditional [Cc]omment','ADDITIONAL COMMENT') | html_line_break;
# to split comment on full-stop:
# re = '\.\s+'; # for legacy comment; keep space to retain decimal numbers
# FOREACH line IN formatted_comment.split(re);
# comment.push(line);
# END;
comment.push(formatted_comment); # if not splitting on '.'
END;
IF outreach;
follow_opt_id = outreach.followup.followup_option_id;
option = outreach.menu_options.followup_options.item(follow_opt_id).option;
label = outreach.menu_options.followup_options.item(follow_opt_id).label;
IF option.match('clinic_return');
comment.push(text_str.clinic_return);
ELSIF option.match('zero');
str = text_str.pack_dispatch _ ' immediately.';
comment.push(str);
ELSIF option.match('month');
str = text_str.pack_dispatch _ ' in ' _ label _ '.';
comment.push(str);
END;
END %]
[% comment.join('
') %]
[% END %]
[% # context warnings:
context_warnings = [];
context_warning_map = report_data_maps.context_warning_map;
IF report AND context_warning_map.size AND NOT outreach.size;
warning = context_warning_map.item(report.diagnosis.id);
IF warning; context_warnings.push(warning); END;
END;
IF specimen_map.item(data.id).description.grep('CSF').size
AND report AND NOT report.diagnosis.icdo3.match('/3'); # non-ICDO3 + CSF
context_warnings.push(text_str.csf);
END;
IF context_warnings.size;
%]
[% FOREACH entry IN context_warnings %]
- [% entry %]
[% END %]
[% FOREACH entry IN diagnosis_riders %]
- [% entry %]
[% END %]
[% END %]
[% # additional comments:
additional_comments = [];
text_highlights = [];
IF report AND NOT report.status.match('default');
str = 'this is a ' _ report.status.upper _ ' diagnosis';
text_highlights.push(str);
END;
IF is_amended_report;
text_highlights.push(text_str.amended_report);
END;
IF outstanding_tests.size;
str = text_str.tests_pending;
sections = outstanding_tests.keys.join('; ');
additional_comments.push(str _ ' [' _ sections.lower _ ']');
END;
IF request_errors.size; # PROCESS dumper.tt dump = report_data_maps.report_error_codes;
FOREACH entry IN request_errors;
err_code = entry.error_code.code;
# only want reportable errs:
NEXT UNLESS report_data_maps.report_error_codes.item(err_code);
str = report_data_maps.report_error_codes.item(err_code).description
_ ' [' _ err_code.upper _ ']';
additional_comments.push(str);
END;
END;
specimen = specimen_map.item(data.id).sample_code;
IF specimen.grep('BMA').size AND NOT specimen.grep('PB').size
AND NOT request_data.request_trial;
additional_comments.push(text_str.pb_sample);
END;
IF is_print_request; # print report or print run
additional_comments.push(text_str.service_url);
END
%]
[% IF text_highlights.size OR additional_comments.size %]
[% END %]
[% FOREACH entry IN text_highlights %]- [% entry %]
[% END %]
[% FOREACH entry IN additional_comments %]
- [% entry %]
[% END %]