Changeset 5823


Ignore:
Timestamp:
Feb 4, 2020, 1:31:28 PM (3 years ago)
Author:
olle
Message:

Refs #1029. DNA/RNA Quantification wizard updated in an attempt to avoid Null pointer exceptions, and to give information, useful in creating routines for handling the problem items correctly in the future. Also, logging of Qiacube date strings in order to investigate cases, where the string does no represent a proper date:

  1. Java servlet class/file ExtractionServlet.java in src/net/sf/basedb/meludi/servlet/ updated:
    a. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetSourceItemListFromStartPlate" to avoid using a SpecimenTube item being equal to null for an item identified as a specimen based on the item name, but instead make an entry in the log file specifying the name of the item.
    b. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetSourceItemListFromStartItemList" to avoid using a SpecimenTube item being equal to null for an item identified as a specimen based on the item name, but instead make an entry in the log file specifying the name of the item.
    c. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetListOfItemsFromStartItemLists" to avoid using a SpecimenTube item being equal to null for an item identified as a specimen based on the item name, but instead make an entry in the log file specifying the name of the item.
    d. Protected method void doGet(HttpServletRequest req, HttpServletResponse resp) updated for command "GetNextQiacubeRunNo" to log name of String parameter "qiacubeDate", in order to investigate cases, where the string does no represent a proper date.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/net.sf.basedb.meludi/trunk/src/net/sf/basedb/meludi/servlet/ExtractionServlet.java

    r5744 r5823  
    424424            {
    425425              SpecimenTube s = SpecimenTube.findByTubeName(dc, itemName);
    426               s.loadBioPlateLocation();
    427               loadSpecimenInfo(dc, manager, s);
    428               jsonSpecimen.add(s.asJSONObject());
    429               JSONObject jsonSpec = s.asJSONObject();
    430               //jsonItems.add(s.asJSONObject());
    431               // Loading specimen extract data might decrease performance, only use when needed
    432               if (includeSpecimenExtracts)
     426              if (s != null)
    433427              {
    434                 String specQiacubePosition = null;
    435                 // Load optional data for Rna for specimen
    436                 String rnaName = itemName + ".r";
    437                 Rna r = Rna.findByName(dc, rnaName);
    438                 if (r != null)
     428                s.loadBioPlateLocation();
     429                loadSpecimenInfo(dc, manager, s);
     430                jsonSpecimen.add(s.asJSONObject());
     431                JSONObject jsonSpec = s.asJSONObject();
     432                //jsonItems.add(s.asJSONObject());
     433                // Loading specimen extract data might decrease performance, only use when needed
     434                if (includeSpecimenExtracts)
    439435                {
    440                   r.loadBioPlateLocation();
    441                   loadRnaInfo(dc, manager, r);
    442                   jsonRna.add(r.asJSONObject());
    443                   jsonSpec.put("rna", r.asJSONObject());
     436                  String specQiacubePosition = null;
     437                  // Load optional data for Rna for specimen
     438                  String rnaName = itemName + ".r";
     439                  Rna r = Rna.findByName(dc, rnaName);
     440                  if (r != null)
     441                  {
     442                    r.loadBioPlateLocation();
     443                    loadRnaInfo(dc, manager, r);
     444                    jsonRna.add(r.asJSONObject());
     445                    jsonSpec.put("rna", r.asJSONObject());
     446                  }
     447                 
     448                  // Load optional data for Dna for specimen
     449                  String dnaName = itemName + ".d";
     450                  Dna d = Dna.findByName(dc, dnaName);
     451                  if (d != null)
     452                  {
     453                    d.loadBioPlateLocation();
     454                    loadDnaInfo(dc, manager, d);
     455                    jsonDna.add(d.asJSONObject());
     456                    jsonSpec.put("dna", d.asJSONObject());
     457                  }
    444458                }
    445                
    446                 // Load optional data for Dna for specimen
    447                 String dnaName = itemName + ".d";
    448                 Dna d = Dna.findByName(dc, dnaName);
    449                 if (d != null)
    450                 {
    451                   d.loadBioPlateLocation();
    452                   loadDnaInfo(dc, manager, d);
    453                   jsonDna.add(d.asJSONObject());
    454                   jsonSpec.put("dna", d.asJSONObject());
    455                 }
     459                jsonItems.add(jsonSpec);               
    456460              }
    457               jsonItems.add(jsonSpec);
     461              else
     462              {
     463                System.out.println(new Date() + " ExtractionServlet::doGet(): cmd = \"" + cmd + "\" itemName = \"" + itemName + "\" SpecimenTube s = null.");
     464              }
    458465            }
    459466            else if (Meludi.itemIsRna(itemName))
     
    686693            {
    687694              SpecimenTube s = SpecimenTube.findByTubeName(dc, itemName);
    688               s.loadBioPlateLocation();
    689               loadSpecimenInfo(dc, manager, s);
    690               jsonSpecimen.add(s.asJSONObject());
    691               JSONObject jsonSpec = s.asJSONObject();
    692               //jsonItems.add(s.asJSONObject());
    693               // Loading specimen extract data might decrease performance, only use when needed
    694               if (includeSpecimenExtracts)
     695              if (s != null)
    695696              {
    696                 String specQiacubePosition = null;
    697                 // Load optional data for Rna for specimen
    698                 String rnaName = itemName + ".r";
    699                 Rna r = Rna.findByName(dc, rnaName);
    700                 if (r != null)
     697                s.loadBioPlateLocation();
     698                loadSpecimenInfo(dc, manager, s);
     699                jsonSpecimen.add(s.asJSONObject());
     700                JSONObject jsonSpec = s.asJSONObject();
     701                //jsonItems.add(s.asJSONObject());
     702                // Loading specimen extract data might decrease performance, only use when needed
     703                if (includeSpecimenExtracts)
    701704                {
    702                   r.loadBioPlateLocation();
    703                   loadRnaInfo(dc, manager, r);
    704                   jsonRna.add(r.asJSONObject());
    705                   jsonSpec.put("rna", r.asJSONObject());
     705                  String specQiacubePosition = null;
     706                  // Load optional data for Rna for specimen
     707                  String rnaName = itemName + ".r";
     708                  Rna r = Rna.findByName(dc, rnaName);
     709                  if (r != null)
     710                  {
     711                    r.loadBioPlateLocation();
     712                    loadRnaInfo(dc, manager, r);
     713                    jsonRna.add(r.asJSONObject());
     714                    jsonSpec.put("rna", r.asJSONObject());
     715                  }
     716                 
     717                  // Load optional data for Dna for specimen
     718                  String dnaName = itemName + ".d";
     719                  Dna d = Dna.findByName(dc, dnaName);
     720                  if (d != null)
     721                  {
     722                    d.loadBioPlateLocation();
     723                    loadDnaInfo(dc, manager, d);
     724                    jsonDna.add(d.asJSONObject());
     725                    jsonSpec.put("dna", d.asJSONObject());
     726                  }
    706727                }
    707                
    708                 // Load optional data for Dna for specimen
    709                 String dnaName = itemName + ".d";
    710                 Dna d = Dna.findByName(dc, dnaName);
    711                 if (d != null)
    712                 {
    713                   d.loadBioPlateLocation();
    714                   loadDnaInfo(dc, manager, d);
    715                   jsonDna.add(d.asJSONObject());
    716                   jsonSpec.put("dna", d.asJSONObject());
    717                 }
     728                jsonItems.add(jsonSpec);               
    718729              }
    719               jsonItems.add(jsonSpec);
     730              else
     731              {
     732                System.out.println(new Date() + " ExtractionServlet::doGet(): cmd = \"" + cmd + "\" itemName = \"" + itemName + "\" SpecimenTube s = null.");
     733              }
    720734            }
    721735            else if (Meludi.itemIsRna(itemName))
     
    853867            {
    854868              SpecimenTube s = SpecimenTube.findByTubeName(dc, itemName);
    855               s.loadBioPlateLocation();
    856               loadSpecimenInfo(dc, manager, s);
    857               jsonSpecimen.add(s.asJSONObject());
    858               JSONObject jsonSpec = s.asJSONObject();
    859               //jsonItems.add(s.asJSONObject());
    860               // Loading specimen extract data might decrease performance, only use when needed
    861               if (includeSpecimenExtracts)
     869              if (s != null)
    862870              {
    863                 String specQiacubePosition = null;
    864                 // Load optional data for Rna for specimen
    865                 String rnaName = itemName + ".r";
    866                 Rna r = Rna.findByName(dc, rnaName);
    867                 if (r != null)
     871                s.loadBioPlateLocation();
     872                loadSpecimenInfo(dc, manager, s);
     873                jsonSpecimen.add(s.asJSONObject());
     874                JSONObject jsonSpec = s.asJSONObject();
     875                //jsonItems.add(s.asJSONObject());
     876                // Loading specimen extract data might decrease performance, only use when needed
     877                if (includeSpecimenExtracts)
    868878                {
    869                   r.loadBioPlateLocation();
    870                   loadRnaInfo(dc, manager, r);
    871                   jsonRna.add(r.asJSONObject());
    872                   jsonSpec.put("rna", r.asJSONObject());
    873                 }
    874                
    875                 // Load optional data for Dna for specimen
    876                 String dnaName = itemName + ".d";
    877                 Dna d = Dna.findByName(dc, dnaName);
    878                 if (d != null)
    879                 {
    880                   boolean includeDna = true;
    881                   if (itemNotOnLibPlate)
     879                  String specQiacubePosition = null;
     880                  // Load optional data for Rna for specimen
     881                  String rnaName = itemName + ".r";
     882                  Rna r = Rna.findByName(dc, rnaName);
     883                  if (r != null)
    882884                  {
    883                     // Check if DNA extract has FPA child extracts
    884                     includeDna = dnaHasNoFpaChild(dc, d.getExtract());
    885                     // Check if DNA extracts marked for qPCR processing should be ignored
    886                     if (includeDna && ignoreQpcrBranch)
     885                    r.loadBioPlateLocation();
     886                    loadRnaInfo(dc, manager, r);
     887                    jsonRna.add(r.asJSONObject());
     888                    jsonSpec.put("rna", r.asJSONObject());
     889                  }
     890                 
     891                  // Load optional data for Dna for specimen
     892                  String dnaName = itemName + ".d";
     893                  Dna d = Dna.findByName(dc, dnaName);
     894                  if (d != null)
     895                  {
     896                    boolean includeDna = true;
     897                    if (itemNotOnLibPlate)
    887898                    {
    888                       // Ignore DNA extracts marked for qPCR processing
    889                       Boolean markedForQPcr = (Boolean) Annotationtype.QPCR_BRANCH.getAnnotationValue(dc, d.getExtract());
    890                       if (markedForQPcr != null && markedForQPcr)
     899                      // Check if DNA extract has FPA child extracts
     900                      includeDna = dnaHasNoFpaChild(dc, d.getExtract());
     901                      // Check if DNA extracts marked for qPCR processing should be ignored
     902                      if (includeDna && ignoreQpcrBranch)
    891903                      {
    892                         includeDna = false;
     904                        // Ignore DNA extracts marked for qPCR processing
     905                        Boolean markedForQPcr = (Boolean) Annotationtype.QPCR_BRANCH.getAnnotationValue(dc, d.getExtract());
     906                        if (markedForQPcr != null && markedForQPcr)
     907                        {
     908                          includeDna = false;
     909                        }
    893910                      }
    894911                    }
    895                   }
    896                   if (includeDna)
    897                   {
    898                     d.loadBioPlateLocation();
    899                     loadDnaInfo(dc, manager, d);
    900                     jsonDna.add(d.asJSONObject());
    901                     jsonSpec.put("dna", d.asJSONObject());
     912                    if (includeDna)
     913                    {
     914                      d.loadBioPlateLocation();
     915                      loadDnaInfo(dc, manager, d);
     916                      jsonDna.add(d.asJSONObject());
     917                      jsonSpec.put("dna", d.asJSONObject());
     918                    }
    902919                  }
    903920                }
     921                jsonItems.add(jsonSpec);               
    904922              }
    905               jsonItems.add(jsonSpec);
     923              else
     924              {
     925                System.out.println(new Date() + " ExtractionServlet::doGet(): cmd = \"" + cmd + "\" itemName = \"" + itemName + "\" SpecimenTube s = null.");
     926              }
    906927            }
    907928            else if (Meludi.itemIsRna(itemName))
     
    13661387          Get the next qiacube run number for the given date
    13671388        */
     1389        String qiacubeDateStr = req.getParameter("qiacubeDate");
     1390        System.out.println("ExtractionServlet::doGet(): cmd = \"" + cmd + "\" qiacubeDateStr = \"" + qiacubeDateStr + "\".");
    13681391        Date date = Meludi.CONVERTER_STRING_TO_DATE.convert(req.getParameter("qiacubeDate"));
    13691392        dc = sc.newDbControl();
Note: See TracChangeset for help on using the changeset viewer.