package open.dolphin.infomodel;
// Generated 2010/06/30 10:57:59 by Hibernate Tools 3.2.1.GA

import java.util.LinkedHashSet;
import java.util.Set;
import javax.persistence.Transient;

/**
 * 検査データ MEMO:マッピング  d_labo_module
 * リフレクションを多数含むため、メソッド名等を変更不可
 * LaboModuleValue generated by hbm2java
 */
public class LaboModuleValue extends KarteEntryBean {

    private String docId;//MEMO:Refrection
    private String registId;//MEMO:Refrection
    private String sampleTime;//サンプルタイム MEMO:Refrection
    private String registTime;//MEMO:Refrection
    private String reportTime;//MEMO:Refrection
    private String reportStatus;//MEMO:Refrection
    private String reportStatusCode;//MEMO:Refrection
    private String reportStatusCodeId;//MEMO:Refrection
    private String setName;//MEMO:Refrection
    private String setCode;//MEMO:Refrection
    private String setCodeId;//MEMO:Refrection
    private String clientFacility;//MEMO:Refrection
    private String clientFacilityCode;//MEMO:Refrection
    private String clientFacilityCodeId;//MEMO:Refrection
    private String laboratoryCenter;//MEMO:Refrection
    private String laboratoryCenterCode;//MEMO:Refrection
    private String laboratoryCenterCodeId;//MEMO:Refrection
    @Transient
    private String patientId;//患者ID
    @Transient
    private String patientIdType;
    @Transient
    private String patientIdTypeCodeSys;
    private Set<LaboSpecimenValue> laboSpecimens;

    /**
     *
     */
    public LaboModuleValue() {
    }

    /**
     * docIdのGetter
     * MEMO:Refrection
     * @return
     */
    public String getDocId() {
        return docId;
    }

    /**
     * docIdのSetter
     * MEMO:Refrection
     * @param id
     */
    public void setDocId(String id) {
        this.docId = id;
    }

    /**
     * clientFacilityのGetter
     * MEMO:Refrection
     * @return
     */
    public String getClientFacility() {
        return clientFacility;
    }

    /**
     * clientFacilityのSetter
     * MEMO:Refrection
     * @param clientFacility
     */
    public void setClientFacility(String clientFacility) {
        this.clientFacility = clientFacility;
    }

    /**
     * clientFacilityCodeのGetter
     * MEMO:Refrection
     * @return
     */
    public String getClientFacilityCode() {
        return clientFacilityCode;
    }

    /**
     * clientFacilityCodeのSetter
     * MEMO:Refrection
     * @param clientFacilityCode
     */
    public void setClientFacilityCode(String clientFacilityCode) {
        this.clientFacilityCode = clientFacilityCode;
    }

    /**
     * clientFacilityCodeIdのGetter
     * MEMO:Refrection
     * @return
     */
    public String getClientFacilityCodeId() {
        return clientFacilityCodeId;
    }

    /**
     * clientFacilityCodeIdのSetter
     * MEMO:Refrection
     * @param clientFacilityCodeId
     */
    public void setClientFacilityCodeId(String clientFacilityCodeId) {
        this.clientFacilityCodeId = clientFacilityCodeId;
    }

    /**
     * 患者IDのGetter
     * @return 患者ID
     */
    public String getPatientId() {
        return patientId;
    }

    /**
     * 患者IDのSetter
     * @param patientId 患者ID
     */
    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }

    /**
     * patientIdTypeのGetter
     * @return
     */
    public String getPatientIdType() {
        return patientIdType;
    }

    /**
     * patientIdTypeのSetter
     * @param patientIdType
     */
    public void setPatientIdType(String patientIdType) {
        this.patientIdType = patientIdType;
    }

    /**
     * patientIdTypeCodeSysのGetter
     * @return
     */
    public String getPatientIdTypeCodeSys() {
        return patientIdTypeCodeSys;
    }

    /**
     * patientIdTypeCodeSysのSetter
     * @param patientIdTypeCodeSys
     */
    public void setPatientIdTypeCodeSys(String patientIdTypeCodeSys) {
        this.patientIdTypeCodeSys = patientIdTypeCodeSys;
    }

