extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/plugins/release/NoWriter.java

Code
Comments
Other
Rev Date Author Line
5091 14 Nov 18 nicklas 1 package net.sf.basedb.reggie.plugins.release;
5091 14 Nov 18 nicklas 2
5091 14 Nov 18 nicklas 3 import org.json.simple.JSONArray;
5091 14 Nov 18 nicklas 4 import org.json.simple.JSONObject;
5091 14 Nov 18 nicklas 5
5091 14 Nov 18 nicklas 6 import net.sf.basedb.core.BioSource;
5091 14 Nov 18 nicklas 7 import net.sf.basedb.core.DbControl;
5091 14 Nov 18 nicklas 8 import net.sf.basedb.core.ItemSubtype;
5091 14 Nov 18 nicklas 9 import net.sf.basedb.reggie.JsonUtil;
5091 14 Nov 18 nicklas 10 import net.sf.basedb.reggie.dao.Subtype;
5091 14 Nov 18 nicklas 11
5091 14 Nov 18 nicklas 12 /**
5091 14 Nov 18 nicklas 13   Cohort writer implementation for the No and RetroNo items.
5091 14 Nov 18 nicklas 14   @since 4.21
5091 14 Nov 18 nicklas 15 */
5091 14 Nov 18 nicklas 16 public class NoWriter 
5091 14 Nov 18 nicklas 17   extends CohortWriter 
5091 14 Nov 18 nicklas 18 {
5091 14 Nov 18 nicklas 19   private final ItemSubtype noType;
5091 14 Nov 18 nicklas 20   private final ItemSubtype retroNoType;
5091 14 Nov 18 nicklas 21   
5091 14 Nov 18 nicklas 22   public NoWriter(DbControl dc, ReleaseWriterOptions options)
5091 14 Nov 18 nicklas 23   {
5091 14 Nov 18 nicklas 24     super(dc, options);
5091 14 Nov 18 nicklas 25     this.noType = Subtype.NO.get(dc);
5091 14 Nov 18 nicklas 26     this.retroNoType = Subtype.RETRO_NO.get(dc);
5091 14 Nov 18 nicklas 27   }
5091 14 Nov 18 nicklas 28   
5091 14 Nov 18 nicklas 29   @Override
5091 14 Nov 18 nicklas 30   public JSONArray toJSONObjects(CohortItem item)
5091 14 Nov 18 nicklas 31   {
5091 14 Nov 18 nicklas 32     BioSource no = item.getPatient().getItem();
5091 14 Nov 18 nicklas 33     ItemSubtype type = no.getItemSubtype();
5091 14 Nov 18 nicklas 34     if (!noType.equals(type) && !retroNoType.equals(type)) return null;
5091 14 Nov 18 nicklas 35     
5091 14 Nov 18 nicklas 36     JSONObject json = new JSONObject();
5091 14 Nov 18 nicklas 37     json.put("name", no.getExternalId());
5091 14 Nov 18 nicklas 38     json.put("type", no.getType().name());
5108 19 Nov 18 nicklas 39     json.put("subtype", noType.getName());  // Both "No" and "RetroNo" are exported as "No"
5091 14 Nov 18 nicklas 40     
5091 14 Nov 18 nicklas 41     return JsonUtil.asArray(json);
5091 14 Nov 18 nicklas 42   }
5091 14 Nov 18 nicklas 43
5091 14 Nov 18 nicklas 44 }