All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.gel.models.participant.avro.PedigreeMember Maven / Gradle / Ivy

/**
 * Autogenerated by Avro
 * 
 * DO NOT EDIT DIRECTLY
 */
package org.gel.models.participant.avro;  
@SuppressWarnings("all")
/** This defines a RD Participant (demographics and pedigree information) */
@org.apache.avro.specific.AvroGenerated
public class PedigreeMember extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
  public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"PedigreeMember\",\"namespace\":\"org.gel.models.participant.avro\",\"doc\":\"This defines a RD Participant (demographics and pedigree information)\",\"fields\":[{\"name\":\"pedigreeId\",\"type\":[\"null\",\"int\"],\"doc\":\"Numbering used to refer to each member of the pedigree\"},{\"name\":\"isProband\",\"type\":[\"null\",\"boolean\"],\"doc\":\"If this field is true, the member should be considered the proband of this family\"},{\"name\":\"participantId\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"participantId.  This is the human readable ID in GMS\"},{\"name\":\"participantQCState\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"ParticipantQCState\",\"doc\":\"QCState Status\",\"symbols\":[\"noState\",\"passedMedicalReviewReadyForInterpretation\",\"passedMedicalReviewNotReadyForInterpretation\",\"queryToGel\",\"queryToGMC\",\"failed\"]}],\"doc\":\"participantQCState\"},{\"name\":\"gelSuperFamilyId\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"superFamily id, this id is built as a concatenation of all\\n        families id in this superfamily i.e, fam10024_fam100457.\\n        NOTE: Retired for GMS\"},{\"name\":\"sex\",\"type\":{\"type\":\"enum\",\"name\":\"Sex\",\"doc\":\"Sex\",\"symbols\":[\"MALE\",\"FEMALE\",\"UNKNOWN\"]},\"doc\":\"Sex of the Participant\"},{\"name\":\"personKaryotypicSex\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"PersonKaryotipicSex\",\"doc\":\"Karyotipic Sex\",\"symbols\":[\"UNKNOWN\",\"XX\",\"XY\",\"XO\",\"XXY\",\"XXX\",\"XXYY\",\"XXXY\",\"XXXX\",\"XYY\",\"OTHER\"]}],\"doc\":\"Karyotypic sex of the participant as previously established or by looking at the GEL genome\"},{\"name\":\"yearOfBirth\",\"type\":[\"null\",\"int\"],\"doc\":\"Year of Birth\"},{\"name\":\"fatherId\",\"type\":[\"null\",\"int\"],\"doc\":\"refers to the pedigreeId of the father\\n        Id of the parent, if unknown then no parent is referenced. Parents may need to be entered even if no data is known\\n        about them in order to unambiguously reconstruct the pedigree.\"},{\"name\":\"motherId\",\"type\":[\"null\",\"int\"],\"doc\":\"refers to the pedigreeId of the mother\\n        Id of the parent, if unknown then no parent is referenced. Parents may need to be entered even if no data is known\\n        about them in order to unambiguously reconstruct the pedigree.\"},{\"name\":\"superFatherId\",\"type\":[\"null\",\"int\"],\"doc\":\"this id is built using the original familyId and the original pedigreeId of the father\\n        NOTE: retired for GMS\"},{\"name\":\"superMotherId\",\"type\":[\"null\",\"int\"],\"doc\":\"this id is built using the original familyId and the original pedigreeId of the mother\\n        NOTE: Retired for GMS\"},{\"name\":\"twinGroup\",\"type\":[\"null\",\"int\"],\"doc\":\"Each twin group is numbered, i.e. all members of a group of multiparous births receive the same number\"},{\"name\":\"monozygotic\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"TernaryOption\",\"doc\":\"This defines a yes/no/unknown case\",\"symbols\":[\"yes\",\"no\",\"unknown\"]}],\"doc\":\"A property of the twinning group but should be entered for all members\"},{\"name\":\"adoptedStatus\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"AdoptedStatus\",\"doc\":\"adoptedin means adopted into the family\\n    adoptedout means child belonged to the family and was adopted out\",\"symbols\":[\"notadopted\",\"adoptedin\",\"adoptedout\"]}],\"doc\":\"Adopted Status\"},{\"name\":\"lifeStatus\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"LifeStatus\",\"doc\":\"Life Status\",\"symbols\":[\"ALIVE\",\"ABORTED\",\"DECEASED\",\"UNBORN\",\"STILLBORN\",\"MISCARRIAGE\"]}],\"doc\":\"Life Status\"},{\"name\":\"consanguineousParents\",\"type\":[\"null\",\"TernaryOption\"],\"doc\":\"The parents of this participant has a consanguineous relationship\"},{\"name\":\"affectionStatus\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"AffectionStatus\",\"doc\":\"Affection Status\",\"symbols\":[\"UNAFFECTED\",\"AFFECTED\",\"UNCERTAIN\"]}],\"doc\":\"Affection Status\"},{\"name\":\"disorderList\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"Disorder\",\"doc\":\"This is quite GEL specific. This is the way is stored in ModelCatalogue and PanelApp.\\n    Currently all specific disease titles are assigned to a disease subgroup so really only specificDisease needs to be\\n    completed but we add the others for generality\",\"fields\":[{\"name\":\"diseaseGroup\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"This is Level2 Title for this disorder\"},{\"name\":\"diseaseSubGroup\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"This is Level3 Title for this disorder\"},{\"name\":\"specificDisease\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"This is Level4 Title for this disorder.\\n        In GMS, this is the clinicalIndicationFullName/clinicalIndicationCode.\"},{\"name\":\"ageOfOnset\",\"type\":[\"null\",\"float\"],\"doc\":\"Age of onset in years\"}]}}],\"doc\":\"Clinical Data (disorders). If the family member is unaffected as per affectionStatus then this list is empty.\"},{\"name\":\"hpoTermList\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"HpoTerm\",\"doc\":\"This defines an HPO term and its modifiers (possibly multiple)\\n    If HPO term presence is unknown we don't have a entry on the list\",\"fields\":[{\"name\":\"term\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"Identifier of the HPO term\"},{\"name\":\"termPresence\",\"type\":[\"null\",\"TernaryOption\"],\"doc\":\"This is whether the term is present in the participant (default is unknown) yes=term is present in participant,\\n        no=term is not present\"},{\"name\":\"hpoBuildNumber\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"hpoBuildNumber\"},{\"name\":\"modifiers\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"HpoTermModifiers\",\"doc\":\"HPO Modifiers\\n    For GMS, hpoModifierCode and hpoModifierVersion will be used\",\"fields\":[{\"name\":\"laterality\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"Laterality\",\"symbols\":[\"RIGHT\",\"UNILATERAL\",\"BILATERAL\",\"LEFT\"]}]},{\"name\":\"progression\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"Progression\",\"symbols\":[\"PROGRESSIVE\",\"NONPROGRESSIVE\"]}]},{\"name\":\"severity\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"Severity\",\"symbols\":[\"BORDERLINE\",\"MILD\",\"MODERATE\",\"SEVERE\",\"PROFOUND\"]}]},{\"name\":\"spatialPattern\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"SpatialPattern\",\"symbols\":[\"DISTAL\",\"GENERALIZED\",\"LOCALIZED\",\"PROXIMAL\"]}]},{\"name\":\"hpoModifierCode\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}]},{\"name\":\"hpoModifierVersion\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}]}]}}],\"doc\":\"Modifier associated with the HPO term\"},{\"name\":\"ageOfOnset\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"AgeOfOnset\",\"symbols\":[\"EMBRYONAL_ONSET\",\"FETAL_ONSET\",\"NEONATAL_ONSET\",\"INFANTILE_ONSET\",\"CHILDHOOD_ONSET\",\"JUVENILE_ONSET\",\"YOUNG_ADULT_ONSET\",\"LATE_ONSET\",\"MIDDLE_AGE_ONSET\"]}],\"doc\":\"Age of onset in months\"}]}}],\"doc\":\"Clinical Data (HPO terms)\"},{\"name\":\"ancestries\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Ancestries\",\"doc\":\"Ancestries, defined as Ethnic category(ies) and Chi-square test\",\"fields\":[{\"name\":\"mothersEthnicOrigin\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"EthnicCategory\",\"doc\":\"This is the list of ethnicities in ONS16\\n\\n    * `D`:  Mixed: White and Black Caribbean\\n    * `E`:  Mixed: White and Black African\\n    * `F`:  Mixed: White and Asian\\n    * `G`:  Mixed: Any other mixed background\\n    * `A`:  White: British\\n    * `B`:  White: Irish\\n    * `C`:  White: Any other White background\\n    * `L`:  Asian or Asian British: Any other Asian background\\n    * `M`:  Black or Black British: Caribbean\\n    * `N`:  Black or Black British: African\\n    * `H`:  Asian or Asian British: Indian\\n    * `J`:  Asian or Asian British: Pakistani\\n    * `K`:  Asian or Asian British: Bangladeshi\\n    * `P`:  Black or Black British: Any other Black background\\n    * `S`:  Other Ethnic Groups: Any other ethnic group\\n    * `R`:  Other Ethnic Groups: Chinese\\n    * `Z`:  Not stated\",\"symbols\":[\"D\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"L\",\"M\",\"N\",\"H\",\"J\",\"K\",\"P\",\"S\",\"R\",\"Z\"]}],\"doc\":\"Mother's Ethnic Origin\"},{\"name\":\"mothersOtherRelevantAncestry\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"Mother's Ethnic Origin Description\"},{\"name\":\"fathersEthnicOrigin\",\"type\":[\"null\",\"EthnicCategory\"],\"doc\":\"Father's Ethnic Origin\"},{\"name\":\"fathersOtherRelevantAncestry\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"F","ather's Ethnic Origin Description\"},{\"name\":\"chiSquare1KGenomesPhase3Pop\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"ChiSquare1KGenomesPhase3Pop\",\"doc\":\"Chi-square test for goodness of fit of this sample to 1000 Genomes Phase 3 populations\",\"fields\":[{\"name\":\"kgSuperPopCategory\",\"type\":{\"type\":\"enum\",\"name\":\"KgSuperPopCategory\",\"doc\":\"1K Genomes project super populations\",\"symbols\":[\"AFR\",\"AMR\",\"EAS\",\"EUR\",\"SAS\"]},\"doc\":\"1K Super Population\"},{\"name\":\"kgPopCategory\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"KgPopCategory\",\"doc\":\"1K Genomes project populations\",\"symbols\":[\"ACB\",\"ASW\",\"BEB\",\"CDX\",\"CEU\",\"CHB\",\"CHS\",\"CLM\",\"ESN\",\"FIN\",\"GBR\",\"GIH\",\"GWD\",\"IBS\",\"ITU\",\"JPT\",\"KHV\",\"LWK\",\"MSL\",\"MXL\",\"PEL\",\"PJL\",\"PUR\",\"STU\",\"TSI\",\"YRI\"]}],\"doc\":\"1K Population\"},{\"name\":\"chiSquare\",\"type\":\"double\",\"doc\":\"Chi-square test for goodness of fit of this sample to this 1000 Genomes Phase 3 population\"}]}}],\"doc\":\"Chi-square test for goodness of fit of this sample to 1000 Genomes Phase 3 populations\"}]}],\"doc\":\"Participant's ancestries, defined as Mother's/Father's Ethnic Origin and Chi-square test for goodness of fit of this sample to 1000 Genomes Phase 3 populations.\\n        NOTE: for GMS this field has been deprecated in favour of clinicalEthnicities\"},{\"name\":\"consentStatus\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"ConsentStatus\",\"doc\":\"Consent Status for 100k program\",\"fields\":[{\"name\":\"programmeConsent\",\"type\":\"boolean\",\"doc\":\"Is this individual consented to the programme?\\n        It could simply be a family member that is not consented but for whom affection status is known\",\"default\":false},{\"name\":\"primaryFindingConsent\",\"type\":\"boolean\",\"doc\":\"Consent for feedback of primary findings?\",\"default\":false},{\"name\":\"secondaryFindingConsent\",\"type\":\"boolean\",\"doc\":\"Consent for secondary finding lookup\",\"default\":false},{\"name\":\"carrierStatusConsent\",\"type\":\"boolean\",\"doc\":\"Consent for carrier status check?\",\"default\":false}]}],\"doc\":\"What has this participant consented to?\\n        A participant that has been consented to the programme should also have sequence data associated with them; however\\n        this needs to be programmatically checked\"},{\"name\":\"testConsentStatus\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"GmsConsentStatus\",\"doc\":\"Consent Status for GMS\",\"fields\":[{\"name\":\"programmeConsent\",\"type\":{\"type\":\"enum\",\"name\":\"GenericConsent\",\"doc\":\"clinicalEthnicities supersedes Ancestries in GMS\",\"symbols\":[\"yes\",\"no\",\"undefined\",\"not_applicable\"]},\"doc\":\"Is this individual consented to the programme? It could simply be a family member that is not consented\\n        but for whom affection status is known\"},{\"name\":\"primaryFindingConsent\",\"type\":\"GenericConsent\",\"doc\":\"Consent for feedback of primary findings?\\n        RD: Primary Findings\\n        Cancer: PrimaryFindings is somatic + pertinent germline findings\"},{\"name\":\"researchConsent\",\"type\":\"GenericConsent\",\"doc\":\"Research Consent\"},{\"name\":\"healthRelatedFindingConsent\",\"type\":\"GenericConsent\",\"doc\":\"Consent for secondary health related findings?\"},{\"name\":\"carrierStatusConsent\",\"type\":\"GenericConsent\",\"doc\":\"Consent for carrier status check?\"},{\"name\":\"pharmacogenomicsFindingConsent\",\"type\":\"GenericConsent\",\"doc\":\"Consent for pharmacogenomics consent as secondary findings?\"}]}],\"doc\":\"What has this participant consented in the context of a Genomic Test?\"},{\"name\":\"samples\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"GermlineSample\",\"doc\":\"A germline sample\",\"fields\":[{\"name\":\"sampleId\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"Sample identifier (e.g, LP00012645_5GH))\"},{\"name\":\"labSampleId\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"Lab sample identifier\"},{\"name\":\"LDPCode\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"LDP Code (Local Delivery Partner)\"},{\"name\":\"source\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"SampleSource\",\"doc\":\"The source of the sample\\n    NOTE: IN GMS, BONE_MARROW_ASPIRATE_TUMOUR_CELLS and BONE_MARROW_ASPIRATE_TUMOUR_SORTED_CELLS are deprecated as they have been separated into their respective biotypes\",\"symbols\":[\"AMNIOTIC_FLUID\",\"BLOOD\",\"BONE_MARROW\",\"BONE_MARROW_ASPIRATE_TUMOUR_CELLS\",\"BONE_MARROW_ASPIRATE_TUMOUR_SORTED_CELLS\",\"BUCCAL_SWAB\",\"CHORIONIC_VILLUS_SAMPLE\",\"FIBROBLAST\",\"FLUID\",\"FRESH_TISSUE_IN_CULTURE_MEDIUM\",\"OTHER\",\"SALIVA\",\"TISSUE\",\"TUMOUR\",\"URINE\"]}],\"doc\":\"Source of the sample\"},{\"name\":\"product\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"Product\",\"symbols\":[\"DNA\",\"RNA\"]}],\"doc\":\"Product of the sample\"},{\"name\":\"preparationMethod\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"PreparationMethod\",\"doc\":\"In 100K, preparation Method of sample\\n    NOTE: In GMS, this field is deprecated in favour of StorageMedium and Method\",\"symbols\":[\"ASPIRATE\",\"CD128_SORTED_CELLS\",\"CD138_SORTED_CELLS\",\"EDTA\",\"FF\",\"FFPE\",\"LI_HEP\",\"ORAGENE\"]}],\"doc\":\"Preparation method\\n        NOTE: In GMS, this has been deprecated in favour of Method and storageMedium\"},{\"name\":\"programmePhase\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"ProgrammePhase\",\"symbols\":[\"CRUK\",\"OXFORD\",\"CLL\",\"IIP\",\"MAIN\",\"EXPT\"]}],\"doc\":\"Genomics England programme phase\"},{\"name\":\"clinicalSampleDateTime\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"The time when the sample was received. In the format YYYY-MM-DDTHH:MM:SS+0000\"},{\"name\":\"participantId\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}]},{\"name\":\"participantUid\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"Participant UId of the sample\"},{\"name\":\"sampleUid\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}]},{\"name\":\"maskedPid\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}]},{\"name\":\"method\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"Method\",\"doc\":\"In GMS, Method is defined as how the sample was taken directly from the patient\",\"symbols\":[\"ASPIRATE\",\"BIOPSY\",\"NOT_APPLICABLE\",\"RESECTION\",\"SORTED_OTHER\",\"UNKNOWN\",\"UNSORTED\",\"CD138_SORTED\"]}],\"doc\":\"In GMS, this is how the sample was extracted from the participant\"},{\"name\":\"storageMedium\",\"type\":[\"null\",{\"type\":\"enum\",\"name\":\"StorageMedium\",\"doc\":\"In GMS, storage medium of sample\",\"symbols\":[\"EDTA\",\"FF\",\"LI_HEP\",\"ORAGENE\",\"FFPE\"]}],\"doc\":\"In GMS, this is what solvent/medium the sample was stored in\"},{\"name\":\"sampleType\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"In GMS, this is the sampleType as entered by the clinician in TOMs\"},{\"name\":\"sampleState\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"In GMS, this is the sampleState as entered by the clinician in TOMs\"}]}}],\"doc\":\"This is an array containing all the samples that belong to this individual, e.g [\\\"LP00002255_GA4\\\"]\"},{\"name\":\"inbreedingCoefficient\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"InbreedingCoefficient\",\"doc\":\"Inbreeding coefficient\",\"fields\":[{\"name\":\"sampleId\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"This is the sample id against which the coefficient was estimated\"},{\"name\":\"program\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"Name of program used to calculate the coefficient\"},{\"name\":\"version\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"Version of the programme\"},{\"name\":\"estimationMethod\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"Where various methods for estimation exist, which method was used.\"},{\"name\":\"coefficient\",\"type\":\"double\",\"doc\":\"Inbreeding coefficient ideally a real number in [0,1]\"},{\"name\":\"standardError\",\"type\":[\"null\",\"double\"],\"doc\":\"Standard error of the Inbreeding coefficient\"}]}],\"doc\":\"Inbreeding Coefficient Estimation\"},{\"name\":\"additionalInformation\",\"type\":[\"null\",{\"type\":\"map\",\"values\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"avro.java.string\":\"String\"}],\"doc\":\"We could add a map here to store additional information for example URIs to images, ECGs, etc\\n        Null by default\"},{\"name\":\"lastMenstrualPeriod\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"Last Menstrual Period\"},{\"name\":\"diagnosticDetails\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"DiagnosticDetail\",\"fields\":[{\"name\":\"d","iagnosisCodingSystem\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"Diagnosis coding system\"},{\"name\":\"diagnosisCodingSystemVersion\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"Diagnosis Coding System Version\"},{\"name\":\"diagnosisCode\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"doc\":\"Diagnosis Code\"},{\"name\":\"diagnosisDescription\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"Diagnosis description\"},{\"name\":\"diagnosisCertainty\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"Diagnosis Certainty\"},{\"name\":\"ageAtOnsetInYears\",\"type\":[\"null\",\"float\"],\"doc\":\"Age at diagnosis\"}]}}],\"doc\":\"Additional set of diagnostic ontology terms\"},{\"name\":\"participantUid\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}],\"doc\":\"ParticipantGUID in GMS\"},{\"name\":\"clinicalEthnicities\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"enum\",\"name\":\"ClinicalEthnicity\",\"doc\":\"* A     British, Mixed British\\n    * B     Irish\\n    * C     Any other White background\\n    * C2    Northern Irish\\n    * C3    Other white, white unspecified\\n    * CA    English\\n    * CB    Scottish\\n    * CC    Welsh\\n    * CD    Cornish\\n    * CE    Cypriot (part not stated)\\n    * CF    Greek\\n    * CG    Greek Cypriot\\n    * CH    Turkish\\n    * CJ    Turkish Cypriot\\n    * CK    Italian\\n    * CL    Irish Traveller\\n    * CM    Traveller\\n    * CN    Gypsy/Romany\\n    * CP    Polish\\n    * CQ    All republics which made up the former USSR\\n    * CR    Kosovan\\n    * CS    Albanian\\n    * CT    Bosnian\\n    * CU    Croatian\\n    * CV    Serbian\\n    * CW    Other republics which made up the former Yugoslavia\\n    * CX    Mixed white\\n    * CY    Other white European, European unspecified, European mixed\\n    * D     White and Black Caribbean\\n    * E     White and Black African\\n    * F     White and Asian\\n    * G     Any other mixed background\\n    * GA    Black and Asian\\n    * GB    Black and Chinese\\n    * GC    Black and White\\n    * GD    Chinese and White\\n    * GE    Asian and Chinese\\n    * GF    Other Mixed, Mixed Unspecified\\n    * H     Indian or British Indian\\n    * J     Pakistani or British Pakistani\\n    * K     Bangladeshi or British Bangladeshi\\n    * L     Any other Asian background\\n    * LA    Mixed Asian\\n    * LB    Punjabi\\n    * LC    Kashmiri\\n    * LD    East African Asian\\n    * LE    Sri Lanka\\n    * LF    Tamil\\n    * LG    Sinhalese\\n    * LH    British Asian\\n    * LJ    Caribbean Asian\\n    * LK    Other Asian, Asian unspecified\\n    * M     Caribbean\\n    * N     African\\n    * P     Any other Black background\\n    * PA    Somali\\n    * PB    Mixed Black\\n    * PC    Nigerian\\n    * PD    Black British\\n    * PE    Other Black, Black unspecified\\n    * R     Chinese\\n    * S     Any other ethnic group\\n    * S1    Ashkenazi\\n    * S2    Sephardi\\n    * SA    Vietnamese\\n    * SB    Japanese\\n    * SC    Filipino\\n    * SD    Malaysian\\n    * SE    Any Other Group\\n    * Z     Not stated\",\"symbols\":[\"A\",\"B\",\"C\",\"C2\",\"C3\",\"CA\",\"CB\",\"CC\",\"CD\",\"CE\",\"CF\",\"CG\",\"CH\",\"CJ\",\"CK\",\"CL\",\"CM\",\"CN\",\"CP\",\"CQ\",\"CR\",\"CS\",\"CT\",\"CU\",\"CV\",\"CW\",\"CX\",\"CY\",\"D\",\"E\",\"F\",\"G\",\"GA\",\"GB\",\"GC\",\"GD\",\"GE\",\"GF\",\"H\",\"J\",\"K\",\"L\",\"LA\",\"LB\",\"LC\",\"LD\",\"LE\",\"LF\",\"LG\",\"LH\",\"LJ\",\"LK\",\"M\",\"N\",\"P\",\"PA\",\"PB\",\"PC\",\"PD\",\"PE\",\"R\",\"S\",\"S1\",\"S2\",\"SA\",\"SB\",\"SC\",\"SD\",\"SE\",\"Z\"]}}],\"doc\":\"ClinicalEthnicity as defined for GMS\"},{\"name\":\"previousTreatment\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"PreviousTreatment\",\"doc\":\"In GMS, Previous Treatment of Patient\",\"fields\":[{\"name\":\"previousTreatmentType\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}]},{\"name\":\"previousTreatmentName\",\"type\":[\"null\",{\"type\":\"string\",\"avro.java.string\":\"String\"}]},{\"name\":\"previousTreatmentDate\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Date\",\"doc\":\"This defines a date record\",\"fields\":[{\"name\":\"year\",\"type\":\"int\",\"doc\":\"Format YYYY\"},{\"name\":\"month\",\"type\":[\"null\",\"int\"],\"doc\":\"Format MM. e.g June is 06\"},{\"name\":\"day\",\"type\":[\"null\",\"int\"],\"doc\":\"Format DD e.g. 12th of October is 12\"}]}]}]}}],\"doc\":\"For GMS cases, previous Treatment History\"}]}");
  public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; }
  /** Numbering used to refer to each member of the pedigree */
   private java.lang.Integer pedigreeId;
  /** If this field is true, the member should be considered the proband of this family */
   private java.lang.Boolean isProband;
  /** participantId.  This is the human readable ID in GMS */
   private java.lang.String participantId;
  /** participantQCState */
   private org.gel.models.participant.avro.ParticipantQCState participantQCState;
  /** superFamily id, this id is built as a concatenation of all
        families id in this superfamily i.e, fam10024_fam100457.
        NOTE: Retired for GMS */
   private java.lang.String gelSuperFamilyId;
  /** Sex of the Participant */
   private org.gel.models.participant.avro.Sex sex;
  /** Karyotypic sex of the participant as previously established or by looking at the GEL genome */
   private org.gel.models.participant.avro.PersonKaryotipicSex personKaryotypicSex;
  /** Year of Birth */
   private java.lang.Integer yearOfBirth;
  /** refers to the pedigreeId of the father
        Id of the parent, if unknown then no parent is referenced. Parents may need to be entered even if no data is known
        about them in order to unambiguously reconstruct the pedigree. */
   private java.lang.Integer fatherId;
  /** refers to the pedigreeId of the mother
        Id of the parent, if unknown then no parent is referenced. Parents may need to be entered even if no data is known
        about them in order to unambiguously reconstruct the pedigree. */
   private java.lang.Integer motherId;
  /** this id is built using the original familyId and the original pedigreeId of the father
        NOTE: retired for GMS */
   private java.lang.Integer superFatherId;
  /** this id is built using the original familyId and the original pedigreeId of the mother
        NOTE: Retired for GMS */
   private java.lang.Integer superMotherId;
  /** Each twin group is numbered, i.e. all members of a group of multiparous births receive the same number */
   private java.lang.Integer twinGroup;
  /** A property of the twinning group but should be entered for all members */
   private org.gel.models.participant.avro.TernaryOption monozygotic;
  /** Adopted Status */
   private org.gel.models.participant.avro.AdoptedStatus adoptedStatus;
  /** Life Status */
   private org.gel.models.participant.avro.LifeStatus lifeStatus;
  /** The parents of this participant has a consanguineous relationship */
   private org.gel.models.participant.avro.TernaryOption consanguineousParents;
  /** Affection Status */
   private org.gel.models.participant.avro.AffectionStatus affectionStatus;
  /** Clinical Data (disorders). If the family member is unaffected as per affectionStatus then this list is empty. */
   private java.util.List disorderList;
  /** Clinical Data (HPO terms) */
   private java.util.List hpoTermList;
  /** Participant's ancestries, defined as Mother's/Father's Ethnic Origin and Chi-square test for goodness of fit of this sample to 1000 Genomes Phase 3 populations.
        NOTE: for GMS this field has been deprecated in favour of clinicalEthnicities */
   private org.gel.models.participant.avro.Ancestries ancestries;
  /** What has this participant consented to?
        A participant that has been consented to the programme should also have sequence data associated with them; however
        this needs to be programmatically checked */
   private org.gel.models.participant.avro.ConsentStatus consentStatus;
  /** What has this participant consented in the context of a Genomic Test? */
   private org.gel.models.participant.avro.GmsConsentStatus testConsentStatus;
  /** This is an array containing all the samples that belong to this individual, e.g ["LP00002255_GA4"] */
   private java.util.List samples;
  /** Inbreeding Coefficient Estimation */
   private org.gel.models.participant.avro.InbreedingCoefficient inbreedingCoefficient;
  /** We could add a map here to store additional information for example URIs to images, ECGs, etc
        Null by default */
   private java.util.Map additionalInformation;
  /** Last Menstrual Period */
   private java.lang.String lastMenstrualPeriod;
  /** Additional set of diagnostic ontology terms */
   private java.util.List diagnosticDetails;
  /** ParticipantGUID in GMS */
   private java.lang.String participantUid;
  /** ClinicalEthnicity as defined for GMS */
   private java.util.List clinicalEthnicities;
  /** For GMS cases, previous Treatment History */
   private java.util.List previousTreatment;

  /**
   * Default constructor.  Note that this does not initialize fields
   * to their default values from the schema.  If that is desired then
   * one should use newBuilder(). 
   */
  public PedigreeMember() {}

  /**
   * All-args constructor.
   */
  public PedigreeMember(java.lang.Integer pedigreeId, java.lang.Boolean isProband, java.lang.String participantId, org.gel.models.participant.avro.ParticipantQCState participantQCState, java.lang.String gelSuperFamilyId, org.gel.models.participant.avro.Sex sex, org.gel.models.participant.avro.PersonKaryotipicSex personKaryotypicSex, java.lang.Integer yearOfBirth, java.lang.Integer fatherId, java.lang.Integer motherId, java.lang.Integer superFatherId, java.lang.Integer superMotherId, java.lang.Integer twinGroup, org.gel.models.participant.avro.TernaryOption monozygotic, org.gel.models.participant.avro.AdoptedStatus adoptedStatus, org.gel.models.participant.avro.LifeStatus lifeStatus, org.gel.models.participant.avro.TernaryOption consanguineousParents, org.gel.models.participant.avro.AffectionStatus affectionStatus, java.util.List disorderList, java.util.List hpoTermList, org.gel.models.participant.avro.Ancestries ancestries, org.gel.models.participant.avro.ConsentStatus consentStatus, org.gel.models.participant.avro.GmsConsentStatus testConsentStatus, java.util.List samples, org.gel.models.participant.avro.InbreedingCoefficient inbreedingCoefficient, java.util.Map additionalInformation, java.lang.String lastMenstrualPeriod, java.util.List diagnosticDetails, java.lang.String participantUid, java.util.List clinicalEthnicities, java.util.List previousTreatment) {
    this.pedigreeId = pedigreeId;
    this.isProband = isProband;
    this.participantId = participantId;
    this.participantQCState = participantQCState;
    this.gelSuperFamilyId = gelSuperFamilyId;
    this.sex = sex;
    this.personKaryotypicSex = personKaryotypicSex;
    this.yearOfBirth = yearOfBirth;
    this.fatherId = fatherId;
    this.motherId = motherId;
    this.superFatherId = superFatherId;
    this.superMotherId = superMotherId;
    this.twinGroup = twinGroup;
    this.monozygotic = monozygotic;
    this.adoptedStatus = adoptedStatus;
    this.lifeStatus = lifeStatus;
    this.consanguineousParents = consanguineousParents;
    this.affectionStatus = affectionStatus;
    this.disorderList = disorderList;
    this.hpoTermList = hpoTermList;
    this.ancestries = ancestries;
    this.consentStatus = consentStatus;
    this.testConsentStatus = testConsentStatus;
    this.samples = samples;
    this.inbreedingCoefficient = inbreedingCoefficient;
    this.additionalInformation = additionalInformation;
    this.lastMenstrualPeriod = lastMenstrualPeriod;
    this.diagnosticDetails = diagnosticDetails;
    this.participantUid = participantUid;
    this.clinicalEthnicities = clinicalEthnicities;
    this.previousTreatment = previousTreatment;
  }

  public org.apache.avro.Schema getSchema() { return SCHEMA$; }
  // Used by DatumWriter.  Applications should not call. 
  public java.lang.Object get(int field$) {
    switch (field$) {
    case 0: return pedigreeId;
    case 1: return isProband;
    case 2: return participantId;
    case 3: return participantQCState;
    case 4: return gelSuperFamilyId;
    case 5: return sex;
    case 6: return personKaryotypicSex;
    case 7: return yearOfBirth;
    case 8: return fatherId;
    case 9: return motherId;
    case 10: return superFatherId;
    case 11: return superMotherId;
    case 12: return twinGroup;
    case 13: return monozygotic;
    case 14: return adoptedStatus;
    case 15: return lifeStatus;
    case 16: return consanguineousParents;
    case 17: return affectionStatus;
    case 18: return disorderList;
    case 19: return hpoTermList;
    case 20: return ancestries;
    case 21: return consentStatus;
    case 22: return testConsentStatus;
    case 23: return samples;
    case 24: return inbreedingCoefficient;
    case 25: return additionalInformation;
    case 26: return lastMenstrualPeriod;
    case 27: return diagnosticDetails;
    case 28: return participantUid;
    case 29: return clinicalEthnicities;
    case 30: return previousTreatment;
    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
    }
  }
  // Used by DatumReader.  Applications should not call. 
  @SuppressWarnings(value="unchecked")
  public void put(int field$, java.lang.Object value$) {
    switch (field$) {
    case 0: pedigreeId = (java.lang.Integer)value$; break;
    case 1: isProband = (java.lang.Boolean)value$; break;
    case 2: participantId = (java.lang.String)value$; break;
    case 3: participantQCState = (org.gel.models.participant.avro.ParticipantQCState)value$; break;
    case 4: gelSuperFamilyId = (java.lang.String)value$; break;
    case 5: sex = (org.gel.models.participant.avro.Sex)value$; break;
    case 6: personKaryotypicSex = (org.gel.models.participant.avro.PersonKaryotipicSex)value$; break;
    case 7: yearOfBirth = (java.lang.Integer)value$; break;
    case 8: fatherId = (java.lang.Integer)value$; break;
    case 9: motherId = (java.lang.Integer)value$; break;
    case 10: superFatherId = (java.lang.Integer)value$; break;
    case 11: superMotherId = (java.lang.Integer)value$; break;
    case 12: twinGroup = (java.lang.Integer)value$; break;
    case 13: monozygotic = (org.gel.models.participant.avro.TernaryOption)value$; break;
    case 14: adoptedStatus = (org.gel.models.participant.avro.AdoptedStatus)value$; break;
    case 15: lifeStatus = (org.gel.models.participant.avro.LifeStatus)value$; break;
    case 16: consanguineousParents = (org.gel.models.participant.avro.TernaryOption)value$; break;
    case 17: affectionStatus = (org.gel.models.participant.avro.AffectionStatus)value$; break;
    case 18: disorderList = (java.util.List)value$; break;
    case 19: hpoTermList = (java.util.List)value$; break;
    case 20: ancestries = (org.gel.models.participant.avro.Ancestries)value$; break;
    case 21: consentStatus = (org.gel.models.participant.avro.ConsentStatus)value$; break;
    case 22: testConsentStatus = (org.gel.models.participant.avro.GmsConsentStatus)value$; break;
    case 23: samples = (java.util.List)value$; break;
    case 24: inbreedingCoefficient = (org.gel.models.participant.avro.InbreedingCoefficient)value$; break;
    case 25: additionalInformation = (java.util.Map)value$; break;
    case 26: lastMenstrualPeriod = (java.lang.String)value$; break;
    case 27: diagnosticDetails = (java.util.List)value$; break;
    case 28: participantUid = (java.lang.String)value$; break;
    case 29: clinicalEthnicities = (java.util.List)value$; break;
    case 30: previousTreatment = (java.util.List)value$; break;
    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
    }
  }

  /**
   * Gets the value of the 'pedigreeId' field.
   * Numbering used to refer to each member of the pedigree   */
  public java.lang.Integer getPedigreeId() {
    return pedigreeId;
  }

  /**
   * Sets the value of the 'pedigreeId' field.
   * Numbering used to refer to each member of the pedigree   * @param value the value to set.
   */
  public void setPedigreeId(java.lang.Integer value) {
    this.pedigreeId = value;
  }

  /**
   * Gets the value of the 'isProband' field.
   * If this field is true, the member should be considered the proband of this family   */
  public java.lang.Boolean getIsProband() {
    return isProband;
  }

  /**
   * Sets the value of the 'isProband' field.
   * If this field is true, the member should be considered the proband of this family   * @param value the value to set.
   */
  public void setIsProband(java.lang.Boolean value) {
    this.isProband = value;
  }

  /**
   * Gets the value of the 'participantId' field.
   * participantId.  This is the human readable ID in GMS   */
  public java.lang.String getParticipantId() {
    return participantId;
  }

  /**
   * Sets the value of the 'participantId' field.
   * participantId.  This is the human readable ID in GMS   * @param value the value to set.
   */
  public void setParticipantId(java.lang.String value) {
    this.participantId = value;
  }

  /**
   * Gets the value of the 'participantQCState' field.
   * participantQCState   */
  public org.gel.models.participant.avro.ParticipantQCState getParticipantQCState() {
    return participantQCState;
  }

  /**
   * Sets the value of the 'participantQCState' field.
   * participantQCState   * @param value the value to set.
   */
  public void setParticipantQCState(org.gel.models.participant.avro.ParticipantQCState value) {
    this.participantQCState = value;
  }

  /**
   * Gets the value of the 'gelSuperFamilyId' field.
   * superFamily id, this id is built as a concatenation of all
        families id in this superfamily i.e, fam10024_fam100457.
        NOTE: Retired for GMS   */
  public java.lang.String getGelSuperFamilyId() {
    return gelSuperFamilyId;
  }

  /**
   * Sets the value of the 'gelSuperFamilyId' field.
   * superFamily id, this id is built as a concatenation of all
        families id in this superfamily i.e, fam10024_fam100457.
        NOTE: Retired for GMS   * @param value the value to set.
   */
  public void setGelSuperFamilyId(java.lang.String value) {
    this.gelSuperFamilyId = value;
  }

  /**
   * Gets the value of the 'sex' field.
   * Sex of the Participant   */
  public org.gel.models.participant.avro.Sex getSex() {
    return sex;
  }

  /**
   * Sets the value of the 'sex' field.
   * Sex of the Participant   * @param value the value to set.
   */
  public void setSex(org.gel.models.participant.avro.Sex value) {
    this.sex = value;
  }

  /**
   * Gets the value of the 'personKaryotypicSex' field.
   * Karyotypic sex of the participant as previously established or by looking at the GEL genome   */
  public org.gel.models.participant.avro.PersonKaryotipicSex getPersonKaryotypicSex() {
    return personKaryotypicSex;
  }

  /**
   * Sets the value of the 'personKaryotypicSex' field.
   * Karyotypic sex of the participant as previously established or by looking at the GEL genome   * @param value the value to set.
   */
  public void setPersonKaryotypicSex(org.gel.models.participant.avro.PersonKaryotipicSex value) {
    this.personKaryotypicSex = value;
  }

  /**
   * Gets the value of the 'yearOfBirth' field.
   * Year of Birth   */
  public java.lang.Integer getYearOfBirth() {
    return yearOfBirth;
  }

  /**
   * Sets the value of the 'yearOfBirth' field.
   * Year of Birth   * @param value the value to set.
   */
  public void setYearOfBirth(java.lang.Integer value) {
    this.yearOfBirth = value;
  }

  /**
   * Gets the value of the 'fatherId' field.
   * refers to the pedigreeId of the father
        Id of the parent, if unknown then no parent is referenced. Parents may need to be entered even if no data is known
        about them in order to unambiguously reconstruct the pedigree.   */
  public java.lang.Integer getFatherId() {
    return fatherId;
  }

  /**
   * Sets the value of the 'fatherId' field.
   * refers to the pedigreeId of the father
        Id of the parent, if unknown then no parent is referenced. Parents may need to be entered even if no data is known
        about them in order to unambiguously reconstruct the pedigree.   * @param value the value to set.
   */
  public void setFatherId(java.lang.Integer value) {
    this.fatherId = value;
  }

  /**
   * Gets the value of the 'motherId' field.
   * refers to the pedigreeId of the mother
        Id of the parent, if unknown then no parent is referenced. Parents may need to be entered even if no data is known
        about them in order to unambiguously reconstruct the pedigree.   */
  public java.lang.Integer getMotherId() {
    return motherId;
  }

  /**
   * Sets the value of the 'motherId' field.
   * refers to the pedigreeId of the mother
        Id of the parent, if unknown then no parent is referenced. Parents may need to be entered even if no data is known
        about them in order to unambiguously reconstruct the pedigree.   * @param value the value to set.
   */
  public void setMotherId(java.lang.Integer value) {
    this.motherId = value;
  }

  /**
   * Gets the value of the 'superFatherId' field.
   * this id is built using the original familyId and the original pedigreeId of the father
        NOTE: retired for GMS   */
  public java.lang.Integer getSuperFatherId() {
    return superFatherId;
  }

  /**
   * Sets the value of the 'superFatherId' field.
   * this id is built using the original familyId and the original pedigreeId of the father
        NOTE: retired for GMS   * @param value the value to set.
   */
  public void setSuperFatherId(java.lang.Integer value) {
    this.superFatherId = value;
  }

  /**
   * Gets the value of the 'superMotherId' field.
   * this id is built using the original familyId and the original pedigreeId of the mother
        NOTE: Retired for GMS   */
  public java.lang.Integer getSuperMotherId() {
    return superMotherId;
  }

  /**
   * Sets the value of the 'superMotherId' field.
   * this id is built using the original familyId and the original pedigreeId of the mother
        NOTE: Retired for GMS   * @param value the value to set.
   */
  public void setSuperMotherId(java.lang.Integer value) {
    this.superMotherId = value;
  }

  /**
   * Gets the value of the 'twinGroup' field.
   * Each twin group is numbered, i.e. all members of a group of multiparous births receive the same number   */
  public java.lang.Integer getTwinGroup() {
    return twinGroup;
  }

  /**
   * Sets the value of the 'twinGroup' field.
   * Each twin group is numbered, i.e. all members of a group of multiparous births receive the same number   * @param value the value to set.
   */
  public void setTwinGroup(java.lang.Integer value) {
    this.twinGroup = value;
  }

  /**
   * Gets the value of the 'monozygotic' field.
   * A property of the twinning group but should be entered for all members   */
  public org.gel.models.participant.avro.TernaryOption getMonozygotic() {
    return monozygotic;
  }

  /**
   * Sets the value of the 'monozygotic' field.
   * A property of the twinning group but should be entered for all members   * @param value the value to set.
   */
  public void setMonozygotic(org.gel.models.participant.avro.TernaryOption value) {
    this.monozygotic = value;
  }

  /**
   * Gets the value of the 'adoptedStatus' field.
   * Adopted Status   */
  public org.gel.models.participant.avro.AdoptedStatus getAdoptedStatus() {
    return adoptedStatus;
  }

  /**
   * Sets the value of the 'adoptedStatus' field.
   * Adopted Status   * @param value the value to set.
   */
  public void setAdoptedStatus(org.gel.models.participant.avro.AdoptedStatus value) {
    this.adoptedStatus = value;
  }

  /**
   * Gets the value of the 'lifeStatus' field.
   * Life Status   */
  public org.gel.models.participant.avro.LifeStatus getLifeStatus() {
    return lifeStatus;
  }

  /**
   * Sets the value of the 'lifeStatus' field.
   * Life Status   * @param value the value to set.
   */
  public void setLifeStatus(org.gel.models.participant.avro.LifeStatus value) {
    this.lifeStatus = value;
  }

  /**
   * Gets the value of the 'consanguineousParents' field.
   * The parents of this participant has a consanguineous relationship   */
  public org.gel.models.participant.avro.TernaryOption getConsanguineousParents() {
    return consanguineousParents;
  }

  /**
   * Sets the value of the 'consanguineousParents' field.
   * The parents of this participant has a consanguineous relationship   * @param value the value to set.
   */
  public void setConsanguineousParents(org.gel.models.participant.avro.TernaryOption value) {
    this.consanguineousParents = value;
  }

  /**
   * Gets the value of the 'affectionStatus' field.
   * Affection Status   */
  public org.gel.models.participant.avro.AffectionStatus getAffectionStatus() {
    return affectionStatus;
  }

  /**
   * Sets the value of the 'affectionStatus' field.
   * Affection Status   * @param value the value to set.
   */
  public void setAffectionStatus(org.gel.models.participant.avro.AffectionStatus value) {
    this.affectionStatus = value;
  }

  /**
   * Gets the value of the 'disorderList' field.
   * Clinical Data (disorders). If the family member is unaffected as per affectionStatus then this list is empty.   */
  public java.util.List getDisorderList() {
    return disorderList;
  }

  /**
   * Sets the value of the 'disorderList' field.
   * Clinical Data (disorders). If the family member is unaffected as per affectionStatus then this list is empty.   * @param value the value to set.
   */
  public void setDisorderList(java.util.List value) {
    this.disorderList = value;
  }

  /**
   * Gets the value of the 'hpoTermList' field.
   * Clinical Data (HPO terms)   */
  public java.util.List getHpoTermList() {
    return hpoTermList;
  }

  /**
   * Sets the value of the 'hpoTermList' field.
   * Clinical Data (HPO terms)   * @param value the value to set.
   */
  public void setHpoTermList(java.util.List value) {
    this.hpoTermList = value;
  }

  /**
   * Gets the value of the 'ancestries' field.
   * Participant's ancestries, defined as Mother's/Father's Ethnic Origin and Chi-square test for goodness of fit of this sample to 1000 Genomes Phase 3 populations.
        NOTE: for GMS this field has been deprecated in favour of clinicalEthnicities   */
  public org.gel.models.participant.avro.Ancestries getAncestries() {
    return ancestries;
  }

  /**
   * Sets the value of the 'ancestries' field.
   * Participant's ancestries, defined as Mother's/Father's Ethnic Origin and Chi-square test for goodness of fit of this sample to 1000 Genomes Phase 3 populations.
        NOTE: for GMS this field has been deprecated in favour of clinicalEthnicities   * @param value the value to set.
   */
  public void setAncestries(org.gel.models.participant.avro.Ancestries value) {
    this.ancestries = value;
  }

  /**
   * Gets the value of the 'consentStatus' field.
   * What has this participant consented to?
        A participant that has been consented to the programme should also have sequence data associated with them; however
        this needs to be programmatically checked   */
  public org.gel.models.participant.avro.ConsentStatus getConsentStatus() {
    return consentStatus;
  }

  /**
   * Sets the value of the 'consentStatus' field.
   * What has this participant consented to?
        A participant that has been consented to the programme should also have sequence data associated with them; however
        this needs to be programmatically checked   * @param value the value to set.
   */
  public void setConsentStatus(org.gel.models.participant.avro.ConsentStatus value) {
    this.consentStatus = value;
  }

  /**
   * Gets the value of the 'testConsentStatus' field.
   * What has this participant consented in the context of a Genomic Test?   */
  public org.gel.models.participant.avro.GmsConsentStatus getTestConsentStatus() {
    return testConsentStatus;
  }

  /**
   * Sets the value of the 'testConsentStatus' field.
   * What has this participant consented in the context of a Genomic Test?   * @param value the value to set.
   */
  public void setTestConsentStatus(org.gel.models.participant.avro.GmsConsentStatus value) {
    this.testConsentStatus = value;
  }

  /**
   * Gets the value of the 'samples' field.
   * This is an array containing all the samples that belong to this individual, e.g ["LP00002255_GA4"]   */
  public java.util.List getSamples() {
    return samples;
  }

  /**
   * Sets the value of the 'samples' field.
   * This is an array containing all the samples that belong to this individual, e.g ["LP00002255_GA4"]   * @param value the value to set.
   */
  public void setSamples(java.util.List value) {
    this.samples = value;
  }

  /**
   * Gets the value of the 'inbreedingCoefficient' field.
   * Inbreeding Coefficient Estimation   */
  public org.gel.models.participant.avro.InbreedingCoefficient getInbreedingCoefficient() {
    return inbreedingCoefficient;
  }

  /**
   * Sets the value of the 'inbreedingCoefficient' field.
   * Inbreeding Coefficient Estimation   * @param value the value to set.
   */
  public void setInbreedingCoefficient(org.gel.models.participant.avro.InbreedingCoefficient value) {
    this.inbreedingCoefficient = value;
  }

  /**
   * Gets the value of the 'additionalInformation' field.
   * We could add a map here to store additional information for example URIs to images, ECGs, etc
        Null by default   */
  public java.util.Map getAdditionalInformation() {
    return additionalInformation;
  }

  /**
   * Sets the value of the 'additionalInformation' field.
   * We could add a map here to store additional information for example URIs to images, ECGs, etc
        Null by default   * @param value the value to set.
   */
  public void setAdditionalInformation(java.util.Map value) {
    this.additionalInformation = value;
  }

  /**
   * Gets the value of the 'lastMenstrualPeriod' field.
   * Last Menstrual Period   */
  public java.lang.String getLastMenstrualPeriod() {
    return lastMenstrualPeriod;
  }

  /**
   * Sets the value of the 'lastMenstrualPeriod' field.
   * Last Menstrual Period   * @param value the value to set.
   */
  public void setLastMenstrualPeriod(java.lang.String value) {
    this.lastMenstrualPeriod = value;
  }

  /**
   * Gets the value of the 'diagnosticDetails' field.
   * Additional set of diagnostic ontology terms   */
  public java.util.List getDiagnosticDetails() {
    return diagnosticDetails;
  }

  /**
   * Sets the value of the 'diagnosticDetails' field.
   * Additional set of diagnostic ontology terms   * @param value the value to set.
   */
  public void setDiagnosticDetails(java.util.List value) {
    this.diagnosticDetails = value;
  }

  /**
   * Gets the value of the 'participantUid' field.
   * ParticipantGUID in GMS   */
  public java.lang.String getParticipantUid() {
    return participantUid;
  }

  /**
   * Sets the value of the 'participantUid' field.
   * ParticipantGUID in GMS   * @param value the value to set.
   */
  public void setParticipantUid(java.lang.String value) {
    this.participantUid = value;
  }

  /**
   * Gets the value of the 'clinicalEthnicities' field.
   * ClinicalEthnicity as defined for GMS   */
  public java.util.List getClinicalEthnicities() {
    return clinicalEthnicities;
  }

  /**
   * Sets the value of the 'clinicalEthnicities' field.
   * ClinicalEthnicity as defined for GMS   * @param value the value to set.
   */
  public void setClinicalEthnicities(java.util.List value) {
    this.clinicalEthnicities = value;
  }

  /**
   * Gets the value of the 'previousTreatment' field.
   * For GMS cases, previous Treatment History   */
  public java.util.List getPreviousTreatment() {
    return previousTreatment;
  }

  /**
   * Sets the value of the 'previousTreatment' field.
   * For GMS cases, previous Treatment History   * @param value the value to set.
   */
  public void setPreviousTreatment(java.util.List value) {
    this.previousTreatment = value;
  }

  /** Creates a new PedigreeMember RecordBuilder */
  public static org.gel.models.participant.avro.PedigreeMember.Builder newBuilder() {
    return new org.gel.models.participant.avro.PedigreeMember.Builder();
  }
  
  /** Creates a new PedigreeMember RecordBuilder by copying an existing Builder */
  public static org.gel.models.participant.avro.PedigreeMember.Builder newBuilder(org.gel.models.participant.avro.PedigreeMember.Builder other) {
    return new org.gel.models.participant.avro.PedigreeMember.Builder(other);
  }
  
  /** Creates a new PedigreeMember RecordBuilder by copying an existing PedigreeMember instance */
  public static org.gel.models.participant.avro.PedigreeMember.Builder newBuilder(org.gel.models.participant.avro.PedigreeMember other) {
    return new org.gel.models.participant.avro.PedigreeMember.Builder(other);
  }
  
  /**
   * RecordBuilder for PedigreeMember instances.
   */
  public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase
    implements org.apache.avro.data.RecordBuilder {

    private java.lang.Integer pedigreeId;
    private java.lang.Boolean isProband;
    private java.lang.String participantId;
    private org.gel.models.participant.avro.ParticipantQCState participantQCState;
    private java.lang.String gelSuperFamilyId;
    private org.gel.models.participant.avro.Sex sex;
    private org.gel.models.participant.avro.PersonKaryotipicSex personKaryotypicSex;
    private java.lang.Integer yearOfBirth;
    private java.lang.Integer fatherId;
    private java.lang.Integer motherId;
    private java.lang.Integer superFatherId;
    private java.lang.Integer superMotherId;
    private java.lang.Integer twinGroup;
    private org.gel.models.participant.avro.TernaryOption monozygotic;
    private org.gel.models.participant.avro.AdoptedStatus adoptedStatus;
    private org.gel.models.participant.avro.LifeStatus lifeStatus;
    private org.gel.models.participant.avro.TernaryOption consanguineousParents;
    private org.gel.models.participant.avro.AffectionStatus affectionStatus;
    private java.util.List disorderList;
    private java.util.List hpoTermList;
    private org.gel.models.participant.avro.Ancestries ancestries;
    private org.gel.models.participant.avro.ConsentStatus consentStatus;
    private org.gel.models.participant.avro.GmsConsentStatus testConsentStatus;
    private java.util.List samples;
    private org.gel.models.participant.avro.InbreedingCoefficient inbreedingCoefficient;
    private java.util.Map additionalInformation;
    private java.lang.String lastMenstrualPeriod;
    private java.util.List diagnosticDetails;
    private java.lang.String participantUid;
    private java.util.List clinicalEthnicities;
    private java.util.List previousTreatment;

    /** Creates a new Builder */
    private Builder() {
      super(org.gel.models.participant.avro.PedigreeMember.SCHEMA$);
    }
    
    /** Creates a Builder by copying an existing Builder */
    private Builder(org.gel.models.participant.avro.PedigreeMember.Builder other) {
      super(other);
      if (isValidValue(fields()[0], other.pedigreeId)) {
        this.pedigreeId = data().deepCopy(fields()[0].schema(), other.pedigreeId);
        fieldSetFlags()[0] = true;
      }
      if (isValidValue(fields()[1], other.isProband)) {
        this.isProband = data().deepCopy(fields()[1].schema(), other.isProband);
        fieldSetFlags()[1] = true;
      }
      if (isValidValue(fields()[2], other.participantId)) {
        this.participantId = data().deepCopy(fields()[2].schema(), other.participantId);
        fieldSetFlags()[2] = true;
      }
      if (isValidValue(fields()[3], other.participantQCState)) {
        this.participantQCState = data().deepCopy(fields()[3].schema(), other.participantQCState);
        fieldSetFlags()[3] = true;
      }
      if (isValidValue(fields()[4], other.gelSuperFamilyId)) {
        this.gelSuperFamilyId = data().deepCopy(fields()[4].schema(), other.gelSuperFamilyId);
        fieldSetFlags()[4] = true;
      }
      if (isValidValue(fields()[5], other.sex)) {
        this.sex = data().deepCopy(fields()[5].schema(), other.sex);
        fieldSetFlags()[5] = true;
      }
      if (isValidValue(fields()[6], other.personKaryotypicSex)) {
        this.personKaryotypicSex = data().deepCopy(fields()[6].schema(), other.personKaryotypicSex);
        fieldSetFlags()[6] = true;
      }
      if (isValidValue(fields()[7], other.yearOfBirth)) {
        this.yearOfBirth = data().deepCopy(fields()[7].schema(), other.yearOfBirth);
        fieldSetFlags()[7] = true;
      }
      if (isValidValue(fields()[8], other.fatherId)) {
        this.fatherId = data().deepCopy(fields()[8].schema(), other.fatherId);
        fieldSetFlags()[8] = true;
      }
      if (isValidValue(fields()[9], other.motherId)) {
        this.motherId = data().deepCopy(fields()[9].schema(), other.motherId);
        fieldSetFlags()[9] = true;
      }
      if (isValidValue(fields()[10], other.superFatherId)) {
        this.superFatherId = data().deepCopy(fields()[10].schema(), other.superFatherId);
        fieldSetFlags()[10] = true;
      }
      if (isValidValue(fields()[11], other.superMotherId)) {
        this.superMotherId = data().deepCopy(fields()[11].schema(), other.superMotherId);
        fieldSetFlags()[11] = true;
      }
      if (isValidValue(fields()[12], other.twinGroup)) {
        this.twinGroup = data().deepCopy(fields()[12].schema(), other.twinGroup);
        fieldSetFlags()[12] = true;
      }
      if (isValidValue(fields()[13], other.monozygotic)) {
        this.monozygotic = data().deepCopy(fields()[13].schema(), other.monozygotic);
        fieldSetFlags()[13] = true;
      }
      if (isValidValue(fields()[14], other.adoptedStatus)) {
        this.adoptedStatus = data().deepCopy(fields()[14].schema(), other.adoptedStatus);
        fieldSetFlags()[14] = true;
      }
      if (isValidValue(fields()[15], other.lifeStatus)) {
        this.lifeStatus = data().deepCopy(fields()[15].schema(), other.lifeStatus);
        fieldSetFlags()[15] = true;
      }
      if (isValidValue(fields()[16], other.consanguineousParents)) {
        this.consanguineousParents = data().deepCopy(fields()[16].schema(), other.consanguineousParents);
        fieldSetFlags()[16] = true;
      }
      if (isValidValue(fields()[17], other.affectionStatus)) {
        this.affectionStatus = data().deepCopy(fields()[17].schema(), other.affectionStatus);
        fieldSetFlags()[17] = true;
      }
      if (isValidValue(fields()[18], other.disorderList)) {
        this.disorderList = data().deepCopy(fields()[18].schema(), other.disorderList);
        fieldSetFlags()[18] = true;
      }
      if (isValidValue(fields()[19], other.hpoTermList)) {
        this.hpoTermList = data().deepCopy(fields()[19].schema(), other.hpoTermList);
        fieldSetFlags()[19] = true;
      }
      if (isValidValue(fields()[20], other.ancestries)) {
        this.ancestries = data().deepCopy(fields()[20].schema(), other.ancestries);
        fieldSetFlags()[20] = true;
      }
      if (isValidValue(fields()[21], other.consentStatus)) {
        this.consentStatus = data().deepCopy(fields()[21].schema(), other.consentStatus);
        fieldSetFlags()[21] = true;
      }
      if (isValidValue(fields()[22], other.testConsentStatus)) {
        this.testConsentStatus = data().deepCopy(fields()[22].schema(), other.testConsentStatus);
        fieldSetFlags()[22] = true;
      }
      if (isValidValue(fields()[23], other.samples)) {
        this.samples = data().deepCopy(fields()[23].schema(), other.samples);
        fieldSetFlags()[23] = true;
      }
      if (isValidValue(fields()[24], other.inbreedingCoefficient)) {
        this.inbreedingCoefficient = data().deepCopy(fields()[24].schema(), other.inbreedingCoefficient);
        fieldSetFlags()[24] = true;
      }
      if (isValidValue(fields()[25], other.additionalInformation)) {
        this.additionalInformation = data().deepCopy(fields()[25].schema(), other.additionalInformation);
        fieldSetFlags()[25] = true;
      }
      if (isValidValue(fields()[26], other.lastMenstrualPeriod)) {
        this.lastMenstrualPeriod = data().deepCopy(fields()[26].schema(), other.lastMenstrualPeriod);
        fieldSetFlags()[26] = true;
      }
      if (isValidValue(fields()[27], other.diagnosticDetails)) {
        this.diagnosticDetails = data().deepCopy(fields()[27].schema(), other.diagnosticDetails);
        fieldSetFlags()[27] = true;
      }
      if (isValidValue(fields()[28], other.participantUid)) {
        this.participantUid = data().deepCopy(fields()[28].schema(), other.participantUid);
        fieldSetFlags()[28] = true;
      }
      if (isValidValue(fields()[29], other.clinicalEthnicities)) {
        this.clinicalEthnicities = data().deepCopy(fields()[29].schema(), other.clinicalEthnicities);
        fieldSetFlags()[29] = true;
      }
      if (isValidValue(fields()[30], other.previousTreatment)) {
        this.previousTreatment = data().deepCopy(fields()[30].schema(), other.previousTreatment);
        fieldSetFlags()[30] = true;
      }
    }
    
    /** Creates a Builder by copying an existing PedigreeMember instance */
    private Builder(org.gel.models.participant.avro.PedigreeMember other) {
            super(org.gel.models.participant.avro.PedigreeMember.SCHEMA$);
      if (isValidValue(fields()[0], other.pedigreeId)) {
        this.pedigreeId = data().deepCopy(fields()[0].schema(), other.pedigreeId);
        fieldSetFlags()[0] = true;
      }
      if (isValidValue(fields()[1], other.isProband)) {
        this.isProband = data().deepCopy(fields()[1].schema(), other.isProband);
        fieldSetFlags()[1] = true;
      }
      if (isValidValue(fields()[2], other.participantId)) {
        this.participantId = data().deepCopy(fields()[2].schema(), other.participantId);
        fieldSetFlags()[2] = true;
      }
      if (isValidValue(fields()[3], other.participantQCState)) {
        this.participantQCState = data().deepCopy(fields()[3].schema(), other.participantQCState);
        fieldSetFlags()[3] = true;
      }
      if (isValidValue(fields()[4], other.gelSuperFamilyId)) {
        this.gelSuperFamilyId = data().deepCopy(fields()[4].schema(), other.gelSuperFamilyId);
        fieldSetFlags()[4] = true;
      }
      if (isValidValue(fields()[5], other.sex)) {
        this.sex = data().deepCopy(fields()[5].schema(), other.sex);
        fieldSetFlags()[5] = true;
      }
      if (isValidValue(fields()[6], other.personKaryotypicSex)) {
        this.personKaryotypicSex = data().deepCopy(fields()[6].schema(), other.personKaryotypicSex);
        fieldSetFlags()[6] = true;
      }
      if (isValidValue(fields()[7], other.yearOfBirth)) {
        this.yearOfBirth = data().deepCopy(fields()[7].schema(), other.yearOfBirth);
        fieldSetFlags()[7] = true;
      }
      if (isValidValue(fields()[8], other.fatherId)) {
        this.fatherId = data().deepCopy(fields()[8].schema(), other.fatherId);
        fieldSetFlags()[8] = true;
      }
      if (isValidValue(fields()[9], other.motherId)) {
        this.motherId = data().deepCopy(fields()[9].schema(), other.motherId);
        fieldSetFlags()[9] = true;
      }
      if (isValidValue(fields()[10], other.superFatherId)) {
        this.superFatherId = data().deepCopy(fields()[10].schema(), other.superFatherId);
        fieldSetFlags()[10] = true;
      }
      if (isValidValue(fields()[11], other.superMotherId)) {
        this.superMotherId = data().deepCopy(fields()[11].schema(), other.superMotherId);
        fieldSetFlags()[11] = true;
      }
      if (isValidValue(fields()[12], other.twinGroup)) {
        this.twinGroup = data().deepCopy(fields()[12].schema(), other.twinGroup);
        fieldSetFlags()[12] = true;
      }
      if (isValidValue(fields()[13], other.monozygotic)) {
        this.monozygotic = data().deepCopy(fields()[13].schema(), other.monozygotic);
        fieldSetFlags()[13] = true;
      }
      if (isValidValue(fields()[14], other.adoptedStatus)) {
        this.adoptedStatus = data().deepCopy(fields()[14].schema(), other.adoptedStatus);
        fieldSetFlags()[14] = true;
      }
      if (isValidValue(fields()[15], other.lifeStatus)) {
        this.lifeStatus = data().deepCopy(fields()[15].schema(), other.lifeStatus);
        fieldSetFlags()[15] = true;
      }
      if (isValidValue(fields()[16], other.consanguineousParents)) {
        this.consanguineousParents = data().deepCopy(fields()[16].schema(), other.consanguineousParents);
        fieldSetFlags()[16] = true;
      }
      if (isValidValue(fields()[17], other.affectionStatus)) {
        this.affectionStatus = data().deepCopy(fields()[17].schema(), other.affectionStatus);
        fieldSetFlags()[17] = true;
      }
      if (isValidValue(fields()[18], other.disorderList)) {
        this.disorderList = data().deepCopy(fields()[18].schema(), other.disorderList);
        fieldSetFlags()[18] = true;
      }
      if (isValidValue(fields()[19], other.hpoTermList)) {
        this.hpoTermList = data().deepCopy(fields()[19].schema(), other.hpoTermList);
        fieldSetFlags()[19] = true;
      }
      if (isValidValue(fields()[20], other.ancestries)) {
        this.ancestries = data().deepCopy(fields()[20].schema(), other.ancestries);
        fieldSetFlags()[20] = true;
      }
      if (isValidValue(fields()[21], other.consentStatus)) {
        this.consentStatus = data().deepCopy(fields()[21].schema(), other.consentStatus);
        fieldSetFlags()[21] = true;
      }
      if (isValidValue(fields()[22], other.testConsentStatus)) {
        this.testConsentStatus = data().deepCopy(fields()[22].schema(), other.testConsentStatus);
        fieldSetFlags()[22] = true;
      }
      if (isValidValue(fields()[23], other.samples)) {
        this.samples = data().deepCopy(fields()[23].schema(), other.samples);
        fieldSetFlags()[23] = true;
      }
      if (isValidValue(fields()[24], other.inbreedingCoefficient)) {
        this.inbreedingCoefficient = data().deepCopy(fields()[24].schema(), other.inbreedingCoefficient);
        fieldSetFlags()[24] = true;
      }
      if (isValidValue(fields()[25], other.additionalInformation)) {
        this.additionalInformation = data().deepCopy(fields()[25].schema(), other.additionalInformation);
        fieldSetFlags()[25] = true;
      }
      if (isValidValue(fields()[26], other.lastMenstrualPeriod)) {
        this.lastMenstrualPeriod = data().deepCopy(fields()[26].schema(), other.lastMenstrualPeriod);
        fieldSetFlags()[26] = true;
      }
      if (isValidValue(fields()[27], other.diagnosticDetails)) {
        this.diagnosticDetails = data().deepCopy(fields()[27].schema(), other.diagnosticDetails);
        fieldSetFlags()[27] = true;
      }
      if (isValidValue(fields()[28], other.participantUid)) {
        this.participantUid = data().deepCopy(fields()[28].schema(), other.participantUid);
        fieldSetFlags()[28] = true;
      }
      if (isValidValue(fields()[29], other.clinicalEthnicities)) {
        this.clinicalEthnicities = data().deepCopy(fields()[29].schema(), other.clinicalEthnicities);
        fieldSetFlags()[29] = true;
      }
      if (isValidValue(fields()[30], other.previousTreatment)) {
        this.previousTreatment = data().deepCopy(fields()[30].schema(), other.previousTreatment);
        fieldSetFlags()[30] = true;
      }
    }

    /** Gets the value of the 'pedigreeId' field */
    public java.lang.Integer getPedigreeId() {
      return pedigreeId;
    }
    
    /** Sets the value of the 'pedigreeId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setPedigreeId(java.lang.Integer value) {
      validate(fields()[0], value);
      this.pedigreeId = value;
      fieldSetFlags()[0] = true;
      return this; 
    }
    
    /** Checks whether the 'pedigreeId' field has been set */
    public boolean hasPedigreeId() {
      return fieldSetFlags()[0];
    }
    
    /** Clears the value of the 'pedigreeId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearPedigreeId() {
      pedigreeId = null;
      fieldSetFlags()[0] = false;
      return this;
    }

    /** Gets the value of the 'isProband' field */
    public java.lang.Boolean getIsProband() {
      return isProband;
    }
    
    /** Sets the value of the 'isProband' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setIsProband(java.lang.Boolean value) {
      validate(fields()[1], value);
      this.isProband = value;
      fieldSetFlags()[1] = true;
      return this; 
    }
    
    /** Checks whether the 'isProband' field has been set */
    public boolean hasIsProband() {
      return fieldSetFlags()[1];
    }
    
    /** Clears the value of the 'isProband' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearIsProband() {
      isProband = null;
      fieldSetFlags()[1] = false;
      return this;
    }

    /** Gets the value of the 'participantId' field */
    public java.lang.String getParticipantId() {
      return participantId;
    }
    
    /** Sets the value of the 'participantId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setParticipantId(java.lang.String value) {
      validate(fields()[2], value);
      this.participantId = value;
      fieldSetFlags()[2] = true;
      return this; 
    }
    
    /** Checks whether the 'participantId' field has been set */
    public boolean hasParticipantId() {
      return fieldSetFlags()[2];
    }
    
    /** Clears the value of the 'participantId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearParticipantId() {
      participantId = null;
      fieldSetFlags()[2] = false;
      return this;
    }

    /** Gets the value of the 'participantQCState' field */
    public org.gel.models.participant.avro.ParticipantQCState getParticipantQCState() {
      return participantQCState;
    }
    
    /** Sets the value of the 'participantQCState' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setParticipantQCState(org.gel.models.participant.avro.ParticipantQCState value) {
      validate(fields()[3], value);
      this.participantQCState = value;
      fieldSetFlags()[3] = true;
      return this; 
    }
    
    /** Checks whether the 'participantQCState' field has been set */
    public boolean hasParticipantQCState() {
      return fieldSetFlags()[3];
    }
    
    /** Clears the value of the 'participantQCState' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearParticipantQCState() {
      participantQCState = null;
      fieldSetFlags()[3] = false;
      return this;
    }

    /** Gets the value of the 'gelSuperFamilyId' field */
    public java.lang.String getGelSuperFamilyId() {
      return gelSuperFamilyId;
    }
    
    /** Sets the value of the 'gelSuperFamilyId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setGelSuperFamilyId(java.lang.String value) {
      validate(fields()[4], value);
      this.gelSuperFamilyId = value;
      fieldSetFlags()[4] = true;
      return this; 
    }
    
    /** Checks whether the 'gelSuperFamilyId' field has been set */
    public boolean hasGelSuperFamilyId() {
      return fieldSetFlags()[4];
    }
    
    /** Clears the value of the 'gelSuperFamilyId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearGelSuperFamilyId() {
      gelSuperFamilyId = null;
      fieldSetFlags()[4] = false;
      return this;
    }

    /** Gets the value of the 'sex' field */
    public org.gel.models.participant.avro.Sex getSex() {
      return sex;
    }
    
    /** Sets the value of the 'sex' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setSex(org.gel.models.participant.avro.Sex value) {
      validate(fields()[5], value);
      this.sex = value;
      fieldSetFlags()[5] = true;
      return this; 
    }
    
    /** Checks whether the 'sex' field has been set */
    public boolean hasSex() {
      return fieldSetFlags()[5];
    }
    
    /** Clears the value of the 'sex' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearSex() {
      sex = null;
      fieldSetFlags()[5] = false;
      return this;
    }

    /** Gets the value of the 'personKaryotypicSex' field */
    public org.gel.models.participant.avro.PersonKaryotipicSex getPersonKaryotypicSex() {
      return personKaryotypicSex;
    }
    
    /** Sets the value of the 'personKaryotypicSex' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setPersonKaryotypicSex(org.gel.models.participant.avro.PersonKaryotipicSex value) {
      validate(fields()[6], value);
      this.personKaryotypicSex = value;
      fieldSetFlags()[6] = true;
      return this; 
    }
    
    /** Checks whether the 'personKaryotypicSex' field has been set */
    public boolean hasPersonKaryotypicSex() {
      return fieldSetFlags()[6];
    }
    
    /** Clears the value of the 'personKaryotypicSex' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearPersonKaryotypicSex() {
      personKaryotypicSex = null;
      fieldSetFlags()[6] = false;
      return this;
    }

    /** Gets the value of the 'yearOfBirth' field */
    public java.lang.Integer getYearOfBirth() {
      return yearOfBirth;
    }
    
    /** Sets the value of the 'yearOfBirth' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setYearOfBirth(java.lang.Integer value) {
      validate(fields()[7], value);
      this.yearOfBirth = value;
      fieldSetFlags()[7] = true;
      return this; 
    }
    
    /** Checks whether the 'yearOfBirth' field has been set */
    public boolean hasYearOfBirth() {
      return fieldSetFlags()[7];
    }
    
    /** Clears the value of the 'yearOfBirth' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearYearOfBirth() {
      yearOfBirth = null;
      fieldSetFlags()[7] = false;
      return this;
    }

    /** Gets the value of the 'fatherId' field */
    public java.lang.Integer getFatherId() {
      return fatherId;
    }
    
    /** Sets the value of the 'fatherId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setFatherId(java.lang.Integer value) {
      validate(fields()[8], value);
      this.fatherId = value;
      fieldSetFlags()[8] = true;
      return this; 
    }
    
    /** Checks whether the 'fatherId' field has been set */
    public boolean hasFatherId() {
      return fieldSetFlags()[8];
    }
    
    /** Clears the value of the 'fatherId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearFatherId() {
      fatherId = null;
      fieldSetFlags()[8] = false;
      return this;
    }

    /** Gets the value of the 'motherId' field */
    public java.lang.Integer getMotherId() {
      return motherId;
    }
    
    /** Sets the value of the 'motherId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setMotherId(java.lang.Integer value) {
      validate(fields()[9], value);
      this.motherId = value;
      fieldSetFlags()[9] = true;
      return this; 
    }
    
    /** Checks whether the 'motherId' field has been set */
    public boolean hasMotherId() {
      return fieldSetFlags()[9];
    }
    
    /** Clears the value of the 'motherId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearMotherId() {
      motherId = null;
      fieldSetFlags()[9] = false;
      return this;
    }

    /** Gets the value of the 'superFatherId' field */
    public java.lang.Integer getSuperFatherId() {
      return superFatherId;
    }
    
    /** Sets the value of the 'superFatherId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setSuperFatherId(java.lang.Integer value) {
      validate(fields()[10], value);
      this.superFatherId = value;
      fieldSetFlags()[10] = true;
      return this; 
    }
    
    /** Checks whether the 'superFatherId' field has been set */
    public boolean hasSuperFatherId() {
      return fieldSetFlags()[10];
    }
    
    /** Clears the value of the 'superFatherId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearSuperFatherId() {
      superFatherId = null;
      fieldSetFlags()[10] = false;
      return this;
    }

    /** Gets the value of the 'superMotherId' field */
    public java.lang.Integer getSuperMotherId() {
      return superMotherId;
    }
    
    /** Sets the value of the 'superMotherId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setSuperMotherId(java.lang.Integer value) {
      validate(fields()[11], value);
      this.superMotherId = value;
      fieldSetFlags()[11] = true;
      return this; 
    }
    
    /** Checks whether the 'superMotherId' field has been set */
    public boolean hasSuperMotherId() {
      return fieldSetFlags()[11];
    }
    
    /** Clears the value of the 'superMotherId' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearSuperMotherId() {
      superMotherId = null;
      fieldSetFlags()[11] = false;
      return this;
    }

    /** Gets the value of the 'twinGroup' field */
    public java.lang.Integer getTwinGroup() {
      return twinGroup;
    }
    
    /** Sets the value of the 'twinGroup' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setTwinGroup(java.lang.Integer value) {
      validate(fields()[12], value);
      this.twinGroup = value;
      fieldSetFlags()[12] = true;
      return this; 
    }
    
    /** Checks whether the 'twinGroup' field has been set */
    public boolean hasTwinGroup() {
      return fieldSetFlags()[12];
    }
    
    /** Clears the value of the 'twinGroup' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearTwinGroup() {
      twinGroup = null;
      fieldSetFlags()[12] = false;
      return this;
    }

    /** Gets the value of the 'monozygotic' field */
    public org.gel.models.participant.avro.TernaryOption getMonozygotic() {
      return monozygotic;
    }
    
    /** Sets the value of the 'monozygotic' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setMonozygotic(org.gel.models.participant.avro.TernaryOption value) {
      validate(fields()[13], value);
      this.monozygotic = value;
      fieldSetFlags()[13] = true;
      return this; 
    }
    
    /** Checks whether the 'monozygotic' field has been set */
    public boolean hasMonozygotic() {
      return fieldSetFlags()[13];
    }
    
    /** Clears the value of the 'monozygotic' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearMonozygotic() {
      monozygotic = null;
      fieldSetFlags()[13] = false;
      return this;
    }

    /** Gets the value of the 'adoptedStatus' field */
    public org.gel.models.participant.avro.AdoptedStatus getAdoptedStatus() {
      return adoptedStatus;
    }
    
    /** Sets the value of the 'adoptedStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setAdoptedStatus(org.gel.models.participant.avro.AdoptedStatus value) {
      validate(fields()[14], value);
      this.adoptedStatus = value;
      fieldSetFlags()[14] = true;
      return this; 
    }
    
    /** Checks whether the 'adoptedStatus' field has been set */
    public boolean hasAdoptedStatus() {
      return fieldSetFlags()[14];
    }
    
    /** Clears the value of the 'adoptedStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearAdoptedStatus() {
      adoptedStatus = null;
      fieldSetFlags()[14] = false;
      return this;
    }

    /** Gets the value of the 'lifeStatus' field */
    public org.gel.models.participant.avro.LifeStatus getLifeStatus() {
      return lifeStatus;
    }
    
    /** Sets the value of the 'lifeStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setLifeStatus(org.gel.models.participant.avro.LifeStatus value) {
      validate(fields()[15], value);
      this.lifeStatus = value;
      fieldSetFlags()[15] = true;
      return this; 
    }
    
    /** Checks whether the 'lifeStatus' field has been set */
    public boolean hasLifeStatus() {
      return fieldSetFlags()[15];
    }
    
    /** Clears the value of the 'lifeStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearLifeStatus() {
      lifeStatus = null;
      fieldSetFlags()[15] = false;
      return this;
    }

    /** Gets the value of the 'consanguineousParents' field */
    public org.gel.models.participant.avro.TernaryOption getConsanguineousParents() {
      return consanguineousParents;
    }
    
    /** Sets the value of the 'consanguineousParents' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setConsanguineousParents(org.gel.models.participant.avro.TernaryOption value) {
      validate(fields()[16], value);
      this.consanguineousParents = value;
      fieldSetFlags()[16] = true;
      return this; 
    }
    
    /** Checks whether the 'consanguineousParents' field has been set */
    public boolean hasConsanguineousParents() {
      return fieldSetFlags()[16];
    }
    
    /** Clears the value of the 'consanguineousParents' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearConsanguineousParents() {
      consanguineousParents = null;
      fieldSetFlags()[16] = false;
      return this;
    }

    /** Gets the value of the 'affectionStatus' field */
    public org.gel.models.participant.avro.AffectionStatus getAffectionStatus() {
      return affectionStatus;
    }
    
    /** Sets the value of the 'affectionStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setAffectionStatus(org.gel.models.participant.avro.AffectionStatus value) {
      validate(fields()[17], value);
      this.affectionStatus = value;
      fieldSetFlags()[17] = true;
      return this; 
    }
    
    /** Checks whether the 'affectionStatus' field has been set */
    public boolean hasAffectionStatus() {
      return fieldSetFlags()[17];
    }
    
    /** Clears the value of the 'affectionStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearAffectionStatus() {
      affectionStatus = null;
      fieldSetFlags()[17] = false;
      return this;
    }

    /** Gets the value of the 'disorderList' field */
    public java.util.List getDisorderList() {
      return disorderList;
    }
    
    /** Sets the value of the 'disorderList' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setDisorderList(java.util.List value) {
      validate(fields()[18], value);
      this.disorderList = value;
      fieldSetFlags()[18] = true;
      return this; 
    }
    
    /** Checks whether the 'disorderList' field has been set */
    public boolean hasDisorderList() {
      return fieldSetFlags()[18];
    }
    
    /** Clears the value of the 'disorderList' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearDisorderList() {
      disorderList = null;
      fieldSetFlags()[18] = false;
      return this;
    }

    /** Gets the value of the 'hpoTermList' field */
    public java.util.List getHpoTermList() {
      return hpoTermList;
    }
    
    /** Sets the value of the 'hpoTermList' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setHpoTermList(java.util.List value) {
      validate(fields()[19], value);
      this.hpoTermList = value;
      fieldSetFlags()[19] = true;
      return this; 
    }
    
    /** Checks whether the 'hpoTermList' field has been set */
    public boolean hasHpoTermList() {
      return fieldSetFlags()[19];
    }
    
    /** Clears the value of the 'hpoTermList' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearHpoTermList() {
      hpoTermList = null;
      fieldSetFlags()[19] = false;
      return this;
    }

    /** Gets the value of the 'ancestries' field */
    public org.gel.models.participant.avro.Ancestries getAncestries() {
      return ancestries;
    }
    
    /** Sets the value of the 'ancestries' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setAncestries(org.gel.models.participant.avro.Ancestries value) {
      validate(fields()[20], value);
      this.ancestries = value;
      fieldSetFlags()[20] = true;
      return this; 
    }
    
    /** Checks whether the 'ancestries' field has been set */
    public boolean hasAncestries() {
      return fieldSetFlags()[20];
    }
    
    /** Clears the value of the 'ancestries' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearAncestries() {
      ancestries = null;
      fieldSetFlags()[20] = false;
      return this;
    }

    /** Gets the value of the 'consentStatus' field */
    public org.gel.models.participant.avro.ConsentStatus getConsentStatus() {
      return consentStatus;
    }
    
    /** Sets the value of the 'consentStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setConsentStatus(org.gel.models.participant.avro.ConsentStatus value) {
      validate(fields()[21], value);
      this.consentStatus = value;
      fieldSetFlags()[21] = true;
      return this; 
    }
    
    /** Checks whether the 'consentStatus' field has been set */
    public boolean hasConsentStatus() {
      return fieldSetFlags()[21];
    }
    
    /** Clears the value of the 'consentStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearConsentStatus() {
      consentStatus = null;
      fieldSetFlags()[21] = false;
      return this;
    }

    /** Gets the value of the 'testConsentStatus' field */
    public org.gel.models.participant.avro.GmsConsentStatus getTestConsentStatus() {
      return testConsentStatus;
    }
    
    /** Sets the value of the 'testConsentStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setTestConsentStatus(org.gel.models.participant.avro.GmsConsentStatus value) {
      validate(fields()[22], value);
      this.testConsentStatus = value;
      fieldSetFlags()[22] = true;
      return this; 
    }
    
    /** Checks whether the 'testConsentStatus' field has been set */
    public boolean hasTestConsentStatus() {
      return fieldSetFlags()[22];
    }
    
    /** Clears the value of the 'testConsentStatus' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearTestConsentStatus() {
      testConsentStatus = null;
      fieldSetFlags()[22] = false;
      return this;
    }

    /** Gets the value of the 'samples' field */
    public java.util.List getSamples() {
      return samples;
    }
    
    /** Sets the value of the 'samples' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setSamples(java.util.List value) {
      validate(fields()[23], value);
      this.samples = value;
      fieldSetFlags()[23] = true;
      return this; 
    }
    
    /** Checks whether the 'samples' field has been set */
    public boolean hasSamples() {
      return fieldSetFlags()[23];
    }
    
    /** Clears the value of the 'samples' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearSamples() {
      samples = null;
      fieldSetFlags()[23] = false;
      return this;
    }

    /** Gets the value of the 'inbreedingCoefficient' field */
    public org.gel.models.participant.avro.InbreedingCoefficient getInbreedingCoefficient() {
      return inbreedingCoefficient;
    }
    
    /** Sets the value of the 'inbreedingCoefficient' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setInbreedingCoefficient(org.gel.models.participant.avro.InbreedingCoefficient value) {
      validate(fields()[24], value);
      this.inbreedingCoefficient = value;
      fieldSetFlags()[24] = true;
      return this; 
    }
    
    /** Checks whether the 'inbreedingCoefficient' field has been set */
    public boolean hasInbreedingCoefficient() {
      return fieldSetFlags()[24];
    }
    
    /** Clears the value of the 'inbreedingCoefficient' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearInbreedingCoefficient() {
      inbreedingCoefficient = null;
      fieldSetFlags()[24] = false;
      return this;
    }

    /** Gets the value of the 'additionalInformation' field */
    public java.util.Map getAdditionalInformation() {
      return additionalInformation;
    }
    
    /** Sets the value of the 'additionalInformation' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setAdditionalInformation(java.util.Map value) {
      validate(fields()[25], value);
      this.additionalInformation = value;
      fieldSetFlags()[25] = true;
      return this; 
    }
    
    /** Checks whether the 'additionalInformation' field has been set */
    public boolean hasAdditionalInformation() {
      return fieldSetFlags()[25];
    }
    
    /** Clears the value of the 'additionalInformation' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearAdditionalInformation() {
      additionalInformation = null;
      fieldSetFlags()[25] = false;
      return this;
    }

    /** Gets the value of the 'lastMenstrualPeriod' field */
    public java.lang.String getLastMenstrualPeriod() {
      return lastMenstrualPeriod;
    }
    
    /** Sets the value of the 'lastMenstrualPeriod' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setLastMenstrualPeriod(java.lang.String value) {
      validate(fields()[26], value);
      this.lastMenstrualPeriod = value;
      fieldSetFlags()[26] = true;
      return this; 
    }
    
    /** Checks whether the 'lastMenstrualPeriod' field has been set */
    public boolean hasLastMenstrualPeriod() {
      return fieldSetFlags()[26];
    }
    
    /** Clears the value of the 'lastMenstrualPeriod' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearLastMenstrualPeriod() {
      lastMenstrualPeriod = null;
      fieldSetFlags()[26] = false;
      return this;
    }

    /** Gets the value of the 'diagnosticDetails' field */
    public java.util.List getDiagnosticDetails() {
      return diagnosticDetails;
    }
    
    /** Sets the value of the 'diagnosticDetails' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setDiagnosticDetails(java.util.List value) {
      validate(fields()[27], value);
      this.diagnosticDetails = value;
      fieldSetFlags()[27] = true;
      return this; 
    }
    
    /** Checks whether the 'diagnosticDetails' field has been set */
    public boolean hasDiagnosticDetails() {
      return fieldSetFlags()[27];
    }
    
    /** Clears the value of the 'diagnosticDetails' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearDiagnosticDetails() {
      diagnosticDetails = null;
      fieldSetFlags()[27] = false;
      return this;
    }

    /** Gets the value of the 'participantUid' field */
    public java.lang.String getParticipantUid() {
      return participantUid;
    }
    
    /** Sets the value of the 'participantUid' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setParticipantUid(java.lang.String value) {
      validate(fields()[28], value);
      this.participantUid = value;
      fieldSetFlags()[28] = true;
      return this; 
    }
    
    /** Checks whether the 'participantUid' field has been set */
    public boolean hasParticipantUid() {
      return fieldSetFlags()[28];
    }
    
    /** Clears the value of the 'participantUid' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearParticipantUid() {
      participantUid = null;
      fieldSetFlags()[28] = false;
      return this;
    }

    /** Gets the value of the 'clinicalEthnicities' field */
    public java.util.List getClinicalEthnicities() {
      return clinicalEthnicities;
    }
    
    /** Sets the value of the 'clinicalEthnicities' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setClinicalEthnicities(java.util.List value) {
      validate(fields()[29], value);
      this.clinicalEthnicities = value;
      fieldSetFlags()[29] = true;
      return this; 
    }
    
    /** Checks whether the 'clinicalEthnicities' field has been set */
    public boolean hasClinicalEthnicities() {
      return fieldSetFlags()[29];
    }
    
    /** Clears the value of the 'clinicalEthnicities' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearClinicalEthnicities() {
      clinicalEthnicities = null;
      fieldSetFlags()[29] = false;
      return this;
    }

    /** Gets the value of the 'previousTreatment' field */
    public java.util.List getPreviousTreatment() {
      return previousTreatment;
    }
    
    /** Sets the value of the 'previousTreatment' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder setPreviousTreatment(java.util.List value) {
      validate(fields()[30], value);
      this.previousTreatment = value;
      fieldSetFlags()[30] = true;
      return this; 
    }
    
    /** Checks whether the 'previousTreatment' field has been set */
    public boolean hasPreviousTreatment() {
      return fieldSetFlags()[30];
    }
    
    /** Clears the value of the 'previousTreatment' field */
    public org.gel.models.participant.avro.PedigreeMember.Builder clearPreviousTreatment() {
      previousTreatment = null;
      fieldSetFlags()[30] = false;
      return this;
    }

    @Override
    public PedigreeMember build() {
      try {
        PedigreeMember record = new PedigreeMember();
        record.pedigreeId = fieldSetFlags()[0] ? this.pedigreeId : (java.lang.Integer) defaultValue(fields()[0]);
        record.isProband = fieldSetFlags()[1] ? this.isProband : (java.lang.Boolean) defaultValue(fields()[1]);
        record.participantId = fieldSetFlags()[2] ? this.participantId : (java.lang.String) defaultValue(fields()[2]);
        record.participantQCState = fieldSetFlags()[3] ? this.participantQCState : (org.gel.models.participant.avro.ParticipantQCState) defaultValue(fields()[3]);
        record.gelSuperFamilyId = fieldSetFlags()[4] ? this.gelSuperFamilyId : (java.lang.String) defaultValue(fields()[4]);
        record.sex = fieldSetFlags()[5] ? this.sex : (org.gel.models.participant.avro.Sex) defaultValue(fields()[5]);
        record.personKaryotypicSex = fieldSetFlags()[6] ? this.personKaryotypicSex : (org.gel.models.participant.avro.PersonKaryotipicSex) defaultValue(fields()[6]);
        record.yearOfBirth = fieldSetFlags()[7] ? this.yearOfBirth : (java.lang.Integer) defaultValue(fields()[7]);
        record.fatherId = fieldSetFlags()[8] ? this.fatherId : (java.lang.Integer) defaultValue(fields()[8]);
        record.motherId = fieldSetFlags()[9] ? this.motherId : (java.lang.Integer) defaultValue(fields()[9]);
        record.superFatherId = fieldSetFlags()[10] ? this.superFatherId : (java.lang.Integer) defaultValue(fields()[10]);
        record.superMotherId = fieldSetFlags()[11] ? this.superMotherId : (java.lang.Integer) defaultValue(fields()[11]);
        record.twinGroup = fieldSetFlags()[12] ? this.twinGroup : (java.lang.Integer) defaultValue(fields()[12]);
        record.monozygotic = fieldSetFlags()[13] ? this.monozygotic : (org.gel.models.participant.avro.TernaryOption) defaultValue(fields()[13]);
        record.adoptedStatus = fieldSetFlags()[14] ? this.adoptedStatus : (org.gel.models.participant.avro.AdoptedStatus) defaultValue(fields()[14]);
        record.lifeStatus = fieldSetFlags()[15] ? this.lifeStatus : (org.gel.models.participant.avro.LifeStatus) defaultValue(fields()[15]);
        record.consanguineousParents = fieldSetFlags()[16] ? this.consanguineousParents : (org.gel.models.participant.avro.TernaryOption) defaultValue(fields()[16]);
        record.affectionStatus = fieldSetFlags()[17] ? this.affectionStatus : (org.gel.models.participant.avro.AffectionStatus) defaultValue(fields()[17]);
        record.disorderList = fieldSetFlags()[18] ? this.disorderList : (java.util.List) defaultValue(fields()[18]);
        record.hpoTermList = fieldSetFlags()[19] ? this.hpoTermList : (java.util.List) defaultValue(fields()[19]);
        record.ancestries = fieldSetFlags()[20] ? this.ancestries : (org.gel.models.participant.avro.Ancestries) defaultValue(fields()[20]);
        record.consentStatus = fieldSetFlags()[21] ? this.consentStatus : (org.gel.models.participant.avro.ConsentStatus) defaultValue(fields()[21]);
        record.testConsentStatus = fieldSetFlags()[22] ? this.testConsentStatus : (org.gel.models.participant.avro.GmsConsentStatus) defaultValue(fields()[22]);
        record.samples = fieldSetFlags()[23] ? this.samples : (java.util.List) defaultValue(fields()[23]);
        record.inbreedingCoefficient = fieldSetFlags()[24] ? this.inbreedingCoefficient : (org.gel.models.participant.avro.InbreedingCoefficient) defaultValue(fields()[24]);
        record.additionalInformation = fieldSetFlags()[25] ? this.additionalInformation : (java.util.Map) defaultValue(fields()[25]);
        record.lastMenstrualPeriod = fieldSetFlags()[26] ? this.lastMenstrualPeriod : (java.lang.String) defaultValue(fields()[26]);
        record.diagnosticDetails = fieldSetFlags()[27] ? this.diagnosticDetails : (java.util.List) defaultValue(fields()[27]);
        record.participantUid = fieldSetFlags()[28] ? this.participantUid : (java.lang.String) defaultValue(fields()[28]);
        record.clinicalEthnicities = fieldSetFlags()[29] ? this.clinicalEthnicities : (java.util.List) defaultValue(fields()[29]);
        record.previousTreatment = fieldSetFlags()[30] ? this.previousTreatment : (java.util.List) defaultValue(fields()[30]);
        return record;
      } catch (Exception e) {
        throw new org.apache.avro.AvroRuntimeException(e);
      }
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy