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