package org.molgenis.mutation.dto;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.molgenis.core.dto.PublicationDTO;
import org.molgenis.pheno.dto.ObservedValueDTO;
public class PatientSummaryDTO implements Comparable<PatientSummaryDTO>, Serializable
{
/* The serial version UID of this class. Needed for serialization. */
private static final long serialVersionUID = -8983436185205230071L;
private Integer patientId;
private String patientIdentifier;
private String patientName;
private String patientLocalId;
private String patientConsent;
private List<VariantDTO> variantDTOList;
private Integer gdnaStart; // for sorting
private Integer exonNumber; // for sorting
private String variantComment;
private Integer phenotypeId;
private String phenotypeMajor;
private String phenotypeSub;
private java.util.Date submissionDate;
private String submitterDepartment;
private String submitterInstitute;
private String submitterCity;
private String submitterCountry;
private List<PublicationDTO> publicationDTOList;
private List<ObservedValueDTO> observedValueDTOList;
private String pubmedURL;
public PatientSummaryDTO()
{
this.init();
}
private void init()
{
this.patientId = 0;
this.patientIdentifier = "";
this.patientName = "";
this.patientLocalId = "";
this.patientConsent = "";
this.variantDTOList = new ArrayList<VariantDTO>();
this.gdnaStart = 0;
this.exonNumber = 0;
this.variantComment = "";
this.phenotypeId = 0;
this.phenotypeMajor = "";
this.phenotypeSub = "";
this.submissionDate = new Date();
this.submitterDepartment = "";
this.submitterInstitute = "";
this.submitterCity = "";
this.submitterCountry = "";
this.publicationDTOList = new ArrayList<PublicationDTO>();
this.observedValueDTOList = new ArrayList<ObservedValueDTO>();
this.pubmedURL = "";
}
public Integer getPatientId()
{
return patientId;
}
public void setPatientId(Integer patientId)
{
this.patientId = patientId;
}
public String getPatientIdentifier()
{
return patientIdentifier;
}
public void setPatientIdentifier(String patientIdentifier)
{
this.patientIdentifier = patientIdentifier;
}
public String getPatientName()
{
return patientName;
}
public void setPatientName(String patientName)
{
this.patientName = patientName;
}
public String getPatientLocalId()
{
return patientLocalId;
}
public void setPatientLocalId(String patientLocalId)
{
this.patientLocalId = patientLocalId;
}
public String getPatientConsent()
{
return patientConsent;
}
public void setPatientConsent(String patientConsent)
{
this.patientConsent = patientConsent;
}
public List<VariantDTO> getVariantDTOList()
{
return variantDTOList;
}
public void setVariantDTOList(List<VariantDTO> variantDTOList)
{
this.variantDTOList = variantDTOList;
}
public Integer getGdnaStart()
{
return gdnaStart;
}
public void setGdnaStart(Integer gdnaStart)
{
this.gdnaStart = gdnaStart;
}
public Integer getExonNumber()
{
return exonNumber;
}
public void setExonNumber(Integer exonNumber)
{
this.exonNumber = exonNumber;
}
public String getVariantComment()
{
return variantComment;
}
public void setVariantComment(String variantComment)
{
this.variantComment = variantComment;
}
public Integer getPhenotypeId()
{
return phenotypeId;
}
public void setPhenotypeId(Integer phenotypeId)
{
this.phenotypeId = phenotypeId;
}
public String getPhenotypeMajor()
{
return phenotypeMajor;
}
public void setPhenotypeMajor(String phenotypeMajor)
{
this.phenotypeMajor = phenotypeMajor;
}
public String getPhenotypeSub()
{
return phenotypeSub;
}
public void setPhenotypeSub(String phenotypeSub)
{
this.phenotypeSub = phenotypeSub;
}
public java.util.Date getSubmissionDate()
{
return submissionDate;
}
public void setSubmissionDate(java.util.Date submissionDate)
{
this.submissionDate = submissionDate;
}
public String getSubmitterDepartment()
{
return submitterDepartment;
}
public void setSubmitterDepartment(String submitterDepartment)
{
this.submitterDepartment = submitterDepartment;
}
public String getSubmitterInstitute()
{
return submitterInstitute;
}
public void setSubmitterInstitute(String submitterInstitute)
{
this.submitterInstitute = submitterInstitute;
}
public String getSubmitterCity()
{
return submitterCity;
}
public void setSubmitterCity(String submitterCity)
{
this.submitterCity = submitterCity;
}
public String getSubmitterCountry()
{
return submitterCountry;
}
public void setSubmitterCountry(String submitterCountry)
{
this.submitterCountry = submitterCountry;
}
public List<PublicationDTO> getPublicationDTOList()
{
return publicationDTOList;
}
public void setPublicationDTOList(List<PublicationDTO> publicationDTOList)
{
this.publicationDTOList = publicationDTOList;
}
public String getPubmedURL()
{
return pubmedURL;
}
public void setPubmedURL(String pubmedURL)
{
this.pubmedURL = pubmedURL;
}
public List<ObservedValueDTO> getObservedValueDTOList()
{
return observedValueDTOList;
}
public void setObservedValueDTOList(List<ObservedValueDTO> observedValueDTOList)
{
this.observedValueDTOList = observedValueDTOList;
}
/*
* @Override public int compareTo(PatientSummaryDTO o) { if
* (CollectionUtils.isEmpty(this.getPublicationDTOList()) ||
* CollectionUtils.isEmpty(o.getPublicationDTOList())) return 0;
*
* if (StringUtils.isEmpty(this.getPublicationDTOList().get(0).getYear()) ||
* StringUtils.isEmpty(o.getPublicationDTOList().get(0).getYear())) return
* 0;
*
* Integer year1 =
* Integer.parseInt(this.getPublicationDTOList().get(0).getYear()); Integer
* year2 = Integer.parseInt(o.getPublicationDTOList().get(0).getYear());
*
* return year2.compareTo(year1); }
*/
@Override
public int compareTo(PatientSummaryDTO o)
{
if (CollectionUtils.isEmpty(this.getVariantDTOList())) return -1;
if (CollectionUtils.isEmpty(o.getVariantDTOList())) return 1;
Integer gdnaPosition1 = this.getVariantDTOList().get(0).getGdnaStart();
Integer gdnaPosition2 = o.getVariantDTOList().get(0).getGdnaStart();
if (gdnaPosition1.compareTo(gdnaPosition2) == 0)
{
if (this.getVariantDTOList().size() == 1) return -1;
else if (o.getVariantDTOList().size() == 1) return 1;
else
{
gdnaPosition1 = this.getVariantDTOList().get(1).getGdnaStart();
gdnaPosition2 = o.getVariantDTOList().get(1).getGdnaStart();
}
}
return gdnaPosition1.compareTo(gdnaPosition2) * -1; // gDNA position is
// descending
}
}