extensions/net.sf.basedb.meludi/trunk/resources/personal/ffpe_block_order_form.js

Code
Comments
Other
Rev Date Author Line
4911 12 Jul 18 olle 1 var Istat = function()
4911 12 Jul 18 olle 2 {
4911 12 Jul 18 olle 3   var istat = {};
4911 12 Jul 18 olle 4   var debug = 0;
4911 12 Jul 18 olle 5
4911 12 Jul 18 olle 6   var caseInfo;
4911 12 Jul 18 olle 7
4911 12 Jul 18 olle 8   var usesSitePrefix = false;
4911 12 Jul 18 olle 9   var referralPrefix = '';
4911 12 Jul 18 olle 10   var referralNumDigits = 5;
4911 12 Jul 18 olle 11   var refVariantDefault = 'kit1_standard';
4911 12 Jul 18 olle 12   
4911 12 Jul 18 olle 13   var refStartItemIdPure;
4911 12 Jul 18 olle 14   var itemIsValid = false;
4911 12 Jul 18 olle 15
4911 12 Jul 18 olle 16   istat.initPage = function()
4911 12 Jul 18 olle 17   {
4911 12 Jul 18 olle 18     // Step 1
4911 12 Jul 18 olle 19     Events.addEventHandler('step-1', 'wizard-validate', istat.validateStep1);
5158 30 Nov 18 olle 20     Events.addEventHandler('extractSourceItems', 'change', istat.sourceItemsOnChange);
4911 12 Jul 18 olle 21     
5004 04 Oct 18 olle 22     // Step 2
4911 12 Jul 18 olle 23     Buttons.addClickHandler('downloadformbatch1', istat.downloadFormBatch1);
4911 12 Jul 18 olle 24     Buttons.addClickHandler('downloadformbatch2', istat.downloadFormBatch2);
5158 30 Nov 18 olle 25     Buttons.addClickHandler('formsok', istat.formsOk);
4911 12 Jul 18 olle 26     
4911 12 Jul 18 olle 27     // Navigation
4911 12 Jul 18 olle 28     Buttons.addClickHandler('gocancel', Wizard.cancelWizard);
4911 12 Jul 18 olle 29     Buttons.addClickHandler('gorestart', Wizard.restartWizard);
5028 15 Oct 18 olle 30     Buttons.addClickHandler('gonext', Wizard.goNextOnClick);
4911 12 Jul 18 olle 31
5158 30 Nov 18 olle 32     // Get unused case items
5158 30 Nov 18 olle 33     var url = '../Extraction.servlet?ID='+App.getSessionId();
5158 30 Nov 18 olle 34     url += '&cmd=GetCasesUnusedForFfpeBlockOrderForm';    
5158 30 Nov 18 olle 35     Wizard.showLoadingAnimation('Loading unprocessed items...');
5158 30 Nov 18 olle 36     Wizard.asyncJsonRequest(url, istat.initializeStep1);
4911 12 Jul 18 olle 37   }
4911 12 Jul 18 olle 38   
4911 12 Jul 18 olle 39   istat.initPermissions = function()
4911 12 Jul 18 olle 40   {
4911 12 Jul 18 olle 41     // Get permission information
4911 12 Jul 18 olle 42     var url = '../Install.servlet?ID='+App.getSessionId();
4911 12 Jul 18 olle 43     url += '&cmd=GetPermissions';
4911 12 Jul 18 olle 44     var request = Ajax.getXmlHttpRequest();
4911 12 Jul 18 olle 45     request.open("GET", url, true);
4911 12 Jul 18 olle 46     Ajax.setReadyStateHandler(request, istat.onPermissionsLoaded, istat.onPermissionsLoaded);
4911 12 Jul 18 olle 47     request.send(null);
4911 12 Jul 18 olle 48   }
4911 12 Jul 18 olle 49   
4911 12 Jul 18 olle 50   // Callback when permission information is ready
4911 12 Jul 18 olle 51   istat.onPermissionsLoaded = function(request)
4911 12 Jul 18 olle 52   {
4911 12 Jul 18 olle 53     if (debug) App.debug(Strings.encodeTags(request.responseText));
4911 12 Jul 18 olle 54     var response;
4911 12 Jul 18 olle 55     var error = false;
4911 12 Jul 18 olle 56     try
4911 12 Jul 18 olle 57     {
4911 12 Jul 18 olle 58       response = JSON.parse(request.responseText);
4911 12 Jul 18 olle 59       if (response.status != 'ok')
4911 12 Jul 18 olle 60       {
4911 12 Jul 18 olle 61         error = response.message || response.stacktrace || 'Unexpected error';
4911 12 Jul 18 olle 62       }
4911 12 Jul 18 olle 63     }
4911 12 Jul 18 olle 64     catch (ex)
4911 12 Jul 18 olle 65     {
4911 12 Jul 18 olle 66       error = ex;
4911 12 Jul 18 olle 67     }
4911 12 Jul 18 olle 68     
4911 12 Jul 18 olle 69     if (error)
4911 12 Jul 18 olle 70     {
4911 12 Jul 18 olle 71       alert(error);
4911 12 Jul 18 olle 72       return;
4911 12 Jul 18 olle 73     }
4911 12 Jul 18 olle 74     
4911 12 Jul 18 olle 75     myPermissions = response.permissions;
4911 12 Jul 18 olle 76     //var isAdmin = myPermissions['Administrator'] == 1;
4911 12 Jul 18 olle 77     //var noProjectIsActive = !App.getActiveProjectId();
4911 12 Jul 18 olle 78   }
4911 12 Jul 18 olle 79
4911 12 Jul 18 olle 80   istat.loadConfiguration = function()
4911 12 Jul 18 olle 81   {
4911 12 Jul 18 olle 82     var url = '../Session.servlet?ID='+App.getSessionId();
4911 12 Jul 18 olle 83     url += '&cmd=GetConfiguration'
4911 12 Jul 18 olle 84     var request = Ajax.getXmlHttpRequest();
4911 12 Jul 18 olle 85     request.open("GET", url, true);
4911 12 Jul 18 olle 86     Ajax.setReadyStateHandler(request, istat.onConfiguration, istat.onConfiguration);
4911 12 Jul 18 olle 87     request.send(null);
4911 12 Jul 18 olle 88   }
4911 12 Jul 18 olle 89   
4911 12 Jul 18 olle 90   istat.onConfiguration = function(request)
4911 12 Jul 18 olle 91   {
4911 12 Jul 18 olle 92     var frm = document.forms['meludi'];  
4911 12 Jul 18 olle 93
4911 12 Jul 18 olle 94     if (debug)
4911 12 Jul 18 olle 95     {
4911 12 Jul 18 olle 96       App.debug(Strings.encodeTags(request.responseText));
4911 12 Jul 18 olle 97     }
4911 12 Jul 18 olle 98     
4911 12 Jul 18 olle 99     var response;
4911 12 Jul 18 olle 100     var error = false;
4911 12 Jul 18 olle 101     try
4911 12 Jul 18 olle 102     {
4911 12 Jul 18 olle 103       response = JSON.parse(request.responseText);
4911 12 Jul 18 olle 104       if (response.status != 'ok')
4911 12 Jul 18 olle 105       {
4911 12 Jul 18 olle 106         error = response.message || response.stacktrace || 'Unexpected error';
4911 12 Jul 18 olle 107       }
4911 12 Jul 18 olle 108     }
4911 12 Jul 18 olle 109     catch (ex)
4911 12 Jul 18 olle 110     {
4911 12 Jul 18 olle 111       error = ex;
4911 12 Jul 18 olle 112     }
4911 12 Jul 18 olle 113     if (error) App.debug(error);
4911 12 Jul 18 olle 114
4911 12 Jul 18 olle 115     // Get configuration result    
4911 12 Jul 18 olle 116     var conf = response.configuration;
4911 12 Jul 18 olle 117     // Check for uses site prefix flag
4911 12 Jul 18 olle 118     usesSitePrefix = conf.usesSitePrefix;
4911 12 Jul 18 olle 119     referralPrefix = conf.referralPrefix;
4911 12 Jul 18 olle 120     referralNumDigits = conf.referralNumDigits;
4911 12 Jul 18 olle 121     //alert("ffpe_block_order_form.js::onConfiguration(): usesSitePrefix = " + usesSitePrefix + " referralPrefix = " + referralPrefix + " referralNumDigits = " + referralNumDigits);
4911 12 Jul 18 olle 122
4911 12 Jul 18 olle 123 /*
4911 12 Jul 18 olle 124     // Continue with initializing info for case
4911 12 Jul 18 olle 125     var url = '../LabelGeneration.servlet?ID='+App.getSessionId();
4911 12 Jul 18 olle 126     url += '&cmd=CountCases';
4911 12 Jul 18 olle 127     Wizard.showLoadingAnimation('Loading cases...');
4911 12 Jul 18 olle 128     Wizard.asyncJsonRequest(url, streg.caseInfoLoadedStep1);
4911 12 Jul 18 olle 129 */
4911 12 Jul 18 olle 130   }
4911 12 Jul 18 olle 131
4911 12 Jul 18 olle 132   istat.sitesLoaded = function(response)
4911 12 Jul 18 olle 133   {
4911 12 Jul 18 olle 134     Doc.removeClass('sites', 'list-loading');
4911 12 Jul 18 olle 135     var frm = document.forms['meludi'];
4911 12 Jul 18 olle 136     var sites = response.sites;
4911 12 Jul 18 olle 137     frm.sites.length = 0;
4911 12 Jul 18 olle 138     //frm.sites[0] = new Option('All sites together', '');
4911 12 Jul 18 olle 139     frm.sites[0] = new Option('- Select site -', '');
4911 12 Jul 18 olle 140     for (var i = 0; i < sites.length; i++)
4911 12 Jul 18 olle 141     {
4911 12 Jul 18 olle 142       var s = sites[i];
4911 12 Jul 18 olle 143       //var option = new Option(s.name, s.prefix);
4911 12 Jul 18 olle 144       var option = new Option(s.name + '  [' + s.prefix + ']', s.prefix);
4911 12 Jul 18 olle 145       frm.sites[frm.sites.length] = option;
4911 12 Jul 18 olle 146     }
4911 12 Jul 18 olle 147   }
4911 12 Jul 18 olle 148
4911 12 Jul 18 olle 149   istat.siteAndVariantOnChange = function()
4911 12 Jul 18 olle 150   {
4911 12 Jul 18 olle 151     var frm = document.forms['meludi'];
4911 12 Jul 18 olle 152     var site = frm.sites.value;
4911 12 Jul 18 olle 153     //var refVariant = frm.referralvariant.value;
4911 12 Jul 18 olle 154     var refVariant = refVariantDefault;
4911 12 Jul 18 olle 155     var siteAndVariantAreValid = false;
4911 12 Jul 18 olle 156     if (site != '' && refVariant != '')
4911 12 Jul 18 olle 157     {
4911 12 Jul 18 olle 158       siteAndVariantAreValid = true;
4911 12 Jul 18 olle 159     }
4911 12 Jul 18 olle 160     if (siteAndVariantAreValid)
4911 12 Jul 18 olle 161     {
4911 12 Jul 18 olle 162       // Check if multiple template files for same referral from type
4911 12 Jul 18 olle 163       var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
4911 12 Jul 18 olle 164       url += '&cmd=GetReferralTemplateInfo';
4911 12 Jul 18 olle 165       url += '&site='+encodeURIComponent(site);
4911 12 Jul 18 olle 166       url += '&referralvariant='+encodeURIComponent(refVariant);
4911 12 Jul 18 olle 167       Wizard.showLoadingAnimation('Getting referral template info...', 'ref-gen-progress');
4911 12 Jul 18 olle 168       Wizard.asyncJsonRequest(url, istat.preValidateStep1);
4911 12 Jul 18 olle 169     }
4911 12 Jul 18 olle 170     else
4911 12 Jul 18 olle 171     {
4911 12 Jul 18 olle 172       Doc.addClass('gonext', 'disabled');
4911 12 Jul 18 olle 173     }
4911 12 Jul 18 olle 174   }
4911 12 Jul 18 olle 175
4911 12 Jul 18 olle 176   istat.preValidateStep1 = function(response)
4911 12 Jul 18 olle 177   {
4911 12 Jul 18 olle 178     var frm = document.forms['meludi'];
4911 12 Jul 18 olle 179
4911 12 Jul 18 olle 180     var jsonMultTemplates = response.multTemplates;
4911 12 Jul 18 olle 181     if (jsonMultTemplates.length > 0)
4911 12 Jul 18 olle 182     {
4911 12 Jul 18 olle 183       // List multiple templates/type
4911 12 Jul 18 olle 184       //var html = '<table id="templateFilesTable" class="step-form">';
4911 12 Jul 18 olle 185       var html = '<br>';
4911 12 Jul 18 olle 186       html += '<table id="templateFilesTable">';
4911 12 Jul 18 olle 187       // Header row
4911 12 Jul 18 olle 188       html += '<tr>';
4911 12 Jul 18 olle 189       html += '<th>Multiple template files for same type</th>';
4911 12 Jul 18 olle 190       html += '<th>Template type</th>';
4911 12 Jul 18 olle 191       html += '</tr>';
4911 12 Jul 18 olle 192       // File list
4911 12 Jul 18 olle 193       for (var i = 0; i < jsonMultTemplates.length; i++)
4911 12 Jul 18 olle 194       {
4911 12 Jul 18 olle 195         //var filename = jsonMultTemplates[i];
4911 12 Jul 18 olle 196         var jsonMultTempl = jsonMultTemplates[i];
4911 12 Jul 18 olle 197         var filename = jsonMultTempl['file'];
4911 12 Jul 18 olle 198         var type = jsonMultTempl['type'];
4911 12 Jul 18 olle 199         html += '<tr>';
4911 12 Jul 18 olle 200         html += '<td>&nbsp;&nbsp;' + filename + '</td>';
4911 12 Jul 18 olle 201         html += '<td>&nbsp;&nbsp;' + type + '</td>';
4911 12 Jul 18 olle 202         html += '</tr>';
4911 12 Jul 18 olle 203       }
4911 12 Jul 18 olle 204       html += '</table>';
4911 12 Jul 18 olle 205       Doc.element('step1message').innerHTML = html;
4911 12 Jul 18 olle 206
4911 12 Jul 18 olle 207       // Display extra checkbox to confirm use of multiple templates/type
4911 12 Jul 18 olle 208       var confirmMsg = 'Check to verify use of multiple template files for same type.';
4911 12 Jul 18 olle 209       Wizard.showGoNextConfirmation(true, confirmMsg);
4911 12 Jul 18 olle 210       return;
4911 12 Jul 18 olle 211     }
4911 12 Jul 18 olle 212     else
4911 12 Jul 18 olle 213     {
4911 12 Jul 18 olle 214       Doc.removeClass('gonext', 'disabled');
4911 12 Jul 18 olle 215     }
4911 12 Jul 18 olle 216   }
4911 12 Jul 18 olle 217
5158 30 Nov 18 olle 218   istat.initializeStep1 = function(response)
4911 12 Jul 18 olle 219   {
5158 30 Nov 18 olle 220     var frm = document.forms['meludi'];
5158 30 Nov 18 olle 221     var items = response.items;
5158 30 Nov 18 olle 222     
5158 30 Nov 18 olle 223     var sourceItemList = frm.extractSourceItems;
5158 30 Nov 18 olle 224     if (items.length)
5158 30 Nov 18 olle 225     {
5158 30 Nov 18 olle 226       var numItems = items.length;
5158 30 Nov 18 olle 227       for (var i=0; i < items.length; i++)
5158 30 Nov 18 olle 228       {
5158 30 Nov 18 olle 229         var item = items[i];
5158 30 Nov 18 olle 230         var name = (i+1) + ': ' + Strings.encodeTags(item.name);
5158 30 Nov 18 olle 231         var referralId = "";
5158 30 Nov 18 olle 232         if (item.referralId)
5158 30 Nov 18 olle 233         {
5158 30 Nov 18 olle 234           referralId = item.referralId;
5158 30 Nov 18 olle 235         }
5158 30 Nov 18 olle 236         var personalNumber = "";
5158 30 Nov 18 olle 237         if (item.personalNumber)
5158 30 Nov 18 olle 238         {
5158 30 Nov 18 olle 239           personalNumber = item.personalNumber;
5158 30 Nov 18 olle 240         }
5158 30 Nov 18 olle 241         name += ' -- (Referral-ID: ' + Strings.encodeTags(referralId) + ' Pno: ' + Strings.encodeTags(personalNumber) + ')';
5158 30 Nov 18 olle 242         var selected = i < 30;
5158 30 Nov 18 olle 243         var option = new Option(name, item.id, selected, selected);
5158 30 Nov 18 olle 244         option.item = item;
5158 30 Nov 18 olle 245         sourceItemList.options[sourceItemList.length] = option;
5158 30 Nov 18 olle 246       }
5158 30 Nov 18 olle 247       istat.sourceItemsOnChange();
5158 30 Nov 18 olle 248     }
5158 30 Nov 18 olle 249     else
5158 30 Nov 18 olle 250     {
5158 30 Nov 18 olle 251       Wizard.setFatalError('No case items available.');
5158 30 Nov 18 olle 252       return;
5158 30 Nov 18 olle 253     }
5158 30 Nov 18 olle 254
5158 30 Nov 18 olle 255     Doc.show('step-1');
5158 30 Nov 18 olle 256     Doc.show('gonext');
4911 12 Jul 18 olle 257   }
5158 30 Nov 18 olle 258     
5158 30 Nov 18 olle 259   istat.sourceItemsOnChange = function()
4911 12 Jul 18 olle 260   {
5158 30 Nov 18 olle 261     sourceItemListIsValid = false;
5158 30 Nov 18 olle 262     Wizard.setInputStatus('extractSourceItems');
5158 30 Nov 18 olle 263     
4911 12 Jul 18 olle 264     var frm = document.forms['meludi'];
5158 30 Nov 18 olle 265     var sourceItemList = frm.extractSourceItems;
5158 30 Nov 18 olle 266     
5158 30 Nov 18 olle 267     var numSelected = 0;
5158 30 Nov 18 olle 268     for (var i = 0; i < sourceItemList.length; i++)
5158 30 Nov 18 olle 269     {
5158 30 Nov 18 olle 270       if (sourceItemList[i].selected) numSelected++;
5158 30 Nov 18 olle 271     }
4911 12 Jul 18 olle 272
5158 30 Nov 18 olle 273     if (numSelected < 1)
5158 30 Nov 18 olle 274     {
5158 30 Nov 18 olle 275       Wizard.setInputStatus('extractSourceItems', 'invalid', 'Must select a number of FFPE block items.');
5158 30 Nov 18 olle 276       return;
5158 30 Nov 18 olle 277     }
5158 30 Nov 18 olle 278     
5158 30 Nov 18 olle 279     sourceItemListIsValid = true;
5158 30 Nov 18 olle 280     Wizard.setInputStatus('extractSourceItems', 'valid');
5158 30 Nov 18 olle 281   }
4911 12 Jul 18 olle 282
5004 04 Oct 18 olle 283   istat.initializeStep1a = function(response)
4911 12 Jul 18 olle 284   {
4911 12 Jul 18 olle 285     var frm = document.forms['meludi'];
4911 12 Jul 18 olle 286
4911 12 Jul 18 olle 287     var jsonRefStartInfo = response.refStartInfo;
4911 12 Jul 18 olle 288     
5028 15 Oct 18 olle 289     //var site = frm.sites.value;
4911 12 Jul 18 olle 290     //var refVariant = frm.referralvariant.value;
4911 12 Jul 18 olle 291     var refVariant = refVariantDefault;
4911 12 Jul 18 olle 292
4911 12 Jul 18 olle 293     refStartItemIdPure = jsonRefStartInfo['startItemIdDigitsPure'];
5004 04 Oct 18 olle 294     //alert("ffpe_block_order_form.js::initializeStep1a(): refStartItemIdPure = " + refStartItemIdPure);
4911 12 Jul 18 olle 295     var lastUpdated = jsonRefStartInfo['lastUpdated'];
4911 12 Jul 18 olle 296     // Add site prefix to referral pure start item id
4911 12 Jul 18 olle 297     var refStartItemId = referralPrefix + site + refStartItemIdPure;
4911 12 Jul 18 olle 298     if (lastUpdated != null && lastUpdated != '')
4911 12 Jul 18 olle 299     {
4911 12 Jul 18 olle 300       Doc.element('referralIdLastUpdated').innerHTML = lastUpdated;
4911 12 Jul 18 olle 301     }
4911 12 Jul 18 olle 302     frm.itemName.value = refStartItemId;
4911 12 Jul 18 olle 303
4911 12 Jul 18 olle 304     // Get referral case info
4911 12 Jul 18 olle 305     var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
4911 12 Jul 18 olle 306     url += '&cmd=GetReferralCaseInfo';
4911 12 Jul 18 olle 307     url += '&itemname='+encodeURIComponent(refStartItemId);
4911 12 Jul 18 olle 308     Wizard.showLoadingAnimation('Getting referral start info...', 'ref-gen-progress');
5004 04 Oct 18 olle 309     Wizard.asyncJsonRequest(url, istat.initializeStep1b);
4911 12 Jul 18 olle 310   }
4911 12 Jul 18 olle 311
5004 04 Oct 18 olle 312   istat.initializeStep1b = function(response)
4911 12 Jul 18 olle 313   {
4911 12 Jul 18 olle 314     var frm = document.forms['meludi'];
4911 12 Jul 18 olle 315
4911 12 Jul 18 olle 316     var caseInfo = response.caseInfo;
5028 15 Oct 18 olle 317
4911 12 Jul 18 olle 318     Doc.show('gonext');
4911 12 Jul 18 olle 319     Doc.show('step-2');
4911 12 Jul 18 olle 320   }
4911 12 Jul 18 olle 321
4911 12 Jul 18 olle 322   istat.itemNameOnChange = function()
4911 12 Jul 18 olle 323   {
4911 12 Jul 18 olle 324     var frm = document.forms['meludi'];
4911 12 Jul 18 olle 325     var itemName = frm.itemName.value.toUpperCase();
4911 12 Jul 18 olle 326     itemIsValid = false;
4911 12 Jul 18 olle 327     Doc.addClass('gonext', 'disabled');
4911 12 Jul 18 olle 328     if (itemName == '')
4911 12 Jul 18 olle 329     {
4911 12 Jul 18 olle 330       Wizard.setInputStatus('itemName', 'invalid', 'Missing');
4911 12 Jul 18 olle 331       frm.itemName.focus();
4911 12 Jul 18 olle 332       return;
4911 12 Jul 18 olle 333     }
4911 12 Jul 18 olle 334     //alert("ffpe_block_order_form.js::itemNameOnChange(): itemName = " + itemName)
5158 30 Nov 18 olle 335
4911 12 Jul 18 olle 336     Wizard.setInputStatus('itemName');
4911 12 Jul 18 olle 337     if (itemName == '')
4911 12 Jul 18 olle 338     {
4911 12 Jul 18 olle 339       Wizard.setInputStatus('itemName', 'invalid', 'Missing');
4911 12 Jul 18 olle 340       frm.itemName.focus();
4911 12 Jul 18 olle 341     }
4911 12 Jul 18 olle 342     else if (!Meludi.isValidCaseName2(itemName, referralPrefix, referralNumDigits))
4911 12 Jul 18 olle 343     {
4911 12 Jul 18 olle 344       Wizard.setInputStatus('itemName', 'invalid', 'Only name = "' + referralPrefix + '" + ' + referralNumDigits + ' digits is allowed.');
4911 12 Jul 18 olle 345       frm.itemName.focus();
4911 12 Jul 18 olle 346     }
4911 12 Jul 18 olle 347     else
4911 12 Jul 18 olle 348     {
4911 12 Jul 18 olle 349       Wizard.setInputStatus('itemName', 'valid');
4911 12 Jul 18 olle 350       itemIsValid = true;
4911 12 Jul 18 olle 351     }
4911 12 Jul 18 olle 352
4911 12 Jul 18 olle 353     frm.itemName.value = itemName;
4911 12 Jul 18 olle 354     Wizard.setInputStatus('itemName', 'valid');
4911 12 Jul 18 olle 355     itemIsValid = true;
4911 12 Jul 18 olle 356     Doc.removeClass('gonext', 'disabled');
4911 12 Jul 18 olle 357
4911 12 Jul 18 olle 358     // Get referral case info
4911 12 Jul 18 olle 359     var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
4911 12 Jul 18 olle 360     url += '&cmd=GetReferralCaseInfo';
4911 12 Jul 18 olle 361     url += '&itemname='+encodeURIComponent(itemName);
4911 12 Jul 18 olle 362     Wizard.showLoadingAnimation('Getting referral start info...', 'ref-gen-progress');
5004 04 Oct 18 olle 363     Wizard.asyncJsonRequest(url, istat.initializeStep1b);
4911 12 Jul 18 olle 364   }
4911 12 Jul 18 olle 365
5004 04 Oct 18 olle 366   istat.validateStep1 = function(event)
4911 12 Jul 18 olle 367   {
5158 30 Nov 18 olle 368 //alert("ffpe_block_order_form.js::validateStep1(): Start");
4911 12 Jul 18 olle 369     var valid = true;
4911 12 Jul 18 olle 370     if (!valid) event.preventDefault();
4911 12 Jul 18 olle 371
4911 12 Jul 18 olle 372     istat.generateReferralForms();
4911 12 Jul 18 olle 373   }
4911 12 Jul 18 olle 374
4911 12 Jul 18 olle 375   istat.generateReferralForms = function()
4911 12 Jul 18 olle 376   {
5158 30 Nov 18 olle 377 //alert("ffpe_block_order_form.js::generateReferralForms(): Start");
4911 12 Jul 18 olle 378     var frm = document.forms['meludi'];
5158 30 Nov 18 olle 379     var refVariant = refVariantDefault;
5158 30 Nov 18 olle 380     var caseList = istat.getSelectedItemsList();
5158 30 Nov 18 olle 381 //alert("ffpe_block_order_form.js::generateReferralForms(): refVariant = " + refVariant + " caseList = " + caseList);
4911 12 Jul 18 olle 382
5158 30 Nov 18 olle 383     Doc.addClass('extractSourceItems', 'disabled');
4911 12 Jul 18 olle 384
4911 12 Jul 18 olle 385     Doc.hide('gonext');
4911 12 Jul 18 olle 386
4911 12 Jul 18 olle 387     var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
5158 30 Nov 18 olle 388     url += '&cmd=GenerateFfpeBlockOrderForm';
5158 30 Nov 18 olle 389     url += '&referralvariant='+encodeURIComponent(refVariant);
5158 30 Nov 18 olle 390     url += '&caselist='+encodeURIComponent(JSON.stringify(caseList));
4911 12 Jul 18 olle 391
4911 12 Jul 18 olle 392     Wizard.showLoadingAnimation('Generating referral forms...', 'ref-gen-progress');
5004 04 Oct 18 olle 393     Wizard.asyncJsonRequest(url, istat.initializeStep2);
4911 12 Jul 18 olle 394   }
4911 12 Jul 18 olle 395
5004 04 Oct 18 olle 396   istat.initializeStep2 = function(response)
4911 12 Jul 18 olle 397   {
4911 12 Jul 18 olle 398     var frm = document.forms['meludi'];
5004 04 Oct 18 olle 399     Wizard.setCurrentStep(2);
4911 12 Jul 18 olle 400     Wizard.showFinalMessage(response.messages);
4911 12 Jul 18 olle 401
4911 12 Jul 18 olle 402     Doc.hide('gonext');
4911 12 Jul 18 olle 403     Doc.show('downloadformbatch2');
5158 30 Nov 18 olle 404     Doc.show('formsok');
4911 12 Jul 18 olle 405   
5004 04 Oct 18 olle 406     Doc.show('step-2');
4911 12 Jul 18 olle 407   }
4911 12 Jul 18 olle 408     
5004 04 Oct 18 olle 409   istat.initializeStep2a = function(response)
4911 12 Jul 18 olle 410   {
4911 12 Jul 18 olle 411     var frm = document.forms['meludi'];
4911 12 Jul 18 olle 412     Wizard.setCurrentStep(3);
4911 12 Jul 18 olle 413     Wizard.showFinalMessage(response.messages);
4911 12 Jul 18 olle 414
4911 12 Jul 18 olle 415     Doc.show('gorestart');
4911 12 Jul 18 olle 416     Doc.hide('gonext');
4911 12 Jul 18 olle 417     Doc.show('downloadformbatch2');
4911 12 Jul 18 olle 418   
4911 12 Jul 18 olle 419     Doc.show('step-3');
4911 12 Jul 18 olle 420   }
4911 12 Jul 18 olle 421
4911 12 Jul 18 olle 422   istat.downloadFormBatch2 = function()
4911 12 Jul 18 olle 423   {
4911 12 Jul 18 olle 424     istat.downloadFormBatch(2);
4911 12 Jul 18 olle 425   }
4911 12 Jul 18 olle 426
4911 12 Jul 18 olle 427   istat.downloadFormBatch = function(batchType)
4911 12 Jul 18 olle 428   {
4911 12 Jul 18 olle 429     var frm = document.forms['meludi'];
5158 30 Nov 18 olle 430     //var startItemName = frm.itemName.value;
5158 30 Nov 18 olle 431     var caseList = istat.getSelectedItemsList();
5158 30 Nov 18 olle 432 //alert("ffpe_block_order_form.js::downloadFormBatch(): caseList = " + JSON.stringify(caseList));
5158 30 Nov 18 olle 433     var caseItem = caseList[0];
5158 30 Nov 18 olle 434     var startItemName = caseItem.referralId;
4911 12 Jul 18 olle 435     var nofFormSets = 1;
5204 08 Jan 19 olle 436     var altFilename = 'FFPE_Block_Order_Form';
4911 12 Jul 18 olle 437
4911 12 Jul 18 olle 438     var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
4911 12 Jul 18 olle 439     url += '&cmd=DownloadFormBatchFile';
4911 12 Jul 18 olle 440     url += '&batchType='+batchType;
4911 12 Jul 18 olle 441     url += '&startitemname='+encodeURIComponent(startItemName);
4911 12 Jul 18 olle 442     url += '&nofformsets='+encodeURIComponent(nofFormSets);
5204 08 Jan 19 olle 443     url += '&altfilename='+encodeURIComponent(altFilename);
4911 12 Jul 18 olle 444     window.open(url);
4911 12 Jul 18 olle 445   }
4911 12 Jul 18 olle 446
4911 12 Jul 18 olle 447   istat.updateUsedItemIdDigitsList = function()
4911 12 Jul 18 olle 448   {
4911 12 Jul 18 olle 449     var frm = document.forms['meludi'];
4911 12 Jul 18 olle 450     var startItemName = frm.itemName.value;
4911 12 Jul 18 olle 451     var nofItems = 1;
4911 12 Jul 18 olle 452
4911 12 Jul 18 olle 453     var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
4911 12 Jul 18 olle 454     url += '&cmd=UpdateUsedItemIdDigitsList';
4911 12 Jul 18 olle 455     url += '&startitemname='+encodeURIComponent(startItemName);
4911 12 Jul 18 olle 456     url += '&nofItems='+encodeURIComponent(nofItems);
4911 12 Jul 18 olle 457
5004 04 Oct 18 olle 458     Wizard.asyncJsonRequest(url, istat.initializeStep2a);
4911 12 Jul 18 olle 459   }
4911 12 Jul 18 olle 460
4911 12 Jul 18 olle 461   istat.selectOptionsDisabled = function(id, value)
4911 12 Jul 18 olle 462   {
4911 12 Jul 18 olle 463     var op = document.getElementById(id).getElementsByTagName('option');
4911 12 Jul 18 olle 464     for (var i = 0; i < op.length; i++)
4911 12 Jul 18 olle 465     {
4911 12 Jul 18 olle 466       op[i].disabled = value;
4911 12 Jul 18 olle 467     }
4911 12 Jul 18 olle 468   }
4911 12 Jul 18 olle 469
5158 30 Nov 18 olle 470   istat.formsOk = function()
5158 30 Nov 18 olle 471   {
5158 30 Nov 18 olle 472     var frm = document.forms['meludi'];
5158 30 Nov 18 olle 473     var caseList = istat.getSelectedItemsList();
5158 30 Nov 18 olle 474
5158 30 Nov 18 olle 475     var url = '../ReferralGenerator.servlet?ID='+App.getSessionId();
5158 30 Nov 18 olle 476     url += '&cmd=RegisterFfpeBlockOrderFormsAsOk';
5158 30 Nov 18 olle 477     url += '&caselist='+encodeURIComponent(JSON.stringify(caseList));
5158 30 Nov 18 olle 478
5158 30 Nov 18 olle 479     Wizard.showLoadingAnimation('Registering forms as OK...', 'ref-gen-progress');
5213 09 Jan 19 olle 480     //Wizard.asyncJsonRequest(url, istat.initializeStep2);
5213 09 Jan 19 olle 481     Wizard.asyncJsonRequest(url, istat.initializeStep2a);
5158 30 Nov 18 olle 482   }
5158 30 Nov 18 olle 483
5158 30 Nov 18 olle 484   istat.getSelectedItemsList = function()
5158 30 Nov 18 olle 485   {
5158 30 Nov 18 olle 486     var frm = document.forms['meludi'];
5158 30 Nov 18 olle 487     
5158 30 Nov 18 olle 488     // Get number of selected extract source items
5158 30 Nov 18 olle 489     var numItems = 0;
5158 30 Nov 18 olle 490     var selItemsList = [];
5158 30 Nov 18 olle 491     for (var i = 0; i < frm.extractSourceItems.length; i++)
5158 30 Nov 18 olle 492     {
5158 30 Nov 18 olle 493       if (frm.extractSourceItems[i].selected)
5158 30 Nov 18 olle 494       {
5158 30 Nov 18 olle 495         if (frm.extractSourceItems[i].item != null)
5158 30 Nov 18 olle 496         {
5158 30 Nov 18 olle 497           selItemsList[numItems] = frm.extractSourceItems[i].item;
5158 30 Nov 18 olle 498           numItems++;
5158 30 Nov 18 olle 499         }
5158 30 Nov 18 olle 500       }
5158 30 Nov 18 olle 501     }
5158 30 Nov 18 olle 502     return selItemsList;
5158 30 Nov 18 olle 503   }
5158 30 Nov 18 olle 504
4911 12 Jul 18 olle 505   return istat;
4911 12 Jul 18 olle 506 }();
4911 12 Jul 18 olle 507
4911 12 Jul 18 olle 508 Doc.onLoad(Istat.initPage);
4911 12 Jul 18 olle 509