001package org.hl7.fhir.dstu3.model; 002 003import java.math.BigDecimal; 004 005/* 006 Copyright (c) 2011+, HL7, Inc. 007 All rights reserved. 008 009 Redistribution and use in source and binary forms, with or without modification, 010 are permitted provided that the following conditions are met: 011 012 * Redistributions of source code must retain the above copyright notice, this 013 list of conditions and the following disclaimer. 014 * Redistributions in binary form must reproduce the above copyright notice, 015 this list of conditions and the following disclaimer in the documentation 016 and/or other materials provided with the distribution. 017 * Neither the name of HL7 nor the names of its contributors may be used to 018 endorse or promote products derived from this software without specific 019 prior written permission. 020 021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 024 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 025 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 026 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 027 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 028 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 029 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 030 POSSIBILITY OF SUCH DAMAGE. 031 032*/ 033 034// Generated on Fri, Mar 16, 2018 15:21+1100 for FHIR v3.0.x 035import java.util.ArrayList; 036import java.util.List; 037 038import org.hl7.fhir.exceptions.FHIRException; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.utilities.Utilities; 041 042import ca.uhn.fhir.model.api.annotation.Block; 043import ca.uhn.fhir.model.api.annotation.Child; 044import ca.uhn.fhir.model.api.annotation.Description; 045import ca.uhn.fhir.model.api.annotation.ResourceDef; 046import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 047/** 048 * Raw data describing a biological sequence. 049 */ 050@ResourceDef(name="Sequence", profile="http://hl7.org/fhir/Profile/Sequence") 051public class Sequence extends DomainResource { 052 053 public enum SequenceType { 054 /** 055 * Amino acid sequence 056 */ 057 AA, 058 /** 059 * DNA Sequence 060 */ 061 DNA, 062 /** 063 * RNA Sequence 064 */ 065 RNA, 066 /** 067 * added to help the parsers with the generic types 068 */ 069 NULL; 070 public static SequenceType fromCode(String codeString) throws FHIRException { 071 if (codeString == null || "".equals(codeString)) 072 return null; 073 if ("aa".equals(codeString)) 074 return AA; 075 if ("dna".equals(codeString)) 076 return DNA; 077 if ("rna".equals(codeString)) 078 return RNA; 079 if (Configuration.isAcceptInvalidEnums()) 080 return null; 081 else 082 throw new FHIRException("Unknown SequenceType code '"+codeString+"'"); 083 } 084 public String toCode() { 085 switch (this) { 086 case AA: return "aa"; 087 case DNA: return "dna"; 088 case RNA: return "rna"; 089 case NULL: return null; 090 default: return "?"; 091 } 092 } 093 public String getSystem() { 094 switch (this) { 095 case AA: return "http://hl7.org/fhir/sequence-type"; 096 case DNA: return "http://hl7.org/fhir/sequence-type"; 097 case RNA: return "http://hl7.org/fhir/sequence-type"; 098 case NULL: return null; 099 default: return "?"; 100 } 101 } 102 public String getDefinition() { 103 switch (this) { 104 case AA: return "Amino acid sequence"; 105 case DNA: return "DNA Sequence"; 106 case RNA: return "RNA Sequence"; 107 case NULL: return null; 108 default: return "?"; 109 } 110 } 111 public String getDisplay() { 112 switch (this) { 113 case AA: return "AA Sequence"; 114 case DNA: return "DNA Sequence"; 115 case RNA: return "RNA Sequence"; 116 case NULL: return null; 117 default: return "?"; 118 } 119 } 120 } 121 122 public static class SequenceTypeEnumFactory implements EnumFactory<SequenceType> { 123 public SequenceType fromCode(String codeString) throws IllegalArgumentException { 124 if (codeString == null || "".equals(codeString)) 125 if (codeString == null || "".equals(codeString)) 126 return null; 127 if ("aa".equals(codeString)) 128 return SequenceType.AA; 129 if ("dna".equals(codeString)) 130 return SequenceType.DNA; 131 if ("rna".equals(codeString)) 132 return SequenceType.RNA; 133 throw new IllegalArgumentException("Unknown SequenceType code '"+codeString+"'"); 134 } 135 public Enumeration<SequenceType> fromType(PrimitiveType<?> code) throws FHIRException { 136 if (code == null) 137 return null; 138 if (code.isEmpty()) 139 return new Enumeration<SequenceType>(this); 140 String codeString = code.asStringValue(); 141 if (codeString == null || "".equals(codeString)) 142 return null; 143 if ("aa".equals(codeString)) 144 return new Enumeration<SequenceType>(this, SequenceType.AA); 145 if ("dna".equals(codeString)) 146 return new Enumeration<SequenceType>(this, SequenceType.DNA); 147 if ("rna".equals(codeString)) 148 return new Enumeration<SequenceType>(this, SequenceType.RNA); 149 throw new FHIRException("Unknown SequenceType code '"+codeString+"'"); 150 } 151 public String toCode(SequenceType code) { 152 if (code == SequenceType.NULL) 153 return null; 154 if (code == SequenceType.AA) 155 return "aa"; 156 if (code == SequenceType.DNA) 157 return "dna"; 158 if (code == SequenceType.RNA) 159 return "rna"; 160 return "?"; 161 } 162 public String toSystem(SequenceType code) { 163 return code.getSystem(); 164 } 165 } 166 167 public enum QualityType { 168 /** 169 * INDEL Comparison 170 */ 171 INDEL, 172 /** 173 * SNP Comparison 174 */ 175 SNP, 176 /** 177 * UNKNOWN Comparison 178 */ 179 UNKNOWN, 180 /** 181 * added to help the parsers with the generic types 182 */ 183 NULL; 184 public static QualityType fromCode(String codeString) throws FHIRException { 185 if (codeString == null || "".equals(codeString)) 186 return null; 187 if ("indel".equals(codeString)) 188 return INDEL; 189 if ("snp".equals(codeString)) 190 return SNP; 191 if ("unknown".equals(codeString)) 192 return UNKNOWN; 193 if (Configuration.isAcceptInvalidEnums()) 194 return null; 195 else 196 throw new FHIRException("Unknown QualityType code '"+codeString+"'"); 197 } 198 public String toCode() { 199 switch (this) { 200 case INDEL: return "indel"; 201 case SNP: return "snp"; 202 case UNKNOWN: return "unknown"; 203 case NULL: return null; 204 default: return "?"; 205 } 206 } 207 public String getSystem() { 208 switch (this) { 209 case INDEL: return "http://hl7.org/fhir/quality-type"; 210 case SNP: return "http://hl7.org/fhir/quality-type"; 211 case UNKNOWN: return "http://hl7.org/fhir/quality-type"; 212 case NULL: return null; 213 default: return "?"; 214 } 215 } 216 public String getDefinition() { 217 switch (this) { 218 case INDEL: return "INDEL Comparison"; 219 case SNP: return "SNP Comparison"; 220 case UNKNOWN: return "UNKNOWN Comparison"; 221 case NULL: return null; 222 default: return "?"; 223 } 224 } 225 public String getDisplay() { 226 switch (this) { 227 case INDEL: return "INDEL Comparison"; 228 case SNP: return "SNP Comparison"; 229 case UNKNOWN: return "UNKNOWN Comparison"; 230 case NULL: return null; 231 default: return "?"; 232 } 233 } 234 } 235 236 public static class QualityTypeEnumFactory implements EnumFactory<QualityType> { 237 public QualityType fromCode(String codeString) throws IllegalArgumentException { 238 if (codeString == null || "".equals(codeString)) 239 if (codeString == null || "".equals(codeString)) 240 return null; 241 if ("indel".equals(codeString)) 242 return QualityType.INDEL; 243 if ("snp".equals(codeString)) 244 return QualityType.SNP; 245 if ("unknown".equals(codeString)) 246 return QualityType.UNKNOWN; 247 throw new IllegalArgumentException("Unknown QualityType code '"+codeString+"'"); 248 } 249 public Enumeration<QualityType> fromType(PrimitiveType<?> code) throws FHIRException { 250 if (code == null) 251 return null; 252 if (code.isEmpty()) 253 return new Enumeration<QualityType>(this); 254 String codeString = code.asStringValue(); 255 if (codeString == null || "".equals(codeString)) 256 return null; 257 if ("indel".equals(codeString)) 258 return new Enumeration<QualityType>(this, QualityType.INDEL); 259 if ("snp".equals(codeString)) 260 return new Enumeration<QualityType>(this, QualityType.SNP); 261 if ("unknown".equals(codeString)) 262 return new Enumeration<QualityType>(this, QualityType.UNKNOWN); 263 throw new FHIRException("Unknown QualityType code '"+codeString+"'"); 264 } 265 public String toCode(QualityType code) { 266 if (code == QualityType.NULL) 267 return null; 268 if (code == QualityType.INDEL) 269 return "indel"; 270 if (code == QualityType.SNP) 271 return "snp"; 272 if (code == QualityType.UNKNOWN) 273 return "unknown"; 274 return "?"; 275 } 276 public String toSystem(QualityType code) { 277 return code.getSystem(); 278 } 279 } 280 281 public enum RepositoryType { 282 /** 283 * When URL is clicked, the resource can be seen directly (by webpage or by download link format) 284 */ 285 DIRECTLINK, 286 /** 287 * When the API method (e.g. [base_url]/[parameter]) related with the URL of the website is executed, the resource can be seen directly (usually in JSON or XML format) 288 */ 289 OPENAPI, 290 /** 291 * When logged into the website, the resource can be seen. 292 */ 293 LOGIN, 294 /** 295 * When logged in and follow the API in the website related with URL, the resource can be seen. 296 */ 297 OAUTH, 298 /** 299 * Some other complicated or particular way to get resource from URL. 300 */ 301 OTHER, 302 /** 303 * added to help the parsers with the generic types 304 */ 305 NULL; 306 public static RepositoryType fromCode(String codeString) throws FHIRException { 307 if (codeString == null || "".equals(codeString)) 308 return null; 309 if ("directlink".equals(codeString)) 310 return DIRECTLINK; 311 if ("openapi".equals(codeString)) 312 return OPENAPI; 313 if ("login".equals(codeString)) 314 return LOGIN; 315 if ("oauth".equals(codeString)) 316 return OAUTH; 317 if ("other".equals(codeString)) 318 return OTHER; 319 if (Configuration.isAcceptInvalidEnums()) 320 return null; 321 else 322 throw new FHIRException("Unknown RepositoryType code '"+codeString+"'"); 323 } 324 public String toCode() { 325 switch (this) { 326 case DIRECTLINK: return "directlink"; 327 case OPENAPI: return "openapi"; 328 case LOGIN: return "login"; 329 case OAUTH: return "oauth"; 330 case OTHER: return "other"; 331 case NULL: return null; 332 default: return "?"; 333 } 334 } 335 public String getSystem() { 336 switch (this) { 337 case DIRECTLINK: return "http://hl7.org/fhir/repository-type"; 338 case OPENAPI: return "http://hl7.org/fhir/repository-type"; 339 case LOGIN: return "http://hl7.org/fhir/repository-type"; 340 case OAUTH: return "http://hl7.org/fhir/repository-type"; 341 case OTHER: return "http://hl7.org/fhir/repository-type"; 342 case NULL: return null; 343 default: return "?"; 344 } 345 } 346 public String getDefinition() { 347 switch (this) { 348 case DIRECTLINK: return "When URL is clicked, the resource can be seen directly (by webpage or by download link format)"; 349 case OPENAPI: return "When the API method (e.g. [base_url]/[parameter]) related with the URL of the website is executed, the resource can be seen directly (usually in JSON or XML format)"; 350 case LOGIN: return "When logged into the website, the resource can be seen."; 351 case OAUTH: return "When logged in and follow the API in the website related with URL, the resource can be seen."; 352 case OTHER: return "Some other complicated or particular way to get resource from URL."; 353 case NULL: return null; 354 default: return "?"; 355 } 356 } 357 public String getDisplay() { 358 switch (this) { 359 case DIRECTLINK: return "Click and see"; 360 case OPENAPI: return "The URL is the RESTful or other kind of API that can access to the result."; 361 case LOGIN: return "Result cannot be access unless an account is logged in"; 362 case OAUTH: return "Result need to be fetched with API and need LOGIN( or cookies are required when visiting the link of resource)"; 363 case OTHER: return "Some other complicated or particular way to get resource from URL."; 364 case NULL: return null; 365 default: return "?"; 366 } 367 } 368 } 369 370 public static class RepositoryTypeEnumFactory implements EnumFactory<RepositoryType> { 371 public RepositoryType fromCode(String codeString) throws IllegalArgumentException { 372 if (codeString == null || "".equals(codeString)) 373 if (codeString == null || "".equals(codeString)) 374 return null; 375 if ("directlink".equals(codeString)) 376 return RepositoryType.DIRECTLINK; 377 if ("openapi".equals(codeString)) 378 return RepositoryType.OPENAPI; 379 if ("login".equals(codeString)) 380 return RepositoryType.LOGIN; 381 if ("oauth".equals(codeString)) 382 return RepositoryType.OAUTH; 383 if ("other".equals(codeString)) 384 return RepositoryType.OTHER; 385 throw new IllegalArgumentException("Unknown RepositoryType code '"+codeString+"'"); 386 } 387 public Enumeration<RepositoryType> fromType(PrimitiveType<?> code) throws FHIRException { 388 if (code == null) 389 return null; 390 if (code.isEmpty()) 391 return new Enumeration<RepositoryType>(this); 392 String codeString = code.asStringValue(); 393 if (codeString == null || "".equals(codeString)) 394 return null; 395 if ("directlink".equals(codeString)) 396 return new Enumeration<RepositoryType>(this, RepositoryType.DIRECTLINK); 397 if ("openapi".equals(codeString)) 398 return new Enumeration<RepositoryType>(this, RepositoryType.OPENAPI); 399 if ("login".equals(codeString)) 400 return new Enumeration<RepositoryType>(this, RepositoryType.LOGIN); 401 if ("oauth".equals(codeString)) 402 return new Enumeration<RepositoryType>(this, RepositoryType.OAUTH); 403 if ("other".equals(codeString)) 404 return new Enumeration<RepositoryType>(this, RepositoryType.OTHER); 405 throw new FHIRException("Unknown RepositoryType code '"+codeString+"'"); 406 } 407 public String toCode(RepositoryType code) { 408 if (code == RepositoryType.NULL) 409 return null; 410 if (code == RepositoryType.DIRECTLINK) 411 return "directlink"; 412 if (code == RepositoryType.OPENAPI) 413 return "openapi"; 414 if (code == RepositoryType.LOGIN) 415 return "login"; 416 if (code == RepositoryType.OAUTH) 417 return "oauth"; 418 if (code == RepositoryType.OTHER) 419 return "other"; 420 return "?"; 421 } 422 public String toSystem(RepositoryType code) { 423 return code.getSystem(); 424 } 425 } 426 427 @Block() 428 public static class SequenceReferenceSeqComponent extends BackboneElement implements IBaseBackboneElement { 429 /** 430 * Structural unit composed of a nucleic acid molecule which controls its own replication through the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340)). 431 */ 432 @Child(name = "chromosome", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 433 @Description(shortDefinition="Chromosome containing genetic finding", formalDefinition="Structural unit composed of a nucleic acid molecule which controls its own replication through the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340))." ) 434 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/chromosome-human") 435 protected CodeableConcept chromosome; 436 437 /** 438 * The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'. Version number must be included if a versioned release of a primary build was used. 439 */ 440 @Child(name = "genomeBuild", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true) 441 @Description(shortDefinition="The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'", formalDefinition="The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'. Version number must be included if a versioned release of a primary build was used." ) 442 protected StringType genomeBuild; 443 444 /** 445 * Reference identifier of reference sequence submitted to NCBI. It must match the type in the Sequence.type field. For example, the prefix, ?NG_? identifies reference sequence for genes, ?NM_? for messenger RNA transcripts, and ?NP_? for amino acid sequences. 446 */ 447 @Child(name = "referenceSeqId", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true) 448 @Description(shortDefinition="Reference identifier", formalDefinition="Reference identifier of reference sequence submitted to NCBI. It must match the type in the Sequence.type field. For example, the prefix, ?NG_? identifies reference sequence for genes, ?NM_? for messenger RNA transcripts, and ?NP_? for amino acid sequences." ) 449 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/sequence-referenceSeq") 450 protected CodeableConcept referenceSeqId; 451 452 /** 453 * A Pointer to another Sequence entity as reference sequence. 454 */ 455 @Child(name = "referenceSeqPointer", type = {Sequence.class}, order=4, min=0, max=1, modifier=false, summary=true) 456 @Description(shortDefinition="A Pointer to another Sequence entity as reference sequence", formalDefinition="A Pointer to another Sequence entity as reference sequence." ) 457 protected Reference referenceSeqPointer; 458 459 /** 460 * The actual object that is the target of the reference (A Pointer to another Sequence entity as reference sequence.) 461 */ 462 protected Sequence referenceSeqPointerTarget; 463 464 /** 465 * A string like "ACGT". 466 */ 467 @Child(name = "referenceSeqString", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true) 468 @Description(shortDefinition="A string to represent reference sequence", formalDefinition="A string like \"ACGT\"." ) 469 protected StringType referenceSeqString; 470 471 /** 472 * Directionality of DNA sequence. Available values are "1" for the plus strand (5' to 3')/Watson/Sense/positive and "-1" for the minus strand(3' to 5')/Crick/Antisense/negative. 473 */ 474 @Child(name = "strand", type = {IntegerType.class}, order=6, min=0, max=1, modifier=false, summary=true) 475 @Description(shortDefinition="Directionality of DNA ( +1/-1)", formalDefinition="Directionality of DNA sequence. Available values are \"1\" for the plus strand (5' to 3')/Watson/Sense/positive and \"-1\" for the minus strand(3' to 5')/Crick/Antisense/negative." ) 476 protected IntegerType strand; 477 478 /** 479 * Start position of the window on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 480 */ 481 @Child(name = "windowStart", type = {IntegerType.class}, order=7, min=1, max=1, modifier=false, summary=true) 482 @Description(shortDefinition="Start position of the window on the reference sequence", formalDefinition="Start position of the window on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive." ) 483 protected IntegerType windowStart; 484 485 /** 486 * End position of the window on the reference sequence. If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position. 487 */ 488 @Child(name = "windowEnd", type = {IntegerType.class}, order=8, min=1, max=1, modifier=false, summary=true) 489 @Description(shortDefinition="End position of the window on the reference sequence", formalDefinition="End position of the window on the reference sequence. If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position." ) 490 protected IntegerType windowEnd; 491 492 private static final long serialVersionUID = -1675617731L; 493 494 /** 495 * Constructor 496 */ 497 public SequenceReferenceSeqComponent() { 498 super(); 499 } 500 501 /** 502 * Constructor 503 */ 504 public SequenceReferenceSeqComponent(IntegerType windowStart, IntegerType windowEnd) { 505 super(); 506 this.windowStart = windowStart; 507 this.windowEnd = windowEnd; 508 } 509 510 /** 511 * @return {@link #chromosome} (Structural unit composed of a nucleic acid molecule which controls its own replication through the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340)).) 512 */ 513 public CodeableConcept getChromosome() { 514 if (this.chromosome == null) 515 if (Configuration.errorOnAutoCreate()) 516 throw new Error("Attempt to auto-create SequenceReferenceSeqComponent.chromosome"); 517 else if (Configuration.doAutoCreate()) 518 this.chromosome = new CodeableConcept(); // cc 519 return this.chromosome; 520 } 521 522 public boolean hasChromosome() { 523 return this.chromosome != null && !this.chromosome.isEmpty(); 524 } 525 526 /** 527 * @param value {@link #chromosome} (Structural unit composed of a nucleic acid molecule which controls its own replication through the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340)).) 528 */ 529 public SequenceReferenceSeqComponent setChromosome(CodeableConcept value) { 530 this.chromosome = value; 531 return this; 532 } 533 534 /** 535 * @return {@link #genomeBuild} (The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'. Version number must be included if a versioned release of a primary build was used.). This is the underlying object with id, value and extensions. The accessor "getGenomeBuild" gives direct access to the value 536 */ 537 public StringType getGenomeBuildElement() { 538 if (this.genomeBuild == null) 539 if (Configuration.errorOnAutoCreate()) 540 throw new Error("Attempt to auto-create SequenceReferenceSeqComponent.genomeBuild"); 541 else if (Configuration.doAutoCreate()) 542 this.genomeBuild = new StringType(); // bb 543 return this.genomeBuild; 544 } 545 546 public boolean hasGenomeBuildElement() { 547 return this.genomeBuild != null && !this.genomeBuild.isEmpty(); 548 } 549 550 public boolean hasGenomeBuild() { 551 return this.genomeBuild != null && !this.genomeBuild.isEmpty(); 552 } 553 554 /** 555 * @param value {@link #genomeBuild} (The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'. Version number must be included if a versioned release of a primary build was used.). This is the underlying object with id, value and extensions. The accessor "getGenomeBuild" gives direct access to the value 556 */ 557 public SequenceReferenceSeqComponent setGenomeBuildElement(StringType value) { 558 this.genomeBuild = value; 559 return this; 560 } 561 562 /** 563 * @return The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'. Version number must be included if a versioned release of a primary build was used. 564 */ 565 public String getGenomeBuild() { 566 return this.genomeBuild == null ? null : this.genomeBuild.getValue(); 567 } 568 569 /** 570 * @param value The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'. Version number must be included if a versioned release of a primary build was used. 571 */ 572 public SequenceReferenceSeqComponent setGenomeBuild(String value) { 573 if (Utilities.noString(value)) 574 this.genomeBuild = null; 575 else { 576 if (this.genomeBuild == null) 577 this.genomeBuild = new StringType(); 578 this.genomeBuild.setValue(value); 579 } 580 return this; 581 } 582 583 /** 584 * @return {@link #referenceSeqId} (Reference identifier of reference sequence submitted to NCBI. It must match the type in the Sequence.type field. For example, the prefix, ?NG_? identifies reference sequence for genes, ?NM_? for messenger RNA transcripts, and ?NP_? for amino acid sequences.) 585 */ 586 public CodeableConcept getReferenceSeqId() { 587 if (this.referenceSeqId == null) 588 if (Configuration.errorOnAutoCreate()) 589 throw new Error("Attempt to auto-create SequenceReferenceSeqComponent.referenceSeqId"); 590 else if (Configuration.doAutoCreate()) 591 this.referenceSeqId = new CodeableConcept(); // cc 592 return this.referenceSeqId; 593 } 594 595 public boolean hasReferenceSeqId() { 596 return this.referenceSeqId != null && !this.referenceSeqId.isEmpty(); 597 } 598 599 /** 600 * @param value {@link #referenceSeqId} (Reference identifier of reference sequence submitted to NCBI. It must match the type in the Sequence.type field. For example, the prefix, ?NG_? identifies reference sequence for genes, ?NM_? for messenger RNA transcripts, and ?NP_? for amino acid sequences.) 601 */ 602 public SequenceReferenceSeqComponent setReferenceSeqId(CodeableConcept value) { 603 this.referenceSeqId = value; 604 return this; 605 } 606 607 /** 608 * @return {@link #referenceSeqPointer} (A Pointer to another Sequence entity as reference sequence.) 609 */ 610 public Reference getReferenceSeqPointer() { 611 if (this.referenceSeqPointer == null) 612 if (Configuration.errorOnAutoCreate()) 613 throw new Error("Attempt to auto-create SequenceReferenceSeqComponent.referenceSeqPointer"); 614 else if (Configuration.doAutoCreate()) 615 this.referenceSeqPointer = new Reference(); // cc 616 return this.referenceSeqPointer; 617 } 618 619 public boolean hasReferenceSeqPointer() { 620 return this.referenceSeqPointer != null && !this.referenceSeqPointer.isEmpty(); 621 } 622 623 /** 624 * @param value {@link #referenceSeqPointer} (A Pointer to another Sequence entity as reference sequence.) 625 */ 626 public SequenceReferenceSeqComponent setReferenceSeqPointer(Reference value) { 627 this.referenceSeqPointer = value; 628 return this; 629 } 630 631 /** 632 * @return {@link #referenceSeqPointer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A Pointer to another Sequence entity as reference sequence.) 633 */ 634 public Sequence getReferenceSeqPointerTarget() { 635 if (this.referenceSeqPointerTarget == null) 636 if (Configuration.errorOnAutoCreate()) 637 throw new Error("Attempt to auto-create SequenceReferenceSeqComponent.referenceSeqPointer"); 638 else if (Configuration.doAutoCreate()) 639 this.referenceSeqPointerTarget = new Sequence(); // aa 640 return this.referenceSeqPointerTarget; 641 } 642 643 /** 644 * @param value {@link #referenceSeqPointer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A Pointer to another Sequence entity as reference sequence.) 645 */ 646 public SequenceReferenceSeqComponent setReferenceSeqPointerTarget(Sequence value) { 647 this.referenceSeqPointerTarget = value; 648 return this; 649 } 650 651 /** 652 * @return {@link #referenceSeqString} (A string like "ACGT".). This is the underlying object with id, value and extensions. The accessor "getReferenceSeqString" gives direct access to the value 653 */ 654 public StringType getReferenceSeqStringElement() { 655 if (this.referenceSeqString == null) 656 if (Configuration.errorOnAutoCreate()) 657 throw new Error("Attempt to auto-create SequenceReferenceSeqComponent.referenceSeqString"); 658 else if (Configuration.doAutoCreate()) 659 this.referenceSeqString = new StringType(); // bb 660 return this.referenceSeqString; 661 } 662 663 public boolean hasReferenceSeqStringElement() { 664 return this.referenceSeqString != null && !this.referenceSeqString.isEmpty(); 665 } 666 667 public boolean hasReferenceSeqString() { 668 return this.referenceSeqString != null && !this.referenceSeqString.isEmpty(); 669 } 670 671 /** 672 * @param value {@link #referenceSeqString} (A string like "ACGT".). This is the underlying object with id, value and extensions. The accessor "getReferenceSeqString" gives direct access to the value 673 */ 674 public SequenceReferenceSeqComponent setReferenceSeqStringElement(StringType value) { 675 this.referenceSeqString = value; 676 return this; 677 } 678 679 /** 680 * @return A string like "ACGT". 681 */ 682 public String getReferenceSeqString() { 683 return this.referenceSeqString == null ? null : this.referenceSeqString.getValue(); 684 } 685 686 /** 687 * @param value A string like "ACGT". 688 */ 689 public SequenceReferenceSeqComponent setReferenceSeqString(String value) { 690 if (Utilities.noString(value)) 691 this.referenceSeqString = null; 692 else { 693 if (this.referenceSeqString == null) 694 this.referenceSeqString = new StringType(); 695 this.referenceSeqString.setValue(value); 696 } 697 return this; 698 } 699 700 /** 701 * @return {@link #strand} (Directionality of DNA sequence. Available values are "1" for the plus strand (5' to 3')/Watson/Sense/positive and "-1" for the minus strand(3' to 5')/Crick/Antisense/negative.). This is the underlying object with id, value and extensions. The accessor "getStrand" gives direct access to the value 702 */ 703 public IntegerType getStrandElement() { 704 if (this.strand == null) 705 if (Configuration.errorOnAutoCreate()) 706 throw new Error("Attempt to auto-create SequenceReferenceSeqComponent.strand"); 707 else if (Configuration.doAutoCreate()) 708 this.strand = new IntegerType(); // bb 709 return this.strand; 710 } 711 712 public boolean hasStrandElement() { 713 return this.strand != null && !this.strand.isEmpty(); 714 } 715 716 public boolean hasStrand() { 717 return this.strand != null && !this.strand.isEmpty(); 718 } 719 720 /** 721 * @param value {@link #strand} (Directionality of DNA sequence. Available values are "1" for the plus strand (5' to 3')/Watson/Sense/positive and "-1" for the minus strand(3' to 5')/Crick/Antisense/negative.). This is the underlying object with id, value and extensions. The accessor "getStrand" gives direct access to the value 722 */ 723 public SequenceReferenceSeqComponent setStrandElement(IntegerType value) { 724 this.strand = value; 725 return this; 726 } 727 728 /** 729 * @return Directionality of DNA sequence. Available values are "1" for the plus strand (5' to 3')/Watson/Sense/positive and "-1" for the minus strand(3' to 5')/Crick/Antisense/negative. 730 */ 731 public int getStrand() { 732 return this.strand == null || this.strand.isEmpty() ? 0 : this.strand.getValue(); 733 } 734 735 /** 736 * @param value Directionality of DNA sequence. Available values are "1" for the plus strand (5' to 3')/Watson/Sense/positive and "-1" for the minus strand(3' to 5')/Crick/Antisense/negative. 737 */ 738 public SequenceReferenceSeqComponent setStrand(int value) { 739 if (this.strand == null) 740 this.strand = new IntegerType(); 741 this.strand.setValue(value); 742 return this; 743 } 744 745 /** 746 * @return {@link #windowStart} (Start position of the window on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.). This is the underlying object with id, value and extensions. The accessor "getWindowStart" gives direct access to the value 747 */ 748 public IntegerType getWindowStartElement() { 749 if (this.windowStart == null) 750 if (Configuration.errorOnAutoCreate()) 751 throw new Error("Attempt to auto-create SequenceReferenceSeqComponent.windowStart"); 752 else if (Configuration.doAutoCreate()) 753 this.windowStart = new IntegerType(); // bb 754 return this.windowStart; 755 } 756 757 public boolean hasWindowStartElement() { 758 return this.windowStart != null && !this.windowStart.isEmpty(); 759 } 760 761 public boolean hasWindowStart() { 762 return this.windowStart != null && !this.windowStart.isEmpty(); 763 } 764 765 /** 766 * @param value {@link #windowStart} (Start position of the window on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.). This is the underlying object with id, value and extensions. The accessor "getWindowStart" gives direct access to the value 767 */ 768 public SequenceReferenceSeqComponent setWindowStartElement(IntegerType value) { 769 this.windowStart = value; 770 return this; 771 } 772 773 /** 774 * @return Start position of the window on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 775 */ 776 public int getWindowStart() { 777 return this.windowStart == null || this.windowStart.isEmpty() ? 0 : this.windowStart.getValue(); 778 } 779 780 /** 781 * @param value Start position of the window on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 782 */ 783 public SequenceReferenceSeqComponent setWindowStart(int value) { 784 if (this.windowStart == null) 785 this.windowStart = new IntegerType(); 786 this.windowStart.setValue(value); 787 return this; 788 } 789 790 /** 791 * @return {@link #windowEnd} (End position of the window on the reference sequence. If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.). This is the underlying object with id, value and extensions. The accessor "getWindowEnd" gives direct access to the value 792 */ 793 public IntegerType getWindowEndElement() { 794 if (this.windowEnd == null) 795 if (Configuration.errorOnAutoCreate()) 796 throw new Error("Attempt to auto-create SequenceReferenceSeqComponent.windowEnd"); 797 else if (Configuration.doAutoCreate()) 798 this.windowEnd = new IntegerType(); // bb 799 return this.windowEnd; 800 } 801 802 public boolean hasWindowEndElement() { 803 return this.windowEnd != null && !this.windowEnd.isEmpty(); 804 } 805 806 public boolean hasWindowEnd() { 807 return this.windowEnd != null && !this.windowEnd.isEmpty(); 808 } 809 810 /** 811 * @param value {@link #windowEnd} (End position of the window on the reference sequence. If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.). This is the underlying object with id, value and extensions. The accessor "getWindowEnd" gives direct access to the value 812 */ 813 public SequenceReferenceSeqComponent setWindowEndElement(IntegerType value) { 814 this.windowEnd = value; 815 return this; 816 } 817 818 /** 819 * @return End position of the window on the reference sequence. If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position. 820 */ 821 public int getWindowEnd() { 822 return this.windowEnd == null || this.windowEnd.isEmpty() ? 0 : this.windowEnd.getValue(); 823 } 824 825 /** 826 * @param value End position of the window on the reference sequence. If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position. 827 */ 828 public SequenceReferenceSeqComponent setWindowEnd(int value) { 829 if (this.windowEnd == null) 830 this.windowEnd = new IntegerType(); 831 this.windowEnd.setValue(value); 832 return this; 833 } 834 835 protected void listChildren(List<Property> children) { 836 super.listChildren(children); 837 children.add(new Property("chromosome", "CodeableConcept", "Structural unit composed of a nucleic acid molecule which controls its own replication through the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340)).", 0, 1, chromosome)); 838 children.add(new Property("genomeBuild", "string", "The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'. Version number must be included if a versioned release of a primary build was used.", 0, 1, genomeBuild)); 839 children.add(new Property("referenceSeqId", "CodeableConcept", "Reference identifier of reference sequence submitted to NCBI. It must match the type in the Sequence.type field. For example, the prefix, ?NG_? identifies reference sequence for genes, ?NM_? for messenger RNA transcripts, and ?NP_? for amino acid sequences.", 0, 1, referenceSeqId)); 840 children.add(new Property("referenceSeqPointer", "Reference(Sequence)", "A Pointer to another Sequence entity as reference sequence.", 0, 1, referenceSeqPointer)); 841 children.add(new Property("referenceSeqString", "string", "A string like \"ACGT\".", 0, 1, referenceSeqString)); 842 children.add(new Property("strand", "integer", "Directionality of DNA sequence. Available values are \"1\" for the plus strand (5' to 3')/Watson/Sense/positive and \"-1\" for the minus strand(3' to 5')/Crick/Antisense/negative.", 0, 1, strand)); 843 children.add(new Property("windowStart", "integer", "Start position of the window on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, windowStart)); 844 children.add(new Property("windowEnd", "integer", "End position of the window on the reference sequence. If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.", 0, 1, windowEnd)); 845 } 846 847 @Override 848 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 849 switch (_hash) { 850 case -1499470472: /*chromosome*/ return new Property("chromosome", "CodeableConcept", "Structural unit composed of a nucleic acid molecule which controls its own replication through the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340)).", 0, 1, chromosome); 851 case 1061239735: /*genomeBuild*/ return new Property("genomeBuild", "string", "The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'. Version number must be included if a versioned release of a primary build was used.", 0, 1, genomeBuild); 852 case -1911500465: /*referenceSeqId*/ return new Property("referenceSeqId", "CodeableConcept", "Reference identifier of reference sequence submitted to NCBI. It must match the type in the Sequence.type field. For example, the prefix, ?NG_? identifies reference sequence for genes, ?NM_? for messenger RNA transcripts, and ?NP_? for amino acid sequences.", 0, 1, referenceSeqId); 853 case 1923414665: /*referenceSeqPointer*/ return new Property("referenceSeqPointer", "Reference(Sequence)", "A Pointer to another Sequence entity as reference sequence.", 0, 1, referenceSeqPointer); 854 case -1648301499: /*referenceSeqString*/ return new Property("referenceSeqString", "string", "A string like \"ACGT\".", 0, 1, referenceSeqString); 855 case -891993594: /*strand*/ return new Property("strand", "integer", "Directionality of DNA sequence. Available values are \"1\" for the plus strand (5' to 3')/Watson/Sense/positive and \"-1\" for the minus strand(3' to 5')/Crick/Antisense/negative.", 0, 1, strand); 856 case 1903685202: /*windowStart*/ return new Property("windowStart", "integer", "Start position of the window on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, windowStart); 857 case -217026869: /*windowEnd*/ return new Property("windowEnd", "integer", "End position of the window on the reference sequence. If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.", 0, 1, windowEnd); 858 default: return super.getNamedProperty(_hash, _name, _checkValid); 859 } 860 861 } 862 863 @Override 864 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 865 switch (hash) { 866 case -1499470472: /*chromosome*/ return this.chromosome == null ? new Base[0] : new Base[] {this.chromosome}; // CodeableConcept 867 case 1061239735: /*genomeBuild*/ return this.genomeBuild == null ? new Base[0] : new Base[] {this.genomeBuild}; // StringType 868 case -1911500465: /*referenceSeqId*/ return this.referenceSeqId == null ? new Base[0] : new Base[] {this.referenceSeqId}; // CodeableConcept 869 case 1923414665: /*referenceSeqPointer*/ return this.referenceSeqPointer == null ? new Base[0] : new Base[] {this.referenceSeqPointer}; // Reference 870 case -1648301499: /*referenceSeqString*/ return this.referenceSeqString == null ? new Base[0] : new Base[] {this.referenceSeqString}; // StringType 871 case -891993594: /*strand*/ return this.strand == null ? new Base[0] : new Base[] {this.strand}; // IntegerType 872 case 1903685202: /*windowStart*/ return this.windowStart == null ? new Base[0] : new Base[] {this.windowStart}; // IntegerType 873 case -217026869: /*windowEnd*/ return this.windowEnd == null ? new Base[0] : new Base[] {this.windowEnd}; // IntegerType 874 default: return super.getProperty(hash, name, checkValid); 875 } 876 877 } 878 879 @Override 880 public Base setProperty(int hash, String name, Base value) throws FHIRException { 881 switch (hash) { 882 case -1499470472: // chromosome 883 this.chromosome = castToCodeableConcept(value); // CodeableConcept 884 return value; 885 case 1061239735: // genomeBuild 886 this.genomeBuild = castToString(value); // StringType 887 return value; 888 case -1911500465: // referenceSeqId 889 this.referenceSeqId = castToCodeableConcept(value); // CodeableConcept 890 return value; 891 case 1923414665: // referenceSeqPointer 892 this.referenceSeqPointer = castToReference(value); // Reference 893 return value; 894 case -1648301499: // referenceSeqString 895 this.referenceSeqString = castToString(value); // StringType 896 return value; 897 case -891993594: // strand 898 this.strand = castToInteger(value); // IntegerType 899 return value; 900 case 1903685202: // windowStart 901 this.windowStart = castToInteger(value); // IntegerType 902 return value; 903 case -217026869: // windowEnd 904 this.windowEnd = castToInteger(value); // IntegerType 905 return value; 906 default: return super.setProperty(hash, name, value); 907 } 908 909 } 910 911 @Override 912 public Base setProperty(String name, Base value) throws FHIRException { 913 if (name.equals("chromosome")) { 914 this.chromosome = castToCodeableConcept(value); // CodeableConcept 915 } else if (name.equals("genomeBuild")) { 916 this.genomeBuild = castToString(value); // StringType 917 } else if (name.equals("referenceSeqId")) { 918 this.referenceSeqId = castToCodeableConcept(value); // CodeableConcept 919 } else if (name.equals("referenceSeqPointer")) { 920 this.referenceSeqPointer = castToReference(value); // Reference 921 } else if (name.equals("referenceSeqString")) { 922 this.referenceSeqString = castToString(value); // StringType 923 } else if (name.equals("strand")) { 924 this.strand = castToInteger(value); // IntegerType 925 } else if (name.equals("windowStart")) { 926 this.windowStart = castToInteger(value); // IntegerType 927 } else if (name.equals("windowEnd")) { 928 this.windowEnd = castToInteger(value); // IntegerType 929 } else 930 return super.setProperty(name, value); 931 return value; 932 } 933 934 @Override 935 public Base makeProperty(int hash, String name) throws FHIRException { 936 switch (hash) { 937 case -1499470472: return getChromosome(); 938 case 1061239735: return getGenomeBuildElement(); 939 case -1911500465: return getReferenceSeqId(); 940 case 1923414665: return getReferenceSeqPointer(); 941 case -1648301499: return getReferenceSeqStringElement(); 942 case -891993594: return getStrandElement(); 943 case 1903685202: return getWindowStartElement(); 944 case -217026869: return getWindowEndElement(); 945 default: return super.makeProperty(hash, name); 946 } 947 948 } 949 950 @Override 951 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 952 switch (hash) { 953 case -1499470472: /*chromosome*/ return new String[] {"CodeableConcept"}; 954 case 1061239735: /*genomeBuild*/ return new String[] {"string"}; 955 case -1911500465: /*referenceSeqId*/ return new String[] {"CodeableConcept"}; 956 case 1923414665: /*referenceSeqPointer*/ return new String[] {"Reference"}; 957 case -1648301499: /*referenceSeqString*/ return new String[] {"string"}; 958 case -891993594: /*strand*/ return new String[] {"integer"}; 959 case 1903685202: /*windowStart*/ return new String[] {"integer"}; 960 case -217026869: /*windowEnd*/ return new String[] {"integer"}; 961 default: return super.getTypesForProperty(hash, name); 962 } 963 964 } 965 966 @Override 967 public Base addChild(String name) throws FHIRException { 968 if (name.equals("chromosome")) { 969 this.chromosome = new CodeableConcept(); 970 return this.chromosome; 971 } 972 else if (name.equals("genomeBuild")) { 973 throw new FHIRException("Cannot call addChild on a singleton property Sequence.genomeBuild"); 974 } 975 else if (name.equals("referenceSeqId")) { 976 this.referenceSeqId = new CodeableConcept(); 977 return this.referenceSeqId; 978 } 979 else if (name.equals("referenceSeqPointer")) { 980 this.referenceSeqPointer = new Reference(); 981 return this.referenceSeqPointer; 982 } 983 else if (name.equals("referenceSeqString")) { 984 throw new FHIRException("Cannot call addChild on a singleton property Sequence.referenceSeqString"); 985 } 986 else if (name.equals("strand")) { 987 throw new FHIRException("Cannot call addChild on a singleton property Sequence.strand"); 988 } 989 else if (name.equals("windowStart")) { 990 throw new FHIRException("Cannot call addChild on a singleton property Sequence.windowStart"); 991 } 992 else if (name.equals("windowEnd")) { 993 throw new FHIRException("Cannot call addChild on a singleton property Sequence.windowEnd"); 994 } 995 else 996 return super.addChild(name); 997 } 998 999 public SequenceReferenceSeqComponent copy() { 1000 SequenceReferenceSeqComponent dst = new SequenceReferenceSeqComponent(); 1001 copyValues(dst); 1002 dst.chromosome = chromosome == null ? null : chromosome.copy(); 1003 dst.genomeBuild = genomeBuild == null ? null : genomeBuild.copy(); 1004 dst.referenceSeqId = referenceSeqId == null ? null : referenceSeqId.copy(); 1005 dst.referenceSeqPointer = referenceSeqPointer == null ? null : referenceSeqPointer.copy(); 1006 dst.referenceSeqString = referenceSeqString == null ? null : referenceSeqString.copy(); 1007 dst.strand = strand == null ? null : strand.copy(); 1008 dst.windowStart = windowStart == null ? null : windowStart.copy(); 1009 dst.windowEnd = windowEnd == null ? null : windowEnd.copy(); 1010 return dst; 1011 } 1012 1013 @Override 1014 public boolean equalsDeep(Base other_) { 1015 if (!super.equalsDeep(other_)) 1016 return false; 1017 if (!(other_ instanceof SequenceReferenceSeqComponent)) 1018 return false; 1019 SequenceReferenceSeqComponent o = (SequenceReferenceSeqComponent) other_; 1020 return compareDeep(chromosome, o.chromosome, true) && compareDeep(genomeBuild, o.genomeBuild, true) 1021 && compareDeep(referenceSeqId, o.referenceSeqId, true) && compareDeep(referenceSeqPointer, o.referenceSeqPointer, true) 1022 && compareDeep(referenceSeqString, o.referenceSeqString, true) && compareDeep(strand, o.strand, true) 1023 && compareDeep(windowStart, o.windowStart, true) && compareDeep(windowEnd, o.windowEnd, true); 1024 } 1025 1026 @Override 1027 public boolean equalsShallow(Base other_) { 1028 if (!super.equalsShallow(other_)) 1029 return false; 1030 if (!(other_ instanceof SequenceReferenceSeqComponent)) 1031 return false; 1032 SequenceReferenceSeqComponent o = (SequenceReferenceSeqComponent) other_; 1033 return compareValues(genomeBuild, o.genomeBuild, true) && compareValues(referenceSeqString, o.referenceSeqString, true) 1034 && compareValues(strand, o.strand, true) && compareValues(windowStart, o.windowStart, true) && compareValues(windowEnd, o.windowEnd, true) 1035 ; 1036 } 1037 1038 public boolean isEmpty() { 1039 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(chromosome, genomeBuild, referenceSeqId 1040 , referenceSeqPointer, referenceSeqString, strand, windowStart, windowEnd); 1041 } 1042 1043 public String fhirType() { 1044 return "Sequence.referenceSeq"; 1045 1046 } 1047 1048 } 1049 1050 @Block() 1051 public static class SequenceVariantComponent extends BackboneElement implements IBaseBackboneElement { 1052 /** 1053 * Start position of the variant on the reference sequence.If the coordinate system is either 0-based or 1-based, then start position is inclusive. 1054 */ 1055 @Child(name = "start", type = {IntegerType.class}, order=1, min=0, max=1, modifier=false, summary=true) 1056 @Description(shortDefinition="Start position of the variant on the reference sequence", formalDefinition="Start position of the variant on the reference sequence.If the coordinate system is either 0-based or 1-based, then start position is inclusive." ) 1057 protected IntegerType start; 1058 1059 /** 1060 * End position of the variant on the reference sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position. 1061 */ 1062 @Child(name = "end", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=true) 1063 @Description(shortDefinition="End position of the variant on the reference sequence", formalDefinition="End position of the variant on the reference sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position." ) 1064 protected IntegerType end; 1065 1066 /** 1067 * An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end. 1068 */ 1069 @Child(name = "observedAllele", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true) 1070 @Description(shortDefinition="Allele that was observed", formalDefinition="An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end." ) 1071 protected StringType observedAllele; 1072 1073 /** 1074 * An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the reference sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end. 1075 */ 1076 @Child(name = "referenceAllele", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 1077 @Description(shortDefinition="Allele in the reference sequence", formalDefinition="An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the reference sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end." ) 1078 protected StringType referenceAllele; 1079 1080 /** 1081 * Extended CIGAR string for aligning the sequence with reference bases. See detailed documentation [here](http://support.illumina.com/help/SequencingAnalysisWorkflow/Content/Vault/Informatics/Sequencing_Analysis/CASAVA/swSEQ_mCA_ExtendedCIGARFormat.htm). 1082 */ 1083 @Child(name = "cigar", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true) 1084 @Description(shortDefinition="Extended CIGAR string for aligning the sequence with reference bases", formalDefinition="Extended CIGAR string for aligning the sequence with reference bases. See detailed documentation [here](http://support.illumina.com/help/SequencingAnalysisWorkflow/Content/Vault/Informatics/Sequencing_Analysis/CASAVA/swSEQ_mCA_ExtendedCIGARFormat.htm)." ) 1085 protected StringType cigar; 1086 1087 /** 1088 * A pointer to an Observation containing variant information. 1089 */ 1090 @Child(name = "variantPointer", type = {Observation.class}, order=6, min=0, max=1, modifier=false, summary=true) 1091 @Description(shortDefinition="Pointer to observed variant information", formalDefinition="A pointer to an Observation containing variant information." ) 1092 protected Reference variantPointer; 1093 1094 /** 1095 * The actual object that is the target of the reference (A pointer to an Observation containing variant information.) 1096 */ 1097 protected Observation variantPointerTarget; 1098 1099 private static final long serialVersionUID = 105611837L; 1100 1101 /** 1102 * Constructor 1103 */ 1104 public SequenceVariantComponent() { 1105 super(); 1106 } 1107 1108 /** 1109 * @return {@link #start} (Start position of the variant on the reference sequence.If the coordinate system is either 0-based or 1-based, then start position is inclusive.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value 1110 */ 1111 public IntegerType getStartElement() { 1112 if (this.start == null) 1113 if (Configuration.errorOnAutoCreate()) 1114 throw new Error("Attempt to auto-create SequenceVariantComponent.start"); 1115 else if (Configuration.doAutoCreate()) 1116 this.start = new IntegerType(); // bb 1117 return this.start; 1118 } 1119 1120 public boolean hasStartElement() { 1121 return this.start != null && !this.start.isEmpty(); 1122 } 1123 1124 public boolean hasStart() { 1125 return this.start != null && !this.start.isEmpty(); 1126 } 1127 1128 /** 1129 * @param value {@link #start} (Start position of the variant on the reference sequence.If the coordinate system is either 0-based or 1-based, then start position is inclusive.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value 1130 */ 1131 public SequenceVariantComponent setStartElement(IntegerType value) { 1132 this.start = value; 1133 return this; 1134 } 1135 1136 /** 1137 * @return Start position of the variant on the reference sequence.If the coordinate system is either 0-based or 1-based, then start position is inclusive. 1138 */ 1139 public int getStart() { 1140 return this.start == null || this.start.isEmpty() ? 0 : this.start.getValue(); 1141 } 1142 1143 /** 1144 * @param value Start position of the variant on the reference sequence.If the coordinate system is either 0-based or 1-based, then start position is inclusive. 1145 */ 1146 public SequenceVariantComponent setStart(int value) { 1147 if (this.start == null) 1148 this.start = new IntegerType(); 1149 this.start.setValue(value); 1150 return this; 1151 } 1152 1153 /** 1154 * @return {@link #end} (End position of the variant on the reference sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value 1155 */ 1156 public IntegerType getEndElement() { 1157 if (this.end == null) 1158 if (Configuration.errorOnAutoCreate()) 1159 throw new Error("Attempt to auto-create SequenceVariantComponent.end"); 1160 else if (Configuration.doAutoCreate()) 1161 this.end = new IntegerType(); // bb 1162 return this.end; 1163 } 1164 1165 public boolean hasEndElement() { 1166 return this.end != null && !this.end.isEmpty(); 1167 } 1168 1169 public boolean hasEnd() { 1170 return this.end != null && !this.end.isEmpty(); 1171 } 1172 1173 /** 1174 * @param value {@link #end} (End position of the variant on the reference sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value 1175 */ 1176 public SequenceVariantComponent setEndElement(IntegerType value) { 1177 this.end = value; 1178 return this; 1179 } 1180 1181 /** 1182 * @return End position of the variant on the reference sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position. 1183 */ 1184 public int getEnd() { 1185 return this.end == null || this.end.isEmpty() ? 0 : this.end.getValue(); 1186 } 1187 1188 /** 1189 * @param value End position of the variant on the reference sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position. 1190 */ 1191 public SequenceVariantComponent setEnd(int value) { 1192 if (this.end == null) 1193 this.end = new IntegerType(); 1194 this.end.setValue(value); 1195 return this; 1196 } 1197 1198 /** 1199 * @return {@link #observedAllele} (An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.). This is the underlying object with id, value and extensions. The accessor "getObservedAllele" gives direct access to the value 1200 */ 1201 public StringType getObservedAlleleElement() { 1202 if (this.observedAllele == null) 1203 if (Configuration.errorOnAutoCreate()) 1204 throw new Error("Attempt to auto-create SequenceVariantComponent.observedAllele"); 1205 else if (Configuration.doAutoCreate()) 1206 this.observedAllele = new StringType(); // bb 1207 return this.observedAllele; 1208 } 1209 1210 public boolean hasObservedAlleleElement() { 1211 return this.observedAllele != null && !this.observedAllele.isEmpty(); 1212 } 1213 1214 public boolean hasObservedAllele() { 1215 return this.observedAllele != null && !this.observedAllele.isEmpty(); 1216 } 1217 1218 /** 1219 * @param value {@link #observedAllele} (An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.). This is the underlying object with id, value and extensions. The accessor "getObservedAllele" gives direct access to the value 1220 */ 1221 public SequenceVariantComponent setObservedAlleleElement(StringType value) { 1222 this.observedAllele = value; 1223 return this; 1224 } 1225 1226 /** 1227 * @return An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end. 1228 */ 1229 public String getObservedAllele() { 1230 return this.observedAllele == null ? null : this.observedAllele.getValue(); 1231 } 1232 1233 /** 1234 * @param value An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end. 1235 */ 1236 public SequenceVariantComponent setObservedAllele(String value) { 1237 if (Utilities.noString(value)) 1238 this.observedAllele = null; 1239 else { 1240 if (this.observedAllele == null) 1241 this.observedAllele = new StringType(); 1242 this.observedAllele.setValue(value); 1243 } 1244 return this; 1245 } 1246 1247 /** 1248 * @return {@link #referenceAllele} (An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the reference sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.). This is the underlying object with id, value and extensions. The accessor "getReferenceAllele" gives direct access to the value 1249 */ 1250 public StringType getReferenceAlleleElement() { 1251 if (this.referenceAllele == null) 1252 if (Configuration.errorOnAutoCreate()) 1253 throw new Error("Attempt to auto-create SequenceVariantComponent.referenceAllele"); 1254 else if (Configuration.doAutoCreate()) 1255 this.referenceAllele = new StringType(); // bb 1256 return this.referenceAllele; 1257 } 1258 1259 public boolean hasReferenceAlleleElement() { 1260 return this.referenceAllele != null && !this.referenceAllele.isEmpty(); 1261 } 1262 1263 public boolean hasReferenceAllele() { 1264 return this.referenceAllele != null && !this.referenceAllele.isEmpty(); 1265 } 1266 1267 /** 1268 * @param value {@link #referenceAllele} (An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the reference sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.). This is the underlying object with id, value and extensions. The accessor "getReferenceAllele" gives direct access to the value 1269 */ 1270 public SequenceVariantComponent setReferenceAlleleElement(StringType value) { 1271 this.referenceAllele = value; 1272 return this; 1273 } 1274 1275 /** 1276 * @return An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the reference sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end. 1277 */ 1278 public String getReferenceAllele() { 1279 return this.referenceAllele == null ? null : this.referenceAllele.getValue(); 1280 } 1281 1282 /** 1283 * @param value An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the reference sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end. 1284 */ 1285 public SequenceVariantComponent setReferenceAllele(String value) { 1286 if (Utilities.noString(value)) 1287 this.referenceAllele = null; 1288 else { 1289 if (this.referenceAllele == null) 1290 this.referenceAllele = new StringType(); 1291 this.referenceAllele.setValue(value); 1292 } 1293 return this; 1294 } 1295 1296 /** 1297 * @return {@link #cigar} (Extended CIGAR string for aligning the sequence with reference bases. See detailed documentation [here](http://support.illumina.com/help/SequencingAnalysisWorkflow/Content/Vault/Informatics/Sequencing_Analysis/CASAVA/swSEQ_mCA_ExtendedCIGARFormat.htm).). This is the underlying object with id, value and extensions. The accessor "getCigar" gives direct access to the value 1298 */ 1299 public StringType getCigarElement() { 1300 if (this.cigar == null) 1301 if (Configuration.errorOnAutoCreate()) 1302 throw new Error("Attempt to auto-create SequenceVariantComponent.cigar"); 1303 else if (Configuration.doAutoCreate()) 1304 this.cigar = new StringType(); // bb 1305 return this.cigar; 1306 } 1307 1308 public boolean hasCigarElement() { 1309 return this.cigar != null && !this.cigar.isEmpty(); 1310 } 1311 1312 public boolean hasCigar() { 1313 return this.cigar != null && !this.cigar.isEmpty(); 1314 } 1315 1316 /** 1317 * @param value {@link #cigar} (Extended CIGAR string for aligning the sequence with reference bases. See detailed documentation [here](http://support.illumina.com/help/SequencingAnalysisWorkflow/Content/Vault/Informatics/Sequencing_Analysis/CASAVA/swSEQ_mCA_ExtendedCIGARFormat.htm).). This is the underlying object with id, value and extensions. The accessor "getCigar" gives direct access to the value 1318 */ 1319 public SequenceVariantComponent setCigarElement(StringType value) { 1320 this.cigar = value; 1321 return this; 1322 } 1323 1324 /** 1325 * @return Extended CIGAR string for aligning the sequence with reference bases. See detailed documentation [here](http://support.illumina.com/help/SequencingAnalysisWorkflow/Content/Vault/Informatics/Sequencing_Analysis/CASAVA/swSEQ_mCA_ExtendedCIGARFormat.htm). 1326 */ 1327 public String getCigar() { 1328 return this.cigar == null ? null : this.cigar.getValue(); 1329 } 1330 1331 /** 1332 * @param value Extended CIGAR string for aligning the sequence with reference bases. See detailed documentation [here](http://support.illumina.com/help/SequencingAnalysisWorkflow/Content/Vault/Informatics/Sequencing_Analysis/CASAVA/swSEQ_mCA_ExtendedCIGARFormat.htm). 1333 */ 1334 public SequenceVariantComponent setCigar(String value) { 1335 if (Utilities.noString(value)) 1336 this.cigar = null; 1337 else { 1338 if (this.cigar == null) 1339 this.cigar = new StringType(); 1340 this.cigar.setValue(value); 1341 } 1342 return this; 1343 } 1344 1345 /** 1346 * @return {@link #variantPointer} (A pointer to an Observation containing variant information.) 1347 */ 1348 public Reference getVariantPointer() { 1349 if (this.variantPointer == null) 1350 if (Configuration.errorOnAutoCreate()) 1351 throw new Error("Attempt to auto-create SequenceVariantComponent.variantPointer"); 1352 else if (Configuration.doAutoCreate()) 1353 this.variantPointer = new Reference(); // cc 1354 return this.variantPointer; 1355 } 1356 1357 public boolean hasVariantPointer() { 1358 return this.variantPointer != null && !this.variantPointer.isEmpty(); 1359 } 1360 1361 /** 1362 * @param value {@link #variantPointer} (A pointer to an Observation containing variant information.) 1363 */ 1364 public SequenceVariantComponent setVariantPointer(Reference value) { 1365 this.variantPointer = value; 1366 return this; 1367 } 1368 1369 /** 1370 * @return {@link #variantPointer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A pointer to an Observation containing variant information.) 1371 */ 1372 public Observation getVariantPointerTarget() { 1373 if (this.variantPointerTarget == null) 1374 if (Configuration.errorOnAutoCreate()) 1375 throw new Error("Attempt to auto-create SequenceVariantComponent.variantPointer"); 1376 else if (Configuration.doAutoCreate()) 1377 this.variantPointerTarget = new Observation(); // aa 1378 return this.variantPointerTarget; 1379 } 1380 1381 /** 1382 * @param value {@link #variantPointer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A pointer to an Observation containing variant information.) 1383 */ 1384 public SequenceVariantComponent setVariantPointerTarget(Observation value) { 1385 this.variantPointerTarget = value; 1386 return this; 1387 } 1388 1389 protected void listChildren(List<Property> children) { 1390 super.listChildren(children); 1391 children.add(new Property("start", "integer", "Start position of the variant on the reference sequence.If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, start)); 1392 children.add(new Property("end", "integer", "End position of the variant on the reference sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.", 0, 1, end)); 1393 children.add(new Property("observedAllele", "string", "An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.", 0, 1, observedAllele)); 1394 children.add(new Property("referenceAllele", "string", "An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the reference sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.", 0, 1, referenceAllele)); 1395 children.add(new Property("cigar", "string", "Extended CIGAR string for aligning the sequence with reference bases. See detailed documentation [here](http://support.illumina.com/help/SequencingAnalysisWorkflow/Content/Vault/Informatics/Sequencing_Analysis/CASAVA/swSEQ_mCA_ExtendedCIGARFormat.htm).", 0, 1, cigar)); 1396 children.add(new Property("variantPointer", "Reference(Observation)", "A pointer to an Observation containing variant information.", 0, 1, variantPointer)); 1397 } 1398 1399 @Override 1400 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1401 switch (_hash) { 1402 case 109757538: /*start*/ return new Property("start", "integer", "Start position of the variant on the reference sequence.If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, start); 1403 case 100571: /*end*/ return new Property("end", "integer", "End position of the variant on the reference sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.", 0, 1, end); 1404 case -1418745787: /*observedAllele*/ return new Property("observedAllele", "string", "An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.", 0, 1, observedAllele); 1405 case 364045960: /*referenceAllele*/ return new Property("referenceAllele", "string", "An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the reference sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end.", 0, 1, referenceAllele); 1406 case 94658738: /*cigar*/ return new Property("cigar", "string", "Extended CIGAR string for aligning the sequence with reference bases. See detailed documentation [here](http://support.illumina.com/help/SequencingAnalysisWorkflow/Content/Vault/Informatics/Sequencing_Analysis/CASAVA/swSEQ_mCA_ExtendedCIGARFormat.htm).", 0, 1, cigar); 1407 case -1654319624: /*variantPointer*/ return new Property("variantPointer", "Reference(Observation)", "A pointer to an Observation containing variant information.", 0, 1, variantPointer); 1408 default: return super.getNamedProperty(_hash, _name, _checkValid); 1409 } 1410 1411 } 1412 1413 @Override 1414 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1415 switch (hash) { 1416 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // IntegerType 1417 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // IntegerType 1418 case -1418745787: /*observedAllele*/ return this.observedAllele == null ? new Base[0] : new Base[] {this.observedAllele}; // StringType 1419 case 364045960: /*referenceAllele*/ return this.referenceAllele == null ? new Base[0] : new Base[] {this.referenceAllele}; // StringType 1420 case 94658738: /*cigar*/ return this.cigar == null ? new Base[0] : new Base[] {this.cigar}; // StringType 1421 case -1654319624: /*variantPointer*/ return this.variantPointer == null ? new Base[0] : new Base[] {this.variantPointer}; // Reference 1422 default: return super.getProperty(hash, name, checkValid); 1423 } 1424 1425 } 1426 1427 @Override 1428 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1429 switch (hash) { 1430 case 109757538: // start 1431 this.start = castToInteger(value); // IntegerType 1432 return value; 1433 case 100571: // end 1434 this.end = castToInteger(value); // IntegerType 1435 return value; 1436 case -1418745787: // observedAllele 1437 this.observedAllele = castToString(value); // StringType 1438 return value; 1439 case 364045960: // referenceAllele 1440 this.referenceAllele = castToString(value); // StringType 1441 return value; 1442 case 94658738: // cigar 1443 this.cigar = castToString(value); // StringType 1444 return value; 1445 case -1654319624: // variantPointer 1446 this.variantPointer = castToReference(value); // Reference 1447 return value; 1448 default: return super.setProperty(hash, name, value); 1449 } 1450 1451 } 1452 1453 @Override 1454 public Base setProperty(String name, Base value) throws FHIRException { 1455 if (name.equals("start")) { 1456 this.start = castToInteger(value); // IntegerType 1457 } else if (name.equals("end")) { 1458 this.end = castToInteger(value); // IntegerType 1459 } else if (name.equals("observedAllele")) { 1460 this.observedAllele = castToString(value); // StringType 1461 } else if (name.equals("referenceAllele")) { 1462 this.referenceAllele = castToString(value); // StringType 1463 } else if (name.equals("cigar")) { 1464 this.cigar = castToString(value); // StringType 1465 } else if (name.equals("variantPointer")) { 1466 this.variantPointer = castToReference(value); // Reference 1467 } else 1468 return super.setProperty(name, value); 1469 return value; 1470 } 1471 1472 @Override 1473 public Base makeProperty(int hash, String name) throws FHIRException { 1474 switch (hash) { 1475 case 109757538: return getStartElement(); 1476 case 100571: return getEndElement(); 1477 case -1418745787: return getObservedAlleleElement(); 1478 case 364045960: return getReferenceAlleleElement(); 1479 case 94658738: return getCigarElement(); 1480 case -1654319624: return getVariantPointer(); 1481 default: return super.makeProperty(hash, name); 1482 } 1483 1484 } 1485 1486 @Override 1487 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1488 switch (hash) { 1489 case 109757538: /*start*/ return new String[] {"integer"}; 1490 case 100571: /*end*/ return new String[] {"integer"}; 1491 case -1418745787: /*observedAllele*/ return new String[] {"string"}; 1492 case 364045960: /*referenceAllele*/ return new String[] {"string"}; 1493 case 94658738: /*cigar*/ return new String[] {"string"}; 1494 case -1654319624: /*variantPointer*/ return new String[] {"Reference"}; 1495 default: return super.getTypesForProperty(hash, name); 1496 } 1497 1498 } 1499 1500 @Override 1501 public Base addChild(String name) throws FHIRException { 1502 if (name.equals("start")) { 1503 throw new FHIRException("Cannot call addChild on a singleton property Sequence.start"); 1504 } 1505 else if (name.equals("end")) { 1506 throw new FHIRException("Cannot call addChild on a singleton property Sequence.end"); 1507 } 1508 else if (name.equals("observedAllele")) { 1509 throw new FHIRException("Cannot call addChild on a singleton property Sequence.observedAllele"); 1510 } 1511 else if (name.equals("referenceAllele")) { 1512 throw new FHIRException("Cannot call addChild on a singleton property Sequence.referenceAllele"); 1513 } 1514 else if (name.equals("cigar")) { 1515 throw new FHIRException("Cannot call addChild on a singleton property Sequence.cigar"); 1516 } 1517 else if (name.equals("variantPointer")) { 1518 this.variantPointer = new Reference(); 1519 return this.variantPointer; 1520 } 1521 else 1522 return super.addChild(name); 1523 } 1524 1525 public SequenceVariantComponent copy() { 1526 SequenceVariantComponent dst = new SequenceVariantComponent(); 1527 copyValues(dst); 1528 dst.start = start == null ? null : start.copy(); 1529 dst.end = end == null ? null : end.copy(); 1530 dst.observedAllele = observedAllele == null ? null : observedAllele.copy(); 1531 dst.referenceAllele = referenceAllele == null ? null : referenceAllele.copy(); 1532 dst.cigar = cigar == null ? null : cigar.copy(); 1533 dst.variantPointer = variantPointer == null ? null : variantPointer.copy(); 1534 return dst; 1535 } 1536 1537 @Override 1538 public boolean equalsDeep(Base other_) { 1539 if (!super.equalsDeep(other_)) 1540 return false; 1541 if (!(other_ instanceof SequenceVariantComponent)) 1542 return false; 1543 SequenceVariantComponent o = (SequenceVariantComponent) other_; 1544 return compareDeep(start, o.start, true) && compareDeep(end, o.end, true) && compareDeep(observedAllele, o.observedAllele, true) 1545 && compareDeep(referenceAllele, o.referenceAllele, true) && compareDeep(cigar, o.cigar, true) && compareDeep(variantPointer, o.variantPointer, true) 1546 ; 1547 } 1548 1549 @Override 1550 public boolean equalsShallow(Base other_) { 1551 if (!super.equalsShallow(other_)) 1552 return false; 1553 if (!(other_ instanceof SequenceVariantComponent)) 1554 return false; 1555 SequenceVariantComponent o = (SequenceVariantComponent) other_; 1556 return compareValues(start, o.start, true) && compareValues(end, o.end, true) && compareValues(observedAllele, o.observedAllele, true) 1557 && compareValues(referenceAllele, o.referenceAllele, true) && compareValues(cigar, o.cigar, true); 1558 } 1559 1560 public boolean isEmpty() { 1561 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(start, end, observedAllele 1562 , referenceAllele, cigar, variantPointer); 1563 } 1564 1565 public String fhirType() { 1566 return "Sequence.variant"; 1567 1568 } 1569 1570 } 1571 1572 @Block() 1573 public static class SequenceQualityComponent extends BackboneElement implements IBaseBackboneElement { 1574 /** 1575 * INDEL / SNP / Undefined variant. 1576 */ 1577 @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 1578 @Description(shortDefinition="indel | snp | unknown", formalDefinition="INDEL / SNP / Undefined variant." ) 1579 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/quality-type") 1580 protected Enumeration<QualityType> type; 1581 1582 /** 1583 * Gold standard sequence used for comparing against. 1584 */ 1585 @Child(name = "standardSequence", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 1586 @Description(shortDefinition="Standard sequence for comparison", formalDefinition="Gold standard sequence used for comparing against." ) 1587 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/sequence-quality-standardSequence") 1588 protected CodeableConcept standardSequence; 1589 1590 /** 1591 * Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 1592 */ 1593 @Child(name = "start", type = {IntegerType.class}, order=3, min=0, max=1, modifier=false, summary=true) 1594 @Description(shortDefinition="Start position of the sequence", formalDefinition="Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive." ) 1595 protected IntegerType start; 1596 1597 /** 1598 * End position of the sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position. 1599 */ 1600 @Child(name = "end", type = {IntegerType.class}, order=4, min=0, max=1, modifier=false, summary=true) 1601 @Description(shortDefinition="End position of the sequence", formalDefinition="End position of the sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position." ) 1602 protected IntegerType end; 1603 1604 /** 1605 * The score of an experimentally derived feature such as a p-value ([SO:0001685](http://www.sequenceontology.org/browser/current_svn/term/SO:0001685)). 1606 */ 1607 @Child(name = "score", type = {Quantity.class}, order=5, min=0, max=1, modifier=false, summary=true) 1608 @Description(shortDefinition="Quality score for the comparison", formalDefinition="The score of an experimentally derived feature such as a p-value ([SO:0001685](http://www.sequenceontology.org/browser/current_svn/term/SO:0001685))." ) 1609 protected Quantity score; 1610 1611 /** 1612 * Which method is used to get sequence quality. 1613 */ 1614 @Child(name = "method", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=true) 1615 @Description(shortDefinition="Method to get quality", formalDefinition="Which method is used to get sequence quality." ) 1616 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/sequence-quality-method") 1617 protected CodeableConcept method; 1618 1619 /** 1620 * True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 1621 */ 1622 @Child(name = "truthTP", type = {DecimalType.class}, order=7, min=0, max=1, modifier=false, summary=true) 1623 @Description(shortDefinition="True positives from the perspective of the truth data", formalDefinition="True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event." ) 1624 protected DecimalType truthTP; 1625 1626 /** 1627 * True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 1628 */ 1629 @Child(name = "queryTP", type = {DecimalType.class}, order=8, min=0, max=1, modifier=false, summary=true) 1630 @Description(shortDefinition="True positives from the perspective of the query data", formalDefinition="True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event." ) 1631 protected DecimalType queryTP; 1632 1633 /** 1634 * False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here. 1635 */ 1636 @Child(name = "truthFN", type = {DecimalType.class}, order=9, min=0, max=1, modifier=false, summary=true) 1637 @Description(shortDefinition="False negatives", formalDefinition="False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here." ) 1638 protected DecimalType truthFN; 1639 1640 /** 1641 * False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here. 1642 */ 1643 @Child(name = "queryFP", type = {DecimalType.class}, order=10, min=0, max=1, modifier=false, summary=true) 1644 @Description(shortDefinition="False positives", formalDefinition="False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here." ) 1645 protected DecimalType queryFP; 1646 1647 /** 1648 * The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar). 1649 */ 1650 @Child(name = "gtFP", type = {DecimalType.class}, order=11, min=0, max=1, modifier=false, summary=true) 1651 @Description(shortDefinition="False positives where the non-REF alleles in the Truth and Query Call Sets match", formalDefinition="The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar)." ) 1652 protected DecimalType gtFP; 1653 1654 /** 1655 * QUERY.TP / (QUERY.TP + QUERY.FP). 1656 */ 1657 @Child(name = "precision", type = {DecimalType.class}, order=12, min=0, max=1, modifier=false, summary=true) 1658 @Description(shortDefinition="Precision of comparison", formalDefinition="QUERY.TP / (QUERY.TP + QUERY.FP)." ) 1659 protected DecimalType precision; 1660 1661 /** 1662 * TRUTH.TP / (TRUTH.TP + TRUTH.FN). 1663 */ 1664 @Child(name = "recall", type = {DecimalType.class}, order=13, min=0, max=1, modifier=false, summary=true) 1665 @Description(shortDefinition="Recall of comparison", formalDefinition="TRUTH.TP / (TRUTH.TP + TRUTH.FN)." ) 1666 protected DecimalType recall; 1667 1668 /** 1669 * Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 1670 */ 1671 @Child(name = "fScore", type = {DecimalType.class}, order=14, min=0, max=1, modifier=false, summary=true) 1672 @Description(shortDefinition="F-score", formalDefinition="Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall)." ) 1673 protected DecimalType fScore; 1674 1675 private static final long serialVersionUID = -383644463L; 1676 1677 /** 1678 * Constructor 1679 */ 1680 public SequenceQualityComponent() { 1681 super(); 1682 } 1683 1684 /** 1685 * Constructor 1686 */ 1687 public SequenceQualityComponent(Enumeration<QualityType> type) { 1688 super(); 1689 this.type = type; 1690 } 1691 1692 /** 1693 * @return {@link #type} (INDEL / SNP / Undefined variant.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1694 */ 1695 public Enumeration<QualityType> getTypeElement() { 1696 if (this.type == null) 1697 if (Configuration.errorOnAutoCreate()) 1698 throw new Error("Attempt to auto-create SequenceQualityComponent.type"); 1699 else if (Configuration.doAutoCreate()) 1700 this.type = new Enumeration<QualityType>(new QualityTypeEnumFactory()); // bb 1701 return this.type; 1702 } 1703 1704 public boolean hasTypeElement() { 1705 return this.type != null && !this.type.isEmpty(); 1706 } 1707 1708 public boolean hasType() { 1709 return this.type != null && !this.type.isEmpty(); 1710 } 1711 1712 /** 1713 * @param value {@link #type} (INDEL / SNP / Undefined variant.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1714 */ 1715 public SequenceQualityComponent setTypeElement(Enumeration<QualityType> value) { 1716 this.type = value; 1717 return this; 1718 } 1719 1720 /** 1721 * @return INDEL / SNP / Undefined variant. 1722 */ 1723 public QualityType getType() { 1724 return this.type == null ? null : this.type.getValue(); 1725 } 1726 1727 /** 1728 * @param value INDEL / SNP / Undefined variant. 1729 */ 1730 public SequenceQualityComponent setType(QualityType value) { 1731 if (this.type == null) 1732 this.type = new Enumeration<QualityType>(new QualityTypeEnumFactory()); 1733 this.type.setValue(value); 1734 return this; 1735 } 1736 1737 /** 1738 * @return {@link #standardSequence} (Gold standard sequence used for comparing against.) 1739 */ 1740 public CodeableConcept getStandardSequence() { 1741 if (this.standardSequence == null) 1742 if (Configuration.errorOnAutoCreate()) 1743 throw new Error("Attempt to auto-create SequenceQualityComponent.standardSequence"); 1744 else if (Configuration.doAutoCreate()) 1745 this.standardSequence = new CodeableConcept(); // cc 1746 return this.standardSequence; 1747 } 1748 1749 public boolean hasStandardSequence() { 1750 return this.standardSequence != null && !this.standardSequence.isEmpty(); 1751 } 1752 1753 /** 1754 * @param value {@link #standardSequence} (Gold standard sequence used for comparing against.) 1755 */ 1756 public SequenceQualityComponent setStandardSequence(CodeableConcept value) { 1757 this.standardSequence = value; 1758 return this; 1759 } 1760 1761 /** 1762 * @return {@link #start} (Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value 1763 */ 1764 public IntegerType getStartElement() { 1765 if (this.start == null) 1766 if (Configuration.errorOnAutoCreate()) 1767 throw new Error("Attempt to auto-create SequenceQualityComponent.start"); 1768 else if (Configuration.doAutoCreate()) 1769 this.start = new IntegerType(); // bb 1770 return this.start; 1771 } 1772 1773 public boolean hasStartElement() { 1774 return this.start != null && !this.start.isEmpty(); 1775 } 1776 1777 public boolean hasStart() { 1778 return this.start != null && !this.start.isEmpty(); 1779 } 1780 1781 /** 1782 * @param value {@link #start} (Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value 1783 */ 1784 public SequenceQualityComponent setStartElement(IntegerType value) { 1785 this.start = value; 1786 return this; 1787 } 1788 1789 /** 1790 * @return Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 1791 */ 1792 public int getStart() { 1793 return this.start == null || this.start.isEmpty() ? 0 : this.start.getValue(); 1794 } 1795 1796 /** 1797 * @param value Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 1798 */ 1799 public SequenceQualityComponent setStart(int value) { 1800 if (this.start == null) 1801 this.start = new IntegerType(); 1802 this.start.setValue(value); 1803 return this; 1804 } 1805 1806 /** 1807 * @return {@link #end} (End position of the sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value 1808 */ 1809 public IntegerType getEndElement() { 1810 if (this.end == null) 1811 if (Configuration.errorOnAutoCreate()) 1812 throw new Error("Attempt to auto-create SequenceQualityComponent.end"); 1813 else if (Configuration.doAutoCreate()) 1814 this.end = new IntegerType(); // bb 1815 return this.end; 1816 } 1817 1818 public boolean hasEndElement() { 1819 return this.end != null && !this.end.isEmpty(); 1820 } 1821 1822 public boolean hasEnd() { 1823 return this.end != null && !this.end.isEmpty(); 1824 } 1825 1826 /** 1827 * @param value {@link #end} (End position of the sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value 1828 */ 1829 public SequenceQualityComponent setEndElement(IntegerType value) { 1830 this.end = value; 1831 return this; 1832 } 1833 1834 /** 1835 * @return End position of the sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position. 1836 */ 1837 public int getEnd() { 1838 return this.end == null || this.end.isEmpty() ? 0 : this.end.getValue(); 1839 } 1840 1841 /** 1842 * @param value End position of the sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position. 1843 */ 1844 public SequenceQualityComponent setEnd(int value) { 1845 if (this.end == null) 1846 this.end = new IntegerType(); 1847 this.end.setValue(value); 1848 return this; 1849 } 1850 1851 /** 1852 * @return {@link #score} (The score of an experimentally derived feature such as a p-value ([SO:0001685](http://www.sequenceontology.org/browser/current_svn/term/SO:0001685)).) 1853 */ 1854 public Quantity getScore() { 1855 if (this.score == null) 1856 if (Configuration.errorOnAutoCreate()) 1857 throw new Error("Attempt to auto-create SequenceQualityComponent.score"); 1858 else if (Configuration.doAutoCreate()) 1859 this.score = new Quantity(); // cc 1860 return this.score; 1861 } 1862 1863 public boolean hasScore() { 1864 return this.score != null && !this.score.isEmpty(); 1865 } 1866 1867 /** 1868 * @param value {@link #score} (The score of an experimentally derived feature such as a p-value ([SO:0001685](http://www.sequenceontology.org/browser/current_svn/term/SO:0001685)).) 1869 */ 1870 public SequenceQualityComponent setScore(Quantity value) { 1871 this.score = value; 1872 return this; 1873 } 1874 1875 /** 1876 * @return {@link #method} (Which method is used to get sequence quality.) 1877 */ 1878 public CodeableConcept getMethod() { 1879 if (this.method == null) 1880 if (Configuration.errorOnAutoCreate()) 1881 throw new Error("Attempt to auto-create SequenceQualityComponent.method"); 1882 else if (Configuration.doAutoCreate()) 1883 this.method = new CodeableConcept(); // cc 1884 return this.method; 1885 } 1886 1887 public boolean hasMethod() { 1888 return this.method != null && !this.method.isEmpty(); 1889 } 1890 1891 /** 1892 * @param value {@link #method} (Which method is used to get sequence quality.) 1893 */ 1894 public SequenceQualityComponent setMethod(CodeableConcept value) { 1895 this.method = value; 1896 return this; 1897 } 1898 1899 /** 1900 * @return {@link #truthTP} (True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event.). This is the underlying object with id, value and extensions. The accessor "getTruthTP" gives direct access to the value 1901 */ 1902 public DecimalType getTruthTPElement() { 1903 if (this.truthTP == null) 1904 if (Configuration.errorOnAutoCreate()) 1905 throw new Error("Attempt to auto-create SequenceQualityComponent.truthTP"); 1906 else if (Configuration.doAutoCreate()) 1907 this.truthTP = new DecimalType(); // bb 1908 return this.truthTP; 1909 } 1910 1911 public boolean hasTruthTPElement() { 1912 return this.truthTP != null && !this.truthTP.isEmpty(); 1913 } 1914 1915 public boolean hasTruthTP() { 1916 return this.truthTP != null && !this.truthTP.isEmpty(); 1917 } 1918 1919 /** 1920 * @param value {@link #truthTP} (True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event.). This is the underlying object with id, value and extensions. The accessor "getTruthTP" gives direct access to the value 1921 */ 1922 public SequenceQualityComponent setTruthTPElement(DecimalType value) { 1923 this.truthTP = value; 1924 return this; 1925 } 1926 1927 /** 1928 * @return True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 1929 */ 1930 public BigDecimal getTruthTP() { 1931 return this.truthTP == null ? null : this.truthTP.getValue(); 1932 } 1933 1934 /** 1935 * @param value True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 1936 */ 1937 public SequenceQualityComponent setTruthTP(BigDecimal value) { 1938 if (value == null) 1939 this.truthTP = null; 1940 else { 1941 if (this.truthTP == null) 1942 this.truthTP = new DecimalType(); 1943 this.truthTP.setValue(value); 1944 } 1945 return this; 1946 } 1947 1948 /** 1949 * @param value True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 1950 */ 1951 public SequenceQualityComponent setTruthTP(long value) { 1952 this.truthTP = new DecimalType(); 1953 this.truthTP.setValue(value); 1954 return this; 1955 } 1956 1957 /** 1958 * @param value True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 1959 */ 1960 public SequenceQualityComponent setTruthTP(double value) { 1961 this.truthTP = new DecimalType(); 1962 this.truthTP.setValue(value); 1963 return this; 1964 } 1965 1966 /** 1967 * @return {@link #queryTP} (True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event.). This is the underlying object with id, value and extensions. The accessor "getQueryTP" gives direct access to the value 1968 */ 1969 public DecimalType getQueryTPElement() { 1970 if (this.queryTP == null) 1971 if (Configuration.errorOnAutoCreate()) 1972 throw new Error("Attempt to auto-create SequenceQualityComponent.queryTP"); 1973 else if (Configuration.doAutoCreate()) 1974 this.queryTP = new DecimalType(); // bb 1975 return this.queryTP; 1976 } 1977 1978 public boolean hasQueryTPElement() { 1979 return this.queryTP != null && !this.queryTP.isEmpty(); 1980 } 1981 1982 public boolean hasQueryTP() { 1983 return this.queryTP != null && !this.queryTP.isEmpty(); 1984 } 1985 1986 /** 1987 * @param value {@link #queryTP} (True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event.). This is the underlying object with id, value and extensions. The accessor "getQueryTP" gives direct access to the value 1988 */ 1989 public SequenceQualityComponent setQueryTPElement(DecimalType value) { 1990 this.queryTP = value; 1991 return this; 1992 } 1993 1994 /** 1995 * @return True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 1996 */ 1997 public BigDecimal getQueryTP() { 1998 return this.queryTP == null ? null : this.queryTP.getValue(); 1999 } 2000 2001 /** 2002 * @param value True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 2003 */ 2004 public SequenceQualityComponent setQueryTP(BigDecimal value) { 2005 if (value == null) 2006 this.queryTP = null; 2007 else { 2008 if (this.queryTP == null) 2009 this.queryTP = new DecimalType(); 2010 this.queryTP.setValue(value); 2011 } 2012 return this; 2013 } 2014 2015 /** 2016 * @param value True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 2017 */ 2018 public SequenceQualityComponent setQueryTP(long value) { 2019 this.queryTP = new DecimalType(); 2020 this.queryTP.setValue(value); 2021 return this; 2022 } 2023 2024 /** 2025 * @param value True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event. 2026 */ 2027 public SequenceQualityComponent setQueryTP(double value) { 2028 this.queryTP = new DecimalType(); 2029 this.queryTP.setValue(value); 2030 return this; 2031 } 2032 2033 /** 2034 * @return {@link #truthFN} (False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here.). This is the underlying object with id, value and extensions. The accessor "getTruthFN" gives direct access to the value 2035 */ 2036 public DecimalType getTruthFNElement() { 2037 if (this.truthFN == null) 2038 if (Configuration.errorOnAutoCreate()) 2039 throw new Error("Attempt to auto-create SequenceQualityComponent.truthFN"); 2040 else if (Configuration.doAutoCreate()) 2041 this.truthFN = new DecimalType(); // bb 2042 return this.truthFN; 2043 } 2044 2045 public boolean hasTruthFNElement() { 2046 return this.truthFN != null && !this.truthFN.isEmpty(); 2047 } 2048 2049 public boolean hasTruthFN() { 2050 return this.truthFN != null && !this.truthFN.isEmpty(); 2051 } 2052 2053 /** 2054 * @param value {@link #truthFN} (False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here.). This is the underlying object with id, value and extensions. The accessor "getTruthFN" gives direct access to the value 2055 */ 2056 public SequenceQualityComponent setTruthFNElement(DecimalType value) { 2057 this.truthFN = value; 2058 return this; 2059 } 2060 2061 /** 2062 * @return False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here. 2063 */ 2064 public BigDecimal getTruthFN() { 2065 return this.truthFN == null ? null : this.truthFN.getValue(); 2066 } 2067 2068 /** 2069 * @param value False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here. 2070 */ 2071 public SequenceQualityComponent setTruthFN(BigDecimal value) { 2072 if (value == null) 2073 this.truthFN = null; 2074 else { 2075 if (this.truthFN == null) 2076 this.truthFN = new DecimalType(); 2077 this.truthFN.setValue(value); 2078 } 2079 return this; 2080 } 2081 2082 /** 2083 * @param value False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here. 2084 */ 2085 public SequenceQualityComponent setTruthFN(long value) { 2086 this.truthFN = new DecimalType(); 2087 this.truthFN.setValue(value); 2088 return this; 2089 } 2090 2091 /** 2092 * @param value False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here. 2093 */ 2094 public SequenceQualityComponent setTruthFN(double value) { 2095 this.truthFN = new DecimalType(); 2096 this.truthFN.setValue(value); 2097 return this; 2098 } 2099 2100 /** 2101 * @return {@link #queryFP} (False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here.). This is the underlying object with id, value and extensions. The accessor "getQueryFP" gives direct access to the value 2102 */ 2103 public DecimalType getQueryFPElement() { 2104 if (this.queryFP == null) 2105 if (Configuration.errorOnAutoCreate()) 2106 throw new Error("Attempt to auto-create SequenceQualityComponent.queryFP"); 2107 else if (Configuration.doAutoCreate()) 2108 this.queryFP = new DecimalType(); // bb 2109 return this.queryFP; 2110 } 2111 2112 public boolean hasQueryFPElement() { 2113 return this.queryFP != null && !this.queryFP.isEmpty(); 2114 } 2115 2116 public boolean hasQueryFP() { 2117 return this.queryFP != null && !this.queryFP.isEmpty(); 2118 } 2119 2120 /** 2121 * @param value {@link #queryFP} (False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here.). This is the underlying object with id, value and extensions. The accessor "getQueryFP" gives direct access to the value 2122 */ 2123 public SequenceQualityComponent setQueryFPElement(DecimalType value) { 2124 this.queryFP = value; 2125 return this; 2126 } 2127 2128 /** 2129 * @return False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here. 2130 */ 2131 public BigDecimal getQueryFP() { 2132 return this.queryFP == null ? null : this.queryFP.getValue(); 2133 } 2134 2135 /** 2136 * @param value False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here. 2137 */ 2138 public SequenceQualityComponent setQueryFP(BigDecimal value) { 2139 if (value == null) 2140 this.queryFP = null; 2141 else { 2142 if (this.queryFP == null) 2143 this.queryFP = new DecimalType(); 2144 this.queryFP.setValue(value); 2145 } 2146 return this; 2147 } 2148 2149 /** 2150 * @param value False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here. 2151 */ 2152 public SequenceQualityComponent setQueryFP(long value) { 2153 this.queryFP = new DecimalType(); 2154 this.queryFP.setValue(value); 2155 return this; 2156 } 2157 2158 /** 2159 * @param value False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here. 2160 */ 2161 public SequenceQualityComponent setQueryFP(double value) { 2162 this.queryFP = new DecimalType(); 2163 this.queryFP.setValue(value); 2164 return this; 2165 } 2166 2167 /** 2168 * @return {@link #gtFP} (The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar).). This is the underlying object with id, value and extensions. The accessor "getGtFP" gives direct access to the value 2169 */ 2170 public DecimalType getGtFPElement() { 2171 if (this.gtFP == null) 2172 if (Configuration.errorOnAutoCreate()) 2173 throw new Error("Attempt to auto-create SequenceQualityComponent.gtFP"); 2174 else if (Configuration.doAutoCreate()) 2175 this.gtFP = new DecimalType(); // bb 2176 return this.gtFP; 2177 } 2178 2179 public boolean hasGtFPElement() { 2180 return this.gtFP != null && !this.gtFP.isEmpty(); 2181 } 2182 2183 public boolean hasGtFP() { 2184 return this.gtFP != null && !this.gtFP.isEmpty(); 2185 } 2186 2187 /** 2188 * @param value {@link #gtFP} (The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar).). This is the underlying object with id, value and extensions. The accessor "getGtFP" gives direct access to the value 2189 */ 2190 public SequenceQualityComponent setGtFPElement(DecimalType value) { 2191 this.gtFP = value; 2192 return this; 2193 } 2194 2195 /** 2196 * @return The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar). 2197 */ 2198 public BigDecimal getGtFP() { 2199 return this.gtFP == null ? null : this.gtFP.getValue(); 2200 } 2201 2202 /** 2203 * @param value The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar). 2204 */ 2205 public SequenceQualityComponent setGtFP(BigDecimal value) { 2206 if (value == null) 2207 this.gtFP = null; 2208 else { 2209 if (this.gtFP == null) 2210 this.gtFP = new DecimalType(); 2211 this.gtFP.setValue(value); 2212 } 2213 return this; 2214 } 2215 2216 /** 2217 * @param value The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar). 2218 */ 2219 public SequenceQualityComponent setGtFP(long value) { 2220 this.gtFP = new DecimalType(); 2221 this.gtFP.setValue(value); 2222 return this; 2223 } 2224 2225 /** 2226 * @param value The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar). 2227 */ 2228 public SequenceQualityComponent setGtFP(double value) { 2229 this.gtFP = new DecimalType(); 2230 this.gtFP.setValue(value); 2231 return this; 2232 } 2233 2234 /** 2235 * @return {@link #precision} (QUERY.TP / (QUERY.TP + QUERY.FP).). This is the underlying object with id, value and extensions. The accessor "getPrecision" gives direct access to the value 2236 */ 2237 public DecimalType getPrecisionElement() { 2238 if (this.precision == null) 2239 if (Configuration.errorOnAutoCreate()) 2240 throw new Error("Attempt to auto-create SequenceQualityComponent.precision"); 2241 else if (Configuration.doAutoCreate()) 2242 this.precision = new DecimalType(); // bb 2243 return this.precision; 2244 } 2245 2246 public boolean hasPrecisionElement() { 2247 return this.precision != null && !this.precision.isEmpty(); 2248 } 2249 2250 public boolean hasPrecision() { 2251 return this.precision != null && !this.precision.isEmpty(); 2252 } 2253 2254 /** 2255 * @param value {@link #precision} (QUERY.TP / (QUERY.TP + QUERY.FP).). This is the underlying object with id, value and extensions. The accessor "getPrecision" gives direct access to the value 2256 */ 2257 public SequenceQualityComponent setPrecisionElement(DecimalType value) { 2258 this.precision = value; 2259 return this; 2260 } 2261 2262 /** 2263 * @return QUERY.TP / (QUERY.TP + QUERY.FP). 2264 */ 2265 public BigDecimal getPrecision() { 2266 return this.precision == null ? null : this.precision.getValue(); 2267 } 2268 2269 /** 2270 * @param value QUERY.TP / (QUERY.TP + QUERY.FP). 2271 */ 2272 public SequenceQualityComponent setPrecision(BigDecimal value) { 2273 if (value == null) 2274 this.precision = null; 2275 else { 2276 if (this.precision == null) 2277 this.precision = new DecimalType(); 2278 this.precision.setValue(value); 2279 } 2280 return this; 2281 } 2282 2283 /** 2284 * @param value QUERY.TP / (QUERY.TP + QUERY.FP). 2285 */ 2286 public SequenceQualityComponent setPrecision(long value) { 2287 this.precision = new DecimalType(); 2288 this.precision.setValue(value); 2289 return this; 2290 } 2291 2292 /** 2293 * @param value QUERY.TP / (QUERY.TP + QUERY.FP). 2294 */ 2295 public SequenceQualityComponent setPrecision(double value) { 2296 this.precision = new DecimalType(); 2297 this.precision.setValue(value); 2298 return this; 2299 } 2300 2301 /** 2302 * @return {@link #recall} (TRUTH.TP / (TRUTH.TP + TRUTH.FN).). This is the underlying object with id, value and extensions. The accessor "getRecall" gives direct access to the value 2303 */ 2304 public DecimalType getRecallElement() { 2305 if (this.recall == null) 2306 if (Configuration.errorOnAutoCreate()) 2307 throw new Error("Attempt to auto-create SequenceQualityComponent.recall"); 2308 else if (Configuration.doAutoCreate()) 2309 this.recall = new DecimalType(); // bb 2310 return this.recall; 2311 } 2312 2313 public boolean hasRecallElement() { 2314 return this.recall != null && !this.recall.isEmpty(); 2315 } 2316 2317 public boolean hasRecall() { 2318 return this.recall != null && !this.recall.isEmpty(); 2319 } 2320 2321 /** 2322 * @param value {@link #recall} (TRUTH.TP / (TRUTH.TP + TRUTH.FN).). This is the underlying object with id, value and extensions. The accessor "getRecall" gives direct access to the value 2323 */ 2324 public SequenceQualityComponent setRecallElement(DecimalType value) { 2325 this.recall = value; 2326 return this; 2327 } 2328 2329 /** 2330 * @return TRUTH.TP / (TRUTH.TP + TRUTH.FN). 2331 */ 2332 public BigDecimal getRecall() { 2333 return this.recall == null ? null : this.recall.getValue(); 2334 } 2335 2336 /** 2337 * @param value TRUTH.TP / (TRUTH.TP + TRUTH.FN). 2338 */ 2339 public SequenceQualityComponent setRecall(BigDecimal value) { 2340 if (value == null) 2341 this.recall = null; 2342 else { 2343 if (this.recall == null) 2344 this.recall = new DecimalType(); 2345 this.recall.setValue(value); 2346 } 2347 return this; 2348 } 2349 2350 /** 2351 * @param value TRUTH.TP / (TRUTH.TP + TRUTH.FN). 2352 */ 2353 public SequenceQualityComponent setRecall(long value) { 2354 this.recall = new DecimalType(); 2355 this.recall.setValue(value); 2356 return this; 2357 } 2358 2359 /** 2360 * @param value TRUTH.TP / (TRUTH.TP + TRUTH.FN). 2361 */ 2362 public SequenceQualityComponent setRecall(double value) { 2363 this.recall = new DecimalType(); 2364 this.recall.setValue(value); 2365 return this; 2366 } 2367 2368 /** 2369 * @return {@link #fScore} (Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall).). This is the underlying object with id, value and extensions. The accessor "getFScore" gives direct access to the value 2370 */ 2371 public DecimalType getFScoreElement() { 2372 if (this.fScore == null) 2373 if (Configuration.errorOnAutoCreate()) 2374 throw new Error("Attempt to auto-create SequenceQualityComponent.fScore"); 2375 else if (Configuration.doAutoCreate()) 2376 this.fScore = new DecimalType(); // bb 2377 return this.fScore; 2378 } 2379 2380 public boolean hasFScoreElement() { 2381 return this.fScore != null && !this.fScore.isEmpty(); 2382 } 2383 2384 public boolean hasFScore() { 2385 return this.fScore != null && !this.fScore.isEmpty(); 2386 } 2387 2388 /** 2389 * @param value {@link #fScore} (Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall).). This is the underlying object with id, value and extensions. The accessor "getFScore" gives direct access to the value 2390 */ 2391 public SequenceQualityComponent setFScoreElement(DecimalType value) { 2392 this.fScore = value; 2393 return this; 2394 } 2395 2396 /** 2397 * @return Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 2398 */ 2399 public BigDecimal getFScore() { 2400 return this.fScore == null ? null : this.fScore.getValue(); 2401 } 2402 2403 /** 2404 * @param value Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 2405 */ 2406 public SequenceQualityComponent setFScore(BigDecimal value) { 2407 if (value == null) 2408 this.fScore = null; 2409 else { 2410 if (this.fScore == null) 2411 this.fScore = new DecimalType(); 2412 this.fScore.setValue(value); 2413 } 2414 return this; 2415 } 2416 2417 /** 2418 * @param value Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 2419 */ 2420 public SequenceQualityComponent setFScore(long value) { 2421 this.fScore = new DecimalType(); 2422 this.fScore.setValue(value); 2423 return this; 2424 } 2425 2426 /** 2427 * @param value Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 2428 */ 2429 public SequenceQualityComponent setFScore(double value) { 2430 this.fScore = new DecimalType(); 2431 this.fScore.setValue(value); 2432 return this; 2433 } 2434 2435 protected void listChildren(List<Property> children) { 2436 super.listChildren(children); 2437 children.add(new Property("type", "code", "INDEL / SNP / Undefined variant.", 0, 1, type)); 2438 children.add(new Property("standardSequence", "CodeableConcept", "Gold standard sequence used for comparing against.", 0, 1, standardSequence)); 2439 children.add(new Property("start", "integer", "Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, start)); 2440 children.add(new Property("end", "integer", "End position of the sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.", 0, 1, end)); 2441 children.add(new Property("score", "Quantity", "The score of an experimentally derived feature such as a p-value ([SO:0001685](http://www.sequenceontology.org/browser/current_svn/term/SO:0001685)).", 0, 1, score)); 2442 children.add(new Property("method", "CodeableConcept", "Which method is used to get sequence quality.", 0, 1, method)); 2443 children.add(new Property("truthTP", "decimal", "True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event.", 0, 1, truthTP)); 2444 children.add(new Property("queryTP", "decimal", "True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event.", 0, 1, queryTP)); 2445 children.add(new Property("truthFN", "decimal", "False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here.", 0, 1, truthFN)); 2446 children.add(new Property("queryFP", "decimal", "False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here.", 0, 1, queryFP)); 2447 children.add(new Property("gtFP", "decimal", "The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar).", 0, 1, gtFP)); 2448 children.add(new Property("precision", "decimal", "QUERY.TP / (QUERY.TP + QUERY.FP).", 0, 1, precision)); 2449 children.add(new Property("recall", "decimal", "TRUTH.TP / (TRUTH.TP + TRUTH.FN).", 0, 1, recall)); 2450 children.add(new Property("fScore", "decimal", "Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall).", 0, 1, fScore)); 2451 } 2452 2453 @Override 2454 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2455 switch (_hash) { 2456 case 3575610: /*type*/ return new Property("type", "code", "INDEL / SNP / Undefined variant.", 0, 1, type); 2457 case -1861227106: /*standardSequence*/ return new Property("standardSequence", "CodeableConcept", "Gold standard sequence used for comparing against.", 0, 1, standardSequence); 2458 case 109757538: /*start*/ return new Property("start", "integer", "Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, start); 2459 case 100571: /*end*/ return new Property("end", "integer", "End position of the sequence.If the coordinate system is 0-based then end is is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position.", 0, 1, end); 2460 case 109264530: /*score*/ return new Property("score", "Quantity", "The score of an experimentally derived feature such as a p-value ([SO:0001685](http://www.sequenceontology.org/browser/current_svn/term/SO:0001685)).", 0, 1, score); 2461 case -1077554975: /*method*/ return new Property("method", "CodeableConcept", "Which method is used to get sequence quality.", 0, 1, method); 2462 case -1048421849: /*truthTP*/ return new Property("truthTP", "decimal", "True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event.", 0, 1, truthTP); 2463 case 655102276: /*queryTP*/ return new Property("queryTP", "decimal", "True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event.", 0, 1, queryTP); 2464 case -1048422285: /*truthFN*/ return new Property("truthFN", "decimal", "False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here.", 0, 1, truthFN); 2465 case 655101842: /*queryFP*/ return new Property("queryFP", "decimal", "False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here.", 0, 1, queryFP); 2466 case 3182199: /*gtFP*/ return new Property("gtFP", "decimal", "The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar).", 0, 1, gtFP); 2467 case -1376177026: /*precision*/ return new Property("precision", "decimal", "QUERY.TP / (QUERY.TP + QUERY.FP).", 0, 1, precision); 2468 case -934922479: /*recall*/ return new Property("recall", "decimal", "TRUTH.TP / (TRUTH.TP + TRUTH.FN).", 0, 1, recall); 2469 case -1295082036: /*fScore*/ return new Property("fScore", "decimal", "Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall).", 0, 1, fScore); 2470 default: return super.getNamedProperty(_hash, _name, _checkValid); 2471 } 2472 2473 } 2474 2475 @Override 2476 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2477 switch (hash) { 2478 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<QualityType> 2479 case -1861227106: /*standardSequence*/ return this.standardSequence == null ? new Base[0] : new Base[] {this.standardSequence}; // CodeableConcept 2480 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // IntegerType 2481 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // IntegerType 2482 case 109264530: /*score*/ return this.score == null ? new Base[0] : new Base[] {this.score}; // Quantity 2483 case -1077554975: /*method*/ return this.method == null ? new Base[0] : new Base[] {this.method}; // CodeableConcept 2484 case -1048421849: /*truthTP*/ return this.truthTP == null ? new Base[0] : new Base[] {this.truthTP}; // DecimalType 2485 case 655102276: /*queryTP*/ return this.queryTP == null ? new Base[0] : new Base[] {this.queryTP}; // DecimalType 2486 case -1048422285: /*truthFN*/ return this.truthFN == null ? new Base[0] : new Base[] {this.truthFN}; // DecimalType 2487 case 655101842: /*queryFP*/ return this.queryFP == null ? new Base[0] : new Base[] {this.queryFP}; // DecimalType 2488 case 3182199: /*gtFP*/ return this.gtFP == null ? new Base[0] : new Base[] {this.gtFP}; // DecimalType 2489 case -1376177026: /*precision*/ return this.precision == null ? new Base[0] : new Base[] {this.precision}; // DecimalType 2490 case -934922479: /*recall*/ return this.recall == null ? new Base[0] : new Base[] {this.recall}; // DecimalType 2491 case -1295082036: /*fScore*/ return this.fScore == null ? new Base[0] : new Base[] {this.fScore}; // DecimalType 2492 default: return super.getProperty(hash, name, checkValid); 2493 } 2494 2495 } 2496 2497 @Override 2498 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2499 switch (hash) { 2500 case 3575610: // type 2501 value = new QualityTypeEnumFactory().fromType(castToCode(value)); 2502 this.type = (Enumeration) value; // Enumeration<QualityType> 2503 return value; 2504 case -1861227106: // standardSequence 2505 this.standardSequence = castToCodeableConcept(value); // CodeableConcept 2506 return value; 2507 case 109757538: // start 2508 this.start = castToInteger(value); // IntegerType 2509 return value; 2510 case 100571: // end 2511 this.end = castToInteger(value); // IntegerType 2512 return value; 2513 case 109264530: // score 2514 this.score = castToQuantity(value); // Quantity 2515 return value; 2516 case -1077554975: // method 2517 this.method = castToCodeableConcept(value); // CodeableConcept 2518 return value; 2519 case -1048421849: // truthTP 2520 this.truthTP = castToDecimal(value); // DecimalType 2521 return value; 2522 case 655102276: // queryTP 2523 this.queryTP = castToDecimal(value); // DecimalType 2524 return value; 2525 case -1048422285: // truthFN 2526 this.truthFN = castToDecimal(value); // DecimalType 2527 return value; 2528 case 655101842: // queryFP 2529 this.queryFP = castToDecimal(value); // DecimalType 2530 return value; 2531 case 3182199: // gtFP 2532 this.gtFP = castToDecimal(value); // DecimalType 2533 return value; 2534 case -1376177026: // precision 2535 this.precision = castToDecimal(value); // DecimalType 2536 return value; 2537 case -934922479: // recall 2538 this.recall = castToDecimal(value); // DecimalType 2539 return value; 2540 case -1295082036: // fScore 2541 this.fScore = castToDecimal(value); // DecimalType 2542 return value; 2543 default: return super.setProperty(hash, name, value); 2544 } 2545 2546 } 2547 2548 @Override 2549 public Base setProperty(String name, Base value) throws FHIRException { 2550 if (name.equals("type")) { 2551 value = new QualityTypeEnumFactory().fromType(castToCode(value)); 2552 this.type = (Enumeration) value; // Enumeration<QualityType> 2553 } else if (name.equals("standardSequence")) { 2554 this.standardSequence = castToCodeableConcept(value); // CodeableConcept 2555 } else if (name.equals("start")) { 2556 this.start = castToInteger(value); // IntegerType 2557 } else if (name.equals("end")) { 2558 this.end = castToInteger(value); // IntegerType 2559 } else if (name.equals("score")) { 2560 this.score = castToQuantity(value); // Quantity 2561 } else if (name.equals("method")) { 2562 this.method = castToCodeableConcept(value); // CodeableConcept 2563 } else if (name.equals("truthTP")) { 2564 this.truthTP = castToDecimal(value); // DecimalType 2565 } else if (name.equals("queryTP")) { 2566 this.queryTP = castToDecimal(value); // DecimalType 2567 } else if (name.equals("truthFN")) { 2568 this.truthFN = castToDecimal(value); // DecimalType 2569 } else if (name.equals("queryFP")) { 2570 this.queryFP = castToDecimal(value); // DecimalType 2571 } else if (name.equals("gtFP")) { 2572 this.gtFP = castToDecimal(value); // DecimalType 2573 } else if (name.equals("precision")) { 2574 this.precision = castToDecimal(value); // DecimalType 2575 } else if (name.equals("recall")) { 2576 this.recall = castToDecimal(value); // DecimalType 2577 } else if (name.equals("fScore")) { 2578 this.fScore = castToDecimal(value); // DecimalType 2579 } else 2580 return super.setProperty(name, value); 2581 return value; 2582 } 2583 2584 @Override 2585 public Base makeProperty(int hash, String name) throws FHIRException { 2586 switch (hash) { 2587 case 3575610: return getTypeElement(); 2588 case -1861227106: return getStandardSequence(); 2589 case 109757538: return getStartElement(); 2590 case 100571: return getEndElement(); 2591 case 109264530: return getScore(); 2592 case -1077554975: return getMethod(); 2593 case -1048421849: return getTruthTPElement(); 2594 case 655102276: return getQueryTPElement(); 2595 case -1048422285: return getTruthFNElement(); 2596 case 655101842: return getQueryFPElement(); 2597 case 3182199: return getGtFPElement(); 2598 case -1376177026: return getPrecisionElement(); 2599 case -934922479: return getRecallElement(); 2600 case -1295082036: return getFScoreElement(); 2601 default: return super.makeProperty(hash, name); 2602 } 2603 2604 } 2605 2606 @Override 2607 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2608 switch (hash) { 2609 case 3575610: /*type*/ return new String[] {"code"}; 2610 case -1861227106: /*standardSequence*/ return new String[] {"CodeableConcept"}; 2611 case 109757538: /*start*/ return new String[] {"integer"}; 2612 case 100571: /*end*/ return new String[] {"integer"}; 2613 case 109264530: /*score*/ return new String[] {"Quantity"}; 2614 case -1077554975: /*method*/ return new String[] {"CodeableConcept"}; 2615 case -1048421849: /*truthTP*/ return new String[] {"decimal"}; 2616 case 655102276: /*queryTP*/ return new String[] {"decimal"}; 2617 case -1048422285: /*truthFN*/ return new String[] {"decimal"}; 2618 case 655101842: /*queryFP*/ return new String[] {"decimal"}; 2619 case 3182199: /*gtFP*/ return new String[] {"decimal"}; 2620 case -1376177026: /*precision*/ return new String[] {"decimal"}; 2621 case -934922479: /*recall*/ return new String[] {"decimal"}; 2622 case -1295082036: /*fScore*/ return new String[] {"decimal"}; 2623 default: return super.getTypesForProperty(hash, name); 2624 } 2625 2626 } 2627 2628 @Override 2629 public Base addChild(String name) throws FHIRException { 2630 if (name.equals("type")) { 2631 throw new FHIRException("Cannot call addChild on a singleton property Sequence.type"); 2632 } 2633 else if (name.equals("standardSequence")) { 2634 this.standardSequence = new CodeableConcept(); 2635 return this.standardSequence; 2636 } 2637 else if (name.equals("start")) { 2638 throw new FHIRException("Cannot call addChild on a singleton property Sequence.start"); 2639 } 2640 else if (name.equals("end")) { 2641 throw new FHIRException("Cannot call addChild on a singleton property Sequence.end"); 2642 } 2643 else if (name.equals("score")) { 2644 this.score = new Quantity(); 2645 return this.score; 2646 } 2647 else if (name.equals("method")) { 2648 this.method = new CodeableConcept(); 2649 return this.method; 2650 } 2651 else if (name.equals("truthTP")) { 2652 throw new FHIRException("Cannot call addChild on a singleton property Sequence.truthTP"); 2653 } 2654 else if (name.equals("queryTP")) { 2655 throw new FHIRException("Cannot call addChild on a singleton property Sequence.queryTP"); 2656 } 2657 else if (name.equals("truthFN")) { 2658 throw new FHIRException("Cannot call addChild on a singleton property Sequence.truthFN"); 2659 } 2660 else if (name.equals("queryFP")) { 2661 throw new FHIRException("Cannot call addChild on a singleton property Sequence.queryFP"); 2662 } 2663 else if (name.equals("gtFP")) { 2664 throw new FHIRException("Cannot call addChild on a singleton property Sequence.gtFP"); 2665 } 2666 else if (name.equals("precision")) { 2667 throw new FHIRException("Cannot call addChild on a singleton property Sequence.precision"); 2668 } 2669 else if (name.equals("recall")) { 2670 throw new FHIRException("Cannot call addChild on a singleton property Sequence.recall"); 2671 } 2672 else if (name.equals("fScore")) { 2673 throw new FHIRException("Cannot call addChild on a singleton property Sequence.fScore"); 2674 } 2675 else 2676 return super.addChild(name); 2677 } 2678 2679 public SequenceQualityComponent copy() { 2680 SequenceQualityComponent dst = new SequenceQualityComponent(); 2681 copyValues(dst); 2682 dst.type = type == null ? null : type.copy(); 2683 dst.standardSequence = standardSequence == null ? null : standardSequence.copy(); 2684 dst.start = start == null ? null : start.copy(); 2685 dst.end = end == null ? null : end.copy(); 2686 dst.score = score == null ? null : score.copy(); 2687 dst.method = method == null ? null : method.copy(); 2688 dst.truthTP = truthTP == null ? null : truthTP.copy(); 2689 dst.queryTP = queryTP == null ? null : queryTP.copy(); 2690 dst.truthFN = truthFN == null ? null : truthFN.copy(); 2691 dst.queryFP = queryFP == null ? null : queryFP.copy(); 2692 dst.gtFP = gtFP == null ? null : gtFP.copy(); 2693 dst.precision = precision == null ? null : precision.copy(); 2694 dst.recall = recall == null ? null : recall.copy(); 2695 dst.fScore = fScore == null ? null : fScore.copy(); 2696 return dst; 2697 } 2698 2699 @Override 2700 public boolean equalsDeep(Base other_) { 2701 if (!super.equalsDeep(other_)) 2702 return false; 2703 if (!(other_ instanceof SequenceQualityComponent)) 2704 return false; 2705 SequenceQualityComponent o = (SequenceQualityComponent) other_; 2706 return compareDeep(type, o.type, true) && compareDeep(standardSequence, o.standardSequence, true) 2707 && compareDeep(start, o.start, true) && compareDeep(end, o.end, true) && compareDeep(score, o.score, true) 2708 && compareDeep(method, o.method, true) && compareDeep(truthTP, o.truthTP, true) && compareDeep(queryTP, o.queryTP, true) 2709 && compareDeep(truthFN, o.truthFN, true) && compareDeep(queryFP, o.queryFP, true) && compareDeep(gtFP, o.gtFP, true) 2710 && compareDeep(precision, o.precision, true) && compareDeep(recall, o.recall, true) && compareDeep(fScore, o.fScore, true) 2711 ; 2712 } 2713 2714 @Override 2715 public boolean equalsShallow(Base other_) { 2716 if (!super.equalsShallow(other_)) 2717 return false; 2718 if (!(other_ instanceof SequenceQualityComponent)) 2719 return false; 2720 SequenceQualityComponent o = (SequenceQualityComponent) other_; 2721 return compareValues(type, o.type, true) && compareValues(start, o.start, true) && compareValues(end, o.end, true) 2722 && compareValues(truthTP, o.truthTP, true) && compareValues(queryTP, o.queryTP, true) && compareValues(truthFN, o.truthFN, true) 2723 && compareValues(queryFP, o.queryFP, true) && compareValues(gtFP, o.gtFP, true) && compareValues(precision, o.precision, true) 2724 && compareValues(recall, o.recall, true) && compareValues(fScore, o.fScore, true); 2725 } 2726 2727 public boolean isEmpty() { 2728 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, standardSequence, start 2729 , end, score, method, truthTP, queryTP, truthFN, queryFP, gtFP, precision 2730 , recall, fScore); 2731 } 2732 2733 public String fhirType() { 2734 return "Sequence.quality"; 2735 2736 } 2737 2738 } 2739 2740 @Block() 2741 public static class SequenceRepositoryComponent extends BackboneElement implements IBaseBackboneElement { 2742 /** 2743 * Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource. 2744 */ 2745 @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 2746 @Description(shortDefinition="directlink | openapi | login | oauth | other", formalDefinition="Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource." ) 2747 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/repository-type") 2748 protected Enumeration<RepositoryType> type; 2749 2750 /** 2751 * URI of an external repository which contains further details about the genetics data. 2752 */ 2753 @Child(name = "url", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=true) 2754 @Description(shortDefinition="URI of the repository", formalDefinition="URI of an external repository which contains further details about the genetics data." ) 2755 protected UriType url; 2756 2757 /** 2758 * URI of an external repository which contains further details about the genetics data. 2759 */ 2760 @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true) 2761 @Description(shortDefinition="Repository's name", formalDefinition="URI of an external repository which contains further details about the genetics data." ) 2762 protected StringType name; 2763 2764 /** 2765 * Id of the variant in this external repository. The server will understand how to use this id to call for more info about datasets in external repository. 2766 */ 2767 @Child(name = "datasetId", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 2768 @Description(shortDefinition="Id of the dataset that used to call for dataset in repository", formalDefinition="Id of the variant in this external repository. The server will understand how to use this id to call for more info about datasets in external repository." ) 2769 protected StringType datasetId; 2770 2771 /** 2772 * Id of the variantset in this external repository. The server will understand how to use this id to call for more info about variantsets in external repository. 2773 */ 2774 @Child(name = "variantsetId", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true) 2775 @Description(shortDefinition="Id of the variantset that used to call for variantset in repository", formalDefinition="Id of the variantset in this external repository. The server will understand how to use this id to call for more info about variantsets in external repository." ) 2776 protected StringType variantsetId; 2777 2778 /** 2779 * Id of the read in this external repository. 2780 */ 2781 @Child(name = "readsetId", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=true) 2782 @Description(shortDefinition="Id of the read", formalDefinition="Id of the read in this external repository." ) 2783 protected StringType readsetId; 2784 2785 private static final long serialVersionUID = -899243265L; 2786 2787 /** 2788 * Constructor 2789 */ 2790 public SequenceRepositoryComponent() { 2791 super(); 2792 } 2793 2794 /** 2795 * Constructor 2796 */ 2797 public SequenceRepositoryComponent(Enumeration<RepositoryType> type) { 2798 super(); 2799 this.type = type; 2800 } 2801 2802 /** 2803 * @return {@link #type} (Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 2804 */ 2805 public Enumeration<RepositoryType> getTypeElement() { 2806 if (this.type == null) 2807 if (Configuration.errorOnAutoCreate()) 2808 throw new Error("Attempt to auto-create SequenceRepositoryComponent.type"); 2809 else if (Configuration.doAutoCreate()) 2810 this.type = new Enumeration<RepositoryType>(new RepositoryTypeEnumFactory()); // bb 2811 return this.type; 2812 } 2813 2814 public boolean hasTypeElement() { 2815 return this.type != null && !this.type.isEmpty(); 2816 } 2817 2818 public boolean hasType() { 2819 return this.type != null && !this.type.isEmpty(); 2820 } 2821 2822 /** 2823 * @param value {@link #type} (Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 2824 */ 2825 public SequenceRepositoryComponent setTypeElement(Enumeration<RepositoryType> value) { 2826 this.type = value; 2827 return this; 2828 } 2829 2830 /** 2831 * @return Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource. 2832 */ 2833 public RepositoryType getType() { 2834 return this.type == null ? null : this.type.getValue(); 2835 } 2836 2837 /** 2838 * @param value Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource. 2839 */ 2840 public SequenceRepositoryComponent setType(RepositoryType value) { 2841 if (this.type == null) 2842 this.type = new Enumeration<RepositoryType>(new RepositoryTypeEnumFactory()); 2843 this.type.setValue(value); 2844 return this; 2845 } 2846 2847 /** 2848 * @return {@link #url} (URI of an external repository which contains further details about the genetics data.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2849 */ 2850 public UriType getUrlElement() { 2851 if (this.url == null) 2852 if (Configuration.errorOnAutoCreate()) 2853 throw new Error("Attempt to auto-create SequenceRepositoryComponent.url"); 2854 else if (Configuration.doAutoCreate()) 2855 this.url = new UriType(); // bb 2856 return this.url; 2857 } 2858 2859 public boolean hasUrlElement() { 2860 return this.url != null && !this.url.isEmpty(); 2861 } 2862 2863 public boolean hasUrl() { 2864 return this.url != null && !this.url.isEmpty(); 2865 } 2866 2867 /** 2868 * @param value {@link #url} (URI of an external repository which contains further details about the genetics data.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 2869 */ 2870 public SequenceRepositoryComponent setUrlElement(UriType value) { 2871 this.url = value; 2872 return this; 2873 } 2874 2875 /** 2876 * @return URI of an external repository which contains further details about the genetics data. 2877 */ 2878 public String getUrl() { 2879 return this.url == null ? null : this.url.getValue(); 2880 } 2881 2882 /** 2883 * @param value URI of an external repository which contains further details about the genetics data. 2884 */ 2885 public SequenceRepositoryComponent setUrl(String value) { 2886 if (Utilities.noString(value)) 2887 this.url = null; 2888 else { 2889 if (this.url == null) 2890 this.url = new UriType(); 2891 this.url.setValue(value); 2892 } 2893 return this; 2894 } 2895 2896 /** 2897 * @return {@link #name} (URI of an external repository which contains further details about the genetics data.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2898 */ 2899 public StringType getNameElement() { 2900 if (this.name == null) 2901 if (Configuration.errorOnAutoCreate()) 2902 throw new Error("Attempt to auto-create SequenceRepositoryComponent.name"); 2903 else if (Configuration.doAutoCreate()) 2904 this.name = new StringType(); // bb 2905 return this.name; 2906 } 2907 2908 public boolean hasNameElement() { 2909 return this.name != null && !this.name.isEmpty(); 2910 } 2911 2912 public boolean hasName() { 2913 return this.name != null && !this.name.isEmpty(); 2914 } 2915 2916 /** 2917 * @param value {@link #name} (URI of an external repository which contains further details about the genetics data.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2918 */ 2919 public SequenceRepositoryComponent setNameElement(StringType value) { 2920 this.name = value; 2921 return this; 2922 } 2923 2924 /** 2925 * @return URI of an external repository which contains further details about the genetics data. 2926 */ 2927 public String getName() { 2928 return this.name == null ? null : this.name.getValue(); 2929 } 2930 2931 /** 2932 * @param value URI of an external repository which contains further details about the genetics data. 2933 */ 2934 public SequenceRepositoryComponent setName(String value) { 2935 if (Utilities.noString(value)) 2936 this.name = null; 2937 else { 2938 if (this.name == null) 2939 this.name = new StringType(); 2940 this.name.setValue(value); 2941 } 2942 return this; 2943 } 2944 2945 /** 2946 * @return {@link #datasetId} (Id of the variant in this external repository. The server will understand how to use this id to call for more info about datasets in external repository.). This is the underlying object with id, value and extensions. The accessor "getDatasetId" gives direct access to the value 2947 */ 2948 public StringType getDatasetIdElement() { 2949 if (this.datasetId == null) 2950 if (Configuration.errorOnAutoCreate()) 2951 throw new Error("Attempt to auto-create SequenceRepositoryComponent.datasetId"); 2952 else if (Configuration.doAutoCreate()) 2953 this.datasetId = new StringType(); // bb 2954 return this.datasetId; 2955 } 2956 2957 public boolean hasDatasetIdElement() { 2958 return this.datasetId != null && !this.datasetId.isEmpty(); 2959 } 2960 2961 public boolean hasDatasetId() { 2962 return this.datasetId != null && !this.datasetId.isEmpty(); 2963 } 2964 2965 /** 2966 * @param value {@link #datasetId} (Id of the variant in this external repository. The server will understand how to use this id to call for more info about datasets in external repository.). This is the underlying object with id, value and extensions. The accessor "getDatasetId" gives direct access to the value 2967 */ 2968 public SequenceRepositoryComponent setDatasetIdElement(StringType value) { 2969 this.datasetId = value; 2970 return this; 2971 } 2972 2973 /** 2974 * @return Id of the variant in this external repository. The server will understand how to use this id to call for more info about datasets in external repository. 2975 */ 2976 public String getDatasetId() { 2977 return this.datasetId == null ? null : this.datasetId.getValue(); 2978 } 2979 2980 /** 2981 * @param value Id of the variant in this external repository. The server will understand how to use this id to call for more info about datasets in external repository. 2982 */ 2983 public SequenceRepositoryComponent setDatasetId(String value) { 2984 if (Utilities.noString(value)) 2985 this.datasetId = null; 2986 else { 2987 if (this.datasetId == null) 2988 this.datasetId = new StringType(); 2989 this.datasetId.setValue(value); 2990 } 2991 return this; 2992 } 2993 2994 /** 2995 * @return {@link #variantsetId} (Id of the variantset in this external repository. The server will understand how to use this id to call for more info about variantsets in external repository.). This is the underlying object with id, value and extensions. The accessor "getVariantsetId" gives direct access to the value 2996 */ 2997 public StringType getVariantsetIdElement() { 2998 if (this.variantsetId == null) 2999 if (Configuration.errorOnAutoCreate()) 3000 throw new Error("Attempt to auto-create SequenceRepositoryComponent.variantsetId"); 3001 else if (Configuration.doAutoCreate()) 3002 this.variantsetId = new StringType(); // bb 3003 return this.variantsetId; 3004 } 3005 3006 public boolean hasVariantsetIdElement() { 3007 return this.variantsetId != null && !this.variantsetId.isEmpty(); 3008 } 3009 3010 public boolean hasVariantsetId() { 3011 return this.variantsetId != null && !this.variantsetId.isEmpty(); 3012 } 3013 3014 /** 3015 * @param value {@link #variantsetId} (Id of the variantset in this external repository. The server will understand how to use this id to call for more info about variantsets in external repository.). This is the underlying object with id, value and extensions. The accessor "getVariantsetId" gives direct access to the value 3016 */ 3017 public SequenceRepositoryComponent setVariantsetIdElement(StringType value) { 3018 this.variantsetId = value; 3019 return this; 3020 } 3021 3022 /** 3023 * @return Id of the variantset in this external repository. The server will understand how to use this id to call for more info about variantsets in external repository. 3024 */ 3025 public String getVariantsetId() { 3026 return this.variantsetId == null ? null : this.variantsetId.getValue(); 3027 } 3028 3029 /** 3030 * @param value Id of the variantset in this external repository. The server will understand how to use this id to call for more info about variantsets in external repository. 3031 */ 3032 public SequenceRepositoryComponent setVariantsetId(String value) { 3033 if (Utilities.noString(value)) 3034 this.variantsetId = null; 3035 else { 3036 if (this.variantsetId == null) 3037 this.variantsetId = new StringType(); 3038 this.variantsetId.setValue(value); 3039 } 3040 return this; 3041 } 3042 3043 /** 3044 * @return {@link #readsetId} (Id of the read in this external repository.). This is the underlying object with id, value and extensions. The accessor "getReadsetId" gives direct access to the value 3045 */ 3046 public StringType getReadsetIdElement() { 3047 if (this.readsetId == null) 3048 if (Configuration.errorOnAutoCreate()) 3049 throw new Error("Attempt to auto-create SequenceRepositoryComponent.readsetId"); 3050 else if (Configuration.doAutoCreate()) 3051 this.readsetId = new StringType(); // bb 3052 return this.readsetId; 3053 } 3054 3055 public boolean hasReadsetIdElement() { 3056 return this.readsetId != null && !this.readsetId.isEmpty(); 3057 } 3058 3059 public boolean hasReadsetId() { 3060 return this.readsetId != null && !this.readsetId.isEmpty(); 3061 } 3062 3063 /** 3064 * @param value {@link #readsetId} (Id of the read in this external repository.). This is the underlying object with id, value and extensions. The accessor "getReadsetId" gives direct access to the value 3065 */ 3066 public SequenceRepositoryComponent setReadsetIdElement(StringType value) { 3067 this.readsetId = value; 3068 return this; 3069 } 3070 3071 /** 3072 * @return Id of the read in this external repository. 3073 */ 3074 public String getReadsetId() { 3075 return this.readsetId == null ? null : this.readsetId.getValue(); 3076 } 3077 3078 /** 3079 * @param value Id of the read in this external repository. 3080 */ 3081 public SequenceRepositoryComponent setReadsetId(String value) { 3082 if (Utilities.noString(value)) 3083 this.readsetId = null; 3084 else { 3085 if (this.readsetId == null) 3086 this.readsetId = new StringType(); 3087 this.readsetId.setValue(value); 3088 } 3089 return this; 3090 } 3091 3092 protected void listChildren(List<Property> children) { 3093 super.listChildren(children); 3094 children.add(new Property("type", "code", "Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource.", 0, 1, type)); 3095 children.add(new Property("url", "uri", "URI of an external repository which contains further details about the genetics data.", 0, 1, url)); 3096 children.add(new Property("name", "string", "URI of an external repository which contains further details about the genetics data.", 0, 1, name)); 3097 children.add(new Property("datasetId", "string", "Id of the variant in this external repository. The server will understand how to use this id to call for more info about datasets in external repository.", 0, 1, datasetId)); 3098 children.add(new Property("variantsetId", "string", "Id of the variantset in this external repository. The server will understand how to use this id to call for more info about variantsets in external repository.", 0, 1, variantsetId)); 3099 children.add(new Property("readsetId", "string", "Id of the read in this external repository.", 0, 1, readsetId)); 3100 } 3101 3102 @Override 3103 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3104 switch (_hash) { 3105 case 3575610: /*type*/ return new Property("type", "code", "Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource.", 0, 1, type); 3106 case 116079: /*url*/ return new Property("url", "uri", "URI of an external repository which contains further details about the genetics data.", 0, 1, url); 3107 case 3373707: /*name*/ return new Property("name", "string", "URI of an external repository which contains further details about the genetics data.", 0, 1, name); 3108 case -345342029: /*datasetId*/ return new Property("datasetId", "string", "Id of the variant in this external repository. The server will understand how to use this id to call for more info about datasets in external repository.", 0, 1, datasetId); 3109 case 1929752504: /*variantsetId*/ return new Property("variantsetId", "string", "Id of the variantset in this external repository. The server will understand how to use this id to call for more info about variantsets in external repository.", 0, 1, variantsetId); 3110 case -1095407289: /*readsetId*/ return new Property("readsetId", "string", "Id of the read in this external repository.", 0, 1, readsetId); 3111 default: return super.getNamedProperty(_hash, _name, _checkValid); 3112 } 3113 3114 } 3115 3116 @Override 3117 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3118 switch (hash) { 3119 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<RepositoryType> 3120 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 3121 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 3122 case -345342029: /*datasetId*/ return this.datasetId == null ? new Base[0] : new Base[] {this.datasetId}; // StringType 3123 case 1929752504: /*variantsetId*/ return this.variantsetId == null ? new Base[0] : new Base[] {this.variantsetId}; // StringType 3124 case -1095407289: /*readsetId*/ return this.readsetId == null ? new Base[0] : new Base[] {this.readsetId}; // StringType 3125 default: return super.getProperty(hash, name, checkValid); 3126 } 3127 3128 } 3129 3130 @Override 3131 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3132 switch (hash) { 3133 case 3575610: // type 3134 value = new RepositoryTypeEnumFactory().fromType(castToCode(value)); 3135 this.type = (Enumeration) value; // Enumeration<RepositoryType> 3136 return value; 3137 case 116079: // url 3138 this.url = castToUri(value); // UriType 3139 return value; 3140 case 3373707: // name 3141 this.name = castToString(value); // StringType 3142 return value; 3143 case -345342029: // datasetId 3144 this.datasetId = castToString(value); // StringType 3145 return value; 3146 case 1929752504: // variantsetId 3147 this.variantsetId = castToString(value); // StringType 3148 return value; 3149 case -1095407289: // readsetId 3150 this.readsetId = castToString(value); // StringType 3151 return value; 3152 default: return super.setProperty(hash, name, value); 3153 } 3154 3155 } 3156 3157 @Override 3158 public Base setProperty(String name, Base value) throws FHIRException { 3159 if (name.equals("type")) { 3160 value = new RepositoryTypeEnumFactory().fromType(castToCode(value)); 3161 this.type = (Enumeration) value; // Enumeration<RepositoryType> 3162 } else if (name.equals("url")) { 3163 this.url = castToUri(value); // UriType 3164 } else if (name.equals("name")) { 3165 this.name = castToString(value); // StringType 3166 } else if (name.equals("datasetId")) { 3167 this.datasetId = castToString(value); // StringType 3168 } else if (name.equals("variantsetId")) { 3169 this.variantsetId = castToString(value); // StringType 3170 } else if (name.equals("readsetId")) { 3171 this.readsetId = castToString(value); // StringType 3172 } else 3173 return super.setProperty(name, value); 3174 return value; 3175 } 3176 3177 @Override 3178 public Base makeProperty(int hash, String name) throws FHIRException { 3179 switch (hash) { 3180 case 3575610: return getTypeElement(); 3181 case 116079: return getUrlElement(); 3182 case 3373707: return getNameElement(); 3183 case -345342029: return getDatasetIdElement(); 3184 case 1929752504: return getVariantsetIdElement(); 3185 case -1095407289: return getReadsetIdElement(); 3186 default: return super.makeProperty(hash, name); 3187 } 3188 3189 } 3190 3191 @Override 3192 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3193 switch (hash) { 3194 case 3575610: /*type*/ return new String[] {"code"}; 3195 case 116079: /*url*/ return new String[] {"uri"}; 3196 case 3373707: /*name*/ return new String[] {"string"}; 3197 case -345342029: /*datasetId*/ return new String[] {"string"}; 3198 case 1929752504: /*variantsetId*/ return new String[] {"string"}; 3199 case -1095407289: /*readsetId*/ return new String[] {"string"}; 3200 default: return super.getTypesForProperty(hash, name); 3201 } 3202 3203 } 3204 3205 @Override 3206 public Base addChild(String name) throws FHIRException { 3207 if (name.equals("type")) { 3208 throw new FHIRException("Cannot call addChild on a singleton property Sequence.type"); 3209 } 3210 else if (name.equals("url")) { 3211 throw new FHIRException("Cannot call addChild on a singleton property Sequence.url"); 3212 } 3213 else if (name.equals("name")) { 3214 throw new FHIRException("Cannot call addChild on a singleton property Sequence.name"); 3215 } 3216 else if (name.equals("datasetId")) { 3217 throw new FHIRException("Cannot call addChild on a singleton property Sequence.datasetId"); 3218 } 3219 else if (name.equals("variantsetId")) { 3220 throw new FHIRException("Cannot call addChild on a singleton property Sequence.variantsetId"); 3221 } 3222 else if (name.equals("readsetId")) { 3223 throw new FHIRException("Cannot call addChild on a singleton property Sequence.readsetId"); 3224 } 3225 else 3226 return super.addChild(name); 3227 } 3228 3229 public SequenceRepositoryComponent copy() { 3230 SequenceRepositoryComponent dst = new SequenceRepositoryComponent(); 3231 copyValues(dst); 3232 dst.type = type == null ? null : type.copy(); 3233 dst.url = url == null ? null : url.copy(); 3234 dst.name = name == null ? null : name.copy(); 3235 dst.datasetId = datasetId == null ? null : datasetId.copy(); 3236 dst.variantsetId = variantsetId == null ? null : variantsetId.copy(); 3237 dst.readsetId = readsetId == null ? null : readsetId.copy(); 3238 return dst; 3239 } 3240 3241 @Override 3242 public boolean equalsDeep(Base other_) { 3243 if (!super.equalsDeep(other_)) 3244 return false; 3245 if (!(other_ instanceof SequenceRepositoryComponent)) 3246 return false; 3247 SequenceRepositoryComponent o = (SequenceRepositoryComponent) other_; 3248 return compareDeep(type, o.type, true) && compareDeep(url, o.url, true) && compareDeep(name, o.name, true) 3249 && compareDeep(datasetId, o.datasetId, true) && compareDeep(variantsetId, o.variantsetId, true) 3250 && compareDeep(readsetId, o.readsetId, true); 3251 } 3252 3253 @Override 3254 public boolean equalsShallow(Base other_) { 3255 if (!super.equalsShallow(other_)) 3256 return false; 3257 if (!(other_ instanceof SequenceRepositoryComponent)) 3258 return false; 3259 SequenceRepositoryComponent o = (SequenceRepositoryComponent) other_; 3260 return compareValues(type, o.type, true) && compareValues(url, o.url, true) && compareValues(name, o.name, true) 3261 && compareValues(datasetId, o.datasetId, true) && compareValues(variantsetId, o.variantsetId, true) 3262 && compareValues(readsetId, o.readsetId, true); 3263 } 3264 3265 public boolean isEmpty() { 3266 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, url, name, datasetId 3267 , variantsetId, readsetId); 3268 } 3269 3270 public String fhirType() { 3271 return "Sequence.repository"; 3272 3273 } 3274 3275 } 3276 3277 /** 3278 * A unique identifier for this particular sequence instance. This is a FHIR-defined id. 3279 */ 3280 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3281 @Description(shortDefinition="Unique ID for this particular sequence. This is a FHIR-defined id", formalDefinition="A unique identifier for this particular sequence instance. This is a FHIR-defined id." ) 3282 protected List<Identifier> identifier; 3283 3284 /** 3285 * Amino Acid Sequence/ DNA Sequence / RNA Sequence. 3286 */ 3287 @Child(name = "type", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=true) 3288 @Description(shortDefinition="aa | dna | rna", formalDefinition="Amino Acid Sequence/ DNA Sequence / RNA Sequence." ) 3289 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/sequence-type") 3290 protected Enumeration<SequenceType> type; 3291 3292 /** 3293 * Whether the sequence is numbered starting at 0 (0-based numbering or coordinates, inclusive start, exclusive end) or starting at 1 (1-based numbering, inclusive start and inclusive end). 3294 */ 3295 @Child(name = "coordinateSystem", type = {IntegerType.class}, order=2, min=1, max=1, modifier=false, summary=true) 3296 @Description(shortDefinition="Base number of coordinate system (0 for 0-based numbering or coordinates, inclusive start, exclusive end, 1 for 1-based numbering, inclusive start, inclusive end)", formalDefinition="Whether the sequence is numbered starting at 0 (0-based numbering or coordinates, inclusive start, exclusive end) or starting at 1 (1-based numbering, inclusive start and inclusive end)." ) 3297 protected IntegerType coordinateSystem; 3298 3299 /** 3300 * The patient whose sequencing results are described by this resource. 3301 */ 3302 @Child(name = "patient", type = {Patient.class}, order=3, min=0, max=1, modifier=false, summary=true) 3303 @Description(shortDefinition="Who and/or what this is about", formalDefinition="The patient whose sequencing results are described by this resource." ) 3304 protected Reference patient; 3305 3306 /** 3307 * The actual object that is the target of the reference (The patient whose sequencing results are described by this resource.) 3308 */ 3309 protected Patient patientTarget; 3310 3311 /** 3312 * Specimen used for sequencing. 3313 */ 3314 @Child(name = "specimen", type = {Specimen.class}, order=4, min=0, max=1, modifier=false, summary=true) 3315 @Description(shortDefinition="Specimen used for sequencing", formalDefinition="Specimen used for sequencing." ) 3316 protected Reference specimen; 3317 3318 /** 3319 * The actual object that is the target of the reference (Specimen used for sequencing.) 3320 */ 3321 protected Specimen specimenTarget; 3322 3323 /** 3324 * The method for sequencing, for example, chip information. 3325 */ 3326 @Child(name = "device", type = {Device.class}, order=5, min=0, max=1, modifier=false, summary=true) 3327 @Description(shortDefinition="The method for sequencing", formalDefinition="The method for sequencing, for example, chip information." ) 3328 protected Reference device; 3329 3330 /** 3331 * The actual object that is the target of the reference (The method for sequencing, for example, chip information.) 3332 */ 3333 protected Device deviceTarget; 3334 3335 /** 3336 * The organization or lab that should be responsible for this result. 3337 */ 3338 @Child(name = "performer", type = {Organization.class}, order=6, min=0, max=1, modifier=false, summary=true) 3339 @Description(shortDefinition="Who should be responsible for test result", formalDefinition="The organization or lab that should be responsible for this result." ) 3340 protected Reference performer; 3341 3342 /** 3343 * The actual object that is the target of the reference (The organization or lab that should be responsible for this result.) 3344 */ 3345 protected Organization performerTarget; 3346 3347 /** 3348 * The number of copies of the seqeunce of interest. (RNASeq). 3349 */ 3350 @Child(name = "quantity", type = {Quantity.class}, order=7, min=0, max=1, modifier=false, summary=true) 3351 @Description(shortDefinition="The number of copies of the seqeunce of interest. (RNASeq)", formalDefinition="The number of copies of the seqeunce of interest. (RNASeq)." ) 3352 protected Quantity quantity; 3353 3354 /** 3355 * A sequence that is used as a reference to describe variants that are present in a sequence analyzed. 3356 */ 3357 @Child(name = "referenceSeq", type = {}, order=8, min=0, max=1, modifier=false, summary=true) 3358 @Description(shortDefinition="A sequence used as reference", formalDefinition="A sequence that is used as a reference to describe variants that are present in a sequence analyzed." ) 3359 protected SequenceReferenceSeqComponent referenceSeq; 3360 3361 /** 3362 * The definition of variant here originates from Sequence ontology ([variant_of](http://www.sequenceontology.org/browser/current_svn/term/variant_of)). This element can represent amino acid or nucleic sequence change(including insertion,deletion,SNP,etc.) It can represent some complex mutation or segment variation with the assist of CIGAR string. 3363 */ 3364 @Child(name = "variant", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3365 @Description(shortDefinition="Variant in sequence", formalDefinition="The definition of variant here originates from Sequence ontology ([variant_of](http://www.sequenceontology.org/browser/current_svn/term/variant_of)). This element can represent amino acid or nucleic sequence change(including insertion,deletion,SNP,etc.) It can represent some complex mutation or segment variation with the assist of CIGAR string." ) 3366 protected List<SequenceVariantComponent> variant; 3367 3368 /** 3369 * Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall starts from referenceSeq.windowStart and end by referenceSeq.windowEnd. 3370 */ 3371 @Child(name = "observedSeq", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=true) 3372 @Description(shortDefinition="Sequence that was observed", formalDefinition="Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall starts from referenceSeq.windowStart and end by referenceSeq.windowEnd." ) 3373 protected StringType observedSeq; 3374 3375 /** 3376 * An experimental feature attribute that defines the quality of the feature in a quantitative way, such as a phred quality score ([SO:0001686](http://www.sequenceontology.org/browser/current_svn/term/SO:0001686)). 3377 */ 3378 @Child(name = "quality", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3379 @Description(shortDefinition="An set of value as quality of sequence", formalDefinition="An experimental feature attribute that defines the quality of the feature in a quantitative way, such as a phred quality score ([SO:0001686](http://www.sequenceontology.org/browser/current_svn/term/SO:0001686))." ) 3380 protected List<SequenceQualityComponent> quality; 3381 3382 /** 3383 * Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence. 3384 */ 3385 @Child(name = "readCoverage", type = {IntegerType.class}, order=12, min=0, max=1, modifier=false, summary=true) 3386 @Description(shortDefinition="Average number of reads representing a given nucleotide in the reconstructed sequence", formalDefinition="Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence." ) 3387 protected IntegerType readCoverage; 3388 3389 /** 3390 * Configurations of the external repository. The repository shall store target's observedSeq or records related with target's observedSeq. 3391 */ 3392 @Child(name = "repository", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3393 @Description(shortDefinition="External repository which contains detailed report related with observedSeq in this resource", formalDefinition="Configurations of the external repository. The repository shall store target's observedSeq or records related with target's observedSeq." ) 3394 protected List<SequenceRepositoryComponent> repository; 3395 3396 /** 3397 * Pointer to next atomic sequence which at most contains one variant. 3398 */ 3399 @Child(name = "pointer", type = {Sequence.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3400 @Description(shortDefinition="Pointer to next atomic sequence", formalDefinition="Pointer to next atomic sequence which at most contains one variant." ) 3401 protected List<Reference> pointer; 3402 /** 3403 * The actual objects that are the target of the reference (Pointer to next atomic sequence which at most contains one variant.) 3404 */ 3405 protected List<Sequence> pointerTarget; 3406 3407 3408 private static final long serialVersionUID = -2101352712L; 3409 3410 /** 3411 * Constructor 3412 */ 3413 public Sequence() { 3414 super(); 3415 } 3416 3417 /** 3418 * Constructor 3419 */ 3420 public Sequence(IntegerType coordinateSystem) { 3421 super(); 3422 this.coordinateSystem = coordinateSystem; 3423 } 3424 3425 /** 3426 * @return {@link #identifier} (A unique identifier for this particular sequence instance. This is a FHIR-defined id.) 3427 */ 3428 public List<Identifier> getIdentifier() { 3429 if (this.identifier == null) 3430 this.identifier = new ArrayList<Identifier>(); 3431 return this.identifier; 3432 } 3433 3434 /** 3435 * @return Returns a reference to <code>this</code> for easy method chaining 3436 */ 3437 public Sequence setIdentifier(List<Identifier> theIdentifier) { 3438 this.identifier = theIdentifier; 3439 return this; 3440 } 3441 3442 public boolean hasIdentifier() { 3443 if (this.identifier == null) 3444 return false; 3445 for (Identifier item : this.identifier) 3446 if (!item.isEmpty()) 3447 return true; 3448 return false; 3449 } 3450 3451 public Identifier addIdentifier() { //3 3452 Identifier t = new Identifier(); 3453 if (this.identifier == null) 3454 this.identifier = new ArrayList<Identifier>(); 3455 this.identifier.add(t); 3456 return t; 3457 } 3458 3459 public Sequence addIdentifier(Identifier t) { //3 3460 if (t == null) 3461 return this; 3462 if (this.identifier == null) 3463 this.identifier = new ArrayList<Identifier>(); 3464 this.identifier.add(t); 3465 return this; 3466 } 3467 3468 /** 3469 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 3470 */ 3471 public Identifier getIdentifierFirstRep() { 3472 if (getIdentifier().isEmpty()) { 3473 addIdentifier(); 3474 } 3475 return getIdentifier().get(0); 3476 } 3477 3478 /** 3479 * @return {@link #type} (Amino Acid Sequence/ DNA Sequence / RNA Sequence.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 3480 */ 3481 public Enumeration<SequenceType> getTypeElement() { 3482 if (this.type == null) 3483 if (Configuration.errorOnAutoCreate()) 3484 throw new Error("Attempt to auto-create Sequence.type"); 3485 else if (Configuration.doAutoCreate()) 3486 this.type = new Enumeration<SequenceType>(new SequenceTypeEnumFactory()); // bb 3487 return this.type; 3488 } 3489 3490 public boolean hasTypeElement() { 3491 return this.type != null && !this.type.isEmpty(); 3492 } 3493 3494 public boolean hasType() { 3495 return this.type != null && !this.type.isEmpty(); 3496 } 3497 3498 /** 3499 * @param value {@link #type} (Amino Acid Sequence/ DNA Sequence / RNA Sequence.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 3500 */ 3501 public Sequence setTypeElement(Enumeration<SequenceType> value) { 3502 this.type = value; 3503 return this; 3504 } 3505 3506 /** 3507 * @return Amino Acid Sequence/ DNA Sequence / RNA Sequence. 3508 */ 3509 public SequenceType getType() { 3510 return this.type == null ? null : this.type.getValue(); 3511 } 3512 3513 /** 3514 * @param value Amino Acid Sequence/ DNA Sequence / RNA Sequence. 3515 */ 3516 public Sequence setType(SequenceType value) { 3517 if (value == null) 3518 this.type = null; 3519 else { 3520 if (this.type == null) 3521 this.type = new Enumeration<SequenceType>(new SequenceTypeEnumFactory()); 3522 this.type.setValue(value); 3523 } 3524 return this; 3525 } 3526 3527 /** 3528 * @return {@link #coordinateSystem} (Whether the sequence is numbered starting at 0 (0-based numbering or coordinates, inclusive start, exclusive end) or starting at 1 (1-based numbering, inclusive start and inclusive end).). This is the underlying object with id, value and extensions. The accessor "getCoordinateSystem" gives direct access to the value 3529 */ 3530 public IntegerType getCoordinateSystemElement() { 3531 if (this.coordinateSystem == null) 3532 if (Configuration.errorOnAutoCreate()) 3533 throw new Error("Attempt to auto-create Sequence.coordinateSystem"); 3534 else if (Configuration.doAutoCreate()) 3535 this.coordinateSystem = new IntegerType(); // bb 3536 return this.coordinateSystem; 3537 } 3538 3539 public boolean hasCoordinateSystemElement() { 3540 return this.coordinateSystem != null && !this.coordinateSystem.isEmpty(); 3541 } 3542 3543 public boolean hasCoordinateSystem() { 3544 return this.coordinateSystem != null && !this.coordinateSystem.isEmpty(); 3545 } 3546 3547 /** 3548 * @param value {@link #coordinateSystem} (Whether the sequence is numbered starting at 0 (0-based numbering or coordinates, inclusive start, exclusive end) or starting at 1 (1-based numbering, inclusive start and inclusive end).). This is the underlying object with id, value and extensions. The accessor "getCoordinateSystem" gives direct access to the value 3549 */ 3550 public Sequence setCoordinateSystemElement(IntegerType value) { 3551 this.coordinateSystem = value; 3552 return this; 3553 } 3554 3555 /** 3556 * @return Whether the sequence is numbered starting at 0 (0-based numbering or coordinates, inclusive start, exclusive end) or starting at 1 (1-based numbering, inclusive start and inclusive end). 3557 */ 3558 public int getCoordinateSystem() { 3559 return this.coordinateSystem == null || this.coordinateSystem.isEmpty() ? 0 : this.coordinateSystem.getValue(); 3560 } 3561 3562 /** 3563 * @param value Whether the sequence is numbered starting at 0 (0-based numbering or coordinates, inclusive start, exclusive end) or starting at 1 (1-based numbering, inclusive start and inclusive end). 3564 */ 3565 public Sequence setCoordinateSystem(int value) { 3566 if (this.coordinateSystem == null) 3567 this.coordinateSystem = new IntegerType(); 3568 this.coordinateSystem.setValue(value); 3569 return this; 3570 } 3571 3572 /** 3573 * @return {@link #patient} (The patient whose sequencing results are described by this resource.) 3574 */ 3575 public Reference getPatient() { 3576 if (this.patient == null) 3577 if (Configuration.errorOnAutoCreate()) 3578 throw new Error("Attempt to auto-create Sequence.patient"); 3579 else if (Configuration.doAutoCreate()) 3580 this.patient = new Reference(); // cc 3581 return this.patient; 3582 } 3583 3584 public boolean hasPatient() { 3585 return this.patient != null && !this.patient.isEmpty(); 3586 } 3587 3588 /** 3589 * @param value {@link #patient} (The patient whose sequencing results are described by this resource.) 3590 */ 3591 public Sequence setPatient(Reference value) { 3592 this.patient = value; 3593 return this; 3594 } 3595 3596 /** 3597 * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient whose sequencing results are described by this resource.) 3598 */ 3599 public Patient getPatientTarget() { 3600 if (this.patientTarget == null) 3601 if (Configuration.errorOnAutoCreate()) 3602 throw new Error("Attempt to auto-create Sequence.patient"); 3603 else if (Configuration.doAutoCreate()) 3604 this.patientTarget = new Patient(); // aa 3605 return this.patientTarget; 3606 } 3607 3608 /** 3609 * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient whose sequencing results are described by this resource.) 3610 */ 3611 public Sequence setPatientTarget(Patient value) { 3612 this.patientTarget = value; 3613 return this; 3614 } 3615 3616 /** 3617 * @return {@link #specimen} (Specimen used for sequencing.) 3618 */ 3619 public Reference getSpecimen() { 3620 if (this.specimen == null) 3621 if (Configuration.errorOnAutoCreate()) 3622 throw new Error("Attempt to auto-create Sequence.specimen"); 3623 else if (Configuration.doAutoCreate()) 3624 this.specimen = new Reference(); // cc 3625 return this.specimen; 3626 } 3627 3628 public boolean hasSpecimen() { 3629 return this.specimen != null && !this.specimen.isEmpty(); 3630 } 3631 3632 /** 3633 * @param value {@link #specimen} (Specimen used for sequencing.) 3634 */ 3635 public Sequence setSpecimen(Reference value) { 3636 this.specimen = value; 3637 return this; 3638 } 3639 3640 /** 3641 * @return {@link #specimen} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Specimen used for sequencing.) 3642 */ 3643 public Specimen getSpecimenTarget() { 3644 if (this.specimenTarget == null) 3645 if (Configuration.errorOnAutoCreate()) 3646 throw new Error("Attempt to auto-create Sequence.specimen"); 3647 else if (Configuration.doAutoCreate()) 3648 this.specimenTarget = new Specimen(); // aa 3649 return this.specimenTarget; 3650 } 3651 3652 /** 3653 * @param value {@link #specimen} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Specimen used for sequencing.) 3654 */ 3655 public Sequence setSpecimenTarget(Specimen value) { 3656 this.specimenTarget = value; 3657 return this; 3658 } 3659 3660 /** 3661 * @return {@link #device} (The method for sequencing, for example, chip information.) 3662 */ 3663 public Reference getDevice() { 3664 if (this.device == null) 3665 if (Configuration.errorOnAutoCreate()) 3666 throw new Error("Attempt to auto-create Sequence.device"); 3667 else if (Configuration.doAutoCreate()) 3668 this.device = new Reference(); // cc 3669 return this.device; 3670 } 3671 3672 public boolean hasDevice() { 3673 return this.device != null && !this.device.isEmpty(); 3674 } 3675 3676 /** 3677 * @param value {@link #device} (The method for sequencing, for example, chip information.) 3678 */ 3679 public Sequence setDevice(Reference value) { 3680 this.device = value; 3681 return this; 3682 } 3683 3684 /** 3685 * @return {@link #device} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The method for sequencing, for example, chip information.) 3686 */ 3687 public Device getDeviceTarget() { 3688 if (this.deviceTarget == null) 3689 if (Configuration.errorOnAutoCreate()) 3690 throw new Error("Attempt to auto-create Sequence.device"); 3691 else if (Configuration.doAutoCreate()) 3692 this.deviceTarget = new Device(); // aa 3693 return this.deviceTarget; 3694 } 3695 3696 /** 3697 * @param value {@link #device} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The method for sequencing, for example, chip information.) 3698 */ 3699 public Sequence setDeviceTarget(Device value) { 3700 this.deviceTarget = value; 3701 return this; 3702 } 3703 3704 /** 3705 * @return {@link #performer} (The organization or lab that should be responsible for this result.) 3706 */ 3707 public Reference getPerformer() { 3708 if (this.performer == null) 3709 if (Configuration.errorOnAutoCreate()) 3710 throw new Error("Attempt to auto-create Sequence.performer"); 3711 else if (Configuration.doAutoCreate()) 3712 this.performer = new Reference(); // cc 3713 return this.performer; 3714 } 3715 3716 public boolean hasPerformer() { 3717 return this.performer != null && !this.performer.isEmpty(); 3718 } 3719 3720 /** 3721 * @param value {@link #performer} (The organization or lab that should be responsible for this result.) 3722 */ 3723 public Sequence setPerformer(Reference value) { 3724 this.performer = value; 3725 return this; 3726 } 3727 3728 /** 3729 * @return {@link #performer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization or lab that should be responsible for this result.) 3730 */ 3731 public Organization getPerformerTarget() { 3732 if (this.performerTarget == null) 3733 if (Configuration.errorOnAutoCreate()) 3734 throw new Error("Attempt to auto-create Sequence.performer"); 3735 else if (Configuration.doAutoCreate()) 3736 this.performerTarget = new Organization(); // aa 3737 return this.performerTarget; 3738 } 3739 3740 /** 3741 * @param value {@link #performer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization or lab that should be responsible for this result.) 3742 */ 3743 public Sequence setPerformerTarget(Organization value) { 3744 this.performerTarget = value; 3745 return this; 3746 } 3747 3748 /** 3749 * @return {@link #quantity} (The number of copies of the seqeunce of interest. (RNASeq).) 3750 */ 3751 public Quantity getQuantity() { 3752 if (this.quantity == null) 3753 if (Configuration.errorOnAutoCreate()) 3754 throw new Error("Attempt to auto-create Sequence.quantity"); 3755 else if (Configuration.doAutoCreate()) 3756 this.quantity = new Quantity(); // cc 3757 return this.quantity; 3758 } 3759 3760 public boolean hasQuantity() { 3761 return this.quantity != null && !this.quantity.isEmpty(); 3762 } 3763 3764 /** 3765 * @param value {@link #quantity} (The number of copies of the seqeunce of interest. (RNASeq).) 3766 */ 3767 public Sequence setQuantity(Quantity value) { 3768 this.quantity = value; 3769 return this; 3770 } 3771 3772 /** 3773 * @return {@link #referenceSeq} (A sequence that is used as a reference to describe variants that are present in a sequence analyzed.) 3774 */ 3775 public SequenceReferenceSeqComponent getReferenceSeq() { 3776 if (this.referenceSeq == null) 3777 if (Configuration.errorOnAutoCreate()) 3778 throw new Error("Attempt to auto-create Sequence.referenceSeq"); 3779 else if (Configuration.doAutoCreate()) 3780 this.referenceSeq = new SequenceReferenceSeqComponent(); // cc 3781 return this.referenceSeq; 3782 } 3783 3784 public boolean hasReferenceSeq() { 3785 return this.referenceSeq != null && !this.referenceSeq.isEmpty(); 3786 } 3787 3788 /** 3789 * @param value {@link #referenceSeq} (A sequence that is used as a reference to describe variants that are present in a sequence analyzed.) 3790 */ 3791 public Sequence setReferenceSeq(SequenceReferenceSeqComponent value) { 3792 this.referenceSeq = value; 3793 return this; 3794 } 3795 3796 /** 3797 * @return {@link #variant} (The definition of variant here originates from Sequence ontology ([variant_of](http://www.sequenceontology.org/browser/current_svn/term/variant_of)). This element can represent amino acid or nucleic sequence change(including insertion,deletion,SNP,etc.) It can represent some complex mutation or segment variation with the assist of CIGAR string.) 3798 */ 3799 public List<SequenceVariantComponent> getVariant() { 3800 if (this.variant == null) 3801 this.variant = new ArrayList<SequenceVariantComponent>(); 3802 return this.variant; 3803 } 3804 3805 /** 3806 * @return Returns a reference to <code>this</code> for easy method chaining 3807 */ 3808 public Sequence setVariant(List<SequenceVariantComponent> theVariant) { 3809 this.variant = theVariant; 3810 return this; 3811 } 3812 3813 public boolean hasVariant() { 3814 if (this.variant == null) 3815 return false; 3816 for (SequenceVariantComponent item : this.variant) 3817 if (!item.isEmpty()) 3818 return true; 3819 return false; 3820 } 3821 3822 public SequenceVariantComponent addVariant() { //3 3823 SequenceVariantComponent t = new SequenceVariantComponent(); 3824 if (this.variant == null) 3825 this.variant = new ArrayList<SequenceVariantComponent>(); 3826 this.variant.add(t); 3827 return t; 3828 } 3829 3830 public Sequence addVariant(SequenceVariantComponent t) { //3 3831 if (t == null) 3832 return this; 3833 if (this.variant == null) 3834 this.variant = new ArrayList<SequenceVariantComponent>(); 3835 this.variant.add(t); 3836 return this; 3837 } 3838 3839 /** 3840 * @return The first repetition of repeating field {@link #variant}, creating it if it does not already exist 3841 */ 3842 public SequenceVariantComponent getVariantFirstRep() { 3843 if (getVariant().isEmpty()) { 3844 addVariant(); 3845 } 3846 return getVariant().get(0); 3847 } 3848 3849 /** 3850 * @return {@link #observedSeq} (Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall starts from referenceSeq.windowStart and end by referenceSeq.windowEnd.). This is the underlying object with id, value and extensions. The accessor "getObservedSeq" gives direct access to the value 3851 */ 3852 public StringType getObservedSeqElement() { 3853 if (this.observedSeq == null) 3854 if (Configuration.errorOnAutoCreate()) 3855 throw new Error("Attempt to auto-create Sequence.observedSeq"); 3856 else if (Configuration.doAutoCreate()) 3857 this.observedSeq = new StringType(); // bb 3858 return this.observedSeq; 3859 } 3860 3861 public boolean hasObservedSeqElement() { 3862 return this.observedSeq != null && !this.observedSeq.isEmpty(); 3863 } 3864 3865 public boolean hasObservedSeq() { 3866 return this.observedSeq != null && !this.observedSeq.isEmpty(); 3867 } 3868 3869 /** 3870 * @param value {@link #observedSeq} (Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall starts from referenceSeq.windowStart and end by referenceSeq.windowEnd.). This is the underlying object with id, value and extensions. The accessor "getObservedSeq" gives direct access to the value 3871 */ 3872 public Sequence setObservedSeqElement(StringType value) { 3873 this.observedSeq = value; 3874 return this; 3875 } 3876 3877 /** 3878 * @return Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall starts from referenceSeq.windowStart and end by referenceSeq.windowEnd. 3879 */ 3880 public String getObservedSeq() { 3881 return this.observedSeq == null ? null : this.observedSeq.getValue(); 3882 } 3883 3884 /** 3885 * @param value Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall starts from referenceSeq.windowStart and end by referenceSeq.windowEnd. 3886 */ 3887 public Sequence setObservedSeq(String value) { 3888 if (Utilities.noString(value)) 3889 this.observedSeq = null; 3890 else { 3891 if (this.observedSeq == null) 3892 this.observedSeq = new StringType(); 3893 this.observedSeq.setValue(value); 3894 } 3895 return this; 3896 } 3897 3898 /** 3899 * @return {@link #quality} (An experimental feature attribute that defines the quality of the feature in a quantitative way, such as a phred quality score ([SO:0001686](http://www.sequenceontology.org/browser/current_svn/term/SO:0001686)).) 3900 */ 3901 public List<SequenceQualityComponent> getQuality() { 3902 if (this.quality == null) 3903 this.quality = new ArrayList<SequenceQualityComponent>(); 3904 return this.quality; 3905 } 3906 3907 /** 3908 * @return Returns a reference to <code>this</code> for easy method chaining 3909 */ 3910 public Sequence setQuality(List<SequenceQualityComponent> theQuality) { 3911 this.quality = theQuality; 3912 return this; 3913 } 3914 3915 public boolean hasQuality() { 3916 if (this.quality == null) 3917 return false; 3918 for (SequenceQualityComponent item : this.quality) 3919 if (!item.isEmpty()) 3920 return true; 3921 return false; 3922 } 3923 3924 public SequenceQualityComponent addQuality() { //3 3925 SequenceQualityComponent t = new SequenceQualityComponent(); 3926 if (this.quality == null) 3927 this.quality = new ArrayList<SequenceQualityComponent>(); 3928 this.quality.add(t); 3929 return t; 3930 } 3931 3932 public Sequence addQuality(SequenceQualityComponent t) { //3 3933 if (t == null) 3934 return this; 3935 if (this.quality == null) 3936 this.quality = new ArrayList<SequenceQualityComponent>(); 3937 this.quality.add(t); 3938 return this; 3939 } 3940 3941 /** 3942 * @return The first repetition of repeating field {@link #quality}, creating it if it does not already exist 3943 */ 3944 public SequenceQualityComponent getQualityFirstRep() { 3945 if (getQuality().isEmpty()) { 3946 addQuality(); 3947 } 3948 return getQuality().get(0); 3949 } 3950 3951 /** 3952 * @return {@link #readCoverage} (Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence.). This is the underlying object with id, value and extensions. The accessor "getReadCoverage" gives direct access to the value 3953 */ 3954 public IntegerType getReadCoverageElement() { 3955 if (this.readCoverage == null) 3956 if (Configuration.errorOnAutoCreate()) 3957 throw new Error("Attempt to auto-create Sequence.readCoverage"); 3958 else if (Configuration.doAutoCreate()) 3959 this.readCoverage = new IntegerType(); // bb 3960 return this.readCoverage; 3961 } 3962 3963 public boolean hasReadCoverageElement() { 3964 return this.readCoverage != null && !this.readCoverage.isEmpty(); 3965 } 3966 3967 public boolean hasReadCoverage() { 3968 return this.readCoverage != null && !this.readCoverage.isEmpty(); 3969 } 3970 3971 /** 3972 * @param value {@link #readCoverage} (Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence.). This is the underlying object with id, value and extensions. The accessor "getReadCoverage" gives direct access to the value 3973 */ 3974 public Sequence setReadCoverageElement(IntegerType value) { 3975 this.readCoverage = value; 3976 return this; 3977 } 3978 3979 /** 3980 * @return Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence. 3981 */ 3982 public int getReadCoverage() { 3983 return this.readCoverage == null || this.readCoverage.isEmpty() ? 0 : this.readCoverage.getValue(); 3984 } 3985 3986 /** 3987 * @param value Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence. 3988 */ 3989 public Sequence setReadCoverage(int value) { 3990 if (this.readCoverage == null) 3991 this.readCoverage = new IntegerType(); 3992 this.readCoverage.setValue(value); 3993 return this; 3994 } 3995 3996 /** 3997 * @return {@link #repository} (Configurations of the external repository. The repository shall store target's observedSeq or records related with target's observedSeq.) 3998 */ 3999 public List<SequenceRepositoryComponent> getRepository() { 4000 if (this.repository == null) 4001 this.repository = new ArrayList<SequenceRepositoryComponent>(); 4002 return this.repository; 4003 } 4004 4005 /** 4006 * @return Returns a reference to <code>this</code> for easy method chaining 4007 */ 4008 public Sequence setRepository(List<SequenceRepositoryComponent> theRepository) { 4009 this.repository = theRepository; 4010 return this; 4011 } 4012 4013 public boolean hasRepository() { 4014 if (this.repository == null) 4015 return false; 4016 for (SequenceRepositoryComponent item : this.repository) 4017 if (!item.isEmpty()) 4018 return true; 4019 return false; 4020 } 4021 4022 public SequenceRepositoryComponent addRepository() { //3 4023 SequenceRepositoryComponent t = new SequenceRepositoryComponent(); 4024 if (this.repository == null) 4025 this.repository = new ArrayList<SequenceRepositoryComponent>(); 4026 this.repository.add(t); 4027 return t; 4028 } 4029 4030 public Sequence addRepository(SequenceRepositoryComponent t) { //3 4031 if (t == null) 4032 return this; 4033 if (this.repository == null) 4034 this.repository = new ArrayList<SequenceRepositoryComponent>(); 4035 this.repository.add(t); 4036 return this; 4037 } 4038 4039 /** 4040 * @return The first repetition of repeating field {@link #repository}, creating it if it does not already exist 4041 */ 4042 public SequenceRepositoryComponent getRepositoryFirstRep() { 4043 if (getRepository().isEmpty()) { 4044 addRepository(); 4045 } 4046 return getRepository().get(0); 4047 } 4048 4049 /** 4050 * @return {@link #pointer} (Pointer to next atomic sequence which at most contains one variant.) 4051 */ 4052 public List<Reference> getPointer() { 4053 if (this.pointer == null) 4054 this.pointer = new ArrayList<Reference>(); 4055 return this.pointer; 4056 } 4057 4058 /** 4059 * @return Returns a reference to <code>this</code> for easy method chaining 4060 */ 4061 public Sequence setPointer(List<Reference> thePointer) { 4062 this.pointer = thePointer; 4063 return this; 4064 } 4065 4066 public boolean hasPointer() { 4067 if (this.pointer == null) 4068 return false; 4069 for (Reference item : this.pointer) 4070 if (!item.isEmpty()) 4071 return true; 4072 return false; 4073 } 4074 4075 public Reference addPointer() { //3 4076 Reference t = new Reference(); 4077 if (this.pointer == null) 4078 this.pointer = new ArrayList<Reference>(); 4079 this.pointer.add(t); 4080 return t; 4081 } 4082 4083 public Sequence addPointer(Reference t) { //3 4084 if (t == null) 4085 return this; 4086 if (this.pointer == null) 4087 this.pointer = new ArrayList<Reference>(); 4088 this.pointer.add(t); 4089 return this; 4090 } 4091 4092 /** 4093 * @return The first repetition of repeating field {@link #pointer}, creating it if it does not already exist 4094 */ 4095 public Reference getPointerFirstRep() { 4096 if (getPointer().isEmpty()) { 4097 addPointer(); 4098 } 4099 return getPointer().get(0); 4100 } 4101 4102 /** 4103 * @deprecated Use Reference#setResource(IBaseResource) instead 4104 */ 4105 @Deprecated 4106 public List<Sequence> getPointerTarget() { 4107 if (this.pointerTarget == null) 4108 this.pointerTarget = new ArrayList<Sequence>(); 4109 return this.pointerTarget; 4110 } 4111 4112 /** 4113 * @deprecated Use Reference#setResource(IBaseResource) instead 4114 */ 4115 @Deprecated 4116 public Sequence addPointerTarget() { 4117 Sequence r = new Sequence(); 4118 if (this.pointerTarget == null) 4119 this.pointerTarget = new ArrayList<Sequence>(); 4120 this.pointerTarget.add(r); 4121 return r; 4122 } 4123 4124 protected void listChildren(List<Property> children) { 4125 super.listChildren(children); 4126 children.add(new Property("identifier", "Identifier", "A unique identifier for this particular sequence instance. This is a FHIR-defined id.", 0, java.lang.Integer.MAX_VALUE, identifier)); 4127 children.add(new Property("type", "code", "Amino Acid Sequence/ DNA Sequence / RNA Sequence.", 0, 1, type)); 4128 children.add(new Property("coordinateSystem", "integer", "Whether the sequence is numbered starting at 0 (0-based numbering or coordinates, inclusive start, exclusive end) or starting at 1 (1-based numbering, inclusive start and inclusive end).", 0, 1, coordinateSystem)); 4129 children.add(new Property("patient", "Reference(Patient)", "The patient whose sequencing results are described by this resource.", 0, 1, patient)); 4130 children.add(new Property("specimen", "Reference(Specimen)", "Specimen used for sequencing.", 0, 1, specimen)); 4131 children.add(new Property("device", "Reference(Device)", "The method for sequencing, for example, chip information.", 0, 1, device)); 4132 children.add(new Property("performer", "Reference(Organization)", "The organization or lab that should be responsible for this result.", 0, 1, performer)); 4133 children.add(new Property("quantity", "Quantity", "The number of copies of the seqeunce of interest. (RNASeq).", 0, 1, quantity)); 4134 children.add(new Property("referenceSeq", "", "A sequence that is used as a reference to describe variants that are present in a sequence analyzed.", 0, 1, referenceSeq)); 4135 children.add(new Property("variant", "", "The definition of variant here originates from Sequence ontology ([variant_of](http://www.sequenceontology.org/browser/current_svn/term/variant_of)). This element can represent amino acid or nucleic sequence change(including insertion,deletion,SNP,etc.) It can represent some complex mutation or segment variation with the assist of CIGAR string.", 0, java.lang.Integer.MAX_VALUE, variant)); 4136 children.add(new Property("observedSeq", "string", "Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall starts from referenceSeq.windowStart and end by referenceSeq.windowEnd.", 0, 1, observedSeq)); 4137 children.add(new Property("quality", "", "An experimental feature attribute that defines the quality of the feature in a quantitative way, such as a phred quality score ([SO:0001686](http://www.sequenceontology.org/browser/current_svn/term/SO:0001686)).", 0, java.lang.Integer.MAX_VALUE, quality)); 4138 children.add(new Property("readCoverage", "integer", "Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence.", 0, 1, readCoverage)); 4139 children.add(new Property("repository", "", "Configurations of the external repository. The repository shall store target's observedSeq or records related with target's observedSeq.", 0, java.lang.Integer.MAX_VALUE, repository)); 4140 children.add(new Property("pointer", "Reference(Sequence)", "Pointer to next atomic sequence which at most contains one variant.", 0, java.lang.Integer.MAX_VALUE, pointer)); 4141 } 4142 4143 @Override 4144 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4145 switch (_hash) { 4146 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A unique identifier for this particular sequence instance. This is a FHIR-defined id.", 0, java.lang.Integer.MAX_VALUE, identifier); 4147 case 3575610: /*type*/ return new Property("type", "code", "Amino Acid Sequence/ DNA Sequence / RNA Sequence.", 0, 1, type); 4148 case 354212295: /*coordinateSystem*/ return new Property("coordinateSystem", "integer", "Whether the sequence is numbered starting at 0 (0-based numbering or coordinates, inclusive start, exclusive end) or starting at 1 (1-based numbering, inclusive start and inclusive end).", 0, 1, coordinateSystem); 4149 case -791418107: /*patient*/ return new Property("patient", "Reference(Patient)", "The patient whose sequencing results are described by this resource.", 0, 1, patient); 4150 case -2132868344: /*specimen*/ return new Property("specimen", "Reference(Specimen)", "Specimen used for sequencing.", 0, 1, specimen); 4151 case -1335157162: /*device*/ return new Property("device", "Reference(Device)", "The method for sequencing, for example, chip information.", 0, 1, device); 4152 case 481140686: /*performer*/ return new Property("performer", "Reference(Organization)", "The organization or lab that should be responsible for this result.", 0, 1, performer); 4153 case -1285004149: /*quantity*/ return new Property("quantity", "Quantity", "The number of copies of the seqeunce of interest. (RNASeq).", 0, 1, quantity); 4154 case -502547180: /*referenceSeq*/ return new Property("referenceSeq", "", "A sequence that is used as a reference to describe variants that are present in a sequence analyzed.", 0, 1, referenceSeq); 4155 case 236785797: /*variant*/ return new Property("variant", "", "The definition of variant here originates from Sequence ontology ([variant_of](http://www.sequenceontology.org/browser/current_svn/term/variant_of)). This element can represent amino acid or nucleic sequence change(including insertion,deletion,SNP,etc.) It can represent some complex mutation or segment variation with the assist of CIGAR string.", 0, java.lang.Integer.MAX_VALUE, variant); 4156 case 125541495: /*observedSeq*/ return new Property("observedSeq", "string", "Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall starts from referenceSeq.windowStart and end by referenceSeq.windowEnd.", 0, 1, observedSeq); 4157 case 651215103: /*quality*/ return new Property("quality", "", "An experimental feature attribute that defines the quality of the feature in a quantitative way, such as a phred quality score ([SO:0001686](http://www.sequenceontology.org/browser/current_svn/term/SO:0001686)).", 0, java.lang.Integer.MAX_VALUE, quality); 4158 case -1798816354: /*readCoverage*/ return new Property("readCoverage", "integer", "Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence.", 0, 1, readCoverage); 4159 case 1950800714: /*repository*/ return new Property("repository", "", "Configurations of the external repository. The repository shall store target's observedSeq or records related with target's observedSeq.", 0, java.lang.Integer.MAX_VALUE, repository); 4160 case -400605635: /*pointer*/ return new Property("pointer", "Reference(Sequence)", "Pointer to next atomic sequence which at most contains one variant.", 0, java.lang.Integer.MAX_VALUE, pointer); 4161 default: return super.getNamedProperty(_hash, _name, _checkValid); 4162 } 4163 4164 } 4165 4166 @Override 4167 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4168 switch (hash) { 4169 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 4170 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<SequenceType> 4171 case 354212295: /*coordinateSystem*/ return this.coordinateSystem == null ? new Base[0] : new Base[] {this.coordinateSystem}; // IntegerType 4172 case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference 4173 case -2132868344: /*specimen*/ return this.specimen == null ? new Base[0] : new Base[] {this.specimen}; // Reference 4174 case -1335157162: /*device*/ return this.device == null ? new Base[0] : new Base[] {this.device}; // Reference 4175 case 481140686: /*performer*/ return this.performer == null ? new Base[0] : new Base[] {this.performer}; // Reference 4176 case -1285004149: /*quantity*/ return this.quantity == null ? new Base[0] : new Base[] {this.quantity}; // Quantity 4177 case -502547180: /*referenceSeq*/ return this.referenceSeq == null ? new Base[0] : new Base[] {this.referenceSeq}; // SequenceReferenceSeqComponent 4178 case 236785797: /*variant*/ return this.variant == null ? new Base[0] : this.variant.toArray(new Base[this.variant.size()]); // SequenceVariantComponent 4179 case 125541495: /*observedSeq*/ return this.observedSeq == null ? new Base[0] : new Base[] {this.observedSeq}; // StringType 4180 case 651215103: /*quality*/ return this.quality == null ? new Base[0] : this.quality.toArray(new Base[this.quality.size()]); // SequenceQualityComponent 4181 case -1798816354: /*readCoverage*/ return this.readCoverage == null ? new Base[0] : new Base[] {this.readCoverage}; // IntegerType 4182 case 1950800714: /*repository*/ return this.repository == null ? new Base[0] : this.repository.toArray(new Base[this.repository.size()]); // SequenceRepositoryComponent 4183 case -400605635: /*pointer*/ return this.pointer == null ? new Base[0] : this.pointer.toArray(new Base[this.pointer.size()]); // Reference 4184 default: return super.getProperty(hash, name, checkValid); 4185 } 4186 4187 } 4188 4189 @Override 4190 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4191 switch (hash) { 4192 case -1618432855: // identifier 4193 this.getIdentifier().add(castToIdentifier(value)); // Identifier 4194 return value; 4195 case 3575610: // type 4196 value = new SequenceTypeEnumFactory().fromType(castToCode(value)); 4197 this.type = (Enumeration) value; // Enumeration<SequenceType> 4198 return value; 4199 case 354212295: // coordinateSystem 4200 this.coordinateSystem = castToInteger(value); // IntegerType 4201 return value; 4202 case -791418107: // patient 4203 this.patient = castToReference(value); // Reference 4204 return value; 4205 case -2132868344: // specimen 4206 this.specimen = castToReference(value); // Reference 4207 return value; 4208 case -1335157162: // device 4209 this.device = castToReference(value); // Reference 4210 return value; 4211 case 481140686: // performer 4212 this.performer = castToReference(value); // Reference 4213 return value; 4214 case -1285004149: // quantity 4215 this.quantity = castToQuantity(value); // Quantity 4216 return value; 4217 case -502547180: // referenceSeq 4218 this.referenceSeq = (SequenceReferenceSeqComponent) value; // SequenceReferenceSeqComponent 4219 return value; 4220 case 236785797: // variant 4221 this.getVariant().add((SequenceVariantComponent) value); // SequenceVariantComponent 4222 return value; 4223 case 125541495: // observedSeq 4224 this.observedSeq = castToString(value); // StringType 4225 return value; 4226 case 651215103: // quality 4227 this.getQuality().add((SequenceQualityComponent) value); // SequenceQualityComponent 4228 return value; 4229 case -1798816354: // readCoverage 4230 this.readCoverage = castToInteger(value); // IntegerType 4231 return value; 4232 case 1950800714: // repository 4233 this.getRepository().add((SequenceRepositoryComponent) value); // SequenceRepositoryComponent 4234 return value; 4235 case -400605635: // pointer 4236 this.getPointer().add(castToReference(value)); // Reference 4237 return value; 4238 default: return super.setProperty(hash, name, value); 4239 } 4240 4241 } 4242 4243 @Override 4244 public Base setProperty(String name, Base value) throws FHIRException { 4245 if (name.equals("identifier")) { 4246 this.getIdentifier().add(castToIdentifier(value)); 4247 } else if (name.equals("type")) { 4248 value = new SequenceTypeEnumFactory().fromType(castToCode(value)); 4249 this.type = (Enumeration) value; // Enumeration<SequenceType> 4250 } else if (name.equals("coordinateSystem")) { 4251 this.coordinateSystem = castToInteger(value); // IntegerType 4252 } else if (name.equals("patient")) { 4253 this.patient = castToReference(value); // Reference 4254 } else if (name.equals("specimen")) { 4255 this.specimen = castToReference(value); // Reference 4256 } else if (name.equals("device")) { 4257 this.device = castToReference(value); // Reference 4258 } else if (name.equals("performer")) { 4259 this.performer = castToReference(value); // Reference 4260 } else if (name.equals("quantity")) { 4261 this.quantity = castToQuantity(value); // Quantity 4262 } else if (name.equals("referenceSeq")) { 4263 this.referenceSeq = (SequenceReferenceSeqComponent) value; // SequenceReferenceSeqComponent 4264 } else if (name.equals("variant")) { 4265 this.getVariant().add((SequenceVariantComponent) value); 4266 } else if (name.equals("observedSeq")) { 4267 this.observedSeq = castToString(value); // StringType 4268 } else if (name.equals("quality")) { 4269 this.getQuality().add((SequenceQualityComponent) value); 4270 } else if (name.equals("readCoverage")) { 4271 this.readCoverage = castToInteger(value); // IntegerType 4272 } else if (name.equals("repository")) { 4273 this.getRepository().add((SequenceRepositoryComponent) value); 4274 } else if (name.equals("pointer")) { 4275 this.getPointer().add(castToReference(value)); 4276 } else 4277 return super.setProperty(name, value); 4278 return value; 4279 } 4280 4281 @Override 4282 public Base makeProperty(int hash, String name) throws FHIRException { 4283 switch (hash) { 4284 case -1618432855: return addIdentifier(); 4285 case 3575610: return getTypeElement(); 4286 case 354212295: return getCoordinateSystemElement(); 4287 case -791418107: return getPatient(); 4288 case -2132868344: return getSpecimen(); 4289 case -1335157162: return getDevice(); 4290 case 481140686: return getPerformer(); 4291 case -1285004149: return getQuantity(); 4292 case -502547180: return getReferenceSeq(); 4293 case 236785797: return addVariant(); 4294 case 125541495: return getObservedSeqElement(); 4295 case 651215103: return addQuality(); 4296 case -1798816354: return getReadCoverageElement(); 4297 case 1950800714: return addRepository(); 4298 case -400605635: return addPointer(); 4299 default: return super.makeProperty(hash, name); 4300 } 4301 4302 } 4303 4304 @Override 4305 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4306 switch (hash) { 4307 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 4308 case 3575610: /*type*/ return new String[] {"code"}; 4309 case 354212295: /*coordinateSystem*/ return new String[] {"integer"}; 4310 case -791418107: /*patient*/ return new String[] {"Reference"}; 4311 case -2132868344: /*specimen*/ return new String[] {"Reference"}; 4312 case -1335157162: /*device*/ return new String[] {"Reference"}; 4313 case 481140686: /*performer*/ return new String[] {"Reference"}; 4314 case -1285004149: /*quantity*/ return new String[] {"Quantity"}; 4315 case -502547180: /*referenceSeq*/ return new String[] {}; 4316 case 236785797: /*variant*/ return new String[] {}; 4317 case 125541495: /*observedSeq*/ return new String[] {"string"}; 4318 case 651215103: /*quality*/ return new String[] {}; 4319 case -1798816354: /*readCoverage*/ return new String[] {"integer"}; 4320 case 1950800714: /*repository*/ return new String[] {}; 4321 case -400605635: /*pointer*/ return new String[] {"Reference"}; 4322 default: return super.getTypesForProperty(hash, name); 4323 } 4324 4325 } 4326 4327 @Override 4328 public Base addChild(String name) throws FHIRException { 4329 if (name.equals("identifier")) { 4330 return addIdentifier(); 4331 } 4332 else if (name.equals("type")) { 4333 throw new FHIRException("Cannot call addChild on a singleton property Sequence.type"); 4334 } 4335 else if (name.equals("coordinateSystem")) { 4336 throw new FHIRException("Cannot call addChild on a singleton property Sequence.coordinateSystem"); 4337 } 4338 else if (name.equals("patient")) { 4339 this.patient = new Reference(); 4340 return this.patient; 4341 } 4342 else if (name.equals("specimen")) { 4343 this.specimen = new Reference(); 4344 return this.specimen; 4345 } 4346 else if (name.equals("device")) { 4347 this.device = new Reference(); 4348 return this.device; 4349 } 4350 else if (name.equals("performer")) { 4351 this.performer = new Reference(); 4352 return this.performer; 4353 } 4354 else if (name.equals("quantity")) { 4355 this.quantity = new Quantity(); 4356 return this.quantity; 4357 } 4358 else if (name.equals("referenceSeq")) { 4359 this.referenceSeq = new SequenceReferenceSeqComponent(); 4360 return this.referenceSeq; 4361 } 4362 else if (name.equals("variant")) { 4363 return addVariant(); 4364 } 4365 else if (name.equals("observedSeq")) { 4366 throw new FHIRException("Cannot call addChild on a singleton property Sequence.observedSeq"); 4367 } 4368 else if (name.equals("quality")) { 4369 return addQuality(); 4370 } 4371 else if (name.equals("readCoverage")) { 4372 throw new FHIRException("Cannot call addChild on a singleton property Sequence.readCoverage"); 4373 } 4374 else if (name.equals("repository")) { 4375 return addRepository(); 4376 } 4377 else if (name.equals("pointer")) { 4378 return addPointer(); 4379 } 4380 else 4381 return super.addChild(name); 4382 } 4383 4384 public String fhirType() { 4385 return "Sequence"; 4386 4387 } 4388 4389 public Sequence copy() { 4390 Sequence dst = new Sequence(); 4391 copyValues(dst); 4392 if (identifier != null) { 4393 dst.identifier = new ArrayList<Identifier>(); 4394 for (Identifier i : identifier) 4395 dst.identifier.add(i.copy()); 4396 }; 4397 dst.type = type == null ? null : type.copy(); 4398 dst.coordinateSystem = coordinateSystem == null ? null : coordinateSystem.copy(); 4399 dst.patient = patient == null ? null : patient.copy(); 4400 dst.specimen = specimen == null ? null : specimen.copy(); 4401 dst.device = device == null ? null : device.copy(); 4402 dst.performer = performer == null ? null : performer.copy(); 4403 dst.quantity = quantity == null ? null : quantity.copy(); 4404 dst.referenceSeq = referenceSeq == null ? null : referenceSeq.copy(); 4405 if (variant != null) { 4406 dst.variant = new ArrayList<SequenceVariantComponent>(); 4407 for (SequenceVariantComponent i : variant) 4408 dst.variant.add(i.copy()); 4409 }; 4410 dst.observedSeq = observedSeq == null ? null : observedSeq.copy(); 4411 if (quality != null) { 4412 dst.quality = new ArrayList<SequenceQualityComponent>(); 4413 for (SequenceQualityComponent i : quality) 4414 dst.quality.add(i.copy()); 4415 }; 4416 dst.readCoverage = readCoverage == null ? null : readCoverage.copy(); 4417 if (repository != null) { 4418 dst.repository = new ArrayList<SequenceRepositoryComponent>(); 4419 for (SequenceRepositoryComponent i : repository) 4420 dst.repository.add(i.copy()); 4421 }; 4422 if (pointer != null) { 4423 dst.pointer = new ArrayList<Reference>(); 4424 for (Reference i : pointer) 4425 dst.pointer.add(i.copy()); 4426 }; 4427 return dst; 4428 } 4429 4430 protected Sequence typedCopy() { 4431 return copy(); 4432 } 4433 4434 @Override 4435 public boolean equalsDeep(Base other_) { 4436 if (!super.equalsDeep(other_)) 4437 return false; 4438 if (!(other_ instanceof Sequence)) 4439 return false; 4440 Sequence o = (Sequence) other_; 4441 return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(coordinateSystem, o.coordinateSystem, true) 4442 && compareDeep(patient, o.patient, true) && compareDeep(specimen, o.specimen, true) && compareDeep(device, o.device, true) 4443 && compareDeep(performer, o.performer, true) && compareDeep(quantity, o.quantity, true) && compareDeep(referenceSeq, o.referenceSeq, true) 4444 && compareDeep(variant, o.variant, true) && compareDeep(observedSeq, o.observedSeq, true) && compareDeep(quality, o.quality, true) 4445 && compareDeep(readCoverage, o.readCoverage, true) && compareDeep(repository, o.repository, true) 4446 && compareDeep(pointer, o.pointer, true); 4447 } 4448 4449 @Override 4450 public boolean equalsShallow(Base other_) { 4451 if (!super.equalsShallow(other_)) 4452 return false; 4453 if (!(other_ instanceof Sequence)) 4454 return false; 4455 Sequence o = (Sequence) other_; 4456 return compareValues(type, o.type, true) && compareValues(coordinateSystem, o.coordinateSystem, true) 4457 && compareValues(observedSeq, o.observedSeq, true) && compareValues(readCoverage, o.readCoverage, true) 4458 ; 4459 } 4460 4461 public boolean isEmpty() { 4462 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, type, coordinateSystem 4463 , patient, specimen, device, performer, quantity, referenceSeq, variant, observedSeq 4464 , quality, readCoverage, repository, pointer); 4465 } 4466 4467 @Override 4468 public ResourceType getResourceType() { 4469 return ResourceType.Sequence; 4470 } 4471 4472 /** 4473 * Search parameter: <b>identifier</b> 4474 * <p> 4475 * Description: <b>The unique identity for a particular sequence</b><br> 4476 * Type: <b>token</b><br> 4477 * Path: <b>Sequence.identifier</b><br> 4478 * </p> 4479 */ 4480 @SearchParamDefinition(name="identifier", path="Sequence.identifier", description="The unique identity for a particular sequence", type="token" ) 4481 public static final String SP_IDENTIFIER = "identifier"; 4482 /** 4483 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 4484 * <p> 4485 * Description: <b>The unique identity for a particular sequence</b><br> 4486 * Type: <b>token</b><br> 4487 * Path: <b>Sequence.identifier</b><br> 4488 * </p> 4489 */ 4490 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 4491 4492 /** 4493 * Search parameter: <b>coordinate</b> 4494 * <p> 4495 * Description: <b>Search parameter for region of the reference DNA sequence string. This will refer to part of a locus or part of a gene where search region will be represented in 1-based system. Since the coordinateSystem can either be 0-based or 1-based, this search query will include the result of both coordinateSystem that contains the equivalent segment of the gene or whole genome sequence. For example, a search for sequence can be represented as `coordinate=1$lt345$gt123`, this means it will search for the Sequence resource on chromosome 1 and with position >123 and <345, where in 1-based system resource, all strings within region 1:124-344 will be revealed, while in 0-based system resource, all strings within region 1:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above.</b><br> 4496 * Type: <b>composite</b><br> 4497 * Path: <b></b><br> 4498 * </p> 4499 */ 4500 @SearchParamDefinition(name="coordinate", path="Sequence.variant", description="Search parameter for region of the reference DNA sequence string. This will refer to part of a locus or part of a gene where search region will be represented in 1-based system. Since the coordinateSystem can either be 0-based or 1-based, this search query will include the result of both coordinateSystem that contains the equivalent segment of the gene or whole genome sequence. For example, a search for sequence can be represented as `coordinate=1$lt345$gt123`, this means it will search for the Sequence resource on chromosome 1 and with position >123 and <345, where in 1-based system resource, all strings within region 1:124-344 will be revealed, while in 0-based system resource, all strings within region 1:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above.", type="composite", compositeOf={"chromosome", "start"} ) 4501 public static final String SP_COORDINATE = "coordinate"; 4502 /** 4503 * <b>Fluent Client</b> search parameter constant for <b>coordinate</b> 4504 * <p> 4505 * Description: <b>Search parameter for region of the reference DNA sequence string. This will refer to part of a locus or part of a gene where search region will be represented in 1-based system. Since the coordinateSystem can either be 0-based or 1-based, this search query will include the result of both coordinateSystem that contains the equivalent segment of the gene or whole genome sequence. For example, a search for sequence can be represented as `coordinate=1$lt345$gt123`, this means it will search for the Sequence resource on chromosome 1 and with position >123 and <345, where in 1-based system resource, all strings within region 1:124-344 will be revealed, while in 0-based system resource, all strings within region 1:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above.</b><br> 4506 * Type: <b>composite</b><br> 4507 * Path: <b></b><br> 4508 * </p> 4509 */ 4510 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam> COORDINATE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam>(SP_COORDINATE); 4511 4512 /** 4513 * Search parameter: <b>patient</b> 4514 * <p> 4515 * Description: <b>The subject that the observation is about</b><br> 4516 * Type: <b>reference</b><br> 4517 * Path: <b>Sequence.patient</b><br> 4518 * </p> 4519 */ 4520 @SearchParamDefinition(name="patient", path="Sequence.patient", description="The subject that the observation is about", type="reference", target={Patient.class } ) 4521 public static final String SP_PATIENT = "patient"; 4522 /** 4523 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 4524 * <p> 4525 * Description: <b>The subject that the observation is about</b><br> 4526 * Type: <b>reference</b><br> 4527 * Path: <b>Sequence.patient</b><br> 4528 * </p> 4529 */ 4530 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 4531 4532/** 4533 * Constant for fluent queries to be used to add include statements. Specifies 4534 * the path value of "<b>Sequence:patient</b>". 4535 */ 4536 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Sequence:patient").toLocked(); 4537 4538 /** 4539 * Search parameter: <b>chromosome</b> 4540 * <p> 4541 * Description: <b>Chromosome number of the reference sequence</b><br> 4542 * Type: <b>token</b><br> 4543 * Path: <b>Sequence.referenceSeq.chromosome</b><br> 4544 * </p> 4545 */ 4546 @SearchParamDefinition(name="chromosome", path="Sequence.referenceSeq.chromosome", description="Chromosome number of the reference sequence", type="token" ) 4547 public static final String SP_CHROMOSOME = "chromosome"; 4548 /** 4549 * <b>Fluent Client</b> search parameter constant for <b>chromosome</b> 4550 * <p> 4551 * Description: <b>Chromosome number of the reference sequence</b><br> 4552 * Type: <b>token</b><br> 4553 * Path: <b>Sequence.referenceSeq.chromosome</b><br> 4554 * </p> 4555 */ 4556 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CHROMOSOME = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CHROMOSOME); 4557 4558 /** 4559 * Search parameter: <b>start</b> 4560 * <p> 4561 * Description: <b>Start position (0-based inclusive, 1-based inclusive, that means the nucleic acid or amino acid at this position will be included) of the reference sequence.</b><br> 4562 * Type: <b>number</b><br> 4563 * Path: <b>Sequence.referenceSeq.windowStart</b><br> 4564 * </p> 4565 */ 4566 @SearchParamDefinition(name="start", path="Sequence.referenceSeq.windowStart", description="Start position (0-based inclusive, 1-based inclusive, that means the nucleic acid or amino acid at this position will be included) of the reference sequence.", type="number" ) 4567 public static final String SP_START = "start"; 4568 /** 4569 * <b>Fluent Client</b> search parameter constant for <b>start</b> 4570 * <p> 4571 * Description: <b>Start position (0-based inclusive, 1-based inclusive, that means the nucleic acid or amino acid at this position will be included) of the reference sequence.</b><br> 4572 * Type: <b>number</b><br> 4573 * Path: <b>Sequence.referenceSeq.windowStart</b><br> 4574 * </p> 4575 */ 4576 public static final ca.uhn.fhir.rest.gclient.NumberClientParam START = new ca.uhn.fhir.rest.gclient.NumberClientParam(SP_START); 4577 4578 /** 4579 * Search parameter: <b>end</b> 4580 * <p> 4581 * Description: <b>End position (0-based exclusive, which menas the acid at this position will not be included, 1-based inclusive, which means the acid at this position will be included) of the reference sequence.</b><br> 4582 * Type: <b>number</b><br> 4583 * Path: <b>Sequence.referenceSeq.windowEnd</b><br> 4584 * </p> 4585 */ 4586 @SearchParamDefinition(name="end", path="Sequence.referenceSeq.windowEnd", description="End position (0-based exclusive, which menas the acid at this position will not be included, 1-based inclusive, which means the acid at this position will be included) of the reference sequence.", type="number" ) 4587 public static final String SP_END = "end"; 4588 /** 4589 * <b>Fluent Client</b> search parameter constant for <b>end</b> 4590 * <p> 4591 * Description: <b>End position (0-based exclusive, which menas the acid at this position will not be included, 1-based inclusive, which means the acid at this position will be included) of the reference sequence.</b><br> 4592 * Type: <b>number</b><br> 4593 * Path: <b>Sequence.referenceSeq.windowEnd</b><br> 4594 * </p> 4595 */ 4596 public static final ca.uhn.fhir.rest.gclient.NumberClientParam END = new ca.uhn.fhir.rest.gclient.NumberClientParam(SP_END); 4597 4598 /** 4599 * Search parameter: <b>type</b> 4600 * <p> 4601 * Description: <b>Amino Acid Sequence/ DNA Sequence / RNA Sequence</b><br> 4602 * Type: <b>token</b><br> 4603 * Path: <b>Sequence.type</b><br> 4604 * </p> 4605 */ 4606 @SearchParamDefinition(name="type", path="Sequence.type", description="Amino Acid Sequence/ DNA Sequence / RNA Sequence", type="token" ) 4607 public static final String SP_TYPE = "type"; 4608 /** 4609 * <b>Fluent Client</b> search parameter constant for <b>type</b> 4610 * <p> 4611 * Description: <b>Amino Acid Sequence/ DNA Sequence / RNA Sequence</b><br> 4612 * Type: <b>token</b><br> 4613 * Path: <b>Sequence.type</b><br> 4614 * </p> 4615 */ 4616 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 4617 4618 4619}