RSS Git Download  Clone
Raw Blame History
[%- 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 %] -->