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

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