[% META title = 'Patient » PDS Query' -%]
<!-- BEGIN [% template.name %] -->
[% # PROCESS dumper.tt dump = patient.as_tree %]
[% IF pds_query; # PROCESS dumper.tt dump = pds_query;
patient_id = c.query.param('_patient_id'); # means matching patient found
return_link = patient_id
? '/select_patient/' _ patient_id # back to registration form
: ''; # triggers new patient registration
%]
[% IF is_code_ref(pds_query).match('HASH'); %]
<h3 class="header">PDS query results</h3>
[% IF pds_query.ErrorCode.match('SMSP-0000'); %]
<table class="indent">
<tr>
<th>LastName</th>
<th>FirstName</th>
<th>DoB</th>
<th>Gender</th>
<th>NHSNo</th>
<th>Address</th>
<th>Post Code</th>
<td class="borderless"></td>
</tr>
<tr>
<td>[% pds_query.last_name %]</td>
<td>[% pds_query.first_name %]</td>
<td>[% pds_query.dob %]</td>
<td>[% pds_query.gender %]</td>
<td>[% pds_query.nhs_number %]</td>
<td>[% pds_query.home_address %]</td>
<td>[% pds_query.post_code %]</td>
<td>
[% # split DoB into components:
ymd = pds_query.dob.split('-'); # PROCESS dumper.tt dump = ymd;
params = {
last_name => pds_query.last_name,
first_name => pds_query.first_name,
middle_name => pds_query.middle_name,
nhs_number => pds_query.nhs_number,
gender => pds_query.gender,
year => ymd.0,
month => ymd.1,
day => ymd.2,
# add ref_src_id passed in via hidden field:
referral_source_id => c.query.param('referral_source_id'),
};
%]
[%
IF patient.id; # ie patient exists in patient table
my_params = [];
fields = [ 'last_name' 'first_name' 'middle_name' 'nhs_number'
'gender' 'year' 'month' 'day' ];
FOREACH entry IN fields; # only want selected fields from params:
my_params.push(entry _ '=' _ params.$entry);
END;
%]
<a href="[% app_url %]/patient/edit_patient/[% patient.id
%]?[% my_params.join(';') %]" class="href">
<img class="href" src="/images/edit.jpg" alt="Edit" title="Edit patient" />
</a>
[% ELSE;
my_params = [];
FOREACH pair IN params.pairs; # want all params:
my_params.push(pair.key _ '=' _ pair.value);
END;
%]
<a href="[% app_url %]/patient?[% my_params.join(';') %]" class="href">
<img class="href" src="/images/record.jpg" alt="Register"
title="Register patient" />
</a>
[% END %]
</td>
</tr>
<tr>
<td colspan="8" align="right" class="borderless">
<span class="info">Not the above -
<a href="[% app_url %]/patient[% return_link %]?_skip_pds=1">
continue »
</a>
</span>
</td>
</tr>
</table>
[% ELSE; # PROCESS dumper.tt dump = pds_query; # pds_query.Error Code isn't SMSP-0000
error_code = pds_query.ErrorCode;
error_str = pds_codes.item(error_code); # empty for a PDS timeout
%]
<p class="indent">
<span class="warning">PDS returned:</span>
<span class="highlight">[% error_code %] [% error_str %]</span>
<span class="bold">
[% IF error_code.match('timeout') # LIMS error msg, not PDS error code %]
please repeat query below, or
<a href="[% app_url %]/patient[% return_link %]?_skip_pds=1">
skip PDS query »
</a>
[% ELSE %]please refine query and repeat:[% END %]
</span>
</p>
[% END %]
[% ELSE # pds_query isn't an arrayref %]
<p class="info">[% pds_query %]
No PDS matches found :: <!-- // include flag to skip PAS query: -->
<a href="[% app_url %]/patient[% return_link %]?_skip_pas=1">
continue »
</a>
</p>
[% END %]
[% END %]
<h3 class="header">PDS query</h3>
[% # PROCESS site/js/jquery.tt # already loaded in html_wrapper %]
<script language="javascript" type="text/javascript">
<!--
function set_proposed(id, proposed) { $(id).val(proposed) }
-->
</script>
[% # TODO: ? tack request_id on end of url to redirect back to request %]
<p class="info indent">Mandatory fields last-name, gender & dob for PDS query:</p>
[% BLOCK row %]
<tr>
<td class="[% required ? 'red' : 'normal' %]">[% label %]:</td>
<td>
<input type="text" name="[% field %]" size="10" id="[% field %]" />
</td>
<td>
[% IF patient.$field; # requires var (not item) for dob to work
value = ( field == 'dob' )
? patient.dob.ymd : patient.item(field); %]
<a href="#" onclick="javascript:set_proposed('#[% field %]',
'[% value %]'); return false">«</a>
[% value %]
[% END %]
</td>
</tr>
[% END %]
<form method="post" action="[% app_url %]/patient/do_pds_search">
<input type="hidden" name="_patient_id" value="[% patient.id %]" />
<input type="hidden" name="referral_source_id"
value="[% c.query.param('referral_source_id') %]" />
<table class="indent borderless">
[% label = 'Last name'; field = 'last_name'; required = 1; INCLUDE row; %]
[% label = 'First name'; field = 'first_name'; required = 0; INCLUDE row %]
[% label = 'Date of birth'; field = 'dob'; required = 1; INCLUDE row; %]
[% label = 'NHS number'; field = 'nhs_number'; required = 0; INCLUDE row; %]
<!-- // PDS doesn't use this:
<tr>
<td>Unit Number:</td>
<td>
<input type="text" name="unit_number" size="10" id="unit_number" />
</td>
<td>
[% IF unit_numbers.size; FOREACH entry IN unit_numbers %]
<a href="#" onclick="javascript:set_proposed('#unit_number',
'[% entry %]')">«</a> [% entry %]<br />[% END %]
[% ELSIF patient.unit_number # return from PAS %]foo
<a href="#" onclick="javascript:set_proposed('#unit_number',
'[% entry %]')">«</a> [% entry %]<br />
[% END %]
</td>
</tr>
-->
<tr>
<td class="red">Gender:</td>
<td>
<input type="text" name="gender" size="10" id="gender" />
</td>
<td>
[% IF patient.gender.match('M|F') # 'U' no use for PDS %]
<a href="#" onclick="javascript:set_proposed('#gender',
'[% patient.gender %]')">«</a> [% patient.gender %]
[% ELSE; FOREACH entry IN [ 'M' 'F' ] %]
<a href="#" onclick="javascript:set_proposed('#gender',
'[% entry %]')">«</a> [% entry %]<br />[% END %]
[% END %]
</td>
</tr>
<tr>
<td>Post code:</td>
<td>
<input type="text" name="post_code" size="10" />
</td>
<td>
<input type="submit" name="_is_pds_search" value="Go" class="button" />
</td>
</tr>
</table>
<p>[% site.html.back_button %]</p>
</form>
<!-- END [% template.name %] -->