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