extensions/net.sf.basedb.reggie/trunk/resources/personal/export_missing_data_sample_list.js

Code
Comments
Other
Rev Date Author Line
2604 27 Aug 14 nicklas 1 var Xport = function()
2604 27 Aug 14 nicklas 2 {
2604 27 Aug 14 nicklas 3   var xport = {};
2604 27 Aug 14 nicklas 4   var previewTitle;
2604 27 Aug 14 nicklas 5   var previewList;
2604 27 Aug 14 nicklas 6   
2604 27 Aug 14 nicklas 7   xport.initPage = function()
2604 27 Aug 14 nicklas 8   {
2604 27 Aug 14 nicklas 9     previewTitle = Doc.element('previewTitle');
2604 27 Aug 14 nicklas 10     previewList = Doc.element('previewList');
2604 27 Aug 14 nicklas 11     
2604 27 Aug 14 nicklas 12     Buttons.addClickHandler('goexport', xport.goExport);
2604 27 Aug 14 nicklas 13     Buttons.addClickHandler('gopreview', xport.goPreview);
2604 27 Aug 14 nicklas 14
2604 27 Aug 14 nicklas 15     Doc.show('step-1');
2604 27 Aug 14 nicklas 16     Doc.show('gopreview');
2604 27 Aug 14 nicklas 17     Doc.show('goexport');
2604 27 Aug 14 nicklas 18   }
2604 27 Aug 14 nicklas 19   
2604 27 Aug 14 nicklas 20   xport.goPreview = function()
2604 27 Aug 14 nicklas 21   {
2604 27 Aug 14 nicklas 22     xport.doExport(true);
2604 27 Aug 14 nicklas 23   }
2604 27 Aug 14 nicklas 24   
2604 27 Aug 14 nicklas 25   xport.goExport = function()
2604 27 Aug 14 nicklas 26   {
2604 27 Aug 14 nicklas 27     xport.doExport(false);
2604 27 Aug 14 nicklas 28   }
2604 27 Aug 14 nicklas 29   
2604 27 Aug 14 nicklas 30   xport.doExport = function(preview)
2604 27 Aug 14 nicklas 31   {
2604 27 Aug 14 nicklas 32     var frm = document.forms['reggie'];
2604 27 Aug 14 nicklas 33     var url = '../Export.servlet?ID='+App.getSessionId();
2604 27 Aug 14 nicklas 34     url += '&cmd=ExportMissingSampleDataSampleList';
2604 27 Aug 14 nicklas 35     url += '&stype='+frm.sampletype.value;
2604 27 Aug 14 nicklas 36     url += '&exportSubtype=1';
2604 27 Aug 14 nicklas 37     url += '&exportPatientId=1';
3914 02 May 16 nicklas 38     url += '&progressbar=export-missing-data-progress';
2604 27 Aug 14 nicklas 39     
3914 02 May 16 nicklas 40     Wizard.showLoadingAnimation('Working...', 'export-missing-data-progress');
3914 02 May 16 nicklas 41     Doc.hide('navigation');
3914 02 May 16 nicklas 42     Doc.hide('previewWrapper');
3914 02 May 16 nicklas 43
2604 27 Aug 14 nicklas 44     if (preview) 
2604 27 Aug 14 nicklas 45     {
2604 27 Aug 14 nicklas 46       url += '&preview=1';
2604 27 Aug 14 nicklas 47       Wizard.asyncJsonRequest(url, xport.onPreviewLoaded);
2604 27 Aug 14 nicklas 48
2604 27 Aug 14 nicklas 49     }
2604 27 Aug 14 nicklas 50     else
2604 27 Aug 14 nicklas 51     {
2604 27 Aug 14 nicklas 52       window.location = url;    
2604 27 Aug 14 nicklas 53     }
2604 27 Aug 14 nicklas 54   }
2604 27 Aug 14 nicklas 55
2604 27 Aug 14 nicklas 56   xport.onPreviewLoaded = function(response)
2604 27 Aug 14 nicklas 57   {
2604 27 Aug 14 nicklas 58     Doc.show('navigation');
2604 27 Aug 14 nicklas 59     var frm = document.forms['reggie'];
2604 27 Aug 14 nicklas 60     
2604 27 Aug 14 nicklas 61     var allLines = response.split('\n');
2604 27 Aug 14 nicklas 62     var numCases = allLines.length - 2; // First line is a header line
2604 27 Aug 14 nicklas 63     var numSpecimen = 0;
2604 27 Aug 14 nicklas 64     var numNoSpecimen = 0;
2604 27 Aug 14 nicklas 65     
2604 27 Aug 14 nicklas 66     var html = '<tr><th>'+allLines[0].replace(/\t/g, '</th><th>')+'</th></tr>';
2604 27 Aug 14 nicklas 67     // Check second column for the 'Subtype' value
2604 27 Aug 14 nicklas 68     var numNoConsent = 0;
2604 27 Aug 14 nicklas 69     var numMissingConsent = 0;
2604 27 Aug 14 nicklas 70     for (var i = 1 ; i <= numCases; i++)
2604 27 Aug 14 nicklas 71     {
2604 27 Aug 14 nicklas 72       var line = allLines[i];
2604 27 Aug 14 nicklas 73       var cols = line.split(/\t/);
2604 27 Aug 14 nicklas 74       var sampleSubtype = cols[1];
2604 27 Aug 14 nicklas 75       if (sampleSubtype == 'Specimen')
2604 27 Aug 14 nicklas 76       {
2604 27 Aug 14 nicklas 77         numSpecimen++;
2604 27 Aug 14 nicklas 78       }
2604 27 Aug 14 nicklas 79       else if (sampleSubtype == 'NoSpecimen')
2604 27 Aug 14 nicklas 80       {
2604 27 Aug 14 nicklas 81         numNoSpecimen++;
2604 27 Aug 14 nicklas 82       }
2604 27 Aug 14 nicklas 83       var rowClass = '';
2604 27 Aug 14 nicklas 84       html += '<tr class="'+rowClass+'"><td>'+cols.join('</td><td>')+'</td></tr>';
2604 27 Aug 14 nicklas 85     }
2604 27 Aug 14 nicklas 86
2604 27 Aug 14 nicklas 87     var sampleTypes = frm.sampletype[frm.sampletype.selectedIndex].text;
2604 27 Aug 14 nicklas 88     previewTitle.innerHTML = 'Sample type(s) - ' + sampleTypes + ' (' + numCases + ')';
2604 27 Aug 14 nicklas 89     if (sampleTypes == 'Specimen/No specimen')
2604 27 Aug 14 nicklas 90     {
2604 27 Aug 14 nicklas 91       // Report the number of each subtype for 'Specimen/No specimen'
2604 27 Aug 14 nicklas 92       previewTitle.innerHTML = 'Sample type(s) - Specimen (' + numSpecimen + ')/No specimen (' + numNoSpecimen + ') Total (' + numCases + ')';
2604 27 Aug 14 nicklas 93     }
2604 27 Aug 14 nicklas 94     previewList.innerHTML = '<table>'+html+'</table>';
2604 27 Aug 14 nicklas 95     Doc.show('previewWrapper');
2604 27 Aug 14 nicklas 96   }
2604 27 Aug 14 nicklas 97
2604 27 Aug 14 nicklas 98   return xport;
2604 27 Aug 14 nicklas 99 }();
2604 27 Aug 14 nicklas 100
2604 27 Aug 14 nicklas 101 Doc.onLoad(Xport.initPage);
2604 27 Aug 14 nicklas 102