extensions/net.sf.basedb.meludi/trunk/resources/sampleproc/extraction_protocol.js

Code
Comments
Other
Rev Date Author Line
3176 06 Mar 15 olle 1 var ExtractionProtocol = function()
3176 06 Mar 15 olle 2 {
3176 06 Mar 15 olle 3   var ep = {};
3176 06 Mar 15 olle 4   var debug = 0;
3176 06 Mar 15 olle 5   
3210 26 Mar 15 olle 6   ep.TITLE = 'MeLuDI';
3176 06 Mar 15 olle 7   var COLORS = ['blue', 'green', 'yellow', 'red'];
3176 06 Mar 15 olle 8   var nextColor = 0;
4128 26 Sep 16 olle 9   var projectName;
3176 06 Mar 15 olle 10   var meludiVersion;
3176 06 Mar 15 olle 11
3176 06 Mar 15 olle 12   // Page initialization
3176 06 Mar 15 olle 13   ep.initPage = function()
3176 06 Mar 15 olle 14   {
3176 06 Mar 15 olle 15     Buttons.addClickHandler('print-button', Wizard.goPrint);
3176 06 Mar 15 olle 16     var numItems = Data.get('page-data', 'numitems');
3176 06 Mar 15 olle 17     var submitInfoJsonStr = Data.get('page-data', 'submitinfo');
4128 26 Sep 16 olle 18     projectName = Data.get('page-data', 'projectname');
3176 06 Mar 15 olle 19     meludiVersion = Data.get('page-data', 'meludiversion');
3176 06 Mar 15 olle 20     ep.initializeProtocol(submitInfoJsonStr);
3176 06 Mar 15 olle 21   }
3176 06 Mar 15 olle 22
3176 06 Mar 15 olle 23   ep.initializeProtocol = function(submitInfoJsonStr)
3176 06 Mar 15 olle 24   {
3176 06 Mar 15 olle 25     var frm = document.forms['meludi'];
3176 06 Mar 15 olle 26
3176 06 Mar 15 olle 27     var submitInfo = JSON.parse(submitInfoJsonStr);
3180 17 Mar 15 olle 28     var docMode = submitInfo.docMode;
3176 06 Mar 15 olle 29     var itemInfo = submitInfo.items;
3432 29 Jun 15 olle 30     var startListName = submitInfo.startListName;
3501 21 Sep 15 olle 31     var isolationDate = submitInfo.isolationDate;
3501 21 Sep 15 olle 32     var extractionOperator = submitInfo.extractionOperator;
3501 21 Sep 15 olle 33
3501 21 Sep 15 olle 34     // Specimen reagents
3501 21 Sep 15 olle 35     var xyleneSpecimen = submitInfo.xyleneSpecimen;
3501 21 Sep 15 olle 36     var etoh995Specimen = submitInfo.etoh995Specimen;
3501 21 Sep 15 olle 37     var bufferPkdSpecimen = submitInfo.bufferPkdSpecimen;
3501 21 Sep 15 olle 38     var bufferAtlSpecimen = submitInfo.bufferAtlSpecimen;
3501 21 Sep 15 olle 39     var proteinaseKSpecimen = submitInfo.proteinaseKSpecimen;
3501 21 Sep 15 olle 40     var rnaseASpecimen = submitInfo.rnaseASpecimen;
3501 21 Sep 15 olle 41
3501 21 Sep 15 olle 42     // QIAcube
3501 21 Sep 15 olle 43     var qiacubeDate = submitInfo.qiacubeDate;
3176 06 Mar 15 olle 44     var qiacubeOperator = submitInfo.qiacubeOperator;
3501 21 Sep 15 olle 45     var qiacubeRunNo = submitInfo.qiacubeRunNo;
3176 06 Mar 15 olle 46     var allPrepFfpeKit = submitInfo.allPrepFfpeKit;
3501 21 Sep 15 olle 47     var etoh995 = submitInfo.etoh995;
3501 21 Sep 15 olle 48     var bufferRlt = submitInfo.bufferRlt;
3501 21 Sep 15 olle 49     var bufferFrn = submitInfo.bufferFrn;
3501 21 Sep 15 olle 50     var bufferRpe = submitInfo.bufferRpe;
3501 21 Sep 15 olle 51     var bufferAl = submitInfo.bufferAl;
3501 21 Sep 15 olle 52     var bufferAw1 = submitInfo.bufferAw1;
3501 21 Sep 15 olle 53     var bufferAw2 = submitInfo.bufferAw2;
3501 21 Sep 15 olle 54     var bufferAte = submitInfo.bufferAte;
3501 21 Sep 15 olle 55     var bufferRdd = submitInfo.bufferRdd;
3501 21 Sep 15 olle 56     var rnaseFreeWater = submitInfo.rnaseFreeWater;
3436 02 Jul 15 olle 57     var dnaseMix = submitInfo.dnaseMix;
3501 21 Sep 15 olle 58     var rneasyMinEluteSpinColumn = submitInfo.rneasyMinEluteSpinColumn;
3501 21 Sep 15 olle 59     var qiaampMinEluteSpinColumn = submitInfo.qiaampMinEluteSpinColumn;
3501 21 Sep 15 olle 60
3501 21 Sep 15 olle 61     // Quality control reagents
3324 11 May 15 olle 62     var kapaSybrFast = submitInfo.kapaSybrFast;
3324 11 May 15 olle 63     var qualityControlPrimersQcpRgt = submitInfo.qualityControlPrimersQcpRgt;
3438 03 Jul 15 olle 64     var qualityControlTemplateQct = submitInfo.qualityControlTemplateQct;
3324 11 May 15 olle 65     var qubitDnaHighSens = submitInfo.qubitDnaHighSens;
3324 11 May 15 olle 66     var qubitDnaBroadRange = submitInfo.qubitDnaBroadRange;
3501 21 Sep 15 olle 67
3501 21 Sep 15 olle 68     // Various
3180 17 Mar 15 olle 69     var dnaDefaultVolume = submitInfo.dnaDefaultVolume;
3176 06 Mar 15 olle 70     var dnaProtocolName = submitInfo.dnaProtocolName;
3176 06 Mar 15 olle 71     var rnaProtocolName = submitInfo.rnaProtocolName;
3329 11 May 15 olle 72     var protocolName = submitInfo.extractionProtocolName;
3329 11 May 15 olle 73     //var protocolVersionNo = submitInfo.protocolVersionNo;
3329 11 May 15 olle 74     var protocolVersionNo = '1.0';
3199 19 Mar 15 olle 75     var protocolPreviewFlag = submitInfo.protocolPreviewFlag;
3176 06 Mar 15 olle 76     var numQiacubeItems = itemInfo.length;
3176 06 Mar 15 olle 77
3176 06 Mar 15 olle 78     // Header data
3336 13 May 15 olle 79     var docModeText = 'Protocol';
3180 17 Mar 15 olle 80     if (docMode && docMode == 'report')
3180 17 Mar 15 olle 81     {
3180 17 Mar 15 olle 82       docModeText = 'Report';
3180 17 Mar 15 olle 83     }
3176 06 Mar 15 olle 84     if (protocolVersionNo == null || protocolVersionNo == '')
3176 06 Mar 15 olle 85     {
3176 06 Mar 15 olle 86       protocolVersionNo = '?';
3176 06 Mar 15 olle 87     }
3199 19 Mar 15 olle 88     var protocolPreviewText = '';
3199 19 Mar 15 olle 89     if (protocolPreviewFlag != null && protocolPreviewFlag == 'true')
3199 19 Mar 15 olle 90     {
3203 20 Mar 15 olle 91       protocolPreviewText = ' <i>(preview)</i>';
3199 19 Mar 15 olle 92     }
3501 21 Sep 15 olle 93 /*
3336 13 May 15 olle 94     var headerText = 'Lab Tracking ' + docModeText + ' for Allprep isolation v' + protocolVersionNo + protocolPreviewText + ' <span class="meludi">' + ExtractionProtocol.TITLE + ' ' + meludiVersion + '</span>';
3501 21 Sep 15 olle 95 */
3501 21 Sep 15 olle 96     var headerText = 'Lab Tracking ' + docModeText + ' for FFPE extraction v' + protocolVersionNo + protocolPreviewText + ' <span class="meludi">' + ExtractionProtocol.TITLE + ' ' + meludiVersion + '</span>';
3336 13 May 15 olle 97     Doc.element('allprepLabTrackingProtocolHeader').innerHTML = headerText;
3501 21 Sep 15 olle 98 /*
3336 13 May 15 olle 99     Doc.element('allprepLabTrackingProtocolHeader2').innerHTML = protocolName;
3501 21 Sep 15 olle 100 */
3501 21 Sep 15 olle 101
4128 26 Sep 16 olle 102     Doc.element('projectnameid').innerHTML = Strings.encodeTags(projectName);
3432 29 Jun 15 olle 103     Doc.element('startlistid').innerHTML = Strings.encodeTags(startListName);
3501 21 Sep 15 olle 104
3180 17 Mar 15 olle 105     Doc.element('isolationdate').innerHTML = Strings.encodeTags(isolationDate);
3501 21 Sep 15 olle 106     Doc.element('operator').innerHTML = Strings.encodeTags(extractionOperator);
3501 21 Sep 15 olle 107     Doc.element('extractionprotocol').innerHTML = Strings.encodeTags(protocolName);
3501 21 Sep 15 olle 108
3501 21 Sep 15 olle 109     // Specimen reagents
3501 21 Sep 15 olle 110     Doc.element('xyleneSpecimen').innerHTML = Strings.encodeTags(xyleneSpecimen);
3501 21 Sep 15 olle 111     Doc.element('etoh995Specimen').innerHTML = Strings.encodeTags(etoh995Specimen);
3501 21 Sep 15 olle 112     Doc.element('bufferPkdSpecimen').innerHTML = Strings.encodeTags(bufferPkdSpecimen);
3501 21 Sep 15 olle 113     Doc.element('bufferAtlSpecimen').innerHTML = Strings.encodeTags(bufferAtlSpecimen);
3501 21 Sep 15 olle 114     Doc.element('proteinaseKSpecimen').innerHTML = Strings.encodeTags(proteinaseKSpecimen);
3501 21 Sep 15 olle 115     Doc.element('rnaseASpecimen').innerHTML = Strings.encodeTags(rnaseASpecimen);
3501 21 Sep 15 olle 116
3501 21 Sep 15 olle 117     // QIAcube
3501 21 Sep 15 olle 118     Doc.element('qiacubeDate').innerHTML = Strings.encodeTags(qiacubeDate);
3501 21 Sep 15 olle 119     //Doc.element('qiacubeRunNo').innerHTML = Strings.encodeTags(qiacubeRunNo);
3501 21 Sep 15 olle 120     Doc.element('qiacubeOperator').innerHTML = Strings.encodeTags(qiacubeOperator);
3501 21 Sep 15 olle 121     Doc.element('allPrepFfpeKit').innerHTML = Strings.encodeTags(allPrepFfpeKit);
3501 21 Sep 15 olle 122     Doc.element('etoh995').innerHTML = Strings.encodeTags(etoh995);
3501 21 Sep 15 olle 123     Doc.element('bufferRlt').innerHTML = Strings.encodeTags(bufferRlt);
3501 21 Sep 15 olle 124     Doc.element('bufferFrn').innerHTML = Strings.encodeTags(bufferFrn);
3501 21 Sep 15 olle 125     Doc.element('bufferRpe').innerHTML = Strings.encodeTags(bufferRpe);
3501 21 Sep 15 olle 126     Doc.element('bufferAl').innerHTML = Strings.encodeTags(bufferAl);
3501 21 Sep 15 olle 127     Doc.element('bufferAw1').innerHTML = Strings.encodeTags(bufferAw1);
3501 21 Sep 15 olle 128     Doc.element('bufferAw2').innerHTML = Strings.encodeTags(bufferAw2);
3501 21 Sep 15 olle 129     Doc.element('bufferAte').innerHTML = Strings.encodeTags(bufferAte);
3501 21 Sep 15 olle 130     Doc.element('bufferRdd').innerHTML = Strings.encodeTags(bufferRdd);
3501 21 Sep 15 olle 131     Doc.element('rnaseFreeWater').innerHTML = Strings.encodeTags(rnaseFreeWater);
3501 21 Sep 15 olle 132     Doc.element('dnaseMix').innerHTML = Strings.encodeTags(dnaseMix);
3501 21 Sep 15 olle 133     Doc.element('rneasyMinEluteSpinColumn').innerHTML = Strings.encodeTags(rneasyMinEluteSpinColumn);
3501 21 Sep 15 olle 134     Doc.element('qiaampMinEluteSpinColumn').innerHTML = Strings.encodeTags(qiaampMinEluteSpinColumn);
3501 21 Sep 15 olle 135
3501 21 Sep 15 olle 136     // Quality control reagents
3501 21 Sep 15 olle 137     Doc.element('kapaSybrFast').innerHTML = Strings.encodeTags(kapaSybrFast);
3501 21 Sep 15 olle 138     Doc.element('qualityControlPrimersQcpRgt').innerHTML = Strings.encodeTags(qualityControlPrimersQcpRgt);
3501 21 Sep 15 olle 139     Doc.element('qualityControlTemplateQct').innerHTML = Strings.encodeTags(qualityControlTemplateQct);
3291 30 Apr 15 olle 140 /*
3501 21 Sep 15 olle 141     Doc.element('qubitDnaHighSens').innerHTML = Strings.encodeTags(qubitDnaHighSens);
3501 21 Sep 15 olle 142 */
3501 21 Sep 15 olle 143     Doc.element('qubitDnaBroadRange').innerHTML = Strings.encodeTags(qubitDnaBroadRange);
3501 21 Sep 15 olle 144
3501 21 Sep 15 olle 145
3501 21 Sep 15 olle 146     //Doc.element('ffpeDnaRnaKitLotNo').innerHTML = Strings.encodeTags(allPrepFfpeKit);
3501 21 Sep 15 olle 147     //Doc.element('proteinaseKLotNo').innerHTML = Strings.encodeTags(proteinaseKSpecimen);
3501 21 Sep 15 olle 148     //Doc.element('dnaseMixLotNo').innerHTML = Strings.encodeTags(dnaseMix);
3501 21 Sep 15 olle 149     //Doc.element('kapaSybrFastLotNo').innerHTML = Strings.encodeTags(kapaSybrFast);
3501 21 Sep 15 olle 150     //Doc.element('qualityControlPrimersQcpRgtNo').innerHTML = Strings.encodeTags(qualityControlPrimersQcpRgt);
3501 21 Sep 15 olle 151     //Doc.element('qualityControlTemplateQctLotNo').innerHTML = Strings.encodeTags(qualityControlTemplateQct);
3501 21 Sep 15 olle 152     //Doc.element('qubitDnaHighSensLotNo').innerHTML = Strings.encodeTags(qubitDnaHighSens);
3501 21 Sep 15 olle 153     //Doc.element('qubitDnaBroadRangeLotNo').innerHTML = Strings.encodeTags(qubitDnaBroadRange);
3501 21 Sep 15 olle 154 /*
3180 17 Mar 15 olle 155     if (dnaDefaultVolume)
3176 06 Mar 15 olle 156     {
3180 17 Mar 15 olle 157       Doc.element('dnaElutionVolume').innerHTML = ep.encodeFloatTags(dnaDefaultVolume) + ' Âµl';
3176 06 Mar 15 olle 158     }
3291 30 Apr 15 olle 159 */
3176 06 Mar 15 olle 160
3176 06 Mar 15 olle 161     // Item data
3176 06 Mar 15 olle 162     var accumItemNo = 0;
3176 06 Mar 15 olle 163     accumItemNo = tableRowsForItems(accumItemNo, itemInfo, 'Item', 'item');
3176 06 Mar 15 olle 164     accumItemNo = tableRowForOptionalCounterbalanceItem(accumItemNo, itemInfo, 'Item', 'item');
3176 06 Mar 15 olle 165
3176 06 Mar 15 olle 166     Doc.show('all-protocol');
3176 06 Mar 15 olle 167   }
3176 06 Mar 15 olle 168   
3176 06 Mar 15 olle 169   function tableRowsForItems(
3176 06 Mar 15 olle 170     accumItemNo,
3176 06 Mar 15 olle 171     itemJsonArr,
3176 06 Mar 15 olle 172     itemType,
3176 06 Mar 15 olle 173     itemTypeVarName)
3176 06 Mar 15 olle 174   {
3176 06 Mar 15 olle 175     // Table item row
3176 06 Mar 15 olle 176     var html = '';
3176 06 Mar 15 olle 177     if (itemJsonArr && itemJsonArr.length > 0)
3176 06 Mar 15 olle 178     {
3176 06 Mar 15 olle 179       for (var i = 0; i < itemJsonArr.length; i++)
3176 06 Mar 15 olle 180       {
3176 06 Mar 15 olle 181         var item = itemJsonArr[i];
3176 06 Mar 15 olle 182 /*
3176 06 Mar 15 olle 183         var storageId = '-';
3176 06 Mar 15 olle 184         var storagePosition = '-';
3176 06 Mar 15 olle 185 */
3176 06 Mar 15 olle 186         var qiacubePosition = '-';
3176 06 Mar 15 olle 187         var platePos = '-';
3276 29 Apr 15 olle 188         var rnaStorageBox = '-';
3176 06 Mar 15 olle 189         var rnaConc = null;
3276 29 Apr 15 olle 190         var dnaStorageBox = '-';
3176 06 Mar 15 olle 191         var dnaConc = null;
3176 06 Mar 15 olle 192         var dnaDeltaCt = null;
3176 06 Mar 15 olle 193         var specimenComment = null;
3176 06 Mar 15 olle 194         var rnaComment = null;
3176 06 Mar 15 olle 195         var dnaComment = null;
3176 06 Mar 15 olle 196         var comment = null;
3176 06 Mar 15 olle 197         if (item)
3176 06 Mar 15 olle 198         {
3176 06 Mar 15 olle 199 /*
3176 06 Mar 15 olle 200           storageId = ep.asBioPlateName(item.bioWell);
3176 06 Mar 15 olle 201           storagePosition = ep.asPureBioPlateLocation(item.bioWell);
3176 06 Mar 15 olle 202 */
3176 06 Mar 15 olle 203           qiacubePosition = item.qiacubePosition;
3293 30 Apr 15 olle 204
3293 30 Apr 15 olle 205           // RNA extract from specimen
3176 06 Mar 15 olle 206           var rna = item.rna;
3176 06 Mar 15 olle 207           if (rna)
3176 06 Mar 15 olle 208           {
3276 29 Apr 15 olle 209             //platePos = rna.well;
3276 29 Apr 15 olle 210             platePos = rna.nanoDropWell;
3276 29 Apr 15 olle 211             if (rna.bioWell)
3276 29 Apr 15 olle 212             {
3276 29 Apr 15 olle 213               rnaStorageBox = Strings.encodeTags(item.rna.bioWell.bioPlate.name + '[' + item.rna.bioWell.location + ']');
3276 29 Apr 15 olle 214             }
3176 06 Mar 15 olle 215             rnaConc = rna.ndConc;
3176 06 Mar 15 olle 216             rnaComment = rna.comment;
3176 06 Mar 15 olle 217           }
3176 06 Mar 15 olle 218
3293 30 Apr 15 olle 219           // DNA extract from specimen
3176 06 Mar 15 olle 220           var dna = item.dna;
3176 06 Mar 15 olle 221           if (dna)
3176 06 Mar 15 olle 222           {
3276 29 Apr 15 olle 223             if (dna.bioWell)
3276 29 Apr 15 olle 224             {
3276 29 Apr 15 olle 225               dnaStorageBox = Strings.encodeTags(item.dna.bioWell.bioPlate.name + '[' + item.dna.bioWell.location + ']');
3276 29 Apr 15 olle 226             }
3176 06 Mar 15 olle 227             dnaConc = dna.qubitConc;
3176 06 Mar 15 olle 228             dnaDeltaCt = dna.deltaCt;
3176 06 Mar 15 olle 229             dnaComment = dna.comment;
3176 06 Mar 15 olle 230           }
3293 30 Apr 15 olle 231
3293 30 Apr 15 olle 232           // Input RNA item storage location should be displayed in the RNA extract storage location column
3293 30 Apr 15 olle 233           if (ep.isRna(item) && item.bioWell != null)
3293 30 Apr 15 olle 234           {
3293 30 Apr 15 olle 235             rnaStorageBox = Strings.encodeTags(item.bioWell.bioPlate.name + '[' + item.bioWell.location + ']');
3293 30 Apr 15 olle 236           }
3293 30 Apr 15 olle 237
3293 30 Apr 15 olle 238           // Input DNA item storage location should be displayed in the DNA extract storage location column
3293 30 Apr 15 olle 239           if (ep.isDna(item) && item.bioWell != null)
3293 30 Apr 15 olle 240           {
3293 30 Apr 15 olle 241             dnaStorageBox = Strings.encodeTags(item.bioWell.bioPlate.name + '[' + item.bioWell.location + ']');
3293 30 Apr 15 olle 242           }
3176 06 Mar 15 olle 243           var specimenComment = item.comment;
3176 06 Mar 15 olle 244         }
3246 14 Apr 15 olle 245         if (item.operatorDeliveryComment)
3246 14 Apr 15 olle 246         {
3246 14 Apr 15 olle 247           comment = item.operatorDeliveryComment;
3246 14 Apr 15 olle 248         }
3176 06 Mar 15 olle 249         if (specimenComment)
3176 06 Mar 15 olle 250         {
3246 14 Apr 15 olle 251           if (comment)
3246 14 Apr 15 olle 252           {
3246 14 Apr 15 olle 253             comment += ' ';
3246 14 Apr 15 olle 254           }
3246 14 Apr 15 olle 255           else
3246 14 Apr 15 olle 256           {
3246 14 Apr 15 olle 257             comment = '';
3246 14 Apr 15 olle 258           }
3246 14 Apr 15 olle 259           comment += 'Specimen: ' + specimenComment;
3176 06 Mar 15 olle 260         }
3176 06 Mar 15 olle 261         if (rnaComment)
3176 06 Mar 15 olle 262         {
3176 06 Mar 15 olle 263           if (comment)
3176 06 Mar 15 olle 264           {
3176 06 Mar 15 olle 265             comment += ' ';
3176 06 Mar 15 olle 266           }
3176 06 Mar 15 olle 267           else
3176 06 Mar 15 olle 268           {
3176 06 Mar 15 olle 269             comment = '';
3176 06 Mar 15 olle 270           }
3176 06 Mar 15 olle 271           comment += 'RNA: ' + rnaComment;
3176 06 Mar 15 olle 272         }
3176 06 Mar 15 olle 273         if (dnaComment)
3176 06 Mar 15 olle 274         {
3176 06 Mar 15 olle 275           if (comment)
3176 06 Mar 15 olle 276           {
3176 06 Mar 15 olle 277             comment += ' ';
3176 06 Mar 15 olle 278           }
3176 06 Mar 15 olle 279           else
3176 06 Mar 15 olle 280           {
3176 06 Mar 15 olle 281             comment = '';
3176 06 Mar 15 olle 282           }
3176 06 Mar 15 olle 283           comment += 'DNA: ' + dnaComment;
3176 06 Mar 15 olle 284         }
3176 06 Mar 15 olle 285         //alert("tableRowsForItems(): i = " + i + " itemType = " + itemType + " name = " + item.name + " qiacubePosition = " + qiacubePosition + " platePos = " + platePos + " rnaConc = " + rnaConc + " dnaConc = " + dnaConc + " comment = " + comment);
3176 06 Mar 15 olle 286         // Create HTML code for table column with checkbox for marking destroyed items
3176 06 Mar 15 olle 287         // var selectedCheckboxHtml = '<td><b><div class=\"colorbox\"></div>Selected </b></td>';
3176 06 Mar 15 olle 288         // Insert item data in table columns
3176 06 Mar 15 olle 289         Doc.element('sample.'+accumItemNo).innerHTML = Strings.encodeTags(item.name);
3176 06 Mar 15 olle 290 /*
3176 06 Mar 15 olle 291         Doc.element('storageId.'+accumItemNo).innerHTML = Strings.encodeTags(storageId);
3176 06 Mar 15 olle 292         Doc.element('storagePosition.'+accumItemNo).innerHTML = Strings.encodeTags(storagePosition);
3176 06 Mar 15 olle 293 */
3176 06 Mar 15 olle 294         Doc.element('qiacubePosition.'+accumItemNo).innerHTML = Strings.encodeTags(qiacubePosition);
3176 06 Mar 15 olle 295         Doc.element('nanodropPlatePosition.'+accumItemNo).innerHTML = Strings.encodeTags(platePos);
3276 29 Apr 15 olle 296         Doc.element('rnaStorageBox.'+accumItemNo).innerHTML = Strings.encodeTags(rnaStorageBox);
3176 06 Mar 15 olle 297         Doc.element('rnaConc.'+accumItemNo).innerHTML = ep.encodeFloatTags(rnaConc);
3276 29 Apr 15 olle 298         Doc.element('dnaStorageBox.'+accumItemNo).innerHTML = Strings.encodeTags(dnaStorageBox);
3176 06 Mar 15 olle 299         Doc.element('dnaConc.'+accumItemNo).innerHTML = ep.encodeFloatTags(dnaConc);
3176 06 Mar 15 olle 300         Doc.element('deltaCt.'+accumItemNo).innerHTML = ep.encodeFloatTags(dnaDeltaCt);
3176 06 Mar 15 olle 301         Doc.element('remark.'+accumItemNo).innerHTML = Strings.encodeTags(comment);
3176 06 Mar 15 olle 302         
3176 06 Mar 15 olle 303         // Increment accumulated item number
3176 06 Mar 15 olle 304         accumItemNo++;
3176 06 Mar 15 olle 305       }
3176 06 Mar 15 olle 306     }
3176 06 Mar 15 olle 307     return accumItemNo;
3176 06 Mar 15 olle 308   }
3176 06 Mar 15 olle 309
3176 06 Mar 15 olle 310   function tableRowForOptionalCounterbalanceItem(
3176 06 Mar 15 olle 311     accumItemNo,
3176 06 Mar 15 olle 312     itemJsonArr,
3176 06 Mar 15 olle 313     itemType,
3176 06 Mar 15 olle 314     itemTypeVarName)
3176 06 Mar 15 olle 315   {
3176 06 Mar 15 olle 316     // Find number of QIAcube items
3176 06 Mar 15 olle 317     var lastQiacubeItem;
3176 06 Mar 15 olle 318     var numQiacubeItems = 0;
3176 06 Mar 15 olle 319     if (itemJsonArr && itemJsonArr.length > 0)
3176 06 Mar 15 olle 320     {
3176 06 Mar 15 olle 321       for (var i = 0; i < itemJsonArr.length; i++)
3176 06 Mar 15 olle 322       {
3176 06 Mar 15 olle 323         var item = itemJsonArr[i];
3176 06 Mar 15 olle 324         if (item)
3176 06 Mar 15 olle 325         {
3176 06 Mar 15 olle 326           var qiacubePosition = item.qiacubePosition;
3176 06 Mar 15 olle 327           if (qiacubePosition != null && qiacubePosition != '' && qiacubePosition != '-')
3176 06 Mar 15 olle 328           {
3176 06 Mar 15 olle 329             lastQiacubeItem = item;
3176 06 Mar 15 olle 330             numQiacubeItems++;
3176 06 Mar 15 olle 331           }
3176 06 Mar 15 olle 332         }
3176 06 Mar 15 olle 333       }
3176 06 Mar 15 olle 334     }
3176 06 Mar 15 olle 335     if (numQiacubeItems == 1 || numQiacubeItems == 11 || numQiacubeItems == 23)
3176 06 Mar 15 olle 336     {
3176 06 Mar 15 olle 337       // Table item row
3176 06 Mar 15 olle 338       var html = '';
3276 29 Apr 15 olle 339       var name = 'COUNTER-BALANCE';
3176 06 Mar 15 olle 340       var qiacubePosition = '-';
3176 06 Mar 15 olle 341       var comment = 'Reminder to use counterbalance';
3176 06 Mar 15 olle 342       var lastQiacubePos = lastQiacubeItem.qiacubePosition;
3176 06 Mar 15 olle 343       var lastQiacubePrefix = lastQiacubePos.substring(0,1);
3176 06 Mar 15 olle 344       if (numQiacubeItems == 1)
3176 06 Mar 15 olle 345       {
3176 06 Mar 15 olle 346         qiacubePosition = lastQiacubePrefix + '7';
3176 06 Mar 15 olle 347       }
3176 06 Mar 15 olle 348       else if (numQiacubeItems == 11)
3176 06 Mar 15 olle 349       {
3176 06 Mar 15 olle 350         qiacubePosition = lastQiacubePrefix + '12';
3176 06 Mar 15 olle 351       }
3176 06 Mar 15 olle 352       else if (numQiacubeItems == 23)
3176 06 Mar 15 olle 353       {
3176 06 Mar 15 olle 354         qiacubePosition = lastQiacubePrefix + '12';
3176 06 Mar 15 olle 355       }
3176 06 Mar 15 olle 356       // Create HTML code for table column with checkbox for marking destroyed items
3176 06 Mar 15 olle 357       // Insert item data in table columns
3176 06 Mar 15 olle 358       Doc.element('sample.'+accumItemNo).innerHTML = Strings.encodeTags(name);
3176 06 Mar 15 olle 359       Doc.element('qiacubePosition.'+accumItemNo).innerHTML = Strings.encodeTags(qiacubePosition);
3176 06 Mar 15 olle 360       Doc.element('nanodropPlatePosition.'+accumItemNo).innerHTML = Strings.encodeTags('-');
3276 29 Apr 15 olle 361       Doc.element('rnaStorageBox.'+accumItemNo).innerHTML = Strings.encodeTags('-');
3176 06 Mar 15 olle 362       Doc.element('rnaConc.'+accumItemNo).innerHTML = Strings.encodeTags('-');
3276 29 Apr 15 olle 363       Doc.element('dnaStorageBox.'+accumItemNo).innerHTML = Strings.encodeTags('-');
3176 06 Mar 15 olle 364       Doc.element('dnaConc.'+accumItemNo).innerHTML = Strings.encodeTags('-');
3176 06 Mar 15 olle 365       Doc.element('deltaCt.'+accumItemNo).innerHTML = Strings.encodeTags('-');
3176 06 Mar 15 olle 366       Doc.element('remark.'+accumItemNo).innerHTML = Strings.encodeTags(comment);
3176 06 Mar 15 olle 367         
3176 06 Mar 15 olle 368       // Increment accumulated item number
3176 06 Mar 15 olle 369       accumItemNo++;
3176 06 Mar 15 olle 370     }
3176 06 Mar 15 olle 371     // Table item row
3176 06 Mar 15 olle 372     return accumItemNo;
3176 06 Mar 15 olle 373   }
3176 06 Mar 15 olle 374
3293 30 Apr 15 olle 375   ep.isRna = function(item)
3293 30 Apr 15 olle 376   {
3293 30 Apr 15 olle 377     var isRna = false;
3293 30 Apr 15 olle 378     if (item != null)
3293 30 Apr 15 olle 379     {
3293 30 Apr 15 olle 380       var name = item.name;
3293 30 Apr 15 olle 381       if (name != null)
3293 30 Apr 15 olle 382       {
3293 30 Apr 15 olle 383         // Check if item name ends with ".r"
3293 30 Apr 15 olle 384         if (name.indexOf('.r') == (name.length - 2))
3293 30 Apr 15 olle 385         {
3293 30 Apr 15 olle 386           isRna = true;
3293 30 Apr 15 olle 387         }
3293 30 Apr 15 olle 388       }
3293 30 Apr 15 olle 389     }
3293 30 Apr 15 olle 390     return isRna;
3293 30 Apr 15 olle 391   }
3293 30 Apr 15 olle 392
3293 30 Apr 15 olle 393   ep.isDna = function(item)
3293 30 Apr 15 olle 394   {
3293 30 Apr 15 olle 395     var isDna = false;
3293 30 Apr 15 olle 396     if (item != null)
3293 30 Apr 15 olle 397     {
3293 30 Apr 15 olle 398       var name = item.name;
3293 30 Apr 15 olle 399       if (name != null)
3293 30 Apr 15 olle 400       {
3293 30 Apr 15 olle 401         // Check if item name ends with ".d"
3293 30 Apr 15 olle 402         if (name.indexOf('.d') == (name.length - 2))
3293 30 Apr 15 olle 403         {
3293 30 Apr 15 olle 404           isDna = true;
3293 30 Apr 15 olle 405         }
3293 30 Apr 15 olle 406       }
3293 30 Apr 15 olle 407     }
3293 30 Apr 15 olle 408     return isDna;
3293 30 Apr 15 olle 409   }
3293 30 Apr 15 olle 410
3176 06 Mar 15 olle 411   ep.encodeFloatTags = function(value)
3176 06 Mar 15 olle 412   {
3176 06 Mar 15 olle 413     var encodedValue = value;
3176 06 Mar 15 olle 414     if (!value)
3176 06 Mar 15 olle 415     {
3176 06 Mar 15 olle 416       encodedValue = Strings.encodeTags(value);
3176 06 Mar 15 olle 417     }
3176 06 Mar 15 olle 418     return encodedValue;
3176 06 Mar 15 olle 419   }
3176 06 Mar 15 olle 420
3176 06 Mar 15 olle 421   // A biowell as plate name
3176 06 Mar 15 olle 422   ep.asBioPlateName = function(well)
3176 06 Mar 15 olle 423   {
3176 06 Mar 15 olle 424     if (!well) return '';
3176 06 Mar 15 olle 425     var plate = well.bioPlate;
3176 06 Mar 15 olle 426     if (!plate) return '';
3176 06 Mar 15 olle 427     var text = plate.name;
3176 06 Mar 15 olle 428     return text;
3176 06 Mar 15 olle 429   }
3176 06 Mar 15 olle 430
3176 06 Mar 15 olle 431   // A biowell as the location
3176 06 Mar 15 olle 432   ep.asPureBioPlateLocation = function(well)
3176 06 Mar 15 olle 433   {
3176 06 Mar 15 olle 434     if (!well) return '';
3176 06 Mar 15 olle 435     var plate = well.bioPlate;
3176 06 Mar 15 olle 436     var text = well.location;
3176 06 Mar 15 olle 437     if (plate.storage)
3176 06 Mar 15 olle 438     {
3176 06 Mar 15 olle 439       var storage = plate.storage;
3176 06 Mar 15 olle 440       var tmp = [];
3176 06 Mar 15 olle 441       if (storage.name) tmp[tmp.length] = storage.name;
3176 06 Mar 15 olle 442       if (storage.section) tmp[tmp.length] = 'section: ' +storage.section;
3176 06 Mar 15 olle 443       if (storage.tray) tmp[tmp.length] = 'tray: ' +storage.tray;
3176 06 Mar 15 olle 444       if (storage.position) tmp[tmp.length] = 'position: ' +storage.position;
3176 06 Mar 15 olle 445       text = text + ' ' + tmp.join('; ');
3176 06 Mar 15 olle 446     }
3176 06 Mar 15 olle 447     return text;
3176 06 Mar 15 olle 448   }
3176 06 Mar 15 olle 449
3176 06 Mar 15 olle 450   return ep;
3176 06 Mar 15 olle 451 }();
3176 06 Mar 15 olle 452
3176 06 Mar 15 olle 453 Doc.onLoad(ExtractionProtocol.initPage);
3176 06 Mar 15 olle 454