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