extensions/net.sf.basedb.reggie/trunk/resources/personal/export_missing_consent_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 url = '../Export.servlet?ID='+App.getSessionId();
2604 27 Aug 14 nicklas 33     url += '&cmd=ExportMissingConsentDataSampleList';
3914 02 May 16 nicklas 34     url += '&progressbar=export-missing-consent-progress';
2604 27 Aug 14 nicklas 35     
3914 02 May 16 nicklas 36     Wizard.showLoadingAnimation('Working...', 'export-missing-consent-progress');
3914 02 May 16 nicklas 37     Doc.hide('navigation');
3914 02 May 16 nicklas 38     Doc.hide('previewWrapper');
3914 02 May 16 nicklas 39
2604 27 Aug 14 nicklas 40     if (preview) 
2604 27 Aug 14 nicklas 41     {
2604 27 Aug 14 nicklas 42       url += '&preview=1';
2604 27 Aug 14 nicklas 43       Wizard.asyncJsonRequest(url, xport.onPreviewLoaded);
2604 27 Aug 14 nicklas 44     }
2604 27 Aug 14 nicklas 45     else
2604 27 Aug 14 nicklas 46     {
2604 27 Aug 14 nicklas 47       window.location = url;    
2604 27 Aug 14 nicklas 48     }
2604 27 Aug 14 nicklas 49   }
2604 27 Aug 14 nicklas 50
2604 27 Aug 14 nicklas 51   xport.onPreviewLoaded = function(response)
2604 27 Aug 14 nicklas 52   {
2604 27 Aug 14 nicklas 53     Doc.show('navigation');
2604 27 Aug 14 nicklas 54
2604 27 Aug 14 nicklas 55     var allLines = response.split('\n');
2604 27 Aug 14 nicklas 56     var numCases = allLines.length - 2; // First line is a header line
2604 27 Aug 14 nicklas 57     
2604 27 Aug 14 nicklas 58     var html = '<tr><th>'+allLines[0].replace(/\t/g, '</th><th>')+'</th></tr>';
2604 27 Aug 14 nicklas 59     // Check last column for the 'Consent' value
2604 27 Aug 14 nicklas 60     var numConsentWithoutDate = 0;
2604 27 Aug 14 nicklas 61     var numMissingConsent = 0;
2604 27 Aug 14 nicklas 62     var numYesConsent = 0;
2604 27 Aug 14 nicklas 63     var numNoConsent = 0;
2604 27 Aug 14 nicklas 64     var numNotAskedConsent = 0;
2604 27 Aug 14 nicklas 65     for (var i = 1 ; i <= numCases; i++)
2604 27 Aug 14 nicklas 66     {
2604 27 Aug 14 nicklas 67       var line = allLines[i];
2604 27 Aug 14 nicklas 68       var cols = line.split(/\t/);
2604 27 Aug 14 nicklas 69       var consent = cols[cols.length-1];
2604 27 Aug 14 nicklas 70       var rowClass = '';
2604 27 Aug 14 nicklas 71       if (consent == null || consent == 'null')
2604 27 Aug 14 nicklas 72       {
2604 27 Aug 14 nicklas 73         rowClass = 'consent-warning';
2604 27 Aug 14 nicklas 74         numMissingConsent++;
2604 27 Aug 14 nicklas 75       }
2604 27 Aug 14 nicklas 76       else if (consent == 'Yes')
2604 27 Aug 14 nicklas 77       {
2604 27 Aug 14 nicklas 78         numYesConsent++;
2604 27 Aug 14 nicklas 79       }
2604 27 Aug 14 nicklas 80       else if (consent == 'No')
2604 27 Aug 14 nicklas 81       {
2604 27 Aug 14 nicklas 82         numNoConsent++;
2604 27 Aug 14 nicklas 83       }
2604 27 Aug 14 nicklas 84       else if (consent == 'Not asked')
2604 27 Aug 14 nicklas 85       {
2604 27 Aug 14 nicklas 86         numNotAskedConsent++;
2604 27 Aug 14 nicklas 87       }
2604 27 Aug 14 nicklas 88       html += '<tr class="'+rowClass+'"><td>'+cols.join('</td><td>')+'</td></tr>';
2604 27 Aug 14 nicklas 89     }
2604 27 Aug 14 nicklas 90     numConsentWithoutDate = numCases - numMissingConsent;
2604 27 Aug 14 nicklas 91
2604 27 Aug 14 nicklas 92     previewTitle.innerHTML = numCases + ' Samples = ' + numConsentWithoutDate + ' unknown date (' + numYesConsent + ' Yes, ' + numNoConsent + ' No, ' + numNotAskedConsent + ' Not asked) + ' + numMissingConsent + ' missing consent';
2604 27 Aug 14 nicklas 93     previewList.innerHTML = '<table>'+html+'</table>';
2604 27 Aug 14 nicklas 94     Doc.show('previewWrapper');
2604 27 Aug 14 nicklas 95   }
2604 27 Aug 14 nicklas 96
2604 27 Aug 14 nicklas 97   return xport;
2604 27 Aug 14 nicklas 98 }();
2604 27 Aug 14 nicklas 99
2604 27 Aug 14 nicklas 100 Doc.onLoad(Xport.initPage);
2604 27 Aug 14 nicklas 101