001package org.hl7.fhir.r4.model; 002 003 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 035// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 036 037import java.util.*; 038 039import java.math.*; 040import org.hl7.fhir.utilities.Utilities; 041import ca.uhn.fhir.model.api.annotation.ResourceDef; 042import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 043import ca.uhn.fhir.model.api.annotation.Child; 044import ca.uhn.fhir.model.api.annotation.ChildOrder; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.Block; 047import org.hl7.fhir.instance.model.api.*; 048import org.hl7.fhir.exceptions.FHIRException; 049/** 050 * Raw data describing a biological sequence. 051 */ 052@ResourceDef(name="MolecularSequence", profile="http://hl7.org/fhir/StructureDefinition/MolecularSequence") 053public class MolecularSequence extends DomainResource { 054 055 public enum SequenceType { 056 /** 057 * Amino acid sequence. 058 */ 059 AA, 060 /** 061 * DNA Sequence. 062 */ 063 DNA, 064 /** 065 * RNA Sequence. 066 */ 067 RNA, 068 /** 069 * added to help the parsers with the generic types 070 */ 071 NULL; 072 public static SequenceType fromCode(String codeString) throws FHIRException { 073 if (codeString == null || "".equals(codeString)) 074 return null; 075 if ("aa".equals(codeString)) 076 return AA; 077 if ("dna".equals(codeString)) 078 return DNA; 079 if ("rna".equals(codeString)) 080 return RNA; 081 if (Configuration.isAcceptInvalidEnums()) 082 return null; 083 else 084 throw new FHIRException("Unknown SequenceType code '"+codeString+"'"); 085 } 086 public String toCode() { 087 switch (this) { 088 case AA: return "aa"; 089 case DNA: return "dna"; 090 case RNA: return "rna"; 091 default: return "?"; 092 } 093 } 094 public String getSystem() { 095 switch (this) { 096 case AA: return "http://hl7.org/fhir/sequence-type"; 097 case DNA: return "http://hl7.org/fhir/sequence-type"; 098 case RNA: return "http://hl7.org/fhir/sequence-type"; 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 default: return "?"; 108 } 109 } 110 public String getDisplay() { 111 switch (this) { 112 case AA: return "AA Sequence"; 113 case DNA: return "DNA Sequence"; 114 case RNA: return "RNA Sequence"; 115 default: return "?"; 116 } 117 } 118 } 119 120 public static class SequenceTypeEnumFactory implements EnumFactory<SequenceType> { 121 public SequenceType fromCode(String codeString) throws IllegalArgumentException { 122 if (codeString == null || "".equals(codeString)) 123 if (codeString == null || "".equals(codeString)) 124 return null; 125 if ("aa".equals(codeString)) 126 return SequenceType.AA; 127 if ("dna".equals(codeString)) 128 return SequenceType.DNA; 129 if ("rna".equals(codeString)) 130 return SequenceType.RNA; 131 throw new IllegalArgumentException("Unknown SequenceType code '"+codeString+"'"); 132 } 133 public Enumeration<SequenceType> fromType(Base code) throws FHIRException { 134 if (code == null) 135 return null; 136 if (code.isEmpty()) 137 return new Enumeration<SequenceType>(this); 138 String codeString = ((PrimitiveType) code).asStringValue(); 139 if (codeString == null || "".equals(codeString)) 140 return null; 141 if ("aa".equals(codeString)) 142 return new Enumeration<SequenceType>(this, SequenceType.AA); 143 if ("dna".equals(codeString)) 144 return new Enumeration<SequenceType>(this, SequenceType.DNA); 145 if ("rna".equals(codeString)) 146 return new Enumeration<SequenceType>(this, SequenceType.RNA); 147 throw new FHIRException("Unknown SequenceType code '"+codeString+"'"); 148 } 149 public String toCode(SequenceType code) { 150 if (code == SequenceType.AA) 151 return "aa"; 152 if (code == SequenceType.DNA) 153 return "dna"; 154 if (code == SequenceType.RNA) 155 return "rna"; 156 return "?"; 157 } 158 public String toSystem(SequenceType code) { 159 return code.getSystem(); 160 } 161 } 162 163 public enum OrientationType { 164 /** 165 * Sense orientation of reference sequence. 166 */ 167 SENSE, 168 /** 169 * Antisense orientation of reference sequence. 170 */ 171 ANTISENSE, 172 /** 173 * added to help the parsers with the generic types 174 */ 175 NULL; 176 public static OrientationType fromCode(String codeString) throws FHIRException { 177 if (codeString == null || "".equals(codeString)) 178 return null; 179 if ("sense".equals(codeString)) 180 return SENSE; 181 if ("antisense".equals(codeString)) 182 return ANTISENSE; 183 if (Configuration.isAcceptInvalidEnums()) 184 return null; 185 else 186 throw new FHIRException("Unknown OrientationType code '"+codeString+"'"); 187 } 188 public String toCode() { 189 switch (this) { 190 case SENSE: return "sense"; 191 case ANTISENSE: return "antisense"; 192 default: return "?"; 193 } 194 } 195 public String getSystem() { 196 switch (this) { 197 case SENSE: return "http://hl7.org/fhir/orientation-type"; 198 case ANTISENSE: return "http://hl7.org/fhir/orientation-type"; 199 default: return "?"; 200 } 201 } 202 public String getDefinition() { 203 switch (this) { 204 case SENSE: return "Sense orientation of reference sequence."; 205 case ANTISENSE: return "Antisense orientation of reference sequence."; 206 default: return "?"; 207 } 208 } 209 public String getDisplay() { 210 switch (this) { 211 case SENSE: return "Sense orientation of referenceSeq"; 212 case ANTISENSE: return "Antisense orientation of referenceSeq"; 213 default: return "?"; 214 } 215 } 216 } 217 218 public static class OrientationTypeEnumFactory implements EnumFactory<OrientationType> { 219 public OrientationType fromCode(String codeString) throws IllegalArgumentException { 220 if (codeString == null || "".equals(codeString)) 221 if (codeString == null || "".equals(codeString)) 222 return null; 223 if ("sense".equals(codeString)) 224 return OrientationType.SENSE; 225 if ("antisense".equals(codeString)) 226 return OrientationType.ANTISENSE; 227 throw new IllegalArgumentException("Unknown OrientationType code '"+codeString+"'"); 228 } 229 public Enumeration<OrientationType> fromType(Base code) throws FHIRException { 230 if (code == null) 231 return null; 232 if (code.isEmpty()) 233 return new Enumeration<OrientationType>(this); 234 String codeString = ((PrimitiveType) code).asStringValue(); 235 if (codeString == null || "".equals(codeString)) 236 return null; 237 if ("sense".equals(codeString)) 238 return new Enumeration<OrientationType>(this, OrientationType.SENSE); 239 if ("antisense".equals(codeString)) 240 return new Enumeration<OrientationType>(this, OrientationType.ANTISENSE); 241 throw new FHIRException("Unknown OrientationType code '"+codeString+"'"); 242 } 243 public String toCode(OrientationType code) { 244 if (code == OrientationType.SENSE) 245 return "sense"; 246 if (code == OrientationType.ANTISENSE) 247 return "antisense"; 248 return "?"; 249 } 250 public String toSystem(OrientationType code) { 251 return code.getSystem(); 252 } 253 } 254 255 public enum StrandType { 256 /** 257 * Watson strand of reference sequence. 258 */ 259 WATSON, 260 /** 261 * Crick strand of reference sequence. 262 */ 263 CRICK, 264 /** 265 * added to help the parsers with the generic types 266 */ 267 NULL; 268 public static StrandType fromCode(String codeString) throws FHIRException { 269 if (codeString == null || "".equals(codeString)) 270 return null; 271 if ("watson".equals(codeString)) 272 return WATSON; 273 if ("crick".equals(codeString)) 274 return CRICK; 275 if (Configuration.isAcceptInvalidEnums()) 276 return null; 277 else 278 throw new FHIRException("Unknown StrandType code '"+codeString+"'"); 279 } 280 public String toCode() { 281 switch (this) { 282 case WATSON: return "watson"; 283 case CRICK: return "crick"; 284 default: return "?"; 285 } 286 } 287 public String getSystem() { 288 switch (this) { 289 case WATSON: return "http://hl7.org/fhir/strand-type"; 290 case CRICK: return "http://hl7.org/fhir/strand-type"; 291 default: return "?"; 292 } 293 } 294 public String getDefinition() { 295 switch (this) { 296 case WATSON: return "Watson strand of reference sequence."; 297 case CRICK: return "Crick strand of reference sequence."; 298 default: return "?"; 299 } 300 } 301 public String getDisplay() { 302 switch (this) { 303 case WATSON: return "Watson strand of referenceSeq"; 304 case CRICK: return "Crick strand of referenceSeq"; 305 default: return "?"; 306 } 307 } 308 } 309 310 public static class StrandTypeEnumFactory implements EnumFactory<StrandType> { 311 public StrandType fromCode(String codeString) throws IllegalArgumentException { 312 if (codeString == null || "".equals(codeString)) 313 if (codeString == null || "".equals(codeString)) 314 return null; 315 if ("watson".equals(codeString)) 316 return StrandType.WATSON; 317 if ("crick".equals(codeString)) 318 return StrandType.CRICK; 319 throw new IllegalArgumentException("Unknown StrandType code '"+codeString+"'"); 320 } 321 public Enumeration<StrandType> fromType(Base code) throws FHIRException { 322 if (code == null) 323 return null; 324 if (code.isEmpty()) 325 return new Enumeration<StrandType>(this); 326 String codeString = ((PrimitiveType) code).asStringValue(); 327 if (codeString == null || "".equals(codeString)) 328 return null; 329 if ("watson".equals(codeString)) 330 return new Enumeration<StrandType>(this, StrandType.WATSON); 331 if ("crick".equals(codeString)) 332 return new Enumeration<StrandType>(this, StrandType.CRICK); 333 throw new FHIRException("Unknown StrandType code '"+codeString+"'"); 334 } 335 public String toCode(StrandType code) { 336 if (code == StrandType.WATSON) 337 return "watson"; 338 if (code == StrandType.CRICK) 339 return "crick"; 340 return "?"; 341 } 342 public String toSystem(StrandType code) { 343 return code.getSystem(); 344 } 345 } 346 347 public enum QualityType { 348 /** 349 * INDEL Comparison. 350 */ 351 INDEL, 352 /** 353 * SNP Comparison. 354 */ 355 SNP, 356 /** 357 * UNKNOWN Comparison. 358 */ 359 UNKNOWN, 360 /** 361 * added to help the parsers with the generic types 362 */ 363 NULL; 364 public static QualityType fromCode(String codeString) throws FHIRException { 365 if (codeString == null || "".equals(codeString)) 366 return null; 367 if ("indel".equals(codeString)) 368 return INDEL; 369 if ("snp".equals(codeString)) 370 return SNP; 371 if ("unknown".equals(codeString)) 372 return UNKNOWN; 373 if (Configuration.isAcceptInvalidEnums()) 374 return null; 375 else 376 throw new FHIRException("Unknown QualityType code '"+codeString+"'"); 377 } 378 public String toCode() { 379 switch (this) { 380 case INDEL: return "indel"; 381 case SNP: return "snp"; 382 case UNKNOWN: return "unknown"; 383 default: return "?"; 384 } 385 } 386 public String getSystem() { 387 switch (this) { 388 case INDEL: return "http://hl7.org/fhir/quality-type"; 389 case SNP: return "http://hl7.org/fhir/quality-type"; 390 case UNKNOWN: return "http://hl7.org/fhir/quality-type"; 391 default: return "?"; 392 } 393 } 394 public String getDefinition() { 395 switch (this) { 396 case INDEL: return "INDEL Comparison."; 397 case SNP: return "SNP Comparison."; 398 case UNKNOWN: return "UNKNOWN Comparison."; 399 default: return "?"; 400 } 401 } 402 public String getDisplay() { 403 switch (this) { 404 case INDEL: return "INDEL Comparison"; 405 case SNP: return "SNP Comparison"; 406 case UNKNOWN: return "UNKNOWN Comparison"; 407 default: return "?"; 408 } 409 } 410 } 411 412 public static class QualityTypeEnumFactory implements EnumFactory<QualityType> { 413 public QualityType fromCode(String codeString) throws IllegalArgumentException { 414 if (codeString == null || "".equals(codeString)) 415 if (codeString == null || "".equals(codeString)) 416 return null; 417 if ("indel".equals(codeString)) 418 return QualityType.INDEL; 419 if ("snp".equals(codeString)) 420 return QualityType.SNP; 421 if ("unknown".equals(codeString)) 422 return QualityType.UNKNOWN; 423 throw new IllegalArgumentException("Unknown QualityType code '"+codeString+"'"); 424 } 425 public Enumeration<QualityType> fromType(Base code) throws FHIRException { 426 if (code == null) 427 return null; 428 if (code.isEmpty()) 429 return new Enumeration<QualityType>(this); 430 String codeString = ((PrimitiveType) code).asStringValue(); 431 if (codeString == null || "".equals(codeString)) 432 return null; 433 if ("indel".equals(codeString)) 434 return new Enumeration<QualityType>(this, QualityType.INDEL); 435 if ("snp".equals(codeString)) 436 return new Enumeration<QualityType>(this, QualityType.SNP); 437 if ("unknown".equals(codeString)) 438 return new Enumeration<QualityType>(this, QualityType.UNKNOWN); 439 throw new FHIRException("Unknown QualityType code '"+codeString+"'"); 440 } 441 public String toCode(QualityType code) { 442 if (code == QualityType.INDEL) 443 return "indel"; 444 if (code == QualityType.SNP) 445 return "snp"; 446 if (code == QualityType.UNKNOWN) 447 return "unknown"; 448 return "?"; 449 } 450 public String toSystem(QualityType code) { 451 return code.getSystem(); 452 } 453 } 454 455 public enum RepositoryType { 456 /** 457 * When URL is clicked, the resource can be seen directly (by webpage or by download link format). 458 */ 459 DIRECTLINK, 460 /** 461 * 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). 462 */ 463 OPENAPI, 464 /** 465 * When logged into the website, the resource can be seen. 466 */ 467 LOGIN, 468 /** 469 * When logged in and follow the API in the website related with URL, the resource can be seen. 470 */ 471 OAUTH, 472 /** 473 * Some other complicated or particular way to get resource from URL. 474 */ 475 OTHER, 476 /** 477 * added to help the parsers with the generic types 478 */ 479 NULL; 480 public static RepositoryType fromCode(String codeString) throws FHIRException { 481 if (codeString == null || "".equals(codeString)) 482 return null; 483 if ("directlink".equals(codeString)) 484 return DIRECTLINK; 485 if ("openapi".equals(codeString)) 486 return OPENAPI; 487 if ("login".equals(codeString)) 488 return LOGIN; 489 if ("oauth".equals(codeString)) 490 return OAUTH; 491 if ("other".equals(codeString)) 492 return OTHER; 493 if (Configuration.isAcceptInvalidEnums()) 494 return null; 495 else 496 throw new FHIRException("Unknown RepositoryType code '"+codeString+"'"); 497 } 498 public String toCode() { 499 switch (this) { 500 case DIRECTLINK: return "directlink"; 501 case OPENAPI: return "openapi"; 502 case LOGIN: return "login"; 503 case OAUTH: return "oauth"; 504 case OTHER: return "other"; 505 default: return "?"; 506 } 507 } 508 public String getSystem() { 509 switch (this) { 510 case DIRECTLINK: return "http://hl7.org/fhir/repository-type"; 511 case OPENAPI: return "http://hl7.org/fhir/repository-type"; 512 case LOGIN: return "http://hl7.org/fhir/repository-type"; 513 case OAUTH: return "http://hl7.org/fhir/repository-type"; 514 case OTHER: return "http://hl7.org/fhir/repository-type"; 515 default: return "?"; 516 } 517 } 518 public String getDefinition() { 519 switch (this) { 520 case DIRECTLINK: return "When URL is clicked, the resource can be seen directly (by webpage or by download link format)."; 521 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)."; 522 case LOGIN: return "When logged into the website, the resource can be seen."; 523 case OAUTH: return "When logged in and follow the API in the website related with URL, the resource can be seen."; 524 case OTHER: return "Some other complicated or particular way to get resource from URL."; 525 default: return "?"; 526 } 527 } 528 public String getDisplay() { 529 switch (this) { 530 case DIRECTLINK: return "Click and see"; 531 case OPENAPI: return "The URL is the RESTful or other kind of API that can access to the result."; 532 case LOGIN: return "Result cannot be access unless an account is logged in"; 533 case OAUTH: return "Result need to be fetched with API and need LOGIN( or cookies are required when visiting the link of resource)"; 534 case OTHER: return "Some other complicated or particular way to get resource from URL."; 535 default: return "?"; 536 } 537 } 538 } 539 540 public static class RepositoryTypeEnumFactory implements EnumFactory<RepositoryType> { 541 public RepositoryType fromCode(String codeString) throws IllegalArgumentException { 542 if (codeString == null || "".equals(codeString)) 543 if (codeString == null || "".equals(codeString)) 544 return null; 545 if ("directlink".equals(codeString)) 546 return RepositoryType.DIRECTLINK; 547 if ("openapi".equals(codeString)) 548 return RepositoryType.OPENAPI; 549 if ("login".equals(codeString)) 550 return RepositoryType.LOGIN; 551 if ("oauth".equals(codeString)) 552 return RepositoryType.OAUTH; 553 if ("other".equals(codeString)) 554 return RepositoryType.OTHER; 555 throw new IllegalArgumentException("Unknown RepositoryType code '"+codeString+"'"); 556 } 557 public Enumeration<RepositoryType> fromType(Base code) throws FHIRException { 558 if (code == null) 559 return null; 560 if (code.isEmpty()) 561 return new Enumeration<RepositoryType>(this); 562 String codeString = ((PrimitiveType) code).asStringValue(); 563 if (codeString == null || "".equals(codeString)) 564 return null; 565 if ("directlink".equals(codeString)) 566 return new Enumeration<RepositoryType>(this, RepositoryType.DIRECTLINK); 567 if ("openapi".equals(codeString)) 568 return new Enumeration<RepositoryType>(this, RepositoryType.OPENAPI); 569 if ("login".equals(codeString)) 570 return new Enumeration<RepositoryType>(this, RepositoryType.LOGIN); 571 if ("oauth".equals(codeString)) 572 return new Enumeration<RepositoryType>(this, RepositoryType.OAUTH); 573 if ("other".equals(codeString)) 574 return new Enumeration<RepositoryType>(this, RepositoryType.OTHER); 575 throw new FHIRException("Unknown RepositoryType code '"+codeString+"'"); 576 } 577 public String toCode(RepositoryType code) { 578 if (code == RepositoryType.DIRECTLINK) 579 return "directlink"; 580 if (code == RepositoryType.OPENAPI) 581 return "openapi"; 582 if (code == RepositoryType.LOGIN) 583 return "login"; 584 if (code == RepositoryType.OAUTH) 585 return "oauth"; 586 if (code == RepositoryType.OTHER) 587 return "other"; 588 return "?"; 589 } 590 public String toSystem(RepositoryType code) { 591 return code.getSystem(); 592 } 593 } 594 595 @Block() 596 public static class MolecularSequenceReferenceSeqComponent extends BackboneElement implements IBaseBackboneElement { 597 /** 598 * 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)). 599 */ 600 @Child(name = "chromosome", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 601 @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))." ) 602 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/chromosome-human") 603 protected CodeableConcept chromosome; 604 605 /** 606 * 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. 607 */ 608 @Child(name = "genomeBuild", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true) 609 @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." ) 610 protected StringType genomeBuild; 611 612 /** 613 * A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the "sense" strand, and the opposite complementary strand is the "antisense" strand. 614 */ 615 @Child(name = "orientation", type = {CodeType.class}, order=3, min=0, max=1, modifier=false, summary=true) 616 @Description(shortDefinition="sense | antisense", formalDefinition="A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the \"sense\" strand, and the opposite complementary strand is the \"antisense\" strand." ) 617 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/orientation-type") 618 protected Enumeration<OrientationType> orientation; 619 620 /** 621 * Reference identifier of reference sequence submitted to NCBI. It must match the type in the MolecularSequence.type field. For example, the prefix, “NG_” identifies reference sequence for genes, “NM_” for messenger RNA transcripts, and “NP_” for amino acid sequences. 622 */ 623 @Child(name = "referenceSeqId", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=true) 624 @Description(shortDefinition="Reference identifier", formalDefinition="Reference identifier of reference sequence submitted to NCBI. It must match the type in the MolecularSequence.type field. For example, the prefix, “NG_” identifies reference sequence for genes, “NM_” for messenger RNA transcripts, and “NP_” for amino acid sequences." ) 625 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/sequence-referenceSeq") 626 protected CodeableConcept referenceSeqId; 627 628 /** 629 * A pointer to another MolecularSequence entity as reference sequence. 630 */ 631 @Child(name = "referenceSeqPointer", type = {MolecularSequence.class}, order=5, min=0, max=1, modifier=false, summary=true) 632 @Description(shortDefinition="A pointer to another MolecularSequence entity as reference sequence", formalDefinition="A pointer to another MolecularSequence entity as reference sequence." ) 633 protected Reference referenceSeqPointer; 634 635 /** 636 * The actual object that is the target of the reference (A pointer to another MolecularSequence entity as reference sequence.) 637 */ 638 protected MolecularSequence referenceSeqPointerTarget; 639 640 /** 641 * A string like "ACGT". 642 */ 643 @Child(name = "referenceSeqString", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=true) 644 @Description(shortDefinition="A string to represent reference sequence", formalDefinition="A string like \"ACGT\"." ) 645 protected StringType referenceSeqString; 646 647 /** 648 * An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm. 649 */ 650 @Child(name = "strand", type = {CodeType.class}, order=7, min=0, max=1, modifier=false, summary=true) 651 @Description(shortDefinition="watson | crick", formalDefinition="An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm." ) 652 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/strand-type") 653 protected Enumeration<StrandType> strand; 654 655 /** 656 * 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. 657 */ 658 @Child(name = "windowStart", type = {IntegerType.class}, order=8, min=0, max=1, modifier=false, summary=true) 659 @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." ) 660 protected IntegerType windowStart; 661 662 /** 663 * End position of the window on the reference sequence. If the coordinate system is 0-based then end 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. 664 */ 665 @Child(name = "windowEnd", type = {IntegerType.class}, order=9, min=0, max=1, modifier=false, summary=true) 666 @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 exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position." ) 667 protected IntegerType windowEnd; 668 669 private static final long serialVersionUID = 307364267L; 670 671 /** 672 * Constructor 673 */ 674 public MolecularSequenceReferenceSeqComponent() { 675 super(); 676 } 677 678 /** 679 * @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)).) 680 */ 681 public CodeableConcept getChromosome() { 682 if (this.chromosome == null) 683 if (Configuration.errorOnAutoCreate()) 684 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.chromosome"); 685 else if (Configuration.doAutoCreate()) 686 this.chromosome = new CodeableConcept(); // cc 687 return this.chromosome; 688 } 689 690 public boolean hasChromosome() { 691 return this.chromosome != null && !this.chromosome.isEmpty(); 692 } 693 694 /** 695 * @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)).) 696 */ 697 public MolecularSequenceReferenceSeqComponent setChromosome(CodeableConcept value) { 698 this.chromosome = value; 699 return this; 700 } 701 702 /** 703 * @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 704 */ 705 public StringType getGenomeBuildElement() { 706 if (this.genomeBuild == null) 707 if (Configuration.errorOnAutoCreate()) 708 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.genomeBuild"); 709 else if (Configuration.doAutoCreate()) 710 this.genomeBuild = new StringType(); // bb 711 return this.genomeBuild; 712 } 713 714 public boolean hasGenomeBuildElement() { 715 return this.genomeBuild != null && !this.genomeBuild.isEmpty(); 716 } 717 718 public boolean hasGenomeBuild() { 719 return this.genomeBuild != null && !this.genomeBuild.isEmpty(); 720 } 721 722 /** 723 * @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 724 */ 725 public MolecularSequenceReferenceSeqComponent setGenomeBuildElement(StringType value) { 726 this.genomeBuild = value; 727 return this; 728 } 729 730 /** 731 * @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. 732 */ 733 public String getGenomeBuild() { 734 return this.genomeBuild == null ? null : this.genomeBuild.getValue(); 735 } 736 737 /** 738 * @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. 739 */ 740 public MolecularSequenceReferenceSeqComponent setGenomeBuild(String value) { 741 if (Utilities.noString(value)) 742 this.genomeBuild = null; 743 else { 744 if (this.genomeBuild == null) 745 this.genomeBuild = new StringType(); 746 this.genomeBuild.setValue(value); 747 } 748 return this; 749 } 750 751 /** 752 * @return {@link #orientation} (A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the "sense" strand, and the opposite complementary strand is the "antisense" strand.). This is the underlying object with id, value and extensions. The accessor "getOrientation" gives direct access to the value 753 */ 754 public Enumeration<OrientationType> getOrientationElement() { 755 if (this.orientation == null) 756 if (Configuration.errorOnAutoCreate()) 757 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.orientation"); 758 else if (Configuration.doAutoCreate()) 759 this.orientation = new Enumeration<OrientationType>(new OrientationTypeEnumFactory()); // bb 760 return this.orientation; 761 } 762 763 public boolean hasOrientationElement() { 764 return this.orientation != null && !this.orientation.isEmpty(); 765 } 766 767 public boolean hasOrientation() { 768 return this.orientation != null && !this.orientation.isEmpty(); 769 } 770 771 /** 772 * @param value {@link #orientation} (A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the "sense" strand, and the opposite complementary strand is the "antisense" strand.). This is the underlying object with id, value and extensions. The accessor "getOrientation" gives direct access to the value 773 */ 774 public MolecularSequenceReferenceSeqComponent setOrientationElement(Enumeration<OrientationType> value) { 775 this.orientation = value; 776 return this; 777 } 778 779 /** 780 * @return A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the "sense" strand, and the opposite complementary strand is the "antisense" strand. 781 */ 782 public OrientationType getOrientation() { 783 return this.orientation == null ? null : this.orientation.getValue(); 784 } 785 786 /** 787 * @param value A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the "sense" strand, and the opposite complementary strand is the "antisense" strand. 788 */ 789 public MolecularSequenceReferenceSeqComponent setOrientation(OrientationType value) { 790 if (value == null) 791 this.orientation = null; 792 else { 793 if (this.orientation == null) 794 this.orientation = new Enumeration<OrientationType>(new OrientationTypeEnumFactory()); 795 this.orientation.setValue(value); 796 } 797 return this; 798 } 799 800 /** 801 * @return {@link #referenceSeqId} (Reference identifier of reference sequence submitted to NCBI. It must match the type in the MolecularSequence.type field. For example, the prefix, “NG_” identifies reference sequence for genes, “NM_” for messenger RNA transcripts, and “NP_” for amino acid sequences.) 802 */ 803 public CodeableConcept getReferenceSeqId() { 804 if (this.referenceSeqId == null) 805 if (Configuration.errorOnAutoCreate()) 806 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.referenceSeqId"); 807 else if (Configuration.doAutoCreate()) 808 this.referenceSeqId = new CodeableConcept(); // cc 809 return this.referenceSeqId; 810 } 811 812 public boolean hasReferenceSeqId() { 813 return this.referenceSeqId != null && !this.referenceSeqId.isEmpty(); 814 } 815 816 /** 817 * @param value {@link #referenceSeqId} (Reference identifier of reference sequence submitted to NCBI. It must match the type in the MolecularSequence.type field. For example, the prefix, “NG_” identifies reference sequence for genes, “NM_” for messenger RNA transcripts, and “NP_” for amino acid sequences.) 818 */ 819 public MolecularSequenceReferenceSeqComponent setReferenceSeqId(CodeableConcept value) { 820 this.referenceSeqId = value; 821 return this; 822 } 823 824 /** 825 * @return {@link #referenceSeqPointer} (A pointer to another MolecularSequence entity as reference sequence.) 826 */ 827 public Reference getReferenceSeqPointer() { 828 if (this.referenceSeqPointer == null) 829 if (Configuration.errorOnAutoCreate()) 830 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.referenceSeqPointer"); 831 else if (Configuration.doAutoCreate()) 832 this.referenceSeqPointer = new Reference(); // cc 833 return this.referenceSeqPointer; 834 } 835 836 public boolean hasReferenceSeqPointer() { 837 return this.referenceSeqPointer != null && !this.referenceSeqPointer.isEmpty(); 838 } 839 840 /** 841 * @param value {@link #referenceSeqPointer} (A pointer to another MolecularSequence entity as reference sequence.) 842 */ 843 public MolecularSequenceReferenceSeqComponent setReferenceSeqPointer(Reference value) { 844 this.referenceSeqPointer = value; 845 return this; 846 } 847 848 /** 849 * @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 MolecularSequence entity as reference sequence.) 850 */ 851 public MolecularSequence getReferenceSeqPointerTarget() { 852 if (this.referenceSeqPointerTarget == null) 853 if (Configuration.errorOnAutoCreate()) 854 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.referenceSeqPointer"); 855 else if (Configuration.doAutoCreate()) 856 this.referenceSeqPointerTarget = new MolecularSequence(); // aa 857 return this.referenceSeqPointerTarget; 858 } 859 860 /** 861 * @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 MolecularSequence entity as reference sequence.) 862 */ 863 public MolecularSequenceReferenceSeqComponent setReferenceSeqPointerTarget(MolecularSequence value) { 864 this.referenceSeqPointerTarget = value; 865 return this; 866 } 867 868 /** 869 * @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 870 */ 871 public StringType getReferenceSeqStringElement() { 872 if (this.referenceSeqString == null) 873 if (Configuration.errorOnAutoCreate()) 874 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.referenceSeqString"); 875 else if (Configuration.doAutoCreate()) 876 this.referenceSeqString = new StringType(); // bb 877 return this.referenceSeqString; 878 } 879 880 public boolean hasReferenceSeqStringElement() { 881 return this.referenceSeqString != null && !this.referenceSeqString.isEmpty(); 882 } 883 884 public boolean hasReferenceSeqString() { 885 return this.referenceSeqString != null && !this.referenceSeqString.isEmpty(); 886 } 887 888 /** 889 * @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 890 */ 891 public MolecularSequenceReferenceSeqComponent setReferenceSeqStringElement(StringType value) { 892 this.referenceSeqString = value; 893 return this; 894 } 895 896 /** 897 * @return A string like "ACGT". 898 */ 899 public String getReferenceSeqString() { 900 return this.referenceSeqString == null ? null : this.referenceSeqString.getValue(); 901 } 902 903 /** 904 * @param value A string like "ACGT". 905 */ 906 public MolecularSequenceReferenceSeqComponent setReferenceSeqString(String value) { 907 if (Utilities.noString(value)) 908 this.referenceSeqString = null; 909 else { 910 if (this.referenceSeqString == null) 911 this.referenceSeqString = new StringType(); 912 this.referenceSeqString.setValue(value); 913 } 914 return this; 915 } 916 917 /** 918 * @return {@link #strand} (An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm.). This is the underlying object with id, value and extensions. The accessor "getStrand" gives direct access to the value 919 */ 920 public Enumeration<StrandType> getStrandElement() { 921 if (this.strand == null) 922 if (Configuration.errorOnAutoCreate()) 923 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.strand"); 924 else if (Configuration.doAutoCreate()) 925 this.strand = new Enumeration<StrandType>(new StrandTypeEnumFactory()); // bb 926 return this.strand; 927 } 928 929 public boolean hasStrandElement() { 930 return this.strand != null && !this.strand.isEmpty(); 931 } 932 933 public boolean hasStrand() { 934 return this.strand != null && !this.strand.isEmpty(); 935 } 936 937 /** 938 * @param value {@link #strand} (An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm.). This is the underlying object with id, value and extensions. The accessor "getStrand" gives direct access to the value 939 */ 940 public MolecularSequenceReferenceSeqComponent setStrandElement(Enumeration<StrandType> value) { 941 this.strand = value; 942 return this; 943 } 944 945 /** 946 * @return An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm. 947 */ 948 public StrandType getStrand() { 949 return this.strand == null ? null : this.strand.getValue(); 950 } 951 952 /** 953 * @param value An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm. 954 */ 955 public MolecularSequenceReferenceSeqComponent setStrand(StrandType value) { 956 if (value == null) 957 this.strand = null; 958 else { 959 if (this.strand == null) 960 this.strand = new Enumeration<StrandType>(new StrandTypeEnumFactory()); 961 this.strand.setValue(value); 962 } 963 return this; 964 } 965 966 /** 967 * @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 968 */ 969 public IntegerType getWindowStartElement() { 970 if (this.windowStart == null) 971 if (Configuration.errorOnAutoCreate()) 972 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.windowStart"); 973 else if (Configuration.doAutoCreate()) 974 this.windowStart = new IntegerType(); // bb 975 return this.windowStart; 976 } 977 978 public boolean hasWindowStartElement() { 979 return this.windowStart != null && !this.windowStart.isEmpty(); 980 } 981 982 public boolean hasWindowStart() { 983 return this.windowStart != null && !this.windowStart.isEmpty(); 984 } 985 986 /** 987 * @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 988 */ 989 public MolecularSequenceReferenceSeqComponent setWindowStartElement(IntegerType value) { 990 this.windowStart = value; 991 return this; 992 } 993 994 /** 995 * @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. 996 */ 997 public int getWindowStart() { 998 return this.windowStart == null || this.windowStart.isEmpty() ? 0 : this.windowStart.getValue(); 999 } 1000 1001 /** 1002 * @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. 1003 */ 1004 public MolecularSequenceReferenceSeqComponent setWindowStart(int value) { 1005 if (this.windowStart == null) 1006 this.windowStart = new IntegerType(); 1007 this.windowStart.setValue(value); 1008 return this; 1009 } 1010 1011 /** 1012 * @return {@link #windowEnd} (End position of the window on the reference sequence. If the coordinate system is 0-based then end 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 1013 */ 1014 public IntegerType getWindowEndElement() { 1015 if (this.windowEnd == null) 1016 if (Configuration.errorOnAutoCreate()) 1017 throw new Error("Attempt to auto-create MolecularSequenceReferenceSeqComponent.windowEnd"); 1018 else if (Configuration.doAutoCreate()) 1019 this.windowEnd = new IntegerType(); // bb 1020 return this.windowEnd; 1021 } 1022 1023 public boolean hasWindowEndElement() { 1024 return this.windowEnd != null && !this.windowEnd.isEmpty(); 1025 } 1026 1027 public boolean hasWindowEnd() { 1028 return this.windowEnd != null && !this.windowEnd.isEmpty(); 1029 } 1030 1031 /** 1032 * @param value {@link #windowEnd} (End position of the window on the reference sequence. If the coordinate system is 0-based then end 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 1033 */ 1034 public MolecularSequenceReferenceSeqComponent setWindowEndElement(IntegerType value) { 1035 this.windowEnd = value; 1036 return this; 1037 } 1038 1039 /** 1040 * @return End position of the window on the reference sequence. If the coordinate system is 0-based then end 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. 1041 */ 1042 public int getWindowEnd() { 1043 return this.windowEnd == null || this.windowEnd.isEmpty() ? 0 : this.windowEnd.getValue(); 1044 } 1045 1046 /** 1047 * @param value End position of the window on the reference sequence. If the coordinate system is 0-based then end 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. 1048 */ 1049 public MolecularSequenceReferenceSeqComponent setWindowEnd(int value) { 1050 if (this.windowEnd == null) 1051 this.windowEnd = new IntegerType(); 1052 this.windowEnd.setValue(value); 1053 return this; 1054 } 1055 1056 protected void listChildren(List<Property> children) { 1057 super.listChildren(children); 1058 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)); 1059 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)); 1060 children.add(new Property("orientation", "code", "A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the \"sense\" strand, and the opposite complementary strand is the \"antisense\" strand.", 0, 1, orientation)); 1061 children.add(new Property("referenceSeqId", "CodeableConcept", "Reference identifier of reference sequence submitted to NCBI. It must match the type in the MolecularSequence.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)); 1062 children.add(new Property("referenceSeqPointer", "Reference(MolecularSequence)", "A pointer to another MolecularSequence entity as reference sequence.", 0, 1, referenceSeqPointer)); 1063 children.add(new Property("referenceSeqString", "string", "A string like \"ACGT\".", 0, 1, referenceSeqString)); 1064 children.add(new Property("strand", "code", "An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm.", 0, 1, strand)); 1065 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)); 1066 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 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)); 1067 } 1068 1069 @Override 1070 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1071 switch (_hash) { 1072 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); 1073 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); 1074 case -1439500848: /*orientation*/ return new Property("orientation", "code", "A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the \"sense\" strand, and the opposite complementary strand is the \"antisense\" strand.", 0, 1, orientation); 1075 case -1911500465: /*referenceSeqId*/ return new Property("referenceSeqId", "CodeableConcept", "Reference identifier of reference sequence submitted to NCBI. It must match the type in the MolecularSequence.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); 1076 case 1923414665: /*referenceSeqPointer*/ return new Property("referenceSeqPointer", "Reference(MolecularSequence)", "A pointer to another MolecularSequence entity as reference sequence.", 0, 1, referenceSeqPointer); 1077 case -1648301499: /*referenceSeqString*/ return new Property("referenceSeqString", "string", "A string like \"ACGT\".", 0, 1, referenceSeqString); 1078 case -891993594: /*strand*/ return new Property("strand", "code", "An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm.", 0, 1, strand); 1079 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); 1080 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 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); 1081 default: return super.getNamedProperty(_hash, _name, _checkValid); 1082 } 1083 1084 } 1085 1086 @Override 1087 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1088 switch (hash) { 1089 case -1499470472: /*chromosome*/ return this.chromosome == null ? new Base[0] : new Base[] {this.chromosome}; // CodeableConcept 1090 case 1061239735: /*genomeBuild*/ return this.genomeBuild == null ? new Base[0] : new Base[] {this.genomeBuild}; // StringType 1091 case -1439500848: /*orientation*/ return this.orientation == null ? new Base[0] : new Base[] {this.orientation}; // Enumeration<OrientationType> 1092 case -1911500465: /*referenceSeqId*/ return this.referenceSeqId == null ? new Base[0] : new Base[] {this.referenceSeqId}; // CodeableConcept 1093 case 1923414665: /*referenceSeqPointer*/ return this.referenceSeqPointer == null ? new Base[0] : new Base[] {this.referenceSeqPointer}; // Reference 1094 case -1648301499: /*referenceSeqString*/ return this.referenceSeqString == null ? new Base[0] : new Base[] {this.referenceSeqString}; // StringType 1095 case -891993594: /*strand*/ return this.strand == null ? new Base[0] : new Base[] {this.strand}; // Enumeration<StrandType> 1096 case 1903685202: /*windowStart*/ return this.windowStart == null ? new Base[0] : new Base[] {this.windowStart}; // IntegerType 1097 case -217026869: /*windowEnd*/ return this.windowEnd == null ? new Base[0] : new Base[] {this.windowEnd}; // IntegerType 1098 default: return super.getProperty(hash, name, checkValid); 1099 } 1100 1101 } 1102 1103 @Override 1104 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1105 switch (hash) { 1106 case -1499470472: // chromosome 1107 this.chromosome = castToCodeableConcept(value); // CodeableConcept 1108 return value; 1109 case 1061239735: // genomeBuild 1110 this.genomeBuild = castToString(value); // StringType 1111 return value; 1112 case -1439500848: // orientation 1113 value = new OrientationTypeEnumFactory().fromType(castToCode(value)); 1114 this.orientation = (Enumeration) value; // Enumeration<OrientationType> 1115 return value; 1116 case -1911500465: // referenceSeqId 1117 this.referenceSeqId = castToCodeableConcept(value); // CodeableConcept 1118 return value; 1119 case 1923414665: // referenceSeqPointer 1120 this.referenceSeqPointer = castToReference(value); // Reference 1121 return value; 1122 case -1648301499: // referenceSeqString 1123 this.referenceSeqString = castToString(value); // StringType 1124 return value; 1125 case -891993594: // strand 1126 value = new StrandTypeEnumFactory().fromType(castToCode(value)); 1127 this.strand = (Enumeration) value; // Enumeration<StrandType> 1128 return value; 1129 case 1903685202: // windowStart 1130 this.windowStart = castToInteger(value); // IntegerType 1131 return value; 1132 case -217026869: // windowEnd 1133 this.windowEnd = castToInteger(value); // IntegerType 1134 return value; 1135 default: return super.setProperty(hash, name, value); 1136 } 1137 1138 } 1139 1140 @Override 1141 public Base setProperty(String name, Base value) throws FHIRException { 1142 if (name.equals("chromosome")) { 1143 this.chromosome = castToCodeableConcept(value); // CodeableConcept 1144 } else if (name.equals("genomeBuild")) { 1145 this.genomeBuild = castToString(value); // StringType 1146 } else if (name.equals("orientation")) { 1147 value = new OrientationTypeEnumFactory().fromType(castToCode(value)); 1148 this.orientation = (Enumeration) value; // Enumeration<OrientationType> 1149 } else if (name.equals("referenceSeqId")) { 1150 this.referenceSeqId = castToCodeableConcept(value); // CodeableConcept 1151 } else if (name.equals("referenceSeqPointer")) { 1152 this.referenceSeqPointer = castToReference(value); // Reference 1153 } else if (name.equals("referenceSeqString")) { 1154 this.referenceSeqString = castToString(value); // StringType 1155 } else if (name.equals("strand")) { 1156 value = new StrandTypeEnumFactory().fromType(castToCode(value)); 1157 this.strand = (Enumeration) value; // Enumeration<StrandType> 1158 } else if (name.equals("windowStart")) { 1159 this.windowStart = castToInteger(value); // IntegerType 1160 } else if (name.equals("windowEnd")) { 1161 this.windowEnd = castToInteger(value); // IntegerType 1162 } else 1163 return super.setProperty(name, value); 1164 return value; 1165 } 1166 1167 @Override 1168 public Base makeProperty(int hash, String name) throws FHIRException { 1169 switch (hash) { 1170 case -1499470472: return getChromosome(); 1171 case 1061239735: return getGenomeBuildElement(); 1172 case -1439500848: return getOrientationElement(); 1173 case -1911500465: return getReferenceSeqId(); 1174 case 1923414665: return getReferenceSeqPointer(); 1175 case -1648301499: return getReferenceSeqStringElement(); 1176 case -891993594: return getStrandElement(); 1177 case 1903685202: return getWindowStartElement(); 1178 case -217026869: return getWindowEndElement(); 1179 default: return super.makeProperty(hash, name); 1180 } 1181 1182 } 1183 1184 @Override 1185 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1186 switch (hash) { 1187 case -1499470472: /*chromosome*/ return new String[] {"CodeableConcept"}; 1188 case 1061239735: /*genomeBuild*/ return new String[] {"string"}; 1189 case -1439500848: /*orientation*/ return new String[] {"code"}; 1190 case -1911500465: /*referenceSeqId*/ return new String[] {"CodeableConcept"}; 1191 case 1923414665: /*referenceSeqPointer*/ return new String[] {"Reference"}; 1192 case -1648301499: /*referenceSeqString*/ return new String[] {"string"}; 1193 case -891993594: /*strand*/ return new String[] {"code"}; 1194 case 1903685202: /*windowStart*/ return new String[] {"integer"}; 1195 case -217026869: /*windowEnd*/ return new String[] {"integer"}; 1196 default: return super.getTypesForProperty(hash, name); 1197 } 1198 1199 } 1200 1201 @Override 1202 public Base addChild(String name) throws FHIRException { 1203 if (name.equals("chromosome")) { 1204 this.chromosome = new CodeableConcept(); 1205 return this.chromosome; 1206 } 1207 else if (name.equals("genomeBuild")) { 1208 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.genomeBuild"); 1209 } 1210 else if (name.equals("orientation")) { 1211 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.orientation"); 1212 } 1213 else if (name.equals("referenceSeqId")) { 1214 this.referenceSeqId = new CodeableConcept(); 1215 return this.referenceSeqId; 1216 } 1217 else if (name.equals("referenceSeqPointer")) { 1218 this.referenceSeqPointer = new Reference(); 1219 return this.referenceSeqPointer; 1220 } 1221 else if (name.equals("referenceSeqString")) { 1222 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.referenceSeqString"); 1223 } 1224 else if (name.equals("strand")) { 1225 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.strand"); 1226 } 1227 else if (name.equals("windowStart")) { 1228 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.windowStart"); 1229 } 1230 else if (name.equals("windowEnd")) { 1231 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.windowEnd"); 1232 } 1233 else 1234 return super.addChild(name); 1235 } 1236 1237 public MolecularSequenceReferenceSeqComponent copy() { 1238 MolecularSequenceReferenceSeqComponent dst = new MolecularSequenceReferenceSeqComponent(); 1239 copyValues(dst); 1240 return dst; 1241 } 1242 1243 public void copyValues(MolecularSequenceReferenceSeqComponent dst) { 1244 super.copyValues(dst); 1245 dst.chromosome = chromosome == null ? null : chromosome.copy(); 1246 dst.genomeBuild = genomeBuild == null ? null : genomeBuild.copy(); 1247 dst.orientation = orientation == null ? null : orientation.copy(); 1248 dst.referenceSeqId = referenceSeqId == null ? null : referenceSeqId.copy(); 1249 dst.referenceSeqPointer = referenceSeqPointer == null ? null : referenceSeqPointer.copy(); 1250 dst.referenceSeqString = referenceSeqString == null ? null : referenceSeqString.copy(); 1251 dst.strand = strand == null ? null : strand.copy(); 1252 dst.windowStart = windowStart == null ? null : windowStart.copy(); 1253 dst.windowEnd = windowEnd == null ? null : windowEnd.copy(); 1254 } 1255 1256 @Override 1257 public boolean equalsDeep(Base other_) { 1258 if (!super.equalsDeep(other_)) 1259 return false; 1260 if (!(other_ instanceof MolecularSequenceReferenceSeqComponent)) 1261 return false; 1262 MolecularSequenceReferenceSeqComponent o = (MolecularSequenceReferenceSeqComponent) other_; 1263 return compareDeep(chromosome, o.chromosome, true) && compareDeep(genomeBuild, o.genomeBuild, true) 1264 && compareDeep(orientation, o.orientation, true) && compareDeep(referenceSeqId, o.referenceSeqId, true) 1265 && compareDeep(referenceSeqPointer, o.referenceSeqPointer, true) && compareDeep(referenceSeqString, o.referenceSeqString, true) 1266 && compareDeep(strand, o.strand, true) && compareDeep(windowStart, o.windowStart, true) && compareDeep(windowEnd, o.windowEnd, true) 1267 ; 1268 } 1269 1270 @Override 1271 public boolean equalsShallow(Base other_) { 1272 if (!super.equalsShallow(other_)) 1273 return false; 1274 if (!(other_ instanceof MolecularSequenceReferenceSeqComponent)) 1275 return false; 1276 MolecularSequenceReferenceSeqComponent o = (MolecularSequenceReferenceSeqComponent) other_; 1277 return compareValues(genomeBuild, o.genomeBuild, true) && compareValues(orientation, o.orientation, true) 1278 && compareValues(referenceSeqString, o.referenceSeqString, true) && compareValues(strand, o.strand, true) 1279 && compareValues(windowStart, o.windowStart, true) && compareValues(windowEnd, o.windowEnd, true); 1280 } 1281 1282 public boolean isEmpty() { 1283 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(chromosome, genomeBuild, orientation 1284 , referenceSeqId, referenceSeqPointer, referenceSeqString, strand, windowStart, windowEnd 1285 ); 1286 } 1287 1288 public String fhirType() { 1289 return "MolecularSequence.referenceSeq"; 1290 1291 } 1292 1293 } 1294 1295 @Block() 1296 public static class MolecularSequenceVariantComponent extends BackboneElement implements IBaseBackboneElement { 1297 /** 1298 * 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. 1299 */ 1300 @Child(name = "start", type = {IntegerType.class}, order=1, min=0, max=1, modifier=false, summary=true) 1301 @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." ) 1302 protected IntegerType start; 1303 1304 /** 1305 * End position of the variant on the reference sequence. If the coordinate system is 0-based then end 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. 1306 */ 1307 @Child(name = "end", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=true) 1308 @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 exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position." ) 1309 protected IntegerType end; 1310 1311 /** 1312 * 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. 1313 */ 1314 @Child(name = "observedAllele", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true) 1315 @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." ) 1316 protected StringType observedAllele; 1317 1318 /** 1319 * 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. 1320 */ 1321 @Child(name = "referenceAllele", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 1322 @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." ) 1323 protected StringType referenceAllele; 1324 1325 /** 1326 * 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). 1327 */ 1328 @Child(name = "cigar", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true) 1329 @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)." ) 1330 protected StringType cigar; 1331 1332 /** 1333 * A pointer to an Observation containing variant information. 1334 */ 1335 @Child(name = "variantPointer", type = {Observation.class}, order=6, min=0, max=1, modifier=false, summary=true) 1336 @Description(shortDefinition="Pointer to observed variant information", formalDefinition="A pointer to an Observation containing variant information." ) 1337 protected Reference variantPointer; 1338 1339 /** 1340 * The actual object that is the target of the reference (A pointer to an Observation containing variant information.) 1341 */ 1342 protected Observation variantPointerTarget; 1343 1344 private static final long serialVersionUID = 105611837L; 1345 1346 /** 1347 * Constructor 1348 */ 1349 public MolecularSequenceVariantComponent() { 1350 super(); 1351 } 1352 1353 /** 1354 * @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 1355 */ 1356 public IntegerType getStartElement() { 1357 if (this.start == null) 1358 if (Configuration.errorOnAutoCreate()) 1359 throw new Error("Attempt to auto-create MolecularSequenceVariantComponent.start"); 1360 else if (Configuration.doAutoCreate()) 1361 this.start = new IntegerType(); // bb 1362 return this.start; 1363 } 1364 1365 public boolean hasStartElement() { 1366 return this.start != null && !this.start.isEmpty(); 1367 } 1368 1369 public boolean hasStart() { 1370 return this.start != null && !this.start.isEmpty(); 1371 } 1372 1373 /** 1374 * @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 1375 */ 1376 public MolecularSequenceVariantComponent setStartElement(IntegerType value) { 1377 this.start = value; 1378 return this; 1379 } 1380 1381 /** 1382 * @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. 1383 */ 1384 public int getStart() { 1385 return this.start == null || this.start.isEmpty() ? 0 : this.start.getValue(); 1386 } 1387 1388 /** 1389 * @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. 1390 */ 1391 public MolecularSequenceVariantComponent setStart(int value) { 1392 if (this.start == null) 1393 this.start = new IntegerType(); 1394 this.start.setValue(value); 1395 return this; 1396 } 1397 1398 /** 1399 * @return {@link #end} (End position of the variant on the reference sequence. If the coordinate system is 0-based then end 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 1400 */ 1401 public IntegerType getEndElement() { 1402 if (this.end == null) 1403 if (Configuration.errorOnAutoCreate()) 1404 throw new Error("Attempt to auto-create MolecularSequenceVariantComponent.end"); 1405 else if (Configuration.doAutoCreate()) 1406 this.end = new IntegerType(); // bb 1407 return this.end; 1408 } 1409 1410 public boolean hasEndElement() { 1411 return this.end != null && !this.end.isEmpty(); 1412 } 1413 1414 public boolean hasEnd() { 1415 return this.end != null && !this.end.isEmpty(); 1416 } 1417 1418 /** 1419 * @param value {@link #end} (End position of the variant on the reference sequence. If the coordinate system is 0-based then end 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 1420 */ 1421 public MolecularSequenceVariantComponent setEndElement(IntegerType value) { 1422 this.end = value; 1423 return this; 1424 } 1425 1426 /** 1427 * @return End position of the variant on the reference sequence. If the coordinate system is 0-based then end 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. 1428 */ 1429 public int getEnd() { 1430 return this.end == null || this.end.isEmpty() ? 0 : this.end.getValue(); 1431 } 1432 1433 /** 1434 * @param value End position of the variant on the reference sequence. If the coordinate system is 0-based then end 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. 1435 */ 1436 public MolecularSequenceVariantComponent setEnd(int value) { 1437 if (this.end == null) 1438 this.end = new IntegerType(); 1439 this.end.setValue(value); 1440 return this; 1441 } 1442 1443 /** 1444 * @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 1445 */ 1446 public StringType getObservedAlleleElement() { 1447 if (this.observedAllele == null) 1448 if (Configuration.errorOnAutoCreate()) 1449 throw new Error("Attempt to auto-create MolecularSequenceVariantComponent.observedAllele"); 1450 else if (Configuration.doAutoCreate()) 1451 this.observedAllele = new StringType(); // bb 1452 return this.observedAllele; 1453 } 1454 1455 public boolean hasObservedAlleleElement() { 1456 return this.observedAllele != null && !this.observedAllele.isEmpty(); 1457 } 1458 1459 public boolean hasObservedAllele() { 1460 return this.observedAllele != null && !this.observedAllele.isEmpty(); 1461 } 1462 1463 /** 1464 * @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 1465 */ 1466 public MolecularSequenceVariantComponent setObservedAlleleElement(StringType value) { 1467 this.observedAllele = value; 1468 return this; 1469 } 1470 1471 /** 1472 * @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. 1473 */ 1474 public String getObservedAllele() { 1475 return this.observedAllele == null ? null : this.observedAllele.getValue(); 1476 } 1477 1478 /** 1479 * @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. 1480 */ 1481 public MolecularSequenceVariantComponent setObservedAllele(String value) { 1482 if (Utilities.noString(value)) 1483 this.observedAllele = null; 1484 else { 1485 if (this.observedAllele == null) 1486 this.observedAllele = new StringType(); 1487 this.observedAllele.setValue(value); 1488 } 1489 return this; 1490 } 1491 1492 /** 1493 * @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 1494 */ 1495 public StringType getReferenceAlleleElement() { 1496 if (this.referenceAllele == null) 1497 if (Configuration.errorOnAutoCreate()) 1498 throw new Error("Attempt to auto-create MolecularSequenceVariantComponent.referenceAllele"); 1499 else if (Configuration.doAutoCreate()) 1500 this.referenceAllele = new StringType(); // bb 1501 return this.referenceAllele; 1502 } 1503 1504 public boolean hasReferenceAlleleElement() { 1505 return this.referenceAllele != null && !this.referenceAllele.isEmpty(); 1506 } 1507 1508 public boolean hasReferenceAllele() { 1509 return this.referenceAllele != null && !this.referenceAllele.isEmpty(); 1510 } 1511 1512 /** 1513 * @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 1514 */ 1515 public MolecularSequenceVariantComponent setReferenceAlleleElement(StringType value) { 1516 this.referenceAllele = value; 1517 return this; 1518 } 1519 1520 /** 1521 * @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. 1522 */ 1523 public String getReferenceAllele() { 1524 return this.referenceAllele == null ? null : this.referenceAllele.getValue(); 1525 } 1526 1527 /** 1528 * @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. 1529 */ 1530 public MolecularSequenceVariantComponent setReferenceAllele(String value) { 1531 if (Utilities.noString(value)) 1532 this.referenceAllele = null; 1533 else { 1534 if (this.referenceAllele == null) 1535 this.referenceAllele = new StringType(); 1536 this.referenceAllele.setValue(value); 1537 } 1538 return this; 1539 } 1540 1541 /** 1542 * @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 1543 */ 1544 public StringType getCigarElement() { 1545 if (this.cigar == null) 1546 if (Configuration.errorOnAutoCreate()) 1547 throw new Error("Attempt to auto-create MolecularSequenceVariantComponent.cigar"); 1548 else if (Configuration.doAutoCreate()) 1549 this.cigar = new StringType(); // bb 1550 return this.cigar; 1551 } 1552 1553 public boolean hasCigarElement() { 1554 return this.cigar != null && !this.cigar.isEmpty(); 1555 } 1556 1557 public boolean hasCigar() { 1558 return this.cigar != null && !this.cigar.isEmpty(); 1559 } 1560 1561 /** 1562 * @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 1563 */ 1564 public MolecularSequenceVariantComponent setCigarElement(StringType value) { 1565 this.cigar = value; 1566 return this; 1567 } 1568 1569 /** 1570 * @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). 1571 */ 1572 public String getCigar() { 1573 return this.cigar == null ? null : this.cigar.getValue(); 1574 } 1575 1576 /** 1577 * @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). 1578 */ 1579 public MolecularSequenceVariantComponent setCigar(String value) { 1580 if (Utilities.noString(value)) 1581 this.cigar = null; 1582 else { 1583 if (this.cigar == null) 1584 this.cigar = new StringType(); 1585 this.cigar.setValue(value); 1586 } 1587 return this; 1588 } 1589 1590 /** 1591 * @return {@link #variantPointer} (A pointer to an Observation containing variant information.) 1592 */ 1593 public Reference getVariantPointer() { 1594 if (this.variantPointer == null) 1595 if (Configuration.errorOnAutoCreate()) 1596 throw new Error("Attempt to auto-create MolecularSequenceVariantComponent.variantPointer"); 1597 else if (Configuration.doAutoCreate()) 1598 this.variantPointer = new Reference(); // cc 1599 return this.variantPointer; 1600 } 1601 1602 public boolean hasVariantPointer() { 1603 return this.variantPointer != null && !this.variantPointer.isEmpty(); 1604 } 1605 1606 /** 1607 * @param value {@link #variantPointer} (A pointer to an Observation containing variant information.) 1608 */ 1609 public MolecularSequenceVariantComponent setVariantPointer(Reference value) { 1610 this.variantPointer = value; 1611 return this; 1612 } 1613 1614 /** 1615 * @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.) 1616 */ 1617 public Observation getVariantPointerTarget() { 1618 if (this.variantPointerTarget == null) 1619 if (Configuration.errorOnAutoCreate()) 1620 throw new Error("Attempt to auto-create MolecularSequenceVariantComponent.variantPointer"); 1621 else if (Configuration.doAutoCreate()) 1622 this.variantPointerTarget = new Observation(); // aa 1623 return this.variantPointerTarget; 1624 } 1625 1626 /** 1627 * @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.) 1628 */ 1629 public MolecularSequenceVariantComponent setVariantPointerTarget(Observation value) { 1630 this.variantPointerTarget = value; 1631 return this; 1632 } 1633 1634 protected void listChildren(List<Property> children) { 1635 super.listChildren(children); 1636 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)); 1637 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 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)); 1638 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)); 1639 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)); 1640 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)); 1641 children.add(new Property("variantPointer", "Reference(Observation)", "A pointer to an Observation containing variant information.", 0, 1, variantPointer)); 1642 } 1643 1644 @Override 1645 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1646 switch (_hash) { 1647 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); 1648 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 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); 1649 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); 1650 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); 1651 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); 1652 case -1654319624: /*variantPointer*/ return new Property("variantPointer", "Reference(Observation)", "A pointer to an Observation containing variant information.", 0, 1, variantPointer); 1653 default: return super.getNamedProperty(_hash, _name, _checkValid); 1654 } 1655 1656 } 1657 1658 @Override 1659 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1660 switch (hash) { 1661 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // IntegerType 1662 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // IntegerType 1663 case -1418745787: /*observedAllele*/ return this.observedAllele == null ? new Base[0] : new Base[] {this.observedAllele}; // StringType 1664 case 364045960: /*referenceAllele*/ return this.referenceAllele == null ? new Base[0] : new Base[] {this.referenceAllele}; // StringType 1665 case 94658738: /*cigar*/ return this.cigar == null ? new Base[0] : new Base[] {this.cigar}; // StringType 1666 case -1654319624: /*variantPointer*/ return this.variantPointer == null ? new Base[0] : new Base[] {this.variantPointer}; // Reference 1667 default: return super.getProperty(hash, name, checkValid); 1668 } 1669 1670 } 1671 1672 @Override 1673 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1674 switch (hash) { 1675 case 109757538: // start 1676 this.start = castToInteger(value); // IntegerType 1677 return value; 1678 case 100571: // end 1679 this.end = castToInteger(value); // IntegerType 1680 return value; 1681 case -1418745787: // observedAllele 1682 this.observedAllele = castToString(value); // StringType 1683 return value; 1684 case 364045960: // referenceAllele 1685 this.referenceAllele = castToString(value); // StringType 1686 return value; 1687 case 94658738: // cigar 1688 this.cigar = castToString(value); // StringType 1689 return value; 1690 case -1654319624: // variantPointer 1691 this.variantPointer = castToReference(value); // Reference 1692 return value; 1693 default: return super.setProperty(hash, name, value); 1694 } 1695 1696 } 1697 1698 @Override 1699 public Base setProperty(String name, Base value) throws FHIRException { 1700 if (name.equals("start")) { 1701 this.start = castToInteger(value); // IntegerType 1702 } else if (name.equals("end")) { 1703 this.end = castToInteger(value); // IntegerType 1704 } else if (name.equals("observedAllele")) { 1705 this.observedAllele = castToString(value); // StringType 1706 } else if (name.equals("referenceAllele")) { 1707 this.referenceAllele = castToString(value); // StringType 1708 } else if (name.equals("cigar")) { 1709 this.cigar = castToString(value); // StringType 1710 } else if (name.equals("variantPointer")) { 1711 this.variantPointer = castToReference(value); // Reference 1712 } else 1713 return super.setProperty(name, value); 1714 return value; 1715 } 1716 1717 @Override 1718 public Base makeProperty(int hash, String name) throws FHIRException { 1719 switch (hash) { 1720 case 109757538: return getStartElement(); 1721 case 100571: return getEndElement(); 1722 case -1418745787: return getObservedAlleleElement(); 1723 case 364045960: return getReferenceAlleleElement(); 1724 case 94658738: return getCigarElement(); 1725 case -1654319624: return getVariantPointer(); 1726 default: return super.makeProperty(hash, name); 1727 } 1728 1729 } 1730 1731 @Override 1732 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1733 switch (hash) { 1734 case 109757538: /*start*/ return new String[] {"integer"}; 1735 case 100571: /*end*/ return new String[] {"integer"}; 1736 case -1418745787: /*observedAllele*/ return new String[] {"string"}; 1737 case 364045960: /*referenceAllele*/ return new String[] {"string"}; 1738 case 94658738: /*cigar*/ return new String[] {"string"}; 1739 case -1654319624: /*variantPointer*/ return new String[] {"Reference"}; 1740 default: return super.getTypesForProperty(hash, name); 1741 } 1742 1743 } 1744 1745 @Override 1746 public Base addChild(String name) throws FHIRException { 1747 if (name.equals("start")) { 1748 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.start"); 1749 } 1750 else if (name.equals("end")) { 1751 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.end"); 1752 } 1753 else if (name.equals("observedAllele")) { 1754 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.observedAllele"); 1755 } 1756 else if (name.equals("referenceAllele")) { 1757 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.referenceAllele"); 1758 } 1759 else if (name.equals("cigar")) { 1760 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.cigar"); 1761 } 1762 else if (name.equals("variantPointer")) { 1763 this.variantPointer = new Reference(); 1764 return this.variantPointer; 1765 } 1766 else 1767 return super.addChild(name); 1768 } 1769 1770 public MolecularSequenceVariantComponent copy() { 1771 MolecularSequenceVariantComponent dst = new MolecularSequenceVariantComponent(); 1772 copyValues(dst); 1773 return dst; 1774 } 1775 1776 public void copyValues(MolecularSequenceVariantComponent dst) { 1777 super.copyValues(dst); 1778 dst.start = start == null ? null : start.copy(); 1779 dst.end = end == null ? null : end.copy(); 1780 dst.observedAllele = observedAllele == null ? null : observedAllele.copy(); 1781 dst.referenceAllele = referenceAllele == null ? null : referenceAllele.copy(); 1782 dst.cigar = cigar == null ? null : cigar.copy(); 1783 dst.variantPointer = variantPointer == null ? null : variantPointer.copy(); 1784 } 1785 1786 @Override 1787 public boolean equalsDeep(Base other_) { 1788 if (!super.equalsDeep(other_)) 1789 return false; 1790 if (!(other_ instanceof MolecularSequenceVariantComponent)) 1791 return false; 1792 MolecularSequenceVariantComponent o = (MolecularSequenceVariantComponent) other_; 1793 return compareDeep(start, o.start, true) && compareDeep(end, o.end, true) && compareDeep(observedAllele, o.observedAllele, true) 1794 && compareDeep(referenceAllele, o.referenceAllele, true) && compareDeep(cigar, o.cigar, true) && compareDeep(variantPointer, o.variantPointer, true) 1795 ; 1796 } 1797 1798 @Override 1799 public boolean equalsShallow(Base other_) { 1800 if (!super.equalsShallow(other_)) 1801 return false; 1802 if (!(other_ instanceof MolecularSequenceVariantComponent)) 1803 return false; 1804 MolecularSequenceVariantComponent o = (MolecularSequenceVariantComponent) other_; 1805 return compareValues(start, o.start, true) && compareValues(end, o.end, true) && compareValues(observedAllele, o.observedAllele, true) 1806 && compareValues(referenceAllele, o.referenceAllele, true) && compareValues(cigar, o.cigar, true); 1807 } 1808 1809 public boolean isEmpty() { 1810 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(start, end, observedAllele 1811 , referenceAllele, cigar, variantPointer); 1812 } 1813 1814 public String fhirType() { 1815 return "MolecularSequence.variant"; 1816 1817 } 1818 1819 } 1820 1821 @Block() 1822 public static class MolecularSequenceQualityComponent extends BackboneElement implements IBaseBackboneElement { 1823 /** 1824 * INDEL / SNP / Undefined variant. 1825 */ 1826 @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 1827 @Description(shortDefinition="indel | snp | unknown", formalDefinition="INDEL / SNP / Undefined variant." ) 1828 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/quality-type") 1829 protected Enumeration<QualityType> type; 1830 1831 /** 1832 * Gold standard sequence used for comparing against. 1833 */ 1834 @Child(name = "standardSequence", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 1835 @Description(shortDefinition="Standard sequence for comparison", formalDefinition="Gold standard sequence used for comparing against." ) 1836 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/sequence-quality-standardSequence") 1837 protected CodeableConcept standardSequence; 1838 1839 /** 1840 * Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 1841 */ 1842 @Child(name = "start", type = {IntegerType.class}, order=3, min=0, max=1, modifier=false, summary=true) 1843 @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." ) 1844 protected IntegerType start; 1845 1846 /** 1847 * End position of the sequence. If the coordinate system is 0-based then end 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. 1848 */ 1849 @Child(name = "end", type = {IntegerType.class}, order=4, min=0, max=1, modifier=false, summary=true) 1850 @Description(shortDefinition="End position of the sequence", formalDefinition="End position of the sequence. If the coordinate system is 0-based then end 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." ) 1851 protected IntegerType end; 1852 1853 /** 1854 * The score of an experimentally derived feature such as a p-value ([SO:0001685](http://www.sequenceontology.org/browser/current_svn/term/SO:0001685)). 1855 */ 1856 @Child(name = "score", type = {Quantity.class}, order=5, min=0, max=1, modifier=false, summary=true) 1857 @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))." ) 1858 protected Quantity score; 1859 1860 /** 1861 * Which method is used to get sequence quality. 1862 */ 1863 @Child(name = "method", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=true) 1864 @Description(shortDefinition="Method to get quality", formalDefinition="Which method is used to get sequence quality." ) 1865 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/sequence-quality-method") 1866 protected CodeableConcept method; 1867 1868 /** 1869 * 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. 1870 */ 1871 @Child(name = "truthTP", type = {DecimalType.class}, order=7, min=0, max=1, modifier=false, summary=true) 1872 @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." ) 1873 protected DecimalType truthTP; 1874 1875 /** 1876 * 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. 1877 */ 1878 @Child(name = "queryTP", type = {DecimalType.class}, order=8, min=0, max=1, modifier=false, summary=true) 1879 @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." ) 1880 protected DecimalType queryTP; 1881 1882 /** 1883 * 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. 1884 */ 1885 @Child(name = "truthFN", type = {DecimalType.class}, order=9, min=0, max=1, modifier=false, summary=true) 1886 @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." ) 1887 protected DecimalType truthFN; 1888 1889 /** 1890 * 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. 1891 */ 1892 @Child(name = "queryFP", type = {DecimalType.class}, order=10, min=0, max=1, modifier=false, summary=true) 1893 @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." ) 1894 protected DecimalType queryFP; 1895 1896 /** 1897 * 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). 1898 */ 1899 @Child(name = "gtFP", type = {DecimalType.class}, order=11, min=0, max=1, modifier=false, summary=true) 1900 @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)." ) 1901 protected DecimalType gtFP; 1902 1903 /** 1904 * QUERY.TP / (QUERY.TP + QUERY.FP). 1905 */ 1906 @Child(name = "precision", type = {DecimalType.class}, order=12, min=0, max=1, modifier=false, summary=true) 1907 @Description(shortDefinition="Precision of comparison", formalDefinition="QUERY.TP / (QUERY.TP + QUERY.FP)." ) 1908 protected DecimalType precision; 1909 1910 /** 1911 * TRUTH.TP / (TRUTH.TP + TRUTH.FN). 1912 */ 1913 @Child(name = "recall", type = {DecimalType.class}, order=13, min=0, max=1, modifier=false, summary=true) 1914 @Description(shortDefinition="Recall of comparison", formalDefinition="TRUTH.TP / (TRUTH.TP + TRUTH.FN)." ) 1915 protected DecimalType recall; 1916 1917 /** 1918 * Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 1919 */ 1920 @Child(name = "fScore", type = {DecimalType.class}, order=14, min=0, max=1, modifier=false, summary=true) 1921 @Description(shortDefinition="F-score", formalDefinition="Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall)." ) 1922 protected DecimalType fScore; 1923 1924 /** 1925 * Receiver Operator Characteristic (ROC) Curve to give sensitivity/specificity tradeoff. 1926 */ 1927 @Child(name = "roc", type = {}, order=15, min=0, max=1, modifier=false, summary=true) 1928 @Description(shortDefinition="Receiver Operator Characteristic (ROC) Curve", formalDefinition="Receiver Operator Characteristic (ROC) Curve to give sensitivity/specificity tradeoff." ) 1929 protected MolecularSequenceQualityRocComponent roc; 1930 1931 private static final long serialVersionUID = -811933526L; 1932 1933 /** 1934 * Constructor 1935 */ 1936 public MolecularSequenceQualityComponent() { 1937 super(); 1938 } 1939 1940 /** 1941 * Constructor 1942 */ 1943 public MolecularSequenceQualityComponent(Enumeration<QualityType> type) { 1944 super(); 1945 this.type = type; 1946 } 1947 1948 /** 1949 * @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 1950 */ 1951 public Enumeration<QualityType> getTypeElement() { 1952 if (this.type == null) 1953 if (Configuration.errorOnAutoCreate()) 1954 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.type"); 1955 else if (Configuration.doAutoCreate()) 1956 this.type = new Enumeration<QualityType>(new QualityTypeEnumFactory()); // bb 1957 return this.type; 1958 } 1959 1960 public boolean hasTypeElement() { 1961 return this.type != null && !this.type.isEmpty(); 1962 } 1963 1964 public boolean hasType() { 1965 return this.type != null && !this.type.isEmpty(); 1966 } 1967 1968 /** 1969 * @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 1970 */ 1971 public MolecularSequenceQualityComponent setTypeElement(Enumeration<QualityType> value) { 1972 this.type = value; 1973 return this; 1974 } 1975 1976 /** 1977 * @return INDEL / SNP / Undefined variant. 1978 */ 1979 public QualityType getType() { 1980 return this.type == null ? null : this.type.getValue(); 1981 } 1982 1983 /** 1984 * @param value INDEL / SNP / Undefined variant. 1985 */ 1986 public MolecularSequenceQualityComponent setType(QualityType value) { 1987 if (this.type == null) 1988 this.type = new Enumeration<QualityType>(new QualityTypeEnumFactory()); 1989 this.type.setValue(value); 1990 return this; 1991 } 1992 1993 /** 1994 * @return {@link #standardSequence} (Gold standard sequence used for comparing against.) 1995 */ 1996 public CodeableConcept getStandardSequence() { 1997 if (this.standardSequence == null) 1998 if (Configuration.errorOnAutoCreate()) 1999 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.standardSequence"); 2000 else if (Configuration.doAutoCreate()) 2001 this.standardSequence = new CodeableConcept(); // cc 2002 return this.standardSequence; 2003 } 2004 2005 public boolean hasStandardSequence() { 2006 return this.standardSequence != null && !this.standardSequence.isEmpty(); 2007 } 2008 2009 /** 2010 * @param value {@link #standardSequence} (Gold standard sequence used for comparing against.) 2011 */ 2012 public MolecularSequenceQualityComponent setStandardSequence(CodeableConcept value) { 2013 this.standardSequence = value; 2014 return this; 2015 } 2016 2017 /** 2018 * @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 2019 */ 2020 public IntegerType getStartElement() { 2021 if (this.start == null) 2022 if (Configuration.errorOnAutoCreate()) 2023 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.start"); 2024 else if (Configuration.doAutoCreate()) 2025 this.start = new IntegerType(); // bb 2026 return this.start; 2027 } 2028 2029 public boolean hasStartElement() { 2030 return this.start != null && !this.start.isEmpty(); 2031 } 2032 2033 public boolean hasStart() { 2034 return this.start != null && !this.start.isEmpty(); 2035 } 2036 2037 /** 2038 * @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 2039 */ 2040 public MolecularSequenceQualityComponent setStartElement(IntegerType value) { 2041 this.start = value; 2042 return this; 2043 } 2044 2045 /** 2046 * @return Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 2047 */ 2048 public int getStart() { 2049 return this.start == null || this.start.isEmpty() ? 0 : this.start.getValue(); 2050 } 2051 2052 /** 2053 * @param value Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 2054 */ 2055 public MolecularSequenceQualityComponent setStart(int value) { 2056 if (this.start == null) 2057 this.start = new IntegerType(); 2058 this.start.setValue(value); 2059 return this; 2060 } 2061 2062 /** 2063 * @return {@link #end} (End position of the sequence. If the coordinate system is 0-based then end 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 2064 */ 2065 public IntegerType getEndElement() { 2066 if (this.end == null) 2067 if (Configuration.errorOnAutoCreate()) 2068 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.end"); 2069 else if (Configuration.doAutoCreate()) 2070 this.end = new IntegerType(); // bb 2071 return this.end; 2072 } 2073 2074 public boolean hasEndElement() { 2075 return this.end != null && !this.end.isEmpty(); 2076 } 2077 2078 public boolean hasEnd() { 2079 return this.end != null && !this.end.isEmpty(); 2080 } 2081 2082 /** 2083 * @param value {@link #end} (End position of the sequence. If the coordinate system is 0-based then end 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 2084 */ 2085 public MolecularSequenceQualityComponent setEndElement(IntegerType value) { 2086 this.end = value; 2087 return this; 2088 } 2089 2090 /** 2091 * @return End position of the sequence. If the coordinate system is 0-based then end 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. 2092 */ 2093 public int getEnd() { 2094 return this.end == null || this.end.isEmpty() ? 0 : this.end.getValue(); 2095 } 2096 2097 /** 2098 * @param value End position of the sequence. If the coordinate system is 0-based then end 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. 2099 */ 2100 public MolecularSequenceQualityComponent setEnd(int value) { 2101 if (this.end == null) 2102 this.end = new IntegerType(); 2103 this.end.setValue(value); 2104 return this; 2105 } 2106 2107 /** 2108 * @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)).) 2109 */ 2110 public Quantity getScore() { 2111 if (this.score == null) 2112 if (Configuration.errorOnAutoCreate()) 2113 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.score"); 2114 else if (Configuration.doAutoCreate()) 2115 this.score = new Quantity(); // cc 2116 return this.score; 2117 } 2118 2119 public boolean hasScore() { 2120 return this.score != null && !this.score.isEmpty(); 2121 } 2122 2123 /** 2124 * @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)).) 2125 */ 2126 public MolecularSequenceQualityComponent setScore(Quantity value) { 2127 this.score = value; 2128 return this; 2129 } 2130 2131 /** 2132 * @return {@link #method} (Which method is used to get sequence quality.) 2133 */ 2134 public CodeableConcept getMethod() { 2135 if (this.method == null) 2136 if (Configuration.errorOnAutoCreate()) 2137 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.method"); 2138 else if (Configuration.doAutoCreate()) 2139 this.method = new CodeableConcept(); // cc 2140 return this.method; 2141 } 2142 2143 public boolean hasMethod() { 2144 return this.method != null && !this.method.isEmpty(); 2145 } 2146 2147 /** 2148 * @param value {@link #method} (Which method is used to get sequence quality.) 2149 */ 2150 public MolecularSequenceQualityComponent setMethod(CodeableConcept value) { 2151 this.method = value; 2152 return this; 2153 } 2154 2155 /** 2156 * @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 2157 */ 2158 public DecimalType getTruthTPElement() { 2159 if (this.truthTP == null) 2160 if (Configuration.errorOnAutoCreate()) 2161 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.truthTP"); 2162 else if (Configuration.doAutoCreate()) 2163 this.truthTP = new DecimalType(); // bb 2164 return this.truthTP; 2165 } 2166 2167 public boolean hasTruthTPElement() { 2168 return this.truthTP != null && !this.truthTP.isEmpty(); 2169 } 2170 2171 public boolean hasTruthTP() { 2172 return this.truthTP != null && !this.truthTP.isEmpty(); 2173 } 2174 2175 /** 2176 * @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 2177 */ 2178 public MolecularSequenceQualityComponent setTruthTPElement(DecimalType value) { 2179 this.truthTP = value; 2180 return this; 2181 } 2182 2183 /** 2184 * @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. 2185 */ 2186 public BigDecimal getTruthTP() { 2187 return this.truthTP == null ? null : this.truthTP.getValue(); 2188 } 2189 2190 /** 2191 * @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. 2192 */ 2193 public MolecularSequenceQualityComponent setTruthTP(BigDecimal value) { 2194 if (value == null) 2195 this.truthTP = null; 2196 else { 2197 if (this.truthTP == null) 2198 this.truthTP = new DecimalType(); 2199 this.truthTP.setValue(value); 2200 } 2201 return this; 2202 } 2203 2204 /** 2205 * @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. 2206 */ 2207 public MolecularSequenceQualityComponent setTruthTP(long value) { 2208 this.truthTP = new DecimalType(); 2209 this.truthTP.setValue(value); 2210 return this; 2211 } 2212 2213 /** 2214 * @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. 2215 */ 2216 public MolecularSequenceQualityComponent setTruthTP(double value) { 2217 this.truthTP = new DecimalType(); 2218 this.truthTP.setValue(value); 2219 return this; 2220 } 2221 2222 /** 2223 * @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 2224 */ 2225 public DecimalType getQueryTPElement() { 2226 if (this.queryTP == null) 2227 if (Configuration.errorOnAutoCreate()) 2228 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.queryTP"); 2229 else if (Configuration.doAutoCreate()) 2230 this.queryTP = new DecimalType(); // bb 2231 return this.queryTP; 2232 } 2233 2234 public boolean hasQueryTPElement() { 2235 return this.queryTP != null && !this.queryTP.isEmpty(); 2236 } 2237 2238 public boolean hasQueryTP() { 2239 return this.queryTP != null && !this.queryTP.isEmpty(); 2240 } 2241 2242 /** 2243 * @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 2244 */ 2245 public MolecularSequenceQualityComponent setQueryTPElement(DecimalType value) { 2246 this.queryTP = value; 2247 return this; 2248 } 2249 2250 /** 2251 * @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. 2252 */ 2253 public BigDecimal getQueryTP() { 2254 return this.queryTP == null ? null : this.queryTP.getValue(); 2255 } 2256 2257 /** 2258 * @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. 2259 */ 2260 public MolecularSequenceQualityComponent setQueryTP(BigDecimal value) { 2261 if (value == null) 2262 this.queryTP = null; 2263 else { 2264 if (this.queryTP == null) 2265 this.queryTP = new DecimalType(); 2266 this.queryTP.setValue(value); 2267 } 2268 return this; 2269 } 2270 2271 /** 2272 * @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. 2273 */ 2274 public MolecularSequenceQualityComponent setQueryTP(long value) { 2275 this.queryTP = new DecimalType(); 2276 this.queryTP.setValue(value); 2277 return this; 2278 } 2279 2280 /** 2281 * @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. 2282 */ 2283 public MolecularSequenceQualityComponent setQueryTP(double value) { 2284 this.queryTP = new DecimalType(); 2285 this.queryTP.setValue(value); 2286 return this; 2287 } 2288 2289 /** 2290 * @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 2291 */ 2292 public DecimalType getTruthFNElement() { 2293 if (this.truthFN == null) 2294 if (Configuration.errorOnAutoCreate()) 2295 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.truthFN"); 2296 else if (Configuration.doAutoCreate()) 2297 this.truthFN = new DecimalType(); // bb 2298 return this.truthFN; 2299 } 2300 2301 public boolean hasTruthFNElement() { 2302 return this.truthFN != null && !this.truthFN.isEmpty(); 2303 } 2304 2305 public boolean hasTruthFN() { 2306 return this.truthFN != null && !this.truthFN.isEmpty(); 2307 } 2308 2309 /** 2310 * @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 2311 */ 2312 public MolecularSequenceQualityComponent setTruthFNElement(DecimalType value) { 2313 this.truthFN = value; 2314 return this; 2315 } 2316 2317 /** 2318 * @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. 2319 */ 2320 public BigDecimal getTruthFN() { 2321 return this.truthFN == null ? null : this.truthFN.getValue(); 2322 } 2323 2324 /** 2325 * @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. 2326 */ 2327 public MolecularSequenceQualityComponent setTruthFN(BigDecimal value) { 2328 if (value == null) 2329 this.truthFN = null; 2330 else { 2331 if (this.truthFN == null) 2332 this.truthFN = new DecimalType(); 2333 this.truthFN.setValue(value); 2334 } 2335 return this; 2336 } 2337 2338 /** 2339 * @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. 2340 */ 2341 public MolecularSequenceQualityComponent setTruthFN(long value) { 2342 this.truthFN = new DecimalType(); 2343 this.truthFN.setValue(value); 2344 return this; 2345 } 2346 2347 /** 2348 * @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. 2349 */ 2350 public MolecularSequenceQualityComponent setTruthFN(double value) { 2351 this.truthFN = new DecimalType(); 2352 this.truthFN.setValue(value); 2353 return this; 2354 } 2355 2356 /** 2357 * @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 2358 */ 2359 public DecimalType getQueryFPElement() { 2360 if (this.queryFP == null) 2361 if (Configuration.errorOnAutoCreate()) 2362 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.queryFP"); 2363 else if (Configuration.doAutoCreate()) 2364 this.queryFP = new DecimalType(); // bb 2365 return this.queryFP; 2366 } 2367 2368 public boolean hasQueryFPElement() { 2369 return this.queryFP != null && !this.queryFP.isEmpty(); 2370 } 2371 2372 public boolean hasQueryFP() { 2373 return this.queryFP != null && !this.queryFP.isEmpty(); 2374 } 2375 2376 /** 2377 * @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 2378 */ 2379 public MolecularSequenceQualityComponent setQueryFPElement(DecimalType value) { 2380 this.queryFP = value; 2381 return this; 2382 } 2383 2384 /** 2385 * @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. 2386 */ 2387 public BigDecimal getQueryFP() { 2388 return this.queryFP == null ? null : this.queryFP.getValue(); 2389 } 2390 2391 /** 2392 * @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. 2393 */ 2394 public MolecularSequenceQualityComponent setQueryFP(BigDecimal value) { 2395 if (value == null) 2396 this.queryFP = null; 2397 else { 2398 if (this.queryFP == null) 2399 this.queryFP = new DecimalType(); 2400 this.queryFP.setValue(value); 2401 } 2402 return this; 2403 } 2404 2405 /** 2406 * @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. 2407 */ 2408 public MolecularSequenceQualityComponent setQueryFP(long value) { 2409 this.queryFP = new DecimalType(); 2410 this.queryFP.setValue(value); 2411 return this; 2412 } 2413 2414 /** 2415 * @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. 2416 */ 2417 public MolecularSequenceQualityComponent setQueryFP(double value) { 2418 this.queryFP = new DecimalType(); 2419 this.queryFP.setValue(value); 2420 return this; 2421 } 2422 2423 /** 2424 * @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 2425 */ 2426 public DecimalType getGtFPElement() { 2427 if (this.gtFP == null) 2428 if (Configuration.errorOnAutoCreate()) 2429 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.gtFP"); 2430 else if (Configuration.doAutoCreate()) 2431 this.gtFP = new DecimalType(); // bb 2432 return this.gtFP; 2433 } 2434 2435 public boolean hasGtFPElement() { 2436 return this.gtFP != null && !this.gtFP.isEmpty(); 2437 } 2438 2439 public boolean hasGtFP() { 2440 return this.gtFP != null && !this.gtFP.isEmpty(); 2441 } 2442 2443 /** 2444 * @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 2445 */ 2446 public MolecularSequenceQualityComponent setGtFPElement(DecimalType value) { 2447 this.gtFP = value; 2448 return this; 2449 } 2450 2451 /** 2452 * @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). 2453 */ 2454 public BigDecimal getGtFP() { 2455 return this.gtFP == null ? null : this.gtFP.getValue(); 2456 } 2457 2458 /** 2459 * @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). 2460 */ 2461 public MolecularSequenceQualityComponent setGtFP(BigDecimal value) { 2462 if (value == null) 2463 this.gtFP = null; 2464 else { 2465 if (this.gtFP == null) 2466 this.gtFP = new DecimalType(); 2467 this.gtFP.setValue(value); 2468 } 2469 return this; 2470 } 2471 2472 /** 2473 * @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). 2474 */ 2475 public MolecularSequenceQualityComponent setGtFP(long value) { 2476 this.gtFP = new DecimalType(); 2477 this.gtFP.setValue(value); 2478 return this; 2479 } 2480 2481 /** 2482 * @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). 2483 */ 2484 public MolecularSequenceQualityComponent setGtFP(double value) { 2485 this.gtFP = new DecimalType(); 2486 this.gtFP.setValue(value); 2487 return this; 2488 } 2489 2490 /** 2491 * @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 2492 */ 2493 public DecimalType getPrecisionElement() { 2494 if (this.precision == null) 2495 if (Configuration.errorOnAutoCreate()) 2496 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.precision"); 2497 else if (Configuration.doAutoCreate()) 2498 this.precision = new DecimalType(); // bb 2499 return this.precision; 2500 } 2501 2502 public boolean hasPrecisionElement() { 2503 return this.precision != null && !this.precision.isEmpty(); 2504 } 2505 2506 public boolean hasPrecision() { 2507 return this.precision != null && !this.precision.isEmpty(); 2508 } 2509 2510 /** 2511 * @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 2512 */ 2513 public MolecularSequenceQualityComponent setPrecisionElement(DecimalType value) { 2514 this.precision = value; 2515 return this; 2516 } 2517 2518 /** 2519 * @return QUERY.TP / (QUERY.TP + QUERY.FP). 2520 */ 2521 public BigDecimal getPrecision() { 2522 return this.precision == null ? null : this.precision.getValue(); 2523 } 2524 2525 /** 2526 * @param value QUERY.TP / (QUERY.TP + QUERY.FP). 2527 */ 2528 public MolecularSequenceQualityComponent setPrecision(BigDecimal value) { 2529 if (value == null) 2530 this.precision = null; 2531 else { 2532 if (this.precision == null) 2533 this.precision = new DecimalType(); 2534 this.precision.setValue(value); 2535 } 2536 return this; 2537 } 2538 2539 /** 2540 * @param value QUERY.TP / (QUERY.TP + QUERY.FP). 2541 */ 2542 public MolecularSequenceQualityComponent setPrecision(long value) { 2543 this.precision = new DecimalType(); 2544 this.precision.setValue(value); 2545 return this; 2546 } 2547 2548 /** 2549 * @param value QUERY.TP / (QUERY.TP + QUERY.FP). 2550 */ 2551 public MolecularSequenceQualityComponent setPrecision(double value) { 2552 this.precision = new DecimalType(); 2553 this.precision.setValue(value); 2554 return this; 2555 } 2556 2557 /** 2558 * @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 2559 */ 2560 public DecimalType getRecallElement() { 2561 if (this.recall == null) 2562 if (Configuration.errorOnAutoCreate()) 2563 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.recall"); 2564 else if (Configuration.doAutoCreate()) 2565 this.recall = new DecimalType(); // bb 2566 return this.recall; 2567 } 2568 2569 public boolean hasRecallElement() { 2570 return this.recall != null && !this.recall.isEmpty(); 2571 } 2572 2573 public boolean hasRecall() { 2574 return this.recall != null && !this.recall.isEmpty(); 2575 } 2576 2577 /** 2578 * @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 2579 */ 2580 public MolecularSequenceQualityComponent setRecallElement(DecimalType value) { 2581 this.recall = value; 2582 return this; 2583 } 2584 2585 /** 2586 * @return TRUTH.TP / (TRUTH.TP + TRUTH.FN). 2587 */ 2588 public BigDecimal getRecall() { 2589 return this.recall == null ? null : this.recall.getValue(); 2590 } 2591 2592 /** 2593 * @param value TRUTH.TP / (TRUTH.TP + TRUTH.FN). 2594 */ 2595 public MolecularSequenceQualityComponent setRecall(BigDecimal value) { 2596 if (value == null) 2597 this.recall = null; 2598 else { 2599 if (this.recall == null) 2600 this.recall = new DecimalType(); 2601 this.recall.setValue(value); 2602 } 2603 return this; 2604 } 2605 2606 /** 2607 * @param value TRUTH.TP / (TRUTH.TP + TRUTH.FN). 2608 */ 2609 public MolecularSequenceQualityComponent setRecall(long value) { 2610 this.recall = new DecimalType(); 2611 this.recall.setValue(value); 2612 return this; 2613 } 2614 2615 /** 2616 * @param value TRUTH.TP / (TRUTH.TP + TRUTH.FN). 2617 */ 2618 public MolecularSequenceQualityComponent setRecall(double value) { 2619 this.recall = new DecimalType(); 2620 this.recall.setValue(value); 2621 return this; 2622 } 2623 2624 /** 2625 * @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 2626 */ 2627 public DecimalType getFScoreElement() { 2628 if (this.fScore == null) 2629 if (Configuration.errorOnAutoCreate()) 2630 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.fScore"); 2631 else if (Configuration.doAutoCreate()) 2632 this.fScore = new DecimalType(); // bb 2633 return this.fScore; 2634 } 2635 2636 public boolean hasFScoreElement() { 2637 return this.fScore != null && !this.fScore.isEmpty(); 2638 } 2639 2640 public boolean hasFScore() { 2641 return this.fScore != null && !this.fScore.isEmpty(); 2642 } 2643 2644 /** 2645 * @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 2646 */ 2647 public MolecularSequenceQualityComponent setFScoreElement(DecimalType value) { 2648 this.fScore = value; 2649 return this; 2650 } 2651 2652 /** 2653 * @return Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 2654 */ 2655 public BigDecimal getFScore() { 2656 return this.fScore == null ? null : this.fScore.getValue(); 2657 } 2658 2659 /** 2660 * @param value Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 2661 */ 2662 public MolecularSequenceQualityComponent setFScore(BigDecimal value) { 2663 if (value == null) 2664 this.fScore = null; 2665 else { 2666 if (this.fScore == null) 2667 this.fScore = new DecimalType(); 2668 this.fScore.setValue(value); 2669 } 2670 return this; 2671 } 2672 2673 /** 2674 * @param value Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 2675 */ 2676 public MolecularSequenceQualityComponent setFScore(long value) { 2677 this.fScore = new DecimalType(); 2678 this.fScore.setValue(value); 2679 return this; 2680 } 2681 2682 /** 2683 * @param value Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall). 2684 */ 2685 public MolecularSequenceQualityComponent setFScore(double value) { 2686 this.fScore = new DecimalType(); 2687 this.fScore.setValue(value); 2688 return this; 2689 } 2690 2691 /** 2692 * @return {@link #roc} (Receiver Operator Characteristic (ROC) Curve to give sensitivity/specificity tradeoff.) 2693 */ 2694 public MolecularSequenceQualityRocComponent getRoc() { 2695 if (this.roc == null) 2696 if (Configuration.errorOnAutoCreate()) 2697 throw new Error("Attempt to auto-create MolecularSequenceQualityComponent.roc"); 2698 else if (Configuration.doAutoCreate()) 2699 this.roc = new MolecularSequenceQualityRocComponent(); // cc 2700 return this.roc; 2701 } 2702 2703 public boolean hasRoc() { 2704 return this.roc != null && !this.roc.isEmpty(); 2705 } 2706 2707 /** 2708 * @param value {@link #roc} (Receiver Operator Characteristic (ROC) Curve to give sensitivity/specificity tradeoff.) 2709 */ 2710 public MolecularSequenceQualityComponent setRoc(MolecularSequenceQualityRocComponent value) { 2711 this.roc = value; 2712 return this; 2713 } 2714 2715 protected void listChildren(List<Property> children) { 2716 super.listChildren(children); 2717 children.add(new Property("type", "code", "INDEL / SNP / Undefined variant.", 0, 1, type)); 2718 children.add(new Property("standardSequence", "CodeableConcept", "Gold standard sequence used for comparing against.", 0, 1, standardSequence)); 2719 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)); 2720 children.add(new Property("end", "integer", "End position of the sequence. If the coordinate system is 0-based then end 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)); 2721 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)); 2722 children.add(new Property("method", "CodeableConcept", "Which method is used to get sequence quality.", 0, 1, method)); 2723 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)); 2724 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)); 2725 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)); 2726 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)); 2727 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)); 2728 children.add(new Property("precision", "decimal", "QUERY.TP / (QUERY.TP + QUERY.FP).", 0, 1, precision)); 2729 children.add(new Property("recall", "decimal", "TRUTH.TP / (TRUTH.TP + TRUTH.FN).", 0, 1, recall)); 2730 children.add(new Property("fScore", "decimal", "Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall).", 0, 1, fScore)); 2731 children.add(new Property("roc", "", "Receiver Operator Characteristic (ROC) Curve to give sensitivity/specificity tradeoff.", 0, 1, roc)); 2732 } 2733 2734 @Override 2735 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2736 switch (_hash) { 2737 case 3575610: /*type*/ return new Property("type", "code", "INDEL / SNP / Undefined variant.", 0, 1, type); 2738 case -1861227106: /*standardSequence*/ return new Property("standardSequence", "CodeableConcept", "Gold standard sequence used for comparing against.", 0, 1, standardSequence); 2739 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); 2740 case 100571: /*end*/ return new Property("end", "integer", "End position of the sequence. If the coordinate system is 0-based then end 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); 2741 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); 2742 case -1077554975: /*method*/ return new Property("method", "CodeableConcept", "Which method is used to get sequence quality.", 0, 1, method); 2743 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); 2744 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); 2745 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); 2746 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); 2747 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); 2748 case -1376177026: /*precision*/ return new Property("precision", "decimal", "QUERY.TP / (QUERY.TP + QUERY.FP).", 0, 1, precision); 2749 case -934922479: /*recall*/ return new Property("recall", "decimal", "TRUTH.TP / (TRUTH.TP + TRUTH.FN).", 0, 1, recall); 2750 case -1295082036: /*fScore*/ return new Property("fScore", "decimal", "Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall).", 0, 1, fScore); 2751 case 113094: /*roc*/ return new Property("roc", "", "Receiver Operator Characteristic (ROC) Curve to give sensitivity/specificity tradeoff.", 0, 1, roc); 2752 default: return super.getNamedProperty(_hash, _name, _checkValid); 2753 } 2754 2755 } 2756 2757 @Override 2758 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2759 switch (hash) { 2760 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<QualityType> 2761 case -1861227106: /*standardSequence*/ return this.standardSequence == null ? new Base[0] : new Base[] {this.standardSequence}; // CodeableConcept 2762 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // IntegerType 2763 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // IntegerType 2764 case 109264530: /*score*/ return this.score == null ? new Base[0] : new Base[] {this.score}; // Quantity 2765 case -1077554975: /*method*/ return this.method == null ? new Base[0] : new Base[] {this.method}; // CodeableConcept 2766 case -1048421849: /*truthTP*/ return this.truthTP == null ? new Base[0] : new Base[] {this.truthTP}; // DecimalType 2767 case 655102276: /*queryTP*/ return this.queryTP == null ? new Base[0] : new Base[] {this.queryTP}; // DecimalType 2768 case -1048422285: /*truthFN*/ return this.truthFN == null ? new Base[0] : new Base[] {this.truthFN}; // DecimalType 2769 case 655101842: /*queryFP*/ return this.queryFP == null ? new Base[0] : new Base[] {this.queryFP}; // DecimalType 2770 case 3182199: /*gtFP*/ return this.gtFP == null ? new Base[0] : new Base[] {this.gtFP}; // DecimalType 2771 case -1376177026: /*precision*/ return this.precision == null ? new Base[0] : new Base[] {this.precision}; // DecimalType 2772 case -934922479: /*recall*/ return this.recall == null ? new Base[0] : new Base[] {this.recall}; // DecimalType 2773 case -1295082036: /*fScore*/ return this.fScore == null ? new Base[0] : new Base[] {this.fScore}; // DecimalType 2774 case 113094: /*roc*/ return this.roc == null ? new Base[0] : new Base[] {this.roc}; // MolecularSequenceQualityRocComponent 2775 default: return super.getProperty(hash, name, checkValid); 2776 } 2777 2778 } 2779 2780 @Override 2781 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2782 switch (hash) { 2783 case 3575610: // type 2784 value = new QualityTypeEnumFactory().fromType(castToCode(value)); 2785 this.type = (Enumeration) value; // Enumeration<QualityType> 2786 return value; 2787 case -1861227106: // standardSequence 2788 this.standardSequence = castToCodeableConcept(value); // CodeableConcept 2789 return value; 2790 case 109757538: // start 2791 this.start = castToInteger(value); // IntegerType 2792 return value; 2793 case 100571: // end 2794 this.end = castToInteger(value); // IntegerType 2795 return value; 2796 case 109264530: // score 2797 this.score = castToQuantity(value); // Quantity 2798 return value; 2799 case -1077554975: // method 2800 this.method = castToCodeableConcept(value); // CodeableConcept 2801 return value; 2802 case -1048421849: // truthTP 2803 this.truthTP = castToDecimal(value); // DecimalType 2804 return value; 2805 case 655102276: // queryTP 2806 this.queryTP = castToDecimal(value); // DecimalType 2807 return value; 2808 case -1048422285: // truthFN 2809 this.truthFN = castToDecimal(value); // DecimalType 2810 return value; 2811 case 655101842: // queryFP 2812 this.queryFP = castToDecimal(value); // DecimalType 2813 return value; 2814 case 3182199: // gtFP 2815 this.gtFP = castToDecimal(value); // DecimalType 2816 return value; 2817 case -1376177026: // precision 2818 this.precision = castToDecimal(value); // DecimalType 2819 return value; 2820 case -934922479: // recall 2821 this.recall = castToDecimal(value); // DecimalType 2822 return value; 2823 case -1295082036: // fScore 2824 this.fScore = castToDecimal(value); // DecimalType 2825 return value; 2826 case 113094: // roc 2827 this.roc = (MolecularSequenceQualityRocComponent) value; // MolecularSequenceQualityRocComponent 2828 return value; 2829 default: return super.setProperty(hash, name, value); 2830 } 2831 2832 } 2833 2834 @Override 2835 public Base setProperty(String name, Base value) throws FHIRException { 2836 if (name.equals("type")) { 2837 value = new QualityTypeEnumFactory().fromType(castToCode(value)); 2838 this.type = (Enumeration) value; // Enumeration<QualityType> 2839 } else if (name.equals("standardSequence")) { 2840 this.standardSequence = castToCodeableConcept(value); // CodeableConcept 2841 } else if (name.equals("start")) { 2842 this.start = castToInteger(value); // IntegerType 2843 } else if (name.equals("end")) { 2844 this.end = castToInteger(value); // IntegerType 2845 } else if (name.equals("score")) { 2846 this.score = castToQuantity(value); // Quantity 2847 } else if (name.equals("method")) { 2848 this.method = castToCodeableConcept(value); // CodeableConcept 2849 } else if (name.equals("truthTP")) { 2850 this.truthTP = castToDecimal(value); // DecimalType 2851 } else if (name.equals("queryTP")) { 2852 this.queryTP = castToDecimal(value); // DecimalType 2853 } else if (name.equals("truthFN")) { 2854 this.truthFN = castToDecimal(value); // DecimalType 2855 } else if (name.equals("queryFP")) { 2856 this.queryFP = castToDecimal(value); // DecimalType 2857 } else if (name.equals("gtFP")) { 2858 this.gtFP = castToDecimal(value); // DecimalType 2859 } else if (name.equals("precision")) { 2860 this.precision = castToDecimal(value); // DecimalType 2861 } else if (name.equals("recall")) { 2862 this.recall = castToDecimal(value); // DecimalType 2863 } else if (name.equals("fScore")) { 2864 this.fScore = castToDecimal(value); // DecimalType 2865 } else if (name.equals("roc")) { 2866 this.roc = (MolecularSequenceQualityRocComponent) value; // MolecularSequenceQualityRocComponent 2867 } else 2868 return super.setProperty(name, value); 2869 return value; 2870 } 2871 2872 @Override 2873 public Base makeProperty(int hash, String name) throws FHIRException { 2874 switch (hash) { 2875 case 3575610: return getTypeElement(); 2876 case -1861227106: return getStandardSequence(); 2877 case 109757538: return getStartElement(); 2878 case 100571: return getEndElement(); 2879 case 109264530: return getScore(); 2880 case -1077554975: return getMethod(); 2881 case -1048421849: return getTruthTPElement(); 2882 case 655102276: return getQueryTPElement(); 2883 case -1048422285: return getTruthFNElement(); 2884 case 655101842: return getQueryFPElement(); 2885 case 3182199: return getGtFPElement(); 2886 case -1376177026: return getPrecisionElement(); 2887 case -934922479: return getRecallElement(); 2888 case -1295082036: return getFScoreElement(); 2889 case 113094: return getRoc(); 2890 default: return super.makeProperty(hash, name); 2891 } 2892 2893 } 2894 2895 @Override 2896 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2897 switch (hash) { 2898 case 3575610: /*type*/ return new String[] {"code"}; 2899 case -1861227106: /*standardSequence*/ return new String[] {"CodeableConcept"}; 2900 case 109757538: /*start*/ return new String[] {"integer"}; 2901 case 100571: /*end*/ return new String[] {"integer"}; 2902 case 109264530: /*score*/ return new String[] {"Quantity"}; 2903 case -1077554975: /*method*/ return new String[] {"CodeableConcept"}; 2904 case -1048421849: /*truthTP*/ return new String[] {"decimal"}; 2905 case 655102276: /*queryTP*/ return new String[] {"decimal"}; 2906 case -1048422285: /*truthFN*/ return new String[] {"decimal"}; 2907 case 655101842: /*queryFP*/ return new String[] {"decimal"}; 2908 case 3182199: /*gtFP*/ return new String[] {"decimal"}; 2909 case -1376177026: /*precision*/ return new String[] {"decimal"}; 2910 case -934922479: /*recall*/ return new String[] {"decimal"}; 2911 case -1295082036: /*fScore*/ return new String[] {"decimal"}; 2912 case 113094: /*roc*/ return new String[] {}; 2913 default: return super.getTypesForProperty(hash, name); 2914 } 2915 2916 } 2917 2918 @Override 2919 public Base addChild(String name) throws FHIRException { 2920 if (name.equals("type")) { 2921 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.type"); 2922 } 2923 else if (name.equals("standardSequence")) { 2924 this.standardSequence = new CodeableConcept(); 2925 return this.standardSequence; 2926 } 2927 else if (name.equals("start")) { 2928 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.start"); 2929 } 2930 else if (name.equals("end")) { 2931 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.end"); 2932 } 2933 else if (name.equals("score")) { 2934 this.score = new Quantity(); 2935 return this.score; 2936 } 2937 else if (name.equals("method")) { 2938 this.method = new CodeableConcept(); 2939 return this.method; 2940 } 2941 else if (name.equals("truthTP")) { 2942 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.truthTP"); 2943 } 2944 else if (name.equals("queryTP")) { 2945 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.queryTP"); 2946 } 2947 else if (name.equals("truthFN")) { 2948 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.truthFN"); 2949 } 2950 else if (name.equals("queryFP")) { 2951 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.queryFP"); 2952 } 2953 else if (name.equals("gtFP")) { 2954 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.gtFP"); 2955 } 2956 else if (name.equals("precision")) { 2957 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.precision"); 2958 } 2959 else if (name.equals("recall")) { 2960 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.recall"); 2961 } 2962 else if (name.equals("fScore")) { 2963 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.fScore"); 2964 } 2965 else if (name.equals("roc")) { 2966 this.roc = new MolecularSequenceQualityRocComponent(); 2967 return this.roc; 2968 } 2969 else 2970 return super.addChild(name); 2971 } 2972 2973 public MolecularSequenceQualityComponent copy() { 2974 MolecularSequenceQualityComponent dst = new MolecularSequenceQualityComponent(); 2975 copyValues(dst); 2976 return dst; 2977 } 2978 2979 public void copyValues(MolecularSequenceQualityComponent dst) { 2980 super.copyValues(dst); 2981 dst.type = type == null ? null : type.copy(); 2982 dst.standardSequence = standardSequence == null ? null : standardSequence.copy(); 2983 dst.start = start == null ? null : start.copy(); 2984 dst.end = end == null ? null : end.copy(); 2985 dst.score = score == null ? null : score.copy(); 2986 dst.method = method == null ? null : method.copy(); 2987 dst.truthTP = truthTP == null ? null : truthTP.copy(); 2988 dst.queryTP = queryTP == null ? null : queryTP.copy(); 2989 dst.truthFN = truthFN == null ? null : truthFN.copy(); 2990 dst.queryFP = queryFP == null ? null : queryFP.copy(); 2991 dst.gtFP = gtFP == null ? null : gtFP.copy(); 2992 dst.precision = precision == null ? null : precision.copy(); 2993 dst.recall = recall == null ? null : recall.copy(); 2994 dst.fScore = fScore == null ? null : fScore.copy(); 2995 dst.roc = roc == null ? null : roc.copy(); 2996 } 2997 2998 @Override 2999 public boolean equalsDeep(Base other_) { 3000 if (!super.equalsDeep(other_)) 3001 return false; 3002 if (!(other_ instanceof MolecularSequenceQualityComponent)) 3003 return false; 3004 MolecularSequenceQualityComponent o = (MolecularSequenceQualityComponent) other_; 3005 return compareDeep(type, o.type, true) && compareDeep(standardSequence, o.standardSequence, true) 3006 && compareDeep(start, o.start, true) && compareDeep(end, o.end, true) && compareDeep(score, o.score, true) 3007 && compareDeep(method, o.method, true) && compareDeep(truthTP, o.truthTP, true) && compareDeep(queryTP, o.queryTP, true) 3008 && compareDeep(truthFN, o.truthFN, true) && compareDeep(queryFP, o.queryFP, true) && compareDeep(gtFP, o.gtFP, true) 3009 && compareDeep(precision, o.precision, true) && compareDeep(recall, o.recall, true) && compareDeep(fScore, o.fScore, true) 3010 && compareDeep(roc, o.roc, true); 3011 } 3012 3013 @Override 3014 public boolean equalsShallow(Base other_) { 3015 if (!super.equalsShallow(other_)) 3016 return false; 3017 if (!(other_ instanceof MolecularSequenceQualityComponent)) 3018 return false; 3019 MolecularSequenceQualityComponent o = (MolecularSequenceQualityComponent) other_; 3020 return compareValues(type, o.type, true) && compareValues(start, o.start, true) && compareValues(end, o.end, true) 3021 && compareValues(truthTP, o.truthTP, true) && compareValues(queryTP, o.queryTP, true) && compareValues(truthFN, o.truthFN, true) 3022 && compareValues(queryFP, o.queryFP, true) && compareValues(gtFP, o.gtFP, true) && compareValues(precision, o.precision, true) 3023 && compareValues(recall, o.recall, true) && compareValues(fScore, o.fScore, true); 3024 } 3025 3026 public boolean isEmpty() { 3027 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, standardSequence, start 3028 , end, score, method, truthTP, queryTP, truthFN, queryFP, gtFP, precision 3029 , recall, fScore, roc); 3030 } 3031 3032 public String fhirType() { 3033 return "MolecularSequence.quality"; 3034 3035 } 3036 3037 } 3038 3039 @Block() 3040 public static class MolecularSequenceQualityRocComponent extends BackboneElement implements IBaseBackboneElement { 3041 /** 3042 * Invidual data point representing the GQ (genotype quality) score threshold. 3043 */ 3044 @Child(name = "score", type = {IntegerType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3045 @Description(shortDefinition="Genotype quality score", formalDefinition="Invidual data point representing the GQ (genotype quality) score threshold." ) 3046 protected List<IntegerType> score; 3047 3048 /** 3049 * The number of true positives if the GQ score threshold was set to "score" field value. 3050 */ 3051 @Child(name = "numTP", type = {IntegerType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3052 @Description(shortDefinition="Roc score true positive numbers", formalDefinition="The number of true positives if the GQ score threshold was set to \"score\" field value." ) 3053 protected List<IntegerType> numTP; 3054 3055 /** 3056 * The number of false positives if the GQ score threshold was set to "score" field value. 3057 */ 3058 @Child(name = "numFP", type = {IntegerType.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3059 @Description(shortDefinition="Roc score false positive numbers", formalDefinition="The number of false positives if the GQ score threshold was set to \"score\" field value." ) 3060 protected List<IntegerType> numFP; 3061 3062 /** 3063 * The number of false negatives if the GQ score threshold was set to "score" field value. 3064 */ 3065 @Child(name = "numFN", type = {IntegerType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3066 @Description(shortDefinition="Roc score false negative numbers", formalDefinition="The number of false negatives if the GQ score threshold was set to \"score\" field value." ) 3067 protected List<IntegerType> numFN; 3068 3069 /** 3070 * Calculated precision if the GQ score threshold was set to "score" field value. 3071 */ 3072 @Child(name = "precision", type = {DecimalType.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3073 @Description(shortDefinition="Precision of the GQ score", formalDefinition="Calculated precision if the GQ score threshold was set to \"score\" field value." ) 3074 protected List<DecimalType> precision; 3075 3076 /** 3077 * Calculated sensitivity if the GQ score threshold was set to "score" field value. 3078 */ 3079 @Child(name = "sensitivity", type = {DecimalType.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3080 @Description(shortDefinition="Sensitivity of the GQ score", formalDefinition="Calculated sensitivity if the GQ score threshold was set to \"score\" field value." ) 3081 protected List<DecimalType> sensitivity; 3082 3083 /** 3084 * Calculated fScore if the GQ score threshold was set to "score" field value. 3085 */ 3086 @Child(name = "fMeasure", type = {DecimalType.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3087 @Description(shortDefinition="FScore of the GQ score", formalDefinition="Calculated fScore if the GQ score threshold was set to \"score\" field value." ) 3088 protected List<DecimalType> fMeasure; 3089 3090 private static final long serialVersionUID = 1923392132L; 3091 3092 /** 3093 * Constructor 3094 */ 3095 public MolecularSequenceQualityRocComponent() { 3096 super(); 3097 } 3098 3099 /** 3100 * @return {@link #score} (Invidual data point representing the GQ (genotype quality) score threshold.) 3101 */ 3102 public List<IntegerType> getScore() { 3103 if (this.score == null) 3104 this.score = new ArrayList<IntegerType>(); 3105 return this.score; 3106 } 3107 3108 /** 3109 * @return Returns a reference to <code>this</code> for easy method chaining 3110 */ 3111 public MolecularSequenceQualityRocComponent setScore(List<IntegerType> theScore) { 3112 this.score = theScore; 3113 return this; 3114 } 3115 3116 public boolean hasScore() { 3117 if (this.score == null) 3118 return false; 3119 for (IntegerType item : this.score) 3120 if (!item.isEmpty()) 3121 return true; 3122 return false; 3123 } 3124 3125 /** 3126 * @return {@link #score} (Invidual data point representing the GQ (genotype quality) score threshold.) 3127 */ 3128 public IntegerType addScoreElement() {//2 3129 IntegerType t = new IntegerType(); 3130 if (this.score == null) 3131 this.score = new ArrayList<IntegerType>(); 3132 this.score.add(t); 3133 return t; 3134 } 3135 3136 /** 3137 * @param value {@link #score} (Invidual data point representing the GQ (genotype quality) score threshold.) 3138 */ 3139 public MolecularSequenceQualityRocComponent addScore(int value) { //1 3140 IntegerType t = new IntegerType(); 3141 t.setValue(value); 3142 if (this.score == null) 3143 this.score = new ArrayList<IntegerType>(); 3144 this.score.add(t); 3145 return this; 3146 } 3147 3148 /** 3149 * @param value {@link #score} (Invidual data point representing the GQ (genotype quality) score threshold.) 3150 */ 3151 public boolean hasScore(int value) { 3152 if (this.score == null) 3153 return false; 3154 for (IntegerType v : this.score) 3155 if (v.getValue().equals(value)) // integer 3156 return true; 3157 return false; 3158 } 3159 3160 /** 3161 * @return {@link #numTP} (The number of true positives if the GQ score threshold was set to "score" field value.) 3162 */ 3163 public List<IntegerType> getNumTP() { 3164 if (this.numTP == null) 3165 this.numTP = new ArrayList<IntegerType>(); 3166 return this.numTP; 3167 } 3168 3169 /** 3170 * @return Returns a reference to <code>this</code> for easy method chaining 3171 */ 3172 public MolecularSequenceQualityRocComponent setNumTP(List<IntegerType> theNumTP) { 3173 this.numTP = theNumTP; 3174 return this; 3175 } 3176 3177 public boolean hasNumTP() { 3178 if (this.numTP == null) 3179 return false; 3180 for (IntegerType item : this.numTP) 3181 if (!item.isEmpty()) 3182 return true; 3183 return false; 3184 } 3185 3186 /** 3187 * @return {@link #numTP} (The number of true positives if the GQ score threshold was set to "score" field value.) 3188 */ 3189 public IntegerType addNumTPElement() {//2 3190 IntegerType t = new IntegerType(); 3191 if (this.numTP == null) 3192 this.numTP = new ArrayList<IntegerType>(); 3193 this.numTP.add(t); 3194 return t; 3195 } 3196 3197 /** 3198 * @param value {@link #numTP} (The number of true positives if the GQ score threshold was set to "score" field value.) 3199 */ 3200 public MolecularSequenceQualityRocComponent addNumTP(int value) { //1 3201 IntegerType t = new IntegerType(); 3202 t.setValue(value); 3203 if (this.numTP == null) 3204 this.numTP = new ArrayList<IntegerType>(); 3205 this.numTP.add(t); 3206 return this; 3207 } 3208 3209 /** 3210 * @param value {@link #numTP} (The number of true positives if the GQ score threshold was set to "score" field value.) 3211 */ 3212 public boolean hasNumTP(int value) { 3213 if (this.numTP == null) 3214 return false; 3215 for (IntegerType v : this.numTP) 3216 if (v.getValue().equals(value)) // integer 3217 return true; 3218 return false; 3219 } 3220 3221 /** 3222 * @return {@link #numFP} (The number of false positives if the GQ score threshold was set to "score" field value.) 3223 */ 3224 public List<IntegerType> getNumFP() { 3225 if (this.numFP == null) 3226 this.numFP = new ArrayList<IntegerType>(); 3227 return this.numFP; 3228 } 3229 3230 /** 3231 * @return Returns a reference to <code>this</code> for easy method chaining 3232 */ 3233 public MolecularSequenceQualityRocComponent setNumFP(List<IntegerType> theNumFP) { 3234 this.numFP = theNumFP; 3235 return this; 3236 } 3237 3238 public boolean hasNumFP() { 3239 if (this.numFP == null) 3240 return false; 3241 for (IntegerType item : this.numFP) 3242 if (!item.isEmpty()) 3243 return true; 3244 return false; 3245 } 3246 3247 /** 3248 * @return {@link #numFP} (The number of false positives if the GQ score threshold was set to "score" field value.) 3249 */ 3250 public IntegerType addNumFPElement() {//2 3251 IntegerType t = new IntegerType(); 3252 if (this.numFP == null) 3253 this.numFP = new ArrayList<IntegerType>(); 3254 this.numFP.add(t); 3255 return t; 3256 } 3257 3258 /** 3259 * @param value {@link #numFP} (The number of false positives if the GQ score threshold was set to "score" field value.) 3260 */ 3261 public MolecularSequenceQualityRocComponent addNumFP(int value) { //1 3262 IntegerType t = new IntegerType(); 3263 t.setValue(value); 3264 if (this.numFP == null) 3265 this.numFP = new ArrayList<IntegerType>(); 3266 this.numFP.add(t); 3267 return this; 3268 } 3269 3270 /** 3271 * @param value {@link #numFP} (The number of false positives if the GQ score threshold was set to "score" field value.) 3272 */ 3273 public boolean hasNumFP(int value) { 3274 if (this.numFP == null) 3275 return false; 3276 for (IntegerType v : this.numFP) 3277 if (v.getValue().equals(value)) // integer 3278 return true; 3279 return false; 3280 } 3281 3282 /** 3283 * @return {@link #numFN} (The number of false negatives if the GQ score threshold was set to "score" field value.) 3284 */ 3285 public List<IntegerType> getNumFN() { 3286 if (this.numFN == null) 3287 this.numFN = new ArrayList<IntegerType>(); 3288 return this.numFN; 3289 } 3290 3291 /** 3292 * @return Returns a reference to <code>this</code> for easy method chaining 3293 */ 3294 public MolecularSequenceQualityRocComponent setNumFN(List<IntegerType> theNumFN) { 3295 this.numFN = theNumFN; 3296 return this; 3297 } 3298 3299 public boolean hasNumFN() { 3300 if (this.numFN == null) 3301 return false; 3302 for (IntegerType item : this.numFN) 3303 if (!item.isEmpty()) 3304 return true; 3305 return false; 3306 } 3307 3308 /** 3309 * @return {@link #numFN} (The number of false negatives if the GQ score threshold was set to "score" field value.) 3310 */ 3311 public IntegerType addNumFNElement() {//2 3312 IntegerType t = new IntegerType(); 3313 if (this.numFN == null) 3314 this.numFN = new ArrayList<IntegerType>(); 3315 this.numFN.add(t); 3316 return t; 3317 } 3318 3319 /** 3320 * @param value {@link #numFN} (The number of false negatives if the GQ score threshold was set to "score" field value.) 3321 */ 3322 public MolecularSequenceQualityRocComponent addNumFN(int value) { //1 3323 IntegerType t = new IntegerType(); 3324 t.setValue(value); 3325 if (this.numFN == null) 3326 this.numFN = new ArrayList<IntegerType>(); 3327 this.numFN.add(t); 3328 return this; 3329 } 3330 3331 /** 3332 * @param value {@link #numFN} (The number of false negatives if the GQ score threshold was set to "score" field value.) 3333 */ 3334 public boolean hasNumFN(int value) { 3335 if (this.numFN == null) 3336 return false; 3337 for (IntegerType v : this.numFN) 3338 if (v.getValue().equals(value)) // integer 3339 return true; 3340 return false; 3341 } 3342 3343 /** 3344 * @return {@link #precision} (Calculated precision if the GQ score threshold was set to "score" field value.) 3345 */ 3346 public List<DecimalType> getPrecision() { 3347 if (this.precision == null) 3348 this.precision = new ArrayList<DecimalType>(); 3349 return this.precision; 3350 } 3351 3352 /** 3353 * @return Returns a reference to <code>this</code> for easy method chaining 3354 */ 3355 public MolecularSequenceQualityRocComponent setPrecision(List<DecimalType> thePrecision) { 3356 this.precision = thePrecision; 3357 return this; 3358 } 3359 3360 public boolean hasPrecision() { 3361 if (this.precision == null) 3362 return false; 3363 for (DecimalType item : this.precision) 3364 if (!item.isEmpty()) 3365 return true; 3366 return false; 3367 } 3368 3369 /** 3370 * @return {@link #precision} (Calculated precision if the GQ score threshold was set to "score" field value.) 3371 */ 3372 public DecimalType addPrecisionElement() {//2 3373 DecimalType t = new DecimalType(); 3374 if (this.precision == null) 3375 this.precision = new ArrayList<DecimalType>(); 3376 this.precision.add(t); 3377 return t; 3378 } 3379 3380 /** 3381 * @param value {@link #precision} (Calculated precision if the GQ score threshold was set to "score" field value.) 3382 */ 3383 public MolecularSequenceQualityRocComponent addPrecision(BigDecimal value) { //1 3384 DecimalType t = new DecimalType(); 3385 t.setValue(value); 3386 if (this.precision == null) 3387 this.precision = new ArrayList<DecimalType>(); 3388 this.precision.add(t); 3389 return this; 3390 } 3391 3392 /** 3393 * @param value {@link #precision} (Calculated precision if the GQ score threshold was set to "score" field value.) 3394 */ 3395 public boolean hasPrecision(BigDecimal value) { 3396 if (this.precision == null) 3397 return false; 3398 for (DecimalType v : this.precision) 3399 if (v.getValue().equals(value)) // decimal 3400 return true; 3401 return false; 3402 } 3403 3404 /** 3405 * @return {@link #sensitivity} (Calculated sensitivity if the GQ score threshold was set to "score" field value.) 3406 */ 3407 public List<DecimalType> getSensitivity() { 3408 if (this.sensitivity == null) 3409 this.sensitivity = new ArrayList<DecimalType>(); 3410 return this.sensitivity; 3411 } 3412 3413 /** 3414 * @return Returns a reference to <code>this</code> for easy method chaining 3415 */ 3416 public MolecularSequenceQualityRocComponent setSensitivity(List<DecimalType> theSensitivity) { 3417 this.sensitivity = theSensitivity; 3418 return this; 3419 } 3420 3421 public boolean hasSensitivity() { 3422 if (this.sensitivity == null) 3423 return false; 3424 for (DecimalType item : this.sensitivity) 3425 if (!item.isEmpty()) 3426 return true; 3427 return false; 3428 } 3429 3430 /** 3431 * @return {@link #sensitivity} (Calculated sensitivity if the GQ score threshold was set to "score" field value.) 3432 */ 3433 public DecimalType addSensitivityElement() {//2 3434 DecimalType t = new DecimalType(); 3435 if (this.sensitivity == null) 3436 this.sensitivity = new ArrayList<DecimalType>(); 3437 this.sensitivity.add(t); 3438 return t; 3439 } 3440 3441 /** 3442 * @param value {@link #sensitivity} (Calculated sensitivity if the GQ score threshold was set to "score" field value.) 3443 */ 3444 public MolecularSequenceQualityRocComponent addSensitivity(BigDecimal value) { //1 3445 DecimalType t = new DecimalType(); 3446 t.setValue(value); 3447 if (this.sensitivity == null) 3448 this.sensitivity = new ArrayList<DecimalType>(); 3449 this.sensitivity.add(t); 3450 return this; 3451 } 3452 3453 /** 3454 * @param value {@link #sensitivity} (Calculated sensitivity if the GQ score threshold was set to "score" field value.) 3455 */ 3456 public boolean hasSensitivity(BigDecimal value) { 3457 if (this.sensitivity == null) 3458 return false; 3459 for (DecimalType v : this.sensitivity) 3460 if (v.getValue().equals(value)) // decimal 3461 return true; 3462 return false; 3463 } 3464 3465 /** 3466 * @return {@link #fMeasure} (Calculated fScore if the GQ score threshold was set to "score" field value.) 3467 */ 3468 public List<DecimalType> getFMeasure() { 3469 if (this.fMeasure == null) 3470 this.fMeasure = new ArrayList<DecimalType>(); 3471 return this.fMeasure; 3472 } 3473 3474 /** 3475 * @return Returns a reference to <code>this</code> for easy method chaining 3476 */ 3477 public MolecularSequenceQualityRocComponent setFMeasure(List<DecimalType> theFMeasure) { 3478 this.fMeasure = theFMeasure; 3479 return this; 3480 } 3481 3482 public boolean hasFMeasure() { 3483 if (this.fMeasure == null) 3484 return false; 3485 for (DecimalType item : this.fMeasure) 3486 if (!item.isEmpty()) 3487 return true; 3488 return false; 3489 } 3490 3491 /** 3492 * @return {@link #fMeasure} (Calculated fScore if the GQ score threshold was set to "score" field value.) 3493 */ 3494 public DecimalType addFMeasureElement() {//2 3495 DecimalType t = new DecimalType(); 3496 if (this.fMeasure == null) 3497 this.fMeasure = new ArrayList<DecimalType>(); 3498 this.fMeasure.add(t); 3499 return t; 3500 } 3501 3502 /** 3503 * @param value {@link #fMeasure} (Calculated fScore if the GQ score threshold was set to "score" field value.) 3504 */ 3505 public MolecularSequenceQualityRocComponent addFMeasure(BigDecimal value) { //1 3506 DecimalType t = new DecimalType(); 3507 t.setValue(value); 3508 if (this.fMeasure == null) 3509 this.fMeasure = new ArrayList<DecimalType>(); 3510 this.fMeasure.add(t); 3511 return this; 3512 } 3513 3514 /** 3515 * @param value {@link #fMeasure} (Calculated fScore if the GQ score threshold was set to "score" field value.) 3516 */ 3517 public boolean hasFMeasure(BigDecimal value) { 3518 if (this.fMeasure == null) 3519 return false; 3520 for (DecimalType v : this.fMeasure) 3521 if (v.getValue().equals(value)) // decimal 3522 return true; 3523 return false; 3524 } 3525 3526 protected void listChildren(List<Property> children) { 3527 super.listChildren(children); 3528 children.add(new Property("score", "integer", "Invidual data point representing the GQ (genotype quality) score threshold.", 0, java.lang.Integer.MAX_VALUE, score)); 3529 children.add(new Property("numTP", "integer", "The number of true positives if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, numTP)); 3530 children.add(new Property("numFP", "integer", "The number of false positives if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, numFP)); 3531 children.add(new Property("numFN", "integer", "The number of false negatives if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, numFN)); 3532 children.add(new Property("precision", "decimal", "Calculated precision if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, precision)); 3533 children.add(new Property("sensitivity", "decimal", "Calculated sensitivity if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, sensitivity)); 3534 children.add(new Property("fMeasure", "decimal", "Calculated fScore if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, fMeasure)); 3535 } 3536 3537 @Override 3538 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3539 switch (_hash) { 3540 case 109264530: /*score*/ return new Property("score", "integer", "Invidual data point representing the GQ (genotype quality) score threshold.", 0, java.lang.Integer.MAX_VALUE, score); 3541 case 105180290: /*numTP*/ return new Property("numTP", "integer", "The number of true positives if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, numTP); 3542 case 105179856: /*numFP*/ return new Property("numFP", "integer", "The number of false positives if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, numFP); 3543 case 105179854: /*numFN*/ return new Property("numFN", "integer", "The number of false negatives if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, numFN); 3544 case -1376177026: /*precision*/ return new Property("precision", "decimal", "Calculated precision if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, precision); 3545 case 564403871: /*sensitivity*/ return new Property("sensitivity", "decimal", "Calculated sensitivity if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, sensitivity); 3546 case -18997736: /*fMeasure*/ return new Property("fMeasure", "decimal", "Calculated fScore if the GQ score threshold was set to \"score\" field value.", 0, java.lang.Integer.MAX_VALUE, fMeasure); 3547 default: return super.getNamedProperty(_hash, _name, _checkValid); 3548 } 3549 3550 } 3551 3552 @Override 3553 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3554 switch (hash) { 3555 case 109264530: /*score*/ return this.score == null ? new Base[0] : this.score.toArray(new Base[this.score.size()]); // IntegerType 3556 case 105180290: /*numTP*/ return this.numTP == null ? new Base[0] : this.numTP.toArray(new Base[this.numTP.size()]); // IntegerType 3557 case 105179856: /*numFP*/ return this.numFP == null ? new Base[0] : this.numFP.toArray(new Base[this.numFP.size()]); // IntegerType 3558 case 105179854: /*numFN*/ return this.numFN == null ? new Base[0] : this.numFN.toArray(new Base[this.numFN.size()]); // IntegerType 3559 case -1376177026: /*precision*/ return this.precision == null ? new Base[0] : this.precision.toArray(new Base[this.precision.size()]); // DecimalType 3560 case 564403871: /*sensitivity*/ return this.sensitivity == null ? new Base[0] : this.sensitivity.toArray(new Base[this.sensitivity.size()]); // DecimalType 3561 case -18997736: /*fMeasure*/ return this.fMeasure == null ? new Base[0] : this.fMeasure.toArray(new Base[this.fMeasure.size()]); // DecimalType 3562 default: return super.getProperty(hash, name, checkValid); 3563 } 3564 3565 } 3566 3567 @Override 3568 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3569 switch (hash) { 3570 case 109264530: // score 3571 this.getScore().add(castToInteger(value)); // IntegerType 3572 return value; 3573 case 105180290: // numTP 3574 this.getNumTP().add(castToInteger(value)); // IntegerType 3575 return value; 3576 case 105179856: // numFP 3577 this.getNumFP().add(castToInteger(value)); // IntegerType 3578 return value; 3579 case 105179854: // numFN 3580 this.getNumFN().add(castToInteger(value)); // IntegerType 3581 return value; 3582 case -1376177026: // precision 3583 this.getPrecision().add(castToDecimal(value)); // DecimalType 3584 return value; 3585 case 564403871: // sensitivity 3586 this.getSensitivity().add(castToDecimal(value)); // DecimalType 3587 return value; 3588 case -18997736: // fMeasure 3589 this.getFMeasure().add(castToDecimal(value)); // DecimalType 3590 return value; 3591 default: return super.setProperty(hash, name, value); 3592 } 3593 3594 } 3595 3596 @Override 3597 public Base setProperty(String name, Base value) throws FHIRException { 3598 if (name.equals("score")) { 3599 this.getScore().add(castToInteger(value)); 3600 } else if (name.equals("numTP")) { 3601 this.getNumTP().add(castToInteger(value)); 3602 } else if (name.equals("numFP")) { 3603 this.getNumFP().add(castToInteger(value)); 3604 } else if (name.equals("numFN")) { 3605 this.getNumFN().add(castToInteger(value)); 3606 } else if (name.equals("precision")) { 3607 this.getPrecision().add(castToDecimal(value)); 3608 } else if (name.equals("sensitivity")) { 3609 this.getSensitivity().add(castToDecimal(value)); 3610 } else if (name.equals("fMeasure")) { 3611 this.getFMeasure().add(castToDecimal(value)); 3612 } else 3613 return super.setProperty(name, value); 3614 return value; 3615 } 3616 3617 @Override 3618 public Base makeProperty(int hash, String name) throws FHIRException { 3619 switch (hash) { 3620 case 109264530: return addScoreElement(); 3621 case 105180290: return addNumTPElement(); 3622 case 105179856: return addNumFPElement(); 3623 case 105179854: return addNumFNElement(); 3624 case -1376177026: return addPrecisionElement(); 3625 case 564403871: return addSensitivityElement(); 3626 case -18997736: return addFMeasureElement(); 3627 default: return super.makeProperty(hash, name); 3628 } 3629 3630 } 3631 3632 @Override 3633 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3634 switch (hash) { 3635 case 109264530: /*score*/ return new String[] {"integer"}; 3636 case 105180290: /*numTP*/ return new String[] {"integer"}; 3637 case 105179856: /*numFP*/ return new String[] {"integer"}; 3638 case 105179854: /*numFN*/ return new String[] {"integer"}; 3639 case -1376177026: /*precision*/ return new String[] {"decimal"}; 3640 case 564403871: /*sensitivity*/ return new String[] {"decimal"}; 3641 case -18997736: /*fMeasure*/ return new String[] {"decimal"}; 3642 default: return super.getTypesForProperty(hash, name); 3643 } 3644 3645 } 3646 3647 @Override 3648 public Base addChild(String name) throws FHIRException { 3649 if (name.equals("score")) { 3650 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.score"); 3651 } 3652 else if (name.equals("numTP")) { 3653 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.numTP"); 3654 } 3655 else if (name.equals("numFP")) { 3656 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.numFP"); 3657 } 3658 else if (name.equals("numFN")) { 3659 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.numFN"); 3660 } 3661 else if (name.equals("precision")) { 3662 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.precision"); 3663 } 3664 else if (name.equals("sensitivity")) { 3665 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.sensitivity"); 3666 } 3667 else if (name.equals("fMeasure")) { 3668 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.fMeasure"); 3669 } 3670 else 3671 return super.addChild(name); 3672 } 3673 3674 public MolecularSequenceQualityRocComponent copy() { 3675 MolecularSequenceQualityRocComponent dst = new MolecularSequenceQualityRocComponent(); 3676 copyValues(dst); 3677 return dst; 3678 } 3679 3680 public void copyValues(MolecularSequenceQualityRocComponent dst) { 3681 super.copyValues(dst); 3682 if (score != null) { 3683 dst.score = new ArrayList<IntegerType>(); 3684 for (IntegerType i : score) 3685 dst.score.add(i.copy()); 3686 }; 3687 if (numTP != null) { 3688 dst.numTP = new ArrayList<IntegerType>(); 3689 for (IntegerType i : numTP) 3690 dst.numTP.add(i.copy()); 3691 }; 3692 if (numFP != null) { 3693 dst.numFP = new ArrayList<IntegerType>(); 3694 for (IntegerType i : numFP) 3695 dst.numFP.add(i.copy()); 3696 }; 3697 if (numFN != null) { 3698 dst.numFN = new ArrayList<IntegerType>(); 3699 for (IntegerType i : numFN) 3700 dst.numFN.add(i.copy()); 3701 }; 3702 if (precision != null) { 3703 dst.precision = new ArrayList<DecimalType>(); 3704 for (DecimalType i : precision) 3705 dst.precision.add(i.copy()); 3706 }; 3707 if (sensitivity != null) { 3708 dst.sensitivity = new ArrayList<DecimalType>(); 3709 for (DecimalType i : sensitivity) 3710 dst.sensitivity.add(i.copy()); 3711 }; 3712 if (fMeasure != null) { 3713 dst.fMeasure = new ArrayList<DecimalType>(); 3714 for (DecimalType i : fMeasure) 3715 dst.fMeasure.add(i.copy()); 3716 }; 3717 } 3718 3719 @Override 3720 public boolean equalsDeep(Base other_) { 3721 if (!super.equalsDeep(other_)) 3722 return false; 3723 if (!(other_ instanceof MolecularSequenceQualityRocComponent)) 3724 return false; 3725 MolecularSequenceQualityRocComponent o = (MolecularSequenceQualityRocComponent) other_; 3726 return compareDeep(score, o.score, true) && compareDeep(numTP, o.numTP, true) && compareDeep(numFP, o.numFP, true) 3727 && compareDeep(numFN, o.numFN, true) && compareDeep(precision, o.precision, true) && compareDeep(sensitivity, o.sensitivity, true) 3728 && compareDeep(fMeasure, o.fMeasure, true); 3729 } 3730 3731 @Override 3732 public boolean equalsShallow(Base other_) { 3733 if (!super.equalsShallow(other_)) 3734 return false; 3735 if (!(other_ instanceof MolecularSequenceQualityRocComponent)) 3736 return false; 3737 MolecularSequenceQualityRocComponent o = (MolecularSequenceQualityRocComponent) other_; 3738 return compareValues(score, o.score, true) && compareValues(numTP, o.numTP, true) && compareValues(numFP, o.numFP, true) 3739 && compareValues(numFN, o.numFN, true) && compareValues(precision, o.precision, true) && compareValues(sensitivity, o.sensitivity, true) 3740 && compareValues(fMeasure, o.fMeasure, true); 3741 } 3742 3743 public boolean isEmpty() { 3744 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(score, numTP, numFP, numFN 3745 , precision, sensitivity, fMeasure); 3746 } 3747 3748 public String fhirType() { 3749 return "MolecularSequence.quality.roc"; 3750 3751 } 3752 3753 } 3754 3755 @Block() 3756 public static class MolecularSequenceRepositoryComponent extends BackboneElement implements IBaseBackboneElement { 3757 /** 3758 * Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource. 3759 */ 3760 @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 3761 @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." ) 3762 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/repository-type") 3763 protected Enumeration<RepositoryType> type; 3764 3765 /** 3766 * URI of an external repository which contains further details about the genetics data. 3767 */ 3768 @Child(name = "url", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=true) 3769 @Description(shortDefinition="URI of the repository", formalDefinition="URI of an external repository which contains further details about the genetics data." ) 3770 protected UriType url; 3771 3772 /** 3773 * URI of an external repository which contains further details about the genetics data. 3774 */ 3775 @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true) 3776 @Description(shortDefinition="Repository's name", formalDefinition="URI of an external repository which contains further details about the genetics data." ) 3777 protected StringType name; 3778 3779 /** 3780 * 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. 3781 */ 3782 @Child(name = "datasetId", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 3783 @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." ) 3784 protected StringType datasetId; 3785 3786 /** 3787 * 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. 3788 */ 3789 @Child(name = "variantsetId", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true) 3790 @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." ) 3791 protected StringType variantsetId; 3792 3793 /** 3794 * Id of the read in this external repository. 3795 */ 3796 @Child(name = "readsetId", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=true) 3797 @Description(shortDefinition="Id of the read", formalDefinition="Id of the read in this external repository." ) 3798 protected StringType readsetId; 3799 3800 private static final long serialVersionUID = -899243265L; 3801 3802 /** 3803 * Constructor 3804 */ 3805 public MolecularSequenceRepositoryComponent() { 3806 super(); 3807 } 3808 3809 /** 3810 * Constructor 3811 */ 3812 public MolecularSequenceRepositoryComponent(Enumeration<RepositoryType> type) { 3813 super(); 3814 this.type = type; 3815 } 3816 3817 /** 3818 * @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 3819 */ 3820 public Enumeration<RepositoryType> getTypeElement() { 3821 if (this.type == null) 3822 if (Configuration.errorOnAutoCreate()) 3823 throw new Error("Attempt to auto-create MolecularSequenceRepositoryComponent.type"); 3824 else if (Configuration.doAutoCreate()) 3825 this.type = new Enumeration<RepositoryType>(new RepositoryTypeEnumFactory()); // bb 3826 return this.type; 3827 } 3828 3829 public boolean hasTypeElement() { 3830 return this.type != null && !this.type.isEmpty(); 3831 } 3832 3833 public boolean hasType() { 3834 return this.type != null && !this.type.isEmpty(); 3835 } 3836 3837 /** 3838 * @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 3839 */ 3840 public MolecularSequenceRepositoryComponent setTypeElement(Enumeration<RepositoryType> value) { 3841 this.type = value; 3842 return this; 3843 } 3844 3845 /** 3846 * @return Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource. 3847 */ 3848 public RepositoryType getType() { 3849 return this.type == null ? null : this.type.getValue(); 3850 } 3851 3852 /** 3853 * @param value Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource. 3854 */ 3855 public MolecularSequenceRepositoryComponent setType(RepositoryType value) { 3856 if (this.type == null) 3857 this.type = new Enumeration<RepositoryType>(new RepositoryTypeEnumFactory()); 3858 this.type.setValue(value); 3859 return this; 3860 } 3861 3862 /** 3863 * @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 3864 */ 3865 public UriType getUrlElement() { 3866 if (this.url == null) 3867 if (Configuration.errorOnAutoCreate()) 3868 throw new Error("Attempt to auto-create MolecularSequenceRepositoryComponent.url"); 3869 else if (Configuration.doAutoCreate()) 3870 this.url = new UriType(); // bb 3871 return this.url; 3872 } 3873 3874 public boolean hasUrlElement() { 3875 return this.url != null && !this.url.isEmpty(); 3876 } 3877 3878 public boolean hasUrl() { 3879 return this.url != null && !this.url.isEmpty(); 3880 } 3881 3882 /** 3883 * @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 3884 */ 3885 public MolecularSequenceRepositoryComponent setUrlElement(UriType value) { 3886 this.url = value; 3887 return this; 3888 } 3889 3890 /** 3891 * @return URI of an external repository which contains further details about the genetics data. 3892 */ 3893 public String getUrl() { 3894 return this.url == null ? null : this.url.getValue(); 3895 } 3896 3897 /** 3898 * @param value URI of an external repository which contains further details about the genetics data. 3899 */ 3900 public MolecularSequenceRepositoryComponent setUrl(String value) { 3901 if (Utilities.noString(value)) 3902 this.url = null; 3903 else { 3904 if (this.url == null) 3905 this.url = new UriType(); 3906 this.url.setValue(value); 3907 } 3908 return this; 3909 } 3910 3911 /** 3912 * @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 3913 */ 3914 public StringType getNameElement() { 3915 if (this.name == null) 3916 if (Configuration.errorOnAutoCreate()) 3917 throw new Error("Attempt to auto-create MolecularSequenceRepositoryComponent.name"); 3918 else if (Configuration.doAutoCreate()) 3919 this.name = new StringType(); // bb 3920 return this.name; 3921 } 3922 3923 public boolean hasNameElement() { 3924 return this.name != null && !this.name.isEmpty(); 3925 } 3926 3927 public boolean hasName() { 3928 return this.name != null && !this.name.isEmpty(); 3929 } 3930 3931 /** 3932 * @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 3933 */ 3934 public MolecularSequenceRepositoryComponent setNameElement(StringType value) { 3935 this.name = value; 3936 return this; 3937 } 3938 3939 /** 3940 * @return URI of an external repository which contains further details about the genetics data. 3941 */ 3942 public String getName() { 3943 return this.name == null ? null : this.name.getValue(); 3944 } 3945 3946 /** 3947 * @param value URI of an external repository which contains further details about the genetics data. 3948 */ 3949 public MolecularSequenceRepositoryComponent setName(String value) { 3950 if (Utilities.noString(value)) 3951 this.name = null; 3952 else { 3953 if (this.name == null) 3954 this.name = new StringType(); 3955 this.name.setValue(value); 3956 } 3957 return this; 3958 } 3959 3960 /** 3961 * @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 3962 */ 3963 public StringType getDatasetIdElement() { 3964 if (this.datasetId == null) 3965 if (Configuration.errorOnAutoCreate()) 3966 throw new Error("Attempt to auto-create MolecularSequenceRepositoryComponent.datasetId"); 3967 else if (Configuration.doAutoCreate()) 3968 this.datasetId = new StringType(); // bb 3969 return this.datasetId; 3970 } 3971 3972 public boolean hasDatasetIdElement() { 3973 return this.datasetId != null && !this.datasetId.isEmpty(); 3974 } 3975 3976 public boolean hasDatasetId() { 3977 return this.datasetId != null && !this.datasetId.isEmpty(); 3978 } 3979 3980 /** 3981 * @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 3982 */ 3983 public MolecularSequenceRepositoryComponent setDatasetIdElement(StringType value) { 3984 this.datasetId = value; 3985 return this; 3986 } 3987 3988 /** 3989 * @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. 3990 */ 3991 public String getDatasetId() { 3992 return this.datasetId == null ? null : this.datasetId.getValue(); 3993 } 3994 3995 /** 3996 * @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. 3997 */ 3998 public MolecularSequenceRepositoryComponent setDatasetId(String value) { 3999 if (Utilities.noString(value)) 4000 this.datasetId = null; 4001 else { 4002 if (this.datasetId == null) 4003 this.datasetId = new StringType(); 4004 this.datasetId.setValue(value); 4005 } 4006 return this; 4007 } 4008 4009 /** 4010 * @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 4011 */ 4012 public StringType getVariantsetIdElement() { 4013 if (this.variantsetId == null) 4014 if (Configuration.errorOnAutoCreate()) 4015 throw new Error("Attempt to auto-create MolecularSequenceRepositoryComponent.variantsetId"); 4016 else if (Configuration.doAutoCreate()) 4017 this.variantsetId = new StringType(); // bb 4018 return this.variantsetId; 4019 } 4020 4021 public boolean hasVariantsetIdElement() { 4022 return this.variantsetId != null && !this.variantsetId.isEmpty(); 4023 } 4024 4025 public boolean hasVariantsetId() { 4026 return this.variantsetId != null && !this.variantsetId.isEmpty(); 4027 } 4028 4029 /** 4030 * @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 4031 */ 4032 public MolecularSequenceRepositoryComponent setVariantsetIdElement(StringType value) { 4033 this.variantsetId = value; 4034 return this; 4035 } 4036 4037 /** 4038 * @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. 4039 */ 4040 public String getVariantsetId() { 4041 return this.variantsetId == null ? null : this.variantsetId.getValue(); 4042 } 4043 4044 /** 4045 * @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. 4046 */ 4047 public MolecularSequenceRepositoryComponent setVariantsetId(String value) { 4048 if (Utilities.noString(value)) 4049 this.variantsetId = null; 4050 else { 4051 if (this.variantsetId == null) 4052 this.variantsetId = new StringType(); 4053 this.variantsetId.setValue(value); 4054 } 4055 return this; 4056 } 4057 4058 /** 4059 * @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 4060 */ 4061 public StringType getReadsetIdElement() { 4062 if (this.readsetId == null) 4063 if (Configuration.errorOnAutoCreate()) 4064 throw new Error("Attempt to auto-create MolecularSequenceRepositoryComponent.readsetId"); 4065 else if (Configuration.doAutoCreate()) 4066 this.readsetId = new StringType(); // bb 4067 return this.readsetId; 4068 } 4069 4070 public boolean hasReadsetIdElement() { 4071 return this.readsetId != null && !this.readsetId.isEmpty(); 4072 } 4073 4074 public boolean hasReadsetId() { 4075 return this.readsetId != null && !this.readsetId.isEmpty(); 4076 } 4077 4078 /** 4079 * @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 4080 */ 4081 public MolecularSequenceRepositoryComponent setReadsetIdElement(StringType value) { 4082 this.readsetId = value; 4083 return this; 4084 } 4085 4086 /** 4087 * @return Id of the read in this external repository. 4088 */ 4089 public String getReadsetId() { 4090 return this.readsetId == null ? null : this.readsetId.getValue(); 4091 } 4092 4093 /** 4094 * @param value Id of the read in this external repository. 4095 */ 4096 public MolecularSequenceRepositoryComponent setReadsetId(String value) { 4097 if (Utilities.noString(value)) 4098 this.readsetId = null; 4099 else { 4100 if (this.readsetId == null) 4101 this.readsetId = new StringType(); 4102 this.readsetId.setValue(value); 4103 } 4104 return this; 4105 } 4106 4107 protected void listChildren(List<Property> children) { 4108 super.listChildren(children); 4109 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)); 4110 children.add(new Property("url", "uri", "URI of an external repository which contains further details about the genetics data.", 0, 1, url)); 4111 children.add(new Property("name", "string", "URI of an external repository which contains further details about the genetics data.", 0, 1, name)); 4112 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)); 4113 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)); 4114 children.add(new Property("readsetId", "string", "Id of the read in this external repository.", 0, 1, readsetId)); 4115 } 4116 4117 @Override 4118 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4119 switch (_hash) { 4120 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); 4121 case 116079: /*url*/ return new Property("url", "uri", "URI of an external repository which contains further details about the genetics data.", 0, 1, url); 4122 case 3373707: /*name*/ return new Property("name", "string", "URI of an external repository which contains further details about the genetics data.", 0, 1, name); 4123 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); 4124 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); 4125 case -1095407289: /*readsetId*/ return new Property("readsetId", "string", "Id of the read in this external repository.", 0, 1, readsetId); 4126 default: return super.getNamedProperty(_hash, _name, _checkValid); 4127 } 4128 4129 } 4130 4131 @Override 4132 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4133 switch (hash) { 4134 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<RepositoryType> 4135 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 4136 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 4137 case -345342029: /*datasetId*/ return this.datasetId == null ? new Base[0] : new Base[] {this.datasetId}; // StringType 4138 case 1929752504: /*variantsetId*/ return this.variantsetId == null ? new Base[0] : new Base[] {this.variantsetId}; // StringType 4139 case -1095407289: /*readsetId*/ return this.readsetId == null ? new Base[0] : new Base[] {this.readsetId}; // StringType 4140 default: return super.getProperty(hash, name, checkValid); 4141 } 4142 4143 } 4144 4145 @Override 4146 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4147 switch (hash) { 4148 case 3575610: // type 4149 value = new RepositoryTypeEnumFactory().fromType(castToCode(value)); 4150 this.type = (Enumeration) value; // Enumeration<RepositoryType> 4151 return value; 4152 case 116079: // url 4153 this.url = castToUri(value); // UriType 4154 return value; 4155 case 3373707: // name 4156 this.name = castToString(value); // StringType 4157 return value; 4158 case -345342029: // datasetId 4159 this.datasetId = castToString(value); // StringType 4160 return value; 4161 case 1929752504: // variantsetId 4162 this.variantsetId = castToString(value); // StringType 4163 return value; 4164 case -1095407289: // readsetId 4165 this.readsetId = castToString(value); // StringType 4166 return value; 4167 default: return super.setProperty(hash, name, value); 4168 } 4169 4170 } 4171 4172 @Override 4173 public Base setProperty(String name, Base value) throws FHIRException { 4174 if (name.equals("type")) { 4175 value = new RepositoryTypeEnumFactory().fromType(castToCode(value)); 4176 this.type = (Enumeration) value; // Enumeration<RepositoryType> 4177 } else if (name.equals("url")) { 4178 this.url = castToUri(value); // UriType 4179 } else if (name.equals("name")) { 4180 this.name = castToString(value); // StringType 4181 } else if (name.equals("datasetId")) { 4182 this.datasetId = castToString(value); // StringType 4183 } else if (name.equals("variantsetId")) { 4184 this.variantsetId = castToString(value); // StringType 4185 } else if (name.equals("readsetId")) { 4186 this.readsetId = castToString(value); // StringType 4187 } else 4188 return super.setProperty(name, value); 4189 return value; 4190 } 4191 4192 @Override 4193 public Base makeProperty(int hash, String name) throws FHIRException { 4194 switch (hash) { 4195 case 3575610: return getTypeElement(); 4196 case 116079: return getUrlElement(); 4197 case 3373707: return getNameElement(); 4198 case -345342029: return getDatasetIdElement(); 4199 case 1929752504: return getVariantsetIdElement(); 4200 case -1095407289: return getReadsetIdElement(); 4201 default: return super.makeProperty(hash, name); 4202 } 4203 4204 } 4205 4206 @Override 4207 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4208 switch (hash) { 4209 case 3575610: /*type*/ return new String[] {"code"}; 4210 case 116079: /*url*/ return new String[] {"uri"}; 4211 case 3373707: /*name*/ return new String[] {"string"}; 4212 case -345342029: /*datasetId*/ return new String[] {"string"}; 4213 case 1929752504: /*variantsetId*/ return new String[] {"string"}; 4214 case -1095407289: /*readsetId*/ return new String[] {"string"}; 4215 default: return super.getTypesForProperty(hash, name); 4216 } 4217 4218 } 4219 4220 @Override 4221 public Base addChild(String name) throws FHIRException { 4222 if (name.equals("type")) { 4223 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.type"); 4224 } 4225 else if (name.equals("url")) { 4226 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.url"); 4227 } 4228 else if (name.equals("name")) { 4229 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.name"); 4230 } 4231 else if (name.equals("datasetId")) { 4232 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.datasetId"); 4233 } 4234 else if (name.equals("variantsetId")) { 4235 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.variantsetId"); 4236 } 4237 else if (name.equals("readsetId")) { 4238 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.readsetId"); 4239 } 4240 else 4241 return super.addChild(name); 4242 } 4243 4244 public MolecularSequenceRepositoryComponent copy() { 4245 MolecularSequenceRepositoryComponent dst = new MolecularSequenceRepositoryComponent(); 4246 copyValues(dst); 4247 return dst; 4248 } 4249 4250 public void copyValues(MolecularSequenceRepositoryComponent dst) { 4251 super.copyValues(dst); 4252 dst.type = type == null ? null : type.copy(); 4253 dst.url = url == null ? null : url.copy(); 4254 dst.name = name == null ? null : name.copy(); 4255 dst.datasetId = datasetId == null ? null : datasetId.copy(); 4256 dst.variantsetId = variantsetId == null ? null : variantsetId.copy(); 4257 dst.readsetId = readsetId == null ? null : readsetId.copy(); 4258 } 4259 4260 @Override 4261 public boolean equalsDeep(Base other_) { 4262 if (!super.equalsDeep(other_)) 4263 return false; 4264 if (!(other_ instanceof MolecularSequenceRepositoryComponent)) 4265 return false; 4266 MolecularSequenceRepositoryComponent o = (MolecularSequenceRepositoryComponent) other_; 4267 return compareDeep(type, o.type, true) && compareDeep(url, o.url, true) && compareDeep(name, o.name, true) 4268 && compareDeep(datasetId, o.datasetId, true) && compareDeep(variantsetId, o.variantsetId, true) 4269 && compareDeep(readsetId, o.readsetId, true); 4270 } 4271 4272 @Override 4273 public boolean equalsShallow(Base other_) { 4274 if (!super.equalsShallow(other_)) 4275 return false; 4276 if (!(other_ instanceof MolecularSequenceRepositoryComponent)) 4277 return false; 4278 MolecularSequenceRepositoryComponent o = (MolecularSequenceRepositoryComponent) other_; 4279 return compareValues(type, o.type, true) && compareValues(url, o.url, true) && compareValues(name, o.name, true) 4280 && compareValues(datasetId, o.datasetId, true) && compareValues(variantsetId, o.variantsetId, true) 4281 && compareValues(readsetId, o.readsetId, true); 4282 } 4283 4284 public boolean isEmpty() { 4285 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, url, name, datasetId 4286 , variantsetId, readsetId); 4287 } 4288 4289 public String fhirType() { 4290 return "MolecularSequence.repository"; 4291 4292 } 4293 4294 } 4295 4296 @Block() 4297 public static class MolecularSequenceStructureVariantComponent extends BackboneElement implements IBaseBackboneElement { 4298 /** 4299 * Information about chromosome structure variation DNA change type. 4300 */ 4301 @Child(name = "variantType", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 4302 @Description(shortDefinition="Structural variant change type", formalDefinition="Information about chromosome structure variation DNA change type." ) 4303 protected CodeableConcept variantType; 4304 4305 /** 4306 * Used to indicate if the outer and inner start-end values have the same meaning. 4307 */ 4308 @Child(name = "exact", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=true) 4309 @Description(shortDefinition="Does the structural variant have base pair resolution breakpoints?", formalDefinition="Used to indicate if the outer and inner start-end values have the same meaning." ) 4310 protected BooleanType exact; 4311 4312 /** 4313 * Length of the variant chromosome. 4314 */ 4315 @Child(name = "length", type = {IntegerType.class}, order=3, min=0, max=1, modifier=false, summary=true) 4316 @Description(shortDefinition="Structural variant length", formalDefinition="Length of the variant chromosome." ) 4317 protected IntegerType length; 4318 4319 /** 4320 * Structural variant outer. 4321 */ 4322 @Child(name = "outer", type = {}, order=4, min=0, max=1, modifier=false, summary=true) 4323 @Description(shortDefinition="Structural variant outer", formalDefinition="Structural variant outer." ) 4324 protected MolecularSequenceStructureVariantOuterComponent outer; 4325 4326 /** 4327 * Structural variant inner. 4328 */ 4329 @Child(name = "inner", type = {}, order=5, min=0, max=1, modifier=false, summary=true) 4330 @Description(shortDefinition="Structural variant inner", formalDefinition="Structural variant inner." ) 4331 protected MolecularSequenceStructureVariantInnerComponent inner; 4332 4333 private static final long serialVersionUID = -1943515207L; 4334 4335 /** 4336 * Constructor 4337 */ 4338 public MolecularSequenceStructureVariantComponent() { 4339 super(); 4340 } 4341 4342 /** 4343 * @return {@link #variantType} (Information about chromosome structure variation DNA change type.) 4344 */ 4345 public CodeableConcept getVariantType() { 4346 if (this.variantType == null) 4347 if (Configuration.errorOnAutoCreate()) 4348 throw new Error("Attempt to auto-create MolecularSequenceStructureVariantComponent.variantType"); 4349 else if (Configuration.doAutoCreate()) 4350 this.variantType = new CodeableConcept(); // cc 4351 return this.variantType; 4352 } 4353 4354 public boolean hasVariantType() { 4355 return this.variantType != null && !this.variantType.isEmpty(); 4356 } 4357 4358 /** 4359 * @param value {@link #variantType} (Information about chromosome structure variation DNA change type.) 4360 */ 4361 public MolecularSequenceStructureVariantComponent setVariantType(CodeableConcept value) { 4362 this.variantType = value; 4363 return this; 4364 } 4365 4366 /** 4367 * @return {@link #exact} (Used to indicate if the outer and inner start-end values have the same meaning.). This is the underlying object with id, value and extensions. The accessor "getExact" gives direct access to the value 4368 */ 4369 public BooleanType getExactElement() { 4370 if (this.exact == null) 4371 if (Configuration.errorOnAutoCreate()) 4372 throw new Error("Attempt to auto-create MolecularSequenceStructureVariantComponent.exact"); 4373 else if (Configuration.doAutoCreate()) 4374 this.exact = new BooleanType(); // bb 4375 return this.exact; 4376 } 4377 4378 public boolean hasExactElement() { 4379 return this.exact != null && !this.exact.isEmpty(); 4380 } 4381 4382 public boolean hasExact() { 4383 return this.exact != null && !this.exact.isEmpty(); 4384 } 4385 4386 /** 4387 * @param value {@link #exact} (Used to indicate if the outer and inner start-end values have the same meaning.). This is the underlying object with id, value and extensions. The accessor "getExact" gives direct access to the value 4388 */ 4389 public MolecularSequenceStructureVariantComponent setExactElement(BooleanType value) { 4390 this.exact = value; 4391 return this; 4392 } 4393 4394 /** 4395 * @return Used to indicate if the outer and inner start-end values have the same meaning. 4396 */ 4397 public boolean getExact() { 4398 return this.exact == null || this.exact.isEmpty() ? false : this.exact.getValue(); 4399 } 4400 4401 /** 4402 * @param value Used to indicate if the outer and inner start-end values have the same meaning. 4403 */ 4404 public MolecularSequenceStructureVariantComponent setExact(boolean value) { 4405 if (this.exact == null) 4406 this.exact = new BooleanType(); 4407 this.exact.setValue(value); 4408 return this; 4409 } 4410 4411 /** 4412 * @return {@link #length} (Length of the variant chromosome.). This is the underlying object with id, value and extensions. The accessor "getLength" gives direct access to the value 4413 */ 4414 public IntegerType getLengthElement() { 4415 if (this.length == null) 4416 if (Configuration.errorOnAutoCreate()) 4417 throw new Error("Attempt to auto-create MolecularSequenceStructureVariantComponent.length"); 4418 else if (Configuration.doAutoCreate()) 4419 this.length = new IntegerType(); // bb 4420 return this.length; 4421 } 4422 4423 public boolean hasLengthElement() { 4424 return this.length != null && !this.length.isEmpty(); 4425 } 4426 4427 public boolean hasLength() { 4428 return this.length != null && !this.length.isEmpty(); 4429 } 4430 4431 /** 4432 * @param value {@link #length} (Length of the variant chromosome.). This is the underlying object with id, value and extensions. The accessor "getLength" gives direct access to the value 4433 */ 4434 public MolecularSequenceStructureVariantComponent setLengthElement(IntegerType value) { 4435 this.length = value; 4436 return this; 4437 } 4438 4439 /** 4440 * @return Length of the variant chromosome. 4441 */ 4442 public int getLength() { 4443 return this.length == null || this.length.isEmpty() ? 0 : this.length.getValue(); 4444 } 4445 4446 /** 4447 * @param value Length of the variant chromosome. 4448 */ 4449 public MolecularSequenceStructureVariantComponent setLength(int value) { 4450 if (this.length == null) 4451 this.length = new IntegerType(); 4452 this.length.setValue(value); 4453 return this; 4454 } 4455 4456 /** 4457 * @return {@link #outer} (Structural variant outer.) 4458 */ 4459 public MolecularSequenceStructureVariantOuterComponent getOuter() { 4460 if (this.outer == null) 4461 if (Configuration.errorOnAutoCreate()) 4462 throw new Error("Attempt to auto-create MolecularSequenceStructureVariantComponent.outer"); 4463 else if (Configuration.doAutoCreate()) 4464 this.outer = new MolecularSequenceStructureVariantOuterComponent(); // cc 4465 return this.outer; 4466 } 4467 4468 public boolean hasOuter() { 4469 return this.outer != null && !this.outer.isEmpty(); 4470 } 4471 4472 /** 4473 * @param value {@link #outer} (Structural variant outer.) 4474 */ 4475 public MolecularSequenceStructureVariantComponent setOuter(MolecularSequenceStructureVariantOuterComponent value) { 4476 this.outer = value; 4477 return this; 4478 } 4479 4480 /** 4481 * @return {@link #inner} (Structural variant inner.) 4482 */ 4483 public MolecularSequenceStructureVariantInnerComponent getInner() { 4484 if (this.inner == null) 4485 if (Configuration.errorOnAutoCreate()) 4486 throw new Error("Attempt to auto-create MolecularSequenceStructureVariantComponent.inner"); 4487 else if (Configuration.doAutoCreate()) 4488 this.inner = new MolecularSequenceStructureVariantInnerComponent(); // cc 4489 return this.inner; 4490 } 4491 4492 public boolean hasInner() { 4493 return this.inner != null && !this.inner.isEmpty(); 4494 } 4495 4496 /** 4497 * @param value {@link #inner} (Structural variant inner.) 4498 */ 4499 public MolecularSequenceStructureVariantComponent setInner(MolecularSequenceStructureVariantInnerComponent value) { 4500 this.inner = value; 4501 return this; 4502 } 4503 4504 protected void listChildren(List<Property> children) { 4505 super.listChildren(children); 4506 children.add(new Property("variantType", "CodeableConcept", "Information about chromosome structure variation DNA change type.", 0, 1, variantType)); 4507 children.add(new Property("exact", "boolean", "Used to indicate if the outer and inner start-end values have the same meaning.", 0, 1, exact)); 4508 children.add(new Property("length", "integer", "Length of the variant chromosome.", 0, 1, length)); 4509 children.add(new Property("outer", "", "Structural variant outer.", 0, 1, outer)); 4510 children.add(new Property("inner", "", "Structural variant inner.", 0, 1, inner)); 4511 } 4512 4513 @Override 4514 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4515 switch (_hash) { 4516 case -1601222305: /*variantType*/ return new Property("variantType", "CodeableConcept", "Information about chromosome structure variation DNA change type.", 0, 1, variantType); 4517 case 96946943: /*exact*/ return new Property("exact", "boolean", "Used to indicate if the outer and inner start-end values have the same meaning.", 0, 1, exact); 4518 case -1106363674: /*length*/ return new Property("length", "integer", "Length of the variant chromosome.", 0, 1, length); 4519 case 106111099: /*outer*/ return new Property("outer", "", "Structural variant outer.", 0, 1, outer); 4520 case 100355670: /*inner*/ return new Property("inner", "", "Structural variant inner.", 0, 1, inner); 4521 default: return super.getNamedProperty(_hash, _name, _checkValid); 4522 } 4523 4524 } 4525 4526 @Override 4527 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4528 switch (hash) { 4529 case -1601222305: /*variantType*/ return this.variantType == null ? new Base[0] : new Base[] {this.variantType}; // CodeableConcept 4530 case 96946943: /*exact*/ return this.exact == null ? new Base[0] : new Base[] {this.exact}; // BooleanType 4531 case -1106363674: /*length*/ return this.length == null ? new Base[0] : new Base[] {this.length}; // IntegerType 4532 case 106111099: /*outer*/ return this.outer == null ? new Base[0] : new Base[] {this.outer}; // MolecularSequenceStructureVariantOuterComponent 4533 case 100355670: /*inner*/ return this.inner == null ? new Base[0] : new Base[] {this.inner}; // MolecularSequenceStructureVariantInnerComponent 4534 default: return super.getProperty(hash, name, checkValid); 4535 } 4536 4537 } 4538 4539 @Override 4540 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4541 switch (hash) { 4542 case -1601222305: // variantType 4543 this.variantType = castToCodeableConcept(value); // CodeableConcept 4544 return value; 4545 case 96946943: // exact 4546 this.exact = castToBoolean(value); // BooleanType 4547 return value; 4548 case -1106363674: // length 4549 this.length = castToInteger(value); // IntegerType 4550 return value; 4551 case 106111099: // outer 4552 this.outer = (MolecularSequenceStructureVariantOuterComponent) value; // MolecularSequenceStructureVariantOuterComponent 4553 return value; 4554 case 100355670: // inner 4555 this.inner = (MolecularSequenceStructureVariantInnerComponent) value; // MolecularSequenceStructureVariantInnerComponent 4556 return value; 4557 default: return super.setProperty(hash, name, value); 4558 } 4559 4560 } 4561 4562 @Override 4563 public Base setProperty(String name, Base value) throws FHIRException { 4564 if (name.equals("variantType")) { 4565 this.variantType = castToCodeableConcept(value); // CodeableConcept 4566 } else if (name.equals("exact")) { 4567 this.exact = castToBoolean(value); // BooleanType 4568 } else if (name.equals("length")) { 4569 this.length = castToInteger(value); // IntegerType 4570 } else if (name.equals("outer")) { 4571 this.outer = (MolecularSequenceStructureVariantOuterComponent) value; // MolecularSequenceStructureVariantOuterComponent 4572 } else if (name.equals("inner")) { 4573 this.inner = (MolecularSequenceStructureVariantInnerComponent) value; // MolecularSequenceStructureVariantInnerComponent 4574 } else 4575 return super.setProperty(name, value); 4576 return value; 4577 } 4578 4579 @Override 4580 public Base makeProperty(int hash, String name) throws FHIRException { 4581 switch (hash) { 4582 case -1601222305: return getVariantType(); 4583 case 96946943: return getExactElement(); 4584 case -1106363674: return getLengthElement(); 4585 case 106111099: return getOuter(); 4586 case 100355670: return getInner(); 4587 default: return super.makeProperty(hash, name); 4588 } 4589 4590 } 4591 4592 @Override 4593 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4594 switch (hash) { 4595 case -1601222305: /*variantType*/ return new String[] {"CodeableConcept"}; 4596 case 96946943: /*exact*/ return new String[] {"boolean"}; 4597 case -1106363674: /*length*/ return new String[] {"integer"}; 4598 case 106111099: /*outer*/ return new String[] {}; 4599 case 100355670: /*inner*/ return new String[] {}; 4600 default: return super.getTypesForProperty(hash, name); 4601 } 4602 4603 } 4604 4605 @Override 4606 public Base addChild(String name) throws FHIRException { 4607 if (name.equals("variantType")) { 4608 this.variantType = new CodeableConcept(); 4609 return this.variantType; 4610 } 4611 else if (name.equals("exact")) { 4612 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.exact"); 4613 } 4614 else if (name.equals("length")) { 4615 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.length"); 4616 } 4617 else if (name.equals("outer")) { 4618 this.outer = new MolecularSequenceStructureVariantOuterComponent(); 4619 return this.outer; 4620 } 4621 else if (name.equals("inner")) { 4622 this.inner = new MolecularSequenceStructureVariantInnerComponent(); 4623 return this.inner; 4624 } 4625 else 4626 return super.addChild(name); 4627 } 4628 4629 public MolecularSequenceStructureVariantComponent copy() { 4630 MolecularSequenceStructureVariantComponent dst = new MolecularSequenceStructureVariantComponent(); 4631 copyValues(dst); 4632 return dst; 4633 } 4634 4635 public void copyValues(MolecularSequenceStructureVariantComponent dst) { 4636 super.copyValues(dst); 4637 dst.variantType = variantType == null ? null : variantType.copy(); 4638 dst.exact = exact == null ? null : exact.copy(); 4639 dst.length = length == null ? null : length.copy(); 4640 dst.outer = outer == null ? null : outer.copy(); 4641 dst.inner = inner == null ? null : inner.copy(); 4642 } 4643 4644 @Override 4645 public boolean equalsDeep(Base other_) { 4646 if (!super.equalsDeep(other_)) 4647 return false; 4648 if (!(other_ instanceof MolecularSequenceStructureVariantComponent)) 4649 return false; 4650 MolecularSequenceStructureVariantComponent o = (MolecularSequenceStructureVariantComponent) other_; 4651 return compareDeep(variantType, o.variantType, true) && compareDeep(exact, o.exact, true) && compareDeep(length, o.length, true) 4652 && compareDeep(outer, o.outer, true) && compareDeep(inner, o.inner, true); 4653 } 4654 4655 @Override 4656 public boolean equalsShallow(Base other_) { 4657 if (!super.equalsShallow(other_)) 4658 return false; 4659 if (!(other_ instanceof MolecularSequenceStructureVariantComponent)) 4660 return false; 4661 MolecularSequenceStructureVariantComponent o = (MolecularSequenceStructureVariantComponent) other_; 4662 return compareValues(exact, o.exact, true) && compareValues(length, o.length, true); 4663 } 4664 4665 public boolean isEmpty() { 4666 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(variantType, exact, length 4667 , outer, inner); 4668 } 4669 4670 public String fhirType() { 4671 return "MolecularSequence.structureVariant"; 4672 4673 } 4674 4675 } 4676 4677 @Block() 4678 public static class MolecularSequenceStructureVariantOuterComponent extends BackboneElement implements IBaseBackboneElement { 4679 /** 4680 * Structural variant outer start. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 4681 */ 4682 @Child(name = "start", type = {IntegerType.class}, order=1, min=0, max=1, modifier=false, summary=true) 4683 @Description(shortDefinition="Structural variant outer start", formalDefinition="Structural variant outer start. If the coordinate system is either 0-based or 1-based, then start position is inclusive." ) 4684 protected IntegerType start; 4685 4686 /** 4687 * Structural variant outer end. If the coordinate system is 0-based then end 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. 4688 */ 4689 @Child(name = "end", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=true) 4690 @Description(shortDefinition="Structural variant outer end", formalDefinition="Structural variant outer end. If the coordinate system is 0-based then end 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." ) 4691 protected IntegerType end; 4692 4693 private static final long serialVersionUID = -1798864889L; 4694 4695 /** 4696 * Constructor 4697 */ 4698 public MolecularSequenceStructureVariantOuterComponent() { 4699 super(); 4700 } 4701 4702 /** 4703 * @return {@link #start} (Structural variant outer start. 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 4704 */ 4705 public IntegerType getStartElement() { 4706 if (this.start == null) 4707 if (Configuration.errorOnAutoCreate()) 4708 throw new Error("Attempt to auto-create MolecularSequenceStructureVariantOuterComponent.start"); 4709 else if (Configuration.doAutoCreate()) 4710 this.start = new IntegerType(); // bb 4711 return this.start; 4712 } 4713 4714 public boolean hasStartElement() { 4715 return this.start != null && !this.start.isEmpty(); 4716 } 4717 4718 public boolean hasStart() { 4719 return this.start != null && !this.start.isEmpty(); 4720 } 4721 4722 /** 4723 * @param value {@link #start} (Structural variant outer start. 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 4724 */ 4725 public MolecularSequenceStructureVariantOuterComponent setStartElement(IntegerType value) { 4726 this.start = value; 4727 return this; 4728 } 4729 4730 /** 4731 * @return Structural variant outer start. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 4732 */ 4733 public int getStart() { 4734 return this.start == null || this.start.isEmpty() ? 0 : this.start.getValue(); 4735 } 4736 4737 /** 4738 * @param value Structural variant outer start. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 4739 */ 4740 public MolecularSequenceStructureVariantOuterComponent setStart(int value) { 4741 if (this.start == null) 4742 this.start = new IntegerType(); 4743 this.start.setValue(value); 4744 return this; 4745 } 4746 4747 /** 4748 * @return {@link #end} (Structural variant outer end. If the coordinate system is 0-based then end 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 4749 */ 4750 public IntegerType getEndElement() { 4751 if (this.end == null) 4752 if (Configuration.errorOnAutoCreate()) 4753 throw new Error("Attempt to auto-create MolecularSequenceStructureVariantOuterComponent.end"); 4754 else if (Configuration.doAutoCreate()) 4755 this.end = new IntegerType(); // bb 4756 return this.end; 4757 } 4758 4759 public boolean hasEndElement() { 4760 return this.end != null && !this.end.isEmpty(); 4761 } 4762 4763 public boolean hasEnd() { 4764 return this.end != null && !this.end.isEmpty(); 4765 } 4766 4767 /** 4768 * @param value {@link #end} (Structural variant outer end. If the coordinate system is 0-based then end 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 4769 */ 4770 public MolecularSequenceStructureVariantOuterComponent setEndElement(IntegerType value) { 4771 this.end = value; 4772 return this; 4773 } 4774 4775 /** 4776 * @return Structural variant outer end. If the coordinate system is 0-based then end 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. 4777 */ 4778 public int getEnd() { 4779 return this.end == null || this.end.isEmpty() ? 0 : this.end.getValue(); 4780 } 4781 4782 /** 4783 * @param value Structural variant outer end. If the coordinate system is 0-based then end 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. 4784 */ 4785 public MolecularSequenceStructureVariantOuterComponent setEnd(int value) { 4786 if (this.end == null) 4787 this.end = new IntegerType(); 4788 this.end.setValue(value); 4789 return this; 4790 } 4791 4792 protected void listChildren(List<Property> children) { 4793 super.listChildren(children); 4794 children.add(new Property("start", "integer", "Structural variant outer start. If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, start)); 4795 children.add(new Property("end", "integer", "Structural variant outer end. If the coordinate system is 0-based then end 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)); 4796 } 4797 4798 @Override 4799 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4800 switch (_hash) { 4801 case 109757538: /*start*/ return new Property("start", "integer", "Structural variant outer start. If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, start); 4802 case 100571: /*end*/ return new Property("end", "integer", "Structural variant outer end. If the coordinate system is 0-based then end 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); 4803 default: return super.getNamedProperty(_hash, _name, _checkValid); 4804 } 4805 4806 } 4807 4808 @Override 4809 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4810 switch (hash) { 4811 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // IntegerType 4812 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // IntegerType 4813 default: return super.getProperty(hash, name, checkValid); 4814 } 4815 4816 } 4817 4818 @Override 4819 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4820 switch (hash) { 4821 case 109757538: // start 4822 this.start = castToInteger(value); // IntegerType 4823 return value; 4824 case 100571: // end 4825 this.end = castToInteger(value); // IntegerType 4826 return value; 4827 default: return super.setProperty(hash, name, value); 4828 } 4829 4830 } 4831 4832 @Override 4833 public Base setProperty(String name, Base value) throws FHIRException { 4834 if (name.equals("start")) { 4835 this.start = castToInteger(value); // IntegerType 4836 } else if (name.equals("end")) { 4837 this.end = castToInteger(value); // IntegerType 4838 } else 4839 return super.setProperty(name, value); 4840 return value; 4841 } 4842 4843 @Override 4844 public Base makeProperty(int hash, String name) throws FHIRException { 4845 switch (hash) { 4846 case 109757538: return getStartElement(); 4847 case 100571: return getEndElement(); 4848 default: return super.makeProperty(hash, name); 4849 } 4850 4851 } 4852 4853 @Override 4854 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4855 switch (hash) { 4856 case 109757538: /*start*/ return new String[] {"integer"}; 4857 case 100571: /*end*/ return new String[] {"integer"}; 4858 default: return super.getTypesForProperty(hash, name); 4859 } 4860 4861 } 4862 4863 @Override 4864 public Base addChild(String name) throws FHIRException { 4865 if (name.equals("start")) { 4866 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.start"); 4867 } 4868 else if (name.equals("end")) { 4869 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.end"); 4870 } 4871 else 4872 return super.addChild(name); 4873 } 4874 4875 public MolecularSequenceStructureVariantOuterComponent copy() { 4876 MolecularSequenceStructureVariantOuterComponent dst = new MolecularSequenceStructureVariantOuterComponent(); 4877 copyValues(dst); 4878 return dst; 4879 } 4880 4881 public void copyValues(MolecularSequenceStructureVariantOuterComponent dst) { 4882 super.copyValues(dst); 4883 dst.start = start == null ? null : start.copy(); 4884 dst.end = end == null ? null : end.copy(); 4885 } 4886 4887 @Override 4888 public boolean equalsDeep(Base other_) { 4889 if (!super.equalsDeep(other_)) 4890 return false; 4891 if (!(other_ instanceof MolecularSequenceStructureVariantOuterComponent)) 4892 return false; 4893 MolecularSequenceStructureVariantOuterComponent o = (MolecularSequenceStructureVariantOuterComponent) other_; 4894 return compareDeep(start, o.start, true) && compareDeep(end, o.end, true); 4895 } 4896 4897 @Override 4898 public boolean equalsShallow(Base other_) { 4899 if (!super.equalsShallow(other_)) 4900 return false; 4901 if (!(other_ instanceof MolecularSequenceStructureVariantOuterComponent)) 4902 return false; 4903 MolecularSequenceStructureVariantOuterComponent o = (MolecularSequenceStructureVariantOuterComponent) other_; 4904 return compareValues(start, o.start, true) && compareValues(end, o.end, true); 4905 } 4906 4907 public boolean isEmpty() { 4908 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(start, end); 4909 } 4910 4911 public String fhirType() { 4912 return "MolecularSequence.structureVariant.outer"; 4913 4914 } 4915 4916 } 4917 4918 @Block() 4919 public static class MolecularSequenceStructureVariantInnerComponent extends BackboneElement implements IBaseBackboneElement { 4920 /** 4921 * Structural variant inner start. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 4922 */ 4923 @Child(name = "start", type = {IntegerType.class}, order=1, min=0, max=1, modifier=false, summary=true) 4924 @Description(shortDefinition="Structural variant inner start", formalDefinition="Structural variant inner start. If the coordinate system is either 0-based or 1-based, then start position is inclusive." ) 4925 protected IntegerType start; 4926 4927 /** 4928 * Structural variant inner end. If the coordinate system is 0-based then end 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. 4929 */ 4930 @Child(name = "end", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=true) 4931 @Description(shortDefinition="Structural variant inner end", formalDefinition="Structural variant inner end. If the coordinate system is 0-based then end 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." ) 4932 protected IntegerType end; 4933 4934 private static final long serialVersionUID = -1798864889L; 4935 4936 /** 4937 * Constructor 4938 */ 4939 public MolecularSequenceStructureVariantInnerComponent() { 4940 super(); 4941 } 4942 4943 /** 4944 * @return {@link #start} (Structural variant inner start. 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 4945 */ 4946 public IntegerType getStartElement() { 4947 if (this.start == null) 4948 if (Configuration.errorOnAutoCreate()) 4949 throw new Error("Attempt to auto-create MolecularSequenceStructureVariantInnerComponent.start"); 4950 else if (Configuration.doAutoCreate()) 4951 this.start = new IntegerType(); // bb 4952 return this.start; 4953 } 4954 4955 public boolean hasStartElement() { 4956 return this.start != null && !this.start.isEmpty(); 4957 } 4958 4959 public boolean hasStart() { 4960 return this.start != null && !this.start.isEmpty(); 4961 } 4962 4963 /** 4964 * @param value {@link #start} (Structural variant inner start. 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 4965 */ 4966 public MolecularSequenceStructureVariantInnerComponent setStartElement(IntegerType value) { 4967 this.start = value; 4968 return this; 4969 } 4970 4971 /** 4972 * @return Structural variant inner start. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 4973 */ 4974 public int getStart() { 4975 return this.start == null || this.start.isEmpty() ? 0 : this.start.getValue(); 4976 } 4977 4978 /** 4979 * @param value Structural variant inner start. If the coordinate system is either 0-based or 1-based, then start position is inclusive. 4980 */ 4981 public MolecularSequenceStructureVariantInnerComponent setStart(int value) { 4982 if (this.start == null) 4983 this.start = new IntegerType(); 4984 this.start.setValue(value); 4985 return this; 4986 } 4987 4988 /** 4989 * @return {@link #end} (Structural variant inner end. If the coordinate system is 0-based then end 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 4990 */ 4991 public IntegerType getEndElement() { 4992 if (this.end == null) 4993 if (Configuration.errorOnAutoCreate()) 4994 throw new Error("Attempt to auto-create MolecularSequenceStructureVariantInnerComponent.end"); 4995 else if (Configuration.doAutoCreate()) 4996 this.end = new IntegerType(); // bb 4997 return this.end; 4998 } 4999 5000 public boolean hasEndElement() { 5001 return this.end != null && !this.end.isEmpty(); 5002 } 5003 5004 public boolean hasEnd() { 5005 return this.end != null && !this.end.isEmpty(); 5006 } 5007 5008 /** 5009 * @param value {@link #end} (Structural variant inner end. If the coordinate system is 0-based then end 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 5010 */ 5011 public MolecularSequenceStructureVariantInnerComponent setEndElement(IntegerType value) { 5012 this.end = value; 5013 return this; 5014 } 5015 5016 /** 5017 * @return Structural variant inner end. If the coordinate system is 0-based then end 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. 5018 */ 5019 public int getEnd() { 5020 return this.end == null || this.end.isEmpty() ? 0 : this.end.getValue(); 5021 } 5022 5023 /** 5024 * @param value Structural variant inner end. If the coordinate system is 0-based then end 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. 5025 */ 5026 public MolecularSequenceStructureVariantInnerComponent setEnd(int value) { 5027 if (this.end == null) 5028 this.end = new IntegerType(); 5029 this.end.setValue(value); 5030 return this; 5031 } 5032 5033 protected void listChildren(List<Property> children) { 5034 super.listChildren(children); 5035 children.add(new Property("start", "integer", "Structural variant inner start. If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, start)); 5036 children.add(new Property("end", "integer", "Structural variant inner end. If the coordinate system is 0-based then end 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)); 5037 } 5038 5039 @Override 5040 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 5041 switch (_hash) { 5042 case 109757538: /*start*/ return new Property("start", "integer", "Structural variant inner start. If the coordinate system is either 0-based or 1-based, then start position is inclusive.", 0, 1, start); 5043 case 100571: /*end*/ return new Property("end", "integer", "Structural variant inner end. If the coordinate system is 0-based then end 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); 5044 default: return super.getNamedProperty(_hash, _name, _checkValid); 5045 } 5046 5047 } 5048 5049 @Override 5050 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 5051 switch (hash) { 5052 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // IntegerType 5053 case 100571: /*end*/ return this.end == null ? new Base[0] : new Base[] {this.end}; // IntegerType 5054 default: return super.getProperty(hash, name, checkValid); 5055 } 5056 5057 } 5058 5059 @Override 5060 public Base setProperty(int hash, String name, Base value) throws FHIRException { 5061 switch (hash) { 5062 case 109757538: // start 5063 this.start = castToInteger(value); // IntegerType 5064 return value; 5065 case 100571: // end 5066 this.end = castToInteger(value); // IntegerType 5067 return value; 5068 default: return super.setProperty(hash, name, value); 5069 } 5070 5071 } 5072 5073 @Override 5074 public Base setProperty(String name, Base value) throws FHIRException { 5075 if (name.equals("start")) { 5076 this.start = castToInteger(value); // IntegerType 5077 } else if (name.equals("end")) { 5078 this.end = castToInteger(value); // IntegerType 5079 } else 5080 return super.setProperty(name, value); 5081 return value; 5082 } 5083 5084 @Override 5085 public Base makeProperty(int hash, String name) throws FHIRException { 5086 switch (hash) { 5087 case 109757538: return getStartElement(); 5088 case 100571: return getEndElement(); 5089 default: return super.makeProperty(hash, name); 5090 } 5091 5092 } 5093 5094 @Override 5095 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 5096 switch (hash) { 5097 case 109757538: /*start*/ return new String[] {"integer"}; 5098 case 100571: /*end*/ return new String[] {"integer"}; 5099 default: return super.getTypesForProperty(hash, name); 5100 } 5101 5102 } 5103 5104 @Override 5105 public Base addChild(String name) throws FHIRException { 5106 if (name.equals("start")) { 5107 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.start"); 5108 } 5109 else if (name.equals("end")) { 5110 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.end"); 5111 } 5112 else 5113 return super.addChild(name); 5114 } 5115 5116 public MolecularSequenceStructureVariantInnerComponent copy() { 5117 MolecularSequenceStructureVariantInnerComponent dst = new MolecularSequenceStructureVariantInnerComponent(); 5118 copyValues(dst); 5119 return dst; 5120 } 5121 5122 public void copyValues(MolecularSequenceStructureVariantInnerComponent dst) { 5123 super.copyValues(dst); 5124 dst.start = start == null ? null : start.copy(); 5125 dst.end = end == null ? null : end.copy(); 5126 } 5127 5128 @Override 5129 public boolean equalsDeep(Base other_) { 5130 if (!super.equalsDeep(other_)) 5131 return false; 5132 if (!(other_ instanceof MolecularSequenceStructureVariantInnerComponent)) 5133 return false; 5134 MolecularSequenceStructureVariantInnerComponent o = (MolecularSequenceStructureVariantInnerComponent) other_; 5135 return compareDeep(start, o.start, true) && compareDeep(end, o.end, true); 5136 } 5137 5138 @Override 5139 public boolean equalsShallow(Base other_) { 5140 if (!super.equalsShallow(other_)) 5141 return false; 5142 if (!(other_ instanceof MolecularSequenceStructureVariantInnerComponent)) 5143 return false; 5144 MolecularSequenceStructureVariantInnerComponent o = (MolecularSequenceStructureVariantInnerComponent) other_; 5145 return compareValues(start, o.start, true) && compareValues(end, o.end, true); 5146 } 5147 5148 public boolean isEmpty() { 5149 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(start, end); 5150 } 5151 5152 public String fhirType() { 5153 return "MolecularSequence.structureVariant.inner"; 5154 5155 } 5156 5157 } 5158 5159 /** 5160 * A unique identifier for this particular sequence instance. This is a FHIR-defined id. 5161 */ 5162 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 5163 @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." ) 5164 protected List<Identifier> identifier; 5165 5166 /** 5167 * Amino Acid Sequence/ DNA Sequence / RNA Sequence. 5168 */ 5169 @Child(name = "type", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=true) 5170 @Description(shortDefinition="aa | dna | rna", formalDefinition="Amino Acid Sequence/ DNA Sequence / RNA Sequence." ) 5171 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/sequence-type") 5172 protected Enumeration<SequenceType> type; 5173 5174 /** 5175 * 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). 5176 */ 5177 @Child(name = "coordinateSystem", type = {IntegerType.class}, order=2, min=1, max=1, modifier=false, summary=true) 5178 @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)." ) 5179 protected IntegerType coordinateSystem; 5180 5181 /** 5182 * The patient whose sequencing results are described by this resource. 5183 */ 5184 @Child(name = "patient", type = {Patient.class}, order=3, min=0, max=1, modifier=false, summary=true) 5185 @Description(shortDefinition="Who and/or what this is about", formalDefinition="The patient whose sequencing results are described by this resource." ) 5186 protected Reference patient; 5187 5188 /** 5189 * The actual object that is the target of the reference (The patient whose sequencing results are described by this resource.) 5190 */ 5191 protected Patient patientTarget; 5192 5193 /** 5194 * Specimen used for sequencing. 5195 */ 5196 @Child(name = "specimen", type = {Specimen.class}, order=4, min=0, max=1, modifier=false, summary=true) 5197 @Description(shortDefinition="Specimen used for sequencing", formalDefinition="Specimen used for sequencing." ) 5198 protected Reference specimen; 5199 5200 /** 5201 * The actual object that is the target of the reference (Specimen used for sequencing.) 5202 */ 5203 protected Specimen specimenTarget; 5204 5205 /** 5206 * The method for sequencing, for example, chip information. 5207 */ 5208 @Child(name = "device", type = {Device.class}, order=5, min=0, max=1, modifier=false, summary=true) 5209 @Description(shortDefinition="The method for sequencing", formalDefinition="The method for sequencing, for example, chip information." ) 5210 protected Reference device; 5211 5212 /** 5213 * The actual object that is the target of the reference (The method for sequencing, for example, chip information.) 5214 */ 5215 protected Device deviceTarget; 5216 5217 /** 5218 * The organization or lab that should be responsible for this result. 5219 */ 5220 @Child(name = "performer", type = {Organization.class}, order=6, min=0, max=1, modifier=false, summary=true) 5221 @Description(shortDefinition="Who should be responsible for test result", formalDefinition="The organization or lab that should be responsible for this result." ) 5222 protected Reference performer; 5223 5224 /** 5225 * The actual object that is the target of the reference (The organization or lab that should be responsible for this result.) 5226 */ 5227 protected Organization performerTarget; 5228 5229 /** 5230 * The number of copies of the sequence of interest. (RNASeq). 5231 */ 5232 @Child(name = "quantity", type = {Quantity.class}, order=7, min=0, max=1, modifier=false, summary=true) 5233 @Description(shortDefinition="The number of copies of the sequence of interest. (RNASeq)", formalDefinition="The number of copies of the sequence of interest. (RNASeq)." ) 5234 protected Quantity quantity; 5235 5236 /** 5237 * A sequence that is used as a reference to describe variants that are present in a sequence analyzed. 5238 */ 5239 @Child(name = "referenceSeq", type = {}, order=8, min=0, max=1, modifier=false, summary=true) 5240 @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." ) 5241 protected MolecularSequenceReferenceSeqComponent referenceSeq; 5242 5243 /** 5244 * 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. 5245 */ 5246 @Child(name = "variant", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 5247 @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." ) 5248 protected List<MolecularSequenceVariantComponent> variant; 5249 5250 /** 5251 * Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall start from referenceSeq.windowStart and end by referenceSeq.windowEnd. 5252 */ 5253 @Child(name = "observedSeq", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=true) 5254 @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 start from referenceSeq.windowStart and end by referenceSeq.windowEnd." ) 5255 protected StringType observedSeq; 5256 5257 /** 5258 * 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)). 5259 */ 5260 @Child(name = "quality", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 5261 @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))." ) 5262 protected List<MolecularSequenceQualityComponent> quality; 5263 5264 /** 5265 * Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence. 5266 */ 5267 @Child(name = "readCoverage", type = {IntegerType.class}, order=12, min=0, max=1, modifier=false, summary=true) 5268 @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." ) 5269 protected IntegerType readCoverage; 5270 5271 /** 5272 * Configurations of the external repository. The repository shall store target's observedSeq or records related with target's observedSeq. 5273 */ 5274 @Child(name = "repository", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 5275 @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." ) 5276 protected List<MolecularSequenceRepositoryComponent> repository; 5277 5278 /** 5279 * Pointer to next atomic sequence which at most contains one variant. 5280 */ 5281 @Child(name = "pointer", type = {MolecularSequence.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 5282 @Description(shortDefinition="Pointer to next atomic sequence", formalDefinition="Pointer to next atomic sequence which at most contains one variant." ) 5283 protected List<Reference> pointer; 5284 /** 5285 * The actual objects that are the target of the reference (Pointer to next atomic sequence which at most contains one variant.) 5286 */ 5287 protected List<MolecularSequence> pointerTarget; 5288 5289 5290 /** 5291 * Information about chromosome structure variation. 5292 */ 5293 @Child(name = "structureVariant", type = {}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 5294 @Description(shortDefinition="Structural variant", formalDefinition="Information about chromosome structure variation." ) 5295 protected List<MolecularSequenceStructureVariantComponent> structureVariant; 5296 5297 private static final long serialVersionUID = -1541133500L; 5298 5299 /** 5300 * Constructor 5301 */ 5302 public MolecularSequence() { 5303 super(); 5304 } 5305 5306 /** 5307 * Constructor 5308 */ 5309 public MolecularSequence(IntegerType coordinateSystem) { 5310 super(); 5311 this.coordinateSystem = coordinateSystem; 5312 } 5313 5314 /** 5315 * @return {@link #identifier} (A unique identifier for this particular sequence instance. This is a FHIR-defined id.) 5316 */ 5317 public List<Identifier> getIdentifier() { 5318 if (this.identifier == null) 5319 this.identifier = new ArrayList<Identifier>(); 5320 return this.identifier; 5321 } 5322 5323 /** 5324 * @return Returns a reference to <code>this</code> for easy method chaining 5325 */ 5326 public MolecularSequence setIdentifier(List<Identifier> theIdentifier) { 5327 this.identifier = theIdentifier; 5328 return this; 5329 } 5330 5331 public boolean hasIdentifier() { 5332 if (this.identifier == null) 5333 return false; 5334 for (Identifier item : this.identifier) 5335 if (!item.isEmpty()) 5336 return true; 5337 return false; 5338 } 5339 5340 public Identifier addIdentifier() { //3 5341 Identifier t = new Identifier(); 5342 if (this.identifier == null) 5343 this.identifier = new ArrayList<Identifier>(); 5344 this.identifier.add(t); 5345 return t; 5346 } 5347 5348 public MolecularSequence addIdentifier(Identifier t) { //3 5349 if (t == null) 5350 return this; 5351 if (this.identifier == null) 5352 this.identifier = new ArrayList<Identifier>(); 5353 this.identifier.add(t); 5354 return this; 5355 } 5356 5357 /** 5358 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 5359 */ 5360 public Identifier getIdentifierFirstRep() { 5361 if (getIdentifier().isEmpty()) { 5362 addIdentifier(); 5363 } 5364 return getIdentifier().get(0); 5365 } 5366 5367 /** 5368 * @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 5369 */ 5370 public Enumeration<SequenceType> getTypeElement() { 5371 if (this.type == null) 5372 if (Configuration.errorOnAutoCreate()) 5373 throw new Error("Attempt to auto-create MolecularSequence.type"); 5374 else if (Configuration.doAutoCreate()) 5375 this.type = new Enumeration<SequenceType>(new SequenceTypeEnumFactory()); // bb 5376 return this.type; 5377 } 5378 5379 public boolean hasTypeElement() { 5380 return this.type != null && !this.type.isEmpty(); 5381 } 5382 5383 public boolean hasType() { 5384 return this.type != null && !this.type.isEmpty(); 5385 } 5386 5387 /** 5388 * @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 5389 */ 5390 public MolecularSequence setTypeElement(Enumeration<SequenceType> value) { 5391 this.type = value; 5392 return this; 5393 } 5394 5395 /** 5396 * @return Amino Acid Sequence/ DNA Sequence / RNA Sequence. 5397 */ 5398 public SequenceType getType() { 5399 return this.type == null ? null : this.type.getValue(); 5400 } 5401 5402 /** 5403 * @param value Amino Acid Sequence/ DNA Sequence / RNA Sequence. 5404 */ 5405 public MolecularSequence setType(SequenceType value) { 5406 if (value == null) 5407 this.type = null; 5408 else { 5409 if (this.type == null) 5410 this.type = new Enumeration<SequenceType>(new SequenceTypeEnumFactory()); 5411 this.type.setValue(value); 5412 } 5413 return this; 5414 } 5415 5416 /** 5417 * @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 5418 */ 5419 public IntegerType getCoordinateSystemElement() { 5420 if (this.coordinateSystem == null) 5421 if (Configuration.errorOnAutoCreate()) 5422 throw new Error("Attempt to auto-create MolecularSequence.coordinateSystem"); 5423 else if (Configuration.doAutoCreate()) 5424 this.coordinateSystem = new IntegerType(); // bb 5425 return this.coordinateSystem; 5426 } 5427 5428 public boolean hasCoordinateSystemElement() { 5429 return this.coordinateSystem != null && !this.coordinateSystem.isEmpty(); 5430 } 5431 5432 public boolean hasCoordinateSystem() { 5433 return this.coordinateSystem != null && !this.coordinateSystem.isEmpty(); 5434 } 5435 5436 /** 5437 * @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 5438 */ 5439 public MolecularSequence setCoordinateSystemElement(IntegerType value) { 5440 this.coordinateSystem = value; 5441 return this; 5442 } 5443 5444 /** 5445 * @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). 5446 */ 5447 public int getCoordinateSystem() { 5448 return this.coordinateSystem == null || this.coordinateSystem.isEmpty() ? 0 : this.coordinateSystem.getValue(); 5449 } 5450 5451 /** 5452 * @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). 5453 */ 5454 public MolecularSequence setCoordinateSystem(int value) { 5455 if (this.coordinateSystem == null) 5456 this.coordinateSystem = new IntegerType(); 5457 this.coordinateSystem.setValue(value); 5458 return this; 5459 } 5460 5461 /** 5462 * @return {@link #patient} (The patient whose sequencing results are described by this resource.) 5463 */ 5464 public Reference getPatient() { 5465 if (this.patient == null) 5466 if (Configuration.errorOnAutoCreate()) 5467 throw new Error("Attempt to auto-create MolecularSequence.patient"); 5468 else if (Configuration.doAutoCreate()) 5469 this.patient = new Reference(); // cc 5470 return this.patient; 5471 } 5472 5473 public boolean hasPatient() { 5474 return this.patient != null && !this.patient.isEmpty(); 5475 } 5476 5477 /** 5478 * @param value {@link #patient} (The patient whose sequencing results are described by this resource.) 5479 */ 5480 public MolecularSequence setPatient(Reference value) { 5481 this.patient = value; 5482 return this; 5483 } 5484 5485 /** 5486 * @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.) 5487 */ 5488 public Patient getPatientTarget() { 5489 if (this.patientTarget == null) 5490 if (Configuration.errorOnAutoCreate()) 5491 throw new Error("Attempt to auto-create MolecularSequence.patient"); 5492 else if (Configuration.doAutoCreate()) 5493 this.patientTarget = new Patient(); // aa 5494 return this.patientTarget; 5495 } 5496 5497 /** 5498 * @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.) 5499 */ 5500 public MolecularSequence setPatientTarget(Patient value) { 5501 this.patientTarget = value; 5502 return this; 5503 } 5504 5505 /** 5506 * @return {@link #specimen} (Specimen used for sequencing.) 5507 */ 5508 public Reference getSpecimen() { 5509 if (this.specimen == null) 5510 if (Configuration.errorOnAutoCreate()) 5511 throw new Error("Attempt to auto-create MolecularSequence.specimen"); 5512 else if (Configuration.doAutoCreate()) 5513 this.specimen = new Reference(); // cc 5514 return this.specimen; 5515 } 5516 5517 public boolean hasSpecimen() { 5518 return this.specimen != null && !this.specimen.isEmpty(); 5519 } 5520 5521 /** 5522 * @param value {@link #specimen} (Specimen used for sequencing.) 5523 */ 5524 public MolecularSequence setSpecimen(Reference value) { 5525 this.specimen = value; 5526 return this; 5527 } 5528 5529 /** 5530 * @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.) 5531 */ 5532 public Specimen getSpecimenTarget() { 5533 if (this.specimenTarget == null) 5534 if (Configuration.errorOnAutoCreate()) 5535 throw new Error("Attempt to auto-create MolecularSequence.specimen"); 5536 else if (Configuration.doAutoCreate()) 5537 this.specimenTarget = new Specimen(); // aa 5538 return this.specimenTarget; 5539 } 5540 5541 /** 5542 * @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.) 5543 */ 5544 public MolecularSequence setSpecimenTarget(Specimen value) { 5545 this.specimenTarget = value; 5546 return this; 5547 } 5548 5549 /** 5550 * @return {@link #device} (The method for sequencing, for example, chip information.) 5551 */ 5552 public Reference getDevice() { 5553 if (this.device == null) 5554 if (Configuration.errorOnAutoCreate()) 5555 throw new Error("Attempt to auto-create MolecularSequence.device"); 5556 else if (Configuration.doAutoCreate()) 5557 this.device = new Reference(); // cc 5558 return this.device; 5559 } 5560 5561 public boolean hasDevice() { 5562 return this.device != null && !this.device.isEmpty(); 5563 } 5564 5565 /** 5566 * @param value {@link #device} (The method for sequencing, for example, chip information.) 5567 */ 5568 public MolecularSequence setDevice(Reference value) { 5569 this.device = value; 5570 return this; 5571 } 5572 5573 /** 5574 * @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.) 5575 */ 5576 public Device getDeviceTarget() { 5577 if (this.deviceTarget == null) 5578 if (Configuration.errorOnAutoCreate()) 5579 throw new Error("Attempt to auto-create MolecularSequence.device"); 5580 else if (Configuration.doAutoCreate()) 5581 this.deviceTarget = new Device(); // aa 5582 return this.deviceTarget; 5583 } 5584 5585 /** 5586 * @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.) 5587 */ 5588 public MolecularSequence setDeviceTarget(Device value) { 5589 this.deviceTarget = value; 5590 return this; 5591 } 5592 5593 /** 5594 * @return {@link #performer} (The organization or lab that should be responsible for this result.) 5595 */ 5596 public Reference getPerformer() { 5597 if (this.performer == null) 5598 if (Configuration.errorOnAutoCreate()) 5599 throw new Error("Attempt to auto-create MolecularSequence.performer"); 5600 else if (Configuration.doAutoCreate()) 5601 this.performer = new Reference(); // cc 5602 return this.performer; 5603 } 5604 5605 public boolean hasPerformer() { 5606 return this.performer != null && !this.performer.isEmpty(); 5607 } 5608 5609 /** 5610 * @param value {@link #performer} (The organization or lab that should be responsible for this result.) 5611 */ 5612 public MolecularSequence setPerformer(Reference value) { 5613 this.performer = value; 5614 return this; 5615 } 5616 5617 /** 5618 * @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.) 5619 */ 5620 public Organization getPerformerTarget() { 5621 if (this.performerTarget == null) 5622 if (Configuration.errorOnAutoCreate()) 5623 throw new Error("Attempt to auto-create MolecularSequence.performer"); 5624 else if (Configuration.doAutoCreate()) 5625 this.performerTarget = new Organization(); // aa 5626 return this.performerTarget; 5627 } 5628 5629 /** 5630 * @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.) 5631 */ 5632 public MolecularSequence setPerformerTarget(Organization value) { 5633 this.performerTarget = value; 5634 return this; 5635 } 5636 5637 /** 5638 * @return {@link #quantity} (The number of copies of the sequence of interest. (RNASeq).) 5639 */ 5640 public Quantity getQuantity() { 5641 if (this.quantity == null) 5642 if (Configuration.errorOnAutoCreate()) 5643 throw new Error("Attempt to auto-create MolecularSequence.quantity"); 5644 else if (Configuration.doAutoCreate()) 5645 this.quantity = new Quantity(); // cc 5646 return this.quantity; 5647 } 5648 5649 public boolean hasQuantity() { 5650 return this.quantity != null && !this.quantity.isEmpty(); 5651 } 5652 5653 /** 5654 * @param value {@link #quantity} (The number of copies of the sequence of interest. (RNASeq).) 5655 */ 5656 public MolecularSequence setQuantity(Quantity value) { 5657 this.quantity = value; 5658 return this; 5659 } 5660 5661 /** 5662 * @return {@link #referenceSeq} (A sequence that is used as a reference to describe variants that are present in a sequence analyzed.) 5663 */ 5664 public MolecularSequenceReferenceSeqComponent getReferenceSeq() { 5665 if (this.referenceSeq == null) 5666 if (Configuration.errorOnAutoCreate()) 5667 throw new Error("Attempt to auto-create MolecularSequence.referenceSeq"); 5668 else if (Configuration.doAutoCreate()) 5669 this.referenceSeq = new MolecularSequenceReferenceSeqComponent(); // cc 5670 return this.referenceSeq; 5671 } 5672 5673 public boolean hasReferenceSeq() { 5674 return this.referenceSeq != null && !this.referenceSeq.isEmpty(); 5675 } 5676 5677 /** 5678 * @param value {@link #referenceSeq} (A sequence that is used as a reference to describe variants that are present in a sequence analyzed.) 5679 */ 5680 public MolecularSequence setReferenceSeq(MolecularSequenceReferenceSeqComponent value) { 5681 this.referenceSeq = value; 5682 return this; 5683 } 5684 5685 /** 5686 * @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.) 5687 */ 5688 public List<MolecularSequenceVariantComponent> getVariant() { 5689 if (this.variant == null) 5690 this.variant = new ArrayList<MolecularSequenceVariantComponent>(); 5691 return this.variant; 5692 } 5693 5694 /** 5695 * @return Returns a reference to <code>this</code> for easy method chaining 5696 */ 5697 public MolecularSequence setVariant(List<MolecularSequenceVariantComponent> theVariant) { 5698 this.variant = theVariant; 5699 return this; 5700 } 5701 5702 public boolean hasVariant() { 5703 if (this.variant == null) 5704 return false; 5705 for (MolecularSequenceVariantComponent item : this.variant) 5706 if (!item.isEmpty()) 5707 return true; 5708 return false; 5709 } 5710 5711 public MolecularSequenceVariantComponent addVariant() { //3 5712 MolecularSequenceVariantComponent t = new MolecularSequenceVariantComponent(); 5713 if (this.variant == null) 5714 this.variant = new ArrayList<MolecularSequenceVariantComponent>(); 5715 this.variant.add(t); 5716 return t; 5717 } 5718 5719 public MolecularSequence addVariant(MolecularSequenceVariantComponent t) { //3 5720 if (t == null) 5721 return this; 5722 if (this.variant == null) 5723 this.variant = new ArrayList<MolecularSequenceVariantComponent>(); 5724 this.variant.add(t); 5725 return this; 5726 } 5727 5728 /** 5729 * @return The first repetition of repeating field {@link #variant}, creating it if it does not already exist 5730 */ 5731 public MolecularSequenceVariantComponent getVariantFirstRep() { 5732 if (getVariant().isEmpty()) { 5733 addVariant(); 5734 } 5735 return getVariant().get(0); 5736 } 5737 5738 /** 5739 * @return {@link #observedSeq} (Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall start 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 5740 */ 5741 public StringType getObservedSeqElement() { 5742 if (this.observedSeq == null) 5743 if (Configuration.errorOnAutoCreate()) 5744 throw new Error("Attempt to auto-create MolecularSequence.observedSeq"); 5745 else if (Configuration.doAutoCreate()) 5746 this.observedSeq = new StringType(); // bb 5747 return this.observedSeq; 5748 } 5749 5750 public boolean hasObservedSeqElement() { 5751 return this.observedSeq != null && !this.observedSeq.isEmpty(); 5752 } 5753 5754 public boolean hasObservedSeq() { 5755 return this.observedSeq != null && !this.observedSeq.isEmpty(); 5756 } 5757 5758 /** 5759 * @param value {@link #observedSeq} (Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall start 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 5760 */ 5761 public MolecularSequence setObservedSeqElement(StringType value) { 5762 this.observedSeq = value; 5763 return this; 5764 } 5765 5766 /** 5767 * @return Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall start from referenceSeq.windowStart and end by referenceSeq.windowEnd. 5768 */ 5769 public String getObservedSeq() { 5770 return this.observedSeq == null ? null : this.observedSeq.getValue(); 5771 } 5772 5773 /** 5774 * @param value Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall start from referenceSeq.windowStart and end by referenceSeq.windowEnd. 5775 */ 5776 public MolecularSequence setObservedSeq(String value) { 5777 if (Utilities.noString(value)) 5778 this.observedSeq = null; 5779 else { 5780 if (this.observedSeq == null) 5781 this.observedSeq = new StringType(); 5782 this.observedSeq.setValue(value); 5783 } 5784 return this; 5785 } 5786 5787 /** 5788 * @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)).) 5789 */ 5790 public List<MolecularSequenceQualityComponent> getQuality() { 5791 if (this.quality == null) 5792 this.quality = new ArrayList<MolecularSequenceQualityComponent>(); 5793 return this.quality; 5794 } 5795 5796 /** 5797 * @return Returns a reference to <code>this</code> for easy method chaining 5798 */ 5799 public MolecularSequence setQuality(List<MolecularSequenceQualityComponent> theQuality) { 5800 this.quality = theQuality; 5801 return this; 5802 } 5803 5804 public boolean hasQuality() { 5805 if (this.quality == null) 5806 return false; 5807 for (MolecularSequenceQualityComponent item : this.quality) 5808 if (!item.isEmpty()) 5809 return true; 5810 return false; 5811 } 5812 5813 public MolecularSequenceQualityComponent addQuality() { //3 5814 MolecularSequenceQualityComponent t = new MolecularSequenceQualityComponent(); 5815 if (this.quality == null) 5816 this.quality = new ArrayList<MolecularSequenceQualityComponent>(); 5817 this.quality.add(t); 5818 return t; 5819 } 5820 5821 public MolecularSequence addQuality(MolecularSequenceQualityComponent t) { //3 5822 if (t == null) 5823 return this; 5824 if (this.quality == null) 5825 this.quality = new ArrayList<MolecularSequenceQualityComponent>(); 5826 this.quality.add(t); 5827 return this; 5828 } 5829 5830 /** 5831 * @return The first repetition of repeating field {@link #quality}, creating it if it does not already exist 5832 */ 5833 public MolecularSequenceQualityComponent getQualityFirstRep() { 5834 if (getQuality().isEmpty()) { 5835 addQuality(); 5836 } 5837 return getQuality().get(0); 5838 } 5839 5840 /** 5841 * @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 5842 */ 5843 public IntegerType getReadCoverageElement() { 5844 if (this.readCoverage == null) 5845 if (Configuration.errorOnAutoCreate()) 5846 throw new Error("Attempt to auto-create MolecularSequence.readCoverage"); 5847 else if (Configuration.doAutoCreate()) 5848 this.readCoverage = new IntegerType(); // bb 5849 return this.readCoverage; 5850 } 5851 5852 public boolean hasReadCoverageElement() { 5853 return this.readCoverage != null && !this.readCoverage.isEmpty(); 5854 } 5855 5856 public boolean hasReadCoverage() { 5857 return this.readCoverage != null && !this.readCoverage.isEmpty(); 5858 } 5859 5860 /** 5861 * @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 5862 */ 5863 public MolecularSequence setReadCoverageElement(IntegerType value) { 5864 this.readCoverage = value; 5865 return this; 5866 } 5867 5868 /** 5869 * @return Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence. 5870 */ 5871 public int getReadCoverage() { 5872 return this.readCoverage == null || this.readCoverage.isEmpty() ? 0 : this.readCoverage.getValue(); 5873 } 5874 5875 /** 5876 * @param value Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence. 5877 */ 5878 public MolecularSequence setReadCoverage(int value) { 5879 if (this.readCoverage == null) 5880 this.readCoverage = new IntegerType(); 5881 this.readCoverage.setValue(value); 5882 return this; 5883 } 5884 5885 /** 5886 * @return {@link #repository} (Configurations of the external repository. The repository shall store target's observedSeq or records related with target's observedSeq.) 5887 */ 5888 public List<MolecularSequenceRepositoryComponent> getRepository() { 5889 if (this.repository == null) 5890 this.repository = new ArrayList<MolecularSequenceRepositoryComponent>(); 5891 return this.repository; 5892 } 5893 5894 /** 5895 * @return Returns a reference to <code>this</code> for easy method chaining 5896 */ 5897 public MolecularSequence setRepository(List<MolecularSequenceRepositoryComponent> theRepository) { 5898 this.repository = theRepository; 5899 return this; 5900 } 5901 5902 public boolean hasRepository() { 5903 if (this.repository == null) 5904 return false; 5905 for (MolecularSequenceRepositoryComponent item : this.repository) 5906 if (!item.isEmpty()) 5907 return true; 5908 return false; 5909 } 5910 5911 public MolecularSequenceRepositoryComponent addRepository() { //3 5912 MolecularSequenceRepositoryComponent t = new MolecularSequenceRepositoryComponent(); 5913 if (this.repository == null) 5914 this.repository = new ArrayList<MolecularSequenceRepositoryComponent>(); 5915 this.repository.add(t); 5916 return t; 5917 } 5918 5919 public MolecularSequence addRepository(MolecularSequenceRepositoryComponent t) { //3 5920 if (t == null) 5921 return this; 5922 if (this.repository == null) 5923 this.repository = new ArrayList<MolecularSequenceRepositoryComponent>(); 5924 this.repository.add(t); 5925 return this; 5926 } 5927 5928 /** 5929 * @return The first repetition of repeating field {@link #repository}, creating it if it does not already exist 5930 */ 5931 public MolecularSequenceRepositoryComponent getRepositoryFirstRep() { 5932 if (getRepository().isEmpty()) { 5933 addRepository(); 5934 } 5935 return getRepository().get(0); 5936 } 5937 5938 /** 5939 * @return {@link #pointer} (Pointer to next atomic sequence which at most contains one variant.) 5940 */ 5941 public List<Reference> getPointer() { 5942 if (this.pointer == null) 5943 this.pointer = new ArrayList<Reference>(); 5944 return this.pointer; 5945 } 5946 5947 /** 5948 * @return Returns a reference to <code>this</code> for easy method chaining 5949 */ 5950 public MolecularSequence setPointer(List<Reference> thePointer) { 5951 this.pointer = thePointer; 5952 return this; 5953 } 5954 5955 public boolean hasPointer() { 5956 if (this.pointer == null) 5957 return false; 5958 for (Reference item : this.pointer) 5959 if (!item.isEmpty()) 5960 return true; 5961 return false; 5962 } 5963 5964 public Reference addPointer() { //3 5965 Reference t = new Reference(); 5966 if (this.pointer == null) 5967 this.pointer = new ArrayList<Reference>(); 5968 this.pointer.add(t); 5969 return t; 5970 } 5971 5972 public MolecularSequence addPointer(Reference t) { //3 5973 if (t == null) 5974 return this; 5975 if (this.pointer == null) 5976 this.pointer = new ArrayList<Reference>(); 5977 this.pointer.add(t); 5978 return this; 5979 } 5980 5981 /** 5982 * @return The first repetition of repeating field {@link #pointer}, creating it if it does not already exist 5983 */ 5984 public Reference getPointerFirstRep() { 5985 if (getPointer().isEmpty()) { 5986 addPointer(); 5987 } 5988 return getPointer().get(0); 5989 } 5990 5991 /** 5992 * @deprecated Use Reference#setResource(IBaseResource) instead 5993 */ 5994 @Deprecated 5995 public List<MolecularSequence> getPointerTarget() { 5996 if (this.pointerTarget == null) 5997 this.pointerTarget = new ArrayList<MolecularSequence>(); 5998 return this.pointerTarget; 5999 } 6000 6001 /** 6002 * @deprecated Use Reference#setResource(IBaseResource) instead 6003 */ 6004 @Deprecated 6005 public MolecularSequence addPointerTarget() { 6006 MolecularSequence r = new MolecularSequence(); 6007 if (this.pointerTarget == null) 6008 this.pointerTarget = new ArrayList<MolecularSequence>(); 6009 this.pointerTarget.add(r); 6010 return r; 6011 } 6012 6013 /** 6014 * @return {@link #structureVariant} (Information about chromosome structure variation.) 6015 */ 6016 public List<MolecularSequenceStructureVariantComponent> getStructureVariant() { 6017 if (this.structureVariant == null) 6018 this.structureVariant = new ArrayList<MolecularSequenceStructureVariantComponent>(); 6019 return this.structureVariant; 6020 } 6021 6022 /** 6023 * @return Returns a reference to <code>this</code> for easy method chaining 6024 */ 6025 public MolecularSequence setStructureVariant(List<MolecularSequenceStructureVariantComponent> theStructureVariant) { 6026 this.structureVariant = theStructureVariant; 6027 return this; 6028 } 6029 6030 public boolean hasStructureVariant() { 6031 if (this.structureVariant == null) 6032 return false; 6033 for (MolecularSequenceStructureVariantComponent item : this.structureVariant) 6034 if (!item.isEmpty()) 6035 return true; 6036 return false; 6037 } 6038 6039 public MolecularSequenceStructureVariantComponent addStructureVariant() { //3 6040 MolecularSequenceStructureVariantComponent t = new MolecularSequenceStructureVariantComponent(); 6041 if (this.structureVariant == null) 6042 this.structureVariant = new ArrayList<MolecularSequenceStructureVariantComponent>(); 6043 this.structureVariant.add(t); 6044 return t; 6045 } 6046 6047 public MolecularSequence addStructureVariant(MolecularSequenceStructureVariantComponent t) { //3 6048 if (t == null) 6049 return this; 6050 if (this.structureVariant == null) 6051 this.structureVariant = new ArrayList<MolecularSequenceStructureVariantComponent>(); 6052 this.structureVariant.add(t); 6053 return this; 6054 } 6055 6056 /** 6057 * @return The first repetition of repeating field {@link #structureVariant}, creating it if it does not already exist 6058 */ 6059 public MolecularSequenceStructureVariantComponent getStructureVariantFirstRep() { 6060 if (getStructureVariant().isEmpty()) { 6061 addStructureVariant(); 6062 } 6063 return getStructureVariant().get(0); 6064 } 6065 6066 protected void listChildren(List<Property> children) { 6067 super.listChildren(children); 6068 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)); 6069 children.add(new Property("type", "code", "Amino Acid Sequence/ DNA Sequence / RNA Sequence.", 0, 1, type)); 6070 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)); 6071 children.add(new Property("patient", "Reference(Patient)", "The patient whose sequencing results are described by this resource.", 0, 1, patient)); 6072 children.add(new Property("specimen", "Reference(Specimen)", "Specimen used for sequencing.", 0, 1, specimen)); 6073 children.add(new Property("device", "Reference(Device)", "The method for sequencing, for example, chip information.", 0, 1, device)); 6074 children.add(new Property("performer", "Reference(Organization)", "The organization or lab that should be responsible for this result.", 0, 1, performer)); 6075 children.add(new Property("quantity", "Quantity", "The number of copies of the sequence of interest. (RNASeq).", 0, 1, quantity)); 6076 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)); 6077 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)); 6078 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 start from referenceSeq.windowStart and end by referenceSeq.windowEnd.", 0, 1, observedSeq)); 6079 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)); 6080 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)); 6081 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)); 6082 children.add(new Property("pointer", "Reference(MolecularSequence)", "Pointer to next atomic sequence which at most contains one variant.", 0, java.lang.Integer.MAX_VALUE, pointer)); 6083 children.add(new Property("structureVariant", "", "Information about chromosome structure variation.", 0, java.lang.Integer.MAX_VALUE, structureVariant)); 6084 } 6085 6086 @Override 6087 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 6088 switch (_hash) { 6089 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); 6090 case 3575610: /*type*/ return new Property("type", "code", "Amino Acid Sequence/ DNA Sequence / RNA Sequence.", 0, 1, type); 6091 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); 6092 case -791418107: /*patient*/ return new Property("patient", "Reference(Patient)", "The patient whose sequencing results are described by this resource.", 0, 1, patient); 6093 case -2132868344: /*specimen*/ return new Property("specimen", "Reference(Specimen)", "Specimen used for sequencing.", 0, 1, specimen); 6094 case -1335157162: /*device*/ return new Property("device", "Reference(Device)", "The method for sequencing, for example, chip information.", 0, 1, device); 6095 case 481140686: /*performer*/ return new Property("performer", "Reference(Organization)", "The organization or lab that should be responsible for this result.", 0, 1, performer); 6096 case -1285004149: /*quantity*/ return new Property("quantity", "Quantity", "The number of copies of the sequence of interest. (RNASeq).", 0, 1, quantity); 6097 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); 6098 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); 6099 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 start from referenceSeq.windowStart and end by referenceSeq.windowEnd.", 0, 1, observedSeq); 6100 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); 6101 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); 6102 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); 6103 case -400605635: /*pointer*/ return new Property("pointer", "Reference(MolecularSequence)", "Pointer to next atomic sequence which at most contains one variant.", 0, java.lang.Integer.MAX_VALUE, pointer); 6104 case 757269394: /*structureVariant*/ return new Property("structureVariant", "", "Information about chromosome structure variation.", 0, java.lang.Integer.MAX_VALUE, structureVariant); 6105 default: return super.getNamedProperty(_hash, _name, _checkValid); 6106 } 6107 6108 } 6109 6110 @Override 6111 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 6112 switch (hash) { 6113 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 6114 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<SequenceType> 6115 case 354212295: /*coordinateSystem*/ return this.coordinateSystem == null ? new Base[0] : new Base[] {this.coordinateSystem}; // IntegerType 6116 case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference 6117 case -2132868344: /*specimen*/ return this.specimen == null ? new Base[0] : new Base[] {this.specimen}; // Reference 6118 case -1335157162: /*device*/ return this.device == null ? new Base[0] : new Base[] {this.device}; // Reference 6119 case 481140686: /*performer*/ return this.performer == null ? new Base[0] : new Base[] {this.performer}; // Reference 6120 case -1285004149: /*quantity*/ return this.quantity == null ? new Base[0] : new Base[] {this.quantity}; // Quantity 6121 case -502547180: /*referenceSeq*/ return this.referenceSeq == null ? new Base[0] : new Base[] {this.referenceSeq}; // MolecularSequenceReferenceSeqComponent 6122 case 236785797: /*variant*/ return this.variant == null ? new Base[0] : this.variant.toArray(new Base[this.variant.size()]); // MolecularSequenceVariantComponent 6123 case 125541495: /*observedSeq*/ return this.observedSeq == null ? new Base[0] : new Base[] {this.observedSeq}; // StringType 6124 case 651215103: /*quality*/ return this.quality == null ? new Base[0] : this.quality.toArray(new Base[this.quality.size()]); // MolecularSequenceQualityComponent 6125 case -1798816354: /*readCoverage*/ return this.readCoverage == null ? new Base[0] : new Base[] {this.readCoverage}; // IntegerType 6126 case 1950800714: /*repository*/ return this.repository == null ? new Base[0] : this.repository.toArray(new Base[this.repository.size()]); // MolecularSequenceRepositoryComponent 6127 case -400605635: /*pointer*/ return this.pointer == null ? new Base[0] : this.pointer.toArray(new Base[this.pointer.size()]); // Reference 6128 case 757269394: /*structureVariant*/ return this.structureVariant == null ? new Base[0] : this.structureVariant.toArray(new Base[this.structureVariant.size()]); // MolecularSequenceStructureVariantComponent 6129 default: return super.getProperty(hash, name, checkValid); 6130 } 6131 6132 } 6133 6134 @Override 6135 public Base setProperty(int hash, String name, Base value) throws FHIRException { 6136 switch (hash) { 6137 case -1618432855: // identifier 6138 this.getIdentifier().add(castToIdentifier(value)); // Identifier 6139 return value; 6140 case 3575610: // type 6141 value = new SequenceTypeEnumFactory().fromType(castToCode(value)); 6142 this.type = (Enumeration) value; // Enumeration<SequenceType> 6143 return value; 6144 case 354212295: // coordinateSystem 6145 this.coordinateSystem = castToInteger(value); // IntegerType 6146 return value; 6147 case -791418107: // patient 6148 this.patient = castToReference(value); // Reference 6149 return value; 6150 case -2132868344: // specimen 6151 this.specimen = castToReference(value); // Reference 6152 return value; 6153 case -1335157162: // device 6154 this.device = castToReference(value); // Reference 6155 return value; 6156 case 481140686: // performer 6157 this.performer = castToReference(value); // Reference 6158 return value; 6159 case -1285004149: // quantity 6160 this.quantity = castToQuantity(value); // Quantity 6161 return value; 6162 case -502547180: // referenceSeq 6163 this.referenceSeq = (MolecularSequenceReferenceSeqComponent) value; // MolecularSequenceReferenceSeqComponent 6164 return value; 6165 case 236785797: // variant 6166 this.getVariant().add((MolecularSequenceVariantComponent) value); // MolecularSequenceVariantComponent 6167 return value; 6168 case 125541495: // observedSeq 6169 this.observedSeq = castToString(value); // StringType 6170 return value; 6171 case 651215103: // quality 6172 this.getQuality().add((MolecularSequenceQualityComponent) value); // MolecularSequenceQualityComponent 6173 return value; 6174 case -1798816354: // readCoverage 6175 this.readCoverage = castToInteger(value); // IntegerType 6176 return value; 6177 case 1950800714: // repository 6178 this.getRepository().add((MolecularSequenceRepositoryComponent) value); // MolecularSequenceRepositoryComponent 6179 return value; 6180 case -400605635: // pointer 6181 this.getPointer().add(castToReference(value)); // Reference 6182 return value; 6183 case 757269394: // structureVariant 6184 this.getStructureVariant().add((MolecularSequenceStructureVariantComponent) value); // MolecularSequenceStructureVariantComponent 6185 return value; 6186 default: return super.setProperty(hash, name, value); 6187 } 6188 6189 } 6190 6191 @Override 6192 public Base setProperty(String name, Base value) throws FHIRException { 6193 if (name.equals("identifier")) { 6194 this.getIdentifier().add(castToIdentifier(value)); 6195 } else if (name.equals("type")) { 6196 value = new SequenceTypeEnumFactory().fromType(castToCode(value)); 6197 this.type = (Enumeration) value; // Enumeration<SequenceType> 6198 } else if (name.equals("coordinateSystem")) { 6199 this.coordinateSystem = castToInteger(value); // IntegerType 6200 } else if (name.equals("patient")) { 6201 this.patient = castToReference(value); // Reference 6202 } else if (name.equals("specimen")) { 6203 this.specimen = castToReference(value); // Reference 6204 } else if (name.equals("device")) { 6205 this.device = castToReference(value); // Reference 6206 } else if (name.equals("performer")) { 6207 this.performer = castToReference(value); // Reference 6208 } else if (name.equals("quantity")) { 6209 this.quantity = castToQuantity(value); // Quantity 6210 } else if (name.equals("referenceSeq")) { 6211 this.referenceSeq = (MolecularSequenceReferenceSeqComponent) value; // MolecularSequenceReferenceSeqComponent 6212 } else if (name.equals("variant")) { 6213 this.getVariant().add((MolecularSequenceVariantComponent) value); 6214 } else if (name.equals("observedSeq")) { 6215 this.observedSeq = castToString(value); // StringType 6216 } else if (name.equals("quality")) { 6217 this.getQuality().add((MolecularSequenceQualityComponent) value); 6218 } else if (name.equals("readCoverage")) { 6219 this.readCoverage = castToInteger(value); // IntegerType 6220 } else if (name.equals("repository")) { 6221 this.getRepository().add((MolecularSequenceRepositoryComponent) value); 6222 } else if (name.equals("pointer")) { 6223 this.getPointer().add(castToReference(value)); 6224 } else if (name.equals("structureVariant")) { 6225 this.getStructureVariant().add((MolecularSequenceStructureVariantComponent) value); 6226 } else 6227 return super.setProperty(name, value); 6228 return value; 6229 } 6230 6231 @Override 6232 public Base makeProperty(int hash, String name) throws FHIRException { 6233 switch (hash) { 6234 case -1618432855: return addIdentifier(); 6235 case 3575610: return getTypeElement(); 6236 case 354212295: return getCoordinateSystemElement(); 6237 case -791418107: return getPatient(); 6238 case -2132868344: return getSpecimen(); 6239 case -1335157162: return getDevice(); 6240 case 481140686: return getPerformer(); 6241 case -1285004149: return getQuantity(); 6242 case -502547180: return getReferenceSeq(); 6243 case 236785797: return addVariant(); 6244 case 125541495: return getObservedSeqElement(); 6245 case 651215103: return addQuality(); 6246 case -1798816354: return getReadCoverageElement(); 6247 case 1950800714: return addRepository(); 6248 case -400605635: return addPointer(); 6249 case 757269394: return addStructureVariant(); 6250 default: return super.makeProperty(hash, name); 6251 } 6252 6253 } 6254 6255 @Override 6256 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 6257 switch (hash) { 6258 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 6259 case 3575610: /*type*/ return new String[] {"code"}; 6260 case 354212295: /*coordinateSystem*/ return new String[] {"integer"}; 6261 case -791418107: /*patient*/ return new String[] {"Reference"}; 6262 case -2132868344: /*specimen*/ return new String[] {"Reference"}; 6263 case -1335157162: /*device*/ return new String[] {"Reference"}; 6264 case 481140686: /*performer*/ return new String[] {"Reference"}; 6265 case -1285004149: /*quantity*/ return new String[] {"Quantity"}; 6266 case -502547180: /*referenceSeq*/ return new String[] {}; 6267 case 236785797: /*variant*/ return new String[] {}; 6268 case 125541495: /*observedSeq*/ return new String[] {"string"}; 6269 case 651215103: /*quality*/ return new String[] {}; 6270 case -1798816354: /*readCoverage*/ return new String[] {"integer"}; 6271 case 1950800714: /*repository*/ return new String[] {}; 6272 case -400605635: /*pointer*/ return new String[] {"Reference"}; 6273 case 757269394: /*structureVariant*/ return new String[] {}; 6274 default: return super.getTypesForProperty(hash, name); 6275 } 6276 6277 } 6278 6279 @Override 6280 public Base addChild(String name) throws FHIRException { 6281 if (name.equals("identifier")) { 6282 return addIdentifier(); 6283 } 6284 else if (name.equals("type")) { 6285 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.type"); 6286 } 6287 else if (name.equals("coordinateSystem")) { 6288 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.coordinateSystem"); 6289 } 6290 else if (name.equals("patient")) { 6291 this.patient = new Reference(); 6292 return this.patient; 6293 } 6294 else if (name.equals("specimen")) { 6295 this.specimen = new Reference(); 6296 return this.specimen; 6297 } 6298 else if (name.equals("device")) { 6299 this.device = new Reference(); 6300 return this.device; 6301 } 6302 else if (name.equals("performer")) { 6303 this.performer = new Reference(); 6304 return this.performer; 6305 } 6306 else if (name.equals("quantity")) { 6307 this.quantity = new Quantity(); 6308 return this.quantity; 6309 } 6310 else if (name.equals("referenceSeq")) { 6311 this.referenceSeq = new MolecularSequenceReferenceSeqComponent(); 6312 return this.referenceSeq; 6313 } 6314 else if (name.equals("variant")) { 6315 return addVariant(); 6316 } 6317 else if (name.equals("observedSeq")) { 6318 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.observedSeq"); 6319 } 6320 else if (name.equals("quality")) { 6321 return addQuality(); 6322 } 6323 else if (name.equals("readCoverage")) { 6324 throw new FHIRException("Cannot call addChild on a primitive type MolecularSequence.readCoverage"); 6325 } 6326 else if (name.equals("repository")) { 6327 return addRepository(); 6328 } 6329 else if (name.equals("pointer")) { 6330 return addPointer(); 6331 } 6332 else if (name.equals("structureVariant")) { 6333 return addStructureVariant(); 6334 } 6335 else 6336 return super.addChild(name); 6337 } 6338 6339 public String fhirType() { 6340 return "MolecularSequence"; 6341 6342 } 6343 6344 public MolecularSequence copy() { 6345 MolecularSequence dst = new MolecularSequence(); 6346 copyValues(dst); 6347 return dst; 6348 } 6349 6350 public void copyValues(MolecularSequence dst) { 6351 super.copyValues(dst); 6352 if (identifier != null) { 6353 dst.identifier = new ArrayList<Identifier>(); 6354 for (Identifier i : identifier) 6355 dst.identifier.add(i.copy()); 6356 }; 6357 dst.type = type == null ? null : type.copy(); 6358 dst.coordinateSystem = coordinateSystem == null ? null : coordinateSystem.copy(); 6359 dst.patient = patient == null ? null : patient.copy(); 6360 dst.specimen = specimen == null ? null : specimen.copy(); 6361 dst.device = device == null ? null : device.copy(); 6362 dst.performer = performer == null ? null : performer.copy(); 6363 dst.quantity = quantity == null ? null : quantity.copy(); 6364 dst.referenceSeq = referenceSeq == null ? null : referenceSeq.copy(); 6365 if (variant != null) { 6366 dst.variant = new ArrayList<MolecularSequenceVariantComponent>(); 6367 for (MolecularSequenceVariantComponent i : variant) 6368 dst.variant.add(i.copy()); 6369 }; 6370 dst.observedSeq = observedSeq == null ? null : observedSeq.copy(); 6371 if (quality != null) { 6372 dst.quality = new ArrayList<MolecularSequenceQualityComponent>(); 6373 for (MolecularSequenceQualityComponent i : quality) 6374 dst.quality.add(i.copy()); 6375 }; 6376 dst.readCoverage = readCoverage == null ? null : readCoverage.copy(); 6377 if (repository != null) { 6378 dst.repository = new ArrayList<MolecularSequenceRepositoryComponent>(); 6379 for (MolecularSequenceRepositoryComponent i : repository) 6380 dst.repository.add(i.copy()); 6381 }; 6382 if (pointer != null) { 6383 dst.pointer = new ArrayList<Reference>(); 6384 for (Reference i : pointer) 6385 dst.pointer.add(i.copy()); 6386 }; 6387 if (structureVariant != null) { 6388 dst.structureVariant = new ArrayList<MolecularSequenceStructureVariantComponent>(); 6389 for (MolecularSequenceStructureVariantComponent i : structureVariant) 6390 dst.structureVariant.add(i.copy()); 6391 }; 6392 } 6393 6394 protected MolecularSequence typedCopy() { 6395 return copy(); 6396 } 6397 6398 @Override 6399 public boolean equalsDeep(Base other_) { 6400 if (!super.equalsDeep(other_)) 6401 return false; 6402 if (!(other_ instanceof MolecularSequence)) 6403 return false; 6404 MolecularSequence o = (MolecularSequence) other_; 6405 return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(coordinateSystem, o.coordinateSystem, true) 6406 && compareDeep(patient, o.patient, true) && compareDeep(specimen, o.specimen, true) && compareDeep(device, o.device, true) 6407 && compareDeep(performer, o.performer, true) && compareDeep(quantity, o.quantity, true) && compareDeep(referenceSeq, o.referenceSeq, true) 6408 && compareDeep(variant, o.variant, true) && compareDeep(observedSeq, o.observedSeq, true) && compareDeep(quality, o.quality, true) 6409 && compareDeep(readCoverage, o.readCoverage, true) && compareDeep(repository, o.repository, true) 6410 && compareDeep(pointer, o.pointer, true) && compareDeep(structureVariant, o.structureVariant, true) 6411 ; 6412 } 6413 6414 @Override 6415 public boolean equalsShallow(Base other_) { 6416 if (!super.equalsShallow(other_)) 6417 return false; 6418 if (!(other_ instanceof MolecularSequence)) 6419 return false; 6420 MolecularSequence o = (MolecularSequence) other_; 6421 return compareValues(type, o.type, true) && compareValues(coordinateSystem, o.coordinateSystem, true) 6422 && compareValues(observedSeq, o.observedSeq, true) && compareValues(readCoverage, o.readCoverage, true) 6423 ; 6424 } 6425 6426 public boolean isEmpty() { 6427 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, type, coordinateSystem 6428 , patient, specimen, device, performer, quantity, referenceSeq, variant, observedSeq 6429 , quality, readCoverage, repository, pointer, structureVariant); 6430 } 6431 6432 @Override 6433 public ResourceType getResourceType() { 6434 return ResourceType.MolecularSequence; 6435 } 6436 6437 /** 6438 * Search parameter: <b>identifier</b> 6439 * <p> 6440 * Description: <b>The unique identity for a particular sequence</b><br> 6441 * Type: <b>token</b><br> 6442 * Path: <b>MolecularSequence.identifier</b><br> 6443 * </p> 6444 */ 6445 @SearchParamDefinition(name="identifier", path="MolecularSequence.identifier", description="The unique identity for a particular sequence", type="token" ) 6446 public static final String SP_IDENTIFIER = "identifier"; 6447 /** 6448 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 6449 * <p> 6450 * Description: <b>The unique identity for a particular sequence</b><br> 6451 * Type: <b>token</b><br> 6452 * Path: <b>MolecularSequence.identifier</b><br> 6453 * </p> 6454 */ 6455 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 6456 6457 /** 6458 * Search parameter: <b>referenceseqid-variant-coordinate</b> 6459 * <p> 6460 * Description: <b>Search parameter by reference sequence and variant coordinate. 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 `referenceSeqId-variant-coordinate=NC_000001.11$lt345$gt123`, this means it will search for the MolecularSequence resource with variants on NC_000001.11 and with position >123 and <345, where in 1-based system resource, all strings within region NC_000001.11:124-344 will be revealed, while in 0-based system resource, all strings within region NC_000001.11:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above.</b><br> 6461 * Type: <b>composite</b><br> 6462 * Path: <b></b><br> 6463 * </p> 6464 */ 6465 @SearchParamDefinition(name="referenceseqid-variant-coordinate", path="MolecularSequence.variant", description="Search parameter by reference sequence and variant coordinate. 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 `referenceSeqId-variant-coordinate=NC_000001.11$lt345$gt123`, this means it will search for the MolecularSequence resource with variants on NC_000001.11 and with position >123 and <345, where in 1-based system resource, all strings within region NC_000001.11:124-344 will be revealed, while in 0-based system resource, all strings within region NC_000001.11:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above.", type="composite", compositeOf={"referenceseqid", "variant-start"} ) 6466 public static final String SP_REFERENCESEQID_VARIANT_COORDINATE = "referenceseqid-variant-coordinate"; 6467 /** 6468 * <b>Fluent Client</b> search parameter constant for <b>referenceseqid-variant-coordinate</b> 6469 * <p> 6470 * Description: <b>Search parameter by reference sequence and variant coordinate. 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 `referenceSeqId-variant-coordinate=NC_000001.11$lt345$gt123`, this means it will search for the MolecularSequence resource with variants on NC_000001.11 and with position >123 and <345, where in 1-based system resource, all strings within region NC_000001.11:124-344 will be revealed, while in 0-based system resource, all strings within region NC_000001.11:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above.</b><br> 6471 * Type: <b>composite</b><br> 6472 * Path: <b></b><br> 6473 * </p> 6474 */ 6475 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam> REFERENCESEQID_VARIANT_COORDINATE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam>(SP_REFERENCESEQID_VARIANT_COORDINATE); 6476 6477 /** 6478 * Search parameter: <b>chromosome</b> 6479 * <p> 6480 * Description: <b>Chromosome number of the reference sequence</b><br> 6481 * Type: <b>token</b><br> 6482 * Path: <b>MolecularSequence.referenceSeq.chromosome</b><br> 6483 * </p> 6484 */ 6485 @SearchParamDefinition(name="chromosome", path="MolecularSequence.referenceSeq.chromosome", description="Chromosome number of the reference sequence", type="token" ) 6486 public static final String SP_CHROMOSOME = "chromosome"; 6487 /** 6488 * <b>Fluent Client</b> search parameter constant for <b>chromosome</b> 6489 * <p> 6490 * Description: <b>Chromosome number of the reference sequence</b><br> 6491 * Type: <b>token</b><br> 6492 * Path: <b>MolecularSequence.referenceSeq.chromosome</b><br> 6493 * </p> 6494 */ 6495 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CHROMOSOME = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CHROMOSOME); 6496 6497 /** 6498 * Search parameter: <b>window-end</b> 6499 * <p> 6500 * 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> 6501 * Type: <b>number</b><br> 6502 * Path: <b>MolecularSequence.referenceSeq.windowEnd</b><br> 6503 * </p> 6504 */ 6505 @SearchParamDefinition(name="window-end", path="MolecularSequence.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" ) 6506 public static final String SP_WINDOW_END = "window-end"; 6507 /** 6508 * <b>Fluent Client</b> search parameter constant for <b>window-end</b> 6509 * <p> 6510 * 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> 6511 * Type: <b>number</b><br> 6512 * Path: <b>MolecularSequence.referenceSeq.windowEnd</b><br> 6513 * </p> 6514 */ 6515 public static final ca.uhn.fhir.rest.gclient.NumberClientParam WINDOW_END = new ca.uhn.fhir.rest.gclient.NumberClientParam(SP_WINDOW_END); 6516 6517 /** 6518 * Search parameter: <b>type</b> 6519 * <p> 6520 * Description: <b>Amino Acid Sequence/ DNA Sequence / RNA Sequence</b><br> 6521 * Type: <b>token</b><br> 6522 * Path: <b>MolecularSequence.type</b><br> 6523 * </p> 6524 */ 6525 @SearchParamDefinition(name="type", path="MolecularSequence.type", description="Amino Acid Sequence/ DNA Sequence / RNA Sequence", type="token" ) 6526 public static final String SP_TYPE = "type"; 6527 /** 6528 * <b>Fluent Client</b> search parameter constant for <b>type</b> 6529 * <p> 6530 * Description: <b>Amino Acid Sequence/ DNA Sequence / RNA Sequence</b><br> 6531 * Type: <b>token</b><br> 6532 * Path: <b>MolecularSequence.type</b><br> 6533 * </p> 6534 */ 6535 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 6536 6537 /** 6538 * Search parameter: <b>window-start</b> 6539 * <p> 6540 * 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> 6541 * Type: <b>number</b><br> 6542 * Path: <b>MolecularSequence.referenceSeq.windowStart</b><br> 6543 * </p> 6544 */ 6545 @SearchParamDefinition(name="window-start", path="MolecularSequence.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" ) 6546 public static final String SP_WINDOW_START = "window-start"; 6547 /** 6548 * <b>Fluent Client</b> search parameter constant for <b>window-start</b> 6549 * <p> 6550 * 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> 6551 * Type: <b>number</b><br> 6552 * Path: <b>MolecularSequence.referenceSeq.windowStart</b><br> 6553 * </p> 6554 */ 6555 public static final ca.uhn.fhir.rest.gclient.NumberClientParam WINDOW_START = new ca.uhn.fhir.rest.gclient.NumberClientParam(SP_WINDOW_START); 6556 6557 /** 6558 * Search parameter: <b>variant-end</b> 6559 * <p> 6560 * 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 variant.</b><br> 6561 * Type: <b>number</b><br> 6562 * Path: <b>MolecularSequence.variant.end</b><br> 6563 * </p> 6564 */ 6565 @SearchParamDefinition(name="variant-end", path="MolecularSequence.variant.end", 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 variant.", type="number" ) 6566 public static final String SP_VARIANT_END = "variant-end"; 6567 /** 6568 * <b>Fluent Client</b> search parameter constant for <b>variant-end</b> 6569 * <p> 6570 * 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 variant.</b><br> 6571 * Type: <b>number</b><br> 6572 * Path: <b>MolecularSequence.variant.end</b><br> 6573 * </p> 6574 */ 6575 public static final ca.uhn.fhir.rest.gclient.NumberClientParam VARIANT_END = new ca.uhn.fhir.rest.gclient.NumberClientParam(SP_VARIANT_END); 6576 6577 /** 6578 * Search parameter: <b>chromosome-variant-coordinate</b> 6579 * <p> 6580 * Description: <b>Search parameter by chromosome and variant coordinate. 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 `chromosome-variant-coordinate=1$lt345$gt123`, this means it will search for the MolecularSequence resource with variants 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> 6581 * Type: <b>composite</b><br> 6582 * Path: <b></b><br> 6583 * </p> 6584 */ 6585 @SearchParamDefinition(name="chromosome-variant-coordinate", path="MolecularSequence.variant", description="Search parameter by chromosome and variant coordinate. 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 `chromosome-variant-coordinate=1$lt345$gt123`, this means it will search for the MolecularSequence resource with variants 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", "variant-start"} ) 6586 public static final String SP_CHROMOSOME_VARIANT_COORDINATE = "chromosome-variant-coordinate"; 6587 /** 6588 * <b>Fluent Client</b> search parameter constant for <b>chromosome-variant-coordinate</b> 6589 * <p> 6590 * Description: <b>Search parameter by chromosome and variant coordinate. 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 `chromosome-variant-coordinate=1$lt345$gt123`, this means it will search for the MolecularSequence resource with variants 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> 6591 * Type: <b>composite</b><br> 6592 * Path: <b></b><br> 6593 * </p> 6594 */ 6595 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam> CHROMOSOME_VARIANT_COORDINATE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam>(SP_CHROMOSOME_VARIANT_COORDINATE); 6596 6597 /** 6598 * Search parameter: <b>patient</b> 6599 * <p> 6600 * Description: <b>The subject that the observation is about</b><br> 6601 * Type: <b>reference</b><br> 6602 * Path: <b>MolecularSequence.patient</b><br> 6603 * </p> 6604 */ 6605 @SearchParamDefinition(name="patient", path="MolecularSequence.patient", description="The subject that the observation is about", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") }, target={Patient.class } ) 6606 public static final String SP_PATIENT = "patient"; 6607 /** 6608 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 6609 * <p> 6610 * Description: <b>The subject that the observation is about</b><br> 6611 * Type: <b>reference</b><br> 6612 * Path: <b>MolecularSequence.patient</b><br> 6613 * </p> 6614 */ 6615 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 6616 6617/** 6618 * Constant for fluent queries to be used to add include statements. Specifies 6619 * the path value of "<b>MolecularSequence:patient</b>". 6620 */ 6621 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("MolecularSequence:patient").toLocked(); 6622 6623 /** 6624 * Search parameter: <b>variant-start</b> 6625 * <p> 6626 * 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 variant.</b><br> 6627 * Type: <b>number</b><br> 6628 * Path: <b>MolecularSequence.variant.start</b><br> 6629 * </p> 6630 */ 6631 @SearchParamDefinition(name="variant-start", path="MolecularSequence.variant.start", 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 variant.", type="number" ) 6632 public static final String SP_VARIANT_START = "variant-start"; 6633 /** 6634 * <b>Fluent Client</b> search parameter constant for <b>variant-start</b> 6635 * <p> 6636 * 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 variant.</b><br> 6637 * Type: <b>number</b><br> 6638 * Path: <b>MolecularSequence.variant.start</b><br> 6639 * </p> 6640 */ 6641 public static final ca.uhn.fhir.rest.gclient.NumberClientParam VARIANT_START = new ca.uhn.fhir.rest.gclient.NumberClientParam(SP_VARIANT_START); 6642 6643 /** 6644 * Search parameter: <b>chromosome-window-coordinate</b> 6645 * <p> 6646 * Description: <b>Search parameter by chromosome and window. 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 `chromosome-window-coordinate=1$lt345$gt123`, this means it will search for the MolecularSequence resource with a window 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> 6647 * Type: <b>composite</b><br> 6648 * Path: <b></b><br> 6649 * </p> 6650 */ 6651 @SearchParamDefinition(name="chromosome-window-coordinate", path="MolecularSequence.referenceSeq", description="Search parameter by chromosome and window. 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 `chromosome-window-coordinate=1$lt345$gt123`, this means it will search for the MolecularSequence resource with a window 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", "window-start"} ) 6652 public static final String SP_CHROMOSOME_WINDOW_COORDINATE = "chromosome-window-coordinate"; 6653 /** 6654 * <b>Fluent Client</b> search parameter constant for <b>chromosome-window-coordinate</b> 6655 * <p> 6656 * Description: <b>Search parameter by chromosome and window. 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 `chromosome-window-coordinate=1$lt345$gt123`, this means it will search for the MolecularSequence resource with a window 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> 6657 * Type: <b>composite</b><br> 6658 * Path: <b></b><br> 6659 * </p> 6660 */ 6661 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam> CHROMOSOME_WINDOW_COORDINATE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam>(SP_CHROMOSOME_WINDOW_COORDINATE); 6662 6663 /** 6664 * Search parameter: <b>referenceseqid-window-coordinate</b> 6665 * <p> 6666 * Description: <b>Search parameter by reference sequence and window. 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 `referenceSeqId-window-coordinate=NC_000001.11$lt345$gt123`, this means it will search for the MolecularSequence resource with a window on NC_000001.11 and with position >123 and <345, where in 1-based system resource, all strings within region NC_000001.11:124-344 will be revealed, while in 0-based system resource, all strings within region NC_000001.11:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above.</b><br> 6667 * Type: <b>composite</b><br> 6668 * Path: <b></b><br> 6669 * </p> 6670 */ 6671 @SearchParamDefinition(name="referenceseqid-window-coordinate", path="MolecularSequence.referenceSeq", description="Search parameter by reference sequence and window. 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 `referenceSeqId-window-coordinate=NC_000001.11$lt345$gt123`, this means it will search for the MolecularSequence resource with a window on NC_000001.11 and with position >123 and <345, where in 1-based system resource, all strings within region NC_000001.11:124-344 will be revealed, while in 0-based system resource, all strings within region NC_000001.11:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above.", type="composite", compositeOf={"referenceseqid", "window-start"} ) 6672 public static final String SP_REFERENCESEQID_WINDOW_COORDINATE = "referenceseqid-window-coordinate"; 6673 /** 6674 * <b>Fluent Client</b> search parameter constant for <b>referenceseqid-window-coordinate</b> 6675 * <p> 6676 * Description: <b>Search parameter by reference sequence and window. 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 `referenceSeqId-window-coordinate=NC_000001.11$lt345$gt123`, this means it will search for the MolecularSequence resource with a window on NC_000001.11 and with position >123 and <345, where in 1-based system resource, all strings within region NC_000001.11:124-344 will be revealed, while in 0-based system resource, all strings within region NC_000001.11:123-344 will be revealed. You may want to check detail about 0-based v.s. 1-based above.</b><br> 6677 * Type: <b>composite</b><br> 6678 * Path: <b></b><br> 6679 * </p> 6680 */ 6681 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam> REFERENCESEQID_WINDOW_COORDINATE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.NumberClientParam>(SP_REFERENCESEQID_WINDOW_COORDINATE); 6682 6683 /** 6684 * Search parameter: <b>referenceseqid</b> 6685 * <p> 6686 * Description: <b>Reference Sequence of the sequence</b><br> 6687 * Type: <b>token</b><br> 6688 * Path: <b>MolecularSequence.referenceSeq.referenceSeqId</b><br> 6689 * </p> 6690 */ 6691 @SearchParamDefinition(name="referenceseqid", path="MolecularSequence.referenceSeq.referenceSeqId", description="Reference Sequence of the sequence", type="token" ) 6692 public static final String SP_REFERENCESEQID = "referenceseqid"; 6693 /** 6694 * <b>Fluent Client</b> search parameter constant for <b>referenceseqid</b> 6695 * <p> 6696 * Description: <b>Reference Sequence of the sequence</b><br> 6697 * Type: <b>token</b><br> 6698 * Path: <b>MolecularSequence.referenceSeq.referenceSeqId</b><br> 6699 * </p> 6700 */ 6701 public static final ca.uhn.fhir.rest.gclient.TokenClientParam REFERENCESEQID = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REFERENCESEQID); 6702 6703 6704}