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