5062 |
30 Oct 18 |
olle |
var Istat = function() |
5062 |
30 Oct 18 |
olle |
2 |
{ |
5062 |
30 Oct 18 |
olle |
var istat = {}; |
5062 |
30 Oct 18 |
olle |
var debug = 0; |
5062 |
30 Oct 18 |
olle |
5 |
|
5062 |
30 Oct 18 |
olle |
// Page initialization |
5062 |
30 Oct 18 |
olle |
istat.initPage = function() |
5062 |
30 Oct 18 |
olle |
8 |
{ |
5062 |
30 Oct 18 |
olle |
// Step 1 |
5062 |
30 Oct 18 |
olle |
Events.addEventHandler('step-1', 'wizard-validate', istat.validateStep1); |
5062 |
30 Oct 18 |
olle |
Events.addEventHandler('extractSourceItems', 'change', istat.sourceItemsOnChange); |
5062 |
30 Oct 18 |
olle |
12 |
|
5062 |
30 Oct 18 |
olle |
// Navigation |
5062 |
30 Oct 18 |
olle |
Buttons.addClickHandler('gocancel', Wizard.cancelWizard); |
5062 |
30 Oct 18 |
olle |
Buttons.addClickHandler('gorestart', Wizard.restartWizard); |
5062 |
30 Oct 18 |
olle |
//Buttons.addClickHandler('gonext', Wizard.goNextOnClick); |
5062 |
30 Oct 18 |
olle |
Buttons.addClickHandler('goregister', Wizard.goRegister); |
5171 |
03 Dec 18 |
olle |
Buttons.addClickHandler('today', istat.returnedDateToday); |
5062 |
30 Oct 18 |
olle |
19 |
|
5062 |
30 Oct 18 |
olle |
// Final registration |
5062 |
30 Oct 18 |
olle |
Events.addEventHandler('wizard', 'wizard-submit', istat.submit); |
5062 |
30 Oct 18 |
olle |
22 |
|
5062 |
30 Oct 18 |
olle |
// Get FFPE block items |
5062 |
30 Oct 18 |
olle |
var url = '../Extraction.servlet?ID='+App.getSessionId(); |
5062 |
30 Oct 18 |
olle |
url += '&cmd=GetUnreturnedFfpeBlocks'; |
5062 |
30 Oct 18 |
olle |
Wizard.showLoadingAnimation('Loading unprocessed items...'); |
5062 |
30 Oct 18 |
olle |
Wizard.asyncJsonRequest(url, istat.initializeStep1); |
5062 |
30 Oct 18 |
olle |
28 |
} |
5062 |
30 Oct 18 |
olle |
29 |
|
5062 |
30 Oct 18 |
olle |
istat.initializeStep1 = function(response) |
5062 |
30 Oct 18 |
olle |
31 |
{ |
5062 |
30 Oct 18 |
olle |
var frm = document.forms['meludi']; |
5062 |
30 Oct 18 |
olle |
var items = response.items; |
5062 |
30 Oct 18 |
olle |
34 |
|
5062 |
30 Oct 18 |
olle |
var sourceItemList = frm.extractSourceItems; |
5062 |
30 Oct 18 |
olle |
if (items.length) |
5062 |
30 Oct 18 |
olle |
37 |
{ |
5062 |
30 Oct 18 |
olle |
var numItems = items.length; |
5062 |
30 Oct 18 |
olle |
for (var i=0; i < items.length; i++) |
5062 |
30 Oct 18 |
olle |
40 |
{ |
5062 |
30 Oct 18 |
olle |
var item = items[i]; |
5062 |
30 Oct 18 |
olle |
var name = (i+1) + ': ' + Strings.encodeTags(item.name); |
5062 |
30 Oct 18 |
olle |
if (item.pad) |
5062 |
30 Oct 18 |
olle |
44 |
{ |
5062 |
30 Oct 18 |
olle |
name += ' -- (PAD: ' + Strings.encodeTags(item.pad + ')'); |
5062 |
30 Oct 18 |
olle |
46 |
} |
5062 |
30 Oct 18 |
olle |
var selected = i < 8; |
5062 |
30 Oct 18 |
olle |
var option = new Option(name, item.id, selected, selected); |
5062 |
30 Oct 18 |
olle |
option.item = item; |
5062 |
30 Oct 18 |
olle |
if (item.yellowLabel) |
5062 |
30 Oct 18 |
olle |
51 |
{ |
5062 |
30 Oct 18 |
olle |
option.className = 'yellow'; |
5062 |
30 Oct 18 |
olle |
53 |
} |
5062 |
30 Oct 18 |
olle |
sourceItemList.options[sourceItemList.length] = option; |
5062 |
30 Oct 18 |
olle |
55 |
} |
5062 |
30 Oct 18 |
olle |
istat.sourceItemsOnChange(); |
5062 |
30 Oct 18 |
olle |
57 |
} |
5062 |
30 Oct 18 |
olle |
else |
5062 |
30 Oct 18 |
olle |
59 |
{ |
5062 |
30 Oct 18 |
olle |
Wizard.setFatalError('No unreturned FFPE block items available.'); |
5062 |
30 Oct 18 |
olle |
return; |
5062 |
30 Oct 18 |
olle |
62 |
} |
5062 |
30 Oct 18 |
olle |
63 |
|
5062 |
30 Oct 18 |
olle |
Wizard.setCurrentStep(1); |
5062 |
30 Oct 18 |
olle |
Doc.show('step-1'); |
5062 |
30 Oct 18 |
olle |
Doc.show('goregister'); |
5062 |
30 Oct 18 |
olle |
Doc.show('gocancel'); |
5062 |
30 Oct 18 |
olle |
68 |
} |
5062 |
30 Oct 18 |
olle |
69 |
|
5062 |
30 Oct 18 |
olle |
istat.sourceItemsOnChange = function() |
5062 |
30 Oct 18 |
olle |
71 |
{ |
5062 |
30 Oct 18 |
olle |
sourceItemListIsValid = false; |
5062 |
30 Oct 18 |
olle |
Wizard.setInputStatus('extractSourceItems'); |
5062 |
30 Oct 18 |
olle |
74 |
|
5062 |
30 Oct 18 |
olle |
var frm = document.forms['meludi']; |
5062 |
30 Oct 18 |
olle |
var sourceItemList = frm.extractSourceItems; |
5062 |
30 Oct 18 |
olle |
77 |
|
5062 |
30 Oct 18 |
olle |
var numSelected = 0; |
5062 |
30 Oct 18 |
olle |
for (var i = 0; i < sourceItemList.length; i++) |
5062 |
30 Oct 18 |
olle |
80 |
{ |
5062 |
30 Oct 18 |
olle |
if (sourceItemList[i].selected) numSelected++; |
5062 |
30 Oct 18 |
olle |
82 |
} |
5062 |
30 Oct 18 |
olle |
83 |
|
5062 |
30 Oct 18 |
olle |
if (numSelected < 1) |
5062 |
30 Oct 18 |
olle |
85 |
{ |
5062 |
30 Oct 18 |
olle |
Wizard.setInputStatus('extractSourceItems', 'invalid', 'Must select a number of FFPE block items.'); |
5062 |
30 Oct 18 |
olle |
return; |
5062 |
30 Oct 18 |
olle |
88 |
} |
5062 |
30 Oct 18 |
olle |
89 |
|
5062 |
30 Oct 18 |
olle |
sourceItemListIsValid = true; |
5062 |
30 Oct 18 |
olle |
Wizard.setInputStatus('extractSourceItems', 'valid'); |
5062 |
30 Oct 18 |
olle |
92 |
} |
5062 |
30 Oct 18 |
olle |
93 |
|
5062 |
30 Oct 18 |
olle |
istat.validateStep1 = function(event) |
5062 |
30 Oct 18 |
olle |
95 |
{ |
5062 |
30 Oct 18 |
olle |
var frm = document.forms['meludi']; |
5062 |
30 Oct 18 |
olle |
var ffpeBlockList = istat.getSelectedItemsList(); |
5062 |
30 Oct 18 |
olle |
var nofBlocks = ffpeBlockList.length; |
5062 |
30 Oct 18 |
olle |
if (!sourceItemListIsValid) |
5062 |
30 Oct 18 |
olle |
100 |
{ |
5062 |
30 Oct 18 |
olle |
event.preventDefault(); |
5062 |
30 Oct 18 |
olle |
102 |
} |
5062 |
30 Oct 18 |
olle |
var ffpeBlockList = istat.getSelectedItemsList(); |
5062 |
30 Oct 18 |
olle |
var nofBlocks = ffpeBlockList.length; |
5062 |
30 Oct 18 |
olle |
if (nofBlocks == 0) |
5062 |
30 Oct 18 |
olle |
106 |
{ |
5062 |
30 Oct 18 |
olle |
event.preventDefault(); |
5062 |
30 Oct 18 |
olle |
108 |
} |
5062 |
30 Oct 18 |
olle |
var returnedDate = frm['returnedDate'].value; |
5062 |
30 Oct 18 |
olle |
if (!returnedDate) |
5062 |
30 Oct 18 |
olle |
111 |
{ |
5062 |
30 Oct 18 |
olle |
Wizard.setInputStatus('returnedDate', 'invalid', 'Must enter a returned date.'); |
5062 |
30 Oct 18 |
olle |
event.preventDefault(); |
5062 |
30 Oct 18 |
olle |
114 |
} |
5062 |
30 Oct 18 |
olle |
var valid = true; |
5062 |
30 Oct 18 |
olle |
116 |
} |
5062 |
30 Oct 18 |
olle |
117 |
|
5062 |
30 Oct 18 |
olle |
istat.submit = function() |
5062 |
30 Oct 18 |
olle |
119 |
{ |
5062 |
30 Oct 18 |
olle |
var frm = document.forms['meludi']; |
5062 |
30 Oct 18 |
olle |
var ffpeBlockList = istat.getSelectedItemsList(); |
5062 |
30 Oct 18 |
olle |
122 |
|
5062 |
30 Oct 18 |
olle |
var ffpeBlockInfo = {}; |
5062 |
30 Oct 18 |
olle |
var nofBlocks = ffpeBlockList.length; |
5062 |
30 Oct 18 |
olle |
ffpeBlockInfo.ffpeBlocks = []; |
5062 |
30 Oct 18 |
olle |
for (var i = 0; i < nofBlocks; i++) |
5062 |
30 Oct 18 |
olle |
127 |
{ |
5062 |
30 Oct 18 |
olle |
var ffpeBlock ={}; |
5062 |
30 Oct 18 |
olle |
ffpeBlock.name = ffpeBlockList[i].name; |
5062 |
30 Oct 18 |
olle |
ffpeBlock.pad = ffpeBlockList[i].pad; |
5062 |
30 Oct 18 |
olle |
ffpeBlock.yellowLabel = ffpeBlockList[i].yellowLabel; |
5062 |
30 Oct 18 |
olle |
ffpeBlockInfo.ffpeBlocks[i] = ffpeBlock; |
5062 |
30 Oct 18 |
olle |
133 |
} |
5062 |
30 Oct 18 |
olle |
var returnedDate = frm['returnedDate'].value; |
5062 |
30 Oct 18 |
olle |
ffpeBlockInfo.returnedDate = returnedDate; |
5062 |
30 Oct 18 |
olle |
136 |
|
5062 |
30 Oct 18 |
olle |
var submitInfo = {}; |
5062 |
30 Oct 18 |
olle |
submitInfo.ffpeBlockInfo = ffpeBlockInfo; |
5062 |
30 Oct 18 |
olle |
139 |
|
5062 |
30 Oct 18 |
olle |
var url = '../BaseLineRegistration.servlet?ID='+App.getSessionId(); |
5062 |
30 Oct 18 |
olle |
url += '&cmd=RegisterReturnedFFPEBlocks'; |
5062 |
30 Oct 18 |
olle |
Wizard.showLoadingAnimation('Registering returned FFPE block[s]...'); |
5062 |
30 Oct 18 |
olle |
Wizard.asyncJsonRequest(url, istat.submissionResults, 'POST', JSON.stringify(submitInfo)); |
5062 |
30 Oct 18 |
olle |
144 |
} |
5062 |
30 Oct 18 |
olle |
145 |
|
5062 |
30 Oct 18 |
olle |
istat.submissionResults = function(response) |
5062 |
30 Oct 18 |
olle |
147 |
{ |
5062 |
30 Oct 18 |
olle |
Wizard.showFinalMessage(response.messages); |
5062 |
30 Oct 18 |
olle |
Doc.show('gorestart'); |
5062 |
30 Oct 18 |
olle |
150 |
} |
5062 |
30 Oct 18 |
olle |
151 |
|
5062 |
30 Oct 18 |
olle |
istat.getSelectedItemsList = function() |
5062 |
30 Oct 18 |
olle |
153 |
{ |
5062 |
30 Oct 18 |
olle |
var frm = document.forms['meludi']; |
5062 |
30 Oct 18 |
olle |
155 |
|
5062 |
30 Oct 18 |
olle |
// Get number of selected extract source items |
5062 |
30 Oct 18 |
olle |
var numItems = 0; |
5062 |
30 Oct 18 |
olle |
var selItemsList = []; |
5062 |
30 Oct 18 |
olle |
for (var i = 0; i < frm.extractSourceItems.length; i++) |
5062 |
30 Oct 18 |
olle |
160 |
{ |
5062 |
30 Oct 18 |
olle |
if (frm.extractSourceItems[i].selected) |
5062 |
30 Oct 18 |
olle |
162 |
{ |
5062 |
30 Oct 18 |
olle |
if (frm.extractSourceItems[i].item != null) |
5062 |
30 Oct 18 |
olle |
164 |
{ |
5062 |
30 Oct 18 |
olle |
selItemsList[numItems] = frm.extractSourceItems[i].item; |
5062 |
30 Oct 18 |
olle |
numItems++; |
5062 |
30 Oct 18 |
olle |
167 |
} |
5062 |
30 Oct 18 |
olle |
168 |
} |
5062 |
30 Oct 18 |
olle |
169 |
} |
5062 |
30 Oct 18 |
olle |
return selItemsList; |
5062 |
30 Oct 18 |
olle |
171 |
} |
5062 |
30 Oct 18 |
olle |
172 |
|
5171 |
03 Dec 18 |
olle |
Date.prototype.yyyymmdd = function() |
5171 |
03 Dec 18 |
olle |
174 |
{ |
5171 |
03 Dec 18 |
olle |
var mm = this.getMonth() + 1; // getMonth() is zero-based |
5171 |
03 Dec 18 |
olle |
var dd = this.getDate(); |
5171 |
03 Dec 18 |
olle |
177 |
|
5171 |
03 Dec 18 |
olle |
return [this.getFullYear(), |
5171 |
03 Dec 18 |
olle |
(mm>9 ? '' : '0') + mm, |
5171 |
03 Dec 18 |
olle |
(dd>9 ? '' : '0') + dd |
5171 |
03 Dec 18 |
olle |
].join(''); |
5171 |
03 Dec 18 |
olle |
182 |
}; |
5171 |
03 Dec 18 |
olle |
183 |
|
5171 |
03 Dec 18 |
olle |
istat.returnedDateToday = function() |
5171 |
03 Dec 18 |
olle |
185 |
{ |
5171 |
03 Dec 18 |
olle |
var frm = document.forms['meludi']; |
5171 |
03 Dec 18 |
olle |
187 |
|
5171 |
03 Dec 18 |
olle |
// Get today's date and insert into date field |
5171 |
03 Dec 18 |
olle |
var date = new Date(); |
5171 |
03 Dec 18 |
olle |
frm['returnedDate'].value = date.yyyymmdd(); |
5171 |
03 Dec 18 |
olle |
191 |
} |
5171 |
03 Dec 18 |
olle |
192 |
|
5062 |
30 Oct 18 |
olle |
return istat; |
5062 |
30 Oct 18 |
olle |
194 |
}(); |
5062 |
30 Oct 18 |
olle |
195 |
|
5062 |
30 Oct 18 |
olle |
Doc.onLoad(Istat.initPage); |
5062 |
30 Oct 18 |
olle |
197 |
|