[%- content_only = 1 # no html wrappers -%]
<!-- BEGIN [% component.name %] -->
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="/css/bootstrap-responsive.min.css">
<link rel="stylesheet" href="/css/guest_view.css" type="text/css">
<style type="text/css">
@media print {
.viewHide { display: block; }
.printHide { display: none; }
}
@media screen {
.viewHide { display: none; }
}
@media screen, print {
.error { color: #c44; }
}
</style>
<script src="/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
</head>
<body>
<!-- container -->
<div class="container printHide">
<div class="row">
<img src="/images/lcc_logo.jpg"/>
</div>
<div class="row" id="nav-bar">
<p class="span6">
[% user = c.session.param('UserProfile') %]
<!--<button class="btn btn-primary" type="button">[% user.first_name | ucfirst %]
[% user.last_name | ucfirst %]</button>-->
<a href="[% app_url %]/history/=/[% data.id %]">
<span class="label label-warning">History</span>
</a>
<span class="label label">Request form</span>
<a href="[% app_url %]/search/do_search/?patient_id=[% patient.id %]">
<span class="label label-success">Previous reports</span>
</a>
<a href="[% app_url %]/search">
<span class="label label-info"></i>New search</span>
</a>
<a href="[% app_url %]/resources">
<span class="label label-important">Resources</span>
</a>
<!-- <span class="badge badge-info"><i class="icon-print icon-white"></i></span> -->
<a href="[% app_url %]/request/print_record/[% data.id %]">
<img src="/images/print_icon.gif" />
</a>
[<a href="[% app_url %]/logout">log out</a>]
<p>
</div>
<div class="row">
[% IF has_optional.clinical_trial;
trial_number = get_trial_number(patient.id, data.request_trial.trial_id) %]
<h3 class="text-warning text-center">
CLINICAL TRIAL: [% data.request_trial.trial.trial_name %]
[% IF trial_number %][ [% trial_number %] ][% END %]
</h3>
[% END %]
<div class="span2.5">
<table class="table table-bordered table-striped" id="pid">
<thead>
<tr class="highlight">
<td colspan="2">
[% url_args = 'last_name=' _ patient.last_name _ ';first_name=' _
patient.first_name _ ';middle_name=' _ patient.middle_name
%]
<h4 class="text-center">
<a href="[% app_url %]/search/do_search?[% url_args | url %]">
[% format_firstname(patient) || patient.first_name.ucfirst %]
[% patient.middle_name.ucfirst IF patient.middle_name %]
[% patient.last_name.upper %]
</a>
</h4>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
[% url_args = 'dob_day=' _ patient.dob.strftime('%d') _ ';dob_month=' _
patient.dob.strftime('%m') _ ';dob_year=' _ patient.dob.strftime('%Y')
%]
<span class="pull-right">
<a href="[% app_url %]/search/do_search?[% url_args | url %]">DoB</a>
</span>
</td>
<td>
<span class="bold">
[% IF patient.dob;
age_now = calculate_age(patient.dob, c.time_now);
age_at_req = calculate_age(patient.dob, data.created_at) %]
<span class="acronym" title="age at registration = [% age_at_req
%]; age now = [% age_now %]">
[% patient.dob.strftime('%d.%b.%Y') %]
</span>
[% ELSE; site.html.grey_null; END %]
</span>
</td>
</tr>
<tr>
<td>
[% class = [] %]
<span class="pull-right">
[% IF patient.nhs_number;
class.push('bold');
url_args = 'nhs_number=' _ patient.nhs_number %]
<a href="[% app_url %]/search/do_search?[% url_args | url %]">
NHS No
</a>
[% ELSE;
presentation = request_data.request_initial_screen.screen.description;
trial_name = request_data.request_trial.trial.trial_name;
exemptions = report_data_maps.nhs_number_exempt;
IF # one of exempted categories:
exemptions.presentation.item(presentation) OR
exemptions.clinical_trial.item(trial_name);
class.push('normal');
nhs_number_exempt = 1;
ELSE;
class.push('label', 'label-important');
END;
%]
NHS No
[% END %]
</span>
</td>
<td class="nowrap">
<span class="[% class.join(' ') %]">
[% UNLESS nhs_number_exempt;
PROCESS site/snippets/nhs_number.tt
nhs_number = patient.nhs_number;
ELSE; '[NULL]'; END %]
</span>
</td>
</tr>
<tr>
<td>
<span class="pull-right">
[% IF data.patient_case.unit_number;
url_args = 'unit_number=' _ data.patient_case.unit_number %]
<a href="[% app_url %]/search/do_search?[% url_args | url %]">Unit No</a>
[% ELSE %]
Unit No
[% END %]
</span>
</td>
<td>[% data.patient_case.unit_number || site.html.grey_null %]</td>
</tr>
<tr>
<td>
<span class="pull-right">Source</span>
</td>
<td>
[% SET location = data.patient_case.referral_source.display_name;
PROCESS site/display_name.tt %]
</td>
</tr>
<tr>
<td><span class="pull-right">Referrer</span></td>
<td>
[%
SET department = data.referrer_department.hospital_department;
SET referrer = data.referrer_department.referrer;
%]
<span [% IF department %]class="acronym" title="[% department.display_name %]"
[% END %]>[% referrer.name %]
</span>
</td>
</tr>
<tr>
<td><span class="pull-right">Lab No</span></td>
<td>[% PROCESS site/snippets/lab_number.tt want_url = 0 # expects request object 'data' %]</td>
</tr>
</tbody>
</table>
</div>
[%
IF has_optional.report
AND status_options.authorised.is_active.match('yes')
AND NOT history.authorised.size
AND request_data.year > 2005; # eg Molecular Misc requests pre-2006 never auth'd
# reset report:
report = 0; # 'here';
have_secondary_diagnosis = request_data.request_secondary_diagnosis ? 1 : 0;
END; # request_data = {}; # for testing
%]
<div class="span7 offset1">
<div id="main-div">
[% IF report; # PROCESS dumper.tt dump = report %]
<h2 class="bright"><!-- style="white-space: nowrap" // doesn't scale with resolution -->
[% IF have_secondary_diagnosis %]1.[% END %]
[% report.diagnosis.name %]
[% IF want_icdo3 AND report.diagnosis.icdo3 %]
[[% report.diagnosis.icdo3 %]]
[% END %]
<sup>[% INCLUDE site/snippets/hmrn_info_link.tt %]</sup>
</h2>
[% ELSE %]
<h2 class="bright">[ REPORT PENDING AUTHORISATION ]</h2>
[% END %]
[% IF have_secondary_diagnosis %]
<h2 class="bright">2.
[% request_data.request_secondary_diagnosis.secondary_diagnosis.name %]
</h2>
[% END %]
<p class="bold indent">
[% specimen = report.biopsy_site ||
specimen_map.item(data.id).description.join(' & ') %]
[% IF report %]reported on a [% END %][% specimen | html %]
specimen received on [% data.created_at.strftime('%d.%b.%Y') %]
</p>
[% # comment & context warnings:
context_warnings = [];
IF report AND context_warning_map.item(report.diagnosis.id);
warning = context_warning_map.item(report.diagnosis.id);
context_warnings.push(warning);
END;
IF specimen_map.item(data.id).description.grep('CSF').size
AND report AND NOT report.diagnosis.icdo3.match('/3'); # non-ICDO3 + CSF
str = 'Absence of involvement of the cerebro-spinal fluid does not'
_ ' exclude the possibility of intracerebral disease';
context_warnings.push(str);
END;
comment = [];
# to split comment on full-stop:
# re = '\.\s+'; # for legacy comment; keep space to retain decimal numbers
# FOREACH line IN report.comment.split(re);
# comment.push(line);
# END;
comment.push(report.comment) IF report.comment; # not splitting comment
IF report AND NOT report.status.match('default');
comment.push('this is a ' _ report.status.upper _ ' diagnosis');
END;
IF context_warnings.size OR comment.size;
%]
<ul>
[% FOREACH entry IN context_warnings %]
<li class="text-warning">[% entry %]</li>
[% END %]
[% FOREACH entry IN comment %]
<li class="text-error">[% entry %]</li>
[% END %]
</ul>
[% END %]
</div>
[% # additional comments:
additional_comments = [];
IF outstanding_tests.size;
str = 'there are further laboratory investigations pending';
additional_comments.push(str);
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;
str = 'please send a peripheral blood sample with all bone marrows';
additional_comments.push(str);
END;
IF c.get_current_runmode.match('print'); # print report or print run
str = 'the definitive report is available online at '
_ c.cfg('settings').service_url;
additional_comments.push(str);
END;
IF additional_comments.size;
%]
<div id="comments">
<ul>
[% FOREACH entry IN additional_comments %]
<li class="text-info">[% entry %]</li>
[% END %]
</ul>
</div>
[% END %]
</div>
</div>
[% IF report AND ( report.morphology OR result_summaries.size ) %]
<div class="row">
<div class="span2">
<span class="label label-info">Supporting information:</span>
</div>
</div>
<div class="accordion" id="summaries">
[% IF report.morphology %]
<!-- morphology -->
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse"
data-parent="#summaries" href="#collapseOne">
MORPHOLOGY <i class="icon-fullscreen"></i>
</a>
</div>
<div id="collapseOne" class="accordion-body collapse">
<div class="accordion-inner">
<div class="offset1">
[% symbolise(report.morphology) | html_line_break %]
</div>
</div>
</div>
</div>
[% END %]
[% FOREACH entry IN result_summaries;
section_name = entry.key %]
<!-- [% section_name %] -->
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#summaries"
href="#collapse[% section_name.replace(' ', '').lower %]">
[% section_name | upper %] <i class="icon-fullscreen"></i>
</a>
</div>
<div id="collapse[% section_name.replace(' ', '').lower %]"
class="accordion-body collapse">
<div class="accordion-inner">
<div class="offset1">
<!-- make_chart // will draw chart if required: -->
[% PROCESS site/make_chart.tt format_info = special_formatting %]
<pre>[%- symbolise(entry.value.results_summary)
# escapeHTML already done -%]</pre>
</div>
</div>
</div>
</div>
[% END %]
</div>
[% ELSE # spacer: %]
<p class="spacer"></p>
[% END %]
[% IF history.authorised;
reporter = history.reported.user;
authoriser = history.authorised.user;
%]
<div class="row">
<div class="row span7">
<span class="bold">Reported by:</span>
<span class="rich">
<b>[% reporter.first_name | ucfirst %]</b>
<b>[% reporter.last_name | ucfirst %]</b>
</span>
on <b>[% history.reported.time.strftime('%a %d.%b.%Y @ %H:%M') %]</b>
[% IF reporter.active.match('yes') %]
<a href="[% app_url %]/resources/user_messages/[% reporter.id %]">
<span class="badge badge-bright"><i class="icon-user icon-white"></i></span>
</a>
[% END %]
</div>
<div class="row span7">
<span class="bold">Authorised by:</span>
<span class="rich">
<b>[% authoriser.first_name | ucfirst %]</b>
<b>[% authoriser.last_name | ucfirst %]</b>
</span>
on <b>[% history.authorised.time.strftime('%a %d.%b.%Y @ %H:%M') %]</b>
[% IF authoriser.active.match('yes') AND authoriser.id != reporter.id %]
<a href="[% app_url %]/resources/user_messages/[% authoriser.id %]">
<span class="badge badge-bright"><i class="icon-user icon-white"></i></span>
</a>
[% END %]
</div>
</div>
[% END %]
<footer id="footer">
<p class="pull-right"><img src="/images/cpa_logo.png" /></p>
</footer>
</div>
<!-- /container -->
<div class="viewHide error">THIS PAGE IS NOT INTENDED TO BE PRINTED.
PLEASE USE THE "PRINT" LINK IN THE UPPER NAVIGATION SECTION.
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="/js/vendor/jquery-1.9.1.min.js"><\/script>')</script>
<script src="/js/vendor/bootstrap.min.js"></script>
<script src="/js/main.js"></script>
</body>
</html>
<!-- END [% component.name %] -->