2604 |
27 Aug 14 |
nicklas |
var Xport = function() |
2604 |
27 Aug 14 |
nicklas |
2 |
{ |
2604 |
27 Aug 14 |
nicklas |
var xport = {}; |
2604 |
27 Aug 14 |
nicklas |
var previewTitle; |
2604 |
27 Aug 14 |
nicklas |
var previewList; |
2604 |
27 Aug 14 |
nicklas |
6 |
|
2604 |
27 Aug 14 |
nicklas |
xport.initPage = function() |
2604 |
27 Aug 14 |
nicklas |
8 |
{ |
2604 |
27 Aug 14 |
nicklas |
previewTitle = Doc.element('previewTitle'); |
2604 |
27 Aug 14 |
nicklas |
previewList = Doc.element('previewList'); |
2604 |
27 Aug 14 |
nicklas |
11 |
|
2604 |
27 Aug 14 |
nicklas |
Buttons.addClickHandler('goexport', xport.goExport); |
2604 |
27 Aug 14 |
nicklas |
Buttons.addClickHandler('gopreview', xport.goPreview); |
2604 |
27 Aug 14 |
nicklas |
14 |
|
2604 |
27 Aug 14 |
nicklas |
Doc.show('step-1'); |
2604 |
27 Aug 14 |
nicklas |
Doc.show('gopreview'); |
2604 |
27 Aug 14 |
nicklas |
Doc.show('goexport'); |
2604 |
27 Aug 14 |
nicklas |
18 |
} |
2604 |
27 Aug 14 |
nicklas |
19 |
|
2604 |
27 Aug 14 |
nicklas |
xport.goPreview = function() |
2604 |
27 Aug 14 |
nicklas |
21 |
{ |
2604 |
27 Aug 14 |
nicklas |
xport.doExport(true); |
2604 |
27 Aug 14 |
nicklas |
23 |
} |
2604 |
27 Aug 14 |
nicklas |
24 |
|
2604 |
27 Aug 14 |
nicklas |
xport.goExport = function() |
2604 |
27 Aug 14 |
nicklas |
26 |
{ |
2604 |
27 Aug 14 |
nicklas |
xport.doExport(false); |
2604 |
27 Aug 14 |
nicklas |
28 |
} |
2604 |
27 Aug 14 |
nicklas |
29 |
|
2604 |
27 Aug 14 |
nicklas |
xport.doExport = function(preview) |
2604 |
27 Aug 14 |
nicklas |
31 |
{ |
2604 |
27 Aug 14 |
nicklas |
var frm = document.forms['reggie']; |
2604 |
27 Aug 14 |
nicklas |
var url = '../Export.servlet?ID='+App.getSessionId(); |
2604 |
27 Aug 14 |
nicklas |
url += '&cmd=ExportMissingSampleDataSampleList'; |
2604 |
27 Aug 14 |
nicklas |
url += '&stype='+frm.sampletype.value; |
2604 |
27 Aug 14 |
nicklas |
url += '&exportSubtype=1'; |
2604 |
27 Aug 14 |
nicklas |
url += '&exportPatientId=1'; |
3914 |
02 May 16 |
nicklas |
url += '&progressbar=export-missing-data-progress'; |
2604 |
27 Aug 14 |
nicklas |
39 |
|
3914 |
02 May 16 |
nicklas |
Wizard.showLoadingAnimation('Working...', 'export-missing-data-progress'); |
3914 |
02 May 16 |
nicklas |
Doc.hide('navigation'); |
3914 |
02 May 16 |
nicklas |
Doc.hide('previewWrapper'); |
3914 |
02 May 16 |
nicklas |
43 |
|
2604 |
27 Aug 14 |
nicklas |
if (preview) |
2604 |
27 Aug 14 |
nicklas |
45 |
{ |
2604 |
27 Aug 14 |
nicklas |
url += '&preview=1'; |
2604 |
27 Aug 14 |
nicklas |
Wizard.asyncJsonRequest(url, xport.onPreviewLoaded); |
2604 |
27 Aug 14 |
nicklas |
48 |
|
2604 |
27 Aug 14 |
nicklas |
49 |
} |
2604 |
27 Aug 14 |
nicklas |
else |
2604 |
27 Aug 14 |
nicklas |
51 |
{ |
2604 |
27 Aug 14 |
nicklas |
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 |
xport.onPreviewLoaded = function(response) |
2604 |
27 Aug 14 |
nicklas |
57 |
{ |
2604 |
27 Aug 14 |
nicklas |
Doc.show('navigation'); |
2604 |
27 Aug 14 |
nicklas |
var frm = document.forms['reggie']; |
2604 |
27 Aug 14 |
nicklas |
60 |
|
2604 |
27 Aug 14 |
nicklas |
var allLines = response.split('\n'); |
2604 |
27 Aug 14 |
nicklas |
var numCases = allLines.length - 2; // First line is a header line |
2604 |
27 Aug 14 |
nicklas |
var numSpecimen = 0; |
2604 |
27 Aug 14 |
nicklas |
var numNoSpecimen = 0; |
2604 |
27 Aug 14 |
nicklas |
65 |
|
2604 |
27 Aug 14 |
nicklas |
var html = '<tr><th>'+allLines[0].replace(/\t/g, '</th><th>')+'</th></tr>'; |
2604 |
27 Aug 14 |
nicklas |
// Check second column for the 'Subtype' value |
2604 |
27 Aug 14 |
nicklas |
var numNoConsent = 0; |
2604 |
27 Aug 14 |
nicklas |
var numMissingConsent = 0; |
2604 |
27 Aug 14 |
nicklas |
for (var i = 1 ; i <= numCases; i++) |
2604 |
27 Aug 14 |
nicklas |
71 |
{ |
2604 |
27 Aug 14 |
nicklas |
var line = allLines[i]; |
2604 |
27 Aug 14 |
nicklas |
var cols = line.split(/\t/); |
2604 |
27 Aug 14 |
nicklas |
var sampleSubtype = cols[1]; |
2604 |
27 Aug 14 |
nicklas |
if (sampleSubtype == 'Specimen') |
2604 |
27 Aug 14 |
nicklas |
76 |
{ |
2604 |
27 Aug 14 |
nicklas |
numSpecimen++; |
2604 |
27 Aug 14 |
nicklas |
78 |
} |
2604 |
27 Aug 14 |
nicklas |
else if (sampleSubtype == 'NoSpecimen') |
2604 |
27 Aug 14 |
nicklas |
80 |
{ |
2604 |
27 Aug 14 |
nicklas |
numNoSpecimen++; |
2604 |
27 Aug 14 |
nicklas |
82 |
} |
2604 |
27 Aug 14 |
nicklas |
var rowClass = ''; |
2604 |
27 Aug 14 |
nicklas |
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 |
var sampleTypes = frm.sampletype[frm.sampletype.selectedIndex].text; |
2604 |
27 Aug 14 |
nicklas |
previewTitle.innerHTML = 'Sample type(s) - ' + sampleTypes + ' (' + numCases + ')'; |
2604 |
27 Aug 14 |
nicklas |
if (sampleTypes == 'Specimen/No specimen') |
2604 |
27 Aug 14 |
nicklas |
90 |
{ |
2604 |
27 Aug 14 |
nicklas |
// Report the number of each subtype for 'Specimen/No specimen' |
2604 |
27 Aug 14 |
nicklas |
previewTitle.innerHTML = 'Sample type(s) - Specimen (' + numSpecimen + ')/No specimen (' + numNoSpecimen + ') Total (' + numCases + ')'; |
2604 |
27 Aug 14 |
nicklas |
93 |
} |
2604 |
27 Aug 14 |
nicklas |
previewList.innerHTML = '<table>'+html+'</table>'; |
2604 |
27 Aug 14 |
nicklas |
Doc.show('previewWrapper'); |
2604 |
27 Aug 14 |
nicklas |
96 |
} |
2604 |
27 Aug 14 |
nicklas |
97 |
|
2604 |
27 Aug 14 |
nicklas |
return xport; |
2604 |
27 Aug 14 |
nicklas |
99 |
}(); |
2604 |
27 Aug 14 |
nicklas |
100 |
|
2604 |
27 Aug 14 |
nicklas |
Doc.onLoad(Xport.initPage); |
2604 |
27 Aug 14 |
nicklas |
102 |
|