3085 |
15 Jan 15 |
olle |
var RetractionFollowUpForm = function() |
3085 |
15 Jan 15 |
olle |
2 |
{ |
3085 |
15 Jan 15 |
olle |
var rf = {}; |
3765 |
23 Feb 16 |
nicklas |
4 |
|
3765 |
23 Feb 16 |
nicklas |
var patients; |
3765 |
23 Feb 16 |
nicklas |
var selectedPatient; |
5643 |
07 Oct 19 |
nicklas |
var itemsForDestruction; |
3766 |
23 Feb 16 |
nicklas |
var action; |
3766 |
23 Feb 16 |
nicklas |
var allCanBeDeleted = false; |
3766 |
23 Feb 16 |
nicklas |
10 |
|
3085 |
15 Jan 15 |
olle |
var labSentDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var labReceivedDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var bloodSentDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var bloodReceivedDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var frozenSentDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var frozenReceivedDateIsValid = false; |
3265 |
21 Apr 15 |
olle |
var rccSydSentDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var debug = 0; |
3085 |
15 Jan 15 |
olle |
19 |
|
3085 |
15 Jan 15 |
olle |
rf.initPage = function() |
3085 |
15 Jan 15 |
olle |
21 |
{ |
3765 |
23 Feb 16 |
nicklas |
22 |
|
3085 |
15 Jan 15 |
olle |
// Step 1 |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('step-1', 'wizard-validate', rf.validateStep1); |
3085 |
15 Jan 15 |
olle |
25 |
|
3085 |
15 Jan 15 |
olle |
// Step 2 |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('step-2', 'wizard-initialize', rf.initializeStep2); |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('step-2', 'wizard-validate', rf.validateStep2); |
3756 |
18 Feb 16 |
olle |
Events.addEventHandler('labDateNa', 'change', rf.labDateNaOnChange); |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('labSentDate', 'blur', rf.labDateOnChange); |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('labReceivedDate', 'blur', rf.labDateOnChange); |
3756 |
18 Feb 16 |
olle |
Events.addEventHandler('bloodDateNa', 'change', rf.bloodDateNaOnChange); |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('bloodSentDate', 'blur', rf.bloodDateOnChange); |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('bloodReceivedDate', 'blur', rf.bloodDateOnChange); |
3756 |
18 Feb 16 |
olle |
Events.addEventHandler('frozenDateNa', 'change', rf.frozenDateNaOnChange); |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('frozenSentDate', 'blur', rf.frozenDateOnChange); |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('frozenReceivedDate', 'blur', rf.frozenDateOnChange); |
3756 |
18 Feb 16 |
olle |
Events.addEventHandler('rccSydDateNa', 'change', rf.rccSydDateNaOnChange); |
3265 |
21 Apr 15 |
olle |
Events.addEventHandler('rccSydSentDate', 'blur', rf.rccSydDateOnChange); |
3085 |
15 Jan 15 |
olle |
40 |
|
3085 |
15 Jan 15 |
olle |
// Navigation |
3085 |
15 Jan 15 |
olle |
Buttons.addClickHandler('gocancel', Wizard.cancelWizard); |
3085 |
15 Jan 15 |
olle |
Buttons.addClickHandler('gorestart', Wizard.restartWizard); |
3085 |
15 Jan 15 |
olle |
Buttons.addClickHandler('gonext', Wizard.goNextOnClick); |
3085 |
15 Jan 15 |
olle |
Buttons.addClickHandler('goregister', Wizard.goRegister); |
3085 |
15 Jan 15 |
olle |
46 |
|
3085 |
15 Jan 15 |
olle |
// Final registration |
3085 |
15 Jan 15 |
olle |
Events.addEventHandler('wizard', 'wizard-submit', rf.submit); |
3085 |
15 Jan 15 |
olle |
49 |
|
3765 |
23 Feb 16 |
nicklas |
50 |
|
3765 |
23 Feb 16 |
nicklas |
var url = '../Retraction.servlet?ID='+App.getSessionId(); |
3765 |
23 Feb 16 |
nicklas |
url += '&cmd=LoadPatientsForRetraction'; |
3765 |
23 Feb 16 |
nicklas |
Wizard.showLoadingAnimation('Loading patients for retraction...'); |
3765 |
23 Feb 16 |
nicklas |
Wizard.asyncJsonRequest(url, rf.onPatientsLoaded); |
3085 |
15 Jan 15 |
olle |
55 |
} |
3085 |
15 Jan 15 |
olle |
56 |
|
3085 |
15 Jan 15 |
olle |
57 |
|
3765 |
23 Feb 16 |
nicklas |
rf.onPatientsLoaded = function(response) |
3085 |
15 Jan 15 |
olle |
59 |
{ |
3765 |
23 Feb 16 |
nicklas |
patients = response.patients; |
3765 |
23 Feb 16 |
nicklas |
if (patients.length == 0) |
3085 |
15 Jan 15 |
olle |
62 |
{ |
3765 |
23 Feb 16 |
nicklas |
Wizard.setFatalError('No cases available for retraction.'); |
3085 |
15 Jan 15 |
olle |
return; |
3085 |
15 Jan 15 |
olle |
65 |
} |
3765 |
23 Feb 16 |
nicklas |
66 |
|
3765 |
23 Feb 16 |
nicklas |
var html = ''; |
3765 |
23 Feb 16 |
nicklas |
for (var patNo = 0; patNo < patients.length; patNo++) |
3085 |
15 Jan 15 |
olle |
69 |
{ |
3765 |
23 Feb 16 |
nicklas |
var patient = patients[patNo]; |
3765 |
23 Feb 16 |
nicklas |
var readyForDestruction = patient.RetractStatus == 'ReadyForDestruction'; |
3765 |
23 Feb 16 |
nicklas |
72 |
|
3765 |
23 Feb 16 |
nicklas |
html += '<tr class="highlight ' + (patNo % 2 == 0 ? 'oddrow' : 'evenrow') + '" id="patient.'+patient.id + '">'; |
3765 |
23 Feb 16 |
nicklas |
html += '<td>'+(patNo+1)+'</td>'; |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft">'; |
3765 |
23 Feb 16 |
nicklas |
html += '<span class="link item-link" data-item-type="BIOSOURCE" data-item-id="'+patient.id+'">'; |
3765 |
23 Feb 16 |
nicklas |
html += Strings.encodeTags(patient.name); |
3765 |
23 Feb 16 |
nicklas |
html += '</td>'; |
3765 |
23 Feb 16 |
nicklas |
html += '<td>'+Strings.encodeTags(patient.PersonalNumber)+'</td>'; |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft">'; |
3765 |
23 Feb 16 |
nicklas |
for (var caseNo = 0; caseNo < patient.cases.length; caseNo++) |
3085 |
15 Jan 15 |
olle |
82 |
{ |
3765 |
23 Feb 16 |
nicklas |
var c = patient.cases[caseNo]; |
4497 |
10 May 17 |
nicklas |
if (caseNo > 0) html += '<br>'; |
3765 |
23 Feb 16 |
nicklas |
html += '<span class="link item-link" data-item-type="SAMPLE" data-item-id="'+c.id+'">'; |
3765 |
23 Feb 16 |
nicklas |
html += Strings.encodeTags(c.name); // + ' [' + c.laterality + ']'; |
3765 |
23 Feb 16 |
nicklas |
html += '</span>'; |
4497 |
10 May 17 |
nicklas |
html += '<img class="link case-summary" data-name="'+Strings.encodeTags(c.name)+'" src="../images/case_summary.png">'; |
3085 |
15 Jan 15 |
olle |
89 |
} |
3765 |
23 Feb 16 |
nicklas |
html += '</td>'; |
3765 |
23 Feb 16 |
nicklas |
91 |
|
5646 |
07 Oct 19 |
nicklas |
html += '<td class="dottedleft bg-actions">'; |
5646 |
07 Oct 19 |
nicklas |
html += '<span class="link protocol-action" data-patient-id="'+patient.id+'" title="Create a protocol with all items to destruct">'; |
5646 |
07 Oct 19 |
nicklas |
html += 'Protocol<img src="../images/report.png" style="margin-left: 4px;">'; |
5646 |
07 Oct 19 |
nicklas |
html += '</td>'; |
5646 |
07 Oct 19 |
nicklas |
html += '<td class="bg-actions"><span class="link edit-action" data-index="'+patNo+'">Edit<img src="../images/edit.png" style="margin-left: 4px;"></span></td>'; |
5646 |
07 Oct 19 |
nicklas |
html += '<td class="bg-actions">' |
5646 |
07 Oct 19 |
nicklas |
if (readyForDestruction) |
5646 |
07 Oct 19 |
nicklas |
99 |
{ |
5646 |
07 Oct 19 |
nicklas |
html += '<span class="link destruct-action" data-index="'+patNo+'">'; |
5646 |
07 Oct 19 |
nicklas |
html += 'Destruct<img src="../images/gonext.png"></span>'; |
5646 |
07 Oct 19 |
nicklas |
102 |
} |
5646 |
07 Oct 19 |
nicklas |
html += '</td>'; |
3765 |
23 Feb 16 |
nicklas |
if (patient.RetractNaLab) |
3765 |
23 Feb 16 |
nicklas |
105 |
{ |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft" colspan="2">n/a</td>'; |
3765 |
23 Feb 16 |
nicklas |
107 |
} |
3085 |
15 Jan 15 |
olle |
else |
3085 |
15 Jan 15 |
olle |
109 |
{ |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft">'+Reggie.reformatDate(patient.RetractTxLab) + '</td>'; |
3765 |
23 Feb 16 |
nicklas |
html += '<td>'+Reggie.reformatDate(patient.RetractRxLab) + '</td>'; |
3085 |
15 Jan 15 |
olle |
112 |
} |
3765 |
23 Feb 16 |
nicklas |
if (patient.RetractNaBb) |
3085 |
15 Jan 15 |
olle |
114 |
{ |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft" colspan="2">n/a</td>'; |
3085 |
15 Jan 15 |
olle |
116 |
} |
3765 |
23 Feb 16 |
nicklas |
else |
3085 |
15 Jan 15 |
olle |
118 |
{ |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft">'+Reggie.reformatDate(patient.RetractTxBb) + '</td>'; |
3765 |
23 Feb 16 |
nicklas |
html += '<td>'+Reggie.reformatDate(patient.RetractRxBb) + '</td>'; |
3085 |
15 Jan 15 |
olle |
121 |
} |
3765 |
23 Feb 16 |
nicklas |
if (patient.RetractNaFrozen) |
3765 |
23 Feb 16 |
nicklas |
123 |
{ |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft" colspan="2">n/a</td>'; |
3765 |
23 Feb 16 |
nicklas |
125 |
} |
3085 |
15 Jan 15 |
olle |
else |
3085 |
15 Jan 15 |
olle |
127 |
{ |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft">'+Reggie.reformatDate(patient.RetractTxFrozen) + '</td>'; |
3765 |
23 Feb 16 |
nicklas |
html += '<td>'+Reggie.reformatDate(patient.RetractRxFrozen) + '</td>'; |
3085 |
15 Jan 15 |
olle |
130 |
} |
3765 |
23 Feb 16 |
nicklas |
if (patient.RetractNaRccSyd) |
3765 |
23 Feb 16 |
nicklas |
132 |
{ |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft">n/a</td>'; |
3765 |
23 Feb 16 |
nicklas |
134 |
} |
3085 |
15 Jan 15 |
olle |
else |
3085 |
15 Jan 15 |
olle |
136 |
{ |
3765 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft">'+Reggie.reformatDate(patient.RetractTxRccSyd) + '</td>'; |
3085 |
15 Jan 15 |
olle |
138 |
} |
3765 |
23 Feb 16 |
nicklas |
html += '</tr>'; |
3085 |
15 Jan 15 |
olle |
140 |
} |
3085 |
15 Jan 15 |
olle |
141 |
|
3765 |
23 Feb 16 |
nicklas |
Doc.element('patient-list').innerHTML = html; |
3765 |
23 Feb 16 |
nicklas |
Doc.show('step-1'); |
3765 |
23 Feb 16 |
nicklas |
144 |
|
3765 |
23 Feb 16 |
nicklas |
var cs = document.getElementsByClassName('item-link'); |
3765 |
23 Feb 16 |
nicklas |
for (var i = 0; i < cs.length; i++) |
3085 |
15 Jan 15 |
olle |
147 |
{ |
3765 |
23 Feb 16 |
nicklas |
Events.addEventHandler(cs[i], 'click', Items.itemOnClick); |
3085 |
15 Jan 15 |
olle |
149 |
} |
3765 |
23 Feb 16 |
nicklas |
150 |
|
3765 |
23 Feb 16 |
nicklas |
var cs = document.getElementsByClassName('case-summary'); |
3765 |
23 Feb 16 |
nicklas |
for (var i = 0; i < cs.length; i++) |
3085 |
15 Jan 15 |
olle |
153 |
{ |
5019 |
10 Oct 18 |
nicklas |
Events.addEventHandler(cs[i], 'click', Reggie.openCaseSummaryPopupOnEvent); |
3085 |
15 Jan 15 |
olle |
155 |
} |
5638 |
03 Oct 19 |
nicklas |
156 |
|
5638 |
03 Oct 19 |
nicklas |
var cs = document.getElementsByClassName('protocol-action'); |
5638 |
03 Oct 19 |
nicklas |
for (var i = 0; i < cs.length; i++) |
5638 |
03 Oct 19 |
nicklas |
159 |
{ |
5638 |
03 Oct 19 |
nicklas |
Events.addEventHandler(cs[i], 'click', rf.goProtocol); |
5638 |
03 Oct 19 |
nicklas |
161 |
} |
5638 |
03 Oct 19 |
nicklas |
162 |
|
3765 |
23 Feb 16 |
nicklas |
var cs = document.getElementsByClassName('edit-action'); |
3765 |
23 Feb 16 |
nicklas |
for (var i = 0; i < cs.length; i++) |
3085 |
15 Jan 15 |
olle |
165 |
{ |
3765 |
23 Feb 16 |
nicklas |
Events.addEventHandler(cs[i], 'click', rf.goEdit); |
3085 |
15 Jan 15 |
olle |
167 |
} |
3765 |
23 Feb 16 |
nicklas |
168 |
|
3765 |
23 Feb 16 |
nicklas |
var cs = document.getElementsByClassName('destruct-action'); |
3765 |
23 Feb 16 |
nicklas |
for (var i = 0; i < cs.length; i++) |
3765 |
23 Feb 16 |
nicklas |
171 |
{ |
3765 |
23 Feb 16 |
nicklas |
Events.addEventHandler(cs[i], 'click', rf.goDestruct); |
3765 |
23 Feb 16 |
nicklas |
173 |
} |
3765 |
23 Feb 16 |
nicklas |
174 |
|
3765 |
23 Feb 16 |
nicklas |
Doc.show('step-1'); |
3765 |
23 Feb 16 |
nicklas |
176 |
} |
3085 |
15 Jan 15 |
olle |
177 |
|
3765 |
23 Feb 16 |
nicklas |
rf.goDestruct = function(event) |
3765 |
23 Feb 16 |
nicklas |
179 |
{ |
3766 |
23 Feb 16 |
nicklas |
var index = Data.get(event.currentTarget, 'index'); |
3766 |
23 Feb 16 |
nicklas |
selectedPatient = patients[index]; |
3766 |
23 Feb 16 |
nicklas |
action = 'destruct'; |
3766 |
23 Feb 16 |
nicklas |
Wizard.goNext(); |
3765 |
23 Feb 16 |
nicklas |
184 |
} |
3765 |
23 Feb 16 |
nicklas |
185 |
|
3765 |
23 Feb 16 |
nicklas |
rf.goEdit = function(event) |
3765 |
23 Feb 16 |
nicklas |
187 |
{ |
3765 |
23 Feb 16 |
nicklas |
var index = Data.get(event.currentTarget, 'index'); |
3765 |
23 Feb 16 |
nicklas |
selectedPatient = patients[index]; |
3766 |
23 Feb 16 |
nicklas |
action = 'edit'; |
3765 |
23 Feb 16 |
nicklas |
Wizard.goNext(); |
3765 |
23 Feb 16 |
nicklas |
192 |
} |
3765 |
23 Feb 16 |
nicklas |
193 |
|
5638 |
03 Oct 19 |
nicklas |
rf.goProtocol = function(event) |
5638 |
03 Oct 19 |
nicklas |
195 |
{ |
5643 |
07 Oct 19 |
nicklas |
var patientId = Data.get(event.currentTarget, 'patient-id'); |
5638 |
03 Oct 19 |
nicklas |
197 |
|
5638 |
03 Oct 19 |
nicklas |
var url = 'retraction_protocol2.jsp?ID='+App.getSessionId(); |
5643 |
07 Oct 19 |
nicklas |
url += '&patientId='+patientId; |
5638 |
03 Oct 19 |
nicklas |
200 |
|
5638 |
03 Oct 19 |
nicklas |
window.open(url); |
5638 |
03 Oct 19 |
nicklas |
202 |
} |
5638 |
03 Oct 19 |
nicklas |
203 |
|
3085 |
15 Jan 15 |
olle |
204 |
/** |
3765 |
23 Feb 16 |
nicklas |
Check that a patient has been selected. |
3765 |
23 Feb 16 |
nicklas |
206 |
*/ |
3765 |
23 Feb 16 |
nicklas |
rf.validateStep1 = function(event) |
3765 |
23 Feb 16 |
nicklas |
208 |
{ |
3765 |
23 Feb 16 |
nicklas |
if (!selectedPatient) event.preventDefault(); |
3765 |
23 Feb 16 |
nicklas |
210 |
} |
3765 |
23 Feb 16 |
nicklas |
211 |
|
3765 |
23 Feb 16 |
nicklas |
212 |
|
3765 |
23 Feb 16 |
nicklas |
213 |
/** |
3085 |
15 Jan 15 |
olle |
Load information about the given case. |
3085 |
15 Jan 15 |
olle |
215 |
*/ |
6824 |
30 Aug 22 |
nicklas |
rf.initializeStep2 = function() |
3085 |
15 Jan 15 |
olle |
217 |
{ |
3765 |
23 Feb 16 |
nicklas |
var p = selectedPatient; |
3766 |
23 Feb 16 |
nicklas |
if (action == 'edit') |
3766 |
23 Feb 16 |
nicklas |
220 |
{ |
3766 |
23 Feb 16 |
nicklas |
Doc.element('step-2-title').innerHTML = 'Retraction follow-up'; |
5643 |
07 Oct 19 |
nicklas |
var url = '../Retraction.servlet?ID='+App.getSessionId(); |
5643 |
07 Oct 19 |
nicklas |
url += '&cmd=GetProtocolInfo'; |
5643 |
07 Oct 19 |
nicklas |
url += '&patientId=' + p.id; |
5643 |
07 Oct 19 |
nicklas |
Wizard.showLoadingAnimation('Loading case information...'); |
5643 |
07 Oct 19 |
nicklas |
Wizard.asyncJsonRequest(url, rf.caseInfoLoadedForEdit); |
3766 |
23 Feb 16 |
nicklas |
227 |
} |
3766 |
23 Feb 16 |
nicklas |
else if (action == 'destruct') |
3766 |
23 Feb 16 |
nicklas |
229 |
{ |
3766 |
23 Feb 16 |
nicklas |
Doc.element('step-2-title').innerHTML = 'Retraction destruction'; |
3766 |
23 Feb 16 |
nicklas |
var url = '../Retraction.servlet?ID='+App.getSessionId(); |
3766 |
23 Feb 16 |
nicklas |
url += '&cmd=GetCaseInfoBeforeDestruction'; |
3766 |
23 Feb 16 |
nicklas |
url += '&patientId=' + p.id; |
3766 |
23 Feb 16 |
nicklas |
Wizard.showLoadingAnimation('Loading case information...'); |
5643 |
07 Oct 19 |
nicklas |
Wizard.asyncJsonRequest(url, rf.caseInfoLoadedForDestruct); |
3766 |
23 Feb 16 |
nicklas |
236 |
} |
3085 |
15 Jan 15 |
olle |
237 |
} |
3085 |
15 Jan 15 |
olle |
238 |
|
5643 |
07 Oct 19 |
nicklas |
rf.caseInfoLoadedForEdit = function(response) |
5643 |
07 Oct 19 |
nicklas |
240 |
{ |
5643 |
07 Oct 19 |
nicklas |
var frm = document.forms['reggie']; |
5643 |
07 Oct 19 |
nicklas |
var p = selectedPatient; |
5643 |
07 Oct 19 |
nicklas |
243 |
|
5643 |
07 Oct 19 |
nicklas |
itemsForDestruction = []; |
5643 |
07 Oct 19 |
nicklas |
245 |
|
5643 |
07 Oct 19 |
nicklas |
// Item data |
5643 |
07 Oct 19 |
nicklas |
var html = ''; |
5643 |
07 Oct 19 |
nicklas |
html += rf.tableRowsForItems('Specimen', response.specimen, 'SAMPLE'); |
5643 |
07 Oct 19 |
nicklas |
html += rf.tableRowsForItems('Lysate', response.lysate, 'EXTRACT'); |
5643 |
07 Oct 19 |
nicklas |
html += rf.tableRowsForItems('RNA', response.rna, 'EXTRACT'); |
5643 |
07 Oct 19 |
nicklas |
html += rf.tableRowsForItems('DNA', response.dna, 'EXTRACT'); |
5643 |
07 Oct 19 |
nicklas |
html += rf.tableRowsForItems('FlowThrough', response.flowThrough, 'EXTRACT'); |
5643 |
07 Oct 19 |
nicklas |
html += rf.tableRowsForItems('BloodDNA', response.bloodDna, 'EXTRACT'); |
5643 |
07 Oct 19 |
nicklas |
254 |
|
5643 |
07 Oct 19 |
nicklas |
if (html.length > 0) |
5643 |
07 Oct 19 |
nicklas |
256 |
{ |
5643 |
07 Oct 19 |
nicklas |
Doc.element('itemList').innerHTML = html; |
5643 |
07 Oct 19 |
nicklas |
Doc.show('itemList'); |
5643 |
07 Oct 19 |
nicklas |
Doc.hide('labNa'); |
5643 |
07 Oct 19 |
nicklas |
Data.set('btnCreateProtocol', 'patient-id', p.id); |
5643 |
07 Oct 19 |
nicklas |
Doc.show('btnCreateProtocol'); |
5643 |
07 Oct 19 |
nicklas |
Buttons.addClickHandler('btnCreateProtocol', rf.goProtocol); |
5643 |
07 Oct 19 |
nicklas |
frm.labDateNa.disabled = true; |
5643 |
07 Oct 19 |
nicklas |
p.RetractNaLab = false; |
5643 |
07 Oct 19 |
nicklas |
265 |
|
5643 |
07 Oct 19 |
nicklas |
var cs = document.getElementsByClassName('destruct-check'); |
5643 |
07 Oct 19 |
nicklas |
for (var i = 0; i < cs.length; i++) |
5643 |
07 Oct 19 |
nicklas |
268 |
{ |
5643 |
07 Oct 19 |
nicklas |
Events.addEventHandler(cs[i], 'click', rf.currentRetractionStatus); |
5643 |
07 Oct 19 |
nicklas |
270 |
} |
6159 |
03 Mar 21 |
nicklas |
271 |
|
5643 |
07 Oct 19 |
nicklas |
272 |
} |
5643 |
07 Oct 19 |
nicklas |
else |
5643 |
07 Oct 19 |
nicklas |
274 |
{ |
5643 |
07 Oct 19 |
nicklas |
Doc.show('noItemsToDestruct'); |
5643 |
07 Oct 19 |
nicklas |
276 |
} |
5643 |
07 Oct 19 |
nicklas |
277 |
|
5643 |
07 Oct 19 |
nicklas |
Doc.element('patientInfo.name').innerHTML = Strings.encodeTags(p.name); |
5643 |
07 Oct 19 |
nicklas |
rf.setNaAndDates(frm.labDateNa, frm.labSentDate, frm.labReceivedDate, p.RetractNaLab, p.RetractTxLab, p.RetractRxLab); |
5643 |
07 Oct 19 |
nicklas |
rf.setNaAndDates(frm.bloodDateNa, frm.bloodSentDate, frm.bloodReceivedDate, p.RetractNaBb, p.RetractTxBb, p.RetractRxBb); |
5643 |
07 Oct 19 |
nicklas |
rf.setNaAndDates(frm.frozenDateNa, frm.frozenSentDate, frm.frozenReceivedDate, p.RetractNaFrozen, p.RetractTxFrozen, p.RetractRxFrozen); |
5643 |
07 Oct 19 |
nicklas |
rf.setNaAndDates(frm.rccSydDateNa, frm.rccSydSentDate, null, p.RetractNaRccSyd, p.RetractTxRccSyd, null); |
5643 |
07 Oct 19 |
nicklas |
rf.currentRetractionStatus(); |
5643 |
07 Oct 19 |
nicklas |
284 |
|
5643 |
07 Oct 19 |
nicklas |
Doc.element('currentRetractionStatus').innerHTML = '<b>Current retraction status</b>: ' + Strings.encodeTags(p.RetractStatus || 'Not ready for destruction'); |
5643 |
07 Oct 19 |
nicklas |
286 |
|
5643 |
07 Oct 19 |
nicklas |
Doc.show('followup-form'); |
5643 |
07 Oct 19 |
nicklas |
Doc.show('gocancel'); |
5643 |
07 Oct 19 |
nicklas |
Doc.show('goregister'); |
5643 |
07 Oct 19 |
nicklas |
Wizard.setCurrentStep(2); |
5643 |
07 Oct 19 |
nicklas |
291 |
} |
5643 |
07 Oct 19 |
nicklas |
292 |
|
6159 |
03 Mar 21 |
nicklas |
rf.tableRowsForItems = function(itemSubtype, items, itemType, disableCheckBox) |
5643 |
07 Oct 19 |
nicklas |
294 |
{ |
5643 |
07 Oct 19 |
nicklas |
if (!items || items.length == 0) return ''; |
5643 |
07 Oct 19 |
nicklas |
// Table item row |
5643 |
07 Oct 19 |
nicklas |
var html = ''; |
5643 |
07 Oct 19 |
nicklas |
for (var itemNo = 0; itemNo < items.length; itemNo++) |
5643 |
07 Oct 19 |
nicklas |
299 |
{ |
5643 |
07 Oct 19 |
nicklas |
var item = items[itemNo]; |
5643 |
07 Oct 19 |
nicklas |
var isDestroyed = item.RetractStatus == 'Destroyed'; |
5643 |
07 Oct 19 |
nicklas |
302 |
|
5643 |
07 Oct 19 |
nicklas |
// Add some information that we need later to the 'itemsForDestruction' array |
5643 |
07 Oct 19 |
nicklas |
var tmp = {}; |
5643 |
07 Oct 19 |
nicklas |
tmp.id = item.id; |
5643 |
07 Oct 19 |
nicklas |
tmp.itemType = itemType; |
5643 |
07 Oct 19 |
nicklas |
tmp.destructed = isDestroyed; |
5643 |
07 Oct 19 |
nicklas |
itemsForDestruction[itemsForDestruction.length] = tmp; |
5643 |
07 Oct 19 |
nicklas |
309 |
|
5643 |
07 Oct 19 |
nicklas |
html += '<tr>'; |
5643 |
07 Oct 19 |
nicklas |
html += '<td>'+itemSubtype+'</td>'; |
5643 |
07 Oct 19 |
nicklas |
html += '<td>'+Strings.encodeTags(item.name)+'</td>'; |
6159 |
03 Mar 21 |
nicklas |
html += '<td><input class="destruct-check" name="destruct.'+item.id+'" type="checkbox"' + (isDestroyed ? ' checked':'')+(disableCheckBox ? ' disabled' : '')+'></td>'; |
5643 |
07 Oct 19 |
nicklas |
html += '</tr>'; |
5643 |
07 Oct 19 |
nicklas |
315 |
} |
5643 |
07 Oct 19 |
nicklas |
return html; |
5643 |
07 Oct 19 |
nicklas |
317 |
} |
5643 |
07 Oct 19 |
nicklas |
318 |
|
3085 |
15 Jan 15 |
olle |
319 |
/** |
3765 |
23 Feb 16 |
nicklas |
Initialize N/A and date fields |
3085 |
15 Jan 15 |
olle |
321 |
*/ |
3765 |
23 Feb 16 |
nicklas |
rf.setNaAndDates = function(naField, sentField, receivedField, na, sent, received) |
3085 |
15 Jan 15 |
olle |
323 |
{ |
3765 |
23 Feb 16 |
nicklas |
sentField.value = sent; |
3765 |
23 Feb 16 |
nicklas |
if (receivedField) receivedField.value = received; |
3765 |
23 Feb 16 |
nicklas |
if (na) |
3085 |
15 Jan 15 |
olle |
327 |
{ |
3765 |
23 Feb 16 |
nicklas |
naField.checked = true; |
3765 |
23 Feb 16 |
nicklas |
rf.disabledDate(sentField); |
3765 |
23 Feb 16 |
nicklas |
if (receivedField) rf.disabledDate(receivedField); |
3085 |
15 Jan 15 |
olle |
331 |
} |
3085 |
15 Jan 15 |
olle |
332 |
} |
3765 |
23 Feb 16 |
nicklas |
333 |
|
3765 |
23 Feb 16 |
nicklas |
334 |
/** |
3765 |
23 Feb 16 |
nicklas |
Disable the given date field and store away the current value |
3765 |
23 Feb 16 |
nicklas |
336 |
*/ |
3765 |
23 Feb 16 |
nicklas |
rf.disabledDate = function(dateField) |
3765 |
23 Feb 16 |
nicklas |
338 |
{ |
3765 |
23 Feb 16 |
nicklas |
if (dateField.disabled) return; |
3765 |
23 Feb 16 |
nicklas |
dateField.oldValue = dateField.value; |
3765 |
23 Feb 16 |
nicklas |
dateField.value = null; |
3765 |
23 Feb 16 |
nicklas |
dateField.disabled = true; |
3765 |
23 Feb 16 |
nicklas |
343 |
} |
3765 |
23 Feb 16 |
nicklas |
344 |
|
3765 |
23 Feb 16 |
nicklas |
345 |
/** |
3765 |
23 Feb 16 |
nicklas |
Enable the given date field and bring back the old value. |
3765 |
23 Feb 16 |
nicklas |
347 |
*/ |
3765 |
23 Feb 16 |
nicklas |
rf.enabledDate = function(dateField) |
3765 |
23 Feb 16 |
nicklas |
349 |
{ |
3765 |
23 Feb 16 |
nicklas |
if (!dateField.disabled) return; |
3765 |
23 Feb 16 |
nicklas |
dateField.value = dateField.oldValue || ''; |
3765 |
23 Feb 16 |
nicklas |
dateField.disabled = false; |
3765 |
23 Feb 16 |
nicklas |
353 |
} |
3765 |
23 Feb 16 |
nicklas |
354 |
|
3756 |
18 Feb 16 |
olle |
rf.labDateNaOnChange = function() |
3756 |
18 Feb 16 |
olle |
356 |
{ |
3756 |
18 Feb 16 |
olle |
var frm = document.forms['reggie']; |
3756 |
18 Feb 16 |
olle |
358 |
|
5643 |
07 Oct 19 |
nicklas |
var labDateNa = !frm.labDateNa.disabled && frm.labDateNa.checked; |
3756 |
18 Feb 16 |
olle |
if (labDateNa) |
3756 |
18 Feb 16 |
olle |
361 |
{ |
3756 |
18 Feb 16 |
olle |
// Disable date fields |
3765 |
23 Feb 16 |
nicklas |
rf.disabledDate(frm.labSentDate); |
3765 |
23 Feb 16 |
nicklas |
rf.disabledDate(frm.labReceivedDate); |
3756 |
18 Feb 16 |
olle |
// Set dates as valid |
3756 |
18 Feb 16 |
olle |
labSentDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
labReceivedDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
// Set input as valid |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('labDate', 'valid'); |
3756 |
18 Feb 16 |
olle |
370 |
} |
3756 |
18 Feb 16 |
olle |
else |
3756 |
18 Feb 16 |
olle |
372 |
{ |
3756 |
18 Feb 16 |
olle |
// Enable date fields |
3765 |
23 Feb 16 |
nicklas |
rf.enabledDate(frm.labSentDate); |
3765 |
23 Feb 16 |
nicklas |
rf.enabledDate(frm.labReceivedDate); |
3756 |
18 Feb 16 |
olle |
// Set date valid status |
3756 |
18 Feb 16 |
olle |
labSentDateIsValid = false; |
3756 |
18 Feb 16 |
olle |
var labSentDate = frm.labSentDate.value; |
3756 |
18 Feb 16 |
olle |
if (labSentDate != null) |
3756 |
18 Feb 16 |
olle |
380 |
{ |
3756 |
18 Feb 16 |
olle |
labSentDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
382 |
} |
3756 |
18 Feb 16 |
olle |
labReceivedDateIsValid = false; |
3756 |
18 Feb 16 |
olle |
var labReceivedDate = frm.labReceivedDate.value; |
3756 |
18 Feb 16 |
olle |
if (labReceivedDate != null) |
3756 |
18 Feb 16 |
olle |
386 |
{ |
3756 |
18 Feb 16 |
olle |
labReceivedDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
388 |
} |
3756 |
18 Feb 16 |
olle |
// Reset input status |
3756 |
18 Feb 16 |
olle |
if (labSentDateIsValid && labReceivedDateIsValid) |
3756 |
18 Feb 16 |
olle |
391 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('labDate', 'valid'); |
3756 |
18 Feb 16 |
olle |
393 |
} |
3756 |
18 Feb 16 |
olle |
else if (labSentDate != null && labReceivedDate != null) |
3756 |
18 Feb 16 |
olle |
395 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('labDate'); |
3756 |
18 Feb 16 |
olle |
397 |
} |
3756 |
18 Feb 16 |
olle |
398 |
} |
3756 |
18 Feb 16 |
olle |
rf.currentRetractionStatus(); |
3756 |
18 Feb 16 |
olle |
400 |
} |
3756 |
18 Feb 16 |
olle |
401 |
|
3085 |
15 Jan 15 |
olle |
rf.labDateOnChange = function() |
3085 |
15 Jan 15 |
olle |
403 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus('labDate'); |
3085 |
15 Jan 15 |
olle |
var frm = document.forms['reggie']; |
3085 |
15 Jan 15 |
olle |
406 |
|
3085 |
15 Jan 15 |
olle |
labSentDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var labSentDate = frm.labSentDate.value; |
3085 |
15 Jan 15 |
olle |
labSentDate = rf.dateCheck(labSentDate, 'lab sent', 'labDate'); |
3085 |
15 Jan 15 |
olle |
if (labSentDate != null) |
3085 |
15 Jan 15 |
olle |
411 |
{ |
3085 |
15 Jan 15 |
olle |
frm.labSentDate.value = labSentDate; |
3085 |
15 Jan 15 |
olle |
labSentDateIsValid = true; |
3085 |
15 Jan 15 |
olle |
414 |
} |
3085 |
15 Jan 15 |
olle |
415 |
|
3085 |
15 Jan 15 |
olle |
labReceivedDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var labReceivedDate = frm.labReceivedDate.value; |
3085 |
15 Jan 15 |
olle |
labReceivedDate = rf.dateCheck(labReceivedDate, 'lab received', 'labDate'); |
3085 |
15 Jan 15 |
olle |
if (labReceivedDate != null) |
3085 |
15 Jan 15 |
olle |
420 |
{ |
3085 |
15 Jan 15 |
olle |
frm.labReceivedDate.value = labReceivedDate; |
3085 |
15 Jan 15 |
olle |
labReceivedDateIsValid = true; |
3085 |
15 Jan 15 |
olle |
423 |
} |
3085 |
15 Jan 15 |
olle |
424 |
|
3085 |
15 Jan 15 |
olle |
if (labSentDateIsValid && labReceivedDateIsValid) |
3085 |
15 Jan 15 |
olle |
426 |
{ |
3085 |
15 Jan 15 |
olle |
var result = rf.causalityDateCheck(labSentDate, 'lab sent', labReceivedDate, 'lab received', 'labDate'); |
3085 |
15 Jan 15 |
olle |
if (result != null) |
3085 |
15 Jan 15 |
olle |
429 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus('labDate', 'valid'); |
3085 |
15 Jan 15 |
olle |
431 |
} |
3085 |
15 Jan 15 |
olle |
432 |
} |
3756 |
18 Feb 16 |
olle |
else if (labSentDate != null && labReceivedDate != null) |
3756 |
18 Feb 16 |
olle |
434 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('labDate'); |
3756 |
18 Feb 16 |
olle |
436 |
} |
3756 |
18 Feb 16 |
olle |
rf.currentRetractionStatus(); |
3085 |
15 Jan 15 |
olle |
438 |
} |
3085 |
15 Jan 15 |
olle |
439 |
|
3756 |
18 Feb 16 |
olle |
rf.bloodDateNaOnChange = function() |
3756 |
18 Feb 16 |
olle |
441 |
{ |
3756 |
18 Feb 16 |
olle |
var frm = document.forms['reggie']; |
3756 |
18 Feb 16 |
olle |
443 |
|
3756 |
18 Feb 16 |
olle |
var bloodDateNa = frm.bloodDateNa.checked; |
3756 |
18 Feb 16 |
olle |
if (bloodDateNa) |
3756 |
18 Feb 16 |
olle |
446 |
{ |
3756 |
18 Feb 16 |
olle |
// Disable date fields |
3765 |
23 Feb 16 |
nicklas |
rf.disabledDate(frm.bloodSentDate); |
3765 |
23 Feb 16 |
nicklas |
rf.disabledDate(frm.bloodReceivedDate); |
3756 |
18 Feb 16 |
olle |
// Set dates as valid |
3756 |
18 Feb 16 |
olle |
bloodSentDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
bloodReceivedDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
// Set input as valid |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('bloodDate', 'valid'); |
3756 |
18 Feb 16 |
olle |
455 |
} |
3756 |
18 Feb 16 |
olle |
else |
3756 |
18 Feb 16 |
olle |
457 |
{ |
3756 |
18 Feb 16 |
olle |
// Enable date fields |
3765 |
23 Feb 16 |
nicklas |
rf.enabledDate(frm.bloodSentDate); |
3765 |
23 Feb 16 |
nicklas |
rf.enabledDate(frm.bloodReceivedDate); |
3756 |
18 Feb 16 |
olle |
// Set date valid status |
3756 |
18 Feb 16 |
olle |
bloodSentDateIsValid = false; |
3756 |
18 Feb 16 |
olle |
var bloodSentDate = frm.bloodSentDate.value; |
3756 |
18 Feb 16 |
olle |
if (bloodSentDate != null) |
3756 |
18 Feb 16 |
olle |
465 |
{ |
3756 |
18 Feb 16 |
olle |
bloodSentDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
467 |
} |
3756 |
18 Feb 16 |
olle |
bloodReceivedDateIsValid = false; |
3756 |
18 Feb 16 |
olle |
var bloodReceivedDate = frm.bloodReceivedDate.value; |
3756 |
18 Feb 16 |
olle |
if (bloodReceivedDate != null) |
3756 |
18 Feb 16 |
olle |
471 |
{ |
3756 |
18 Feb 16 |
olle |
bloodReceivedDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
473 |
} |
3756 |
18 Feb 16 |
olle |
// Reset input status |
3756 |
18 Feb 16 |
olle |
if (bloodSentDateIsValid && bloodReceivedDateIsValid) |
3756 |
18 Feb 16 |
olle |
476 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('bloodDate', 'valid'); |
3756 |
18 Feb 16 |
olle |
478 |
} |
3756 |
18 Feb 16 |
olle |
else if (bloodSentDate != null && bloodReceivedDate != null) |
3756 |
18 Feb 16 |
olle |
480 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('bloodDate'); |
3756 |
18 Feb 16 |
olle |
482 |
} |
3756 |
18 Feb 16 |
olle |
483 |
} |
3756 |
18 Feb 16 |
olle |
rf.currentRetractionStatus(); |
3756 |
18 Feb 16 |
olle |
485 |
} |
3756 |
18 Feb 16 |
olle |
486 |
|
3085 |
15 Jan 15 |
olle |
rf.bloodDateOnChange = function() |
3085 |
15 Jan 15 |
olle |
488 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus('bloodDate'); |
3085 |
15 Jan 15 |
olle |
var frm = document.forms['reggie']; |
3085 |
15 Jan 15 |
olle |
491 |
|
3085 |
15 Jan 15 |
olle |
bloodSentDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var bloodSentDate = frm.bloodSentDate.value; |
3085 |
15 Jan 15 |
olle |
bloodSentDate = rf.dateCheck(bloodSentDate, 'blood sent', 'bloodDate'); |
3085 |
15 Jan 15 |
olle |
if (bloodSentDate != null) |
3085 |
15 Jan 15 |
olle |
496 |
{ |
3085 |
15 Jan 15 |
olle |
frm.bloodSentDate.value = bloodSentDate; |
3085 |
15 Jan 15 |
olle |
bloodSentDateIsValid = true; |
3085 |
15 Jan 15 |
olle |
499 |
} |
3085 |
15 Jan 15 |
olle |
500 |
|
3085 |
15 Jan 15 |
olle |
bloodReceivedDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var bloodReceivedDate = frm.bloodReceivedDate.value; |
3085 |
15 Jan 15 |
olle |
bloodReceivedDate = rf.dateCheck(bloodReceivedDate, 'blood received', 'bloodDate'); |
3085 |
15 Jan 15 |
olle |
if (bloodReceivedDate != null) |
3085 |
15 Jan 15 |
olle |
505 |
{ |
3085 |
15 Jan 15 |
olle |
frm.bloodReceivedDate.value = bloodReceivedDate; |
3085 |
15 Jan 15 |
olle |
bloodReceivedDateIsValid = true; |
3085 |
15 Jan 15 |
olle |
508 |
} |
3085 |
15 Jan 15 |
olle |
509 |
|
3085 |
15 Jan 15 |
olle |
if (bloodSentDateIsValid && bloodReceivedDateIsValid) |
3085 |
15 Jan 15 |
olle |
511 |
{ |
3085 |
15 Jan 15 |
olle |
var result = rf.causalityDateCheck(bloodSentDate, 'blood sent', bloodReceivedDate, 'blood received', 'bloodDate'); |
3085 |
15 Jan 15 |
olle |
if (result != null) |
3085 |
15 Jan 15 |
olle |
514 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus('bloodDate', 'valid'); |
3085 |
15 Jan 15 |
olle |
516 |
} |
3085 |
15 Jan 15 |
olle |
517 |
} |
3756 |
18 Feb 16 |
olle |
else if (bloodSentDate != null && bloodReceivedDate != null) |
3756 |
18 Feb 16 |
olle |
519 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('bloodDate'); |
3756 |
18 Feb 16 |
olle |
521 |
} |
3756 |
18 Feb 16 |
olle |
rf.currentRetractionStatus(); |
3085 |
15 Jan 15 |
olle |
523 |
} |
3085 |
15 Jan 15 |
olle |
524 |
|
3756 |
18 Feb 16 |
olle |
rf.frozenDateNaOnChange = function() |
3756 |
18 Feb 16 |
olle |
526 |
{ |
3756 |
18 Feb 16 |
olle |
var frm = document.forms['reggie']; |
3756 |
18 Feb 16 |
olle |
528 |
|
3756 |
18 Feb 16 |
olle |
var frozenDateNa = frm.frozenDateNa.checked; |
3756 |
18 Feb 16 |
olle |
if (frozenDateNa) |
3756 |
18 Feb 16 |
olle |
531 |
{ |
3756 |
18 Feb 16 |
olle |
// Disable date fields |
3765 |
23 Feb 16 |
nicklas |
rf.disabledDate(frm.frozenSentDate); |
3765 |
23 Feb 16 |
nicklas |
rf.disabledDate(frm.frozenReceivedDate); |
3756 |
18 Feb 16 |
olle |
// Set dates as valid |
3756 |
18 Feb 16 |
olle |
frozenSentDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
frozenReceivedDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
// Set input as valid |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('frozenDate', 'valid'); |
3756 |
18 Feb 16 |
olle |
540 |
} |
3756 |
18 Feb 16 |
olle |
else |
3756 |
18 Feb 16 |
olle |
542 |
{ |
3756 |
18 Feb 16 |
olle |
// Enable date fields |
3765 |
23 Feb 16 |
nicklas |
rf.enabledDate(frm.frozenSentDate); |
3765 |
23 Feb 16 |
nicklas |
rf.enabledDate(frm.frozenReceivedDate); |
3756 |
18 Feb 16 |
olle |
// Set date valid status |
3756 |
18 Feb 16 |
olle |
frozenSentDateIsValid = false; |
3756 |
18 Feb 16 |
olle |
var frozenSentDate = frm.frozenSentDate.value; |
3756 |
18 Feb 16 |
olle |
if (frozenSentDate != null) |
3756 |
18 Feb 16 |
olle |
550 |
{ |
3756 |
18 Feb 16 |
olle |
frozenSentDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
552 |
} |
3756 |
18 Feb 16 |
olle |
frozenReceivedDateIsValid = false; |
3756 |
18 Feb 16 |
olle |
var frozenReceivedDate = frm.frozenReceivedDate.value; |
3756 |
18 Feb 16 |
olle |
if (frozenReceivedDate != null) |
3756 |
18 Feb 16 |
olle |
556 |
{ |
3756 |
18 Feb 16 |
olle |
frozenReceivedDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
558 |
} |
3756 |
18 Feb 16 |
olle |
// Reset input status |
3756 |
18 Feb 16 |
olle |
if (frozenSentDateIsValid && frozenReceivedDateIsValid) |
3756 |
18 Feb 16 |
olle |
561 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('frozenDate', 'valid'); |
3756 |
18 Feb 16 |
olle |
563 |
} |
3756 |
18 Feb 16 |
olle |
else if (frozenSentDate != null && frozenReceivedDate != null) |
3756 |
18 Feb 16 |
olle |
565 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('frozenDate'); |
3756 |
18 Feb 16 |
olle |
567 |
} |
3756 |
18 Feb 16 |
olle |
568 |
} |
3756 |
18 Feb 16 |
olle |
rf.currentRetractionStatus(); |
3756 |
18 Feb 16 |
olle |
570 |
} |
3756 |
18 Feb 16 |
olle |
571 |
|
3085 |
15 Jan 15 |
olle |
rf.frozenDateOnChange = function() |
3085 |
15 Jan 15 |
olle |
573 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus('frozenDate'); |
3085 |
15 Jan 15 |
olle |
var frm = document.forms['reggie']; |
3085 |
15 Jan 15 |
olle |
576 |
|
3085 |
15 Jan 15 |
olle |
frozenSentDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var frozenSentDate = frm.frozenSentDate.value; |
3085 |
15 Jan 15 |
olle |
frozenSentDate = rf.dateCheck(frozenSentDate, 'frozen sent', 'frozenDate'); |
3085 |
15 Jan 15 |
olle |
if (frozenSentDate != null) |
3085 |
15 Jan 15 |
olle |
581 |
{ |
3085 |
15 Jan 15 |
olle |
frm.frozenSentDate.value = frozenSentDate; |
3085 |
15 Jan 15 |
olle |
frozenSentDateIsValid = true; |
3085 |
15 Jan 15 |
olle |
584 |
} |
3085 |
15 Jan 15 |
olle |
585 |
|
3085 |
15 Jan 15 |
olle |
frozenReceivedDateIsValid = false; |
3085 |
15 Jan 15 |
olle |
var frozenReceivedDate = frm.frozenReceivedDate.value; |
3085 |
15 Jan 15 |
olle |
frozenReceivedDate = rf.dateCheck(frozenReceivedDate, 'frozen received', 'frozenDate'); |
3085 |
15 Jan 15 |
olle |
if (frozenReceivedDate != null) |
3085 |
15 Jan 15 |
olle |
590 |
{ |
3085 |
15 Jan 15 |
olle |
frm.frozenReceivedDate.value = frozenReceivedDate; |
3085 |
15 Jan 15 |
olle |
frozenReceivedDateIsValid = true; |
3085 |
15 Jan 15 |
olle |
593 |
} |
3085 |
15 Jan 15 |
olle |
594 |
|
3085 |
15 Jan 15 |
olle |
if (frozenSentDateIsValid && frozenReceivedDateIsValid) |
3085 |
15 Jan 15 |
olle |
596 |
{ |
3085 |
15 Jan 15 |
olle |
var result = rf.causalityDateCheck(frozenSentDate, 'frozen sent', frozenReceivedDate, 'frozen received', 'frozenDate'); |
3085 |
15 Jan 15 |
olle |
if (result != null) |
3085 |
15 Jan 15 |
olle |
599 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus('frozenDate', 'valid'); |
3085 |
15 Jan 15 |
olle |
601 |
} |
3085 |
15 Jan 15 |
olle |
602 |
} |
3756 |
18 Feb 16 |
olle |
else if (frozenSentDate != null && frozenReceivedDate != null) |
3756 |
18 Feb 16 |
olle |
604 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('frozenDate'); |
3756 |
18 Feb 16 |
olle |
606 |
} |
3756 |
18 Feb 16 |
olle |
rf.currentRetractionStatus(); |
3085 |
15 Jan 15 |
olle |
608 |
} |
3085 |
15 Jan 15 |
olle |
609 |
|
3756 |
18 Feb 16 |
olle |
rf.rccSydDateNaOnChange = function() |
3756 |
18 Feb 16 |
olle |
611 |
{ |
3756 |
18 Feb 16 |
olle |
var frm = document.forms['reggie']; |
3756 |
18 Feb 16 |
olle |
613 |
|
3756 |
18 Feb 16 |
olle |
var rccSydDateNa = frm.rccSydDateNa.checked; |
3756 |
18 Feb 16 |
olle |
if (rccSydDateNa) |
3756 |
18 Feb 16 |
olle |
616 |
{ |
3756 |
18 Feb 16 |
olle |
// Disable date fields |
3765 |
23 Feb 16 |
nicklas |
rf.disabledDate(frm.rccSydSentDate); |
3756 |
18 Feb 16 |
olle |
// Set dates as valid |
3756 |
18 Feb 16 |
olle |
rccSydSentDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
// Set input as valid |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('rccSydDate', 'valid'); |
3756 |
18 Feb 16 |
olle |
623 |
} |
3756 |
18 Feb 16 |
olle |
else |
3756 |
18 Feb 16 |
olle |
625 |
{ |
3756 |
18 Feb 16 |
olle |
// Enable date fields |
3765 |
23 Feb 16 |
nicklas |
rf.enabledDate(frm.rccSydSentDate); |
3756 |
18 Feb 16 |
olle |
// Set date valid status |
3756 |
18 Feb 16 |
olle |
rccSydSentDateIsValid = false; |
3756 |
18 Feb 16 |
olle |
var rccSydSentDate = frm.rccSydSentDate.value; |
3756 |
18 Feb 16 |
olle |
if (rccSydSentDate != null) |
3756 |
18 Feb 16 |
olle |
632 |
{ |
3756 |
18 Feb 16 |
olle |
rccSydSentDateIsValid = true; |
3756 |
18 Feb 16 |
olle |
634 |
} |
3756 |
18 Feb 16 |
olle |
// Reset input status |
3756 |
18 Feb 16 |
olle |
if (rccSydSentDateIsValid) |
3756 |
18 Feb 16 |
olle |
637 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('rccSydDate', 'valid'); |
3756 |
18 Feb 16 |
olle |
639 |
} |
3756 |
18 Feb 16 |
olle |
else if (rccSydSentDate != null) |
3756 |
18 Feb 16 |
olle |
641 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('rccSydDate'); |
3756 |
18 Feb 16 |
olle |
643 |
} |
3756 |
18 Feb 16 |
olle |
644 |
} |
3756 |
18 Feb 16 |
olle |
rf.currentRetractionStatus(); |
3756 |
18 Feb 16 |
olle |
646 |
} |
3756 |
18 Feb 16 |
olle |
647 |
|
3265 |
21 Apr 15 |
olle |
rf.rccSydDateOnChange = function() |
3265 |
21 Apr 15 |
olle |
649 |
{ |
3265 |
21 Apr 15 |
olle |
Wizard.setInputStatus('rccSydDate'); |
3265 |
21 Apr 15 |
olle |
var frm = document.forms['reggie']; |
3265 |
21 Apr 15 |
olle |
652 |
|
3265 |
21 Apr 15 |
olle |
rccSydSentDateIsValid = false; |
3265 |
21 Apr 15 |
olle |
var rccSydSentDate = frm.rccSydSentDate.value; |
3265 |
21 Apr 15 |
olle |
rccSydSentDate = rf.dateCheck(rccSydSentDate, 'RCC Syd sent', 'rccSydDate'); |
3265 |
21 Apr 15 |
olle |
if (rccSydSentDate != null) |
3265 |
21 Apr 15 |
olle |
657 |
{ |
3265 |
21 Apr 15 |
olle |
frm.rccSydSentDate.value = rccSydSentDate; |
3265 |
21 Apr 15 |
olle |
rccSydSentDateIsValid = true; |
3265 |
21 Apr 15 |
olle |
660 |
} |
3265 |
21 Apr 15 |
olle |
661 |
|
3265 |
21 Apr 15 |
olle |
if (rccSydSentDateIsValid) |
3265 |
21 Apr 15 |
olle |
663 |
{ |
3265 |
21 Apr 15 |
olle |
Wizard.setInputStatus('rccSydDate', 'valid'); |
3265 |
21 Apr 15 |
olle |
665 |
} |
3756 |
18 Feb 16 |
olle |
else if (rccSydSentDate != null) |
3756 |
18 Feb 16 |
olle |
667 |
{ |
3756 |
18 Feb 16 |
olle |
Wizard.setInputStatus('rccSydDate'); |
3756 |
18 Feb 16 |
olle |
669 |
} |
3756 |
18 Feb 16 |
olle |
rf.currentRetractionStatus(); |
3265 |
21 Apr 15 |
olle |
671 |
} |
3265 |
21 Apr 15 |
olle |
672 |
|
5643 |
07 Oct 19 |
nicklas |
rf.checkIfAllItemsForDestructionAreChecked = function() |
5643 |
07 Oct 19 |
nicklas |
674 |
{ |
5643 |
07 Oct 19 |
nicklas |
if (!itemsForDestruction) return true; |
5643 |
07 Oct 19 |
nicklas |
var frm = document.forms['reggie']; |
5643 |
07 Oct 19 |
nicklas |
677 |
|
5643 |
07 Oct 19 |
nicklas |
for (var itemNo = 0; itemNo < itemsForDestruction.length; itemNo++) |
5643 |
07 Oct 19 |
nicklas |
679 |
{ |
5643 |
07 Oct 19 |
nicklas |
var item = itemsForDestruction[itemNo]; |
5643 |
07 Oct 19 |
nicklas |
if (!frm['destruct.'+item.id].checked) return false; |
5643 |
07 Oct 19 |
nicklas |
682 |
} |
5643 |
07 Oct 19 |
nicklas |
return true; |
5643 |
07 Oct 19 |
nicklas |
684 |
} |
5643 |
07 Oct 19 |
nicklas |
685 |
|
6824 |
30 Aug 22 |
nicklas |
rf.currentRetractionStatus = function() |
3756 |
18 Feb 16 |
olle |
687 |
{ |
3756 |
18 Feb 16 |
olle |
// Check if all dates are set to non-blank dates or are N/A |
3756 |
18 Feb 16 |
olle |
var frm = document.forms['reggie']; |
3756 |
18 Feb 16 |
olle |
690 |
|
5643 |
07 Oct 19 |
nicklas |
var allItemsChecked = rf.checkIfAllItemsForDestructionAreChecked(); |
5643 |
07 Oct 19 |
nicklas |
692 |
|
3756 |
18 Feb 16 |
olle |
var labSentDateIsSetOrNa = false; |
3756 |
18 Feb 16 |
olle |
var labReceivedDateIsSetOrNa = false; |
3756 |
18 Feb 16 |
olle |
var bloodSentDateIsSetOrNa = false; |
3756 |
18 Feb 16 |
olle |
var bloodReceivedDateIsSetOrNa = false; |
3756 |
18 Feb 16 |
olle |
var frozenSentDateIsSetOrNa = false; |
3756 |
18 Feb 16 |
olle |
var frozenReceivedDateIsSetOrNa = false; |
3756 |
18 Feb 16 |
olle |
var rccSydSentDateIsSetOrNa = false; |
3756 |
18 Feb 16 |
olle |
700 |
|
3756 |
18 Feb 16 |
olle |
var labDateNa = frm.labDateNa.checked; |
3756 |
18 Feb 16 |
olle |
if (labDateNa) |
3756 |
18 Feb 16 |
olle |
703 |
{ |
3756 |
18 Feb 16 |
olle |
labSentDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
labReceivedDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
706 |
} |
3756 |
18 Feb 16 |
olle |
else |
3756 |
18 Feb 16 |
olle |
708 |
{ |
3756 |
18 Feb 16 |
olle |
var labSentDate = frm.labSentDate.value; |
3756 |
18 Feb 16 |
olle |
if (labSentDate != null && labSentDate != '') |
3756 |
18 Feb 16 |
olle |
711 |
{ |
3756 |
18 Feb 16 |
olle |
labSentDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
713 |
} |
3756 |
18 Feb 16 |
olle |
var labReceivedDate = frm.labReceivedDate.value; |
3756 |
18 Feb 16 |
olle |
if (labReceivedDate != null && labReceivedDate != '') |
3756 |
18 Feb 16 |
olle |
716 |
{ |
3756 |
18 Feb 16 |
olle |
labReceivedDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
718 |
} |
3756 |
18 Feb 16 |
olle |
719 |
} |
3756 |
18 Feb 16 |
olle |
720 |
|
3756 |
18 Feb 16 |
olle |
var bloodDateNa = frm.bloodDateNa.checked; |
3756 |
18 Feb 16 |
olle |
if (bloodDateNa) |
3756 |
18 Feb 16 |
olle |
723 |
{ |
3756 |
18 Feb 16 |
olle |
bloodSentDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
bloodReceivedDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
726 |
} |
3756 |
18 Feb 16 |
olle |
else |
3756 |
18 Feb 16 |
olle |
728 |
{ |
3756 |
18 Feb 16 |
olle |
var bloodSentDate = frm.bloodSentDate.value; |
3756 |
18 Feb 16 |
olle |
if (bloodSentDate != null && bloodSentDate != '') |
3756 |
18 Feb 16 |
olle |
731 |
{ |
3756 |
18 Feb 16 |
olle |
bloodSentDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
733 |
} |
3756 |
18 Feb 16 |
olle |
var bloodReceivedDate = frm.bloodReceivedDate.value; |
3756 |
18 Feb 16 |
olle |
if (bloodReceivedDate != null && bloodReceivedDate != '') |
3756 |
18 Feb 16 |
olle |
736 |
{ |
3756 |
18 Feb 16 |
olle |
bloodReceivedDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
738 |
} |
3756 |
18 Feb 16 |
olle |
739 |
} |
3756 |
18 Feb 16 |
olle |
740 |
|
3756 |
18 Feb 16 |
olle |
var frozenDateNa = frm.frozenDateNa.checked; |
3765 |
23 Feb 16 |
nicklas |
if (frozenDateNa) |
3756 |
18 Feb 16 |
olle |
743 |
{ |
3756 |
18 Feb 16 |
olle |
frozenSentDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
frozenReceivedDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
746 |
} |
3756 |
18 Feb 16 |
olle |
else |
3756 |
18 Feb 16 |
olle |
748 |
{ |
3756 |
18 Feb 16 |
olle |
var frozenSentDate = frm.frozenSentDate.value; |
3756 |
18 Feb 16 |
olle |
if (frozenSentDate != null && frozenSentDate != '') |
3756 |
18 Feb 16 |
olle |
751 |
{ |
3756 |
18 Feb 16 |
olle |
frozenSentDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
753 |
} |
3756 |
18 Feb 16 |
olle |
var frozenReceivedDate = frm.frozenReceivedDate.value; |
3756 |
18 Feb 16 |
olle |
if (frozenReceivedDate != null && frozenReceivedDate != '') |
3756 |
18 Feb 16 |
olle |
756 |
{ |
3756 |
18 Feb 16 |
olle |
frozenReceivedDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
758 |
} |
3756 |
18 Feb 16 |
olle |
759 |
} |
3756 |
18 Feb 16 |
olle |
760 |
|
3756 |
18 Feb 16 |
olle |
var rccSydDateNa = frm.rccSydDateNa.checked; |
3756 |
18 Feb 16 |
olle |
if (rccSydDateNa) |
3756 |
18 Feb 16 |
olle |
763 |
{ |
3756 |
18 Feb 16 |
olle |
rccSydSentDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
765 |
} |
3756 |
18 Feb 16 |
olle |
else |
3756 |
18 Feb 16 |
olle |
767 |
{ |
3756 |
18 Feb 16 |
olle |
var rccSydSentDate = frm.rccSydSentDate.value; |
3756 |
18 Feb 16 |
olle |
if (rccSydSentDate != null && rccSydSentDate != '') |
3756 |
18 Feb 16 |
olle |
770 |
{ |
3756 |
18 Feb 16 |
olle |
rccSydSentDateIsSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
772 |
} |
3756 |
18 Feb 16 |
olle |
773 |
} |
3756 |
18 Feb 16 |
olle |
774 |
|
3756 |
18 Feb 16 |
olle |
var datesAreSetOrNa = false; |
3756 |
18 Feb 16 |
olle |
if (labSentDateIsSetOrNa && |
3756 |
18 Feb 16 |
olle |
labReceivedDateIsSetOrNa && |
3756 |
18 Feb 16 |
olle |
bloodSentDateIsSetOrNa && |
3756 |
18 Feb 16 |
olle |
bloodReceivedDateIsSetOrNa && |
3756 |
18 Feb 16 |
olle |
frozenSentDateIsSetOrNa && |
3756 |
18 Feb 16 |
olle |
frozenReceivedDateIsSetOrNa && |
3756 |
18 Feb 16 |
olle |
rccSydSentDateIsSetOrNa) |
3756 |
18 Feb 16 |
olle |
783 |
{ |
3756 |
18 Feb 16 |
olle |
datesAreSetOrNa = true; |
3756 |
18 Feb 16 |
olle |
785 |
} |
3756 |
18 Feb 16 |
olle |
786 |
|
5643 |
07 Oct 19 |
nicklas |
if (datesAreSetOrNa && allItemsChecked) |
3756 |
18 Feb 16 |
olle |
788 |
{ |
5643 |
07 Oct 19 |
nicklas |
Doc.element('retractionStatusAfterRegistration').innerHTML = '<b>Retraction status after registration</b>: <img src=\"../images/ok.png\" style=\"padding: 0 0.25em;\" />Ready for destruction'; |
3756 |
18 Feb 16 |
olle |
790 |
} |
3756 |
18 Feb 16 |
olle |
else |
3756 |
18 Feb 16 |
olle |
792 |
{ |
5643 |
07 Oct 19 |
nicklas |
Doc.element('retractionStatusAfterRegistration').innerHTML = '<b>Retraction status after registration</b>: Not ready for destruction'; |
3756 |
18 Feb 16 |
olle |
794 |
} |
3756 |
18 Feb 16 |
olle |
795 |
} |
3756 |
18 Feb 16 |
olle |
796 |
|
3085 |
15 Jan 15 |
olle |
rf.dateCheck = function(dateValue, dateName, dateMessageKey) |
3085 |
15 Jan 15 |
olle |
798 |
{ |
3085 |
15 Jan 15 |
olle |
if (dateValue != '') |
3085 |
15 Jan 15 |
olle |
800 |
{ |
3085 |
15 Jan 15 |
olle |
// Auto-fill the date if it's only given with 4(MMdd) or 6(yyMMdd) digits. |
3085 |
15 Jan 15 |
olle |
dateValue = Reggie.autoFillDate(dateValue, true); |
3085 |
15 Jan 15 |
olle |
803 |
|
3085 |
15 Jan 15 |
olle |
var d = Dates.parseString(dateValue, 'yyyyMMdd'); |
3085 |
15 Jan 15 |
olle |
if (d == null) |
3085 |
15 Jan 15 |
olle |
806 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus(dateMessageKey, 'invalid', 'Not a valid '+dateName+' date'); |
3085 |
15 Jan 15 |
olle |
return null; |
3085 |
15 Jan 15 |
olle |
809 |
} |
3085 |
15 Jan 15 |
olle |
810 |
|
3085 |
15 Jan 15 |
olle |
var today = new Date(); |
3085 |
15 Jan 15 |
olle |
if (d.getTime() > today.getTime()) |
3085 |
15 Jan 15 |
olle |
813 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus(dateMessageKey, 'invalid', 'Future '+dateName+' date is not valid'); |
3085 |
15 Jan 15 |
olle |
return null; |
3085 |
15 Jan 15 |
olle |
816 |
} |
3085 |
15 Jan 15 |
olle |
817 |
} |
3085 |
15 Jan 15 |
olle |
return dateValue; |
3085 |
15 Jan 15 |
olle |
819 |
} |
3085 |
15 Jan 15 |
olle |
820 |
|
3085 |
15 Jan 15 |
olle |
rf.causalityDateCheck = function(date1, dateName1, date2, dateName2, dateMessageKey) |
3085 |
15 Jan 15 |
olle |
822 |
{ |
3085 |
15 Jan 15 |
olle |
if (date1 != null && date1 != '' && date2 != null && date2 != '') |
3085 |
15 Jan 15 |
olle |
824 |
{ |
3085 |
15 Jan 15 |
olle |
// Auto-fill the date if it's only given with 4(MMdd) or 6(yyMMdd) digits. |
3085 |
15 Jan 15 |
olle |
date1 = Reggie.autoFillDate(date1, true); |
3085 |
15 Jan 15 |
olle |
date2 = Reggie.autoFillDate(date2, true); |
3085 |
15 Jan 15 |
olle |
828 |
|
3085 |
15 Jan 15 |
olle |
var d1 = Dates.parseString(date1, 'yyyyMMdd'); |
3085 |
15 Jan 15 |
olle |
if (d1 == null) |
3085 |
15 Jan 15 |
olle |
831 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus(dateMessageKey, 'invalid', 'Not a valid '+dateName1+' date'); |
3085 |
15 Jan 15 |
olle |
return null; |
3085 |
15 Jan 15 |
olle |
834 |
} |
3085 |
15 Jan 15 |
olle |
835 |
|
3085 |
15 Jan 15 |
olle |
var d2 = Dates.parseString(date2, 'yyyyMMdd'); |
3085 |
15 Jan 15 |
olle |
if (d2 == null) |
3085 |
15 Jan 15 |
olle |
838 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus(dateMessageKey, 'invalid', 'Not a valid '+dateName2+' date'); |
3085 |
15 Jan 15 |
olle |
return null; |
3085 |
15 Jan 15 |
olle |
841 |
} |
3085 |
15 Jan 15 |
olle |
842 |
|
3085 |
15 Jan 15 |
olle |
if (d1.getTime() > d2.getTime()) |
3085 |
15 Jan 15 |
olle |
844 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.setInputStatus(dateMessageKey, 'invalid', 'Causality violation: '+dateName1+' date is later than '+dateName2+' date'); |
3085 |
15 Jan 15 |
olle |
return null; |
3085 |
15 Jan 15 |
olle |
847 |
} |
3085 |
15 Jan 15 |
olle |
848 |
} |
3085 |
15 Jan 15 |
olle |
return date1; |
3085 |
15 Jan 15 |
olle |
850 |
} |
3085 |
15 Jan 15 |
olle |
851 |
|
3766 |
23 Feb 16 |
nicklas |
852 |
|
3766 |
23 Feb 16 |
nicklas |
853 |
/** |
3766 |
23 Feb 16 |
nicklas |
Initalize the second step based on the information we have about the case. |
3766 |
23 Feb 16 |
nicklas |
855 |
*/ |
5643 |
07 Oct 19 |
nicklas |
rf.caseInfoLoadedForDestruct = function(response) |
3766 |
23 Feb 16 |
nicklas |
857 |
{ |
3766 |
23 Feb 16 |
nicklas |
// Sample Items Header row |
3766 |
23 Feb 16 |
nicklas |
var html = '<table id="retractionItemsTable2">'; |
3766 |
23 Feb 16 |
nicklas |
html += '<thead class="bg-filled-100">'; |
3766 |
23 Feb 16 |
nicklas |
html += '<tr>'; |
3766 |
23 Feb 16 |
nicklas |
html += '<th></th>'; |
3766 |
23 Feb 16 |
nicklas |
html += '<th>Item</th>'; |
3766 |
23 Feb 16 |
nicklas |
html += '<th>Name</th>'; |
4512 |
31 May 17 |
nicklas |
html += '<th></th>'; |
4512 |
31 May 17 |
nicklas |
html += '<th>LiasonComment</th>'; |
3766 |
23 Feb 16 |
nicklas |
html += '<th>Action</th>'; |
3766 |
23 Feb 16 |
nicklas |
html += '</tr>'; |
3766 |
23 Feb 16 |
nicklas |
html += '</thead>'; |
3766 |
23 Feb 16 |
nicklas |
870 |
|
3766 |
23 Feb 16 |
nicklas |
html += '<tbody>'; |
3766 |
23 Feb 16 |
nicklas |
872 |
|
3766 |
23 Feb 16 |
nicklas |
var items = response.items; |
3766 |
23 Feb 16 |
nicklas |
allCanBeDeleted = true; |
3766 |
23 Feb 16 |
nicklas |
for (var i = 0; i < items.length; i++) |
3766 |
23 Feb 16 |
nicklas |
876 |
{ |
3766 |
23 Feb 16 |
nicklas |
var item = items[i]; |
3766 |
23 Feb 16 |
nicklas |
var comment = item.comment; |
3766 |
23 Feb 16 |
nicklas |
if (comment && comment == 'To be deleted') |
3766 |
23 Feb 16 |
nicklas |
880 |
{ |
3766 |
23 Feb 16 |
nicklas |
comment = '<b>' + comment + '</b>'; |
3766 |
23 Feb 16 |
nicklas |
882 |
} |
3766 |
23 Feb 16 |
nicklas |
if (!item.deletePermission) |
3766 |
23 Feb 16 |
nicklas |
884 |
{ |
3766 |
23 Feb 16 |
nicklas |
allCanBeDeleted = false; |
5637 |
03 Oct 19 |
nicklas |
comment = '<b>' + comment + '</b>'; |
3766 |
23 Feb 16 |
nicklas |
887 |
} |
3766 |
23 Feb 16 |
nicklas |
html += '<tr class="'+(!item.deletePermission ? 'no-delete' : 'highlight')+'">'; |
3766 |
23 Feb 16 |
nicklas |
html += '<th class="index">' + (i+1) + '</th>'; |
3766 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft">' + Strings.encodeTags(item.type) + '</td>'; |
3766 |
23 Feb 16 |
nicklas |
html += '<td>' + Strings.encodeTags(item.name) + '</td>'; |
4512 |
31 May 17 |
nicklas |
if (item.liasonComment) |
4512 |
31 May 17 |
nicklas |
893 |
{ |
4512 |
31 May 17 |
nicklas |
html += '<td style="text-align: right;"><input type="checkbox" class="keepLiasonComment" value="'+item.name+'" title="Save this comment on the copy"></td>'; |
4512 |
31 May 17 |
nicklas |
html += '<td>'+ Strings.encodeTags(item.liasonComment)+'</td>'; |
4512 |
31 May 17 |
nicklas |
896 |
} |
4512 |
31 May 17 |
nicklas |
else |
4512 |
31 May 17 |
nicklas |
898 |
{ |
4512 |
31 May 17 |
nicklas |
html += '<td colspan="2"></td>'; |
4512 |
31 May 17 |
nicklas |
900 |
} |
3766 |
23 Feb 16 |
nicklas |
html += '<td class="dottedleft">' + comment + '</td>'; |
3766 |
23 Feb 16 |
nicklas |
html += '</tr>'; |
3766 |
23 Feb 16 |
nicklas |
903 |
} |
3766 |
23 Feb 16 |
nicklas |
904 |
|
3766 |
23 Feb 16 |
nicklas |
html += '</tbody>'; |
3766 |
23 Feb 16 |
nicklas |
html += '</table>'; |
3766 |
23 Feb 16 |
nicklas |
Doc.element('retractTable').innerHTML = html; |
3766 |
23 Feb 16 |
nicklas |
Doc.show('retractTable'); |
3766 |
23 Feb 16 |
nicklas |
909 |
|
3766 |
23 Feb 16 |
nicklas |
Wizard.setCurrentStep(2); |
3766 |
23 Feb 16 |
nicklas |
Doc.show('gocancel'); |
3766 |
23 Feb 16 |
nicklas |
if (allCanBeDeleted) |
3766 |
23 Feb 16 |
nicklas |
913 |
{ |
3766 |
23 Feb 16 |
nicklas |
Doc.show('goregister'); |
3766 |
23 Feb 16 |
nicklas |
915 |
} |
3766 |
23 Feb 16 |
nicklas |
916 |
} |
3766 |
23 Feb 16 |
nicklas |
917 |
|
3085 |
15 Jan 15 |
olle |
rf.validateStep2 = function(event) |
3085 |
15 Jan 15 |
olle |
919 |
{ |
3766 |
23 Feb 16 |
nicklas |
if (action == 'edit') |
3766 |
23 Feb 16 |
nicklas |
921 |
{ |
3766 |
23 Feb 16 |
nicklas |
// Get up-to-date values for date validation variables |
3766 |
23 Feb 16 |
nicklas |
rf.labDateNaOnChange(); |
3766 |
23 Feb 16 |
nicklas |
rf.bloodDateNaOnChange(); |
3766 |
23 Feb 16 |
nicklas |
rf.frozenDateNaOnChange(); |
3766 |
23 Feb 16 |
nicklas |
rf.rccSydDateNaOnChange(); |
3766 |
23 Feb 16 |
nicklas |
927 |
// |
3766 |
23 Feb 16 |
nicklas |
rf.labDateOnChange(); |
3766 |
23 Feb 16 |
nicklas |
rf.bloodDateOnChange(); |
3766 |
23 Feb 16 |
nicklas |
rf.frozenDateOnChange(); |
3766 |
23 Feb 16 |
nicklas |
rf.rccSydDateOnChange(); |
3085 |
15 Jan 15 |
olle |
932 |
|
3766 |
23 Feb 16 |
nicklas |
// Step 2 is valid if all date values are valid ('null' value is allowed) |
3766 |
23 Feb 16 |
nicklas |
var datesAreValid = false; |
3766 |
23 Feb 16 |
nicklas |
if (labSentDateIsValid && |
3766 |
23 Feb 16 |
nicklas |
labReceivedDateIsValid && |
3766 |
23 Feb 16 |
nicklas |
bloodSentDateIsValid && |
3766 |
23 Feb 16 |
nicklas |
bloodReceivedDateIsValid && |
3766 |
23 Feb 16 |
nicklas |
frozenSentDateIsValid && |
3766 |
23 Feb 16 |
nicklas |
frozenReceivedDateIsValid && |
3766 |
23 Feb 16 |
nicklas |
rccSydSentDateIsValid) |
3766 |
23 Feb 16 |
nicklas |
942 |
{ |
3766 |
23 Feb 16 |
nicklas |
datesAreValid = true; |
3766 |
23 Feb 16 |
nicklas |
944 |
} |
3766 |
23 Feb 16 |
nicklas |
945 |
|
3766 |
23 Feb 16 |
nicklas |
if (!datesAreValid) event.preventDefault(); |
3766 |
23 Feb 16 |
nicklas |
947 |
} |
3766 |
23 Feb 16 |
nicklas |
else if (action == 'destruct') |
3085 |
15 Jan 15 |
olle |
949 |
{ |
3766 |
23 Feb 16 |
nicklas |
if (!allCanBeDeleted) event.preventDefault(); |
3085 |
15 Jan 15 |
olle |
951 |
} |
3766 |
23 Feb 16 |
nicklas |
else |
3766 |
23 Feb 16 |
nicklas |
953 |
{ |
3766 |
23 Feb 16 |
nicklas |
// Unknown action |
3766 |
23 Feb 16 |
nicklas |
event.preventDefault(); |
3766 |
23 Feb 16 |
nicklas |
956 |
} |
3085 |
15 Jan 15 |
olle |
957 |
} |
3085 |
15 Jan 15 |
olle |
958 |
|
3085 |
15 Jan 15 |
olle |
959 |
|
3766 |
23 Feb 16 |
nicklas |
960 |
|
3766 |
23 Feb 16 |
nicklas |
961 |
|
3085 |
15 Jan 15 |
olle |
rf.submit = function() |
3085 |
15 Jan 15 |
olle |
963 |
{ |
3085 |
15 Jan 15 |
olle |
var frm = document.forms['reggie']; |
3085 |
15 Jan 15 |
olle |
965 |
|
3766 |
23 Feb 16 |
nicklas |
if (action == 'edit') |
3766 |
23 Feb 16 |
nicklas |
967 |
{ |
3766 |
23 Feb 16 |
nicklas |
var retractionInfo = {}; |
3766 |
23 Feb 16 |
nicklas |
// Patient |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.patientId = selectedPatient.id; |
3766 |
23 Feb 16 |
nicklas |
// Lab; Note! null value for unchecked N/A box |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.labDateNa = frm.labDateNa.checked || null; |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.labSentDate = frm.labSentDate.value; |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.labReceivedDate = frm.labReceivedDate.value; |
3766 |
23 Feb 16 |
nicklas |
// Blood |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.bloodDateNa = frm.bloodDateNa.checked || null; |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.bloodSentDate = frm.bloodSentDate.value; |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.bloodReceivedDate = frm.bloodReceivedDate.value; |
3766 |
23 Feb 16 |
nicklas |
// Frozen |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.frozenDateNa = frm.frozenDateNa.checked || null; |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.frozenSentDate = frm.frozenSentDate.value; |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.frozenReceivedDate = frm.frozenReceivedDate.value; |
3766 |
23 Feb 16 |
nicklas |
// RCC Syd |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.rccSydDateNa = frm.rccSydDateNa.checked || null; |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.rccSydSentDate = frm.rccSydSentDate.value; |
3085 |
15 Jan 15 |
olle |
986 |
|
5643 |
07 Oct 19 |
nicklas |
for (var itemNo = 0; itemNo < itemsForDestruction.length; itemNo++) |
5643 |
07 Oct 19 |
nicklas |
988 |
{ |
5643 |
07 Oct 19 |
nicklas |
var item = itemsForDestruction[itemNo]; |
5643 |
07 Oct 19 |
nicklas |
item.destructed = frm['destruct.'+item.id].checked; |
5643 |
07 Oct 19 |
nicklas |
991 |
} |
5643 |
07 Oct 19 |
nicklas |
992 |
|
3766 |
23 Feb 16 |
nicklas |
var submitInfo = {}; |
3766 |
23 Feb 16 |
nicklas |
submitInfo.retractionInfo = retractionInfo; |
5643 |
07 Oct 19 |
nicklas |
submitInfo.destructInfo = itemsForDestruction; |
3766 |
23 Feb 16 |
nicklas |
996 |
|
3766 |
23 Feb 16 |
nicklas |
var url = '../Retraction.servlet?ID=' + App.getSessionId(); |
3766 |
23 Feb 16 |
nicklas |
url += '&cmd=RegisterFollowUp'; |
3766 |
23 Feb 16 |
nicklas |
999 |
|
3766 |
23 Feb 16 |
nicklas |
Wizard.showLoadingAnimation('Performing registration...'); |
3766 |
23 Feb 16 |
nicklas |
Wizard.asyncJsonRequest(url, rf.submissionResults, 'POST', JSON.stringify(submitInfo)); |
3766 |
23 Feb 16 |
nicklas |
1002 |
} |
3766 |
23 Feb 16 |
nicklas |
else if (action == 'destruct') |
3766 |
23 Feb 16 |
nicklas |
1004 |
{ |
3766 |
23 Feb 16 |
nicklas |
var retractionInfo = {}; |
3766 |
23 Feb 16 |
nicklas |
retractionInfo.patientId = selectedPatient.id; |
3085 |
15 Jan 15 |
olle |
1007 |
|
4512 |
31 May 17 |
nicklas |
var keepLiasonComments = []; |
4512 |
31 May 17 |
nicklas |
var checkboxes = document.getElementsByClassName('keepLiasonComment'); |
4512 |
31 May 17 |
nicklas |
for (var cbNo = 0; cbNo < checkboxes.length; cbNo++) |
4512 |
31 May 17 |
nicklas |
1011 |
{ |
4512 |
31 May 17 |
nicklas |
var cb = checkboxes[cbNo]; |
4512 |
31 May 17 |
nicklas |
if (cb.checked) keepLiasonComments[keepLiasonComments.length] = cb.value; |
4512 |
31 May 17 |
nicklas |
1014 |
} |
4512 |
31 May 17 |
nicklas |
retractionInfo.keepLiasonComments = keepLiasonComments; |
4512 |
31 May 17 |
nicklas |
1016 |
|
3766 |
23 Feb 16 |
nicklas |
var submitInfo = {}; |
3766 |
23 Feb 16 |
nicklas |
submitInfo.retractionInfo = retractionInfo; |
3766 |
23 Feb 16 |
nicklas |
1019 |
|
3766 |
23 Feb 16 |
nicklas |
var url = '../Retraction.servlet?ID=' + App.getSessionId(); |
3766 |
23 Feb 16 |
nicklas |
url += '&cmd=RegisterDestruction'; |
3766 |
23 Feb 16 |
nicklas |
1022 |
|
3766 |
23 Feb 16 |
nicklas |
Wizard.showLoadingAnimation('Performing registration...'); |
3766 |
23 Feb 16 |
nicklas |
Wizard.asyncJsonRequest(url, rf.submissionResults, 'POST', JSON.stringify(submitInfo)); |
3766 |
23 Feb 16 |
nicklas |
1025 |
} |
3085 |
15 Jan 15 |
olle |
1026 |
} |
3085 |
15 Jan 15 |
olle |
1027 |
|
3085 |
15 Jan 15 |
olle |
rf.submissionResults = function(response) |
3085 |
15 Jan 15 |
olle |
1029 |
{ |
3085 |
15 Jan 15 |
olle |
Wizard.showFinalMessage(response.messages); |
3085 |
15 Jan 15 |
olle |
Doc.show('gorestart'); |
3085 |
15 Jan 15 |
olle |
1032 |
} |
3085 |
15 Jan 15 |
olle |
1033 |
|
3085 |
15 Jan 15 |
olle |
return rf; |
3085 |
15 Jan 15 |
olle |
1035 |
}(); |
3085 |
15 Jan 15 |
olle |
1036 |
|
3085 |
15 Jan 15 |
olle |
Doc.onLoad(RetractionFollowUpForm.initPage); |
3085 |
15 Jan 15 |
olle |
1038 |
|