//    public String getConfirmDate() {
//        return confirmDate;
//    }
//    
//    public void setConfirmDate(String confirmDate) {
//        this.confirmDate = confirmDate;
//    }
    /**
     * laboratoryCenterのGetter
     * MEMO:Refrection
     * @return
     */
    public String getLaboratoryCenter() {
        return laboratoryCenter;
    }

    /**
     * laboratoryCenterのSetter
     * MEMO:Refrection
     * @param laboratoryCenter
     */
    public void setLaboratoryCenter(String laboratoryCenter) {
        this.laboratoryCenter = laboratoryCenter;
    }

    /**
     * laboratoryCenterCodeのGetter
     * MEMO:Refrection
     * @return
     */
    public String getLaboratoryCenterCode() {
        return laboratoryCenterCode;
    }

    /**
     * laboratoryCenterCodeのSetter
     * MEMO:Refrection
     * @param laboratoryCenterCode
     */
    public void setLaboratoryCenterCode(String laboratoryCenterCode) {
        this.laboratoryCenterCode = laboratoryCenterCode;
    }

    /**
     * laboratoryCenterCodeIdのGetter
     * MEMO:Refrection
     * @return
     */
    public String getLaboratoryCenterCodeId() {
        return laboratoryCenterCodeId;
    }

    /**
     * laboratoryCenterCodeIdのSetter
     * MEMO:Refrection
     * @param laboratoryCenterCodeId
     */
    public void setLaboratoryCenterCodeId(String laboratoryCenterCodeId) {
        this.laboratoryCenterCodeId = laboratoryCenterCodeId;
    }

    /**
     * laboSpecimensのGetter
     * @return
     */
    public Set<LaboSpecimenValue> getLaboSpecimens() {
        return laboSpecimens;
    }

    /**
     * laboSpecimensのSetter
     * @param laboSpecimens
     */
    public void setLaboSpecimens(Set<LaboSpecimenValue> laboSpecimens) {
        this.laboSpecimens = laboSpecimens;
    }

    /**
     * laboSpecimensのAdder
     * @param specimen
     */
    public void addLaboSpecimen(LaboSpecimenValue specimen) {
        if (laboSpecimens == null) {
            laboSpecimens = new LinkedHashSet<LaboSpecimenValue>();
        }
        laboSpecimens.add(specimen);
    }

    /**
     * registIdのGetter
     * MEMO:Refrection
     * @return
     */
    public String getRegistId() {
        return registId;
    }

    /**
     * registIdのSetter
     * MEMO:Refrection
     * @param registId
     */
    public void setRegistId(String registId) {
        this.registId = registId;
    }

    /**
     * registTimeGetter
     * MEMO:Refrection
     * @return
     */
    public String getRegistTime() {
        return registTime;
    }

    /**
     * registTimeのSetter
     * MEMO:Refrection
     * @param registTime
     */
    public void setRegistTime(String registTime) {
        this.registTime = registTime;
    }

    /**
     * reportStatusのGetter
     * MEMO:Refrection
     * @return
     */
    public String getReportStatus() {
        return reportStatus;
    }

    /**
     * reportStatusのSetter
     * MEMO:Refrection
     * @param reportStatus
     */
    public void setReportStatus(String reportStatus) {
        this.reportStatus = reportStatus;
    }

    /**
     * reportStatusCodeのGetter
     * MEMO:Refrection
     * @return
     */
    public String getReportStatusCode() {
        return reportStatusCode;
    }

    /**
     * reportStatusCodeのSetter
     * MEMO:Refrection
     * @param reportStatusCode
     */
    public void setReportStatusCode(String reportStatusCode) {
        this.reportStatusCode = reportStatusCode;
    }

    /**
     * reportStatusCodeIdのGetter
     * MEMO:Refrection
     * @return
     */
    public String getReportStatusCodeId() {
        return reportStatusCodeId;
    }

    /**
     * reportStatusCodeIdのSetter
     * MEMO:Refrection
     * @param reportStatusCodeId
     */
    public void setReportStatusCodeId(String reportStatusCodeId) {
        this.reportStatusCodeId = reportStatusCodeId;
    }

    /**
     * reportTimeのGetter
     * MEMO:Refrection
     * @return
     */
    public String getReportTime() {
        return reportTime;
    }

    /**
     * reportTimeのSetter
     * MEMO:Refrection
     * @param reportTime
     */
    public void setReportTime(String reportTime) {
        this.reportTime = reportTime;
    }

    /**
     * サンプルタイムのGetter
     * MEMO:Refrection
     * @return サンプルタイム
     */
    public String getSampleTime() {
        return sampleTime;
    }

    /**
     * サンプルタイムのSetter
     * MEMO:Refrection
     * @param sampleTime サンプルタイム
     */
    public void setSampleTime(String sampleTime) {
        this.sampleTime = sampleTime;
    }

    /**
     * setCodeのGetter
     * MEMO:Refrection
     * @return
     */
    public String getSetCode() {
        return setCode;
    }

    /**
     * setCodeのSetter
     * MEMO:Refrection
     * @param setCode
     */
    public void setSetCode(String setCode) {
        this.setCode = setCode;
    }

    /**
     * setCodeIdのGetter
     * MEMO:Refrection
     * @return
     */
    public String getSetCodeId() {
        return setCodeId;
    }

    /**
     * setCodeIdのSetter
     * MEMO:Refrection
     * @param setCodeId
     */
    public void setSetCodeId(String setCodeId) {
        this.setCodeId = setCodeId;
    }

    /**
     * setNameのGetter
     * MEMO:Refrection
     * @return
     */
    public String getSetName() {
        return setName;
    }

    /**
     * setNameのSetter
     * MEMO:Refrection
     * @param setName
     */
    public void setSetName(String setName) {
        this.setName = setName;
    }

    /**
     * サンプルタイムで比較する。
     * @param other
     * @return 比較値
     */
    @Override
    public int compareTo(Object other) {
        if (other != null && getClass() == other.getClass()) {
            String sampleTime1 = getSampleTime();
            String sampleTime2 = ((LaboModuleValue) other).getSampleTime();
            if (sampleTime1 != null && sampleTime2 != null) {
                return sampleTime1.compareTo(sampleTime2);
            } else {
                String cf1 = getConfirmDate();
                String cf2 = ((LaboModuleValue) other).getConfirmDate();
                return cf1.compareTo(cf2);
            }
        }
        return -1;
    }
}
