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

Code
Comments
Other
Rev Date Author Line
3940 16 May 16 nicklas 1 package net.sf.basedb.reggie.plugins.release;
3940 16 May 16 nicklas 2
3940 16 May 16 nicklas 3 import java.util.List;
3940 16 May 16 nicklas 4
4379 06 Mar 17 nicklas 5
4378 03 Mar 17 nicklas 6 import org.json.simple.JSONArray;
4371 02 Mar 17 nicklas 7 import org.json.simple.JSONObject;
4371 02 Mar 17 nicklas 8
3940 16 May 16 nicklas 9 import net.sf.basedb.core.BioSource;
3940 16 May 16 nicklas 10 import net.sf.basedb.core.DbControl;
3940 16 May 16 nicklas 11 import net.sf.basedb.core.Item;
5091 14 Nov 18 nicklas 12 import net.sf.basedb.core.ItemSubtype;
5091 14 Nov 18 nicklas 13 import net.sf.basedb.reggie.JsonUtil;
3940 16 May 16 nicklas 14 import net.sf.basedb.reggie.dao.Annotationtype;
5091 14 Nov 18 nicklas 15 import net.sf.basedb.reggie.dao.Subtype;
4380 06 Mar 17 nicklas 16 import net.sf.basedb.reggie.json.FilteredJSONArray;
4380 06 Mar 17 nicklas 17 import net.sf.basedb.util.filter.NotNullFilter;
3940 16 May 16 nicklas 18
3940 16 May 16 nicklas 19 /**
5091 14 Nov 18 nicklas 20   Cohort writer implementation for the Patient items.
3940 16 May 16 nicklas 21   @since 4.5
3940 16 May 16 nicklas 22 */
3940 16 May 16 nicklas 23 public class PatientWriter 
3940 16 May 16 nicklas 24   extends CohortWriter 
3940 16 May 16 nicklas 25 {
5091 14 Nov 18 nicklas 26   private final ItemSubtype patientType;
3940 16 May 16 nicklas 27   
5090 14 Nov 18 nicklas 28   public PatientWriter(DbControl dc, ReleaseWriterOptions options)
3940 16 May 16 nicklas 29   {
5090 14 Nov 18 nicklas 30     super(dc, options);
5091 14 Nov 18 nicklas 31     this.patientType = Subtype.PATIENT.get(dc);
3940 16 May 16 nicklas 32   }
3940 16 May 16 nicklas 33   
4371 02 Mar 17 nicklas 34   @Override
5091 14 Nov 18 nicklas 35   public JSONArray toJSONObjects(CohortItem item)
4371 02 Mar 17 nicklas 36   {
4371 02 Mar 17 nicklas 37     BioSource patient = item.getPatient().getItem();
5091 14 Nov 18 nicklas 38     ItemSubtype type = patient.getItemSubtype();
5091 14 Nov 18 nicklas 39     if (!patientType.equals(type)) return null;
4371 02 Mar 17 nicklas 40     
4371 02 Mar 17 nicklas 41     JSONObject json = new JSONObject();
5091 14 Nov 18 nicklas 42     json.put("name", patient.getExternalId());
4371 02 Mar 17 nicklas 43     json.put("type", patient.getType().name());
5108 19 Nov 18 nicklas 44     json.put("subtype", patientType.getName());
4371 02 Mar 17 nicklas 45     
4380 06 Mar 17 nicklas 46     JSONArray jsonAnnotations = new FilteredJSONArray(new NotNullFilter<>(false));
4474 27 Apr 17 nicklas 47     jsonAnnotations.add(item.getAnnotationJSON(Annotationtype.GENDER, patient, null));
4378 03 Mar 17 nicklas 48     json.put("annotations", jsonAnnotations);
4378 03 Mar 17 nicklas 49     
5091 14 Nov 18 nicklas 50     return JsonUtil.asArray(json);
4371 02 Mar 17 nicklas 51   }
4371 02 Mar 17 nicklas 52   
4378 03 Mar 17 nicklas 53   @Override
4469 26 Apr 17 nicklas 54   public List<CohortTypeDef> getTypeDefsInJSON()
4378 03 Mar 17 nicklas 55   {
4468 26 Apr 17 nicklas 56     DbControl dc = getDbControl();
4468 26 Apr 17 nicklas 57
4469 26 Apr 17 nicklas 58     CohortTypeDefFactory patFactory = new CohortTypeDefFactory(dc, Item.BIOSOURCE, "Patient");
4469 26 Apr 17 nicklas 59     patFactory.createAnnotationType(Annotationtype.GENDER);
4468 26 Apr 17 nicklas 60     
4468 26 Apr 17 nicklas 61     return patFactory.allCreated();
4378 03 Mar 17 nicklas 62   }
4378 03 Mar 17 nicklas 63
3940 16 May 16 nicklas 64 }