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