extensions/net.sf.basedb.meludi/trunk/resources/personal/generate-referral-forms.js

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