
001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation. 052 */ 053@ResourceDef(name="MeasureReport", profile="http://hl7.org/fhir/StructureDefinition/MeasureReport") 054public class MeasureReport extends DomainResource { 055 056 public enum MeasureReportStatus { 057 /** 058 * The report is complete and ready for use. 059 */ 060 COMPLETE, 061 /** 062 * The report is currently being generated. 063 */ 064 PENDING, 065 /** 066 * An error occurred attempting to generate the report. 067 */ 068 ERROR, 069 /** 070 * added to help the parsers with the generic types 071 */ 072 NULL; 073 public static MeasureReportStatus fromCode(String codeString) throws FHIRException { 074 if (codeString == null || "".equals(codeString)) 075 return null; 076 if ("complete".equals(codeString)) 077 return COMPLETE; 078 if ("pending".equals(codeString)) 079 return PENDING; 080 if ("error".equals(codeString)) 081 return ERROR; 082 if (Configuration.isAcceptInvalidEnums()) 083 return null; 084 else 085 throw new FHIRException("Unknown MeasureReportStatus code '"+codeString+"'"); 086 } 087 public String toCode() { 088 switch (this) { 089 case COMPLETE: return "complete"; 090 case PENDING: return "pending"; 091 case ERROR: return "error"; 092 case NULL: return null; 093 default: return "?"; 094 } 095 } 096 public String getSystem() { 097 switch (this) { 098 case COMPLETE: return "http://hl7.org/fhir/measure-report-status"; 099 case PENDING: return "http://hl7.org/fhir/measure-report-status"; 100 case ERROR: return "http://hl7.org/fhir/measure-report-status"; 101 case NULL: return null; 102 default: return "?"; 103 } 104 } 105 public String getDefinition() { 106 switch (this) { 107 case COMPLETE: return "The report is complete and ready for use."; 108 case PENDING: return "The report is currently being generated."; 109 case ERROR: return "An error occurred attempting to generate the report."; 110 case NULL: return null; 111 default: return "?"; 112 } 113 } 114 public String getDisplay() { 115 switch (this) { 116 case COMPLETE: return "Complete"; 117 case PENDING: return "Pending"; 118 case ERROR: return "Error"; 119 case NULL: return null; 120 default: return "?"; 121 } 122 } 123 } 124 125 public static class MeasureReportStatusEnumFactory implements EnumFactory<MeasureReportStatus> { 126 public MeasureReportStatus fromCode(String codeString) throws IllegalArgumentException { 127 if (codeString == null || "".equals(codeString)) 128 if (codeString == null || "".equals(codeString)) 129 return null; 130 if ("complete".equals(codeString)) 131 return MeasureReportStatus.COMPLETE; 132 if ("pending".equals(codeString)) 133 return MeasureReportStatus.PENDING; 134 if ("error".equals(codeString)) 135 return MeasureReportStatus.ERROR; 136 throw new IllegalArgumentException("Unknown MeasureReportStatus code '"+codeString+"'"); 137 } 138 public Enumeration<MeasureReportStatus> fromType(Base code) throws FHIRException { 139 if (code == null) 140 return null; 141 if (code.isEmpty()) 142 return new Enumeration<MeasureReportStatus>(this); 143 String codeString = ((PrimitiveType) code).asStringValue(); 144 if (codeString == null || "".equals(codeString)) 145 return null; 146 if ("complete".equals(codeString)) 147 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.COMPLETE); 148 if ("pending".equals(codeString)) 149 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.PENDING); 150 if ("error".equals(codeString)) 151 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.ERROR); 152 throw new FHIRException("Unknown MeasureReportStatus code '"+codeString+"'"); 153 } 154 public String toCode(MeasureReportStatus code) { 155 if (code == MeasureReportStatus.COMPLETE) 156 return "complete"; 157 if (code == MeasureReportStatus.PENDING) 158 return "pending"; 159 if (code == MeasureReportStatus.ERROR) 160 return "error"; 161 return "?"; 162 } 163 public String toSystem(MeasureReportStatus code) { 164 return code.getSystem(); 165 } 166 } 167 168 public enum MeasureReportType { 169 /** 170 * An individual report that provides information on the performance for a given measure with respect to a single subject. 171 */ 172 INDIVIDUAL, 173 /** 174 * A subject list report that includes a listing of subjects that satisfied each population criteria in the measure. 175 */ 176 SUBJECTLIST, 177 /** 178 * A summary report that returns the number of members in each population criteria for the measure. 179 */ 180 SUMMARY, 181 /** 182 * A data exchange report that contains data-of-interest for the measure (i.e. data that is needed to calculate the measure) 183 */ 184 DATAEXCHANGE, 185 /** 186 * added to help the parsers with the generic types 187 */ 188 NULL; 189 public static MeasureReportType fromCode(String codeString) throws FHIRException { 190 if (codeString == null || "".equals(codeString)) 191 return null; 192 if ("individual".equals(codeString)) 193 return INDIVIDUAL; 194 if ("subject-list".equals(codeString)) 195 return SUBJECTLIST; 196 if ("summary".equals(codeString)) 197 return SUMMARY; 198 if ("data-exchange".equals(codeString)) 199 return DATAEXCHANGE; 200 if (Configuration.isAcceptInvalidEnums()) 201 return null; 202 else 203 throw new FHIRException("Unknown MeasureReportType code '"+codeString+"'"); 204 } 205 public String toCode() { 206 switch (this) { 207 case INDIVIDUAL: return "individual"; 208 case SUBJECTLIST: return "subject-list"; 209 case SUMMARY: return "summary"; 210 case DATAEXCHANGE: return "data-exchange"; 211 case NULL: return null; 212 default: return "?"; 213 } 214 } 215 public String getSystem() { 216 switch (this) { 217 case INDIVIDUAL: return "http://hl7.org/fhir/measure-report-type"; 218 case SUBJECTLIST: return "http://hl7.org/fhir/measure-report-type"; 219 case SUMMARY: return "http://hl7.org/fhir/measure-report-type"; 220 case DATAEXCHANGE: return "http://hl7.org/fhir/measure-report-type"; 221 case NULL: return null; 222 default: return "?"; 223 } 224 } 225 public String getDefinition() { 226 switch (this) { 227 case INDIVIDUAL: return "An individual report that provides information on the performance for a given measure with respect to a single subject."; 228 case SUBJECTLIST: return "A subject list report that includes a listing of subjects that satisfied each population criteria in the measure."; 229 case SUMMARY: return "A summary report that returns the number of members in each population criteria for the measure."; 230 case DATAEXCHANGE: return "A data exchange report that contains data-of-interest for the measure (i.e. data that is needed to calculate the measure)"; 231 case NULL: return null; 232 default: return "?"; 233 } 234 } 235 public String getDisplay() { 236 switch (this) { 237 case INDIVIDUAL: return "Individual"; 238 case SUBJECTLIST: return "Subject List"; 239 case SUMMARY: return "Summary"; 240 case DATAEXCHANGE: return "Data Exchange"; 241 case NULL: return null; 242 default: return "?"; 243 } 244 } 245 } 246 247 public static class MeasureReportTypeEnumFactory implements EnumFactory<MeasureReportType> { 248 public MeasureReportType fromCode(String codeString) throws IllegalArgumentException { 249 if (codeString == null || "".equals(codeString)) 250 if (codeString == null || "".equals(codeString)) 251 return null; 252 if ("individual".equals(codeString)) 253 return MeasureReportType.INDIVIDUAL; 254 if ("subject-list".equals(codeString)) 255 return MeasureReportType.SUBJECTLIST; 256 if ("summary".equals(codeString)) 257 return MeasureReportType.SUMMARY; 258 if ("data-exchange".equals(codeString)) 259 return MeasureReportType.DATAEXCHANGE; 260 throw new IllegalArgumentException("Unknown MeasureReportType code '"+codeString+"'"); 261 } 262 public Enumeration<MeasureReportType> fromType(Base code) throws FHIRException { 263 if (code == null) 264 return null; 265 if (code.isEmpty()) 266 return new Enumeration<MeasureReportType>(this); 267 String codeString = ((PrimitiveType) code).asStringValue(); 268 if (codeString == null || "".equals(codeString)) 269 return null; 270 if ("individual".equals(codeString)) 271 return new Enumeration<MeasureReportType>(this, MeasureReportType.INDIVIDUAL); 272 if ("subject-list".equals(codeString)) 273 return new Enumeration<MeasureReportType>(this, MeasureReportType.SUBJECTLIST); 274 if ("summary".equals(codeString)) 275 return new Enumeration<MeasureReportType>(this, MeasureReportType.SUMMARY); 276 if ("data-exchange".equals(codeString)) 277 return new Enumeration<MeasureReportType>(this, MeasureReportType.DATAEXCHANGE); 278 throw new FHIRException("Unknown MeasureReportType code '"+codeString+"'"); 279 } 280 public String toCode(MeasureReportType code) { 281 if (code == MeasureReportType.INDIVIDUAL) 282 return "individual"; 283 if (code == MeasureReportType.SUBJECTLIST) 284 return "subject-list"; 285 if (code == MeasureReportType.SUMMARY) 286 return "summary"; 287 if (code == MeasureReportType.DATAEXCHANGE) 288 return "data-exchange"; 289 return "?"; 290 } 291 public String toSystem(MeasureReportType code) { 292 return code.getSystem(); 293 } 294 } 295 296 public enum SubmitDataUpdateType { 297 /** 298 * In contrast to the Snapshot Update, the FHIR Parameters resource used in a Submit Data or the Collect Data scenario contains only the new and updated DEQM and QI Core Profiles since the last transaction. If the Consumer supports incremental updates, the contents of the updated payload updates the previous payload data. 299 */ 300 INCREMENTAL, 301 /** 302 * In contrast to the Incremental Update, the FHIR Parameters resource used in a Submit Data or the Collect Data scenario contains all the DEQM and QI Core Profiles for each transaction. If the Consumer supports snapshot updates, the contents of the updated payload entirely replaces the previous payload 303 */ 304 SNAPSHOT, 305 /** 306 * added to help the parsers with the generic types 307 */ 308 NULL; 309 public static SubmitDataUpdateType fromCode(String codeString) throws FHIRException { 310 if (codeString == null || "".equals(codeString)) 311 return null; 312 if ("incremental".equals(codeString)) 313 return INCREMENTAL; 314 if ("snapshot".equals(codeString)) 315 return SNAPSHOT; 316 if (Configuration.isAcceptInvalidEnums()) 317 return null; 318 else 319 throw new FHIRException("Unknown SubmitDataUpdateType code '"+codeString+"'"); 320 } 321 public String toCode() { 322 switch (this) { 323 case INCREMENTAL: return "incremental"; 324 case SNAPSHOT: return "snapshot"; 325 case NULL: return null; 326 default: return "?"; 327 } 328 } 329 public String getSystem() { 330 switch (this) { 331 case INCREMENTAL: return "http://hl7.org/fhir/CodeSystem/submit-data-update-type"; 332 case SNAPSHOT: return "http://hl7.org/fhir/CodeSystem/submit-data-update-type"; 333 case NULL: return null; 334 default: return "?"; 335 } 336 } 337 public String getDefinition() { 338 switch (this) { 339 case INCREMENTAL: return "In contrast to the Snapshot Update, the FHIR Parameters resource used in a Submit Data or the Collect Data scenario contains only the new and updated DEQM and QI Core Profiles since the last transaction. If the Consumer supports incremental updates, the contents of the updated payload updates the previous payload data."; 340 case SNAPSHOT: return "In contrast to the Incremental Update, the FHIR Parameters resource used in a Submit Data or the Collect Data scenario contains all the DEQM and QI Core Profiles for each transaction. If the Consumer supports snapshot updates, the contents of the updated payload entirely replaces the previous payload"; 341 case NULL: return null; 342 default: return "?"; 343 } 344 } 345 public String getDisplay() { 346 switch (this) { 347 case INCREMENTAL: return "Incremental"; 348 case SNAPSHOT: return "Snapshot"; 349 case NULL: return null; 350 default: return "?"; 351 } 352 } 353 } 354 355 public static class SubmitDataUpdateTypeEnumFactory implements EnumFactory<SubmitDataUpdateType> { 356 public SubmitDataUpdateType fromCode(String codeString) throws IllegalArgumentException { 357 if (codeString == null || "".equals(codeString)) 358 if (codeString == null || "".equals(codeString)) 359 return null; 360 if ("incremental".equals(codeString)) 361 return SubmitDataUpdateType.INCREMENTAL; 362 if ("snapshot".equals(codeString)) 363 return SubmitDataUpdateType.SNAPSHOT; 364 throw new IllegalArgumentException("Unknown SubmitDataUpdateType code '"+codeString+"'"); 365 } 366 public Enumeration<SubmitDataUpdateType> fromType(Base code) throws FHIRException { 367 if (code == null) 368 return null; 369 if (code.isEmpty()) 370 return new Enumeration<SubmitDataUpdateType>(this); 371 String codeString = ((PrimitiveType) code).asStringValue(); 372 if (codeString == null || "".equals(codeString)) 373 return null; 374 if ("incremental".equals(codeString)) 375 return new Enumeration<SubmitDataUpdateType>(this, SubmitDataUpdateType.INCREMENTAL); 376 if ("snapshot".equals(codeString)) 377 return new Enumeration<SubmitDataUpdateType>(this, SubmitDataUpdateType.SNAPSHOT); 378 throw new FHIRException("Unknown SubmitDataUpdateType code '"+codeString+"'"); 379 } 380 public String toCode(SubmitDataUpdateType code) { 381 if (code == SubmitDataUpdateType.INCREMENTAL) 382 return "incremental"; 383 if (code == SubmitDataUpdateType.SNAPSHOT) 384 return "snapshot"; 385 return "?"; 386 } 387 public String toSystem(SubmitDataUpdateType code) { 388 return code.getSystem(); 389 } 390 } 391 392 @Block() 393 public static class MeasureReportGroupComponent extends BackboneElement implements IBaseBackboneElement { 394 /** 395 * The meaning of the population group as defined in the measure definition. 396 */ 397 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 398 @Description(shortDefinition="Meaning of the group", formalDefinition="The meaning of the population group as defined in the measure definition." ) 399 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-group-example") 400 protected CodeableConcept code; 401 402 /** 403 * The populations that make up the population group, one for each type of population appropriate for the measure. 404 */ 405 @Child(name = "population", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 406 @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." ) 407 protected List<MeasureReportGroupPopulationComponent> population; 408 409 /** 410 * 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. 411 */ 412 @Child(name = "measureScore", type = {Quantity.class, DateTimeType.class, CodeableConcept.class, Period.class, Range.class, Duration.class}, order=3, min=0, max=1, modifier=false, summary=true) 413 @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." ) 414 protected DataType measureScore; 415 416 /** 417 * When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure. 418 */ 419 @Child(name = "stratifier", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 420 @Description(shortDefinition="Stratification results", formalDefinition="When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure." ) 421 protected List<MeasureReportGroupStratifierComponent> stratifier; 422 423 private static final long serialVersionUID = -631288064L; 424 425 /** 426 * Constructor 427 */ 428 public MeasureReportGroupComponent() { 429 super(); 430 } 431 432 /** 433 * @return {@link #code} (The meaning of the population group as defined in the measure definition.) 434 */ 435 public CodeableConcept getCode() { 436 if (this.code == null) 437 if (Configuration.errorOnAutoCreate()) 438 throw new Error("Attempt to auto-create MeasureReportGroupComponent.code"); 439 else if (Configuration.doAutoCreate()) 440 this.code = new CodeableConcept(); // cc 441 return this.code; 442 } 443 444 public boolean hasCode() { 445 return this.code != null && !this.code.isEmpty(); 446 } 447 448 /** 449 * @param value {@link #code} (The meaning of the population group as defined in the measure definition.) 450 */ 451 public MeasureReportGroupComponent setCode(CodeableConcept value) { 452 this.code = value; 453 return this; 454 } 455 456 /** 457 * @return {@link #population} (The populations that make up the population group, one for each type of population appropriate for the measure.) 458 */ 459 public List<MeasureReportGroupPopulationComponent> getPopulation() { 460 if (this.population == null) 461 this.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 462 return this.population; 463 } 464 465 /** 466 * @return Returns a reference to <code>this</code> for easy method chaining 467 */ 468 public MeasureReportGroupComponent setPopulation(List<MeasureReportGroupPopulationComponent> thePopulation) { 469 this.population = thePopulation; 470 return this; 471 } 472 473 public boolean hasPopulation() { 474 if (this.population == null) 475 return false; 476 for (MeasureReportGroupPopulationComponent item : this.population) 477 if (!item.isEmpty()) 478 return true; 479 return false; 480 } 481 482 public MeasureReportGroupPopulationComponent addPopulation() { //3 483 MeasureReportGroupPopulationComponent t = new MeasureReportGroupPopulationComponent(); 484 if (this.population == null) 485 this.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 486 this.population.add(t); 487 return t; 488 } 489 490 public MeasureReportGroupComponent addPopulation(MeasureReportGroupPopulationComponent t) { //3 491 if (t == null) 492 return this; 493 if (this.population == null) 494 this.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 495 this.population.add(t); 496 return this; 497 } 498 499 /** 500 * @return The first repetition of repeating field {@link #population}, creating it if it does not already exist {3} 501 */ 502 public MeasureReportGroupPopulationComponent getPopulationFirstRep() { 503 if (getPopulation().isEmpty()) { 504 addPopulation(); 505 } 506 return getPopulation().get(0); 507 } 508 509 /** 510 * @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.) 511 */ 512 public DataType getMeasureScore() { 513 return this.measureScore; 514 } 515 516 /** 517 * @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.) 518 */ 519 public Quantity getMeasureScoreQuantity() throws FHIRException { 520 if (this.measureScore == null) 521 this.measureScore = new Quantity(); 522 if (!(this.measureScore instanceof Quantity)) 523 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 524 return (Quantity) this.measureScore; 525 } 526 527 public boolean hasMeasureScoreQuantity() { 528 return this != null && this.measureScore instanceof Quantity; 529 } 530 531 /** 532 * @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.) 533 */ 534 public DateTimeType getMeasureScoreDateTimeType() throws FHIRException { 535 if (this.measureScore == null) 536 this.measureScore = new DateTimeType(); 537 if (!(this.measureScore instanceof DateTimeType)) 538 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 539 return (DateTimeType) this.measureScore; 540 } 541 542 public boolean hasMeasureScoreDateTimeType() { 543 return this != null && this.measureScore instanceof DateTimeType; 544 } 545 546 /** 547 * @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.) 548 */ 549 public CodeableConcept getMeasureScoreCodeableConcept() throws FHIRException { 550 if (this.measureScore == null) 551 this.measureScore = new CodeableConcept(); 552 if (!(this.measureScore instanceof CodeableConcept)) 553 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 554 return (CodeableConcept) this.measureScore; 555 } 556 557 public boolean hasMeasureScoreCodeableConcept() { 558 return this != null && this.measureScore instanceof CodeableConcept; 559 } 560 561 /** 562 * @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.) 563 */ 564 public Period getMeasureScorePeriod() throws FHIRException { 565 if (this.measureScore == null) 566 this.measureScore = new Period(); 567 if (!(this.measureScore instanceof Period)) 568 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 569 return (Period) this.measureScore; 570 } 571 572 public boolean hasMeasureScorePeriod() { 573 return this != null && this.measureScore instanceof Period; 574 } 575 576 /** 577 * @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.) 578 */ 579 public Range getMeasureScoreRange() throws FHIRException { 580 if (this.measureScore == null) 581 this.measureScore = new Range(); 582 if (!(this.measureScore instanceof Range)) 583 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 584 return (Range) this.measureScore; 585 } 586 587 public boolean hasMeasureScoreRange() { 588 return this != null && this.measureScore instanceof Range; 589 } 590 591 /** 592 * @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.) 593 */ 594 public Duration getMeasureScoreDuration() throws FHIRException { 595 if (this.measureScore == null) 596 this.measureScore = new Duration(); 597 if (!(this.measureScore instanceof Duration)) 598 throw new FHIRException("Type mismatch: the type Duration was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 599 return (Duration) this.measureScore; 600 } 601 602 public boolean hasMeasureScoreDuration() { 603 return this != null && this.measureScore instanceof Duration; 604 } 605 606 public boolean hasMeasureScore() { 607 return this.measureScore != null && !this.measureScore.isEmpty(); 608 } 609 610 /** 611 * @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.) 612 */ 613 public MeasureReportGroupComponent setMeasureScore(DataType value) { 614 if (value != null && !(value instanceof Quantity || value instanceof DateTimeType || value instanceof CodeableConcept || value instanceof Period || value instanceof Range || value instanceof Duration)) 615 throw new Error("Not the right type for MeasureReport.group.measureScore[x]: "+value.fhirType()); 616 this.measureScore = value; 617 return this; 618 } 619 620 /** 621 * @return {@link #stratifier} (When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure.) 622 */ 623 public List<MeasureReportGroupStratifierComponent> getStratifier() { 624 if (this.stratifier == null) 625 this.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 626 return this.stratifier; 627 } 628 629 /** 630 * @return Returns a reference to <code>this</code> for easy method chaining 631 */ 632 public MeasureReportGroupComponent setStratifier(List<MeasureReportGroupStratifierComponent> theStratifier) { 633 this.stratifier = theStratifier; 634 return this; 635 } 636 637 public boolean hasStratifier() { 638 if (this.stratifier == null) 639 return false; 640 for (MeasureReportGroupStratifierComponent item : this.stratifier) 641 if (!item.isEmpty()) 642 return true; 643 return false; 644 } 645 646 public MeasureReportGroupStratifierComponent addStratifier() { //3 647 MeasureReportGroupStratifierComponent t = new MeasureReportGroupStratifierComponent(); 648 if (this.stratifier == null) 649 this.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 650 this.stratifier.add(t); 651 return t; 652 } 653 654 public MeasureReportGroupComponent addStratifier(MeasureReportGroupStratifierComponent t) { //3 655 if (t == null) 656 return this; 657 if (this.stratifier == null) 658 this.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 659 this.stratifier.add(t); 660 return this; 661 } 662 663 /** 664 * @return The first repetition of repeating field {@link #stratifier}, creating it if it does not already exist {3} 665 */ 666 public MeasureReportGroupStratifierComponent getStratifierFirstRep() { 667 if (getStratifier().isEmpty()) { 668 addStratifier(); 669 } 670 return getStratifier().get(0); 671 } 672 673 protected void listChildren(List<Property> children) { 674 super.listChildren(children); 675 children.add(new Property("code", "CodeableConcept", "The meaning of the population group as defined in the measure definition.", 0, 1, code)); 676 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)); 677 children.add(new Property("measureScore[x]", "Quantity|dateTime|CodeableConcept|Period|Range|Duration", "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)); 678 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)); 679 } 680 681 @Override 682 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 683 switch (_hash) { 684 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The meaning of the population group as defined in the measure definition.", 0, 1, code); 685 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); 686 case 1854115884: /*measureScore[x]*/ return new Property("measureScore[x]", "Quantity|dateTime|CodeableConcept|Period|Range|Duration", "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); 687 case -386313260: /*measureScore*/ return new Property("measureScore[x]", "Quantity|dateTime|CodeableConcept|Period|Range|Duration", "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); 688 case -1880815489: /*measureScoreQuantity*/ return new Property("measureScore[x]", "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); 689 case 1196938127: /*measureScoreDateTime*/ return new Property("measureScore[x]", "dateTime", "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); 690 case -1193234131: /*measureScoreCodeableConcept*/ return new Property("measureScore[x]", "CodeableConcept", "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); 691 case -1939831115: /*measureScorePeriod*/ return new Property("measureScore[x]", "Period", "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); 692 case -615040567: /*measureScoreRange*/ return new Property("measureScore[x]", "Range", "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); 693 case 1707143560: /*measureScoreDuration*/ return new Property("measureScore[x]", "Duration", "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); 694 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); 695 default: return super.getNamedProperty(_hash, _name, _checkValid); 696 } 697 698 } 699 700 @Override 701 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 702 switch (hash) { 703 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 704 case -2023558323: /*population*/ return this.population == null ? new Base[0] : this.population.toArray(new Base[this.population.size()]); // MeasureReportGroupPopulationComponent 705 case -386313260: /*measureScore*/ return this.measureScore == null ? new Base[0] : new Base[] {this.measureScore}; // DataType 706 case 90983669: /*stratifier*/ return this.stratifier == null ? new Base[0] : this.stratifier.toArray(new Base[this.stratifier.size()]); // MeasureReportGroupStratifierComponent 707 default: return super.getProperty(hash, name, checkValid); 708 } 709 710 } 711 712 @Override 713 public Base setProperty(int hash, String name, Base value) throws FHIRException { 714 switch (hash) { 715 case 3059181: // code 716 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 717 return value; 718 case -2023558323: // population 719 this.getPopulation().add((MeasureReportGroupPopulationComponent) value); // MeasureReportGroupPopulationComponent 720 return value; 721 case -386313260: // measureScore 722 this.measureScore = TypeConvertor.castToType(value); // DataType 723 return value; 724 case 90983669: // stratifier 725 this.getStratifier().add((MeasureReportGroupStratifierComponent) value); // MeasureReportGroupStratifierComponent 726 return value; 727 default: return super.setProperty(hash, name, value); 728 } 729 730 } 731 732 @Override 733 public Base setProperty(String name, Base value) throws FHIRException { 734 if (name.equals("code")) { 735 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 736 } else if (name.equals("population")) { 737 this.getPopulation().add((MeasureReportGroupPopulationComponent) value); 738 } else if (name.equals("measureScore[x]")) { 739 this.measureScore = TypeConvertor.castToType(value); // DataType 740 } else if (name.equals("stratifier")) { 741 this.getStratifier().add((MeasureReportGroupStratifierComponent) value); 742 } else 743 return super.setProperty(name, value); 744 return value; 745 } 746 747 @Override 748 public Base makeProperty(int hash, String name) throws FHIRException { 749 switch (hash) { 750 case 3059181: return getCode(); 751 case -2023558323: return addPopulation(); 752 case 1854115884: return getMeasureScore(); 753 case -386313260: return getMeasureScore(); 754 case 90983669: return addStratifier(); 755 default: return super.makeProperty(hash, name); 756 } 757 758 } 759 760 @Override 761 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 762 switch (hash) { 763 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 764 case -2023558323: /*population*/ return new String[] {}; 765 case -386313260: /*measureScore*/ return new String[] {"Quantity", "dateTime", "CodeableConcept", "Period", "Range", "Duration"}; 766 case 90983669: /*stratifier*/ return new String[] {}; 767 default: return super.getTypesForProperty(hash, name); 768 } 769 770 } 771 772 @Override 773 public Base addChild(String name) throws FHIRException { 774 if (name.equals("code")) { 775 this.code = new CodeableConcept(); 776 return this.code; 777 } 778 else if (name.equals("population")) { 779 return addPopulation(); 780 } 781 else if (name.equals("measureScoreQuantity")) { 782 this.measureScore = new Quantity(); 783 return this.measureScore; 784 } 785 else if (name.equals("measureScoreDateTime")) { 786 this.measureScore = new DateTimeType(); 787 return this.measureScore; 788 } 789 else if (name.equals("measureScoreCodeableConcept")) { 790 this.measureScore = new CodeableConcept(); 791 return this.measureScore; 792 } 793 else if (name.equals("measureScorePeriod")) { 794 this.measureScore = new Period(); 795 return this.measureScore; 796 } 797 else if (name.equals("measureScoreRange")) { 798 this.measureScore = new Range(); 799 return this.measureScore; 800 } 801 else if (name.equals("measureScoreDuration")) { 802 this.measureScore = new Duration(); 803 return this.measureScore; 804 } 805 else if (name.equals("stratifier")) { 806 return addStratifier(); 807 } 808 else 809 return super.addChild(name); 810 } 811 812 public MeasureReportGroupComponent copy() { 813 MeasureReportGroupComponent dst = new MeasureReportGroupComponent(); 814 copyValues(dst); 815 return dst; 816 } 817 818 public void copyValues(MeasureReportGroupComponent dst) { 819 super.copyValues(dst); 820 dst.code = code == null ? null : code.copy(); 821 if (population != null) { 822 dst.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 823 for (MeasureReportGroupPopulationComponent i : population) 824 dst.population.add(i.copy()); 825 }; 826 dst.measureScore = measureScore == null ? null : measureScore.copy(); 827 if (stratifier != null) { 828 dst.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 829 for (MeasureReportGroupStratifierComponent i : stratifier) 830 dst.stratifier.add(i.copy()); 831 }; 832 } 833 834 @Override 835 public boolean equalsDeep(Base other_) { 836 if (!super.equalsDeep(other_)) 837 return false; 838 if (!(other_ instanceof MeasureReportGroupComponent)) 839 return false; 840 MeasureReportGroupComponent o = (MeasureReportGroupComponent) other_; 841 return compareDeep(code, o.code, true) && compareDeep(population, o.population, true) && compareDeep(measureScore, o.measureScore, true) 842 && compareDeep(stratifier, o.stratifier, true); 843 } 844 845 @Override 846 public boolean equalsShallow(Base other_) { 847 if (!super.equalsShallow(other_)) 848 return false; 849 if (!(other_ instanceof MeasureReportGroupComponent)) 850 return false; 851 MeasureReportGroupComponent o = (MeasureReportGroupComponent) other_; 852 return true; 853 } 854 855 public boolean isEmpty() { 856 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, population, measureScore 857 , stratifier); 858 } 859 860 public String fhirType() { 861 return "MeasureReport.group"; 862 863 } 864 865 } 866 867 @Block() 868 public static class MeasureReportGroupPopulationComponent extends BackboneElement implements IBaseBackboneElement { 869 /** 870 * The type of the population. 871 */ 872 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 873 @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." ) 874 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-population") 875 protected CodeableConcept code; 876 877 /** 878 * The number of members of the population. 879 */ 880 @Child(name = "count", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=false) 881 @Description(shortDefinition="Size of the population", formalDefinition="The number of members of the population." ) 882 protected IntegerType count; 883 884 /** 885 * This element refers to a List of subject level MeasureReport resources, one for each subject in this population. 886 */ 887 @Child(name = "subjectResults", type = {ListResource.class}, order=3, min=0, max=1, modifier=false, summary=false) 888 @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." ) 889 protected Reference subjectResults; 890 891 private static final long serialVersionUID = 1086153898L; 892 893 /** 894 * Constructor 895 */ 896 public MeasureReportGroupPopulationComponent() { 897 super(); 898 } 899 900 /** 901 * @return {@link #code} (The type of the population.) 902 */ 903 public CodeableConcept getCode() { 904 if (this.code == null) 905 if (Configuration.errorOnAutoCreate()) 906 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.code"); 907 else if (Configuration.doAutoCreate()) 908 this.code = new CodeableConcept(); // cc 909 return this.code; 910 } 911 912 public boolean hasCode() { 913 return this.code != null && !this.code.isEmpty(); 914 } 915 916 /** 917 * @param value {@link #code} (The type of the population.) 918 */ 919 public MeasureReportGroupPopulationComponent setCode(CodeableConcept value) { 920 this.code = value; 921 return this; 922 } 923 924 /** 925 * @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 926 */ 927 public IntegerType getCountElement() { 928 if (this.count == null) 929 if (Configuration.errorOnAutoCreate()) 930 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.count"); 931 else if (Configuration.doAutoCreate()) 932 this.count = new IntegerType(); // bb 933 return this.count; 934 } 935 936 public boolean hasCountElement() { 937 return this.count != null && !this.count.isEmpty(); 938 } 939 940 public boolean hasCount() { 941 return this.count != null && !this.count.isEmpty(); 942 } 943 944 /** 945 * @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 946 */ 947 public MeasureReportGroupPopulationComponent setCountElement(IntegerType value) { 948 this.count = value; 949 return this; 950 } 951 952 /** 953 * @return The number of members of the population. 954 */ 955 public int getCount() { 956 return this.count == null || this.count.isEmpty() ? 0 : this.count.getValue(); 957 } 958 959 /** 960 * @param value The number of members of the population. 961 */ 962 public MeasureReportGroupPopulationComponent setCount(int value) { 963 if (this.count == null) 964 this.count = new IntegerType(); 965 this.count.setValue(value); 966 return this; 967 } 968 969 /** 970 * @return {@link #subjectResults} (This element refers to a List of subject level MeasureReport resources, one for each subject in this population.) 971 */ 972 public Reference getSubjectResults() { 973 if (this.subjectResults == null) 974 if (Configuration.errorOnAutoCreate()) 975 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.subjectResults"); 976 else if (Configuration.doAutoCreate()) 977 this.subjectResults = new Reference(); // cc 978 return this.subjectResults; 979 } 980 981 public boolean hasSubjectResults() { 982 return this.subjectResults != null && !this.subjectResults.isEmpty(); 983 } 984 985 /** 986 * @param value {@link #subjectResults} (This element refers to a List of subject level MeasureReport resources, one for each subject in this population.) 987 */ 988 public MeasureReportGroupPopulationComponent setSubjectResults(Reference value) { 989 this.subjectResults = value; 990 return this; 991 } 992 993 protected void listChildren(List<Property> children) { 994 super.listChildren(children); 995 children.add(new Property("code", "CodeableConcept", "The type of the population.", 0, 1, code)); 996 children.add(new Property("count", "integer", "The number of members of the population.", 0, 1, count)); 997 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)); 998 } 999 1000 @Override 1001 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1002 switch (_hash) { 1003 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The type of the population.", 0, 1, code); 1004 case 94851343: /*count*/ return new Property("count", "integer", "The number of members of the population.", 0, 1, count); 1005 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); 1006 default: return super.getNamedProperty(_hash, _name, _checkValid); 1007 } 1008 1009 } 1010 1011 @Override 1012 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1013 switch (hash) { 1014 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 1015 case 94851343: /*count*/ return this.count == null ? new Base[0] : new Base[] {this.count}; // IntegerType 1016 case 2136184106: /*subjectResults*/ return this.subjectResults == null ? new Base[0] : new Base[] {this.subjectResults}; // Reference 1017 default: return super.getProperty(hash, name, checkValid); 1018 } 1019 1020 } 1021 1022 @Override 1023 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1024 switch (hash) { 1025 case 3059181: // code 1026 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1027 return value; 1028 case 94851343: // count 1029 this.count = TypeConvertor.castToInteger(value); // IntegerType 1030 return value; 1031 case 2136184106: // subjectResults 1032 this.subjectResults = TypeConvertor.castToReference(value); // Reference 1033 return value; 1034 default: return super.setProperty(hash, name, value); 1035 } 1036 1037 } 1038 1039 @Override 1040 public Base setProperty(String name, Base value) throws FHIRException { 1041 if (name.equals("code")) { 1042 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1043 } else if (name.equals("count")) { 1044 this.count = TypeConvertor.castToInteger(value); // IntegerType 1045 } else if (name.equals("subjectResults")) { 1046 this.subjectResults = TypeConvertor.castToReference(value); // Reference 1047 } else 1048 return super.setProperty(name, value); 1049 return value; 1050 } 1051 1052 @Override 1053 public Base makeProperty(int hash, String name) throws FHIRException { 1054 switch (hash) { 1055 case 3059181: return getCode(); 1056 case 94851343: return getCountElement(); 1057 case 2136184106: return getSubjectResults(); 1058 default: return super.makeProperty(hash, name); 1059 } 1060 1061 } 1062 1063 @Override 1064 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1065 switch (hash) { 1066 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1067 case 94851343: /*count*/ return new String[] {"integer"}; 1068 case 2136184106: /*subjectResults*/ return new String[] {"Reference"}; 1069 default: return super.getTypesForProperty(hash, name); 1070 } 1071 1072 } 1073 1074 @Override 1075 public Base addChild(String name) throws FHIRException { 1076 if (name.equals("code")) { 1077 this.code = new CodeableConcept(); 1078 return this.code; 1079 } 1080 else if (name.equals("count")) { 1081 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.group.population.count"); 1082 } 1083 else if (name.equals("subjectResults")) { 1084 this.subjectResults = new Reference(); 1085 return this.subjectResults; 1086 } 1087 else 1088 return super.addChild(name); 1089 } 1090 1091 public MeasureReportGroupPopulationComponent copy() { 1092 MeasureReportGroupPopulationComponent dst = new MeasureReportGroupPopulationComponent(); 1093 copyValues(dst); 1094 return dst; 1095 } 1096 1097 public void copyValues(MeasureReportGroupPopulationComponent dst) { 1098 super.copyValues(dst); 1099 dst.code = code == null ? null : code.copy(); 1100 dst.count = count == null ? null : count.copy(); 1101 dst.subjectResults = subjectResults == null ? null : subjectResults.copy(); 1102 } 1103 1104 @Override 1105 public boolean equalsDeep(Base other_) { 1106 if (!super.equalsDeep(other_)) 1107 return false; 1108 if (!(other_ instanceof MeasureReportGroupPopulationComponent)) 1109 return false; 1110 MeasureReportGroupPopulationComponent o = (MeasureReportGroupPopulationComponent) other_; 1111 return compareDeep(code, o.code, true) && compareDeep(count, o.count, true) && compareDeep(subjectResults, o.subjectResults, true) 1112 ; 1113 } 1114 1115 @Override 1116 public boolean equalsShallow(Base other_) { 1117 if (!super.equalsShallow(other_)) 1118 return false; 1119 if (!(other_ instanceof MeasureReportGroupPopulationComponent)) 1120 return false; 1121 MeasureReportGroupPopulationComponent o = (MeasureReportGroupPopulationComponent) other_; 1122 return compareValues(count, o.count, true); 1123 } 1124 1125 public boolean isEmpty() { 1126 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, count, subjectResults 1127 ); 1128 } 1129 1130 public String fhirType() { 1131 return "MeasureReport.group.population"; 1132 1133 } 1134 1135 } 1136 1137 @Block() 1138 public static class MeasureReportGroupStratifierComponent extends BackboneElement implements IBaseBackboneElement { 1139 /** 1140 * The meaning of this stratifier, as defined in the measure definition. 1141 */ 1142 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 1143 @Description(shortDefinition="What stratifier of the group", formalDefinition="The meaning of this stratifier, as defined in the measure definition." ) 1144 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-stratifier-example") 1145 protected CodeableConcept code; 1146 1147 /** 1148 * 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. 1149 */ 1150 @Child(name = "stratum", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1151 @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." ) 1152 protected List<StratifierGroupComponent> stratum; 1153 1154 private static final long serialVersionUID = 362479683L; 1155 1156 /** 1157 * Constructor 1158 */ 1159 public MeasureReportGroupStratifierComponent() { 1160 super(); 1161 } 1162 1163 /** 1164 * @return {@link #code} (The meaning of this stratifier, as defined in the measure definition.) 1165 */ 1166 public CodeableConcept getCode() { 1167 if (this.code == null) 1168 if (Configuration.errorOnAutoCreate()) 1169 throw new Error("Attempt to auto-create MeasureReportGroupStratifierComponent.code"); 1170 else if (Configuration.doAutoCreate()) 1171 this.code = new CodeableConcept(); // cc 1172 return this.code; 1173 } 1174 1175 public boolean hasCode() { 1176 return this.code != null && !this.code.isEmpty(); 1177 } 1178 1179 /** 1180 * @param value {@link #code} (The meaning of this stratifier, as defined in the measure definition.) 1181 */ 1182 public MeasureReportGroupStratifierComponent setCode(CodeableConcept value) { 1183 this.code = value; 1184 return this; 1185 } 1186 1187 /** 1188 * @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.) 1189 */ 1190 public List<StratifierGroupComponent> getStratum() { 1191 if (this.stratum == null) 1192 this.stratum = new ArrayList<StratifierGroupComponent>(); 1193 return this.stratum; 1194 } 1195 1196 /** 1197 * @return Returns a reference to <code>this</code> for easy method chaining 1198 */ 1199 public MeasureReportGroupStratifierComponent setStratum(List<StratifierGroupComponent> theStratum) { 1200 this.stratum = theStratum; 1201 return this; 1202 } 1203 1204 public boolean hasStratum() { 1205 if (this.stratum == null) 1206 return false; 1207 for (StratifierGroupComponent item : this.stratum) 1208 if (!item.isEmpty()) 1209 return true; 1210 return false; 1211 } 1212 1213 public StratifierGroupComponent addStratum() { //3 1214 StratifierGroupComponent t = new StratifierGroupComponent(); 1215 if (this.stratum == null) 1216 this.stratum = new ArrayList<StratifierGroupComponent>(); 1217 this.stratum.add(t); 1218 return t; 1219 } 1220 1221 public MeasureReportGroupStratifierComponent addStratum(StratifierGroupComponent t) { //3 1222 if (t == null) 1223 return this; 1224 if (this.stratum == null) 1225 this.stratum = new ArrayList<StratifierGroupComponent>(); 1226 this.stratum.add(t); 1227 return this; 1228 } 1229 1230 /** 1231 * @return The first repetition of repeating field {@link #stratum}, creating it if it does not already exist {3} 1232 */ 1233 public StratifierGroupComponent getStratumFirstRep() { 1234 if (getStratum().isEmpty()) { 1235 addStratum(); 1236 } 1237 return getStratum().get(0); 1238 } 1239 1240 protected void listChildren(List<Property> children) { 1241 super.listChildren(children); 1242 children.add(new Property("code", "CodeableConcept", "The meaning of this stratifier, as defined in the measure definition.", 0, 1, code)); 1243 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)); 1244 } 1245 1246 @Override 1247 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1248 switch (_hash) { 1249 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The meaning of this stratifier, as defined in the measure definition.", 0, 1, code); 1250 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); 1251 default: return super.getNamedProperty(_hash, _name, _checkValid); 1252 } 1253 1254 } 1255 1256 @Override 1257 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1258 switch (hash) { 1259 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 1260 case -1881991236: /*stratum*/ return this.stratum == null ? new Base[0] : this.stratum.toArray(new Base[this.stratum.size()]); // StratifierGroupComponent 1261 default: return super.getProperty(hash, name, checkValid); 1262 } 1263 1264 } 1265 1266 @Override 1267 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1268 switch (hash) { 1269 case 3059181: // code 1270 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1271 return value; 1272 case -1881991236: // stratum 1273 this.getStratum().add((StratifierGroupComponent) value); // StratifierGroupComponent 1274 return value; 1275 default: return super.setProperty(hash, name, value); 1276 } 1277 1278 } 1279 1280 @Override 1281 public Base setProperty(String name, Base value) throws FHIRException { 1282 if (name.equals("code")) { 1283 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1284 } else if (name.equals("stratum")) { 1285 this.getStratum().add((StratifierGroupComponent) value); 1286 } else 1287 return super.setProperty(name, value); 1288 return value; 1289 } 1290 1291 @Override 1292 public Base makeProperty(int hash, String name) throws FHIRException { 1293 switch (hash) { 1294 case 3059181: return getCode(); 1295 case -1881991236: return addStratum(); 1296 default: return super.makeProperty(hash, name); 1297 } 1298 1299 } 1300 1301 @Override 1302 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1303 switch (hash) { 1304 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1305 case -1881991236: /*stratum*/ return new String[] {}; 1306 default: return super.getTypesForProperty(hash, name); 1307 } 1308 1309 } 1310 1311 @Override 1312 public Base addChild(String name) throws FHIRException { 1313 if (name.equals("code")) { 1314 this.code = new CodeableConcept(); 1315 return this.code; 1316 } 1317 else if (name.equals("stratum")) { 1318 return addStratum(); 1319 } 1320 else 1321 return super.addChild(name); 1322 } 1323 1324 public MeasureReportGroupStratifierComponent copy() { 1325 MeasureReportGroupStratifierComponent dst = new MeasureReportGroupStratifierComponent(); 1326 copyValues(dst); 1327 return dst; 1328 } 1329 1330 public void copyValues(MeasureReportGroupStratifierComponent dst) { 1331 super.copyValues(dst); 1332 dst.code = code == null ? null : code.copy(); 1333 if (stratum != null) { 1334 dst.stratum = new ArrayList<StratifierGroupComponent>(); 1335 for (StratifierGroupComponent i : stratum) 1336 dst.stratum.add(i.copy()); 1337 }; 1338 } 1339 1340 @Override 1341 public boolean equalsDeep(Base other_) { 1342 if (!super.equalsDeep(other_)) 1343 return false; 1344 if (!(other_ instanceof MeasureReportGroupStratifierComponent)) 1345 return false; 1346 MeasureReportGroupStratifierComponent o = (MeasureReportGroupStratifierComponent) other_; 1347 return compareDeep(code, o.code, true) && compareDeep(stratum, o.stratum, true); 1348 } 1349 1350 @Override 1351 public boolean equalsShallow(Base other_) { 1352 if (!super.equalsShallow(other_)) 1353 return false; 1354 if (!(other_ instanceof MeasureReportGroupStratifierComponent)) 1355 return false; 1356 MeasureReportGroupStratifierComponent o = (MeasureReportGroupStratifierComponent) other_; 1357 return true; 1358 } 1359 1360 public boolean isEmpty() { 1361 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, stratum); 1362 } 1363 1364 public String fhirType() { 1365 return "MeasureReport.group.stratifier"; 1366 1367 } 1368 1369 } 1370 1371 @Block() 1372 public static class StratifierGroupComponent extends BackboneElement implements IBaseBackboneElement { 1373 /** 1374 * 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. 1375 */ 1376 @Child(name = "value", type = {CodeableConcept.class, BooleanType.class, Quantity.class, Range.class, Reference.class}, order=1, min=0, max=1, modifier=false, summary=false) 1377 @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." ) 1378 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measurereport-stratifier-value-example") 1379 protected DataType value; 1380 1381 /** 1382 * A stratifier component value. 1383 */ 1384 @Child(name = "component", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1385 @Description(shortDefinition="Stratifier component values", formalDefinition="A stratifier component value." ) 1386 protected List<StratifierGroupComponentComponent> component; 1387 1388 /** 1389 * The populations that make up the stratum, one for each type of population appropriate to the measure. 1390 */ 1391 @Child(name = "population", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1392 @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." ) 1393 protected List<StratifierGroupPopulationComponent> population; 1394 1395 /** 1396 * 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. 1397 */ 1398 @Child(name = "measureScore", type = {Quantity.class, DateTimeType.class, CodeableConcept.class, Period.class, Range.class, Duration.class}, order=4, min=0, max=1, modifier=false, summary=false) 1399 @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." ) 1400 protected DataType measureScore; 1401 1402 private static final long serialVersionUID = -1713783491L; 1403 1404 /** 1405 * Constructor 1406 */ 1407 public StratifierGroupComponent() { 1408 super(); 1409 } 1410 1411 /** 1412 * @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.) 1413 */ 1414 public DataType getValue() { 1415 return this.value; 1416 } 1417 1418 /** 1419 * @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.) 1420 */ 1421 public CodeableConcept getValueCodeableConcept() throws FHIRException { 1422 if (this.value == null) 1423 this.value = new CodeableConcept(); 1424 if (!(this.value instanceof CodeableConcept)) 1425 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 1426 return (CodeableConcept) this.value; 1427 } 1428 1429 public boolean hasValueCodeableConcept() { 1430 return this != null && this.value instanceof CodeableConcept; 1431 } 1432 1433 /** 1434 * @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.) 1435 */ 1436 public BooleanType getValueBooleanType() throws FHIRException { 1437 if (this.value == null) 1438 this.value = new BooleanType(); 1439 if (!(this.value instanceof BooleanType)) 1440 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 1441 return (BooleanType) this.value; 1442 } 1443 1444 public boolean hasValueBooleanType() { 1445 return this != null && this.value instanceof BooleanType; 1446 } 1447 1448 /** 1449 * @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.) 1450 */ 1451 public Quantity getValueQuantity() throws FHIRException { 1452 if (this.value == null) 1453 this.value = new Quantity(); 1454 if (!(this.value instanceof Quantity)) 1455 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 1456 return (Quantity) this.value; 1457 } 1458 1459 public boolean hasValueQuantity() { 1460 return this != null && this.value instanceof Quantity; 1461 } 1462 1463 /** 1464 * @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.) 1465 */ 1466 public Range getValueRange() throws FHIRException { 1467 if (this.value == null) 1468 this.value = new Range(); 1469 if (!(this.value instanceof Range)) 1470 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); 1471 return (Range) this.value; 1472 } 1473 1474 public boolean hasValueRange() { 1475 return this != null && this.value instanceof Range; 1476 } 1477 1478 /** 1479 * @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.) 1480 */ 1481 public Reference getValueReference() throws FHIRException { 1482 if (this.value == null) 1483 this.value = new Reference(); 1484 if (!(this.value instanceof Reference)) 1485 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered"); 1486 return (Reference) this.value; 1487 } 1488 1489 public boolean hasValueReference() { 1490 return this != null && this.value instanceof Reference; 1491 } 1492 1493 public boolean hasValue() { 1494 return this.value != null && !this.value.isEmpty(); 1495 } 1496 1497 /** 1498 * @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.) 1499 */ 1500 public StratifierGroupComponent setValue(DataType value) { 1501 if (value != null && !(value instanceof CodeableConcept || value instanceof BooleanType || value instanceof Quantity || value instanceof Range || value instanceof Reference)) 1502 throw new Error("Not the right type for MeasureReport.group.stratifier.stratum.value[x]: "+value.fhirType()); 1503 this.value = value; 1504 return this; 1505 } 1506 1507 /** 1508 * @return {@link #component} (A stratifier component value.) 1509 */ 1510 public List<StratifierGroupComponentComponent> getComponent() { 1511 if (this.component == null) 1512 this.component = new ArrayList<StratifierGroupComponentComponent>(); 1513 return this.component; 1514 } 1515 1516 /** 1517 * @return Returns a reference to <code>this</code> for easy method chaining 1518 */ 1519 public StratifierGroupComponent setComponent(List<StratifierGroupComponentComponent> theComponent) { 1520 this.component = theComponent; 1521 return this; 1522 } 1523 1524 public boolean hasComponent() { 1525 if (this.component == null) 1526 return false; 1527 for (StratifierGroupComponentComponent item : this.component) 1528 if (!item.isEmpty()) 1529 return true; 1530 return false; 1531 } 1532 1533 public StratifierGroupComponentComponent addComponent() { //3 1534 StratifierGroupComponentComponent t = new StratifierGroupComponentComponent(); 1535 if (this.component == null) 1536 this.component = new ArrayList<StratifierGroupComponentComponent>(); 1537 this.component.add(t); 1538 return t; 1539 } 1540 1541 public StratifierGroupComponent addComponent(StratifierGroupComponentComponent t) { //3 1542 if (t == null) 1543 return this; 1544 if (this.component == null) 1545 this.component = new ArrayList<StratifierGroupComponentComponent>(); 1546 this.component.add(t); 1547 return this; 1548 } 1549 1550 /** 1551 * @return The first repetition of repeating field {@link #component}, creating it if it does not already exist {3} 1552 */ 1553 public StratifierGroupComponentComponent getComponentFirstRep() { 1554 if (getComponent().isEmpty()) { 1555 addComponent(); 1556 } 1557 return getComponent().get(0); 1558 } 1559 1560 /** 1561 * @return {@link #population} (The populations that make up the stratum, one for each type of population appropriate to the measure.) 1562 */ 1563 public List<StratifierGroupPopulationComponent> getPopulation() { 1564 if (this.population == null) 1565 this.population = new ArrayList<StratifierGroupPopulationComponent>(); 1566 return this.population; 1567 } 1568 1569 /** 1570 * @return Returns a reference to <code>this</code> for easy method chaining 1571 */ 1572 public StratifierGroupComponent setPopulation(List<StratifierGroupPopulationComponent> thePopulation) { 1573 this.population = thePopulation; 1574 return this; 1575 } 1576 1577 public boolean hasPopulation() { 1578 if (this.population == null) 1579 return false; 1580 for (StratifierGroupPopulationComponent item : this.population) 1581 if (!item.isEmpty()) 1582 return true; 1583 return false; 1584 } 1585 1586 public StratifierGroupPopulationComponent addPopulation() { //3 1587 StratifierGroupPopulationComponent t = new StratifierGroupPopulationComponent(); 1588 if (this.population == null) 1589 this.population = new ArrayList<StratifierGroupPopulationComponent>(); 1590 this.population.add(t); 1591 return t; 1592 } 1593 1594 public StratifierGroupComponent addPopulation(StratifierGroupPopulationComponent t) { //3 1595 if (t == null) 1596 return this; 1597 if (this.population == null) 1598 this.population = new ArrayList<StratifierGroupPopulationComponent>(); 1599 this.population.add(t); 1600 return this; 1601 } 1602 1603 /** 1604 * @return The first repetition of repeating field {@link #population}, creating it if it does not already exist {3} 1605 */ 1606 public StratifierGroupPopulationComponent getPopulationFirstRep() { 1607 if (getPopulation().isEmpty()) { 1608 addPopulation(); 1609 } 1610 return getPopulation().get(0); 1611 } 1612 1613 /** 1614 * @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.) 1615 */ 1616 public DataType getMeasureScore() { 1617 return this.measureScore; 1618 } 1619 1620 /** 1621 * @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.) 1622 */ 1623 public Quantity getMeasureScoreQuantity() throws FHIRException { 1624 if (this.measureScore == null) 1625 this.measureScore = new Quantity(); 1626 if (!(this.measureScore instanceof Quantity)) 1627 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 1628 return (Quantity) this.measureScore; 1629 } 1630 1631 public boolean hasMeasureScoreQuantity() { 1632 return this != null && this.measureScore instanceof Quantity; 1633 } 1634 1635 /** 1636 * @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.) 1637 */ 1638 public DateTimeType getMeasureScoreDateTimeType() throws FHIRException { 1639 if (this.measureScore == null) 1640 this.measureScore = new DateTimeType(); 1641 if (!(this.measureScore instanceof DateTimeType)) 1642 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 1643 return (DateTimeType) this.measureScore; 1644 } 1645 1646 public boolean hasMeasureScoreDateTimeType() { 1647 return this != null && this.measureScore instanceof DateTimeType; 1648 } 1649 1650 /** 1651 * @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.) 1652 */ 1653 public CodeableConcept getMeasureScoreCodeableConcept() throws FHIRException { 1654 if (this.measureScore == null) 1655 this.measureScore = new CodeableConcept(); 1656 if (!(this.measureScore instanceof CodeableConcept)) 1657 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 1658 return (CodeableConcept) this.measureScore; 1659 } 1660 1661 public boolean hasMeasureScoreCodeableConcept() { 1662 return this != null && this.measureScore instanceof CodeableConcept; 1663 } 1664 1665 /** 1666 * @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.) 1667 */ 1668 public Period getMeasureScorePeriod() throws FHIRException { 1669 if (this.measureScore == null) 1670 this.measureScore = new Period(); 1671 if (!(this.measureScore instanceof Period)) 1672 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 1673 return (Period) this.measureScore; 1674 } 1675 1676 public boolean hasMeasureScorePeriod() { 1677 return this != null && this.measureScore instanceof Period; 1678 } 1679 1680 /** 1681 * @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.) 1682 */ 1683 public Range getMeasureScoreRange() throws FHIRException { 1684 if (this.measureScore == null) 1685 this.measureScore = new Range(); 1686 if (!(this.measureScore instanceof Range)) 1687 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 1688 return (Range) this.measureScore; 1689 } 1690 1691 public boolean hasMeasureScoreRange() { 1692 return this != null && this.measureScore instanceof Range; 1693 } 1694 1695 /** 1696 * @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.) 1697 */ 1698 public Duration getMeasureScoreDuration() throws FHIRException { 1699 if (this.measureScore == null) 1700 this.measureScore = new Duration(); 1701 if (!(this.measureScore instanceof Duration)) 1702 throw new FHIRException("Type mismatch: the type Duration was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 1703 return (Duration) this.measureScore; 1704 } 1705 1706 public boolean hasMeasureScoreDuration() { 1707 return this != null && this.measureScore instanceof Duration; 1708 } 1709 1710 public boolean hasMeasureScore() { 1711 return this.measureScore != null && !this.measureScore.isEmpty(); 1712 } 1713 1714 /** 1715 * @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.) 1716 */ 1717 public StratifierGroupComponent setMeasureScore(DataType value) { 1718 if (value != null && !(value instanceof Quantity || value instanceof DateTimeType || value instanceof CodeableConcept || value instanceof Period || value instanceof Range || value instanceof Duration)) 1719 throw new Error("Not the right type for MeasureReport.group.stratifier.stratum.measureScore[x]: "+value.fhirType()); 1720 this.measureScore = value; 1721 return this; 1722 } 1723 1724 protected void listChildren(List<Property> children) { 1725 super.listChildren(children); 1726 children.add(new Property("value[x]", "CodeableConcept|boolean|Quantity|Range|Reference", "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)); 1727 children.add(new Property("component", "", "A stratifier component value.", 0, java.lang.Integer.MAX_VALUE, component)); 1728 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)); 1729 children.add(new Property("measureScore[x]", "Quantity|dateTime|CodeableConcept|Period|Range|Duration", "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)); 1730 } 1731 1732 @Override 1733 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1734 switch (_hash) { 1735 case -1410166417: /*value[x]*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range|Reference", "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); 1736 case 111972721: /*value*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range|Reference", "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); 1737 case 924902896: /*valueCodeableConcept*/ return new Property("value[x]", "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); 1738 case 733421943: /*valueBoolean*/ return new Property("value[x]", "boolean", "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); 1739 case -2029823716: /*valueQuantity*/ return new Property("value[x]", "Quantity", "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); 1740 case 2030761548: /*valueRange*/ return new Property("value[x]", "Range", "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); 1741 case 1755241690: /*valueReference*/ return new Property("value[x]", "Reference", "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); 1742 case -1399907075: /*component*/ return new Property("component", "", "A stratifier component value.", 0, java.lang.Integer.MAX_VALUE, component); 1743 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); 1744 case 1854115884: /*measureScore[x]*/ return new Property("measureScore[x]", "Quantity|dateTime|CodeableConcept|Period|Range|Duration", "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); 1745 case -386313260: /*measureScore*/ return new Property("measureScore[x]", "Quantity|dateTime|CodeableConcept|Period|Range|Duration", "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); 1746 case -1880815489: /*measureScoreQuantity*/ return new Property("measureScore[x]", "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); 1747 case 1196938127: /*measureScoreDateTime*/ return new Property("measureScore[x]", "dateTime", "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); 1748 case -1193234131: /*measureScoreCodeableConcept*/ return new Property("measureScore[x]", "CodeableConcept", "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); 1749 case -1939831115: /*measureScorePeriod*/ return new Property("measureScore[x]", "Period", "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); 1750 case -615040567: /*measureScoreRange*/ return new Property("measureScore[x]", "Range", "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); 1751 case 1707143560: /*measureScoreDuration*/ return new Property("measureScore[x]", "Duration", "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); 1752 default: return super.getNamedProperty(_hash, _name, _checkValid); 1753 } 1754 1755 } 1756 1757 @Override 1758 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1759 switch (hash) { 1760 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType 1761 case -1399907075: /*component*/ return this.component == null ? new Base[0] : this.component.toArray(new Base[this.component.size()]); // StratifierGroupComponentComponent 1762 case -2023558323: /*population*/ return this.population == null ? new Base[0] : this.population.toArray(new Base[this.population.size()]); // StratifierGroupPopulationComponent 1763 case -386313260: /*measureScore*/ return this.measureScore == null ? new Base[0] : new Base[] {this.measureScore}; // DataType 1764 default: return super.getProperty(hash, name, checkValid); 1765 } 1766 1767 } 1768 1769 @Override 1770 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1771 switch (hash) { 1772 case 111972721: // value 1773 this.value = TypeConvertor.castToType(value); // DataType 1774 return value; 1775 case -1399907075: // component 1776 this.getComponent().add((StratifierGroupComponentComponent) value); // StratifierGroupComponentComponent 1777 return value; 1778 case -2023558323: // population 1779 this.getPopulation().add((StratifierGroupPopulationComponent) value); // StratifierGroupPopulationComponent 1780 return value; 1781 case -386313260: // measureScore 1782 this.measureScore = TypeConvertor.castToType(value); // DataType 1783 return value; 1784 default: return super.setProperty(hash, name, value); 1785 } 1786 1787 } 1788 1789 @Override 1790 public Base setProperty(String name, Base value) throws FHIRException { 1791 if (name.equals("value[x]")) { 1792 this.value = TypeConvertor.castToType(value); // DataType 1793 } else if (name.equals("component")) { 1794 this.getComponent().add((StratifierGroupComponentComponent) value); 1795 } else if (name.equals("population")) { 1796 this.getPopulation().add((StratifierGroupPopulationComponent) value); 1797 } else if (name.equals("measureScore[x]")) { 1798 this.measureScore = TypeConvertor.castToType(value); // DataType 1799 } else 1800 return super.setProperty(name, value); 1801 return value; 1802 } 1803 1804 @Override 1805 public Base makeProperty(int hash, String name) throws FHIRException { 1806 switch (hash) { 1807 case -1410166417: return getValue(); 1808 case 111972721: return getValue(); 1809 case -1399907075: return addComponent(); 1810 case -2023558323: return addPopulation(); 1811 case 1854115884: return getMeasureScore(); 1812 case -386313260: return getMeasureScore(); 1813 default: return super.makeProperty(hash, name); 1814 } 1815 1816 } 1817 1818 @Override 1819 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1820 switch (hash) { 1821 case 111972721: /*value*/ return new String[] {"CodeableConcept", "boolean", "Quantity", "Range", "Reference"}; 1822 case -1399907075: /*component*/ return new String[] {}; 1823 case -2023558323: /*population*/ return new String[] {}; 1824 case -386313260: /*measureScore*/ return new String[] {"Quantity", "dateTime", "CodeableConcept", "Period", "Range", "Duration"}; 1825 default: return super.getTypesForProperty(hash, name); 1826 } 1827 1828 } 1829 1830 @Override 1831 public Base addChild(String name) throws FHIRException { 1832 if (name.equals("valueCodeableConcept")) { 1833 this.value = new CodeableConcept(); 1834 return this.value; 1835 } 1836 else if (name.equals("valueBoolean")) { 1837 this.value = new BooleanType(); 1838 return this.value; 1839 } 1840 else if (name.equals("valueQuantity")) { 1841 this.value = new Quantity(); 1842 return this.value; 1843 } 1844 else if (name.equals("valueRange")) { 1845 this.value = new Range(); 1846 return this.value; 1847 } 1848 else if (name.equals("valueReference")) { 1849 this.value = new Reference(); 1850 return this.value; 1851 } 1852 else if (name.equals("component")) { 1853 return addComponent(); 1854 } 1855 else if (name.equals("population")) { 1856 return addPopulation(); 1857 } 1858 else if (name.equals("measureScoreQuantity")) { 1859 this.measureScore = new Quantity(); 1860 return this.measureScore; 1861 } 1862 else if (name.equals("measureScoreDateTime")) { 1863 this.measureScore = new DateTimeType(); 1864 return this.measureScore; 1865 } 1866 else if (name.equals("measureScoreCodeableConcept")) { 1867 this.measureScore = new CodeableConcept(); 1868 return this.measureScore; 1869 } 1870 else if (name.equals("measureScorePeriod")) { 1871 this.measureScore = new Period(); 1872 return this.measureScore; 1873 } 1874 else if (name.equals("measureScoreRange")) { 1875 this.measureScore = new Range(); 1876 return this.measureScore; 1877 } 1878 else if (name.equals("measureScoreDuration")) { 1879 this.measureScore = new Duration(); 1880 return this.measureScore; 1881 } 1882 else 1883 return super.addChild(name); 1884 } 1885 1886 public StratifierGroupComponent copy() { 1887 StratifierGroupComponent dst = new StratifierGroupComponent(); 1888 copyValues(dst); 1889 return dst; 1890 } 1891 1892 public void copyValues(StratifierGroupComponent dst) { 1893 super.copyValues(dst); 1894 dst.value = value == null ? null : value.copy(); 1895 if (component != null) { 1896 dst.component = new ArrayList<StratifierGroupComponentComponent>(); 1897 for (StratifierGroupComponentComponent i : component) 1898 dst.component.add(i.copy()); 1899 }; 1900 if (population != null) { 1901 dst.population = new ArrayList<StratifierGroupPopulationComponent>(); 1902 for (StratifierGroupPopulationComponent i : population) 1903 dst.population.add(i.copy()); 1904 }; 1905 dst.measureScore = measureScore == null ? null : measureScore.copy(); 1906 } 1907 1908 @Override 1909 public boolean equalsDeep(Base other_) { 1910 if (!super.equalsDeep(other_)) 1911 return false; 1912 if (!(other_ instanceof StratifierGroupComponent)) 1913 return false; 1914 StratifierGroupComponent o = (StratifierGroupComponent) other_; 1915 return compareDeep(value, o.value, true) && compareDeep(component, o.component, true) && compareDeep(population, o.population, true) 1916 && compareDeep(measureScore, o.measureScore, true); 1917 } 1918 1919 @Override 1920 public boolean equalsShallow(Base other_) { 1921 if (!super.equalsShallow(other_)) 1922 return false; 1923 if (!(other_ instanceof StratifierGroupComponent)) 1924 return false; 1925 StratifierGroupComponent o = (StratifierGroupComponent) other_; 1926 return true; 1927 } 1928 1929 public boolean isEmpty() { 1930 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value, component, population 1931 , measureScore); 1932 } 1933 1934 public String fhirType() { 1935 return "MeasureReport.group.stratifier.stratum"; 1936 1937 } 1938 1939 } 1940 1941 @Block() 1942 public static class StratifierGroupComponentComponent extends BackboneElement implements IBaseBackboneElement { 1943 /** 1944 * The code for the stratum component value. 1945 */ 1946 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 1947 @Description(shortDefinition="What stratifier component of the group", formalDefinition="The code for the stratum component value." ) 1948 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-stratifier-example") 1949 protected CodeableConcept code; 1950 1951 /** 1952 * The stratum component value. 1953 */ 1954 @Child(name = "value", type = {CodeableConcept.class, BooleanType.class, Quantity.class, Range.class, Reference.class}, order=2, min=1, max=1, modifier=false, summary=false) 1955 @Description(shortDefinition="The stratum component value, e.g. male", formalDefinition="The stratum component value." ) 1956 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measurereport-stratifier-value-example") 1957 protected DataType value; 1958 1959 private static final long serialVersionUID = -1950789033L; 1960 1961 /** 1962 * Constructor 1963 */ 1964 public StratifierGroupComponentComponent() { 1965 super(); 1966 } 1967 1968 /** 1969 * Constructor 1970 */ 1971 public StratifierGroupComponentComponent(CodeableConcept code, DataType value) { 1972 super(); 1973 this.setCode(code); 1974 this.setValue(value); 1975 } 1976 1977 /** 1978 * @return {@link #code} (The code for the stratum component value.) 1979 */ 1980 public CodeableConcept getCode() { 1981 if (this.code == null) 1982 if (Configuration.errorOnAutoCreate()) 1983 throw new Error("Attempt to auto-create StratifierGroupComponentComponent.code"); 1984 else if (Configuration.doAutoCreate()) 1985 this.code = new CodeableConcept(); // cc 1986 return this.code; 1987 } 1988 1989 public boolean hasCode() { 1990 return this.code != null && !this.code.isEmpty(); 1991 } 1992 1993 /** 1994 * @param value {@link #code} (The code for the stratum component value.) 1995 */ 1996 public StratifierGroupComponentComponent setCode(CodeableConcept value) { 1997 this.code = value; 1998 return this; 1999 } 2000 2001 /** 2002 * @return {@link #value} (The stratum component value.) 2003 */ 2004 public DataType getValue() { 2005 return this.value; 2006 } 2007 2008 /** 2009 * @return {@link #value} (The stratum component value.) 2010 */ 2011 public CodeableConcept getValueCodeableConcept() throws FHIRException { 2012 if (this.value == null) 2013 this.value = new CodeableConcept(); 2014 if (!(this.value instanceof CodeableConcept)) 2015 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 2016 return (CodeableConcept) this.value; 2017 } 2018 2019 public boolean hasValueCodeableConcept() { 2020 return this != null && this.value instanceof CodeableConcept; 2021 } 2022 2023 /** 2024 * @return {@link #value} (The stratum component value.) 2025 */ 2026 public BooleanType getValueBooleanType() throws FHIRException { 2027 if (this.value == null) 2028 this.value = new BooleanType(); 2029 if (!(this.value instanceof BooleanType)) 2030 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 2031 return (BooleanType) this.value; 2032 } 2033 2034 public boolean hasValueBooleanType() { 2035 return this != null && this.value instanceof BooleanType; 2036 } 2037 2038 /** 2039 * @return {@link #value} (The stratum component value.) 2040 */ 2041 public Quantity getValueQuantity() throws FHIRException { 2042 if (this.value == null) 2043 this.value = new Quantity(); 2044 if (!(this.value instanceof Quantity)) 2045 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 2046 return (Quantity) this.value; 2047 } 2048 2049 public boolean hasValueQuantity() { 2050 return this != null && this.value instanceof Quantity; 2051 } 2052 2053 /** 2054 * @return {@link #value} (The stratum component value.) 2055 */ 2056 public Range getValueRange() throws FHIRException { 2057 if (this.value == null) 2058 this.value = new Range(); 2059 if (!(this.value instanceof Range)) 2060 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); 2061 return (Range) this.value; 2062 } 2063 2064 public boolean hasValueRange() { 2065 return this != null && this.value instanceof Range; 2066 } 2067 2068 /** 2069 * @return {@link #value} (The stratum component value.) 2070 */ 2071 public Reference getValueReference() throws FHIRException { 2072 if (this.value == null) 2073 this.value = new Reference(); 2074 if (!(this.value instanceof Reference)) 2075 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered"); 2076 return (Reference) this.value; 2077 } 2078 2079 public boolean hasValueReference() { 2080 return this != null && this.value instanceof Reference; 2081 } 2082 2083 public boolean hasValue() { 2084 return this.value != null && !this.value.isEmpty(); 2085 } 2086 2087 /** 2088 * @param value {@link #value} (The stratum component value.) 2089 */ 2090 public StratifierGroupComponentComponent setValue(DataType value) { 2091 if (value != null && !(value instanceof CodeableConcept || value instanceof BooleanType || value instanceof Quantity || value instanceof Range || value instanceof Reference)) 2092 throw new Error("Not the right type for MeasureReport.group.stratifier.stratum.component.value[x]: "+value.fhirType()); 2093 this.value = value; 2094 return this; 2095 } 2096 2097 protected void listChildren(List<Property> children) { 2098 super.listChildren(children); 2099 children.add(new Property("code", "CodeableConcept", "The code for the stratum component value.", 0, 1, code)); 2100 children.add(new Property("value[x]", "CodeableConcept|boolean|Quantity|Range|Reference", "The stratum component value.", 0, 1, value)); 2101 } 2102 2103 @Override 2104 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2105 switch (_hash) { 2106 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The code for the stratum component value.", 0, 1, code); 2107 case -1410166417: /*value[x]*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range|Reference", "The stratum component value.", 0, 1, value); 2108 case 111972721: /*value*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range|Reference", "The stratum component value.", 0, 1, value); 2109 case 924902896: /*valueCodeableConcept*/ return new Property("value[x]", "CodeableConcept", "The stratum component value.", 0, 1, value); 2110 case 733421943: /*valueBoolean*/ return new Property("value[x]", "boolean", "The stratum component value.", 0, 1, value); 2111 case -2029823716: /*valueQuantity*/ return new Property("value[x]", "Quantity", "The stratum component value.", 0, 1, value); 2112 case 2030761548: /*valueRange*/ return new Property("value[x]", "Range", "The stratum component value.", 0, 1, value); 2113 case 1755241690: /*valueReference*/ return new Property("value[x]", "Reference", "The stratum component value.", 0, 1, value); 2114 default: return super.getNamedProperty(_hash, _name, _checkValid); 2115 } 2116 2117 } 2118 2119 @Override 2120 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2121 switch (hash) { 2122 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 2123 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType 2124 default: return super.getProperty(hash, name, checkValid); 2125 } 2126 2127 } 2128 2129 @Override 2130 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2131 switch (hash) { 2132 case 3059181: // code 2133 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2134 return value; 2135 case 111972721: // value 2136 this.value = TypeConvertor.castToType(value); // DataType 2137 return value; 2138 default: return super.setProperty(hash, name, value); 2139 } 2140 2141 } 2142 2143 @Override 2144 public Base setProperty(String name, Base value) throws FHIRException { 2145 if (name.equals("code")) { 2146 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2147 } else if (name.equals("value[x]")) { 2148 this.value = TypeConvertor.castToType(value); // DataType 2149 } else 2150 return super.setProperty(name, value); 2151 return value; 2152 } 2153 2154 @Override 2155 public Base makeProperty(int hash, String name) throws FHIRException { 2156 switch (hash) { 2157 case 3059181: return getCode(); 2158 case -1410166417: return getValue(); 2159 case 111972721: return getValue(); 2160 default: return super.makeProperty(hash, name); 2161 } 2162 2163 } 2164 2165 @Override 2166 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2167 switch (hash) { 2168 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 2169 case 111972721: /*value*/ return new String[] {"CodeableConcept", "boolean", "Quantity", "Range", "Reference"}; 2170 default: return super.getTypesForProperty(hash, name); 2171 } 2172 2173 } 2174 2175 @Override 2176 public Base addChild(String name) throws FHIRException { 2177 if (name.equals("code")) { 2178 this.code = new CodeableConcept(); 2179 return this.code; 2180 } 2181 else if (name.equals("valueCodeableConcept")) { 2182 this.value = new CodeableConcept(); 2183 return this.value; 2184 } 2185 else if (name.equals("valueBoolean")) { 2186 this.value = new BooleanType(); 2187 return this.value; 2188 } 2189 else if (name.equals("valueQuantity")) { 2190 this.value = new Quantity(); 2191 return this.value; 2192 } 2193 else if (name.equals("valueRange")) { 2194 this.value = new Range(); 2195 return this.value; 2196 } 2197 else if (name.equals("valueReference")) { 2198 this.value = new Reference(); 2199 return this.value; 2200 } 2201 else 2202 return super.addChild(name); 2203 } 2204 2205 public StratifierGroupComponentComponent copy() { 2206 StratifierGroupComponentComponent dst = new StratifierGroupComponentComponent(); 2207 copyValues(dst); 2208 return dst; 2209 } 2210 2211 public void copyValues(StratifierGroupComponentComponent dst) { 2212 super.copyValues(dst); 2213 dst.code = code == null ? null : code.copy(); 2214 dst.value = value == null ? null : value.copy(); 2215 } 2216 2217 @Override 2218 public boolean equalsDeep(Base other_) { 2219 if (!super.equalsDeep(other_)) 2220 return false; 2221 if (!(other_ instanceof StratifierGroupComponentComponent)) 2222 return false; 2223 StratifierGroupComponentComponent o = (StratifierGroupComponentComponent) other_; 2224 return compareDeep(code, o.code, true) && compareDeep(value, o.value, true); 2225 } 2226 2227 @Override 2228 public boolean equalsShallow(Base other_) { 2229 if (!super.equalsShallow(other_)) 2230 return false; 2231 if (!(other_ instanceof StratifierGroupComponentComponent)) 2232 return false; 2233 StratifierGroupComponentComponent o = (StratifierGroupComponentComponent) other_; 2234 return true; 2235 } 2236 2237 public boolean isEmpty() { 2238 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value); 2239 } 2240 2241 public String fhirType() { 2242 return "MeasureReport.group.stratifier.stratum.component"; 2243 2244 } 2245 2246 } 2247 2248 @Block() 2249 public static class StratifierGroupPopulationComponent extends BackboneElement implements IBaseBackboneElement { 2250 /** 2251 * The type of the population. 2252 */ 2253 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 2254 @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." ) 2255 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-population") 2256 protected CodeableConcept code; 2257 2258 /** 2259 * The number of members of the population in this stratum. 2260 */ 2261 @Child(name = "count", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=false) 2262 @Description(shortDefinition="Size of the population", formalDefinition="The number of members of the population in this stratum." ) 2263 protected IntegerType count; 2264 2265 /** 2266 * This element refers to a List of subject level MeasureReport resources, one for each subject in this population in this stratum. 2267 */ 2268 @Child(name = "subjectResults", type = {ListResource.class}, order=3, min=0, max=1, modifier=false, summary=false) 2269 @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." ) 2270 protected Reference subjectResults; 2271 2272 private static final long serialVersionUID = 1086153898L; 2273 2274 /** 2275 * Constructor 2276 */ 2277 public StratifierGroupPopulationComponent() { 2278 super(); 2279 } 2280 2281 /** 2282 * @return {@link #code} (The type of the population.) 2283 */ 2284 public CodeableConcept getCode() { 2285 if (this.code == null) 2286 if (Configuration.errorOnAutoCreate()) 2287 throw new Error("Attempt to auto-create StratifierGroupPopulationComponent.code"); 2288 else if (Configuration.doAutoCreate()) 2289 this.code = new CodeableConcept(); // cc 2290 return this.code; 2291 } 2292 2293 public boolean hasCode() { 2294 return this.code != null && !this.code.isEmpty(); 2295 } 2296 2297 /** 2298 * @param value {@link #code} (The type of the population.) 2299 */ 2300 public StratifierGroupPopulationComponent setCode(CodeableConcept value) { 2301 this.code = value; 2302 return this; 2303 } 2304 2305 /** 2306 * @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 2307 */ 2308 public IntegerType getCountElement() { 2309 if (this.count == null) 2310 if (Configuration.errorOnAutoCreate()) 2311 throw new Error("Attempt to auto-create StratifierGroupPopulationComponent.count"); 2312 else if (Configuration.doAutoCreate()) 2313 this.count = new IntegerType(); // bb 2314 return this.count; 2315 } 2316 2317 public boolean hasCountElement() { 2318 return this.count != null && !this.count.isEmpty(); 2319 } 2320 2321 public boolean hasCount() { 2322 return this.count != null && !this.count.isEmpty(); 2323 } 2324 2325 /** 2326 * @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 2327 */ 2328 public StratifierGroupPopulationComponent setCountElement(IntegerType value) { 2329 this.count = value; 2330 return this; 2331 } 2332 2333 /** 2334 * @return The number of members of the population in this stratum. 2335 */ 2336 public int getCount() { 2337 return this.count == null || this.count.isEmpty() ? 0 : this.count.getValue(); 2338 } 2339 2340 /** 2341 * @param value The number of members of the population in this stratum. 2342 */ 2343 public StratifierGroupPopulationComponent setCount(int value) { 2344 if (this.count == null) 2345 this.count = new IntegerType(); 2346 this.count.setValue(value); 2347 return this; 2348 } 2349 2350 /** 2351 * @return {@link #subjectResults} (This element refers to a List of subject level MeasureReport resources, one for each subject in this population in this stratum.) 2352 */ 2353 public Reference getSubjectResults() { 2354 if (this.subjectResults == null) 2355 if (Configuration.errorOnAutoCreate()) 2356 throw new Error("Attempt to auto-create StratifierGroupPopulationComponent.subjectResults"); 2357 else if (Configuration.doAutoCreate()) 2358 this.subjectResults = new Reference(); // cc 2359 return this.subjectResults; 2360 } 2361 2362 public boolean hasSubjectResults() { 2363 return this.subjectResults != null && !this.subjectResults.isEmpty(); 2364 } 2365 2366 /** 2367 * @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.) 2368 */ 2369 public StratifierGroupPopulationComponent setSubjectResults(Reference value) { 2370 this.subjectResults = value; 2371 return this; 2372 } 2373 2374 protected void listChildren(List<Property> children) { 2375 super.listChildren(children); 2376 children.add(new Property("code", "CodeableConcept", "The type of the population.", 0, 1, code)); 2377 children.add(new Property("count", "integer", "The number of members of the population in this stratum.", 0, 1, count)); 2378 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)); 2379 } 2380 2381 @Override 2382 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2383 switch (_hash) { 2384 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The type of the population.", 0, 1, code); 2385 case 94851343: /*count*/ return new Property("count", "integer", "The number of members of the population in this stratum.", 0, 1, count); 2386 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); 2387 default: return super.getNamedProperty(_hash, _name, _checkValid); 2388 } 2389 2390 } 2391 2392 @Override 2393 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2394 switch (hash) { 2395 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 2396 case 94851343: /*count*/ return this.count == null ? new Base[0] : new Base[] {this.count}; // IntegerType 2397 case 2136184106: /*subjectResults*/ return this.subjectResults == null ? new Base[0] : new Base[] {this.subjectResults}; // Reference 2398 default: return super.getProperty(hash, name, checkValid); 2399 } 2400 2401 } 2402 2403 @Override 2404 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2405 switch (hash) { 2406 case 3059181: // code 2407 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2408 return value; 2409 case 94851343: // count 2410 this.count = TypeConvertor.castToInteger(value); // IntegerType 2411 return value; 2412 case 2136184106: // subjectResults 2413 this.subjectResults = TypeConvertor.castToReference(value); // Reference 2414 return value; 2415 default: return super.setProperty(hash, name, value); 2416 } 2417 2418 } 2419 2420 @Override 2421 public Base setProperty(String name, Base value) throws FHIRException { 2422 if (name.equals("code")) { 2423 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2424 } else if (name.equals("count")) { 2425 this.count = TypeConvertor.castToInteger(value); // IntegerType 2426 } else if (name.equals("subjectResults")) { 2427 this.subjectResults = TypeConvertor.castToReference(value); // Reference 2428 } else 2429 return super.setProperty(name, value); 2430 return value; 2431 } 2432 2433 @Override 2434 public Base makeProperty(int hash, String name) throws FHIRException { 2435 switch (hash) { 2436 case 3059181: return getCode(); 2437 case 94851343: return getCountElement(); 2438 case 2136184106: return getSubjectResults(); 2439 default: return super.makeProperty(hash, name); 2440 } 2441 2442 } 2443 2444 @Override 2445 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2446 switch (hash) { 2447 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 2448 case 94851343: /*count*/ return new String[] {"integer"}; 2449 case 2136184106: /*subjectResults*/ return new String[] {"Reference"}; 2450 default: return super.getTypesForProperty(hash, name); 2451 } 2452 2453 } 2454 2455 @Override 2456 public Base addChild(String name) throws FHIRException { 2457 if (name.equals("code")) { 2458 this.code = new CodeableConcept(); 2459 return this.code; 2460 } 2461 else if (name.equals("count")) { 2462 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.group.stratifier.stratum.population.count"); 2463 } 2464 else if (name.equals("subjectResults")) { 2465 this.subjectResults = new Reference(); 2466 return this.subjectResults; 2467 } 2468 else 2469 return super.addChild(name); 2470 } 2471 2472 public StratifierGroupPopulationComponent copy() { 2473 StratifierGroupPopulationComponent dst = new StratifierGroupPopulationComponent(); 2474 copyValues(dst); 2475 return dst; 2476 } 2477 2478 public void copyValues(StratifierGroupPopulationComponent dst) { 2479 super.copyValues(dst); 2480 dst.code = code == null ? null : code.copy(); 2481 dst.count = count == null ? null : count.copy(); 2482 dst.subjectResults = subjectResults == null ? null : subjectResults.copy(); 2483 } 2484 2485 @Override 2486 public boolean equalsDeep(Base other_) { 2487 if (!super.equalsDeep(other_)) 2488 return false; 2489 if (!(other_ instanceof StratifierGroupPopulationComponent)) 2490 return false; 2491 StratifierGroupPopulationComponent o = (StratifierGroupPopulationComponent) other_; 2492 return compareDeep(code, o.code, true) && compareDeep(count, o.count, true) && compareDeep(subjectResults, o.subjectResults, true) 2493 ; 2494 } 2495 2496 @Override 2497 public boolean equalsShallow(Base other_) { 2498 if (!super.equalsShallow(other_)) 2499 return false; 2500 if (!(other_ instanceof StratifierGroupPopulationComponent)) 2501 return false; 2502 StratifierGroupPopulationComponent o = (StratifierGroupPopulationComponent) other_; 2503 return compareValues(count, o.count, true); 2504 } 2505 2506 public boolean isEmpty() { 2507 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, count, subjectResults 2508 ); 2509 } 2510 2511 public String fhirType() { 2512 return "MeasureReport.group.stratifier.stratum.population"; 2513 2514 } 2515 2516 } 2517 2518 /** 2519 * 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. 2520 */ 2521 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 2522 @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." ) 2523 protected List<Identifier> identifier; 2524 2525 /** 2526 * The MeasureReport status. No data will be available until the MeasureReport status is complete. 2527 */ 2528 @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true) 2529 @Description(shortDefinition="complete | pending | error", formalDefinition="The MeasureReport status. No data will be available until the MeasureReport status is complete." ) 2530 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-report-status") 2531 protected Enumeration<MeasureReportStatus> status; 2532 2533 /** 2534 * 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. 2535 */ 2536 @Child(name = "type", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=true) 2537 @Description(shortDefinition="individual | subject-list | summary | data-exchange", 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." ) 2538 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-report-type") 2539 protected Enumeration<MeasureReportType> type; 2540 2541 /** 2542 * Indicates whether the data submitted in an data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver. 2543 */ 2544 @Child(name = "dataUpdateType", type = {CodeType.class}, order=3, min=0, max=1, modifier=true, summary=true) 2545 @Description(shortDefinition="incremental | snapshot", formalDefinition="Indicates whether the data submitted in an data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver." ) 2546 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/submit-data-update-type") 2547 protected Enumeration<SubmitDataUpdateType> dataUpdateType; 2548 2549 /** 2550 * A reference to the Measure that was calculated to produce this report. 2551 */ 2552 @Child(name = "measure", type = {CanonicalType.class}, order=4, min=0, max=1, modifier=false, summary=true) 2553 @Description(shortDefinition="What measure was calculated", formalDefinition="A reference to the Measure that was calculated to produce this report." ) 2554 protected CanonicalType measure; 2555 2556 /** 2557 * Optional subject identifying the individual or individuals the report is for. 2558 */ 2559 @Child(name = "subject", type = {CareTeam.class, Device.class, Group.class, HealthcareService.class, Location.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class}, order=5, min=0, max=1, modifier=false, summary=true) 2560 @Description(shortDefinition="What individual(s) the report is for", formalDefinition="Optional subject identifying the individual or individuals the report is for." ) 2561 protected Reference subject; 2562 2563 /** 2564 * The date this measure report was generated. 2565 */ 2566 @Child(name = "date", type = {DateTimeType.class}, order=6, min=0, max=1, modifier=false, summary=true) 2567 @Description(shortDefinition="When the report was generated", formalDefinition="The date this measure report was generated." ) 2568 protected DateTimeType date; 2569 2570 /** 2571 * The individual or organization that is reporting the data. 2572 */ 2573 @Child(name = "reporter", type = {Practitioner.class, PractitionerRole.class, Organization.class, Group.class}, order=7, min=0, max=1, modifier=false, summary=true) 2574 @Description(shortDefinition="Who is reporting the data", formalDefinition="The individual or organization that is reporting the data." ) 2575 protected Reference reporter; 2576 2577 /** 2578 * A reference to the vendor who queried the data, calculated results and/or generated the report. The ?reporting vendor? is intended to represent the submitting entity when it is not the same as the reporting entity. This extension is used when the Receiver is interested in getting vendor information in the report. 2579 */ 2580 @Child(name = "reportingVendor", type = {Organization.class}, order=8, min=0, max=1, modifier=false, summary=false) 2581 @Description(shortDefinition="What vendor prepared the data", formalDefinition="A reference to the vendor who queried the data, calculated results and/or generated the report. The ?reporting vendor? is intended to represent the submitting entity when it is not the same as the reporting entity. This extension is used when the Receiver is interested in getting vendor information in the report." ) 2582 protected Reference reportingVendor; 2583 2584 /** 2585 * A reference to the location for which the data is being reported. 2586 */ 2587 @Child(name = "location", type = {Location.class}, order=9, min=0, max=1, modifier=false, summary=false) 2588 @Description(shortDefinition="Where the reported data is from", formalDefinition="A reference to the location for which the data is being reported." ) 2589 protected Reference location; 2590 2591 /** 2592 * The reporting period for which the report was calculated. 2593 */ 2594 @Child(name = "period", type = {Period.class}, order=10, min=1, max=1, modifier=false, summary=true) 2595 @Description(shortDefinition="What period the report covers", formalDefinition="The reporting period for which the report was calculated." ) 2596 protected Period period; 2597 2598 /** 2599 * A reference to a Parameters resource (typically represented using a contained resource) that represents any input parameters that were provided to the operation that generated the report. 2600 */ 2601 @Child(name = "inputParameters", type = {Parameters.class}, order=11, min=0, max=1, modifier=false, summary=false) 2602 @Description(shortDefinition="What parameters were provided to the report", formalDefinition="A reference to a Parameters resource (typically represented using a contained resource) that represents any input parameters that were provided to the operation that generated the report." ) 2603 protected Reference inputParameters; 2604 2605 /** 2606 * Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented. It is expected to be the same as the scoring element on the referenced Measure. 2607 */ 2608 @Child(name = "scoring", type = {CodeableConcept.class}, order=12, min=0, max=1, modifier=true, summary=true) 2609 @Description(shortDefinition="What scoring method (e.g. proportion, ratio, continuous-variable)", formalDefinition="Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented. It is expected to be the same as the scoring element on the referenced Measure." ) 2610 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-scoring") 2611 protected CodeableConcept scoring; 2612 2613 /** 2614 * Whether improvement in the measure is noted by an increase or decrease in the measure score. 2615 */ 2616 @Child(name = "improvementNotation", type = {CodeableConcept.class}, order=13, min=0, max=1, modifier=true, summary=true) 2617 @Description(shortDefinition="increase | decrease", formalDefinition="Whether improvement in the measure is noted by an increase or decrease in the measure score." ) 2618 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-improvement-notation") 2619 protected CodeableConcept improvementNotation; 2620 2621 /** 2622 * The results of the calculation, one for each population group in the measure. 2623 */ 2624 @Child(name = "group", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2625 @Description(shortDefinition="Measure results for each group", formalDefinition="The results of the calculation, one for each population group in the measure." ) 2626 protected List<MeasureReportGroupComponent> group; 2627 2628 /** 2629 * A reference to a Resource that was used in the calculation of this measure. 2630 */ 2631 @Child(name = "evaluatedResource", type = {Reference.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2632 @Description(shortDefinition="What data was used to calculate the measure score", formalDefinition="A reference to a Resource that was used in the calculation of this measure." ) 2633 protected List<Reference> evaluatedResource; 2634 2635 private static final long serialVersionUID = 1805899755L; 2636 2637 /** 2638 * Constructor 2639 */ 2640 public MeasureReport() { 2641 super(); 2642 } 2643 2644 /** 2645 * Constructor 2646 */ 2647 public MeasureReport(MeasureReportStatus status, MeasureReportType type, Period period) { 2648 super(); 2649 this.setStatus(status); 2650 this.setType(type); 2651 this.setPeriod(period); 2652 } 2653 2654 /** 2655 * @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.) 2656 */ 2657 public List<Identifier> getIdentifier() { 2658 if (this.identifier == null) 2659 this.identifier = new ArrayList<Identifier>(); 2660 return this.identifier; 2661 } 2662 2663 /** 2664 * @return Returns a reference to <code>this</code> for easy method chaining 2665 */ 2666 public MeasureReport setIdentifier(List<Identifier> theIdentifier) { 2667 this.identifier = theIdentifier; 2668 return this; 2669 } 2670 2671 public boolean hasIdentifier() { 2672 if (this.identifier == null) 2673 return false; 2674 for (Identifier item : this.identifier) 2675 if (!item.isEmpty()) 2676 return true; 2677 return false; 2678 } 2679 2680 public Identifier addIdentifier() { //3 2681 Identifier t = new Identifier(); 2682 if (this.identifier == null) 2683 this.identifier = new ArrayList<Identifier>(); 2684 this.identifier.add(t); 2685 return t; 2686 } 2687 2688 public MeasureReport addIdentifier(Identifier t) { //3 2689 if (t == null) 2690 return this; 2691 if (this.identifier == null) 2692 this.identifier = new ArrayList<Identifier>(); 2693 this.identifier.add(t); 2694 return this; 2695 } 2696 2697 /** 2698 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 2699 */ 2700 public Identifier getIdentifierFirstRep() { 2701 if (getIdentifier().isEmpty()) { 2702 addIdentifier(); 2703 } 2704 return getIdentifier().get(0); 2705 } 2706 2707 /** 2708 * @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 2709 */ 2710 public Enumeration<MeasureReportStatus> getStatusElement() { 2711 if (this.status == null) 2712 if (Configuration.errorOnAutoCreate()) 2713 throw new Error("Attempt to auto-create MeasureReport.status"); 2714 else if (Configuration.doAutoCreate()) 2715 this.status = new Enumeration<MeasureReportStatus>(new MeasureReportStatusEnumFactory()); // bb 2716 return this.status; 2717 } 2718 2719 public boolean hasStatusElement() { 2720 return this.status != null && !this.status.isEmpty(); 2721 } 2722 2723 public boolean hasStatus() { 2724 return this.status != null && !this.status.isEmpty(); 2725 } 2726 2727 /** 2728 * @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 2729 */ 2730 public MeasureReport setStatusElement(Enumeration<MeasureReportStatus> value) { 2731 this.status = value; 2732 return this; 2733 } 2734 2735 /** 2736 * @return The MeasureReport status. No data will be available until the MeasureReport status is complete. 2737 */ 2738 public MeasureReportStatus getStatus() { 2739 return this.status == null ? null : this.status.getValue(); 2740 } 2741 2742 /** 2743 * @param value The MeasureReport status. No data will be available until the MeasureReport status is complete. 2744 */ 2745 public MeasureReport setStatus(MeasureReportStatus value) { 2746 if (this.status == null) 2747 this.status = new Enumeration<MeasureReportStatus>(new MeasureReportStatusEnumFactory()); 2748 this.status.setValue(value); 2749 return this; 2750 } 2751 2752 /** 2753 * @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 2754 */ 2755 public Enumeration<MeasureReportType> getTypeElement() { 2756 if (this.type == null) 2757 if (Configuration.errorOnAutoCreate()) 2758 throw new Error("Attempt to auto-create MeasureReport.type"); 2759 else if (Configuration.doAutoCreate()) 2760 this.type = new Enumeration<MeasureReportType>(new MeasureReportTypeEnumFactory()); // bb 2761 return this.type; 2762 } 2763 2764 public boolean hasTypeElement() { 2765 return this.type != null && !this.type.isEmpty(); 2766 } 2767 2768 public boolean hasType() { 2769 return this.type != null && !this.type.isEmpty(); 2770 } 2771 2772 /** 2773 * @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 2774 */ 2775 public MeasureReport setTypeElement(Enumeration<MeasureReportType> value) { 2776 this.type = value; 2777 return this; 2778 } 2779 2780 /** 2781 * @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. 2782 */ 2783 public MeasureReportType getType() { 2784 return this.type == null ? null : this.type.getValue(); 2785 } 2786 2787 /** 2788 * @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. 2789 */ 2790 public MeasureReport setType(MeasureReportType value) { 2791 if (this.type == null) 2792 this.type = new Enumeration<MeasureReportType>(new MeasureReportTypeEnumFactory()); 2793 this.type.setValue(value); 2794 return this; 2795 } 2796 2797 /** 2798 * @return {@link #dataUpdateType} (Indicates whether the data submitted in an data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver.). This is the underlying object with id, value and extensions. The accessor "getDataUpdateType" gives direct access to the value 2799 */ 2800 public Enumeration<SubmitDataUpdateType> getDataUpdateTypeElement() { 2801 if (this.dataUpdateType == null) 2802 if (Configuration.errorOnAutoCreate()) 2803 throw new Error("Attempt to auto-create MeasureReport.dataUpdateType"); 2804 else if (Configuration.doAutoCreate()) 2805 this.dataUpdateType = new Enumeration<SubmitDataUpdateType>(new SubmitDataUpdateTypeEnumFactory()); // bb 2806 return this.dataUpdateType; 2807 } 2808 2809 public boolean hasDataUpdateTypeElement() { 2810 return this.dataUpdateType != null && !this.dataUpdateType.isEmpty(); 2811 } 2812 2813 public boolean hasDataUpdateType() { 2814 return this.dataUpdateType != null && !this.dataUpdateType.isEmpty(); 2815 } 2816 2817 /** 2818 * @param value {@link #dataUpdateType} (Indicates whether the data submitted in an data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver.). This is the underlying object with id, value and extensions. The accessor "getDataUpdateType" gives direct access to the value 2819 */ 2820 public MeasureReport setDataUpdateTypeElement(Enumeration<SubmitDataUpdateType> value) { 2821 this.dataUpdateType = value; 2822 return this; 2823 } 2824 2825 /** 2826 * @return Indicates whether the data submitted in an data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver. 2827 */ 2828 public SubmitDataUpdateType getDataUpdateType() { 2829 return this.dataUpdateType == null ? null : this.dataUpdateType.getValue(); 2830 } 2831 2832 /** 2833 * @param value Indicates whether the data submitted in an data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver. 2834 */ 2835 public MeasureReport setDataUpdateType(SubmitDataUpdateType value) { 2836 if (value == null) 2837 this.dataUpdateType = null; 2838 else { 2839 if (this.dataUpdateType == null) 2840 this.dataUpdateType = new Enumeration<SubmitDataUpdateType>(new SubmitDataUpdateTypeEnumFactory()); 2841 this.dataUpdateType.setValue(value); 2842 } 2843 return this; 2844 } 2845 2846 /** 2847 * @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 2848 */ 2849 public CanonicalType getMeasureElement() { 2850 if (this.measure == null) 2851 if (Configuration.errorOnAutoCreate()) 2852 throw new Error("Attempt to auto-create MeasureReport.measure"); 2853 else if (Configuration.doAutoCreate()) 2854 this.measure = new CanonicalType(); // bb 2855 return this.measure; 2856 } 2857 2858 public boolean hasMeasureElement() { 2859 return this.measure != null && !this.measure.isEmpty(); 2860 } 2861 2862 public boolean hasMeasure() { 2863 return this.measure != null && !this.measure.isEmpty(); 2864 } 2865 2866 /** 2867 * @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 2868 */ 2869 public MeasureReport setMeasureElement(CanonicalType value) { 2870 this.measure = value; 2871 return this; 2872 } 2873 2874 /** 2875 * @return A reference to the Measure that was calculated to produce this report. 2876 */ 2877 public String getMeasure() { 2878 return this.measure == null ? null : this.measure.getValue(); 2879 } 2880 2881 /** 2882 * @param value A reference to the Measure that was calculated to produce this report. 2883 */ 2884 public MeasureReport setMeasure(String value) { 2885 if (Utilities.noString(value)) 2886 this.measure = null; 2887 else { 2888 if (this.measure == null) 2889 this.measure = new CanonicalType(); 2890 this.measure.setValue(value); 2891 } 2892 return this; 2893 } 2894 2895 /** 2896 * @return {@link #subject} (Optional subject identifying the individual or individuals the report is for.) 2897 */ 2898 public Reference getSubject() { 2899 if (this.subject == null) 2900 if (Configuration.errorOnAutoCreate()) 2901 throw new Error("Attempt to auto-create MeasureReport.subject"); 2902 else if (Configuration.doAutoCreate()) 2903 this.subject = new Reference(); // cc 2904 return this.subject; 2905 } 2906 2907 public boolean hasSubject() { 2908 return this.subject != null && !this.subject.isEmpty(); 2909 } 2910 2911 /** 2912 * @param value {@link #subject} (Optional subject identifying the individual or individuals the report is for.) 2913 */ 2914 public MeasureReport setSubject(Reference value) { 2915 this.subject = value; 2916 return this; 2917 } 2918 2919 /** 2920 * @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 2921 */ 2922 public DateTimeType getDateElement() { 2923 if (this.date == null) 2924 if (Configuration.errorOnAutoCreate()) 2925 throw new Error("Attempt to auto-create MeasureReport.date"); 2926 else if (Configuration.doAutoCreate()) 2927 this.date = new DateTimeType(); // bb 2928 return this.date; 2929 } 2930 2931 public boolean hasDateElement() { 2932 return this.date != null && !this.date.isEmpty(); 2933 } 2934 2935 public boolean hasDate() { 2936 return this.date != null && !this.date.isEmpty(); 2937 } 2938 2939 /** 2940 * @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 2941 */ 2942 public MeasureReport setDateElement(DateTimeType value) { 2943 this.date = value; 2944 return this; 2945 } 2946 2947 /** 2948 * @return The date this measure report was generated. 2949 */ 2950 public Date getDate() { 2951 return this.date == null ? null : this.date.getValue(); 2952 } 2953 2954 /** 2955 * @param value The date this measure report was generated. 2956 */ 2957 public MeasureReport setDate(Date value) { 2958 if (value == null) 2959 this.date = null; 2960 else { 2961 if (this.date == null) 2962 this.date = new DateTimeType(); 2963 this.date.setValue(value); 2964 } 2965 return this; 2966 } 2967 2968 /** 2969 * @return {@link #reporter} (The individual or organization that is reporting the data.) 2970 */ 2971 public Reference getReporter() { 2972 if (this.reporter == null) 2973 if (Configuration.errorOnAutoCreate()) 2974 throw new Error("Attempt to auto-create MeasureReport.reporter"); 2975 else if (Configuration.doAutoCreate()) 2976 this.reporter = new Reference(); // cc 2977 return this.reporter; 2978 } 2979 2980 public boolean hasReporter() { 2981 return this.reporter != null && !this.reporter.isEmpty(); 2982 } 2983 2984 /** 2985 * @param value {@link #reporter} (The individual or organization that is reporting the data.) 2986 */ 2987 public MeasureReport setReporter(Reference value) { 2988 this.reporter = value; 2989 return this; 2990 } 2991 2992 /** 2993 * @return {@link #reportingVendor} (A reference to the vendor who queried the data, calculated results and/or generated the report. The ?reporting vendor? is intended to represent the submitting entity when it is not the same as the reporting entity. This extension is used when the Receiver is interested in getting vendor information in the report.) 2994 */ 2995 public Reference getReportingVendor() { 2996 if (this.reportingVendor == null) 2997 if (Configuration.errorOnAutoCreate()) 2998 throw new Error("Attempt to auto-create MeasureReport.reportingVendor"); 2999 else if (Configuration.doAutoCreate()) 3000 this.reportingVendor = new Reference(); // cc 3001 return this.reportingVendor; 3002 } 3003 3004 public boolean hasReportingVendor() { 3005 return this.reportingVendor != null && !this.reportingVendor.isEmpty(); 3006 } 3007 3008 /** 3009 * @param value {@link #reportingVendor} (A reference to the vendor who queried the data, calculated results and/or generated the report. The ?reporting vendor? is intended to represent the submitting entity when it is not the same as the reporting entity. This extension is used when the Receiver is interested in getting vendor information in the report.) 3010 */ 3011 public MeasureReport setReportingVendor(Reference value) { 3012 this.reportingVendor = value; 3013 return this; 3014 } 3015 3016 /** 3017 * @return {@link #location} (A reference to the location for which the data is being reported.) 3018 */ 3019 public Reference getLocation() { 3020 if (this.location == null) 3021 if (Configuration.errorOnAutoCreate()) 3022 throw new Error("Attempt to auto-create MeasureReport.location"); 3023 else if (Configuration.doAutoCreate()) 3024 this.location = new Reference(); // cc 3025 return this.location; 3026 } 3027 3028 public boolean hasLocation() { 3029 return this.location != null && !this.location.isEmpty(); 3030 } 3031 3032 /** 3033 * @param value {@link #location} (A reference to the location for which the data is being reported.) 3034 */ 3035 public MeasureReport setLocation(Reference value) { 3036 this.location = value; 3037 return this; 3038 } 3039 3040 /** 3041 * @return {@link #period} (The reporting period for which the report was calculated.) 3042 */ 3043 public Period getPeriod() { 3044 if (this.period == null) 3045 if (Configuration.errorOnAutoCreate()) 3046 throw new Error("Attempt to auto-create MeasureReport.period"); 3047 else if (Configuration.doAutoCreate()) 3048 this.period = new Period(); // cc 3049 return this.period; 3050 } 3051 3052 public boolean hasPeriod() { 3053 return this.period != null && !this.period.isEmpty(); 3054 } 3055 3056 /** 3057 * @param value {@link #period} (The reporting period for which the report was calculated.) 3058 */ 3059 public MeasureReport setPeriod(Period value) { 3060 this.period = value; 3061 return this; 3062 } 3063 3064 /** 3065 * @return {@link #inputParameters} (A reference to a Parameters resource (typically represented using a contained resource) that represents any input parameters that were provided to the operation that generated the report.) 3066 */ 3067 public Reference getInputParameters() { 3068 if (this.inputParameters == null) 3069 if (Configuration.errorOnAutoCreate()) 3070 throw new Error("Attempt to auto-create MeasureReport.inputParameters"); 3071 else if (Configuration.doAutoCreate()) 3072 this.inputParameters = new Reference(); // cc 3073 return this.inputParameters; 3074 } 3075 3076 public boolean hasInputParameters() { 3077 return this.inputParameters != null && !this.inputParameters.isEmpty(); 3078 } 3079 3080 /** 3081 * @param value {@link #inputParameters} (A reference to a Parameters resource (typically represented using a contained resource) that represents any input parameters that were provided to the operation that generated the report.) 3082 */ 3083 public MeasureReport setInputParameters(Reference value) { 3084 this.inputParameters = value; 3085 return this; 3086 } 3087 3088 /** 3089 * @return {@link #scoring} (Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented. It is expected to be the same as the scoring element on the referenced Measure.) 3090 */ 3091 public CodeableConcept getScoring() { 3092 if (this.scoring == null) 3093 if (Configuration.errorOnAutoCreate()) 3094 throw new Error("Attempt to auto-create MeasureReport.scoring"); 3095 else if (Configuration.doAutoCreate()) 3096 this.scoring = new CodeableConcept(); // cc 3097 return this.scoring; 3098 } 3099 3100 public boolean hasScoring() { 3101 return this.scoring != null && !this.scoring.isEmpty(); 3102 } 3103 3104 /** 3105 * @param value {@link #scoring} (Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented. It is expected to be the same as the scoring element on the referenced Measure.) 3106 */ 3107 public MeasureReport setScoring(CodeableConcept value) { 3108 this.scoring = value; 3109 return this; 3110 } 3111 3112 /** 3113 * @return {@link #improvementNotation} (Whether improvement in the measure is noted by an increase or decrease in the measure score.) 3114 */ 3115 public CodeableConcept getImprovementNotation() { 3116 if (this.improvementNotation == null) 3117 if (Configuration.errorOnAutoCreate()) 3118 throw new Error("Attempt to auto-create MeasureReport.improvementNotation"); 3119 else if (Configuration.doAutoCreate()) 3120 this.improvementNotation = new CodeableConcept(); // cc 3121 return this.improvementNotation; 3122 } 3123 3124 public boolean hasImprovementNotation() { 3125 return this.improvementNotation != null && !this.improvementNotation.isEmpty(); 3126 } 3127 3128 /** 3129 * @param value {@link #improvementNotation} (Whether improvement in the measure is noted by an increase or decrease in the measure score.) 3130 */ 3131 public MeasureReport setImprovementNotation(CodeableConcept value) { 3132 this.improvementNotation = value; 3133 return this; 3134 } 3135 3136 /** 3137 * @return {@link #group} (The results of the calculation, one for each population group in the measure.) 3138 */ 3139 public List<MeasureReportGroupComponent> getGroup() { 3140 if (this.group == null) 3141 this.group = new ArrayList<MeasureReportGroupComponent>(); 3142 return this.group; 3143 } 3144 3145 /** 3146 * @return Returns a reference to <code>this</code> for easy method chaining 3147 */ 3148 public MeasureReport setGroup(List<MeasureReportGroupComponent> theGroup) { 3149 this.group = theGroup; 3150 return this; 3151 } 3152 3153 public boolean hasGroup() { 3154 if (this.group == null) 3155 return false; 3156 for (MeasureReportGroupComponent item : this.group) 3157 if (!item.isEmpty()) 3158 return true; 3159 return false; 3160 } 3161 3162 public MeasureReportGroupComponent addGroup() { //3 3163 MeasureReportGroupComponent t = new MeasureReportGroupComponent(); 3164 if (this.group == null) 3165 this.group = new ArrayList<MeasureReportGroupComponent>(); 3166 this.group.add(t); 3167 return t; 3168 } 3169 3170 public MeasureReport addGroup(MeasureReportGroupComponent t) { //3 3171 if (t == null) 3172 return this; 3173 if (this.group == null) 3174 this.group = new ArrayList<MeasureReportGroupComponent>(); 3175 this.group.add(t); 3176 return this; 3177 } 3178 3179 /** 3180 * @return The first repetition of repeating field {@link #group}, creating it if it does not already exist {3} 3181 */ 3182 public MeasureReportGroupComponent getGroupFirstRep() { 3183 if (getGroup().isEmpty()) { 3184 addGroup(); 3185 } 3186 return getGroup().get(0); 3187 } 3188 3189 /** 3190 * @return {@link #evaluatedResource} (A reference to a Resource that was used in the calculation of this measure.) 3191 */ 3192 public List<Reference> getEvaluatedResource() { 3193 if (this.evaluatedResource == null) 3194 this.evaluatedResource = new ArrayList<Reference>(); 3195 return this.evaluatedResource; 3196 } 3197 3198 /** 3199 * @return Returns a reference to <code>this</code> for easy method chaining 3200 */ 3201 public MeasureReport setEvaluatedResource(List<Reference> theEvaluatedResource) { 3202 this.evaluatedResource = theEvaluatedResource; 3203 return this; 3204 } 3205 3206 public boolean hasEvaluatedResource() { 3207 if (this.evaluatedResource == null) 3208 return false; 3209 for (Reference item : this.evaluatedResource) 3210 if (!item.isEmpty()) 3211 return true; 3212 return false; 3213 } 3214 3215 public Reference addEvaluatedResource() { //3 3216 Reference t = new Reference(); 3217 if (this.evaluatedResource == null) 3218 this.evaluatedResource = new ArrayList<Reference>(); 3219 this.evaluatedResource.add(t); 3220 return t; 3221 } 3222 3223 public MeasureReport addEvaluatedResource(Reference t) { //3 3224 if (t == null) 3225 return this; 3226 if (this.evaluatedResource == null) 3227 this.evaluatedResource = new ArrayList<Reference>(); 3228 this.evaluatedResource.add(t); 3229 return this; 3230 } 3231 3232 /** 3233 * @return The first repetition of repeating field {@link #evaluatedResource}, creating it if it does not already exist {3} 3234 */ 3235 public Reference getEvaluatedResourceFirstRep() { 3236 if (getEvaluatedResource().isEmpty()) { 3237 addEvaluatedResource(); 3238 } 3239 return getEvaluatedResource().get(0); 3240 } 3241 3242 protected void listChildren(List<Property> children) { 3243 super.listChildren(children); 3244 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)); 3245 children.add(new Property("status", "code", "The MeasureReport status. No data will be available until the MeasureReport status is complete.", 0, 1, status)); 3246 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)); 3247 children.add(new Property("dataUpdateType", "code", "Indicates whether the data submitted in an data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver.", 0, 1, dataUpdateType)); 3248 children.add(new Property("measure", "canonical(Measure)", "A reference to the Measure that was calculated to produce this report.", 0, 1, measure)); 3249 children.add(new Property("subject", "Reference(CareTeam|Device|Group|HealthcareService|Location|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", "Optional subject identifying the individual or individuals the report is for.", 0, 1, subject)); 3250 children.add(new Property("date", "dateTime", "The date this measure report was generated.", 0, 1, date)); 3251 children.add(new Property("reporter", "Reference(Practitioner|PractitionerRole|Organization|Group)", "The individual or organization that is reporting the data.", 0, 1, reporter)); 3252 children.add(new Property("reportingVendor", "Reference(Organization)", "A reference to the vendor who queried the data, calculated results and/or generated the report. The ?reporting vendor? is intended to represent the submitting entity when it is not the same as the reporting entity. This extension is used when the Receiver is interested in getting vendor information in the report.", 0, 1, reportingVendor)); 3253 children.add(new Property("location", "Reference(Location)", "A reference to the location for which the data is being reported.", 0, 1, location)); 3254 children.add(new Property("period", "Period", "The reporting period for which the report was calculated.", 0, 1, period)); 3255 children.add(new Property("inputParameters", "Reference(Parameters)", "A reference to a Parameters resource (typically represented using a contained resource) that represents any input parameters that were provided to the operation that generated the report.", 0, 1, inputParameters)); 3256 children.add(new Property("scoring", "CodeableConcept", "Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented. It is expected to be the same as the scoring element on the referenced Measure.", 0, 1, scoring)); 3257 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)); 3258 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)); 3259 children.add(new Property("evaluatedResource", "Reference(Any)", "A reference to a Resource that was used in the calculation of this measure.", 0, java.lang.Integer.MAX_VALUE, evaluatedResource)); 3260 } 3261 3262 @Override 3263 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3264 switch (_hash) { 3265 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); 3266 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); 3267 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); 3268 case -425890067: /*dataUpdateType*/ return new Property("dataUpdateType", "code", "Indicates whether the data submitted in an data-exchange report represents a snapshot or incremental update. A snapshot update replaces all previously submitted data for the receiver, whereas an incremental update represents only updated and/or changed data and should be applied as a differential update to the existing submitted data for the receiver.", 0, 1, dataUpdateType); 3269 case 938321246: /*measure*/ return new Property("measure", "canonical(Measure)", "A reference to the Measure that was calculated to produce this report.", 0, 1, measure); 3270 case -1867885268: /*subject*/ return new Property("subject", "Reference(CareTeam|Device|Group|HealthcareService|Location|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", "Optional subject identifying the individual or individuals the report is for.", 0, 1, subject); 3271 case 3076014: /*date*/ return new Property("date", "dateTime", "The date this measure report was generated.", 0, 1, date); 3272 case -427039519: /*reporter*/ return new Property("reporter", "Reference(Practitioner|PractitionerRole|Organization|Group)", "The individual or organization that is reporting the data.", 0, 1, reporter); 3273 case 581336342: /*reportingVendor*/ return new Property("reportingVendor", "Reference(Organization)", "A reference to the vendor who queried the data, calculated results and/or generated the report. The ?reporting vendor? is intended to represent the submitting entity when it is not the same as the reporting entity. This extension is used when the Receiver is interested in getting vendor information in the report.", 0, 1, reportingVendor); 3274 case 1901043637: /*location*/ return new Property("location", "Reference(Location)", "A reference to the location for which the data is being reported.", 0, 1, location); 3275 case -991726143: /*period*/ return new Property("period", "Period", "The reporting period for which the report was calculated.", 0, 1, period); 3276 case -812039852: /*inputParameters*/ return new Property("inputParameters", "Reference(Parameters)", "A reference to a Parameters resource (typically represented using a contained resource) that represents any input parameters that were provided to the operation that generated the report.", 0, 1, inputParameters); 3277 case 1924005583: /*scoring*/ return new Property("scoring", "CodeableConcept", "Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented. It is expected to be the same as the scoring element on the referenced Measure.", 0, 1, scoring); 3278 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); 3279 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); 3280 case -1056771047: /*evaluatedResource*/ return new Property("evaluatedResource", "Reference(Any)", "A reference to a Resource that was used in the calculation of this measure.", 0, java.lang.Integer.MAX_VALUE, evaluatedResource); 3281 default: return super.getNamedProperty(_hash, _name, _checkValid); 3282 } 3283 3284 } 3285 3286 @Override 3287 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3288 switch (hash) { 3289 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 3290 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<MeasureReportStatus> 3291 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<MeasureReportType> 3292 case -425890067: /*dataUpdateType*/ return this.dataUpdateType == null ? new Base[0] : new Base[] {this.dataUpdateType}; // Enumeration<SubmitDataUpdateType> 3293 case 938321246: /*measure*/ return this.measure == null ? new Base[0] : new Base[] {this.measure}; // CanonicalType 3294 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 3295 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 3296 case -427039519: /*reporter*/ return this.reporter == null ? new Base[0] : new Base[] {this.reporter}; // Reference 3297 case 581336342: /*reportingVendor*/ return this.reportingVendor == null ? new Base[0] : new Base[] {this.reportingVendor}; // Reference 3298 case 1901043637: /*location*/ return this.location == null ? new Base[0] : new Base[] {this.location}; // Reference 3299 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 3300 case -812039852: /*inputParameters*/ return this.inputParameters == null ? new Base[0] : new Base[] {this.inputParameters}; // Reference 3301 case 1924005583: /*scoring*/ return this.scoring == null ? new Base[0] : new Base[] {this.scoring}; // CodeableConcept 3302 case -2085456136: /*improvementNotation*/ return this.improvementNotation == null ? new Base[0] : new Base[] {this.improvementNotation}; // CodeableConcept 3303 case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // MeasureReportGroupComponent 3304 case -1056771047: /*evaluatedResource*/ return this.evaluatedResource == null ? new Base[0] : this.evaluatedResource.toArray(new Base[this.evaluatedResource.size()]); // Reference 3305 default: return super.getProperty(hash, name, checkValid); 3306 } 3307 3308 } 3309 3310 @Override 3311 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3312 switch (hash) { 3313 case -1618432855: // identifier 3314 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 3315 return value; 3316 case -892481550: // status 3317 value = new MeasureReportStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 3318 this.status = (Enumeration) value; // Enumeration<MeasureReportStatus> 3319 return value; 3320 case 3575610: // type 3321 value = new MeasureReportTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 3322 this.type = (Enumeration) value; // Enumeration<MeasureReportType> 3323 return value; 3324 case -425890067: // dataUpdateType 3325 value = new SubmitDataUpdateTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 3326 this.dataUpdateType = (Enumeration) value; // Enumeration<SubmitDataUpdateType> 3327 return value; 3328 case 938321246: // measure 3329 this.measure = TypeConvertor.castToCanonical(value); // CanonicalType 3330 return value; 3331 case -1867885268: // subject 3332 this.subject = TypeConvertor.castToReference(value); // Reference 3333 return value; 3334 case 3076014: // date 3335 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 3336 return value; 3337 case -427039519: // reporter 3338 this.reporter = TypeConvertor.castToReference(value); // Reference 3339 return value; 3340 case 581336342: // reportingVendor 3341 this.reportingVendor = TypeConvertor.castToReference(value); // Reference 3342 return value; 3343 case 1901043637: // location 3344 this.location = TypeConvertor.castToReference(value); // Reference 3345 return value; 3346 case -991726143: // period 3347 this.period = TypeConvertor.castToPeriod(value); // Period 3348 return value; 3349 case -812039852: // inputParameters 3350 this.inputParameters = TypeConvertor.castToReference(value); // Reference 3351 return value; 3352 case 1924005583: // scoring 3353 this.scoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3354 return value; 3355 case -2085456136: // improvementNotation 3356 this.improvementNotation = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3357 return value; 3358 case 98629247: // group 3359 this.getGroup().add((MeasureReportGroupComponent) value); // MeasureReportGroupComponent 3360 return value; 3361 case -1056771047: // evaluatedResource 3362 this.getEvaluatedResource().add(TypeConvertor.castToReference(value)); // Reference 3363 return value; 3364 default: return super.setProperty(hash, name, value); 3365 } 3366 3367 } 3368 3369 @Override 3370 public Base setProperty(String name, Base value) throws FHIRException { 3371 if (name.equals("identifier")) { 3372 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 3373 } else if (name.equals("status")) { 3374 value = new MeasureReportStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 3375 this.status = (Enumeration) value; // Enumeration<MeasureReportStatus> 3376 } else if (name.equals("type")) { 3377 value = new MeasureReportTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 3378 this.type = (Enumeration) value; // Enumeration<MeasureReportType> 3379 } else if (name.equals("dataUpdateType")) { 3380 value = new SubmitDataUpdateTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 3381 this.dataUpdateType = (Enumeration) value; // Enumeration<SubmitDataUpdateType> 3382 } else if (name.equals("measure")) { 3383 this.measure = TypeConvertor.castToCanonical(value); // CanonicalType 3384 } else if (name.equals("subject")) { 3385 this.subject = TypeConvertor.castToReference(value); // Reference 3386 } else if (name.equals("date")) { 3387 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 3388 } else if (name.equals("reporter")) { 3389 this.reporter = TypeConvertor.castToReference(value); // Reference 3390 } else if (name.equals("reportingVendor")) { 3391 this.reportingVendor = TypeConvertor.castToReference(value); // Reference 3392 } else if (name.equals("location")) { 3393 this.location = TypeConvertor.castToReference(value); // Reference 3394 } else if (name.equals("period")) { 3395 this.period = TypeConvertor.castToPeriod(value); // Period 3396 } else if (name.equals("inputParameters")) { 3397 this.inputParameters = TypeConvertor.castToReference(value); // Reference 3398 } else if (name.equals("scoring")) { 3399 this.scoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3400 } else if (name.equals("improvementNotation")) { 3401 this.improvementNotation = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3402 } else if (name.equals("group")) { 3403 this.getGroup().add((MeasureReportGroupComponent) value); 3404 } else if (name.equals("evaluatedResource")) { 3405 this.getEvaluatedResource().add(TypeConvertor.castToReference(value)); 3406 } else 3407 return super.setProperty(name, value); 3408 return value; 3409 } 3410 3411 @Override 3412 public Base makeProperty(int hash, String name) throws FHIRException { 3413 switch (hash) { 3414 case -1618432855: return addIdentifier(); 3415 case -892481550: return getStatusElement(); 3416 case 3575610: return getTypeElement(); 3417 case -425890067: return getDataUpdateTypeElement(); 3418 case 938321246: return getMeasureElement(); 3419 case -1867885268: return getSubject(); 3420 case 3076014: return getDateElement(); 3421 case -427039519: return getReporter(); 3422 case 581336342: return getReportingVendor(); 3423 case 1901043637: return getLocation(); 3424 case -991726143: return getPeriod(); 3425 case -812039852: return getInputParameters(); 3426 case 1924005583: return getScoring(); 3427 case -2085456136: return getImprovementNotation(); 3428 case 98629247: return addGroup(); 3429 case -1056771047: return addEvaluatedResource(); 3430 default: return super.makeProperty(hash, name); 3431 } 3432 3433 } 3434 3435 @Override 3436 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3437 switch (hash) { 3438 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 3439 case -892481550: /*status*/ return new String[] {"code"}; 3440 case 3575610: /*type*/ return new String[] {"code"}; 3441 case -425890067: /*dataUpdateType*/ return new String[] {"code"}; 3442 case 938321246: /*measure*/ return new String[] {"canonical"}; 3443 case -1867885268: /*subject*/ return new String[] {"Reference"}; 3444 case 3076014: /*date*/ return new String[] {"dateTime"}; 3445 case -427039519: /*reporter*/ return new String[] {"Reference"}; 3446 case 581336342: /*reportingVendor*/ return new String[] {"Reference"}; 3447 case 1901043637: /*location*/ return new String[] {"Reference"}; 3448 case -991726143: /*period*/ return new String[] {"Period"}; 3449 case -812039852: /*inputParameters*/ return new String[] {"Reference"}; 3450 case 1924005583: /*scoring*/ return new String[] {"CodeableConcept"}; 3451 case -2085456136: /*improvementNotation*/ return new String[] {"CodeableConcept"}; 3452 case 98629247: /*group*/ return new String[] {}; 3453 case -1056771047: /*evaluatedResource*/ return new String[] {"Reference"}; 3454 default: return super.getTypesForProperty(hash, name); 3455 } 3456 3457 } 3458 3459 @Override 3460 public Base addChild(String name) throws FHIRException { 3461 if (name.equals("identifier")) { 3462 return addIdentifier(); 3463 } 3464 else if (name.equals("status")) { 3465 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.status"); 3466 } 3467 else if (name.equals("type")) { 3468 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.type"); 3469 } 3470 else if (name.equals("dataUpdateType")) { 3471 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.dataUpdateType"); 3472 } 3473 else if (name.equals("measure")) { 3474 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.measure"); 3475 } 3476 else if (name.equals("subject")) { 3477 this.subject = new Reference(); 3478 return this.subject; 3479 } 3480 else if (name.equals("date")) { 3481 throw new FHIRException("Cannot call addChild on a primitive type MeasureReport.date"); 3482 } 3483 else if (name.equals("reporter")) { 3484 this.reporter = new Reference(); 3485 return this.reporter; 3486 } 3487 else if (name.equals("reportingVendor")) { 3488 this.reportingVendor = new Reference(); 3489 return this.reportingVendor; 3490 } 3491 else if (name.equals("location")) { 3492 this.location = new Reference(); 3493 return this.location; 3494 } 3495 else if (name.equals("period")) { 3496 this.period = new Period(); 3497 return this.period; 3498 } 3499 else if (name.equals("inputParameters")) { 3500 this.inputParameters = new Reference(); 3501 return this.inputParameters; 3502 } 3503 else if (name.equals("scoring")) { 3504 this.scoring = new CodeableConcept(); 3505 return this.scoring; 3506 } 3507 else if (name.equals("improvementNotation")) { 3508 this.improvementNotation = new CodeableConcept(); 3509 return this.improvementNotation; 3510 } 3511 else if (name.equals("group")) { 3512 return addGroup(); 3513 } 3514 else if (name.equals("evaluatedResource")) { 3515 return addEvaluatedResource(); 3516 } 3517 else 3518 return super.addChild(name); 3519 } 3520 3521 public String fhirType() { 3522 return "MeasureReport"; 3523 3524 } 3525 3526 public MeasureReport copy() { 3527 MeasureReport dst = new MeasureReport(); 3528 copyValues(dst); 3529 return dst; 3530 } 3531 3532 public void copyValues(MeasureReport dst) { 3533 super.copyValues(dst); 3534 if (identifier != null) { 3535 dst.identifier = new ArrayList<Identifier>(); 3536 for (Identifier i : identifier) 3537 dst.identifier.add(i.copy()); 3538 }; 3539 dst.status = status == null ? null : status.copy(); 3540 dst.type = type == null ? null : type.copy(); 3541 dst.dataUpdateType = dataUpdateType == null ? null : dataUpdateType.copy(); 3542 dst.measure = measure == null ? null : measure.copy(); 3543 dst.subject = subject == null ? null : subject.copy(); 3544 dst.date = date == null ? null : date.copy(); 3545 dst.reporter = reporter == null ? null : reporter.copy(); 3546 dst.reportingVendor = reportingVendor == null ? null : reportingVendor.copy(); 3547 dst.location = location == null ? null : location.copy(); 3548 dst.period = period == null ? null : period.copy(); 3549 dst.inputParameters = inputParameters == null ? null : inputParameters.copy(); 3550 dst.scoring = scoring == null ? null : scoring.copy(); 3551 dst.improvementNotation = improvementNotation == null ? null : improvementNotation.copy(); 3552 if (group != null) { 3553 dst.group = new ArrayList<MeasureReportGroupComponent>(); 3554 for (MeasureReportGroupComponent i : group) 3555 dst.group.add(i.copy()); 3556 }; 3557 if (evaluatedResource != null) { 3558 dst.evaluatedResource = new ArrayList<Reference>(); 3559 for (Reference i : evaluatedResource) 3560 dst.evaluatedResource.add(i.copy()); 3561 }; 3562 } 3563 3564 protected MeasureReport typedCopy() { 3565 return copy(); 3566 } 3567 3568 @Override 3569 public boolean equalsDeep(Base other_) { 3570 if (!super.equalsDeep(other_)) 3571 return false; 3572 if (!(other_ instanceof MeasureReport)) 3573 return false; 3574 MeasureReport o = (MeasureReport) other_; 3575 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(type, o.type, true) 3576 && compareDeep(dataUpdateType, o.dataUpdateType, true) && compareDeep(measure, o.measure, true) 3577 && compareDeep(subject, o.subject, true) && compareDeep(date, o.date, true) && compareDeep(reporter, o.reporter, true) 3578 && compareDeep(reportingVendor, o.reportingVendor, true) && compareDeep(location, o.location, true) 3579 && compareDeep(period, o.period, true) && compareDeep(inputParameters, o.inputParameters, true) 3580 && compareDeep(scoring, o.scoring, true) && compareDeep(improvementNotation, o.improvementNotation, true) 3581 && compareDeep(group, o.group, true) && compareDeep(evaluatedResource, o.evaluatedResource, true) 3582 ; 3583 } 3584 3585 @Override 3586 public boolean equalsShallow(Base other_) { 3587 if (!super.equalsShallow(other_)) 3588 return false; 3589 if (!(other_ instanceof MeasureReport)) 3590 return false; 3591 MeasureReport o = (MeasureReport) other_; 3592 return compareValues(status, o.status, true) && compareValues(type, o.type, true) && compareValues(dataUpdateType, o.dataUpdateType, true) 3593 && compareValues(measure, o.measure, true) && compareValues(date, o.date, true); 3594 } 3595 3596 public boolean isEmpty() { 3597 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, type 3598 , dataUpdateType, measure, subject, date, reporter, reportingVendor, location 3599 , period, inputParameters, scoring, improvementNotation, group, evaluatedResource 3600 ); 3601 } 3602 3603 @Override 3604 public ResourceType getResourceType() { 3605 return ResourceType.MeasureReport; 3606 } 3607 3608 /** 3609 * Search parameter: <b>date</b> 3610 * <p> 3611 * Description: <b>The date of the measure report</b><br> 3612 * Type: <b>date</b><br> 3613 * Path: <b>MeasureReport.date</b><br> 3614 * </p> 3615 */ 3616 @SearchParamDefinition(name="date", path="MeasureReport.date", description="The date of the measure report", type="date" ) 3617 public static final String SP_DATE = "date"; 3618 /** 3619 * <b>Fluent Client</b> search parameter constant for <b>date</b> 3620 * <p> 3621 * Description: <b>The date of the measure report</b><br> 3622 * Type: <b>date</b><br> 3623 * Path: <b>MeasureReport.date</b><br> 3624 * </p> 3625 */ 3626 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 3627 3628 /** 3629 * Search parameter: <b>evaluated-resource</b> 3630 * <p> 3631 * Description: <b>An evaluated resource referenced by the measure report</b><br> 3632 * Type: <b>reference</b><br> 3633 * Path: <b>MeasureReport.evaluatedResource</b><br> 3634 * </p> 3635 */ 3636 @SearchParamDefinition(name="evaluated-resource", path="MeasureReport.evaluatedResource", description="An evaluated resource referenced by the measure report", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 3637 public static final String SP_EVALUATED_RESOURCE = "evaluated-resource"; 3638 /** 3639 * <b>Fluent Client</b> search parameter constant for <b>evaluated-resource</b> 3640 * <p> 3641 * Description: <b>An evaluated resource referenced by the measure report</b><br> 3642 * Type: <b>reference</b><br> 3643 * Path: <b>MeasureReport.evaluatedResource</b><br> 3644 * </p> 3645 */ 3646 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam EVALUATED_RESOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_EVALUATED_RESOURCE); 3647 3648/** 3649 * Constant for fluent queries to be used to add include statements. Specifies 3650 * the path value of "<b>MeasureReport:evaluated-resource</b>". 3651 */ 3652 public static final ca.uhn.fhir.model.api.Include INCLUDE_EVALUATED_RESOURCE = new ca.uhn.fhir.model.api.Include("MeasureReport:evaluated-resource").toLocked(); 3653 3654 /** 3655 * Search parameter: <b>identifier</b> 3656 * <p> 3657 * Description: <b>External identifier of the measure report to be returned</b><br> 3658 * Type: <b>token</b><br> 3659 * Path: <b>MeasureReport.identifier</b><br> 3660 * </p> 3661 */ 3662 @SearchParamDefinition(name="identifier", path="MeasureReport.identifier", description="External identifier of the measure report to be returned", type="token" ) 3663 public static final String SP_IDENTIFIER = "identifier"; 3664 /** 3665 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 3666 * <p> 3667 * Description: <b>External identifier of the measure report to be returned</b><br> 3668 * Type: <b>token</b><br> 3669 * Path: <b>MeasureReport.identifier</b><br> 3670 * </p> 3671 */ 3672 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 3673 3674 /** 3675 * Search parameter: <b>location</b> 3676 * <p> 3677 * Description: <b>The location to return measure report results for</b><br> 3678 * Type: <b>reference</b><br> 3679 * Path: <b>MeasureReport.location</b><br> 3680 * </p> 3681 */ 3682 @SearchParamDefinition(name="location", path="MeasureReport.location", description="The location to return measure report results for", type="reference", target={Location.class } ) 3683 public static final String SP_LOCATION = "location"; 3684 /** 3685 * <b>Fluent Client</b> search parameter constant for <b>location</b> 3686 * <p> 3687 * Description: <b>The location to return measure report results for</b><br> 3688 * Type: <b>reference</b><br> 3689 * Path: <b>MeasureReport.location</b><br> 3690 * </p> 3691 */ 3692 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 3693 3694/** 3695 * Constant for fluent queries to be used to add include statements. Specifies 3696 * the path value of "<b>MeasureReport:location</b>". 3697 */ 3698 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("MeasureReport:location").toLocked(); 3699 3700 /** 3701 * Search parameter: <b>measure</b> 3702 * <p> 3703 * Description: <b>The measure to return measure report results for</b><br> 3704 * Type: <b>reference</b><br> 3705 * Path: <b>MeasureReport.measure</b><br> 3706 * </p> 3707 */ 3708 @SearchParamDefinition(name="measure", path="MeasureReport.measure", description="The measure to return measure report results for", type="reference", target={Measure.class } ) 3709 public static final String SP_MEASURE = "measure"; 3710 /** 3711 * <b>Fluent Client</b> search parameter constant for <b>measure</b> 3712 * <p> 3713 * Description: <b>The measure to return measure report results for</b><br> 3714 * Type: <b>reference</b><br> 3715 * Path: <b>MeasureReport.measure</b><br> 3716 * </p> 3717 */ 3718 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam MEASURE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_MEASURE); 3719 3720/** 3721 * Constant for fluent queries to be used to add include statements. Specifies 3722 * the path value of "<b>MeasureReport:measure</b>". 3723 */ 3724 public static final ca.uhn.fhir.model.api.Include INCLUDE_MEASURE = new ca.uhn.fhir.model.api.Include("MeasureReport:measure").toLocked(); 3725 3726 /** 3727 * Search parameter: <b>patient</b> 3728 * <p> 3729 * Description: <b>The identity of a patient to search for individual measure report results for</b><br> 3730 * Type: <b>reference</b><br> 3731 * Path: <b>MeasureReport.subject.where(resolve() is Patient)</b><br> 3732 * </p> 3733 */ 3734 @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="Base FHIR compartment definition for Patient") }, target={Patient.class } ) 3735 public static final String SP_PATIENT = "patient"; 3736 /** 3737 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 3738 * <p> 3739 * Description: <b>The identity of a patient to search for individual measure report results for</b><br> 3740 * Type: <b>reference</b><br> 3741 * Path: <b>MeasureReport.subject.where(resolve() is Patient)</b><br> 3742 * </p> 3743 */ 3744 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 3745 3746/** 3747 * Constant for fluent queries to be used to add include statements. Specifies 3748 * the path value of "<b>MeasureReport:patient</b>". 3749 */ 3750 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("MeasureReport:patient").toLocked(); 3751 3752 /** 3753 * Search parameter: <b>period</b> 3754 * <p> 3755 * Description: <b>The period of the measure report</b><br> 3756 * Type: <b>date</b><br> 3757 * Path: <b>MeasureReport.period</b><br> 3758 * </p> 3759 */ 3760 @SearchParamDefinition(name="period", path="MeasureReport.period", description="The period of the measure report", type="date" ) 3761 public static final String SP_PERIOD = "period"; 3762 /** 3763 * <b>Fluent Client</b> search parameter constant for <b>period</b> 3764 * <p> 3765 * Description: <b>The period of the measure report</b><br> 3766 * Type: <b>date</b><br> 3767 * Path: <b>MeasureReport.period</b><br> 3768 * </p> 3769 */ 3770 public static final ca.uhn.fhir.rest.gclient.DateClientParam PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_PERIOD); 3771 3772 /** 3773 * Search parameter: <b>reporter</b> 3774 * <p> 3775 * Description: <b>The reporter to return measure report results for</b><br> 3776 * Type: <b>reference</b><br> 3777 * Path: <b>MeasureReport.reporter</b><br> 3778 * </p> 3779 */ 3780 @SearchParamDefinition(name="reporter", path="MeasureReport.reporter", description="The reporter to return measure report results for", type="reference", target={Group.class, Organization.class, Practitioner.class, PractitionerRole.class } ) 3781 public static final String SP_REPORTER = "reporter"; 3782 /** 3783 * <b>Fluent Client</b> search parameter constant for <b>reporter</b> 3784 * <p> 3785 * Description: <b>The reporter to return measure report results for</b><br> 3786 * Type: <b>reference</b><br> 3787 * Path: <b>MeasureReport.reporter</b><br> 3788 * </p> 3789 */ 3790 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REPORTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REPORTER); 3791 3792/** 3793 * Constant for fluent queries to be used to add include statements. Specifies 3794 * the path value of "<b>MeasureReport:reporter</b>". 3795 */ 3796 public static final ca.uhn.fhir.model.api.Include INCLUDE_REPORTER = new ca.uhn.fhir.model.api.Include("MeasureReport:reporter").toLocked(); 3797 3798 /** 3799 * Search parameter: <b>status</b> 3800 * <p> 3801 * Description: <b>The status of the measure report</b><br> 3802 * Type: <b>token</b><br> 3803 * Path: <b>MeasureReport.status</b><br> 3804 * </p> 3805 */ 3806 @SearchParamDefinition(name="status", path="MeasureReport.status", description="The status of the measure report", type="token" ) 3807 public static final String SP_STATUS = "status"; 3808 /** 3809 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3810 * <p> 3811 * Description: <b>The status of the measure report</b><br> 3812 * Type: <b>token</b><br> 3813 * Path: <b>MeasureReport.status</b><br> 3814 * </p> 3815 */ 3816 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3817 3818 /** 3819 * Search parameter: <b>subject</b> 3820 * <p> 3821 * Description: <b>The identity of a subject to search for individual measure report results for</b><br> 3822 * Type: <b>reference</b><br> 3823 * Path: <b>MeasureReport.subject</b><br> 3824 * </p> 3825 */ 3826 @SearchParamDefinition(name="subject", path="MeasureReport.subject", description="The identity of a subject to search for individual measure report results for", type="reference", target={CareTeam.class, Device.class, Group.class, HealthcareService.class, Location.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 3827 public static final String SP_SUBJECT = "subject"; 3828 /** 3829 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 3830 * <p> 3831 * Description: <b>The identity of a subject to search for individual measure report results for</b><br> 3832 * Type: <b>reference</b><br> 3833 * Path: <b>MeasureReport.subject</b><br> 3834 * </p> 3835 */ 3836 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 3837 3838/** 3839 * Constant for fluent queries to be used to add include statements. Specifies 3840 * the path value of "<b>MeasureReport:subject</b>". 3841 */ 3842 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("MeasureReport:subject").toLocked(); 3843 3844 3845} 3846