Changeset 2098


Ignore:
Timestamp:
Oct 23, 2013, 1:17:15 PM (9 years ago)
Author:
Nicklas Nordborg
Message:

Fixes #521: Add DNA and FlowThrough? information to Case summary page

Location:
extensions/net.sf.basedb.reggie/trunk
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • extensions/net.sf.basedb.reggie/trunk/resources/reports/case_summary.jsp

    r2083 r2098  
    560560  }
    561561
     562  var dna = consentOk ? response.dna : null;
     563  if (dna && dna.length > 0)
     564  {
     565    var truncateAt = TRUNCATE_SIZE[Math.min(dna.length-1, TRUNCATE_SIZE.length)];
     566    for (var i = 0; i < dna.length; i++)
     567    {
     568      var d = dna[i];
     569      addColumn('dna.name', makeLink('EXTRACT', d));
     570      addColumn('dna.registrationDate', formatDate(d.registrationDate));
     571      addColumn('dna.storageBox', asBioPlateLocation(d.bioWell));
     572      addColumn('dna.extractionDate', formatDate(d.extractionDate));
     573      addColumn('dna.extractionProtocol', makeLink('PROTOCOL', d.extractionProtocol, truncateAt));
     574      addColumn('dna.remainingQuantity', formatQuantity(d.remainingQuantity, null, ' µg'));
     575      addColumn('dna.originalQuantity', formatQuantity(d.originalQuantity, null, ' µg'));
     576      addColumn('dna.ndConc', formatQuantity(d.ndConc, null, ' ng/µl'));
     577      addColumn('dna.comment', truncate(d.comment, truncateAt));
     578    }
     579  }
     580  else
     581  {
     582    if (consentOk)
     583    {
     584      addColumn('dna.name', asNoInfo('No DNA information has been registered'));
     585      Main.hide('dna-details');
     586    }
     587    else
     588    {
     589      Main.hide('dna-info');
     590    }
     591  }
     592
     593  var ft = consentOk ? response.flowThrough : null;
     594  if (ft && ft.length > 0)
     595  {
     596    var truncateAt = TRUNCATE_SIZE[Math.min(ft.length-1, TRUNCATE_SIZE.length)];
     597    for (var i = 0; i < ft.length; i++)
     598    {
     599      var f = ft[i];
     600      addColumn('ft.name', makeLink('EXTRACT', f));
     601      addColumn('ft.registrationDate', formatDate(f.registrationDate));
     602      addColumn('ft.storageBox', asBioPlateLocation(f.bioWell));
     603      addColumn('ft.extractionDate', formatDate(f.extractionDate));
     604      addColumn('ft.extractionProtocol', makeLink('PROTOCOL', f.extractionProtocol, truncateAt));
     605      addColumn('ft.remainingQuantity', formatQuantity(f.remainingQuantity, null, ' µg'));
     606      addColumn('ft.originalQuantity', formatQuantity(f.originalQuantity, null, ' µg'));
     607      addColumn('ft.comment', truncate(f.comment, truncateAt));
     608    }
     609  }
     610  else
     611  {
     612    if (consentOk)
     613    {
     614      addColumn('ft.name', asNoInfo('No FlowThrough information has been registered'));
     615      Main.hide('ft-details');
     616    }
     617    else
     618    {
     619      Main.hide('ft-info');
     620    }
     621  }
     622
    562623 
    563624  var mrna = consentOk ? response.mrna : null;
     
    11261187          </div>
    11271188        </div>
     1189
     1190        <div class="info-section" id="dna-info">
     1191          <div>
     1192          <table class="info-table dynamic-columns">
     1193          <thead>
     1194            <tr id="dna.name">
     1195              <th>DNA</th>
     1196            </tr>
     1197          </thead>
     1198          <tbody id="dna-details">
     1199            <tr id="dna.registrationDate">
     1200              <th>Registration date</th>
     1201            </tr>
     1202            <tr id="dna.storageBox">
     1203              <th>Storage box</th>
     1204            </tr>
     1205            <tr id="dna.extractionDate">
     1206              <th>Extraction date</th>
     1207            </tr>
     1208            <tr id="dna.extractionProtocol">
     1209              <th>Protocol</th>
     1210            </tr>
     1211            <tr id="dna.remainingQuantity">
     1212              <th>Remaining quantity</th>
     1213            </tr>
     1214            <tr id="dna.originalQuantity">
     1215              <th>Original quantity</th>
     1216            </tr>
     1217            <tr id="dna.ndConc">
     1218              <th>ND Conc.</th>
     1219            </tr>
     1220            <tr id="dna.comment" class="comment dynamic-column">
     1221              <th>Comment</th>
     1222            </tr>
     1223          </tbody>
     1224          </table>
     1225          </div>
     1226        </div>
     1227
     1228        <div class="info-section" id="ft-info">
     1229          <div>
     1230          <table class="info-table dynamic-columns">
     1231          <thead>
     1232            <tr id="ft.name">
     1233              <th>FlowThrough</th>
     1234            </tr>
     1235          </thead>
     1236          <tbody id="ft-details">
     1237            <tr id="ft.registrationDate">
     1238              <th>Registration date</th>
     1239            </tr>
     1240            <tr id="ft.storageBox">
     1241              <th>Storage box</th>
     1242            </tr>
     1243            <tr id="ft.extractionDate">
     1244              <th>Extraction date</th>
     1245            </tr>
     1246            <tr id="ft.extractionProtocol">
     1247              <th>Protocol</th>
     1248            </tr>
     1249            <tr id="ft.remainingQuantity">
     1250              <th>Remaining quantity</th>
     1251            </tr>
     1252            <tr id="ft.originalQuantity">
     1253              <th>Original quantity</th>
     1254            </tr>
     1255            <tr id="ft.comment" class="comment dynamic-column">
     1256              <th>Comment</th>
     1257            </tr>
     1258          </tbody>
     1259          </table>
     1260          </div>
     1261        </div>
    11281262       
    11291263        <div class="info-section" id="mrna-info">
  • extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/servlet/CaseSummaryServlet.java

    r2083 r2098  
    3535import net.sf.basedb.reggie.dao.CDna;
    3636import net.sf.basedb.reggie.dao.Consent;
     37import net.sf.basedb.reggie.dao.Dna;
     38import net.sf.basedb.reggie.dao.FlowThrough;
    3739import net.sf.basedb.reggie.dao.Histology;
    3840import net.sf.basedb.reggie.dao.Library;
     
    196198        }
    197199
     200        List<Dna> dna = Dna.findByCaseName(dc, caseName);
     201        if (dna.size() > 0)
     202        {
     203          JSONArray jsonDna = new JSONArray();
     204          for (Dna d : dna)
     205          {
     206            loadDnaInfo(dc, d);
     207            jsonDna.add(d.asJSONObject());
     208          }
     209          json.put("dna", jsonDna);
     210        }
     211
     212        List<FlowThrough> ft = FlowThrough.findByCaseName(dc, caseName);
     213        if (ft.size() > 0)
     214        {
     215          JSONArray jsonFlowThrough = new JSONArray();
     216          for (FlowThrough f : ft)
     217          {
     218            loadFlowThroughInfo(dc, f);
     219            jsonFlowThrough.add(f.asJSONObject());
     220          }
     221          json.put("flowThrough", jsonFlowThrough);
     222        }
     223 
    198224        List<MRna> mrna = MRna.findByCaseName(dc, caseName);
    199225        if (mrna.size() > 0)
     
    503529  }
    504530
     531  private void loadDnaInfo(DbControl dc, Dna dna)
     532  {
     533    Extract e = dna.getExtract();
     534    BioMaterialEvent created = e.getCreationEvent();
     535   
     536    dna.loadBioPlateLocation();
     537    dna.setAnnotation("registrationDate", Reggie.CONVERTER_DATE_TO_STRING.convert(e.getEntryDate()));
     538    dna.setAnnotation("editable", e.hasPermission(Permission.WRITE));
     539    dna.setAnnotation("usedQuantity", created.getUsedQuantity((Extract)e.getParent()));
     540    dna.setAnnotation("extractionDate", Reggie.CONVERTER_DATE_TO_STRING.convert(created.getEventDate()));
     541    dna.setAnnotation("extractionProtocol", JsonUtil.getProtocolAsJSON(created.getProtocol()));
     542    dna.setAnnotation("originalQuantity", e.getOriginalQuantity());
     543    dna.setAnnotation("remainingQuantity", e.getRemainingQuantity());
     544    dna.setAnnotation("comment", e.getDescription());
     545    dna.loadAnnotations(dc, "ndConc", Annotationtype.ND_CONC, null);
     546  }
     547
     548  private void loadFlowThroughInfo(DbControl dc, FlowThrough ft)
     549  {
     550    Extract e = ft.getExtract();
     551    BioMaterialEvent created = e.getCreationEvent();
     552   
     553    ft.loadBioPlateLocation();
     554    ft.setAnnotation("registrationDate", Reggie.CONVERTER_DATE_TO_STRING.convert(e.getEntryDate()));
     555    ft.setAnnotation("editable", e.hasPermission(Permission.WRITE)); 
     556    ft.setAnnotation("usedQuantity", created.getUsedQuantity((Extract)e.getParent()));
     557    ft.setAnnotation("extractionDate", Reggie.CONVERTER_DATE_TO_STRING.convert(created.getEventDate()));
     558    ft.setAnnotation("extractionProtocol", JsonUtil.getProtocolAsJSON(created.getProtocol()));
     559    ft.setAnnotation("originalQuantity", e.getOriginalQuantity());
     560    ft.setAnnotation("remainingQuantity", e.getRemainingQuantity());
     561    ft.setAnnotation("comment", e.getDescription());
     562  }
     563
    505564  private void loadMRnaInfo(DbControl dc, MRna mrna)
    506565  {
Note: See TracChangeset for help on using the changeset viewer.