001package org.hl7.fhir.dstu2016may.model; 002 003 004 005 006import java.math.BigDecimal; 007 008/* 009 Copyright (c) 2011+, HL7, Inc. 010 All rights reserved. 011 012 Redistribution and use in source and binary forms, with or without modification, 013 are permitted provided that the following conditions are met: 014 015 * Redistributions of source code must retain the above copyright notice, this 016 list of conditions and the following disclaimer. 017 * Redistributions in binary form must reproduce the above copyright notice, 018 this list of conditions and the following disclaimer in the documentation 019 and/or other materials provided with the distribution. 020 * Neither the name of HL7 nor the names of its contributors may be used to 021 endorse or promote products derived from this software without specific 022 prior written permission. 023 024 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 025 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 026 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 027 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 028 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 029 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 030 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 031 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 032 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 033 POSSIBILITY OF SUCH DAMAGE. 034 035*/ 036 037// Generated on Sun, May 8, 2016 03:05+1000 for FHIR v1.4.0 038import java.util.ArrayList; 039import java.util.Date; 040import java.util.List; 041 042import org.hl7.fhir.exceptions.FHIRException; 043import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 044 045import ca.uhn.fhir.model.api.annotation.Block; 046import ca.uhn.fhir.model.api.annotation.Child; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.ResourceDef; 049import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 050/** 051 * The MeasureReport resource contains the results of evaluating a measure. 052 */ 053@ResourceDef(name="MeasureReport", profile="http://hl7.org/fhir/Profile/MeasureReport") 054public class MeasureReport extends DomainResource { 055 056 public enum MeasureReportType { 057 /** 058 * An individual report that provides information on the performance for a given measure with respect to a single patient 059 */ 060 INDIVIDUAL, 061 /** 062 * A patient list report that includes a listing of patients that satisfied each population criteria in the measure 063 */ 064 PATIENTLIST, 065 /** 066 * A summary report that returns the number of patients in each population criteria for the measure 067 */ 068 SUMMARY, 069 /** 070 * added to help the parsers 071 */ 072 NULL; 073 public static MeasureReportType fromCode(String codeString) throws FHIRException { 074 if (codeString == null || "".equals(codeString)) 075 return null; 076 if ("individual".equals(codeString)) 077 return INDIVIDUAL; 078 if ("patient-list".equals(codeString)) 079 return PATIENTLIST; 080 if ("summary".equals(codeString)) 081 return SUMMARY; 082 throw new FHIRException("Unknown MeasureReportType code '"+codeString+"'"); 083 } 084 public String toCode() { 085 switch (this) { 086 case INDIVIDUAL: return "individual"; 087 case PATIENTLIST: return "patient-list"; 088 case SUMMARY: return "summary"; 089 case NULL: return null; 090 default: return "?"; 091 } 092 } 093 public String getSystem() { 094 switch (this) { 095 case INDIVIDUAL: return "http://hl7.org/fhir/measure-report-type"; 096 case PATIENTLIST: return "http://hl7.org/fhir/measure-report-type"; 097 case SUMMARY: return "http://hl7.org/fhir/measure-report-type"; 098 case NULL: return null; 099 default: return "?"; 100 } 101 } 102 public String getDefinition() { 103 switch (this) { 104 case INDIVIDUAL: return "An individual report that provides information on the performance for a given measure with respect to a single patient"; 105 case PATIENTLIST: return "A patient list report that includes a listing of patients that satisfied each population criteria in the measure"; 106 case SUMMARY: return "A summary report that returns the number of patients in each population criteria for the measure"; 107 case NULL: return null; 108 default: return "?"; 109 } 110 } 111 public String getDisplay() { 112 switch (this) { 113 case INDIVIDUAL: return "Individual"; 114 case PATIENTLIST: return "Patient List"; 115 case SUMMARY: return "Summary"; 116 case NULL: return null; 117 default: return "?"; 118 } 119 } 120 } 121 122 public static class MeasureReportTypeEnumFactory implements EnumFactory<MeasureReportType> { 123 public MeasureReportType fromCode(String codeString) throws IllegalArgumentException { 124 if (codeString == null || "".equals(codeString)) 125 if (codeString == null || "".equals(codeString)) 126 return null; 127 if ("individual".equals(codeString)) 128 return MeasureReportType.INDIVIDUAL; 129 if ("patient-list".equals(codeString)) 130 return MeasureReportType.PATIENTLIST; 131 if ("summary".equals(codeString)) 132 return MeasureReportType.SUMMARY; 133 throw new IllegalArgumentException("Unknown MeasureReportType code '"+codeString+"'"); 134 } 135 public Enumeration<MeasureReportType> fromType(Base code) throws FHIRException { 136 if (code == null || code.isEmpty()) 137 return null; 138 String codeString = ((PrimitiveType) code).asStringValue(); 139 if (codeString == null || "".equals(codeString)) 140 return null; 141 if ("individual".equals(codeString)) 142 return new Enumeration<MeasureReportType>(this, MeasureReportType.INDIVIDUAL); 143 if ("patient-list".equals(codeString)) 144 return new Enumeration<MeasureReportType>(this, MeasureReportType.PATIENTLIST); 145 if ("summary".equals(codeString)) 146 return new Enumeration<MeasureReportType>(this, MeasureReportType.SUMMARY); 147 throw new FHIRException("Unknown MeasureReportType code '"+codeString+"'"); 148 } 149 public String toCode(MeasureReportType code) { 150 if (code == MeasureReportType.INDIVIDUAL) 151 return "individual"; 152 if (code == MeasureReportType.PATIENTLIST) 153 return "patient-list"; 154 if (code == MeasureReportType.SUMMARY) 155 return "summary"; 156 return "?"; 157 } 158 public String toSystem(MeasureReportType code) { 159 return code.getSystem(); 160 } 161 } 162 163 public enum MeasureReportStatus { 164 /** 165 * The report is complete and ready for use 166 */ 167 COMPLETE, 168 /** 169 * The report is currently being generated 170 */ 171 PENDING, 172 /** 173 * An error occurred attempting to generate the report 174 */ 175 ERROR, 176 /** 177 * added to help the parsers 178 */ 179 NULL; 180 public static MeasureReportStatus fromCode(String codeString) throws FHIRException { 181 if (codeString == null || "".equals(codeString)) 182 return null; 183 if ("complete".equals(codeString)) 184 return COMPLETE; 185 if ("pending".equals(codeString)) 186 return PENDING; 187 if ("error".equals(codeString)) 188 return ERROR; 189 throw new FHIRException("Unknown MeasureReportStatus code '"+codeString+"'"); 190 } 191 public String toCode() { 192 switch (this) { 193 case COMPLETE: return "complete"; 194 case PENDING: return "pending"; 195 case ERROR: return "error"; 196 case NULL: return null; 197 default: return "?"; 198 } 199 } 200 public String getSystem() { 201 switch (this) { 202 case COMPLETE: return "http://hl7.org/fhir/measure-report-status"; 203 case PENDING: return "http://hl7.org/fhir/measure-report-status"; 204 case ERROR: return "http://hl7.org/fhir/measure-report-status"; 205 case NULL: return null; 206 default: return "?"; 207 } 208 } 209 public String getDefinition() { 210 switch (this) { 211 case COMPLETE: return "The report is complete and ready for use"; 212 case PENDING: return "The report is currently being generated"; 213 case ERROR: return "An error occurred attempting to generate the report"; 214 case NULL: return null; 215 default: return "?"; 216 } 217 } 218 public String getDisplay() { 219 switch (this) { 220 case COMPLETE: return "Complete"; 221 case PENDING: return "Pending"; 222 case ERROR: return "Error"; 223 case NULL: return null; 224 default: return "?"; 225 } 226 } 227 } 228 229 public static class MeasureReportStatusEnumFactory implements EnumFactory<MeasureReportStatus> { 230 public MeasureReportStatus fromCode(String codeString) throws IllegalArgumentException { 231 if (codeString == null || "".equals(codeString)) 232 if (codeString == null || "".equals(codeString)) 233 return null; 234 if ("complete".equals(codeString)) 235 return MeasureReportStatus.COMPLETE; 236 if ("pending".equals(codeString)) 237 return MeasureReportStatus.PENDING; 238 if ("error".equals(codeString)) 239 return MeasureReportStatus.ERROR; 240 throw new IllegalArgumentException("Unknown MeasureReportStatus code '"+codeString+"'"); 241 } 242 public Enumeration<MeasureReportStatus> fromType(Base code) throws FHIRException { 243 if (code == null || code.isEmpty()) 244 return null; 245 String codeString = ((PrimitiveType) code).asStringValue(); 246 if (codeString == null || "".equals(codeString)) 247 return null; 248 if ("complete".equals(codeString)) 249 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.COMPLETE); 250 if ("pending".equals(codeString)) 251 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.PENDING); 252 if ("error".equals(codeString)) 253 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.ERROR); 254 throw new FHIRException("Unknown MeasureReportStatus code '"+codeString+"'"); 255 } 256 public String toCode(MeasureReportStatus code) { 257 if (code == MeasureReportStatus.COMPLETE) 258 return "complete"; 259 if (code == MeasureReportStatus.PENDING) 260 return "pending"; 261 if (code == MeasureReportStatus.ERROR) 262 return "error"; 263 return "?"; 264 } 265 public String toSystem(MeasureReportStatus code) { 266 return code.getSystem(); 267 } 268 } 269 270 @Block() 271 public static class MeasureReportGroupComponent extends BackboneElement implements IBaseBackboneElement { 272 /** 273 * The identifier of the population group as defined in the measure definition. 274 */ 275 @Child(name = "identifier", type = {Identifier.class}, order=1, min=1, max=1, modifier=false, summary=true) 276 @Description(shortDefinition="Identifier of the population group being reported", formalDefinition="The identifier of the population group as defined in the measure definition." ) 277 protected Identifier identifier; 278 279 /** 280 * The populations that make up the population group, one for each type of population appropriate for the measure. 281 */ 282 @Child(name = "population", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 283 @Description(shortDefinition="The populations in the group", formalDefinition="The populations that make up the population group, one for each type of population appropriate for the measure." ) 284 protected List<MeasureReportGroupPopulationComponent> population; 285 286 /** 287 * The measure score. 288 */ 289 @Child(name = "measureScore", type = {DecimalType.class}, order=3, min=0, max=1, modifier=false, summary=true) 290 @Description(shortDefinition="The measure score", formalDefinition="The measure score." ) 291 protected DecimalType measureScore; 292 293 /** 294 * When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure. 295 */ 296 @Child(name = "stratifier", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 297 @Description(shortDefinition="Stratification results", formalDefinition="When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure." ) 298 protected List<MeasureReportGroupStratifierComponent> stratifier; 299 300 /** 301 * Supplemental data elements for the measure provide additional information requested by the measure for each patient involved in the populations. 302 */ 303 @Child(name = "supplementalData", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 304 @Description(shortDefinition="Supplemental data elements for the measure", formalDefinition="Supplemental data elements for the measure provide additional information requested by the measure for each patient involved in the populations." ) 305 protected List<MeasureReportGroupSupplementalDataComponent> supplementalData; 306 307 private static final long serialVersionUID = -832029515L; 308 309 /** 310 * Constructor 311 */ 312 public MeasureReportGroupComponent() { 313 super(); 314 } 315 316 /** 317 * Constructor 318 */ 319 public MeasureReportGroupComponent(Identifier identifier) { 320 super(); 321 this.identifier = identifier; 322 } 323 324 /** 325 * @return {@link #identifier} (The identifier of the population group as defined in the measure definition.) 326 */ 327 public Identifier getIdentifier() { 328 if (this.identifier == null) 329 if (Configuration.errorOnAutoCreate()) 330 throw new Error("Attempt to auto-create MeasureReportGroupComponent.identifier"); 331 else if (Configuration.doAutoCreate()) 332 this.identifier = new Identifier(); // cc 333 return this.identifier; 334 } 335 336 public boolean hasIdentifier() { 337 return this.identifier != null && !this.identifier.isEmpty(); 338 } 339 340 /** 341 * @param value {@link #identifier} (The identifier of the population group as defined in the measure definition.) 342 */ 343 public MeasureReportGroupComponent setIdentifier(Identifier value) { 344 this.identifier = value; 345 return this; 346 } 347 348 /** 349 * @return {@link #population} (The populations that make up the population group, one for each type of population appropriate for the measure.) 350 */ 351 public List<MeasureReportGroupPopulationComponent> getPopulation() { 352 if (this.population == null) 353 this.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 354 return this.population; 355 } 356 357 public boolean hasPopulation() { 358 if (this.population == null) 359 return false; 360 for (MeasureReportGroupPopulationComponent item : this.population) 361 if (!item.isEmpty()) 362 return true; 363 return false; 364 } 365 366 /** 367 * @return {@link #population} (The populations that make up the population group, one for each type of population appropriate for the measure.) 368 */ 369 // syntactic sugar 370 public MeasureReportGroupPopulationComponent addPopulation() { //3 371 MeasureReportGroupPopulationComponent t = new MeasureReportGroupPopulationComponent(); 372 if (this.population == null) 373 this.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 374 this.population.add(t); 375 return t; 376 } 377 378 // syntactic sugar 379 public MeasureReportGroupComponent addPopulation(MeasureReportGroupPopulationComponent t) { //3 380 if (t == null) 381 return this; 382 if (this.population == null) 383 this.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 384 this.population.add(t); 385 return this; 386 } 387 388 /** 389 * @return {@link #measureScore} (The measure score.). This is the underlying object with id, value and extensions. The accessor "getMeasureScore" gives direct access to the value 390 */ 391 public DecimalType getMeasureScoreElement() { 392 if (this.measureScore == null) 393 if (Configuration.errorOnAutoCreate()) 394 throw new Error("Attempt to auto-create MeasureReportGroupComponent.measureScore"); 395 else if (Configuration.doAutoCreate()) 396 this.measureScore = new DecimalType(); // bb 397 return this.measureScore; 398 } 399 400 public boolean hasMeasureScoreElement() { 401 return this.measureScore != null && !this.measureScore.isEmpty(); 402 } 403 404 public boolean hasMeasureScore() { 405 return this.measureScore != null && !this.measureScore.isEmpty(); 406 } 407 408 /** 409 * @param value {@link #measureScore} (The measure score.). This is the underlying object with id, value and extensions. The accessor "getMeasureScore" gives direct access to the value 410 */ 411 public MeasureReportGroupComponent setMeasureScoreElement(DecimalType value) { 412 this.measureScore = value; 413 return this; 414 } 415 416 /** 417 * @return The measure score. 418 */ 419 public BigDecimal getMeasureScore() { 420 return this.measureScore == null ? null : this.measureScore.getValue(); 421 } 422 423 /** 424 * @param value The measure score. 425 */ 426 public MeasureReportGroupComponent setMeasureScore(BigDecimal value) { 427 if (value == null) 428 this.measureScore = null; 429 else { 430 if (this.measureScore == null) 431 this.measureScore = new DecimalType(); 432 this.measureScore.setValue(value); 433 } 434 return this; 435 } 436 437 /** 438 * @param value The measure score. 439 */ 440 public MeasureReportGroupComponent setMeasureScore(long value) { 441 this.measureScore = new DecimalType(); 442 this.measureScore.setValue(value); 443 return this; 444 } 445 446 /** 447 * @param value The measure score. 448 */ 449 public MeasureReportGroupComponent setMeasureScore(double value) { 450 this.measureScore = new DecimalType(); 451 this.measureScore.setValue(value); 452 return this; 453 } 454 455 /** 456 * @return {@link #stratifier} (When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure.) 457 */ 458 public List<MeasureReportGroupStratifierComponent> getStratifier() { 459 if (this.stratifier == null) 460 this.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 461 return this.stratifier; 462 } 463 464 public boolean hasStratifier() { 465 if (this.stratifier == null) 466 return false; 467 for (MeasureReportGroupStratifierComponent item : this.stratifier) 468 if (!item.isEmpty()) 469 return true; 470 return false; 471 } 472 473 /** 474 * @return {@link #stratifier} (When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure.) 475 */ 476 // syntactic sugar 477 public MeasureReportGroupStratifierComponent addStratifier() { //3 478 MeasureReportGroupStratifierComponent t = new MeasureReportGroupStratifierComponent(); 479 if (this.stratifier == null) 480 this.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 481 this.stratifier.add(t); 482 return t; 483 } 484 485 // syntactic sugar 486 public MeasureReportGroupComponent addStratifier(MeasureReportGroupStratifierComponent t) { //3 487 if (t == null) 488 return this; 489 if (this.stratifier == null) 490 this.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 491 this.stratifier.add(t); 492 return this; 493 } 494 495 /** 496 * @return {@link #supplementalData} (Supplemental data elements for the measure provide additional information requested by the measure for each patient involved in the populations.) 497 */ 498 public List<MeasureReportGroupSupplementalDataComponent> getSupplementalData() { 499 if (this.supplementalData == null) 500 this.supplementalData = new ArrayList<MeasureReportGroupSupplementalDataComponent>(); 501 return this.supplementalData; 502 } 503 504 public boolean hasSupplementalData() { 505 if (this.supplementalData == null) 506 return false; 507 for (MeasureReportGroupSupplementalDataComponent item : this.supplementalData) 508 if (!item.isEmpty()) 509 return true; 510 return false; 511 } 512 513 /** 514 * @return {@link #supplementalData} (Supplemental data elements for the measure provide additional information requested by the measure for each patient involved in the populations.) 515 */ 516 // syntactic sugar 517 public MeasureReportGroupSupplementalDataComponent addSupplementalData() { //3 518 MeasureReportGroupSupplementalDataComponent t = new MeasureReportGroupSupplementalDataComponent(); 519 if (this.supplementalData == null) 520 this.supplementalData = new ArrayList<MeasureReportGroupSupplementalDataComponent>(); 521 this.supplementalData.add(t); 522 return t; 523 } 524 525 // syntactic sugar 526 public MeasureReportGroupComponent addSupplementalData(MeasureReportGroupSupplementalDataComponent t) { //3 527 if (t == null) 528 return this; 529 if (this.supplementalData == null) 530 this.supplementalData = new ArrayList<MeasureReportGroupSupplementalDataComponent>(); 531 this.supplementalData.add(t); 532 return this; 533 } 534 535 protected void listChildren(List<Property> childrenList) { 536 super.listChildren(childrenList); 537 childrenList.add(new Property("identifier", "Identifier", "The identifier of the population group as defined in the measure definition.", 0, java.lang.Integer.MAX_VALUE, identifier)); 538 childrenList.add(new Property("population", "", "The populations that make up the population group, one for each type of population appropriate for the measure.", 0, java.lang.Integer.MAX_VALUE, population)); 539 childrenList.add(new Property("measureScore", "decimal", "The measure score.", 0, java.lang.Integer.MAX_VALUE, measureScore)); 540 childrenList.add(new Property("stratifier", "", "When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure.", 0, java.lang.Integer.MAX_VALUE, stratifier)); 541 childrenList.add(new Property("supplementalData", "", "Supplemental data elements for the measure provide additional information requested by the measure for each patient involved in the populations.", 0, java.lang.Integer.MAX_VALUE, supplementalData)); 542 } 543 544 @Override 545 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 546 switch (hash) { 547 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // Identifier 548 case -2023558323: /*population*/ return this.population == null ? new Base[0] : this.population.toArray(new Base[this.population.size()]); // MeasureReportGroupPopulationComponent 549 case -386313260: /*measureScore*/ return this.measureScore == null ? new Base[0] : new Base[] {this.measureScore}; // DecimalType 550 case 90983669: /*stratifier*/ return this.stratifier == null ? new Base[0] : this.stratifier.toArray(new Base[this.stratifier.size()]); // MeasureReportGroupStratifierComponent 551 case 1447496814: /*supplementalData*/ return this.supplementalData == null ? new Base[0] : this.supplementalData.toArray(new Base[this.supplementalData.size()]); // MeasureReportGroupSupplementalDataComponent 552 default: return super.getProperty(hash, name, checkValid); 553 } 554 555 } 556 557 @Override 558 public void setProperty(int hash, String name, Base value) throws FHIRException { 559 switch (hash) { 560 case -1618432855: // identifier 561 this.identifier = castToIdentifier(value); // Identifier 562 break; 563 case -2023558323: // population 564 this.getPopulation().add((MeasureReportGroupPopulationComponent) value); // MeasureReportGroupPopulationComponent 565 break; 566 case -386313260: // measureScore 567 this.measureScore = castToDecimal(value); // DecimalType 568 break; 569 case 90983669: // stratifier 570 this.getStratifier().add((MeasureReportGroupStratifierComponent) value); // MeasureReportGroupStratifierComponent 571 break; 572 case 1447496814: // supplementalData 573 this.getSupplementalData().add((MeasureReportGroupSupplementalDataComponent) value); // MeasureReportGroupSupplementalDataComponent 574 break; 575 default: super.setProperty(hash, name, value); 576 } 577 578 } 579 580 @Override 581 public void setProperty(String name, Base value) throws FHIRException { 582 if (name.equals("identifier")) 583 this.identifier = castToIdentifier(value); // Identifier 584 else if (name.equals("population")) 585 this.getPopulation().add((MeasureReportGroupPopulationComponent) value); 586 else if (name.equals("measureScore")) 587 this.measureScore = castToDecimal(value); // DecimalType 588 else if (name.equals("stratifier")) 589 this.getStratifier().add((MeasureReportGroupStratifierComponent) value); 590 else if (name.equals("supplementalData")) 591 this.getSupplementalData().add((MeasureReportGroupSupplementalDataComponent) value); 592 else 593 super.setProperty(name, value); 594 } 595 596 @Override 597 public Base makeProperty(int hash, String name) throws FHIRException { 598 switch (hash) { 599 case -1618432855: return getIdentifier(); // Identifier 600 case -2023558323: return addPopulation(); // MeasureReportGroupPopulationComponent 601 case -386313260: throw new FHIRException("Cannot make property measureScore as it is not a complex type"); // DecimalType 602 case 90983669: return addStratifier(); // MeasureReportGroupStratifierComponent 603 case 1447496814: return addSupplementalData(); // MeasureReportGroupSupplementalDataComponent 604 default: return super.makeProperty(hash, name); 605 } 606 607 } 608 609 @Override 610 public Base addChild(String name) throws FHIRException { 611 if (name.equals("identifier")) { 612 this.identifier = new Identifier(); 613 return this.identifier; 614 } 615 else if (name.equals("population")) { 616 return addPopulation(); 617 } 618 else if (name.equals("measureScore")) { 619 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.measureScore"); 620 } 621 else if (name.equals("stratifier")) { 622 return addStratifier(); 623 } 624 else if (name.equals("supplementalData")) { 625 return addSupplementalData(); 626 } 627 else 628 return super.addChild(name); 629 } 630 631 public MeasureReportGroupComponent copy() { 632 MeasureReportGroupComponent dst = new MeasureReportGroupComponent(); 633 copyValues(dst); 634 dst.identifier = identifier == null ? null : identifier.copy(); 635 if (population != null) { 636 dst.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 637 for (MeasureReportGroupPopulationComponent i : population) 638 dst.population.add(i.copy()); 639 }; 640 dst.measureScore = measureScore == null ? null : measureScore.copy(); 641 if (stratifier != null) { 642 dst.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 643 for (MeasureReportGroupStratifierComponent i : stratifier) 644 dst.stratifier.add(i.copy()); 645 }; 646 if (supplementalData != null) { 647 dst.supplementalData = new ArrayList<MeasureReportGroupSupplementalDataComponent>(); 648 for (MeasureReportGroupSupplementalDataComponent i : supplementalData) 649 dst.supplementalData.add(i.copy()); 650 }; 651 return dst; 652 } 653 654 @Override 655 public boolean equalsDeep(Base other) { 656 if (!super.equalsDeep(other)) 657 return false; 658 if (!(other instanceof MeasureReportGroupComponent)) 659 return false; 660 MeasureReportGroupComponent o = (MeasureReportGroupComponent) other; 661 return compareDeep(identifier, o.identifier, true) && compareDeep(population, o.population, true) 662 && compareDeep(measureScore, o.measureScore, true) && compareDeep(stratifier, o.stratifier, true) 663 && compareDeep(supplementalData, o.supplementalData, true); 664 } 665 666 @Override 667 public boolean equalsShallow(Base other) { 668 if (!super.equalsShallow(other)) 669 return false; 670 if (!(other instanceof MeasureReportGroupComponent)) 671 return false; 672 MeasureReportGroupComponent o = (MeasureReportGroupComponent) other; 673 return compareValues(measureScore, o.measureScore, true); 674 } 675 676 public boolean isEmpty() { 677 return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (population == null || population.isEmpty()) 678 && (measureScore == null || measureScore.isEmpty()) && (stratifier == null || stratifier.isEmpty()) 679 && (supplementalData == null || supplementalData.isEmpty()); 680 } 681 682 public String fhirType() { 683 return "MeasureReport.group"; 684 685 } 686 687 } 688 689 @Block() 690 public static class MeasureReportGroupPopulationComponent extends BackboneElement implements IBaseBackboneElement { 691 /** 692 * The type of the population. 693 */ 694 @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 695 @Description(shortDefinition="initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-score", formalDefinition="The type of the population." ) 696 protected CodeType type; 697 698 /** 699 * The number of members of the population. 700 */ 701 @Child(name = "count", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=true) 702 @Description(shortDefinition="Size of the population", formalDefinition="The number of members of the population." ) 703 protected IntegerType count; 704 705 /** 706 * This element refers to a List of patient level MeasureReport resources, one for each patient in this population. 707 */ 708 @Child(name = "patients", type = {ListResource.class}, order=3, min=0, max=1, modifier=false, summary=true) 709 @Description(shortDefinition="For patient-list reports, the patients in this population", formalDefinition="This element refers to a List of patient level MeasureReport resources, one for each patient in this population." ) 710 protected Reference patients; 711 712 /** 713 * The actual object that is the target of the reference (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 714 */ 715 protected ListResource patientsTarget; 716 717 private static final long serialVersionUID = 407500224L; 718 719 /** 720 * Constructor 721 */ 722 public MeasureReportGroupPopulationComponent() { 723 super(); 724 } 725 726 /** 727 * Constructor 728 */ 729 public MeasureReportGroupPopulationComponent(CodeType type) { 730 super(); 731 this.type = type; 732 } 733 734 /** 735 * @return {@link #type} (The type of the population.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 736 */ 737 public CodeType getTypeElement() { 738 if (this.type == null) 739 if (Configuration.errorOnAutoCreate()) 740 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.type"); 741 else if (Configuration.doAutoCreate()) 742 this.type = new CodeType(); // bb 743 return this.type; 744 } 745 746 public boolean hasTypeElement() { 747 return this.type != null && !this.type.isEmpty(); 748 } 749 750 public boolean hasType() { 751 return this.type != null && !this.type.isEmpty(); 752 } 753 754 /** 755 * @param value {@link #type} (The type of the population.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 756 */ 757 public MeasureReportGroupPopulationComponent setTypeElement(CodeType value) { 758 this.type = value; 759 return this; 760 } 761 762 /** 763 * @return The type of the population. 764 */ 765 public String getType() { 766 return this.type == null ? null : this.type.getValue(); 767 } 768 769 /** 770 * @param value The type of the population. 771 */ 772 public MeasureReportGroupPopulationComponent setType(String value) { 773 if (this.type == null) 774 this.type = new CodeType(); 775 this.type.setValue(value); 776 return this; 777 } 778 779 /** 780 * @return {@link #count} (The number of members of the population.). This is the underlying object with id, value and extensions. The accessor "getCount" gives direct access to the value 781 */ 782 public IntegerType getCountElement() { 783 if (this.count == null) 784 if (Configuration.errorOnAutoCreate()) 785 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.count"); 786 else if (Configuration.doAutoCreate()) 787 this.count = new IntegerType(); // bb 788 return this.count; 789 } 790 791 public boolean hasCountElement() { 792 return this.count != null && !this.count.isEmpty(); 793 } 794 795 public boolean hasCount() { 796 return this.count != null && !this.count.isEmpty(); 797 } 798 799 /** 800 * @param value {@link #count} (The number of members of the population.). This is the underlying object with id, value and extensions. The accessor "getCount" gives direct access to the value 801 */ 802 public MeasureReportGroupPopulationComponent setCountElement(IntegerType value) { 803 this.count = value; 804 return this; 805 } 806 807 /** 808 * @return The number of members of the population. 809 */ 810 public int getCount() { 811 return this.count == null || this.count.isEmpty() ? 0 : this.count.getValue(); 812 } 813 814 /** 815 * @param value The number of members of the population. 816 */ 817 public MeasureReportGroupPopulationComponent setCount(int value) { 818 if (this.count == null) 819 this.count = new IntegerType(); 820 this.count.setValue(value); 821 return this; 822 } 823 824 /** 825 * @return {@link #patients} (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 826 */ 827 public Reference getPatients() { 828 if (this.patients == null) 829 if (Configuration.errorOnAutoCreate()) 830 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.patients"); 831 else if (Configuration.doAutoCreate()) 832 this.patients = new Reference(); // cc 833 return this.patients; 834 } 835 836 public boolean hasPatients() { 837 return this.patients != null && !this.patients.isEmpty(); 838 } 839 840 /** 841 * @param value {@link #patients} (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 842 */ 843 public MeasureReportGroupPopulationComponent setPatients(Reference value) { 844 this.patients = value; 845 return this; 846 } 847 848 /** 849 * @return {@link #patients} 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. (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 850 */ 851 public ListResource getPatientsTarget() { 852 if (this.patientsTarget == null) 853 if (Configuration.errorOnAutoCreate()) 854 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.patients"); 855 else if (Configuration.doAutoCreate()) 856 this.patientsTarget = new ListResource(); // aa 857 return this.patientsTarget; 858 } 859 860 /** 861 * @param value {@link #patients} 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. (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 862 */ 863 public MeasureReportGroupPopulationComponent setPatientsTarget(ListResource value) { 864 this.patientsTarget = value; 865 return this; 866 } 867 868 protected void listChildren(List<Property> childrenList) { 869 super.listChildren(childrenList); 870 childrenList.add(new Property("type", "code", "The type of the population.", 0, java.lang.Integer.MAX_VALUE, type)); 871 childrenList.add(new Property("count", "integer", "The number of members of the population.", 0, java.lang.Integer.MAX_VALUE, count)); 872 childrenList.add(new Property("patients", "Reference(List)", "This element refers to a List of patient level MeasureReport resources, one for each patient in this population.", 0, java.lang.Integer.MAX_VALUE, patients)); 873 } 874 875 @Override 876 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 877 switch (hash) { 878 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeType 879 case 94851343: /*count*/ return this.count == null ? new Base[0] : new Base[] {this.count}; // IntegerType 880 case 1235842574: /*patients*/ return this.patients == null ? new Base[0] : new Base[] {this.patients}; // Reference 881 default: return super.getProperty(hash, name, checkValid); 882 } 883 884 } 885 886 @Override 887 public void setProperty(int hash, String name, Base value) throws FHIRException { 888 switch (hash) { 889 case 3575610: // type 890 this.type = castToCode(value); // CodeType 891 break; 892 case 94851343: // count 893 this.count = castToInteger(value); // IntegerType 894 break; 895 case 1235842574: // patients 896 this.patients = castToReference(value); // Reference 897 break; 898 default: super.setProperty(hash, name, value); 899 } 900 901 } 902 903 @Override 904 public void setProperty(String name, Base value) throws FHIRException { 905 if (name.equals("type")) 906 this.type = castToCode(value); // CodeType 907 else if (name.equals("count")) 908 this.count = castToInteger(value); // IntegerType 909 else if (name.equals("patients")) 910 this.patients = castToReference(value); // Reference 911 else 912 super.setProperty(name, value); 913 } 914 915 @Override 916 public Base makeProperty(int hash, String name) throws FHIRException { 917 switch (hash) { 918 case 3575610: throw new FHIRException("Cannot make property type as it is not a complex type"); // CodeType 919 case 94851343: throw new FHIRException("Cannot make property count as it is not a complex type"); // IntegerType 920 case 1235842574: return getPatients(); // Reference 921 default: return super.makeProperty(hash, name); 922 } 923 924 } 925 926 @Override 927 public Base addChild(String name) throws FHIRException { 928 if (name.equals("type")) { 929 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.type"); 930 } 931 else if (name.equals("count")) { 932 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.count"); 933 } 934 else if (name.equals("patients")) { 935 this.patients = new Reference(); 936 return this.patients; 937 } 938 else 939 return super.addChild(name); 940 } 941 942 public MeasureReportGroupPopulationComponent copy() { 943 MeasureReportGroupPopulationComponent dst = new MeasureReportGroupPopulationComponent(); 944 copyValues(dst); 945 dst.type = type == null ? null : type.copy(); 946 dst.count = count == null ? null : count.copy(); 947 dst.patients = patients == null ? null : patients.copy(); 948 return dst; 949 } 950 951 @Override 952 public boolean equalsDeep(Base other) { 953 if (!super.equalsDeep(other)) 954 return false; 955 if (!(other instanceof MeasureReportGroupPopulationComponent)) 956 return false; 957 MeasureReportGroupPopulationComponent o = (MeasureReportGroupPopulationComponent) other; 958 return compareDeep(type, o.type, true) && compareDeep(count, o.count, true) && compareDeep(patients, o.patients, true) 959 ; 960 } 961 962 @Override 963 public boolean equalsShallow(Base other) { 964 if (!super.equalsShallow(other)) 965 return false; 966 if (!(other instanceof MeasureReportGroupPopulationComponent)) 967 return false; 968 MeasureReportGroupPopulationComponent o = (MeasureReportGroupPopulationComponent) other; 969 return compareValues(type, o.type, true) && compareValues(count, o.count, true); 970 } 971 972 public boolean isEmpty() { 973 return super.isEmpty() && (type == null || type.isEmpty()) && (count == null || count.isEmpty()) 974 && (patients == null || patients.isEmpty()); 975 } 976 977 public String fhirType() { 978 return "MeasureReport.group.population"; 979 980 } 981 982 } 983 984 @Block() 985 public static class MeasureReportGroupStratifierComponent extends BackboneElement implements IBaseBackboneElement { 986 /** 987 * The identifier of this stratifier, as defined in the measure definition. 988 */ 989 @Child(name = "identifier", type = {Identifier.class}, order=1, min=1, max=1, modifier=false, summary=true) 990 @Description(shortDefinition="Identifier of the stratifier", formalDefinition="The identifier of this stratifier, as defined in the measure definition." ) 991 protected Identifier identifier; 992 993 /** 994 * This element contains the results for a single stratum within the stratifier. For example, when stratifying on administrative gender, there will be four strata, one for each possible gender value. 995 */ 996 @Child(name = "group", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 997 @Description(shortDefinition="Stratum results, one for each unique value in the stratifier", formalDefinition="This element contains the results for a single stratum within the stratifier. For example, when stratifying on administrative gender, there will be four strata, one for each possible gender value." ) 998 protected List<MeasureReportGroupStratifierGroupComponent> group; 999 1000 private static final long serialVersionUID = -229867715L; 1001 1002 /** 1003 * Constructor 1004 */ 1005 public MeasureReportGroupStratifierComponent() { 1006 super(); 1007 } 1008 1009 /** 1010 * Constructor 1011 */ 1012 public MeasureReportGroupStratifierComponent(Identifier identifier) { 1013 super(); 1014 this.identifier = identifier; 1015 } 1016 1017 /** 1018 * @return {@link #identifier} (The identifier of this stratifier, as defined in the measure definition.) 1019 */ 1020 public Identifier getIdentifier() { 1021 if (this.identifier == null) 1022 if (Configuration.errorOnAutoCreate()) 1023 throw new Error("Attempt to auto-create MeasureReportGroupStratifierComponent.identifier"); 1024 else if (Configuration.doAutoCreate()) 1025 this.identifier = new Identifier(); // cc 1026 return this.identifier; 1027 } 1028 1029 public boolean hasIdentifier() { 1030 return this.identifier != null && !this.identifier.isEmpty(); 1031 } 1032 1033 /** 1034 * @param value {@link #identifier} (The identifier of this stratifier, as defined in the measure definition.) 1035 */ 1036 public MeasureReportGroupStratifierComponent setIdentifier(Identifier value) { 1037 this.identifier = value; 1038 return this; 1039 } 1040 1041 /** 1042 * @return {@link #group} (This element contains the results for a single stratum within the stratifier. For example, when stratifying on administrative gender, there will be four strata, one for each possible gender value.) 1043 */ 1044 public List<MeasureReportGroupStratifierGroupComponent> getGroup() { 1045 if (this.group == null) 1046 this.group = new ArrayList<MeasureReportGroupStratifierGroupComponent>(); 1047 return this.group; 1048 } 1049 1050 public boolean hasGroup() { 1051 if (this.group == null) 1052 return false; 1053 for (MeasureReportGroupStratifierGroupComponent item : this.group) 1054 if (!item.isEmpty()) 1055 return true; 1056 return false; 1057 } 1058 1059 /** 1060 * @return {@link #group} (This element contains the results for a single stratum within the stratifier. For example, when stratifying on administrative gender, there will be four strata, one for each possible gender value.) 1061 */ 1062 // syntactic sugar 1063 public MeasureReportGroupStratifierGroupComponent addGroup() { //3 1064 MeasureReportGroupStratifierGroupComponent t = new MeasureReportGroupStratifierGroupComponent(); 1065 if (this.group == null) 1066 this.group = new ArrayList<MeasureReportGroupStratifierGroupComponent>(); 1067 this.group.add(t); 1068 return t; 1069 } 1070 1071 // syntactic sugar 1072 public MeasureReportGroupStratifierComponent addGroup(MeasureReportGroupStratifierGroupComponent t) { //3 1073 if (t == null) 1074 return this; 1075 if (this.group == null) 1076 this.group = new ArrayList<MeasureReportGroupStratifierGroupComponent>(); 1077 this.group.add(t); 1078 return this; 1079 } 1080 1081 protected void listChildren(List<Property> childrenList) { 1082 super.listChildren(childrenList); 1083 childrenList.add(new Property("identifier", "Identifier", "The identifier of this stratifier, as defined in the measure definition.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1084 childrenList.add(new Property("group", "", "This element contains the results for a single stratum within the stratifier. For example, when stratifying on administrative gender, there will be four strata, one for each possible gender value.", 0, java.lang.Integer.MAX_VALUE, group)); 1085 } 1086 1087 @Override 1088 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1089 switch (hash) { 1090 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // Identifier 1091 case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // MeasureReportGroupStratifierGroupComponent 1092 default: return super.getProperty(hash, name, checkValid); 1093 } 1094 1095 } 1096 1097 @Override 1098 public void setProperty(int hash, String name, Base value) throws FHIRException { 1099 switch (hash) { 1100 case -1618432855: // identifier 1101 this.identifier = castToIdentifier(value); // Identifier 1102 break; 1103 case 98629247: // group 1104 this.getGroup().add((MeasureReportGroupStratifierGroupComponent) value); // MeasureReportGroupStratifierGroupComponent 1105 break; 1106 default: super.setProperty(hash, name, value); 1107 } 1108 1109 } 1110 1111 @Override 1112 public void setProperty(String name, Base value) throws FHIRException { 1113 if (name.equals("identifier")) 1114 this.identifier = castToIdentifier(value); // Identifier 1115 else if (name.equals("group")) 1116 this.getGroup().add((MeasureReportGroupStratifierGroupComponent) value); 1117 else 1118 super.setProperty(name, value); 1119 } 1120 1121 @Override 1122 public Base makeProperty(int hash, String name) throws FHIRException { 1123 switch (hash) { 1124 case -1618432855: return getIdentifier(); // Identifier 1125 case 98629247: return addGroup(); // MeasureReportGroupStratifierGroupComponent 1126 default: return super.makeProperty(hash, name); 1127 } 1128 1129 } 1130 1131 @Override 1132 public Base addChild(String name) throws FHIRException { 1133 if (name.equals("identifier")) { 1134 this.identifier = new Identifier(); 1135 return this.identifier; 1136 } 1137 else if (name.equals("group")) { 1138 return addGroup(); 1139 } 1140 else 1141 return super.addChild(name); 1142 } 1143 1144 public MeasureReportGroupStratifierComponent copy() { 1145 MeasureReportGroupStratifierComponent dst = new MeasureReportGroupStratifierComponent(); 1146 copyValues(dst); 1147 dst.identifier = identifier == null ? null : identifier.copy(); 1148 if (group != null) { 1149 dst.group = new ArrayList<MeasureReportGroupStratifierGroupComponent>(); 1150 for (MeasureReportGroupStratifierGroupComponent i : group) 1151 dst.group.add(i.copy()); 1152 }; 1153 return dst; 1154 } 1155 1156 @Override 1157 public boolean equalsDeep(Base other) { 1158 if (!super.equalsDeep(other)) 1159 return false; 1160 if (!(other instanceof MeasureReportGroupStratifierComponent)) 1161 return false; 1162 MeasureReportGroupStratifierComponent o = (MeasureReportGroupStratifierComponent) other; 1163 return compareDeep(identifier, o.identifier, true) && compareDeep(group, o.group, true); 1164 } 1165 1166 @Override 1167 public boolean equalsShallow(Base other) { 1168 if (!super.equalsShallow(other)) 1169 return false; 1170 if (!(other instanceof MeasureReportGroupStratifierComponent)) 1171 return false; 1172 MeasureReportGroupStratifierComponent o = (MeasureReportGroupStratifierComponent) other; 1173 return true; 1174 } 1175 1176 public boolean isEmpty() { 1177 return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (group == null || group.isEmpty()) 1178 ; 1179 } 1180 1181 public String fhirType() { 1182 return "MeasureReport.group.stratifier"; 1183 1184 } 1185 1186 } 1187 1188 @Block() 1189 public static class MeasureReportGroupStratifierGroupComponent extends BackboneElement implements IBaseBackboneElement { 1190 /** 1191 * The value for this stratum, expressed as a string. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique. 1192 */ 1193 @Child(name = "value", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true) 1194 @Description(shortDefinition="The stratum value, e.g. male", formalDefinition="The value for this stratum, expressed as a string. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique." ) 1195 protected StringType value; 1196 1197 /** 1198 * The populations that make up the stratum, one for each type of population appropriate to the measure. 1199 */ 1200 @Child(name = "population", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1201 @Description(shortDefinition="Population results in this stratum", formalDefinition="The populations that make up the stratum, one for each type of population appropriate to the measure." ) 1202 protected List<MeasureReportGroupStratifierGroupPopulationComponent> population; 1203 1204 /** 1205 * The measure score for this stratum. 1206 */ 1207 @Child(name = "measureScore", type = {DecimalType.class}, order=3, min=0, max=1, modifier=false, summary=true) 1208 @Description(shortDefinition="The measure score", formalDefinition="The measure score for this stratum." ) 1209 protected DecimalType measureScore; 1210 1211 private static final long serialVersionUID = -1663404087L; 1212 1213 /** 1214 * Constructor 1215 */ 1216 public MeasureReportGroupStratifierGroupComponent() { 1217 super(); 1218 } 1219 1220 /** 1221 * Constructor 1222 */ 1223 public MeasureReportGroupStratifierGroupComponent(StringType value) { 1224 super(); 1225 this.value = value; 1226 } 1227 1228 /** 1229 * @return {@link #value} (The value for this stratum, expressed as a string. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1230 */ 1231 public StringType getValueElement() { 1232 if (this.value == null) 1233 if (Configuration.errorOnAutoCreate()) 1234 throw new Error("Attempt to auto-create MeasureReportGroupStratifierGroupComponent.value"); 1235 else if (Configuration.doAutoCreate()) 1236 this.value = new StringType(); // bb 1237 return this.value; 1238 } 1239 1240 public boolean hasValueElement() { 1241 return this.value != null && !this.value.isEmpty(); 1242 } 1243 1244 public boolean hasValue() { 1245 return this.value != null && !this.value.isEmpty(); 1246 } 1247 1248 /** 1249 * @param value {@link #value} (The value for this stratum, expressed as a string. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1250 */ 1251 public MeasureReportGroupStratifierGroupComponent setValueElement(StringType value) { 1252 this.value = value; 1253 return this; 1254 } 1255 1256 /** 1257 * @return The value for this stratum, expressed as a string. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique. 1258 */ 1259 public String getValue() { 1260 return this.value == null ? null : this.value.getValue(); 1261 } 1262 1263 /** 1264 * @param value The value for this stratum, expressed as a string. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique. 1265 */ 1266 public MeasureReportGroupStratifierGroupComponent setValue(String value) { 1267 if (this.value == null) 1268 this.value = new StringType(); 1269 this.value.setValue(value); 1270 return this; 1271 } 1272 1273 /** 1274 * @return {@link #population} (The populations that make up the stratum, one for each type of population appropriate to the measure.) 1275 */ 1276 public List<MeasureReportGroupStratifierGroupPopulationComponent> getPopulation() { 1277 if (this.population == null) 1278 this.population = new ArrayList<MeasureReportGroupStratifierGroupPopulationComponent>(); 1279 return this.population; 1280 } 1281 1282 public boolean hasPopulation() { 1283 if (this.population == null) 1284 return false; 1285 for (MeasureReportGroupStratifierGroupPopulationComponent item : this.population) 1286 if (!item.isEmpty()) 1287 return true; 1288 return false; 1289 } 1290 1291 /** 1292 * @return {@link #population} (The populations that make up the stratum, one for each type of population appropriate to the measure.) 1293 */ 1294 // syntactic sugar 1295 public MeasureReportGroupStratifierGroupPopulationComponent addPopulation() { //3 1296 MeasureReportGroupStratifierGroupPopulationComponent t = new MeasureReportGroupStratifierGroupPopulationComponent(); 1297 if (this.population == null) 1298 this.population = new ArrayList<MeasureReportGroupStratifierGroupPopulationComponent>(); 1299 this.population.add(t); 1300 return t; 1301 } 1302 1303 // syntactic sugar 1304 public MeasureReportGroupStratifierGroupComponent addPopulation(MeasureReportGroupStratifierGroupPopulationComponent t) { //3 1305 if (t == null) 1306 return this; 1307 if (this.population == null) 1308 this.population = new ArrayList<MeasureReportGroupStratifierGroupPopulationComponent>(); 1309 this.population.add(t); 1310 return this; 1311 } 1312 1313 /** 1314 * @return {@link #measureScore} (The measure score for this stratum.). This is the underlying object with id, value and extensions. The accessor "getMeasureScore" gives direct access to the value 1315 */ 1316 public DecimalType getMeasureScoreElement() { 1317 if (this.measureScore == null) 1318 if (Configuration.errorOnAutoCreate()) 1319 throw new Error("Attempt to auto-create MeasureReportGroupStratifierGroupComponent.measureScore"); 1320 else if (Configuration.doAutoCreate()) 1321 this.measureScore = new DecimalType(); // bb 1322 return this.measureScore; 1323 } 1324 1325 public boolean hasMeasureScoreElement() { 1326 return this.measureScore != null && !this.measureScore.isEmpty(); 1327 } 1328 1329 public boolean hasMeasureScore() { 1330 return this.measureScore != null && !this.measureScore.isEmpty(); 1331 } 1332 1333 /** 1334 * @param value {@link #measureScore} (The measure score for this stratum.). This is the underlying object with id, value and extensions. The accessor "getMeasureScore" gives direct access to the value 1335 */ 1336 public MeasureReportGroupStratifierGroupComponent setMeasureScoreElement(DecimalType value) { 1337 this.measureScore = value; 1338 return this; 1339 } 1340 1341 /** 1342 * @return The measure score for this stratum. 1343 */ 1344 public BigDecimal getMeasureScore() { 1345 return this.measureScore == null ? null : this.measureScore.getValue(); 1346 } 1347 1348 /** 1349 * @param value The measure score for this stratum. 1350 */ 1351 public MeasureReportGroupStratifierGroupComponent setMeasureScore(BigDecimal value) { 1352 if (value == null) 1353 this.measureScore = null; 1354 else { 1355 if (this.measureScore == null) 1356 this.measureScore = new DecimalType(); 1357 this.measureScore.setValue(value); 1358 } 1359 return this; 1360 } 1361 1362 /** 1363 * @param value The measure score for this stratum. 1364 */ 1365 public MeasureReportGroupStratifierGroupComponent setMeasureScore(long value) { 1366 this.measureScore = new DecimalType(); 1367 this.measureScore.setValue(value); 1368 return this; 1369 } 1370 1371 /** 1372 * @param value The measure score for this stratum. 1373 */ 1374 public MeasureReportGroupStratifierGroupComponent setMeasureScore(double value) { 1375 this.measureScore = new DecimalType(); 1376 this.measureScore.setValue(value); 1377 return this; 1378 } 1379 1380 protected void listChildren(List<Property> childrenList) { 1381 super.listChildren(childrenList); 1382 childrenList.add(new Property("value", "string", "The value for this stratum, expressed as a string. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique.", 0, java.lang.Integer.MAX_VALUE, value)); 1383 childrenList.add(new Property("population", "", "The populations that make up the stratum, one for each type of population appropriate to the measure.", 0, java.lang.Integer.MAX_VALUE, population)); 1384 childrenList.add(new Property("measureScore", "decimal", "The measure score for this stratum.", 0, java.lang.Integer.MAX_VALUE, measureScore)); 1385 } 1386 1387 @Override 1388 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1389 switch (hash) { 1390 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType 1391 case -2023558323: /*population*/ return this.population == null ? new Base[0] : this.population.toArray(new Base[this.population.size()]); // MeasureReportGroupStratifierGroupPopulationComponent 1392 case -386313260: /*measureScore*/ return this.measureScore == null ? new Base[0] : new Base[] {this.measureScore}; // DecimalType 1393 default: return super.getProperty(hash, name, checkValid); 1394 } 1395 1396 } 1397 1398 @Override 1399 public void setProperty(int hash, String name, Base value) throws FHIRException { 1400 switch (hash) { 1401 case 111972721: // value 1402 this.value = castToString(value); // StringType 1403 break; 1404 case -2023558323: // population 1405 this.getPopulation().add((MeasureReportGroupStratifierGroupPopulationComponent) value); // MeasureReportGroupStratifierGroupPopulationComponent 1406 break; 1407 case -386313260: // measureScore 1408 this.measureScore = castToDecimal(value); // DecimalType 1409 break; 1410 default: super.setProperty(hash, name, value); 1411 } 1412 1413 } 1414 1415 @Override 1416 public void setProperty(String name, Base value) throws FHIRException { 1417 if (name.equals("value")) 1418 this.value = castToString(value); // StringType 1419 else if (name.equals("population")) 1420 this.getPopulation().add((MeasureReportGroupStratifierGroupPopulationComponent) value); 1421 else if (name.equals("measureScore")) 1422 this.measureScore = castToDecimal(value); // DecimalType 1423 else 1424 super.setProperty(name, value); 1425 } 1426 1427 @Override 1428 public Base makeProperty(int hash, String name) throws FHIRException { 1429 switch (hash) { 1430 case 111972721: throw new FHIRException("Cannot make property value as it is not a complex type"); // StringType 1431 case -2023558323: return addPopulation(); // MeasureReportGroupStratifierGroupPopulationComponent 1432 case -386313260: throw new FHIRException("Cannot make property measureScore as it is not a complex type"); // DecimalType 1433 default: return super.makeProperty(hash, name); 1434 } 1435 1436 } 1437 1438 @Override 1439 public Base addChild(String name) throws FHIRException { 1440 if (name.equals("value")) { 1441 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.value"); 1442 } 1443 else if (name.equals("population")) { 1444 return addPopulation(); 1445 } 1446 else if (name.equals("measureScore")) { 1447 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.measureScore"); 1448 } 1449 else 1450 return super.addChild(name); 1451 } 1452 1453 public MeasureReportGroupStratifierGroupComponent copy() { 1454 MeasureReportGroupStratifierGroupComponent dst = new MeasureReportGroupStratifierGroupComponent(); 1455 copyValues(dst); 1456 dst.value = value == null ? null : value.copy(); 1457 if (population != null) { 1458 dst.population = new ArrayList<MeasureReportGroupStratifierGroupPopulationComponent>(); 1459 for (MeasureReportGroupStratifierGroupPopulationComponent i : population) 1460 dst.population.add(i.copy()); 1461 }; 1462 dst.measureScore = measureScore == null ? null : measureScore.copy(); 1463 return dst; 1464 } 1465 1466 @Override 1467 public boolean equalsDeep(Base other) { 1468 if (!super.equalsDeep(other)) 1469 return false; 1470 if (!(other instanceof MeasureReportGroupStratifierGroupComponent)) 1471 return false; 1472 MeasureReportGroupStratifierGroupComponent o = (MeasureReportGroupStratifierGroupComponent) other; 1473 return compareDeep(value, o.value, true) && compareDeep(population, o.population, true) && compareDeep(measureScore, o.measureScore, true) 1474 ; 1475 } 1476 1477 @Override 1478 public boolean equalsShallow(Base other) { 1479 if (!super.equalsShallow(other)) 1480 return false; 1481 if (!(other instanceof MeasureReportGroupStratifierGroupComponent)) 1482 return false; 1483 MeasureReportGroupStratifierGroupComponent o = (MeasureReportGroupStratifierGroupComponent) other; 1484 return compareValues(value, o.value, true) && compareValues(measureScore, o.measureScore, true); 1485 } 1486 1487 public boolean isEmpty() { 1488 return super.isEmpty() && (value == null || value.isEmpty()) && (population == null || population.isEmpty()) 1489 && (measureScore == null || measureScore.isEmpty()); 1490 } 1491 1492 public String fhirType() { 1493 return "MeasureReport.group.stratifier.group"; 1494 1495 } 1496 1497 } 1498 1499 @Block() 1500 public static class MeasureReportGroupStratifierGroupPopulationComponent extends BackboneElement implements IBaseBackboneElement { 1501 /** 1502 * The type of the population. 1503 */ 1504 @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 1505 @Description(shortDefinition="initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-score", formalDefinition="The type of the population." ) 1506 protected CodeType type; 1507 1508 /** 1509 * The number of members of the population in this stratum. 1510 */ 1511 @Child(name = "count", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=true) 1512 @Description(shortDefinition="Size of the population", formalDefinition="The number of members of the population in this stratum." ) 1513 protected IntegerType count; 1514 1515 /** 1516 * This element refers to a List of patient level MeasureReport resources, one for each patient in this population in this stratum. 1517 */ 1518 @Child(name = "patients", type = {ListResource.class}, order=3, min=0, max=1, modifier=false, summary=true) 1519 @Description(shortDefinition="For patient-list reports, the patients in this population", formalDefinition="This element refers to a List of patient level MeasureReport resources, one for each patient in this population in this stratum." ) 1520 protected Reference patients; 1521 1522 /** 1523 * The actual object that is the target of the reference (This element refers to a List of patient level MeasureReport resources, one for each patient in this population in this stratum.) 1524 */ 1525 protected ListResource patientsTarget; 1526 1527 private static final long serialVersionUID = 407500224L; 1528 1529 /** 1530 * Constructor 1531 */ 1532 public MeasureReportGroupStratifierGroupPopulationComponent() { 1533 super(); 1534 } 1535 1536 /** 1537 * Constructor 1538 */ 1539 public MeasureReportGroupStratifierGroupPopulationComponent(CodeType type) { 1540 super(); 1541 this.type = type; 1542 } 1543 1544 /** 1545 * @return {@link #type} (The type of the population.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1546 */ 1547 public CodeType getTypeElement() { 1548 if (this.type == null) 1549 if (Configuration.errorOnAutoCreate()) 1550 throw new Error("Attempt to auto-create MeasureReportGroupStratifierGroupPopulationComponent.type"); 1551 else if (Configuration.doAutoCreate()) 1552 this.type = new CodeType(); // bb 1553 return this.type; 1554 } 1555 1556 public boolean hasTypeElement() { 1557 return this.type != null && !this.type.isEmpty(); 1558 } 1559 1560 public boolean hasType() { 1561 return this.type != null && !this.type.isEmpty(); 1562 } 1563 1564 /** 1565 * @param value {@link #type} (The type of the population.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1566 */ 1567 public MeasureReportGroupStratifierGroupPopulationComponent setTypeElement(CodeType value) { 1568 this.type = value; 1569 return this; 1570 } 1571 1572 /** 1573 * @return The type of the population. 1574 */ 1575 public String getType() { 1576 return this.type == null ? null : this.type.getValue(); 1577 } 1578 1579 /** 1580 * @param value The type of the population. 1581 */ 1582 public MeasureReportGroupStratifierGroupPopulationComponent setType(String value) { 1583 if (this.type == null) 1584 this.type = new CodeType(); 1585 this.type.setValue(value); 1586 return this; 1587 } 1588 1589 /** 1590 * @return {@link #count} (The number of members of the population in this stratum.). This is the underlying object with id, value and extensions. The accessor "getCount" gives direct access to the value 1591 */ 1592 public IntegerType getCountElement() { 1593 if (this.count == null) 1594 if (Configuration.errorOnAutoCreate()) 1595 throw new Error("Attempt to auto-create MeasureReportGroupStratifierGroupPopulationComponent.count"); 1596 else if (Configuration.doAutoCreate()) 1597 this.count = new IntegerType(); // bb 1598 return this.count; 1599 } 1600 1601 public boolean hasCountElement() { 1602 return this.count != null && !this.count.isEmpty(); 1603 } 1604 1605 public boolean hasCount() { 1606 return this.count != null && !this.count.isEmpty(); 1607 } 1608 1609 /** 1610 * @param value {@link #count} (The number of members of the population in this stratum.). This is the underlying object with id, value and extensions. The accessor "getCount" gives direct access to the value 1611 */ 1612 public MeasureReportGroupStratifierGroupPopulationComponent setCountElement(IntegerType value) { 1613 this.count = value; 1614 return this; 1615 } 1616 1617 /** 1618 * @return The number of members of the population in this stratum. 1619 */ 1620 public int getCount() { 1621 return this.count == null || this.count.isEmpty() ? 0 : this.count.getValue(); 1622 } 1623 1624 /** 1625 * @param value The number of members of the population in this stratum. 1626 */ 1627 public MeasureReportGroupStratifierGroupPopulationComponent setCount(int value) { 1628 if (this.count == null) 1629 this.count = new IntegerType(); 1630 this.count.setValue(value); 1631 return this; 1632 } 1633 1634 /** 1635 * @return {@link #patients} (This element refers to a List of patient level MeasureReport resources, one for each patient in this population in this stratum.) 1636 */ 1637 public Reference getPatients() { 1638 if (this.patients == null) 1639 if (Configuration.errorOnAutoCreate()) 1640 throw new Error("Attempt to auto-create MeasureReportGroupStratifierGroupPopulationComponent.patients"); 1641 else if (Configuration.doAutoCreate()) 1642 this.patients = new Reference(); // cc 1643 return this.patients; 1644 } 1645 1646 public boolean hasPatients() { 1647 return this.patients != null && !this.patients.isEmpty(); 1648 } 1649 1650 /** 1651 * @param value {@link #patients} (This element refers to a List of patient level MeasureReport resources, one for each patient in this population in this stratum.) 1652 */ 1653 public MeasureReportGroupStratifierGroupPopulationComponent setPatients(Reference value) { 1654 this.patients = value; 1655 return this; 1656 } 1657 1658 /** 1659 * @return {@link #patients} 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. (This element refers to a List of patient level MeasureReport resources, one for each patient in this population in this stratum.) 1660 */ 1661 public ListResource getPatientsTarget() { 1662 if (this.patientsTarget == null) 1663 if (Configuration.errorOnAutoCreate()) 1664 throw new Error("Attempt to auto-create MeasureReportGroupStratifierGroupPopulationComponent.patients"); 1665 else if (Configuration.doAutoCreate()) 1666 this.patientsTarget = new ListResource(); // aa 1667 return this.patientsTarget; 1668 } 1669 1670 /** 1671 * @param value {@link #patients} 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. (This element refers to a List of patient level MeasureReport resources, one for each patient in this population in this stratum.) 1672 */ 1673 public MeasureReportGroupStratifierGroupPopulationComponent setPatientsTarget(ListResource value) { 1674 this.patientsTarget = value; 1675 return this; 1676 } 1677 1678 protected void listChildren(List<Property> childrenList) { 1679 super.listChildren(childrenList); 1680 childrenList.add(new Property("type", "code", "The type of the population.", 0, java.lang.Integer.MAX_VALUE, type)); 1681 childrenList.add(new Property("count", "integer", "The number of members of the population in this stratum.", 0, java.lang.Integer.MAX_VALUE, count)); 1682 childrenList.add(new Property("patients", "Reference(List)", "This element refers to a List of patient level MeasureReport resources, one for each patient in this population in this stratum.", 0, java.lang.Integer.MAX_VALUE, patients)); 1683 } 1684 1685 @Override 1686 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1687 switch (hash) { 1688 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeType 1689 case 94851343: /*count*/ return this.count == null ? new Base[0] : new Base[] {this.count}; // IntegerType 1690 case 1235842574: /*patients*/ return this.patients == null ? new Base[0] : new Base[] {this.patients}; // Reference 1691 default: return super.getProperty(hash, name, checkValid); 1692 } 1693 1694 } 1695 1696 @Override 1697 public void setProperty(int hash, String name, Base value) throws FHIRException { 1698 switch (hash) { 1699 case 3575610: // type 1700 this.type = castToCode(value); // CodeType 1701 break; 1702 case 94851343: // count 1703 this.count = castToInteger(value); // IntegerType 1704 break; 1705 case 1235842574: // patients 1706 this.patients = castToReference(value); // Reference 1707 break; 1708 default: super.setProperty(hash, name, value); 1709 } 1710 1711 } 1712 1713 @Override 1714 public void setProperty(String name, Base value) throws FHIRException { 1715 if (name.equals("type")) 1716 this.type = castToCode(value); // CodeType 1717 else if (name.equals("count")) 1718 this.count = castToInteger(value); // IntegerType 1719 else if (name.equals("patients")) 1720 this.patients = castToReference(value); // Reference 1721 else 1722 super.setProperty(name, value); 1723 } 1724 1725 @Override 1726 public Base makeProperty(int hash, String name) throws FHIRException { 1727 switch (hash) { 1728 case 3575610: throw new FHIRException("Cannot make property type as it is not a complex type"); // CodeType 1729 case 94851343: throw new FHIRException("Cannot make property count as it is not a complex type"); // IntegerType 1730 case 1235842574: return getPatients(); // Reference 1731 default: return super.makeProperty(hash, name); 1732 } 1733 1734 } 1735 1736 @Override 1737 public Base addChild(String name) throws FHIRException { 1738 if (name.equals("type")) { 1739 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.type"); 1740 } 1741 else if (name.equals("count")) { 1742 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.count"); 1743 } 1744 else if (name.equals("patients")) { 1745 this.patients = new Reference(); 1746 return this.patients; 1747 } 1748 else 1749 return super.addChild(name); 1750 } 1751 1752 public MeasureReportGroupStratifierGroupPopulationComponent copy() { 1753 MeasureReportGroupStratifierGroupPopulationComponent dst = new MeasureReportGroupStratifierGroupPopulationComponent(); 1754 copyValues(dst); 1755 dst.type = type == null ? null : type.copy(); 1756 dst.count = count == null ? null : count.copy(); 1757 dst.patients = patients == null ? null : patients.copy(); 1758 return dst; 1759 } 1760 1761 @Override 1762 public boolean equalsDeep(Base other) { 1763 if (!super.equalsDeep(other)) 1764 return false; 1765 if (!(other instanceof MeasureReportGroupStratifierGroupPopulationComponent)) 1766 return false; 1767 MeasureReportGroupStratifierGroupPopulationComponent o = (MeasureReportGroupStratifierGroupPopulationComponent) other; 1768 return compareDeep(type, o.type, true) && compareDeep(count, o.count, true) && compareDeep(patients, o.patients, true) 1769 ; 1770 } 1771 1772 @Override 1773 public boolean equalsShallow(Base other) { 1774 if (!super.equalsShallow(other)) 1775 return false; 1776 if (!(other instanceof MeasureReportGroupStratifierGroupPopulationComponent)) 1777 return false; 1778 MeasureReportGroupStratifierGroupPopulationComponent o = (MeasureReportGroupStratifierGroupPopulationComponent) other; 1779 return compareValues(type, o.type, true) && compareValues(count, o.count, true); 1780 } 1781 1782 public boolean isEmpty() { 1783 return super.isEmpty() && (type == null || type.isEmpty()) && (count == null || count.isEmpty()) 1784 && (patients == null || patients.isEmpty()); 1785 } 1786 1787 public String fhirType() { 1788 return "MeasureReport.group.stratifier.group.population"; 1789 1790 } 1791 1792 } 1793 1794 @Block() 1795 public static class MeasureReportGroupSupplementalDataComponent extends BackboneElement implements IBaseBackboneElement { 1796 /** 1797 * The identifier of the supplemental data element as defined in the measure. 1798 */ 1799 @Child(name = "identifier", type = {Identifier.class}, order=1, min=1, max=1, modifier=false, summary=true) 1800 @Description(shortDefinition="Identifier of the supplemental data element", formalDefinition="The identifier of the supplemental data element as defined in the measure." ) 1801 protected Identifier identifier; 1802 1803 /** 1804 * This element contains the results for a single value within the supplemental data. For example, when reporting supplemental data for administrative gender, there will be four groups, one for each possible gender value. 1805 */ 1806 @Child(name = "group", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1807 @Description(shortDefinition="Supplemental data results, one for each unique supplemental data value", formalDefinition="This element contains the results for a single value within the supplemental data. For example, when reporting supplemental data for administrative gender, there will be four groups, one for each possible gender value." ) 1808 protected List<MeasureReportGroupSupplementalDataGroupComponent> group; 1809 1810 private static final long serialVersionUID = -1254392714L; 1811 1812 /** 1813 * Constructor 1814 */ 1815 public MeasureReportGroupSupplementalDataComponent() { 1816 super(); 1817 } 1818 1819 /** 1820 * Constructor 1821 */ 1822 public MeasureReportGroupSupplementalDataComponent(Identifier identifier) { 1823 super(); 1824 this.identifier = identifier; 1825 } 1826 1827 /** 1828 * @return {@link #identifier} (The identifier of the supplemental data element as defined in the measure.) 1829 */ 1830 public Identifier getIdentifier() { 1831 if (this.identifier == null) 1832 if (Configuration.errorOnAutoCreate()) 1833 throw new Error("Attempt to auto-create MeasureReportGroupSupplementalDataComponent.identifier"); 1834 else if (Configuration.doAutoCreate()) 1835 this.identifier = new Identifier(); // cc 1836 return this.identifier; 1837 } 1838 1839 public boolean hasIdentifier() { 1840 return this.identifier != null && !this.identifier.isEmpty(); 1841 } 1842 1843 /** 1844 * @param value {@link #identifier} (The identifier of the supplemental data element as defined in the measure.) 1845 */ 1846 public MeasureReportGroupSupplementalDataComponent setIdentifier(Identifier value) { 1847 this.identifier = value; 1848 return this; 1849 } 1850 1851 /** 1852 * @return {@link #group} (This element contains the results for a single value within the supplemental data. For example, when reporting supplemental data for administrative gender, there will be four groups, one for each possible gender value.) 1853 */ 1854 public List<MeasureReportGroupSupplementalDataGroupComponent> getGroup() { 1855 if (this.group == null) 1856 this.group = new ArrayList<MeasureReportGroupSupplementalDataGroupComponent>(); 1857 return this.group; 1858 } 1859 1860 public boolean hasGroup() { 1861 if (this.group == null) 1862 return false; 1863 for (MeasureReportGroupSupplementalDataGroupComponent item : this.group) 1864 if (!item.isEmpty()) 1865 return true; 1866 return false; 1867 } 1868 1869 /** 1870 * @return {@link #group} (This element contains the results for a single value within the supplemental data. For example, when reporting supplemental data for administrative gender, there will be four groups, one for each possible gender value.) 1871 */ 1872 // syntactic sugar 1873 public MeasureReportGroupSupplementalDataGroupComponent addGroup() { //3 1874 MeasureReportGroupSupplementalDataGroupComponent t = new MeasureReportGroupSupplementalDataGroupComponent(); 1875 if (this.group == null) 1876 this.group = new ArrayList<MeasureReportGroupSupplementalDataGroupComponent>(); 1877 this.group.add(t); 1878 return t; 1879 } 1880 1881 // syntactic sugar 1882 public MeasureReportGroupSupplementalDataComponent addGroup(MeasureReportGroupSupplementalDataGroupComponent t) { //3 1883 if (t == null) 1884 return this; 1885 if (this.group == null) 1886 this.group = new ArrayList<MeasureReportGroupSupplementalDataGroupComponent>(); 1887 this.group.add(t); 1888 return this; 1889 } 1890 1891 protected void listChildren(List<Property> childrenList) { 1892 super.listChildren(childrenList); 1893 childrenList.add(new Property("identifier", "Identifier", "The identifier of the supplemental data element as defined in the measure.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1894 childrenList.add(new Property("group", "", "This element contains the results for a single value within the supplemental data. For example, when reporting supplemental data for administrative gender, there will be four groups, one for each possible gender value.", 0, java.lang.Integer.MAX_VALUE, group)); 1895 } 1896 1897 @Override 1898 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1899 switch (hash) { 1900 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // Identifier 1901 case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // MeasureReportGroupSupplementalDataGroupComponent 1902 default: return super.getProperty(hash, name, checkValid); 1903 } 1904 1905 } 1906 1907 @Override 1908 public void setProperty(int hash, String name, Base value) throws FHIRException { 1909 switch (hash) { 1910 case -1618432855: // identifier 1911 this.identifier = castToIdentifier(value); // Identifier 1912 break; 1913 case 98629247: // group 1914 this.getGroup().add((MeasureReportGroupSupplementalDataGroupComponent) value); // MeasureReportGroupSupplementalDataGroupComponent 1915 break; 1916 default: super.setProperty(hash, name, value); 1917 } 1918 1919 } 1920 1921 @Override 1922 public void setProperty(String name, Base value) throws FHIRException { 1923 if (name.equals("identifier")) 1924 this.identifier = castToIdentifier(value); // Identifier 1925 else if (name.equals("group")) 1926 this.getGroup().add((MeasureReportGroupSupplementalDataGroupComponent) value); 1927 else 1928 super.setProperty(name, value); 1929 } 1930 1931 @Override 1932 public Base makeProperty(int hash, String name) throws FHIRException { 1933 switch (hash) { 1934 case -1618432855: return getIdentifier(); // Identifier 1935 case 98629247: return addGroup(); // MeasureReportGroupSupplementalDataGroupComponent 1936 default: return super.makeProperty(hash, name); 1937 } 1938 1939 } 1940 1941 @Override 1942 public Base addChild(String name) throws FHIRException { 1943 if (name.equals("identifier")) { 1944 this.identifier = new Identifier(); 1945 return this.identifier; 1946 } 1947 else if (name.equals("group")) { 1948 return addGroup(); 1949 } 1950 else 1951 return super.addChild(name); 1952 } 1953 1954 public MeasureReportGroupSupplementalDataComponent copy() { 1955 MeasureReportGroupSupplementalDataComponent dst = new MeasureReportGroupSupplementalDataComponent(); 1956 copyValues(dst); 1957 dst.identifier = identifier == null ? null : identifier.copy(); 1958 if (group != null) { 1959 dst.group = new ArrayList<MeasureReportGroupSupplementalDataGroupComponent>(); 1960 for (MeasureReportGroupSupplementalDataGroupComponent i : group) 1961 dst.group.add(i.copy()); 1962 }; 1963 return dst; 1964 } 1965 1966 @Override 1967 public boolean equalsDeep(Base other) { 1968 if (!super.equalsDeep(other)) 1969 return false; 1970 if (!(other instanceof MeasureReportGroupSupplementalDataComponent)) 1971 return false; 1972 MeasureReportGroupSupplementalDataComponent o = (MeasureReportGroupSupplementalDataComponent) other; 1973 return compareDeep(identifier, o.identifier, true) && compareDeep(group, o.group, true); 1974 } 1975 1976 @Override 1977 public boolean equalsShallow(Base other) { 1978 if (!super.equalsShallow(other)) 1979 return false; 1980 if (!(other instanceof MeasureReportGroupSupplementalDataComponent)) 1981 return false; 1982 MeasureReportGroupSupplementalDataComponent o = (MeasureReportGroupSupplementalDataComponent) other; 1983 return true; 1984 } 1985 1986 public boolean isEmpty() { 1987 return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (group == null || group.isEmpty()) 1988 ; 1989 } 1990 1991 public String fhirType() { 1992 return "MeasureReport.group.supplementalData"; 1993 1994 } 1995 1996 } 1997 1998 @Block() 1999 public static class MeasureReportGroupSupplementalDataGroupComponent extends BackboneElement implements IBaseBackboneElement { 2000 /** 2001 * The value for this supplemental data element, expressed as a string. When defining supplemental data on complex values, the value must be rendered such that the value for each group within the supplemental data element is unique. 2002 */ 2003 @Child(name = "value", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true) 2004 @Description(shortDefinition="The data value, e.g. male", formalDefinition="The value for this supplemental data element, expressed as a string. When defining supplemental data on complex values, the value must be rendered such that the value for each group within the supplemental data element is unique." ) 2005 protected StringType value; 2006 2007 /** 2008 * The number of members in the supplemental data group. 2009 */ 2010 @Child(name = "count", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=true) 2011 @Description(shortDefinition="Number of members in the group", formalDefinition="The number of members in the supplemental data group." ) 2012 protected IntegerType count; 2013 2014 /** 2015 * This element refers to a List of patient level MeasureReport resources, one for each patient in this population. 2016 */ 2017 @Child(name = "patients", type = {ListResource.class}, order=3, min=0, max=1, modifier=false, summary=true) 2018 @Description(shortDefinition="For patient-list reports, the patients in this population", formalDefinition="This element refers to a List of patient level MeasureReport resources, one for each patient in this population." ) 2019 protected Reference patients; 2020 2021 /** 2022 * The actual object that is the target of the reference (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 2023 */ 2024 protected ListResource patientsTarget; 2025 2026 private static final long serialVersionUID = 1011446829L; 2027 2028 /** 2029 * Constructor 2030 */ 2031 public MeasureReportGroupSupplementalDataGroupComponent() { 2032 super(); 2033 } 2034 2035 /** 2036 * Constructor 2037 */ 2038 public MeasureReportGroupSupplementalDataGroupComponent(StringType value) { 2039 super(); 2040 this.value = value; 2041 } 2042 2043 /** 2044 * @return {@link #value} (The value for this supplemental data element, expressed as a string. When defining supplemental data on complex values, the value must be rendered such that the value for each group within the supplemental data element is unique.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 2045 */ 2046 public StringType getValueElement() { 2047 if (this.value == null) 2048 if (Configuration.errorOnAutoCreate()) 2049 throw new Error("Attempt to auto-create MeasureReportGroupSupplementalDataGroupComponent.value"); 2050 else if (Configuration.doAutoCreate()) 2051 this.value = new StringType(); // bb 2052 return this.value; 2053 } 2054 2055 public boolean hasValueElement() { 2056 return this.value != null && !this.value.isEmpty(); 2057 } 2058 2059 public boolean hasValue() { 2060 return this.value != null && !this.value.isEmpty(); 2061 } 2062 2063 /** 2064 * @param value {@link #value} (The value for this supplemental data element, expressed as a string. When defining supplemental data on complex values, the value must be rendered such that the value for each group within the supplemental data element is unique.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 2065 */ 2066 public MeasureReportGroupSupplementalDataGroupComponent setValueElement(StringType value) { 2067 this.value = value; 2068 return this; 2069 } 2070 2071 /** 2072 * @return The value for this supplemental data element, expressed as a string. When defining supplemental data on complex values, the value must be rendered such that the value for each group within the supplemental data element is unique. 2073 */ 2074 public String getValue() { 2075 return this.value == null ? null : this.value.getValue(); 2076 } 2077 2078 /** 2079 * @param value The value for this supplemental data element, expressed as a string. When defining supplemental data on complex values, the value must be rendered such that the value for each group within the supplemental data element is unique. 2080 */ 2081 public MeasureReportGroupSupplementalDataGroupComponent setValue(String value) { 2082 if (this.value == null) 2083 this.value = new StringType(); 2084 this.value.setValue(value); 2085 return this; 2086 } 2087 2088 /** 2089 * @return {@link #count} (The number of members in the supplemental data group.). This is the underlying object with id, value and extensions. The accessor "getCount" gives direct access to the value 2090 */ 2091 public IntegerType getCountElement() { 2092 if (this.count == null) 2093 if (Configuration.errorOnAutoCreate()) 2094 throw new Error("Attempt to auto-create MeasureReportGroupSupplementalDataGroupComponent.count"); 2095 else if (Configuration.doAutoCreate()) 2096 this.count = new IntegerType(); // bb 2097 return this.count; 2098 } 2099 2100 public boolean hasCountElement() { 2101 return this.count != null && !this.count.isEmpty(); 2102 } 2103 2104 public boolean hasCount() { 2105 return this.count != null && !this.count.isEmpty(); 2106 } 2107 2108 /** 2109 * @param value {@link #count} (The number of members in the supplemental data group.). This is the underlying object with id, value and extensions. The accessor "getCount" gives direct access to the value 2110 */ 2111 public MeasureReportGroupSupplementalDataGroupComponent setCountElement(IntegerType value) { 2112 this.count = value; 2113 return this; 2114 } 2115 2116 /** 2117 * @return The number of members in the supplemental data group. 2118 */ 2119 public int getCount() { 2120 return this.count == null || this.count.isEmpty() ? 0 : this.count.getValue(); 2121 } 2122 2123 /** 2124 * @param value The number of members in the supplemental data group. 2125 */ 2126 public MeasureReportGroupSupplementalDataGroupComponent setCount(int value) { 2127 if (this.count == null) 2128 this.count = new IntegerType(); 2129 this.count.setValue(value); 2130 return this; 2131 } 2132 2133 /** 2134 * @return {@link #patients} (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 2135 */ 2136 public Reference getPatients() { 2137 if (this.patients == null) 2138 if (Configuration.errorOnAutoCreate()) 2139 throw new Error("Attempt to auto-create MeasureReportGroupSupplementalDataGroupComponent.patients"); 2140 else if (Configuration.doAutoCreate()) 2141 this.patients = new Reference(); // cc 2142 return this.patients; 2143 } 2144 2145 public boolean hasPatients() { 2146 return this.patients != null && !this.patients.isEmpty(); 2147 } 2148 2149 /** 2150 * @param value {@link #patients} (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 2151 */ 2152 public MeasureReportGroupSupplementalDataGroupComponent setPatients(Reference value) { 2153 this.patients = value; 2154 return this; 2155 } 2156 2157 /** 2158 * @return {@link #patients} 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. (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 2159 */ 2160 public ListResource getPatientsTarget() { 2161 if (this.patientsTarget == null) 2162 if (Configuration.errorOnAutoCreate()) 2163 throw new Error("Attempt to auto-create MeasureReportGroupSupplementalDataGroupComponent.patients"); 2164 else if (Configuration.doAutoCreate()) 2165 this.patientsTarget = new ListResource(); // aa 2166 return this.patientsTarget; 2167 } 2168 2169 /** 2170 * @param value {@link #patients} 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. (This element refers to a List of patient level MeasureReport resources, one for each patient in this population.) 2171 */ 2172 public MeasureReportGroupSupplementalDataGroupComponent setPatientsTarget(ListResource value) { 2173 this.patientsTarget = value; 2174 return this; 2175 } 2176 2177 protected void listChildren(List<Property> childrenList) { 2178 super.listChildren(childrenList); 2179 childrenList.add(new Property("value", "string", "The value for this supplemental data element, expressed as a string. When defining supplemental data on complex values, the value must be rendered such that the value for each group within the supplemental data element is unique.", 0, java.lang.Integer.MAX_VALUE, value)); 2180 childrenList.add(new Property("count", "integer", "The number of members in the supplemental data group.", 0, java.lang.Integer.MAX_VALUE, count)); 2181 childrenList.add(new Property("patients", "Reference(List)", "This element refers to a List of patient level MeasureReport resources, one for each patient in this population.", 0, java.lang.Integer.MAX_VALUE, patients)); 2182 } 2183 2184 @Override 2185 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2186 switch (hash) { 2187 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType 2188 case 94851343: /*count*/ return this.count == null ? new Base[0] : new Base[] {this.count}; // IntegerType 2189 case 1235842574: /*patients*/ return this.patients == null ? new Base[0] : new Base[] {this.patients}; // Reference 2190 default: return super.getProperty(hash, name, checkValid); 2191 } 2192 2193 } 2194 2195 @Override 2196 public void setProperty(int hash, String name, Base value) throws FHIRException { 2197 switch (hash) { 2198 case 111972721: // value 2199 this.value = castToString(value); // StringType 2200 break; 2201 case 94851343: // count 2202 this.count = castToInteger(value); // IntegerType 2203 break; 2204 case 1235842574: // patients 2205 this.patients = castToReference(value); // Reference 2206 break; 2207 default: super.setProperty(hash, name, value); 2208 } 2209 2210 } 2211 2212 @Override 2213 public void setProperty(String name, Base value) throws FHIRException { 2214 if (name.equals("value")) 2215 this.value = castToString(value); // StringType 2216 else if (name.equals("count")) 2217 this.count = castToInteger(value); // IntegerType 2218 else if (name.equals("patients")) 2219 this.patients = castToReference(value); // Reference 2220 else 2221 super.setProperty(name, value); 2222 } 2223 2224 @Override 2225 public Base makeProperty(int hash, String name) throws FHIRException { 2226 switch (hash) { 2227 case 111972721: throw new FHIRException("Cannot make property value as it is not a complex type"); // StringType 2228 case 94851343: throw new FHIRException("Cannot make property count as it is not a complex type"); // IntegerType 2229 case 1235842574: return getPatients(); // Reference 2230 default: return super.makeProperty(hash, name); 2231 } 2232 2233 } 2234 2235 @Override 2236 public Base addChild(String name) throws FHIRException { 2237 if (name.equals("value")) { 2238 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.value"); 2239 } 2240 else if (name.equals("count")) { 2241 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.count"); 2242 } 2243 else if (name.equals("patients")) { 2244 this.patients = new Reference(); 2245 return this.patients; 2246 } 2247 else 2248 return super.addChild(name); 2249 } 2250 2251 public MeasureReportGroupSupplementalDataGroupComponent copy() { 2252 MeasureReportGroupSupplementalDataGroupComponent dst = new MeasureReportGroupSupplementalDataGroupComponent(); 2253 copyValues(dst); 2254 dst.value = value == null ? null : value.copy(); 2255 dst.count = count == null ? null : count.copy(); 2256 dst.patients = patients == null ? null : patients.copy(); 2257 return dst; 2258 } 2259 2260 @Override 2261 public boolean equalsDeep(Base other) { 2262 if (!super.equalsDeep(other)) 2263 return false; 2264 if (!(other instanceof MeasureReportGroupSupplementalDataGroupComponent)) 2265 return false; 2266 MeasureReportGroupSupplementalDataGroupComponent o = (MeasureReportGroupSupplementalDataGroupComponent) other; 2267 return compareDeep(value, o.value, true) && compareDeep(count, o.count, true) && compareDeep(patients, o.patients, true) 2268 ; 2269 } 2270 2271 @Override 2272 public boolean equalsShallow(Base other) { 2273 if (!super.equalsShallow(other)) 2274 return false; 2275 if (!(other instanceof MeasureReportGroupSupplementalDataGroupComponent)) 2276 return false; 2277 MeasureReportGroupSupplementalDataGroupComponent o = (MeasureReportGroupSupplementalDataGroupComponent) other; 2278 return compareValues(value, o.value, true) && compareValues(count, o.count, true); 2279 } 2280 2281 public boolean isEmpty() { 2282 return super.isEmpty() && (value == null || value.isEmpty()) && (count == null || count.isEmpty()) 2283 && (patients == null || patients.isEmpty()); 2284 } 2285 2286 public String fhirType() { 2287 return "MeasureReport.group.supplementalData.group"; 2288 2289 } 2290 2291 } 2292 2293 /** 2294 * A reference to the Measure that was evaluated to produce this report. 2295 */ 2296 @Child(name = "measure", type = {Measure.class}, order=0, min=1, max=1, modifier=false, summary=true) 2297 @Description(shortDefinition="Measure that was evaluated", formalDefinition="A reference to the Measure that was evaluated to produce this report." ) 2298 protected Reference measure; 2299 2300 /** 2301 * The actual object that is the target of the reference (A reference to the Measure that was evaluated to produce this report.) 2302 */ 2303 protected Measure measureTarget; 2304 2305 /** 2306 * The type of measure report. This may be an individual report, which provides a single patient's score for the measure, a patient listing, which returns the list of patients that meet the various criteria in the measure, or a summary report, which returns a population count for each criteria in the measure. 2307 */ 2308 @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 2309 @Description(shortDefinition="individual | patient-list | summary", formalDefinition="The type of measure report. This may be an individual report, which provides a single patient's score for the measure, a patient listing, which returns the list of patients that meet the various criteria in the measure, or a summary report, which returns a population count for each criteria in the measure." ) 2310 protected Enumeration<MeasureReportType> type; 2311 2312 /** 2313 * Optional Patient if the report was requested for a single patient. 2314 */ 2315 @Child(name = "patient", type = {Patient.class}, order=2, min=0, max=1, modifier=false, summary=true) 2316 @Description(shortDefinition="Optional Patient", formalDefinition="Optional Patient if the report was requested for a single patient." ) 2317 protected Reference patient; 2318 2319 /** 2320 * The actual object that is the target of the reference (Optional Patient if the report was requested for a single patient.) 2321 */ 2322 protected Patient patientTarget; 2323 2324 /** 2325 * The reporting period for which the report was calculated. 2326 */ 2327 @Child(name = "period", type = {Period.class}, order=3, min=1, max=1, modifier=false, summary=true) 2328 @Description(shortDefinition="Reporting period", formalDefinition="The reporting period for which the report was calculated." ) 2329 protected Period period; 2330 2331 /** 2332 * The report status. No data will be available until the report status is complete. 2333 */ 2334 @Child(name = "status", type = {CodeType.class}, order=4, min=1, max=1, modifier=false, summary=true) 2335 @Description(shortDefinition="complete | pending | error", formalDefinition="The report status. No data will be available until the report status is complete." ) 2336 protected Enumeration<MeasureReportStatus> status; 2337 2338 /** 2339 * The date this measure report was generated. 2340 */ 2341 @Child(name = "date", type = {DateTimeType.class}, order=5, min=0, max=1, modifier=false, summary=true) 2342 @Description(shortDefinition="Date the report was generated", formalDefinition="The date this measure report was generated." ) 2343 protected DateTimeType date; 2344 2345 /** 2346 * Reporting Organization. 2347 */ 2348 @Child(name = "reportingOrganization", type = {Organization.class}, order=6, min=0, max=1, modifier=false, summary=true) 2349 @Description(shortDefinition="Reporting Organization", formalDefinition="Reporting Organization." ) 2350 protected Reference reportingOrganization; 2351 2352 /** 2353 * The actual object that is the target of the reference (Reporting Organization.) 2354 */ 2355 protected Organization reportingOrganizationTarget; 2356 2357 /** 2358 * The results of the calculation, one for each population group in the measure. 2359 */ 2360 @Child(name = "group", type = {}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2361 @Description(shortDefinition="Measure results for each group", formalDefinition="The results of the calculation, one for each population group in the measure." ) 2362 protected List<MeasureReportGroupComponent> group; 2363 2364 /** 2365 * A reference to a Bundle containing the Resources that were used in the evaluation of this report. 2366 */ 2367 @Child(name = "evaluatedResources", type = {Bundle.class}, order=8, min=0, max=1, modifier=false, summary=true) 2368 @Description(shortDefinition="Evaluated Resources", formalDefinition="A reference to a Bundle containing the Resources that were used in the evaluation of this report." ) 2369 protected Reference evaluatedResources; 2370 2371 /** 2372 * The actual object that is the target of the reference (A reference to a Bundle containing the Resources that were used in the evaluation of this report.) 2373 */ 2374 protected Bundle evaluatedResourcesTarget; 2375 2376 private static final long serialVersionUID = -891268298L; 2377 2378 /** 2379 * Constructor 2380 */ 2381 public MeasureReport() { 2382 super(); 2383 } 2384 2385 /** 2386 * Constructor 2387 */ 2388 public MeasureReport(Reference measure, Enumeration<MeasureReportType> type, Period period, Enumeration<MeasureReportStatus> status) { 2389 super(); 2390 this.measure = measure; 2391 this.type = type; 2392 this.period = period; 2393 this.status = status; 2394 } 2395 2396 /** 2397 * @return {@link #measure} (A reference to the Measure that was evaluated to produce this report.) 2398 */ 2399 public Reference getMeasure() { 2400 if (this.measure == null) 2401 if (Configuration.errorOnAutoCreate()) 2402 throw new Error("Attempt to auto-create MeasureReport.measure"); 2403 else if (Configuration.doAutoCreate()) 2404 this.measure = new Reference(); // cc 2405 return this.measure; 2406 } 2407 2408 public boolean hasMeasure() { 2409 return this.measure != null && !this.measure.isEmpty(); 2410 } 2411 2412 /** 2413 * @param value {@link #measure} (A reference to the Measure that was evaluated to produce this report.) 2414 */ 2415 public MeasureReport setMeasure(Reference value) { 2416 this.measure = value; 2417 return this; 2418 } 2419 2420 /** 2421 * @return {@link #measure} 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 reference to the Measure that was evaluated to produce this report.) 2422 */ 2423 public Measure getMeasureTarget() { 2424 if (this.measureTarget == null) 2425 if (Configuration.errorOnAutoCreate()) 2426 throw new Error("Attempt to auto-create MeasureReport.measure"); 2427 else if (Configuration.doAutoCreate()) 2428 this.measureTarget = new Measure(); // aa 2429 return this.measureTarget; 2430 } 2431 2432 /** 2433 * @param value {@link #measure} 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 reference to the Measure that was evaluated to produce this report.) 2434 */ 2435 public MeasureReport setMeasureTarget(Measure value) { 2436 this.measureTarget = value; 2437 return this; 2438 } 2439 2440 /** 2441 * @return {@link #type} (The type of measure report. This may be an individual report, which provides a single patient's score for the measure, a patient listing, which returns the list of patients that meet the various criteria in the measure, or a summary report, which returns a population count for each criteria in the measure.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 2442 */ 2443 public Enumeration<MeasureReportType> getTypeElement() { 2444 if (this.type == null) 2445 if (Configuration.errorOnAutoCreate()) 2446 throw new Error("Attempt to auto-create MeasureReport.type"); 2447 else if (Configuration.doAutoCreate()) 2448 this.type = new Enumeration<MeasureReportType>(new MeasureReportTypeEnumFactory()); // bb 2449 return this.type; 2450 } 2451 2452 public boolean hasTypeElement() { 2453 return this.type != null && !this.type.isEmpty(); 2454 } 2455 2456 public boolean hasType() { 2457 return this.type != null && !this.type.isEmpty(); 2458 } 2459 2460 /** 2461 * @param value {@link #type} (The type of measure report. This may be an individual report, which provides a single patient's score for the measure, a patient listing, which returns the list of patients that meet the various criteria in the measure, or a summary report, which returns a population count for each criteria in the measure.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 2462 */ 2463 public MeasureReport setTypeElement(Enumeration<MeasureReportType> value) { 2464 this.type = value; 2465 return this; 2466 } 2467 2468 /** 2469 * @return The type of measure report. This may be an individual report, which provides a single patient's score for the measure, a patient listing, which returns the list of patients that meet the various criteria in the measure, or a summary report, which returns a population count for each criteria in the measure. 2470 */ 2471 public MeasureReportType getType() { 2472 return this.type == null ? null : this.type.getValue(); 2473 } 2474 2475 /** 2476 * @param value The type of measure report. This may be an individual report, which provides a single patient's score for the measure, a patient listing, which returns the list of patients that meet the various criteria in the measure, or a summary report, which returns a population count for each criteria in the measure. 2477 */ 2478 public MeasureReport setType(MeasureReportType value) { 2479 if (this.type == null) 2480 this.type = new Enumeration<MeasureReportType>(new MeasureReportTypeEnumFactory()); 2481 this.type.setValue(value); 2482 return this; 2483 } 2484 2485 /** 2486 * @return {@link #patient} (Optional Patient if the report was requested for a single patient.) 2487 */ 2488 public Reference getPatient() { 2489 if (this.patient == null) 2490 if (Configuration.errorOnAutoCreate()) 2491 throw new Error("Attempt to auto-create MeasureReport.patient"); 2492 else if (Configuration.doAutoCreate()) 2493 this.patient = new Reference(); // cc 2494 return this.patient; 2495 } 2496 2497 public boolean hasPatient() { 2498 return this.patient != null && !this.patient.isEmpty(); 2499 } 2500 2501 /** 2502 * @param value {@link #patient} (Optional Patient if the report was requested for a single patient.) 2503 */ 2504 public MeasureReport setPatient(Reference value) { 2505 this.patient = value; 2506 return this; 2507 } 2508 2509 /** 2510 * @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. (Optional Patient if the report was requested for a single patient.) 2511 */ 2512 public Patient getPatientTarget() { 2513 if (this.patientTarget == null) 2514 if (Configuration.errorOnAutoCreate()) 2515 throw new Error("Attempt to auto-create MeasureReport.patient"); 2516 else if (Configuration.doAutoCreate()) 2517 this.patientTarget = new Patient(); // aa 2518 return this.patientTarget; 2519 } 2520 2521 /** 2522 * @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. (Optional Patient if the report was requested for a single patient.) 2523 */ 2524 public MeasureReport setPatientTarget(Patient value) { 2525 this.patientTarget = value; 2526 return this; 2527 } 2528 2529 /** 2530 * @return {@link #period} (The reporting period for which the report was calculated.) 2531 */ 2532 public Period getPeriod() { 2533 if (this.period == null) 2534 if (Configuration.errorOnAutoCreate()) 2535 throw new Error("Attempt to auto-create MeasureReport.period"); 2536 else if (Configuration.doAutoCreate()) 2537 this.period = new Period(); // cc 2538 return this.period; 2539 } 2540 2541 public boolean hasPeriod() { 2542 return this.period != null && !this.period.isEmpty(); 2543 } 2544 2545 /** 2546 * @param value {@link #period} (The reporting period for which the report was calculated.) 2547 */ 2548 public MeasureReport setPeriod(Period value) { 2549 this.period = value; 2550 return this; 2551 } 2552 2553 /** 2554 * @return {@link #status} (The report status. No data will be available until the report status is complete.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2555 */ 2556 public Enumeration<MeasureReportStatus> getStatusElement() { 2557 if (this.status == null) 2558 if (Configuration.errorOnAutoCreate()) 2559 throw new Error("Attempt to auto-create MeasureReport.status"); 2560 else if (Configuration.doAutoCreate()) 2561 this.status = new Enumeration<MeasureReportStatus>(new MeasureReportStatusEnumFactory()); // bb 2562 return this.status; 2563 } 2564 2565 public boolean hasStatusElement() { 2566 return this.status != null && !this.status.isEmpty(); 2567 } 2568 2569 public boolean hasStatus() { 2570 return this.status != null && !this.status.isEmpty(); 2571 } 2572 2573 /** 2574 * @param value {@link #status} (The report status. No data will be available until the report status is complete.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2575 */ 2576 public MeasureReport setStatusElement(Enumeration<MeasureReportStatus> value) { 2577 this.status = value; 2578 return this; 2579 } 2580 2581 /** 2582 * @return The report status. No data will be available until the report status is complete. 2583 */ 2584 public MeasureReportStatus getStatus() { 2585 return this.status == null ? null : this.status.getValue(); 2586 } 2587 2588 /** 2589 * @param value The report status. No data will be available until the report status is complete. 2590 */ 2591 public MeasureReport setStatus(MeasureReportStatus value) { 2592 if (this.status == null) 2593 this.status = new Enumeration<MeasureReportStatus>(new MeasureReportStatusEnumFactory()); 2594 this.status.setValue(value); 2595 return this; 2596 } 2597 2598 /** 2599 * @return {@link #date} (The date this measure report was generated.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2600 */ 2601 public DateTimeType getDateElement() { 2602 if (this.date == null) 2603 if (Configuration.errorOnAutoCreate()) 2604 throw new Error("Attempt to auto-create MeasureReport.date"); 2605 else if (Configuration.doAutoCreate()) 2606 this.date = new DateTimeType(); // bb 2607 return this.date; 2608 } 2609 2610 public boolean hasDateElement() { 2611 return this.date != null && !this.date.isEmpty(); 2612 } 2613 2614 public boolean hasDate() { 2615 return this.date != null && !this.date.isEmpty(); 2616 } 2617 2618 /** 2619 * @param value {@link #date} (The date this measure report was generated.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2620 */ 2621 public MeasureReport setDateElement(DateTimeType value) { 2622 this.date = value; 2623 return this; 2624 } 2625 2626 /** 2627 * @return The date this measure report was generated. 2628 */ 2629 public Date getDate() { 2630 return this.date == null ? null : this.date.getValue(); 2631 } 2632 2633 /** 2634 * @param value The date this measure report was generated. 2635 */ 2636 public MeasureReport setDate(Date value) { 2637 if (value == null) 2638 this.date = null; 2639 else { 2640 if (this.date == null) 2641 this.date = new DateTimeType(); 2642 this.date.setValue(value); 2643 } 2644 return this; 2645 } 2646 2647 /** 2648 * @return {@link #reportingOrganization} (Reporting Organization.) 2649 */ 2650 public Reference getReportingOrganization() { 2651 if (this.reportingOrganization == null) 2652 if (Configuration.errorOnAutoCreate()) 2653 throw new Error("Attempt to auto-create MeasureReport.reportingOrganization"); 2654 else if (Configuration.doAutoCreate()) 2655 this.reportingOrganization = new Reference(); // cc 2656 return this.reportingOrganization; 2657 } 2658 2659 public boolean hasReportingOrganization() { 2660 return this.reportingOrganization != null && !this.reportingOrganization.isEmpty(); 2661 } 2662 2663 /** 2664 * @param value {@link #reportingOrganization} (Reporting Organization.) 2665 */ 2666 public MeasureReport setReportingOrganization(Reference value) { 2667 this.reportingOrganization = value; 2668 return this; 2669 } 2670 2671 /** 2672 * @return {@link #reportingOrganization} 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. (Reporting Organization.) 2673 */ 2674 public Organization getReportingOrganizationTarget() { 2675 if (this.reportingOrganizationTarget == null) 2676 if (Configuration.errorOnAutoCreate()) 2677 throw new Error("Attempt to auto-create MeasureReport.reportingOrganization"); 2678 else if (Configuration.doAutoCreate()) 2679 this.reportingOrganizationTarget = new Organization(); // aa 2680 return this.reportingOrganizationTarget; 2681 } 2682 2683 /** 2684 * @param value {@link #reportingOrganization} 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. (Reporting Organization.) 2685 */ 2686 public MeasureReport setReportingOrganizationTarget(Organization value) { 2687 this.reportingOrganizationTarget = value; 2688 return this; 2689 } 2690 2691 /** 2692 * @return {@link #group} (The results of the calculation, one for each population group in the measure.) 2693 */ 2694 public List<MeasureReportGroupComponent> getGroup() { 2695 if (this.group == null) 2696 this.group = new ArrayList<MeasureReportGroupComponent>(); 2697 return this.group; 2698 } 2699 2700 public boolean hasGroup() { 2701 if (this.group == null) 2702 return false; 2703 for (MeasureReportGroupComponent item : this.group) 2704 if (!item.isEmpty()) 2705 return true; 2706 return false; 2707 } 2708 2709 /** 2710 * @return {@link #group} (The results of the calculation, one for each population group in the measure.) 2711 */ 2712 // syntactic sugar 2713 public MeasureReportGroupComponent addGroup() { //3 2714 MeasureReportGroupComponent t = new MeasureReportGroupComponent(); 2715 if (this.group == null) 2716 this.group = new ArrayList<MeasureReportGroupComponent>(); 2717 this.group.add(t); 2718 return t; 2719 } 2720 2721 // syntactic sugar 2722 public MeasureReport addGroup(MeasureReportGroupComponent t) { //3 2723 if (t == null) 2724 return this; 2725 if (this.group == null) 2726 this.group = new ArrayList<MeasureReportGroupComponent>(); 2727 this.group.add(t); 2728 return this; 2729 } 2730 2731 /** 2732 * @return {@link #evaluatedResources} (A reference to a Bundle containing the Resources that were used in the evaluation of this report.) 2733 */ 2734 public Reference getEvaluatedResources() { 2735 if (this.evaluatedResources == null) 2736 if (Configuration.errorOnAutoCreate()) 2737 throw new Error("Attempt to auto-create MeasureReport.evaluatedResources"); 2738 else if (Configuration.doAutoCreate()) 2739 this.evaluatedResources = new Reference(); // cc 2740 return this.evaluatedResources; 2741 } 2742 2743 public boolean hasEvaluatedResources() { 2744 return this.evaluatedResources != null && !this.evaluatedResources.isEmpty(); 2745 } 2746 2747 /** 2748 * @param value {@link #evaluatedResources} (A reference to a Bundle containing the Resources that were used in the evaluation of this report.) 2749 */ 2750 public MeasureReport setEvaluatedResources(Reference value) { 2751 this.evaluatedResources = value; 2752 return this; 2753 } 2754 2755 /** 2756 * @return {@link #evaluatedResources} 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 reference to a Bundle containing the Resources that were used in the evaluation of this report.) 2757 */ 2758 public Bundle getEvaluatedResourcesTarget() { 2759 if (this.evaluatedResourcesTarget == null) 2760 if (Configuration.errorOnAutoCreate()) 2761 throw new Error("Attempt to auto-create MeasureReport.evaluatedResources"); 2762 else if (Configuration.doAutoCreate()) 2763 this.evaluatedResourcesTarget = new Bundle(); // aa 2764 return this.evaluatedResourcesTarget; 2765 } 2766 2767 /** 2768 * @param value {@link #evaluatedResources} 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 reference to a Bundle containing the Resources that were used in the evaluation of this report.) 2769 */ 2770 public MeasureReport setEvaluatedResourcesTarget(Bundle value) { 2771 this.evaluatedResourcesTarget = value; 2772 return this; 2773 } 2774 2775 protected void listChildren(List<Property> childrenList) { 2776 super.listChildren(childrenList); 2777 childrenList.add(new Property("measure", "Reference(Measure)", "A reference to the Measure that was evaluated to produce this report.", 0, java.lang.Integer.MAX_VALUE, measure)); 2778 childrenList.add(new Property("type", "code", "The type of measure report. This may be an individual report, which provides a single patient's score for the measure, a patient listing, which returns the list of patients that meet the various criteria in the measure, or a summary report, which returns a population count for each criteria in the measure.", 0, java.lang.Integer.MAX_VALUE, type)); 2779 childrenList.add(new Property("patient", "Reference(Patient)", "Optional Patient if the report was requested for a single patient.", 0, java.lang.Integer.MAX_VALUE, patient)); 2780 childrenList.add(new Property("period", "Period", "The reporting period for which the report was calculated.", 0, java.lang.Integer.MAX_VALUE, period)); 2781 childrenList.add(new Property("status", "code", "The report status. No data will be available until the report status is complete.", 0, java.lang.Integer.MAX_VALUE, status)); 2782 childrenList.add(new Property("date", "dateTime", "The date this measure report was generated.", 0, java.lang.Integer.MAX_VALUE, date)); 2783 childrenList.add(new Property("reportingOrganization", "Reference(Organization)", "Reporting Organization.", 0, java.lang.Integer.MAX_VALUE, reportingOrganization)); 2784 childrenList.add(new Property("group", "", "The results of the calculation, one for each population group in the measure.", 0, java.lang.Integer.MAX_VALUE, group)); 2785 childrenList.add(new Property("evaluatedResources", "Reference(Bundle)", "A reference to a Bundle containing the Resources that were used in the evaluation of this report.", 0, java.lang.Integer.MAX_VALUE, evaluatedResources)); 2786 } 2787 2788 @Override 2789 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2790 switch (hash) { 2791 case 938321246: /*measure*/ return this.measure == null ? new Base[0] : new Base[] {this.measure}; // Reference 2792 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<MeasureReportType> 2793 case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference 2794 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 2795 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<MeasureReportStatus> 2796 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 2797 case -2053950847: /*reportingOrganization*/ return this.reportingOrganization == null ? new Base[0] : new Base[] {this.reportingOrganization}; // Reference 2798 case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // MeasureReportGroupComponent 2799 case 1599836026: /*evaluatedResources*/ return this.evaluatedResources == null ? new Base[0] : new Base[] {this.evaluatedResources}; // Reference 2800 default: return super.getProperty(hash, name, checkValid); 2801 } 2802 2803 } 2804 2805 @Override 2806 public void setProperty(int hash, String name, Base value) throws FHIRException { 2807 switch (hash) { 2808 case 938321246: // measure 2809 this.measure = castToReference(value); // Reference 2810 break; 2811 case 3575610: // type 2812 this.type = new MeasureReportTypeEnumFactory().fromType(value); // Enumeration<MeasureReportType> 2813 break; 2814 case -791418107: // patient 2815 this.patient = castToReference(value); // Reference 2816 break; 2817 case -991726143: // period 2818 this.period = castToPeriod(value); // Period 2819 break; 2820 case -892481550: // status 2821 this.status = new MeasureReportStatusEnumFactory().fromType(value); // Enumeration<MeasureReportStatus> 2822 break; 2823 case 3076014: // date 2824 this.date = castToDateTime(value); // DateTimeType 2825 break; 2826 case -2053950847: // reportingOrganization 2827 this.reportingOrganization = castToReference(value); // Reference 2828 break; 2829 case 98629247: // group 2830 this.getGroup().add((MeasureReportGroupComponent) value); // MeasureReportGroupComponent 2831 break; 2832 case 1599836026: // evaluatedResources 2833 this.evaluatedResources = castToReference(value); // Reference 2834 break; 2835 default: super.setProperty(hash, name, value); 2836 } 2837 2838 } 2839 2840 @Override 2841 public void setProperty(String name, Base value) throws FHIRException { 2842 if (name.equals("measure")) 2843 this.measure = castToReference(value); // Reference 2844 else if (name.equals("type")) 2845 this.type = new MeasureReportTypeEnumFactory().fromType(value); // Enumeration<MeasureReportType> 2846 else if (name.equals("patient")) 2847 this.patient = castToReference(value); // Reference 2848 else if (name.equals("period")) 2849 this.period = castToPeriod(value); // Period 2850 else if (name.equals("status")) 2851 this.status = new MeasureReportStatusEnumFactory().fromType(value); // Enumeration<MeasureReportStatus> 2852 else if (name.equals("date")) 2853 this.date = castToDateTime(value); // DateTimeType 2854 else if (name.equals("reportingOrganization")) 2855 this.reportingOrganization = castToReference(value); // Reference 2856 else if (name.equals("group")) 2857 this.getGroup().add((MeasureReportGroupComponent) value); 2858 else if (name.equals("evaluatedResources")) 2859 this.evaluatedResources = castToReference(value); // Reference 2860 else 2861 super.setProperty(name, value); 2862 } 2863 2864 @Override 2865 public Base makeProperty(int hash, String name) throws FHIRException { 2866 switch (hash) { 2867 case 938321246: return getMeasure(); // Reference 2868 case 3575610: throw new FHIRException("Cannot make property type as it is not a complex type"); // Enumeration<MeasureReportType> 2869 case -791418107: return getPatient(); // Reference 2870 case -991726143: return getPeriod(); // Period 2871 case -892481550: throw new FHIRException("Cannot make property status as it is not a complex type"); // Enumeration<MeasureReportStatus> 2872 case 3076014: throw new FHIRException("Cannot make property date as it is not a complex type"); // DateTimeType 2873 case -2053950847: return getReportingOrganization(); // Reference 2874 case 98629247: return addGroup(); // MeasureReportGroupComponent 2875 case 1599836026: return getEvaluatedResources(); // Reference 2876 default: return super.makeProperty(hash, name); 2877 } 2878 2879 } 2880 2881 @Override 2882 public Base addChild(String name) throws FHIRException { 2883 if (name.equals("measure")) { 2884 this.measure = new Reference(); 2885 return this.measure; 2886 } 2887 else if (name.equals("type")) { 2888 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.type"); 2889 } 2890 else if (name.equals("patient")) { 2891 this.patient = new Reference(); 2892 return this.patient; 2893 } 2894 else if (name.equals("period")) { 2895 this.period = new Period(); 2896 return this.period; 2897 } 2898 else if (name.equals("status")) { 2899 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.status"); 2900 } 2901 else if (name.equals("date")) { 2902 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.date"); 2903 } 2904 else if (name.equals("reportingOrganization")) { 2905 this.reportingOrganization = new Reference(); 2906 return this.reportingOrganization; 2907 } 2908 else if (name.equals("group")) { 2909 return addGroup(); 2910 } 2911 else if (name.equals("evaluatedResources")) { 2912 this.evaluatedResources = new Reference(); 2913 return this.evaluatedResources; 2914 } 2915 else 2916 return super.addChild(name); 2917 } 2918 2919 public String fhirType() { 2920 return "MeasureReport"; 2921 2922 } 2923 2924 public MeasureReport copy() { 2925 MeasureReport dst = new MeasureReport(); 2926 copyValues(dst); 2927 dst.measure = measure == null ? null : measure.copy(); 2928 dst.type = type == null ? null : type.copy(); 2929 dst.patient = patient == null ? null : patient.copy(); 2930 dst.period = period == null ? null : period.copy(); 2931 dst.status = status == null ? null : status.copy(); 2932 dst.date = date == null ? null : date.copy(); 2933 dst.reportingOrganization = reportingOrganization == null ? null : reportingOrganization.copy(); 2934 if (group != null) { 2935 dst.group = new ArrayList<MeasureReportGroupComponent>(); 2936 for (MeasureReportGroupComponent i : group) 2937 dst.group.add(i.copy()); 2938 }; 2939 dst.evaluatedResources = evaluatedResources == null ? null : evaluatedResources.copy(); 2940 return dst; 2941 } 2942 2943 protected MeasureReport typedCopy() { 2944 return copy(); 2945 } 2946 2947 @Override 2948 public boolean equalsDeep(Base other) { 2949 if (!super.equalsDeep(other)) 2950 return false; 2951 if (!(other instanceof MeasureReport)) 2952 return false; 2953 MeasureReport o = (MeasureReport) other; 2954 return compareDeep(measure, o.measure, true) && compareDeep(type, o.type, true) && compareDeep(patient, o.patient, true) 2955 && compareDeep(period, o.period, true) && compareDeep(status, o.status, true) && compareDeep(date, o.date, true) 2956 && compareDeep(reportingOrganization, o.reportingOrganization, true) && compareDeep(group, o.group, true) 2957 && compareDeep(evaluatedResources, o.evaluatedResources, true); 2958 } 2959 2960 @Override 2961 public boolean equalsShallow(Base other) { 2962 if (!super.equalsShallow(other)) 2963 return false; 2964 if (!(other instanceof MeasureReport)) 2965 return false; 2966 MeasureReport o = (MeasureReport) other; 2967 return compareValues(type, o.type, true) && compareValues(status, o.status, true) && compareValues(date, o.date, true) 2968 ; 2969 } 2970 2971 public boolean isEmpty() { 2972 return super.isEmpty() && (measure == null || measure.isEmpty()) && (type == null || type.isEmpty()) 2973 && (patient == null || patient.isEmpty()) && (period == null || period.isEmpty()) && (status == null || status.isEmpty()) 2974 && (date == null || date.isEmpty()) && (reportingOrganization == null || reportingOrganization.isEmpty()) 2975 && (group == null || group.isEmpty()) && (evaluatedResources == null || evaluatedResources.isEmpty()) 2976 ; 2977 } 2978 2979 @Override 2980 public ResourceType getResourceType() { 2981 return ResourceType.MeasureReport; 2982 } 2983 2984 /** 2985 * Search parameter: <b>patient</b> 2986 * <p> 2987 * Description: <b>The identity of a patient to search for individual measure report results for</b><br> 2988 * Type: <b>reference</b><br> 2989 * Path: <b>MeasureReport.patient</b><br> 2990 * </p> 2991 */ 2992 @SearchParamDefinition(name="patient", path="MeasureReport.patient", description="The identity of a patient to search for individual measure report results for", type="reference" ) 2993 public static final String SP_PATIENT = "patient"; 2994 /** 2995 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 2996 * <p> 2997 * Description: <b>The identity of a patient to search for individual measure report results for</b><br> 2998 * Type: <b>reference</b><br> 2999 * Path: <b>MeasureReport.patient</b><br> 3000 * </p> 3001 */ 3002 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 3003 3004/** 3005 * Constant for fluent queries to be used to add include statements. Specifies 3006 * the path value of "<b>MeasureReport:patient</b>". 3007 */ 3008 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("MeasureReport:patient").toLocked(); 3009 3010 3011}