
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 Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 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(PrimitiveType<?> code) throws FHIRException { 139 if (code == null) 140 return null; 141 if (code.isEmpty()) 142 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.NULL, code); 143 String codeString = ((PrimitiveType) code).asStringValue(); 144 if (codeString == null || "".equals(codeString)) 145 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.NULL, code); 146 if ("complete".equals(codeString)) 147 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.COMPLETE, code); 148 if ("pending".equals(codeString)) 149 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.PENDING, code); 150 if ("error".equals(codeString)) 151 return new Enumeration<MeasureReportStatus>(this, MeasureReportStatus.ERROR, code); 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(PrimitiveType<?> code) throws FHIRException { 263 if (code == null) 264 return null; 265 if (code.isEmpty()) 266 return new Enumeration<MeasureReportType>(this, MeasureReportType.NULL, code); 267 String codeString = ((PrimitiveType) code).asStringValue(); 268 if (codeString == null || "".equals(codeString)) 269 return new Enumeration<MeasureReportType>(this, MeasureReportType.NULL, code); 270 if ("individual".equals(codeString)) 271 return new Enumeration<MeasureReportType>(this, MeasureReportType.INDIVIDUAL, code); 272 if ("subject-list".equals(codeString)) 273 return new Enumeration<MeasureReportType>(this, MeasureReportType.SUBJECTLIST, code); 274 if ("summary".equals(codeString)) 275 return new Enumeration<MeasureReportType>(this, MeasureReportType.SUMMARY, code); 276 if ("data-exchange".equals(codeString)) 277 return new Enumeration<MeasureReportType>(this, MeasureReportType.DATAEXCHANGE, code); 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(PrimitiveType<?> code) throws FHIRException { 367 if (code == null) 368 return null; 369 if (code.isEmpty()) 370 return new Enumeration<SubmitDataUpdateType>(this, SubmitDataUpdateType.NULL, code); 371 String codeString = ((PrimitiveType) code).asStringValue(); 372 if (codeString == null || "".equals(codeString)) 373 return new Enumeration<SubmitDataUpdateType>(this, SubmitDataUpdateType.NULL, code); 374 if ("incremental".equals(codeString)) 375 return new Enumeration<SubmitDataUpdateType>(this, SubmitDataUpdateType.INCREMENTAL, code); 376 if ("snapshot".equals(codeString)) 377 return new Enumeration<SubmitDataUpdateType>(this, SubmitDataUpdateType.SNAPSHOT, code); 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 group from the Measure that corresponds to this group in the MeasureReport resource. 396 */ 397 @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 398 @Description(shortDefinition="Pointer to specific group from Measure", formalDefinition="The group from the Measure that corresponds to this group in the MeasureReport resource." ) 399 protected StringType linkId; 400 401 /** 402 * The meaning of the population group as defined in the measure definition. 403 */ 404 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 405 @Description(shortDefinition="Meaning of the group", formalDefinition="The meaning of the population group as defined in the measure definition." ) 406 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-group-example") 407 protected CodeableConcept code; 408 409 /** 410 * Optional subject identifying the individual or individuals the report is for. 411 */ 412 @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=3, min=0, max=1, modifier=false, summary=true) 413 @Description(shortDefinition="What individual(s) the report is for", formalDefinition="Optional subject identifying the individual or individuals the report is for." ) 414 protected Reference subject; 415 416 /** 417 * The populations that make up the population group, one for each type of population appropriate for the measure. 418 */ 419 @Child(name = "population", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 420 @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." ) 421 protected List<MeasureReportGroupPopulationComponent> population; 422 423 /** 424 * 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. 425 */ 426 @Child(name = "measureScore", type = {Quantity.class, DateTimeType.class, CodeableConcept.class, Period.class, Range.class, Duration.class}, order=5, min=0, max=1, modifier=false, summary=true) 427 @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." ) 428 protected DataType measureScore; 429 430 /** 431 * When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure. 432 */ 433 @Child(name = "stratifier", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 434 @Description(shortDefinition="Stratification results", formalDefinition="When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure." ) 435 protected List<MeasureReportGroupStratifierComponent> stratifier; 436 437 private static final long serialVersionUID = 438553747L; 438 439 /** 440 * Constructor 441 */ 442 public MeasureReportGroupComponent() { 443 super(); 444 } 445 446 /** 447 * @return {@link #linkId} (The group from the Measure that corresponds to this group in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 448 */ 449 public StringType getLinkIdElement() { 450 if (this.linkId == null) 451 if (Configuration.errorOnAutoCreate()) 452 throw new Error("Attempt to auto-create MeasureReportGroupComponent.linkId"); 453 else if (Configuration.doAutoCreate()) 454 this.linkId = new StringType(); // bb 455 return this.linkId; 456 } 457 458 public boolean hasLinkIdElement() { 459 return this.linkId != null && !this.linkId.isEmpty(); 460 } 461 462 public boolean hasLinkId() { 463 return this.linkId != null && !this.linkId.isEmpty(); 464 } 465 466 /** 467 * @param value {@link #linkId} (The group from the Measure that corresponds to this group in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 468 */ 469 public MeasureReportGroupComponent setLinkIdElement(StringType value) { 470 this.linkId = value; 471 return this; 472 } 473 474 /** 475 * @return The group from the Measure that corresponds to this group in the MeasureReport resource. 476 */ 477 public String getLinkId() { 478 return this.linkId == null ? null : this.linkId.getValue(); 479 } 480 481 /** 482 * @param value The group from the Measure that corresponds to this group in the MeasureReport resource. 483 */ 484 public MeasureReportGroupComponent setLinkId(String value) { 485 if (Utilities.noString(value)) 486 this.linkId = null; 487 else { 488 if (this.linkId == null) 489 this.linkId = new StringType(); 490 this.linkId.setValue(value); 491 } 492 return this; 493 } 494 495 /** 496 * @return {@link #code} (The meaning of the population group as defined in the measure definition.) 497 */ 498 public CodeableConcept getCode() { 499 if (this.code == null) 500 if (Configuration.errorOnAutoCreate()) 501 throw new Error("Attempt to auto-create MeasureReportGroupComponent.code"); 502 else if (Configuration.doAutoCreate()) 503 this.code = new CodeableConcept(); // cc 504 return this.code; 505 } 506 507 public boolean hasCode() { 508 return this.code != null && !this.code.isEmpty(); 509 } 510 511 /** 512 * @param value {@link #code} (The meaning of the population group as defined in the measure definition.) 513 */ 514 public MeasureReportGroupComponent setCode(CodeableConcept value) { 515 this.code = value; 516 return this; 517 } 518 519 /** 520 * @return {@link #subject} (Optional subject identifying the individual or individuals the report is for.) 521 */ 522 public Reference getSubject() { 523 if (this.subject == null) 524 if (Configuration.errorOnAutoCreate()) 525 throw new Error("Attempt to auto-create MeasureReportGroupComponent.subject"); 526 else if (Configuration.doAutoCreate()) 527 this.subject = new Reference(); // cc 528 return this.subject; 529 } 530 531 public boolean hasSubject() { 532 return this.subject != null && !this.subject.isEmpty(); 533 } 534 535 /** 536 * @param value {@link #subject} (Optional subject identifying the individual or individuals the report is for.) 537 */ 538 public MeasureReportGroupComponent setSubject(Reference value) { 539 this.subject = value; 540 return this; 541 } 542 543 /** 544 * @return {@link #population} (The populations that make up the population group, one for each type of population appropriate for the measure.) 545 */ 546 public List<MeasureReportGroupPopulationComponent> getPopulation() { 547 if (this.population == null) 548 this.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 549 return this.population; 550 } 551 552 /** 553 * @return Returns a reference to <code>this</code> for easy method chaining 554 */ 555 public MeasureReportGroupComponent setPopulation(List<MeasureReportGroupPopulationComponent> thePopulation) { 556 this.population = thePopulation; 557 return this; 558 } 559 560 public boolean hasPopulation() { 561 if (this.population == null) 562 return false; 563 for (MeasureReportGroupPopulationComponent item : this.population) 564 if (!item.isEmpty()) 565 return true; 566 return false; 567 } 568 569 public MeasureReportGroupPopulationComponent addPopulation() { //3 570 MeasureReportGroupPopulationComponent t = new MeasureReportGroupPopulationComponent(); 571 if (this.population == null) 572 this.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 573 this.population.add(t); 574 return t; 575 } 576 577 public MeasureReportGroupComponent addPopulation(MeasureReportGroupPopulationComponent t) { //3 578 if (t == null) 579 return this; 580 if (this.population == null) 581 this.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 582 this.population.add(t); 583 return this; 584 } 585 586 /** 587 * @return The first repetition of repeating field {@link #population}, creating it if it does not already exist {3} 588 */ 589 public MeasureReportGroupPopulationComponent getPopulationFirstRep() { 590 if (getPopulation().isEmpty()) { 591 addPopulation(); 592 } 593 return getPopulation().get(0); 594 } 595 596 /** 597 * @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.) 598 */ 599 public DataType getMeasureScore() { 600 return this.measureScore; 601 } 602 603 /** 604 * @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.) 605 */ 606 public Quantity getMeasureScoreQuantity() throws FHIRException { 607 if (this.measureScore == null) 608 this.measureScore = new Quantity(); 609 if (!(this.measureScore instanceof Quantity)) 610 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 611 return (Quantity) this.measureScore; 612 } 613 614 public boolean hasMeasureScoreQuantity() { 615 return this != null && this.measureScore instanceof Quantity; 616 } 617 618 /** 619 * @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.) 620 */ 621 public DateTimeType getMeasureScoreDateTimeType() throws FHIRException { 622 if (this.measureScore == null) 623 this.measureScore = new DateTimeType(); 624 if (!(this.measureScore instanceof DateTimeType)) 625 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 626 return (DateTimeType) this.measureScore; 627 } 628 629 public boolean hasMeasureScoreDateTimeType() { 630 return this != null && this.measureScore instanceof DateTimeType; 631 } 632 633 /** 634 * @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.) 635 */ 636 public CodeableConcept getMeasureScoreCodeableConcept() throws FHIRException { 637 if (this.measureScore == null) 638 this.measureScore = new CodeableConcept(); 639 if (!(this.measureScore instanceof CodeableConcept)) 640 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 641 return (CodeableConcept) this.measureScore; 642 } 643 644 public boolean hasMeasureScoreCodeableConcept() { 645 return this != null && this.measureScore instanceof CodeableConcept; 646 } 647 648 /** 649 * @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.) 650 */ 651 public Period getMeasureScorePeriod() throws FHIRException { 652 if (this.measureScore == null) 653 this.measureScore = new Period(); 654 if (!(this.measureScore instanceof Period)) 655 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 656 return (Period) this.measureScore; 657 } 658 659 public boolean hasMeasureScorePeriod() { 660 return this != null && this.measureScore instanceof Period; 661 } 662 663 /** 664 * @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.) 665 */ 666 public Range getMeasureScoreRange() throws FHIRException { 667 if (this.measureScore == null) 668 this.measureScore = new Range(); 669 if (!(this.measureScore instanceof Range)) 670 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 671 return (Range) this.measureScore; 672 } 673 674 public boolean hasMeasureScoreRange() { 675 return this != null && this.measureScore instanceof Range; 676 } 677 678 /** 679 * @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.) 680 */ 681 public Duration getMeasureScoreDuration() throws FHIRException { 682 if (this.measureScore == null) 683 this.measureScore = new Duration(); 684 if (!(this.measureScore instanceof Duration)) 685 throw new FHIRException("Type mismatch: the type Duration was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 686 return (Duration) this.measureScore; 687 } 688 689 public boolean hasMeasureScoreDuration() { 690 return this != null && this.measureScore instanceof Duration; 691 } 692 693 public boolean hasMeasureScore() { 694 return this.measureScore != null && !this.measureScore.isEmpty(); 695 } 696 697 /** 698 * @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.) 699 */ 700 public MeasureReportGroupComponent setMeasureScore(DataType value) { 701 if (value != null && !(value instanceof Quantity || value instanceof DateTimeType || value instanceof CodeableConcept || value instanceof Period || value instanceof Range || value instanceof Duration)) 702 throw new FHIRException("Not the right type for MeasureReport.group.measureScore[x]: "+value.fhirType()); 703 this.measureScore = value; 704 return this; 705 } 706 707 /** 708 * @return {@link #stratifier} (When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure.) 709 */ 710 public List<MeasureReportGroupStratifierComponent> getStratifier() { 711 if (this.stratifier == null) 712 this.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 713 return this.stratifier; 714 } 715 716 /** 717 * @return Returns a reference to <code>this</code> for easy method chaining 718 */ 719 public MeasureReportGroupComponent setStratifier(List<MeasureReportGroupStratifierComponent> theStratifier) { 720 this.stratifier = theStratifier; 721 return this; 722 } 723 724 public boolean hasStratifier() { 725 if (this.stratifier == null) 726 return false; 727 for (MeasureReportGroupStratifierComponent item : this.stratifier) 728 if (!item.isEmpty()) 729 return true; 730 return false; 731 } 732 733 public MeasureReportGroupStratifierComponent addStratifier() { //3 734 MeasureReportGroupStratifierComponent t = new MeasureReportGroupStratifierComponent(); 735 if (this.stratifier == null) 736 this.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 737 this.stratifier.add(t); 738 return t; 739 } 740 741 public MeasureReportGroupComponent addStratifier(MeasureReportGroupStratifierComponent t) { //3 742 if (t == null) 743 return this; 744 if (this.stratifier == null) 745 this.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 746 this.stratifier.add(t); 747 return this; 748 } 749 750 /** 751 * @return The first repetition of repeating field {@link #stratifier}, creating it if it does not already exist {3} 752 */ 753 public MeasureReportGroupStratifierComponent getStratifierFirstRep() { 754 if (getStratifier().isEmpty()) { 755 addStratifier(); 756 } 757 return getStratifier().get(0); 758 } 759 760 protected void listChildren(List<Property> children) { 761 super.listChildren(children); 762 children.add(new Property("linkId", "string", "The group from the Measure that corresponds to this group in the MeasureReport resource.", 0, 1, linkId)); 763 children.add(new Property("code", "CodeableConcept", "The meaning of the population group as defined in the measure definition.", 0, 1, code)); 764 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)); 765 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)); 766 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)); 767 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)); 768 } 769 770 @Override 771 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 772 switch (_hash) { 773 case -1102667083: /*linkId*/ return new Property("linkId", "string", "The group from the Measure that corresponds to this group in the MeasureReport resource.", 0, 1, linkId); 774 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The meaning of the population group as defined in the measure definition.", 0, 1, code); 775 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); 776 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); 777 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); 778 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); 779 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); 780 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); 781 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); 782 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); 783 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); 784 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); 785 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); 786 default: return super.getNamedProperty(_hash, _name, _checkValid); 787 } 788 789 } 790 791 @Override 792 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 793 switch (hash) { 794 case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType 795 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 796 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 797 case -2023558323: /*population*/ return this.population == null ? new Base[0] : this.population.toArray(new Base[this.population.size()]); // MeasureReportGroupPopulationComponent 798 case -386313260: /*measureScore*/ return this.measureScore == null ? new Base[0] : new Base[] {this.measureScore}; // DataType 799 case 90983669: /*stratifier*/ return this.stratifier == null ? new Base[0] : this.stratifier.toArray(new Base[this.stratifier.size()]); // MeasureReportGroupStratifierComponent 800 default: return super.getProperty(hash, name, checkValid); 801 } 802 803 } 804 805 @Override 806 public Base setProperty(int hash, String name, Base value) throws FHIRException { 807 switch (hash) { 808 case -1102667083: // linkId 809 this.linkId = TypeConvertor.castToString(value); // StringType 810 return value; 811 case 3059181: // code 812 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 813 return value; 814 case -1867885268: // subject 815 this.subject = TypeConvertor.castToReference(value); // Reference 816 return value; 817 case -2023558323: // population 818 this.getPopulation().add((MeasureReportGroupPopulationComponent) value); // MeasureReportGroupPopulationComponent 819 return value; 820 case -386313260: // measureScore 821 this.measureScore = TypeConvertor.castToType(value); // DataType 822 return value; 823 case 90983669: // stratifier 824 this.getStratifier().add((MeasureReportGroupStratifierComponent) value); // MeasureReportGroupStratifierComponent 825 return value; 826 default: return super.setProperty(hash, name, value); 827 } 828 829 } 830 831 @Override 832 public Base setProperty(String name, Base value) throws FHIRException { 833 if (name.equals("linkId")) { 834 this.linkId = TypeConvertor.castToString(value); // StringType 835 } else if (name.equals("code")) { 836 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 837 } else if (name.equals("subject")) { 838 this.subject = TypeConvertor.castToReference(value); // Reference 839 } else if (name.equals("population")) { 840 this.getPopulation().add((MeasureReportGroupPopulationComponent) value); 841 } else if (name.equals("measureScore[x]")) { 842 this.measureScore = TypeConvertor.castToType(value); // DataType 843 } else if (name.equals("stratifier")) { 844 this.getStratifier().add((MeasureReportGroupStratifierComponent) value); 845 } else 846 return super.setProperty(name, value); 847 return value; 848 } 849 850 @Override 851 public Base makeProperty(int hash, String name) throws FHIRException { 852 switch (hash) { 853 case -1102667083: return getLinkIdElement(); 854 case 3059181: return getCode(); 855 case -1867885268: return getSubject(); 856 case -2023558323: return addPopulation(); 857 case 1854115884: return getMeasureScore(); 858 case -386313260: return getMeasureScore(); 859 case 90983669: return addStratifier(); 860 default: return super.makeProperty(hash, name); 861 } 862 863 } 864 865 @Override 866 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 867 switch (hash) { 868 case -1102667083: /*linkId*/ return new String[] {"string"}; 869 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 870 case -1867885268: /*subject*/ return new String[] {"Reference"}; 871 case -2023558323: /*population*/ return new String[] {}; 872 case -386313260: /*measureScore*/ return new String[] {"Quantity", "dateTime", "CodeableConcept", "Period", "Range", "Duration"}; 873 case 90983669: /*stratifier*/ return new String[] {}; 874 default: return super.getTypesForProperty(hash, name); 875 } 876 877 } 878 879 @Override 880 public Base addChild(String name) throws FHIRException { 881 if (name.equals("linkId")) { 882 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.group.linkId"); 883 } 884 else if (name.equals("code")) { 885 this.code = new CodeableConcept(); 886 return this.code; 887 } 888 else if (name.equals("subject")) { 889 this.subject = new Reference(); 890 return this.subject; 891 } 892 else if (name.equals("population")) { 893 return addPopulation(); 894 } 895 else if (name.equals("measureScoreQuantity")) { 896 this.measureScore = new Quantity(); 897 return this.measureScore; 898 } 899 else if (name.equals("measureScoreDateTime")) { 900 this.measureScore = new DateTimeType(); 901 return this.measureScore; 902 } 903 else if (name.equals("measureScoreCodeableConcept")) { 904 this.measureScore = new CodeableConcept(); 905 return this.measureScore; 906 } 907 else if (name.equals("measureScorePeriod")) { 908 this.measureScore = new Period(); 909 return this.measureScore; 910 } 911 else if (name.equals("measureScoreRange")) { 912 this.measureScore = new Range(); 913 return this.measureScore; 914 } 915 else if (name.equals("measureScoreDuration")) { 916 this.measureScore = new Duration(); 917 return this.measureScore; 918 } 919 else if (name.equals("stratifier")) { 920 return addStratifier(); 921 } 922 else 923 return super.addChild(name); 924 } 925 926 public MeasureReportGroupComponent copy() { 927 MeasureReportGroupComponent dst = new MeasureReportGroupComponent(); 928 copyValues(dst); 929 return dst; 930 } 931 932 public void copyValues(MeasureReportGroupComponent dst) { 933 super.copyValues(dst); 934 dst.linkId = linkId == null ? null : linkId.copy(); 935 dst.code = code == null ? null : code.copy(); 936 dst.subject = subject == null ? null : subject.copy(); 937 if (population != null) { 938 dst.population = new ArrayList<MeasureReportGroupPopulationComponent>(); 939 for (MeasureReportGroupPopulationComponent i : population) 940 dst.population.add(i.copy()); 941 }; 942 dst.measureScore = measureScore == null ? null : measureScore.copy(); 943 if (stratifier != null) { 944 dst.stratifier = new ArrayList<MeasureReportGroupStratifierComponent>(); 945 for (MeasureReportGroupStratifierComponent i : stratifier) 946 dst.stratifier.add(i.copy()); 947 }; 948 } 949 950 @Override 951 public boolean equalsDeep(Base other_) { 952 if (!super.equalsDeep(other_)) 953 return false; 954 if (!(other_ instanceof MeasureReportGroupComponent)) 955 return false; 956 MeasureReportGroupComponent o = (MeasureReportGroupComponent) other_; 957 return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true) 958 && compareDeep(population, o.population, true) && compareDeep(measureScore, o.measureScore, true) 959 && compareDeep(stratifier, o.stratifier, true); 960 } 961 962 @Override 963 public boolean equalsShallow(Base other_) { 964 if (!super.equalsShallow(other_)) 965 return false; 966 if (!(other_ instanceof MeasureReportGroupComponent)) 967 return false; 968 MeasureReportGroupComponent o = (MeasureReportGroupComponent) other_; 969 return compareValues(linkId, o.linkId, true); 970 } 971 972 public boolean isEmpty() { 973 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, subject, population 974 , measureScore, stratifier); 975 } 976 977 public String fhirType() { 978 return "MeasureReport.group"; 979 980 } 981 982 } 983 984 @Block() 985 public static class MeasureReportGroupPopulationComponent extends BackboneElement implements IBaseBackboneElement { 986 /** 987 * The population from the Measure that corresponds to this population in the MeasureReport resource. 988 */ 989 @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 990 @Description(shortDefinition="Pointer to specific population from Measure", formalDefinition="The population from the Measure that corresponds to this population in the MeasureReport resource." ) 991 protected StringType linkId; 992 993 /** 994 * The type of the population. 995 */ 996 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 997 @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." ) 998 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-population") 999 protected CodeableConcept code; 1000 1001 /** 1002 * The number of members of the population. 1003 */ 1004 @Child(name = "count", type = {IntegerType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1005 @Description(shortDefinition="Size of the population", formalDefinition="The number of members of the population." ) 1006 protected IntegerType count; 1007 1008 /** 1009 * This element refers to a List of individual level MeasureReport resources, one for each subject in this population. 1010 */ 1011 @Child(name = "subjectResults", type = {ListResource.class}, order=4, min=0, max=1, modifier=false, summary=false) 1012 @Description(shortDefinition="For subject-list reports, the subject results in this population", formalDefinition="This element refers to a List of individual level MeasureReport resources, one for each subject in this population." ) 1013 protected Reference subjectResults; 1014 1015 /** 1016 * A reference to an individual level MeasureReport resource for a member of the population. 1017 */ 1018 @Child(name = "subjectReport", type = {MeasureReport.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1019 @Description(shortDefinition="For subject-list reports, a subject result in this population", formalDefinition="A reference to an individual level MeasureReport resource for a member of the population." ) 1020 protected List<Reference> subjectReport; 1021 1022 /** 1023 * Optional Group identifying the individuals that make up the population. 1024 */ 1025 @Child(name = "subjects", type = {Group.class}, order=6, min=0, max=1, modifier=false, summary=false) 1026 @Description(shortDefinition="What individual(s) in the population", formalDefinition="Optional Group identifying the individuals that make up the population." ) 1027 protected Reference subjects; 1028 1029 private static final long serialVersionUID = -203678073L; 1030 1031 /** 1032 * Constructor 1033 */ 1034 public MeasureReportGroupPopulationComponent() { 1035 super(); 1036 } 1037 1038 /** 1039 * @return {@link #linkId} (The population from the Measure that corresponds to this population in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 1040 */ 1041 public StringType getLinkIdElement() { 1042 if (this.linkId == null) 1043 if (Configuration.errorOnAutoCreate()) 1044 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.linkId"); 1045 else if (Configuration.doAutoCreate()) 1046 this.linkId = new StringType(); // bb 1047 return this.linkId; 1048 } 1049 1050 public boolean hasLinkIdElement() { 1051 return this.linkId != null && !this.linkId.isEmpty(); 1052 } 1053 1054 public boolean hasLinkId() { 1055 return this.linkId != null && !this.linkId.isEmpty(); 1056 } 1057 1058 /** 1059 * @param value {@link #linkId} (The population from the Measure that corresponds to this population in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 1060 */ 1061 public MeasureReportGroupPopulationComponent setLinkIdElement(StringType value) { 1062 this.linkId = value; 1063 return this; 1064 } 1065 1066 /** 1067 * @return The population from the Measure that corresponds to this population in the MeasureReport resource. 1068 */ 1069 public String getLinkId() { 1070 return this.linkId == null ? null : this.linkId.getValue(); 1071 } 1072 1073 /** 1074 * @param value The population from the Measure that corresponds to this population in the MeasureReport resource. 1075 */ 1076 public MeasureReportGroupPopulationComponent setLinkId(String value) { 1077 if (Utilities.noString(value)) 1078 this.linkId = null; 1079 else { 1080 if (this.linkId == null) 1081 this.linkId = new StringType(); 1082 this.linkId.setValue(value); 1083 } 1084 return this; 1085 } 1086 1087 /** 1088 * @return {@link #code} (The type of the population.) 1089 */ 1090 public CodeableConcept getCode() { 1091 if (this.code == null) 1092 if (Configuration.errorOnAutoCreate()) 1093 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.code"); 1094 else if (Configuration.doAutoCreate()) 1095 this.code = new CodeableConcept(); // cc 1096 return this.code; 1097 } 1098 1099 public boolean hasCode() { 1100 return this.code != null && !this.code.isEmpty(); 1101 } 1102 1103 /** 1104 * @param value {@link #code} (The type of the population.) 1105 */ 1106 public MeasureReportGroupPopulationComponent setCode(CodeableConcept value) { 1107 this.code = value; 1108 return this; 1109 } 1110 1111 /** 1112 * @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 1113 */ 1114 public IntegerType getCountElement() { 1115 if (this.count == null) 1116 if (Configuration.errorOnAutoCreate()) 1117 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.count"); 1118 else if (Configuration.doAutoCreate()) 1119 this.count = new IntegerType(); // bb 1120 return this.count; 1121 } 1122 1123 public boolean hasCountElement() { 1124 return this.count != null && !this.count.isEmpty(); 1125 } 1126 1127 public boolean hasCount() { 1128 return this.count != null && !this.count.isEmpty(); 1129 } 1130 1131 /** 1132 * @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 1133 */ 1134 public MeasureReportGroupPopulationComponent setCountElement(IntegerType value) { 1135 this.count = value; 1136 return this; 1137 } 1138 1139 /** 1140 * @return The number of members of the population. 1141 */ 1142 public int getCount() { 1143 return this.count == null || this.count.isEmpty() ? 0 : this.count.getValue(); 1144 } 1145 1146 /** 1147 * @param value The number of members of the population. 1148 */ 1149 public MeasureReportGroupPopulationComponent setCount(int value) { 1150 if (this.count == null) 1151 this.count = new IntegerType(); 1152 this.count.setValue(value); 1153 return this; 1154 } 1155 1156 /** 1157 * @return {@link #subjectResults} (This element refers to a List of individual level MeasureReport resources, one for each subject in this population.) 1158 */ 1159 public Reference getSubjectResults() { 1160 if (this.subjectResults == null) 1161 if (Configuration.errorOnAutoCreate()) 1162 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.subjectResults"); 1163 else if (Configuration.doAutoCreate()) 1164 this.subjectResults = new Reference(); // cc 1165 return this.subjectResults; 1166 } 1167 1168 public boolean hasSubjectResults() { 1169 return this.subjectResults != null && !this.subjectResults.isEmpty(); 1170 } 1171 1172 /** 1173 * @param value {@link #subjectResults} (This element refers to a List of individual level MeasureReport resources, one for each subject in this population.) 1174 */ 1175 public MeasureReportGroupPopulationComponent setSubjectResults(Reference value) { 1176 this.subjectResults = value; 1177 return this; 1178 } 1179 1180 /** 1181 * @return {@link #subjectReport} (A reference to an individual level MeasureReport resource for a member of the population.) 1182 */ 1183 public List<Reference> getSubjectReport() { 1184 if (this.subjectReport == null) 1185 this.subjectReport = new ArrayList<Reference>(); 1186 return this.subjectReport; 1187 } 1188 1189 /** 1190 * @return Returns a reference to <code>this</code> for easy method chaining 1191 */ 1192 public MeasureReportGroupPopulationComponent setSubjectReport(List<Reference> theSubjectReport) { 1193 this.subjectReport = theSubjectReport; 1194 return this; 1195 } 1196 1197 public boolean hasSubjectReport() { 1198 if (this.subjectReport == null) 1199 return false; 1200 for (Reference item : this.subjectReport) 1201 if (!item.isEmpty()) 1202 return true; 1203 return false; 1204 } 1205 1206 public Reference addSubjectReport() { //3 1207 Reference t = new Reference(); 1208 if (this.subjectReport == null) 1209 this.subjectReport = new ArrayList<Reference>(); 1210 this.subjectReport.add(t); 1211 return t; 1212 } 1213 1214 public MeasureReportGroupPopulationComponent addSubjectReport(Reference t) { //3 1215 if (t == null) 1216 return this; 1217 if (this.subjectReport == null) 1218 this.subjectReport = new ArrayList<Reference>(); 1219 this.subjectReport.add(t); 1220 return this; 1221 } 1222 1223 /** 1224 * @return The first repetition of repeating field {@link #subjectReport}, creating it if it does not already exist {3} 1225 */ 1226 public Reference getSubjectReportFirstRep() { 1227 if (getSubjectReport().isEmpty()) { 1228 addSubjectReport(); 1229 } 1230 return getSubjectReport().get(0); 1231 } 1232 1233 /** 1234 * @return {@link #subjects} (Optional Group identifying the individuals that make up the population.) 1235 */ 1236 public Reference getSubjects() { 1237 if (this.subjects == null) 1238 if (Configuration.errorOnAutoCreate()) 1239 throw new Error("Attempt to auto-create MeasureReportGroupPopulationComponent.subjects"); 1240 else if (Configuration.doAutoCreate()) 1241 this.subjects = new Reference(); // cc 1242 return this.subjects; 1243 } 1244 1245 public boolean hasSubjects() { 1246 return this.subjects != null && !this.subjects.isEmpty(); 1247 } 1248 1249 /** 1250 * @param value {@link #subjects} (Optional Group identifying the individuals that make up the population.) 1251 */ 1252 public MeasureReportGroupPopulationComponent setSubjects(Reference value) { 1253 this.subjects = value; 1254 return this; 1255 } 1256 1257 protected void listChildren(List<Property> children) { 1258 super.listChildren(children); 1259 children.add(new Property("linkId", "string", "The population from the Measure that corresponds to this population in the MeasureReport resource.", 0, 1, linkId)); 1260 children.add(new Property("code", "CodeableConcept", "The type of the population.", 0, 1, code)); 1261 children.add(new Property("count", "integer", "The number of members of the population.", 0, 1, count)); 1262 children.add(new Property("subjectResults", "Reference(List)", "This element refers to a List of individual level MeasureReport resources, one for each subject in this population.", 0, 1, subjectResults)); 1263 children.add(new Property("subjectReport", "Reference(MeasureReport)", "A reference to an individual level MeasureReport resource for a member of the population.", 0, java.lang.Integer.MAX_VALUE, subjectReport)); 1264 children.add(new Property("subjects", "Reference(Group)", "Optional Group identifying the individuals that make up the population.", 0, 1, subjects)); 1265 } 1266 1267 @Override 1268 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1269 switch (_hash) { 1270 case -1102667083: /*linkId*/ return new Property("linkId", "string", "The population from the Measure that corresponds to this population in the MeasureReport resource.", 0, 1, linkId); 1271 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The type of the population.", 0, 1, code); 1272 case 94851343: /*count*/ return new Property("count", "integer", "The number of members of the population.", 0, 1, count); 1273 case 2136184106: /*subjectResults*/ return new Property("subjectResults", "Reference(List)", "This element refers to a List of individual level MeasureReport resources, one for each subject in this population.", 0, 1, subjectResults); 1274 case 68814208: /*subjectReport*/ return new Property("subjectReport", "Reference(MeasureReport)", "A reference to an individual level MeasureReport resource for a member of the population.", 0, java.lang.Integer.MAX_VALUE, subjectReport); 1275 case -2069868345: /*subjects*/ return new Property("subjects", "Reference(Group)", "Optional Group identifying the individuals that make up the population.", 0, 1, subjects); 1276 default: return super.getNamedProperty(_hash, _name, _checkValid); 1277 } 1278 1279 } 1280 1281 @Override 1282 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1283 switch (hash) { 1284 case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType 1285 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 1286 case 94851343: /*count*/ return this.count == null ? new Base[0] : new Base[] {this.count}; // IntegerType 1287 case 2136184106: /*subjectResults*/ return this.subjectResults == null ? new Base[0] : new Base[] {this.subjectResults}; // Reference 1288 case 68814208: /*subjectReport*/ return this.subjectReport == null ? new Base[0] : this.subjectReport.toArray(new Base[this.subjectReport.size()]); // Reference 1289 case -2069868345: /*subjects*/ return this.subjects == null ? new Base[0] : new Base[] {this.subjects}; // Reference 1290 default: return super.getProperty(hash, name, checkValid); 1291 } 1292 1293 } 1294 1295 @Override 1296 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1297 switch (hash) { 1298 case -1102667083: // linkId 1299 this.linkId = TypeConvertor.castToString(value); // StringType 1300 return value; 1301 case 3059181: // code 1302 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1303 return value; 1304 case 94851343: // count 1305 this.count = TypeConvertor.castToInteger(value); // IntegerType 1306 return value; 1307 case 2136184106: // subjectResults 1308 this.subjectResults = TypeConvertor.castToReference(value); // Reference 1309 return value; 1310 case 68814208: // subjectReport 1311 this.getSubjectReport().add(TypeConvertor.castToReference(value)); // Reference 1312 return value; 1313 case -2069868345: // subjects 1314 this.subjects = TypeConvertor.castToReference(value); // Reference 1315 return value; 1316 default: return super.setProperty(hash, name, value); 1317 } 1318 1319 } 1320 1321 @Override 1322 public Base setProperty(String name, Base value) throws FHIRException { 1323 if (name.equals("linkId")) { 1324 this.linkId = TypeConvertor.castToString(value); // StringType 1325 } else if (name.equals("code")) { 1326 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1327 } else if (name.equals("count")) { 1328 this.count = TypeConvertor.castToInteger(value); // IntegerType 1329 } else if (name.equals("subjectResults")) { 1330 this.subjectResults = TypeConvertor.castToReference(value); // Reference 1331 } else if (name.equals("subjectReport")) { 1332 this.getSubjectReport().add(TypeConvertor.castToReference(value)); 1333 } else if (name.equals("subjects")) { 1334 this.subjects = TypeConvertor.castToReference(value); // Reference 1335 } else 1336 return super.setProperty(name, value); 1337 return value; 1338 } 1339 1340 @Override 1341 public Base makeProperty(int hash, String name) throws FHIRException { 1342 switch (hash) { 1343 case -1102667083: return getLinkIdElement(); 1344 case 3059181: return getCode(); 1345 case 94851343: return getCountElement(); 1346 case 2136184106: return getSubjectResults(); 1347 case 68814208: return addSubjectReport(); 1348 case -2069868345: return getSubjects(); 1349 default: return super.makeProperty(hash, name); 1350 } 1351 1352 } 1353 1354 @Override 1355 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1356 switch (hash) { 1357 case -1102667083: /*linkId*/ return new String[] {"string"}; 1358 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1359 case 94851343: /*count*/ return new String[] {"integer"}; 1360 case 2136184106: /*subjectResults*/ return new String[] {"Reference"}; 1361 case 68814208: /*subjectReport*/ return new String[] {"Reference"}; 1362 case -2069868345: /*subjects*/ return new String[] {"Reference"}; 1363 default: return super.getTypesForProperty(hash, name); 1364 } 1365 1366 } 1367 1368 @Override 1369 public Base addChild(String name) throws FHIRException { 1370 if (name.equals("linkId")) { 1371 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.group.population.linkId"); 1372 } 1373 else if (name.equals("code")) { 1374 this.code = new CodeableConcept(); 1375 return this.code; 1376 } 1377 else if (name.equals("count")) { 1378 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.group.population.count"); 1379 } 1380 else if (name.equals("subjectResults")) { 1381 this.subjectResults = new Reference(); 1382 return this.subjectResults; 1383 } 1384 else if (name.equals("subjectReport")) { 1385 return addSubjectReport(); 1386 } 1387 else if (name.equals("subjects")) { 1388 this.subjects = new Reference(); 1389 return this.subjects; 1390 } 1391 else 1392 return super.addChild(name); 1393 } 1394 1395 public MeasureReportGroupPopulationComponent copy() { 1396 MeasureReportGroupPopulationComponent dst = new MeasureReportGroupPopulationComponent(); 1397 copyValues(dst); 1398 return dst; 1399 } 1400 1401 public void copyValues(MeasureReportGroupPopulationComponent dst) { 1402 super.copyValues(dst); 1403 dst.linkId = linkId == null ? null : linkId.copy(); 1404 dst.code = code == null ? null : code.copy(); 1405 dst.count = count == null ? null : count.copy(); 1406 dst.subjectResults = subjectResults == null ? null : subjectResults.copy(); 1407 if (subjectReport != null) { 1408 dst.subjectReport = new ArrayList<Reference>(); 1409 for (Reference i : subjectReport) 1410 dst.subjectReport.add(i.copy()); 1411 }; 1412 dst.subjects = subjects == null ? null : subjects.copy(); 1413 } 1414 1415 @Override 1416 public boolean equalsDeep(Base other_) { 1417 if (!super.equalsDeep(other_)) 1418 return false; 1419 if (!(other_ instanceof MeasureReportGroupPopulationComponent)) 1420 return false; 1421 MeasureReportGroupPopulationComponent o = (MeasureReportGroupPopulationComponent) other_; 1422 return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(count, o.count, true) 1423 && compareDeep(subjectResults, o.subjectResults, true) && compareDeep(subjectReport, o.subjectReport, true) 1424 && compareDeep(subjects, o.subjects, true); 1425 } 1426 1427 @Override 1428 public boolean equalsShallow(Base other_) { 1429 if (!super.equalsShallow(other_)) 1430 return false; 1431 if (!(other_ instanceof MeasureReportGroupPopulationComponent)) 1432 return false; 1433 MeasureReportGroupPopulationComponent o = (MeasureReportGroupPopulationComponent) other_; 1434 return compareValues(linkId, o.linkId, true) && compareValues(count, o.count, true); 1435 } 1436 1437 public boolean isEmpty() { 1438 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, count, subjectResults 1439 , subjectReport, subjects); 1440 } 1441 1442 public String fhirType() { 1443 return "MeasureReport.group.population"; 1444 1445 } 1446 1447 } 1448 1449 @Block() 1450 public static class MeasureReportGroupStratifierComponent extends BackboneElement implements IBaseBackboneElement { 1451 /** 1452 * The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource. 1453 */ 1454 @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1455 @Description(shortDefinition="Pointer to specific stratifier from Measure", formalDefinition="The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource." ) 1456 protected StringType linkId; 1457 1458 /** 1459 * The meaning of this stratifier, as defined in the measure definition. 1460 */ 1461 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 1462 @Description(shortDefinition="What stratifier of the group", formalDefinition="The meaning of this stratifier, as defined in the measure definition." ) 1463 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-stratifier-example") 1464 protected CodeableConcept code; 1465 1466 /** 1467 * 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. 1468 */ 1469 @Child(name = "stratum", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1470 @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." ) 1471 protected List<StratifierGroupComponent> stratum; 1472 1473 private static final long serialVersionUID = 1021076195L; 1474 1475 /** 1476 * Constructor 1477 */ 1478 public MeasureReportGroupStratifierComponent() { 1479 super(); 1480 } 1481 1482 /** 1483 * @return {@link #linkId} (The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 1484 */ 1485 public StringType getLinkIdElement() { 1486 if (this.linkId == null) 1487 if (Configuration.errorOnAutoCreate()) 1488 throw new Error("Attempt to auto-create MeasureReportGroupStratifierComponent.linkId"); 1489 else if (Configuration.doAutoCreate()) 1490 this.linkId = new StringType(); // bb 1491 return this.linkId; 1492 } 1493 1494 public boolean hasLinkIdElement() { 1495 return this.linkId != null && !this.linkId.isEmpty(); 1496 } 1497 1498 public boolean hasLinkId() { 1499 return this.linkId != null && !this.linkId.isEmpty(); 1500 } 1501 1502 /** 1503 * @param value {@link #linkId} (The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 1504 */ 1505 public MeasureReportGroupStratifierComponent setLinkIdElement(StringType value) { 1506 this.linkId = value; 1507 return this; 1508 } 1509 1510 /** 1511 * @return The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource. 1512 */ 1513 public String getLinkId() { 1514 return this.linkId == null ? null : this.linkId.getValue(); 1515 } 1516 1517 /** 1518 * @param value The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource. 1519 */ 1520 public MeasureReportGroupStratifierComponent setLinkId(String value) { 1521 if (Utilities.noString(value)) 1522 this.linkId = null; 1523 else { 1524 if (this.linkId == null) 1525 this.linkId = new StringType(); 1526 this.linkId.setValue(value); 1527 } 1528 return this; 1529 } 1530 1531 /** 1532 * @return {@link #code} (The meaning of this stratifier, as defined in the measure definition.) 1533 */ 1534 public CodeableConcept getCode() { 1535 if (this.code == null) 1536 if (Configuration.errorOnAutoCreate()) 1537 throw new Error("Attempt to auto-create MeasureReportGroupStratifierComponent.code"); 1538 else if (Configuration.doAutoCreate()) 1539 this.code = new CodeableConcept(); // cc 1540 return this.code; 1541 } 1542 1543 public boolean hasCode() { 1544 return this.code != null && !this.code.isEmpty(); 1545 } 1546 1547 /** 1548 * @param value {@link #code} (The meaning of this stratifier, as defined in the measure definition.) 1549 */ 1550 public MeasureReportGroupStratifierComponent setCode(CodeableConcept value) { 1551 this.code = value; 1552 return this; 1553 } 1554 1555 /** 1556 * @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.) 1557 */ 1558 public List<StratifierGroupComponent> getStratum() { 1559 if (this.stratum == null) 1560 this.stratum = new ArrayList<StratifierGroupComponent>(); 1561 return this.stratum; 1562 } 1563 1564 /** 1565 * @return Returns a reference to <code>this</code> for easy method chaining 1566 */ 1567 public MeasureReportGroupStratifierComponent setStratum(List<StratifierGroupComponent> theStratum) { 1568 this.stratum = theStratum; 1569 return this; 1570 } 1571 1572 public boolean hasStratum() { 1573 if (this.stratum == null) 1574 return false; 1575 for (StratifierGroupComponent item : this.stratum) 1576 if (!item.isEmpty()) 1577 return true; 1578 return false; 1579 } 1580 1581 public StratifierGroupComponent addStratum() { //3 1582 StratifierGroupComponent t = new StratifierGroupComponent(); 1583 if (this.stratum == null) 1584 this.stratum = new ArrayList<StratifierGroupComponent>(); 1585 this.stratum.add(t); 1586 return t; 1587 } 1588 1589 public MeasureReportGroupStratifierComponent addStratum(StratifierGroupComponent t) { //3 1590 if (t == null) 1591 return this; 1592 if (this.stratum == null) 1593 this.stratum = new ArrayList<StratifierGroupComponent>(); 1594 this.stratum.add(t); 1595 return this; 1596 } 1597 1598 /** 1599 * @return The first repetition of repeating field {@link #stratum}, creating it if it does not already exist {3} 1600 */ 1601 public StratifierGroupComponent getStratumFirstRep() { 1602 if (getStratum().isEmpty()) { 1603 addStratum(); 1604 } 1605 return getStratum().get(0); 1606 } 1607 1608 protected void listChildren(List<Property> children) { 1609 super.listChildren(children); 1610 children.add(new Property("linkId", "string", "The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource.", 0, 1, linkId)); 1611 children.add(new Property("code", "CodeableConcept", "The meaning of this stratifier, as defined in the measure definition.", 0, 1, code)); 1612 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)); 1613 } 1614 1615 @Override 1616 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1617 switch (_hash) { 1618 case -1102667083: /*linkId*/ return new Property("linkId", "string", "The stratifier from the Measure that corresponds to this stratifier in the MeasureReport resource.", 0, 1, linkId); 1619 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The meaning of this stratifier, as defined in the measure definition.", 0, 1, code); 1620 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); 1621 default: return super.getNamedProperty(_hash, _name, _checkValid); 1622 } 1623 1624 } 1625 1626 @Override 1627 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1628 switch (hash) { 1629 case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType 1630 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 1631 case -1881991236: /*stratum*/ return this.stratum == null ? new Base[0] : this.stratum.toArray(new Base[this.stratum.size()]); // StratifierGroupComponent 1632 default: return super.getProperty(hash, name, checkValid); 1633 } 1634 1635 } 1636 1637 @Override 1638 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1639 switch (hash) { 1640 case -1102667083: // linkId 1641 this.linkId = TypeConvertor.castToString(value); // StringType 1642 return value; 1643 case 3059181: // code 1644 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1645 return value; 1646 case -1881991236: // stratum 1647 this.getStratum().add((StratifierGroupComponent) value); // StratifierGroupComponent 1648 return value; 1649 default: return super.setProperty(hash, name, value); 1650 } 1651 1652 } 1653 1654 @Override 1655 public Base setProperty(String name, Base value) throws FHIRException { 1656 if (name.equals("linkId")) { 1657 this.linkId = TypeConvertor.castToString(value); // StringType 1658 } else if (name.equals("code")) { 1659 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 1660 } else if (name.equals("stratum")) { 1661 this.getStratum().add((StratifierGroupComponent) value); 1662 } else 1663 return super.setProperty(name, value); 1664 return value; 1665 } 1666 1667 @Override 1668 public Base makeProperty(int hash, String name) throws FHIRException { 1669 switch (hash) { 1670 case -1102667083: return getLinkIdElement(); 1671 case 3059181: return getCode(); 1672 case -1881991236: return addStratum(); 1673 default: return super.makeProperty(hash, name); 1674 } 1675 1676 } 1677 1678 @Override 1679 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1680 switch (hash) { 1681 case -1102667083: /*linkId*/ return new String[] {"string"}; 1682 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1683 case -1881991236: /*stratum*/ return new String[] {}; 1684 default: return super.getTypesForProperty(hash, name); 1685 } 1686 1687 } 1688 1689 @Override 1690 public Base addChild(String name) throws FHIRException { 1691 if (name.equals("linkId")) { 1692 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.group.stratifier.linkId"); 1693 } 1694 else if (name.equals("code")) { 1695 this.code = new CodeableConcept(); 1696 return this.code; 1697 } 1698 else if (name.equals("stratum")) { 1699 return addStratum(); 1700 } 1701 else 1702 return super.addChild(name); 1703 } 1704 1705 public MeasureReportGroupStratifierComponent copy() { 1706 MeasureReportGroupStratifierComponent dst = new MeasureReportGroupStratifierComponent(); 1707 copyValues(dst); 1708 return dst; 1709 } 1710 1711 public void copyValues(MeasureReportGroupStratifierComponent dst) { 1712 super.copyValues(dst); 1713 dst.linkId = linkId == null ? null : linkId.copy(); 1714 dst.code = code == null ? null : code.copy(); 1715 if (stratum != null) { 1716 dst.stratum = new ArrayList<StratifierGroupComponent>(); 1717 for (StratifierGroupComponent i : stratum) 1718 dst.stratum.add(i.copy()); 1719 }; 1720 } 1721 1722 @Override 1723 public boolean equalsDeep(Base other_) { 1724 if (!super.equalsDeep(other_)) 1725 return false; 1726 if (!(other_ instanceof MeasureReportGroupStratifierComponent)) 1727 return false; 1728 MeasureReportGroupStratifierComponent o = (MeasureReportGroupStratifierComponent) other_; 1729 return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(stratum, o.stratum, true) 1730 ; 1731 } 1732 1733 @Override 1734 public boolean equalsShallow(Base other_) { 1735 if (!super.equalsShallow(other_)) 1736 return false; 1737 if (!(other_ instanceof MeasureReportGroupStratifierComponent)) 1738 return false; 1739 MeasureReportGroupStratifierComponent o = (MeasureReportGroupStratifierComponent) other_; 1740 return compareValues(linkId, o.linkId, true); 1741 } 1742 1743 public boolean isEmpty() { 1744 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, stratum); 1745 } 1746 1747 public String fhirType() { 1748 return "MeasureReport.group.stratifier"; 1749 1750 } 1751 1752 } 1753 1754 @Block() 1755 public static class StratifierGroupComponent extends BackboneElement implements IBaseBackboneElement { 1756 /** 1757 * 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. 1758 */ 1759 @Child(name = "value", type = {CodeableConcept.class, BooleanType.class, Quantity.class, Range.class, Reference.class}, order=1, min=0, max=1, modifier=false, summary=false) 1760 @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." ) 1761 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measurereport-stratifier-value-example") 1762 protected DataType value; 1763 1764 /** 1765 * A stratifier component value. 1766 */ 1767 @Child(name = "component", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1768 @Description(shortDefinition="Stratifier component values", formalDefinition="A stratifier component value." ) 1769 protected List<StratifierGroupComponentComponent> component; 1770 1771 /** 1772 * The populations that make up the stratum, one for each type of population appropriate to the measure. 1773 */ 1774 @Child(name = "population", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1775 @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." ) 1776 protected List<StratifierGroupPopulationComponent> population; 1777 1778 /** 1779 * 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. 1780 */ 1781 @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) 1782 @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." ) 1783 protected DataType measureScore; 1784 1785 private static final long serialVersionUID = -1713783491L; 1786 1787 /** 1788 * Constructor 1789 */ 1790 public StratifierGroupComponent() { 1791 super(); 1792 } 1793 1794 /** 1795 * @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.) 1796 */ 1797 public DataType getValue() { 1798 return this.value; 1799 } 1800 1801 /** 1802 * @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.) 1803 */ 1804 public CodeableConcept getValueCodeableConcept() throws FHIRException { 1805 if (this.value == null) 1806 this.value = new CodeableConcept(); 1807 if (!(this.value instanceof CodeableConcept)) 1808 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 1809 return (CodeableConcept) this.value; 1810 } 1811 1812 public boolean hasValueCodeableConcept() { 1813 return this != null && this.value instanceof CodeableConcept; 1814 } 1815 1816 /** 1817 * @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.) 1818 */ 1819 public BooleanType getValueBooleanType() throws FHIRException { 1820 if (this.value == null) 1821 this.value = new BooleanType(); 1822 if (!(this.value instanceof BooleanType)) 1823 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 1824 return (BooleanType) this.value; 1825 } 1826 1827 public boolean hasValueBooleanType() { 1828 return this != null && this.value instanceof BooleanType; 1829 } 1830 1831 /** 1832 * @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.) 1833 */ 1834 public Quantity getValueQuantity() throws FHIRException { 1835 if (this.value == null) 1836 this.value = new Quantity(); 1837 if (!(this.value instanceof Quantity)) 1838 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 1839 return (Quantity) this.value; 1840 } 1841 1842 public boolean hasValueQuantity() { 1843 return this != null && this.value instanceof Quantity; 1844 } 1845 1846 /** 1847 * @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.) 1848 */ 1849 public Range getValueRange() throws FHIRException { 1850 if (this.value == null) 1851 this.value = new Range(); 1852 if (!(this.value instanceof Range)) 1853 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); 1854 return (Range) this.value; 1855 } 1856 1857 public boolean hasValueRange() { 1858 return this != null && this.value instanceof Range; 1859 } 1860 1861 /** 1862 * @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.) 1863 */ 1864 public Reference getValueReference() throws FHIRException { 1865 if (this.value == null) 1866 this.value = new Reference(); 1867 if (!(this.value instanceof Reference)) 1868 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered"); 1869 return (Reference) this.value; 1870 } 1871 1872 public boolean hasValueReference() { 1873 return this != null && this.value instanceof Reference; 1874 } 1875 1876 public boolean hasValue() { 1877 return this.value != null && !this.value.isEmpty(); 1878 } 1879 1880 /** 1881 * @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.) 1882 */ 1883 public StratifierGroupComponent setValue(DataType value) { 1884 if (value != null && !(value instanceof CodeableConcept || value instanceof BooleanType || value instanceof Quantity || value instanceof Range || value instanceof Reference)) 1885 throw new FHIRException("Not the right type for MeasureReport.group.stratifier.stratum.value[x]: "+value.fhirType()); 1886 this.value = value; 1887 return this; 1888 } 1889 1890 /** 1891 * @return {@link #component} (A stratifier component value.) 1892 */ 1893 public List<StratifierGroupComponentComponent> getComponent() { 1894 if (this.component == null) 1895 this.component = new ArrayList<StratifierGroupComponentComponent>(); 1896 return this.component; 1897 } 1898 1899 /** 1900 * @return Returns a reference to <code>this</code> for easy method chaining 1901 */ 1902 public StratifierGroupComponent setComponent(List<StratifierGroupComponentComponent> theComponent) { 1903 this.component = theComponent; 1904 return this; 1905 } 1906 1907 public boolean hasComponent() { 1908 if (this.component == null) 1909 return false; 1910 for (StratifierGroupComponentComponent item : this.component) 1911 if (!item.isEmpty()) 1912 return true; 1913 return false; 1914 } 1915 1916 public StratifierGroupComponentComponent addComponent() { //3 1917 StratifierGroupComponentComponent t = new StratifierGroupComponentComponent(); 1918 if (this.component == null) 1919 this.component = new ArrayList<StratifierGroupComponentComponent>(); 1920 this.component.add(t); 1921 return t; 1922 } 1923 1924 public StratifierGroupComponent addComponent(StratifierGroupComponentComponent t) { //3 1925 if (t == null) 1926 return this; 1927 if (this.component == null) 1928 this.component = new ArrayList<StratifierGroupComponentComponent>(); 1929 this.component.add(t); 1930 return this; 1931 } 1932 1933 /** 1934 * @return The first repetition of repeating field {@link #component}, creating it if it does not already exist {3} 1935 */ 1936 public StratifierGroupComponentComponent getComponentFirstRep() { 1937 if (getComponent().isEmpty()) { 1938 addComponent(); 1939 } 1940 return getComponent().get(0); 1941 } 1942 1943 /** 1944 * @return {@link #population} (The populations that make up the stratum, one for each type of population appropriate to the measure.) 1945 */ 1946 public List<StratifierGroupPopulationComponent> getPopulation() { 1947 if (this.population == null) 1948 this.population = new ArrayList<StratifierGroupPopulationComponent>(); 1949 return this.population; 1950 } 1951 1952 /** 1953 * @return Returns a reference to <code>this</code> for easy method chaining 1954 */ 1955 public StratifierGroupComponent setPopulation(List<StratifierGroupPopulationComponent> thePopulation) { 1956 this.population = thePopulation; 1957 return this; 1958 } 1959 1960 public boolean hasPopulation() { 1961 if (this.population == null) 1962 return false; 1963 for (StratifierGroupPopulationComponent item : this.population) 1964 if (!item.isEmpty()) 1965 return true; 1966 return false; 1967 } 1968 1969 public StratifierGroupPopulationComponent addPopulation() { //3 1970 StratifierGroupPopulationComponent t = new StratifierGroupPopulationComponent(); 1971 if (this.population == null) 1972 this.population = new ArrayList<StratifierGroupPopulationComponent>(); 1973 this.population.add(t); 1974 return t; 1975 } 1976 1977 public StratifierGroupComponent addPopulation(StratifierGroupPopulationComponent t) { //3 1978 if (t == null) 1979 return this; 1980 if (this.population == null) 1981 this.population = new ArrayList<StratifierGroupPopulationComponent>(); 1982 this.population.add(t); 1983 return this; 1984 } 1985 1986 /** 1987 * @return The first repetition of repeating field {@link #population}, creating it if it does not already exist {3} 1988 */ 1989 public StratifierGroupPopulationComponent getPopulationFirstRep() { 1990 if (getPopulation().isEmpty()) { 1991 addPopulation(); 1992 } 1993 return getPopulation().get(0); 1994 } 1995 1996 /** 1997 * @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.) 1998 */ 1999 public DataType getMeasureScore() { 2000 return this.measureScore; 2001 } 2002 2003 /** 2004 * @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.) 2005 */ 2006 public Quantity getMeasureScoreQuantity() throws FHIRException { 2007 if (this.measureScore == null) 2008 this.measureScore = new Quantity(); 2009 if (!(this.measureScore instanceof Quantity)) 2010 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 2011 return (Quantity) this.measureScore; 2012 } 2013 2014 public boolean hasMeasureScoreQuantity() { 2015 return this != null && this.measureScore instanceof Quantity; 2016 } 2017 2018 /** 2019 * @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.) 2020 */ 2021 public DateTimeType getMeasureScoreDateTimeType() throws FHIRException { 2022 if (this.measureScore == null) 2023 this.measureScore = new DateTimeType(); 2024 if (!(this.measureScore instanceof DateTimeType)) 2025 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 2026 return (DateTimeType) this.measureScore; 2027 } 2028 2029 public boolean hasMeasureScoreDateTimeType() { 2030 return this != null && this.measureScore instanceof DateTimeType; 2031 } 2032 2033 /** 2034 * @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.) 2035 */ 2036 public CodeableConcept getMeasureScoreCodeableConcept() throws FHIRException { 2037 if (this.measureScore == null) 2038 this.measureScore = new CodeableConcept(); 2039 if (!(this.measureScore instanceof CodeableConcept)) 2040 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 2041 return (CodeableConcept) this.measureScore; 2042 } 2043 2044 public boolean hasMeasureScoreCodeableConcept() { 2045 return this != null && this.measureScore instanceof CodeableConcept; 2046 } 2047 2048 /** 2049 * @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.) 2050 */ 2051 public Period getMeasureScorePeriod() throws FHIRException { 2052 if (this.measureScore == null) 2053 this.measureScore = new Period(); 2054 if (!(this.measureScore instanceof Period)) 2055 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 2056 return (Period) this.measureScore; 2057 } 2058 2059 public boolean hasMeasureScorePeriod() { 2060 return this != null && this.measureScore instanceof Period; 2061 } 2062 2063 /** 2064 * @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.) 2065 */ 2066 public Range getMeasureScoreRange() throws FHIRException { 2067 if (this.measureScore == null) 2068 this.measureScore = new Range(); 2069 if (!(this.measureScore instanceof Range)) 2070 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 2071 return (Range) this.measureScore; 2072 } 2073 2074 public boolean hasMeasureScoreRange() { 2075 return this != null && this.measureScore instanceof Range; 2076 } 2077 2078 /** 2079 * @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.) 2080 */ 2081 public Duration getMeasureScoreDuration() throws FHIRException { 2082 if (this.measureScore == null) 2083 this.measureScore = new Duration(); 2084 if (!(this.measureScore instanceof Duration)) 2085 throw new FHIRException("Type mismatch: the type Duration was expected, but "+this.measureScore.getClass().getName()+" was encountered"); 2086 return (Duration) this.measureScore; 2087 } 2088 2089 public boolean hasMeasureScoreDuration() { 2090 return this != null && this.measureScore instanceof Duration; 2091 } 2092 2093 public boolean hasMeasureScore() { 2094 return this.measureScore != null && !this.measureScore.isEmpty(); 2095 } 2096 2097 /** 2098 * @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.) 2099 */ 2100 public StratifierGroupComponent setMeasureScore(DataType value) { 2101 if (value != null && !(value instanceof Quantity || value instanceof DateTimeType || value instanceof CodeableConcept || value instanceof Period || value instanceof Range || value instanceof Duration)) 2102 throw new FHIRException("Not the right type for MeasureReport.group.stratifier.stratum.measureScore[x]: "+value.fhirType()); 2103 this.measureScore = value; 2104 return this; 2105 } 2106 2107 protected void listChildren(List<Property> children) { 2108 super.listChildren(children); 2109 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)); 2110 children.add(new Property("component", "", "A stratifier component value.", 0, java.lang.Integer.MAX_VALUE, component)); 2111 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)); 2112 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)); 2113 } 2114 2115 @Override 2116 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2117 switch (_hash) { 2118 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); 2119 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); 2120 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); 2121 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); 2122 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); 2123 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); 2124 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); 2125 case -1399907075: /*component*/ return new Property("component", "", "A stratifier component value.", 0, java.lang.Integer.MAX_VALUE, component); 2126 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); 2127 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); 2128 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); 2129 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); 2130 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); 2131 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); 2132 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); 2133 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); 2134 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); 2135 default: return super.getNamedProperty(_hash, _name, _checkValid); 2136 } 2137 2138 } 2139 2140 @Override 2141 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2142 switch (hash) { 2143 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType 2144 case -1399907075: /*component*/ return this.component == null ? new Base[0] : this.component.toArray(new Base[this.component.size()]); // StratifierGroupComponentComponent 2145 case -2023558323: /*population*/ return this.population == null ? new Base[0] : this.population.toArray(new Base[this.population.size()]); // StratifierGroupPopulationComponent 2146 case -386313260: /*measureScore*/ return this.measureScore == null ? new Base[0] : new Base[] {this.measureScore}; // DataType 2147 default: return super.getProperty(hash, name, checkValid); 2148 } 2149 2150 } 2151 2152 @Override 2153 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2154 switch (hash) { 2155 case 111972721: // value 2156 this.value = TypeConvertor.castToType(value); // DataType 2157 return value; 2158 case -1399907075: // component 2159 this.getComponent().add((StratifierGroupComponentComponent) value); // StratifierGroupComponentComponent 2160 return value; 2161 case -2023558323: // population 2162 this.getPopulation().add((StratifierGroupPopulationComponent) value); // StratifierGroupPopulationComponent 2163 return value; 2164 case -386313260: // measureScore 2165 this.measureScore = TypeConvertor.castToType(value); // DataType 2166 return value; 2167 default: return super.setProperty(hash, name, value); 2168 } 2169 2170 } 2171 2172 @Override 2173 public Base setProperty(String name, Base value) throws FHIRException { 2174 if (name.equals("value[x]")) { 2175 this.value = TypeConvertor.castToType(value); // DataType 2176 } else if (name.equals("component")) { 2177 this.getComponent().add((StratifierGroupComponentComponent) value); 2178 } else if (name.equals("population")) { 2179 this.getPopulation().add((StratifierGroupPopulationComponent) value); 2180 } else if (name.equals("measureScore[x]")) { 2181 this.measureScore = TypeConvertor.castToType(value); // DataType 2182 } else 2183 return super.setProperty(name, value); 2184 return value; 2185 } 2186 2187 @Override 2188 public Base makeProperty(int hash, String name) throws FHIRException { 2189 switch (hash) { 2190 case -1410166417: return getValue(); 2191 case 111972721: return getValue(); 2192 case -1399907075: return addComponent(); 2193 case -2023558323: return addPopulation(); 2194 case 1854115884: return getMeasureScore(); 2195 case -386313260: return getMeasureScore(); 2196 default: return super.makeProperty(hash, name); 2197 } 2198 2199 } 2200 2201 @Override 2202 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2203 switch (hash) { 2204 case 111972721: /*value*/ return new String[] {"CodeableConcept", "boolean", "Quantity", "Range", "Reference"}; 2205 case -1399907075: /*component*/ return new String[] {}; 2206 case -2023558323: /*population*/ return new String[] {}; 2207 case -386313260: /*measureScore*/ return new String[] {"Quantity", "dateTime", "CodeableConcept", "Period", "Range", "Duration"}; 2208 default: return super.getTypesForProperty(hash, name); 2209 } 2210 2211 } 2212 2213 @Override 2214 public Base addChild(String name) throws FHIRException { 2215 if (name.equals("valueCodeableConcept")) { 2216 this.value = new CodeableConcept(); 2217 return this.value; 2218 } 2219 else if (name.equals("valueBoolean")) { 2220 this.value = new BooleanType(); 2221 return this.value; 2222 } 2223 else if (name.equals("valueQuantity")) { 2224 this.value = new Quantity(); 2225 return this.value; 2226 } 2227 else if (name.equals("valueRange")) { 2228 this.value = new Range(); 2229 return this.value; 2230 } 2231 else if (name.equals("valueReference")) { 2232 this.value = new Reference(); 2233 return this.value; 2234 } 2235 else if (name.equals("component")) { 2236 return addComponent(); 2237 } 2238 else if (name.equals("population")) { 2239 return addPopulation(); 2240 } 2241 else if (name.equals("measureScoreQuantity")) { 2242 this.measureScore = new Quantity(); 2243 return this.measureScore; 2244 } 2245 else if (name.equals("measureScoreDateTime")) { 2246 this.measureScore = new DateTimeType(); 2247 return this.measureScore; 2248 } 2249 else if (name.equals("measureScoreCodeableConcept")) { 2250 this.measureScore = new CodeableConcept(); 2251 return this.measureScore; 2252 } 2253 else if (name.equals("measureScorePeriod")) { 2254 this.measureScore = new Period(); 2255 return this.measureScore; 2256 } 2257 else if (name.equals("measureScoreRange")) { 2258 this.measureScore = new Range(); 2259 return this.measureScore; 2260 } 2261 else if (name.equals("measureScoreDuration")) { 2262 this.measureScore = new Duration(); 2263 return this.measureScore; 2264 } 2265 else 2266 return super.addChild(name); 2267 } 2268 2269 public StratifierGroupComponent copy() { 2270 StratifierGroupComponent dst = new StratifierGroupComponent(); 2271 copyValues(dst); 2272 return dst; 2273 } 2274 2275 public void copyValues(StratifierGroupComponent dst) { 2276 super.copyValues(dst); 2277 dst.value = value == null ? null : value.copy(); 2278 if (component != null) { 2279 dst.component = new ArrayList<StratifierGroupComponentComponent>(); 2280 for (StratifierGroupComponentComponent i : component) 2281 dst.component.add(i.copy()); 2282 }; 2283 if (population != null) { 2284 dst.population = new ArrayList<StratifierGroupPopulationComponent>(); 2285 for (StratifierGroupPopulationComponent i : population) 2286 dst.population.add(i.copy()); 2287 }; 2288 dst.measureScore = measureScore == null ? null : measureScore.copy(); 2289 } 2290 2291 @Override 2292 public boolean equalsDeep(Base other_) { 2293 if (!super.equalsDeep(other_)) 2294 return false; 2295 if (!(other_ instanceof StratifierGroupComponent)) 2296 return false; 2297 StratifierGroupComponent o = (StratifierGroupComponent) other_; 2298 return compareDeep(value, o.value, true) && compareDeep(component, o.component, true) && compareDeep(population, o.population, true) 2299 && compareDeep(measureScore, o.measureScore, true); 2300 } 2301 2302 @Override 2303 public boolean equalsShallow(Base other_) { 2304 if (!super.equalsShallow(other_)) 2305 return false; 2306 if (!(other_ instanceof StratifierGroupComponent)) 2307 return false; 2308 StratifierGroupComponent o = (StratifierGroupComponent) other_; 2309 return true; 2310 } 2311 2312 public boolean isEmpty() { 2313 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value, component, population 2314 , measureScore); 2315 } 2316 2317 public String fhirType() { 2318 return "MeasureReport.group.stratifier.stratum"; 2319 2320 } 2321 2322 } 2323 2324 @Block() 2325 public static class StratifierGroupComponentComponent extends BackboneElement implements IBaseBackboneElement { 2326 /** 2327 * The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource. 2328 */ 2329 @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 2330 @Description(shortDefinition="Pointer to specific stratifier component from Measure", formalDefinition="The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource." ) 2331 protected StringType linkId; 2332 2333 /** 2334 * The code for the stratum component value. 2335 */ 2336 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=false) 2337 @Description(shortDefinition="What stratifier component of the group", formalDefinition="The code for the stratum component value." ) 2338 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-stratifier-example") 2339 protected CodeableConcept code; 2340 2341 /** 2342 * The stratum component value. 2343 */ 2344 @Child(name = "value", type = {CodeableConcept.class, BooleanType.class, Quantity.class, Range.class, Reference.class}, order=3, min=1, max=1, modifier=false, summary=false) 2345 @Description(shortDefinition="The stratum component value, e.g. male", formalDefinition="The stratum component value." ) 2346 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measurereport-stratifier-value-example") 2347 protected DataType value; 2348 2349 private static final long serialVersionUID = 368088311L; 2350 2351 /** 2352 * Constructor 2353 */ 2354 public StratifierGroupComponentComponent() { 2355 super(); 2356 } 2357 2358 /** 2359 * Constructor 2360 */ 2361 public StratifierGroupComponentComponent(CodeableConcept code, DataType value) { 2362 super(); 2363 this.setCode(code); 2364 this.setValue(value); 2365 } 2366 2367 /** 2368 * @return {@link #linkId} (The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 2369 */ 2370 public StringType getLinkIdElement() { 2371 if (this.linkId == null) 2372 if (Configuration.errorOnAutoCreate()) 2373 throw new Error("Attempt to auto-create StratifierGroupComponentComponent.linkId"); 2374 else if (Configuration.doAutoCreate()) 2375 this.linkId = new StringType(); // bb 2376 return this.linkId; 2377 } 2378 2379 public boolean hasLinkIdElement() { 2380 return this.linkId != null && !this.linkId.isEmpty(); 2381 } 2382 2383 public boolean hasLinkId() { 2384 return this.linkId != null && !this.linkId.isEmpty(); 2385 } 2386 2387 /** 2388 * @param value {@link #linkId} (The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 2389 */ 2390 public StratifierGroupComponentComponent setLinkIdElement(StringType value) { 2391 this.linkId = value; 2392 return this; 2393 } 2394 2395 /** 2396 * @return The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource. 2397 */ 2398 public String getLinkId() { 2399 return this.linkId == null ? null : this.linkId.getValue(); 2400 } 2401 2402 /** 2403 * @param value The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource. 2404 */ 2405 public StratifierGroupComponentComponent setLinkId(String value) { 2406 if (Utilities.noString(value)) 2407 this.linkId = null; 2408 else { 2409 if (this.linkId == null) 2410 this.linkId = new StringType(); 2411 this.linkId.setValue(value); 2412 } 2413 return this; 2414 } 2415 2416 /** 2417 * @return {@link #code} (The code for the stratum component value.) 2418 */ 2419 public CodeableConcept getCode() { 2420 if (this.code == null) 2421 if (Configuration.errorOnAutoCreate()) 2422 throw new Error("Attempt to auto-create StratifierGroupComponentComponent.code"); 2423 else if (Configuration.doAutoCreate()) 2424 this.code = new CodeableConcept(); // cc 2425 return this.code; 2426 } 2427 2428 public boolean hasCode() { 2429 return this.code != null && !this.code.isEmpty(); 2430 } 2431 2432 /** 2433 * @param value {@link #code} (The code for the stratum component value.) 2434 */ 2435 public StratifierGroupComponentComponent setCode(CodeableConcept value) { 2436 this.code = value; 2437 return this; 2438 } 2439 2440 /** 2441 * @return {@link #value} (The stratum component value.) 2442 */ 2443 public DataType getValue() { 2444 return this.value; 2445 } 2446 2447 /** 2448 * @return {@link #value} (The stratum component value.) 2449 */ 2450 public CodeableConcept getValueCodeableConcept() throws FHIRException { 2451 if (this.value == null) 2452 this.value = new CodeableConcept(); 2453 if (!(this.value instanceof CodeableConcept)) 2454 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 2455 return (CodeableConcept) this.value; 2456 } 2457 2458 public boolean hasValueCodeableConcept() { 2459 return this != null && this.value instanceof CodeableConcept; 2460 } 2461 2462 /** 2463 * @return {@link #value} (The stratum component value.) 2464 */ 2465 public BooleanType getValueBooleanType() throws FHIRException { 2466 if (this.value == null) 2467 this.value = new BooleanType(); 2468 if (!(this.value instanceof BooleanType)) 2469 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 2470 return (BooleanType) this.value; 2471 } 2472 2473 public boolean hasValueBooleanType() { 2474 return this != null && this.value instanceof BooleanType; 2475 } 2476 2477 /** 2478 * @return {@link #value} (The stratum component value.) 2479 */ 2480 public Quantity getValueQuantity() throws FHIRException { 2481 if (this.value == null) 2482 this.value = new Quantity(); 2483 if (!(this.value instanceof Quantity)) 2484 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 2485 return (Quantity) this.value; 2486 } 2487 2488 public boolean hasValueQuantity() { 2489 return this != null && this.value instanceof Quantity; 2490 } 2491 2492 /** 2493 * @return {@link #value} (The stratum component value.) 2494 */ 2495 public Range getValueRange() throws FHIRException { 2496 if (this.value == null) 2497 this.value = new Range(); 2498 if (!(this.value instanceof Range)) 2499 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); 2500 return (Range) this.value; 2501 } 2502 2503 public boolean hasValueRange() { 2504 return this != null && this.value instanceof Range; 2505 } 2506 2507 /** 2508 * @return {@link #value} (The stratum component value.) 2509 */ 2510 public Reference getValueReference() throws FHIRException { 2511 if (this.value == null) 2512 this.value = new Reference(); 2513 if (!(this.value instanceof Reference)) 2514 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered"); 2515 return (Reference) this.value; 2516 } 2517 2518 public boolean hasValueReference() { 2519 return this != null && this.value instanceof Reference; 2520 } 2521 2522 public boolean hasValue() { 2523 return this.value != null && !this.value.isEmpty(); 2524 } 2525 2526 /** 2527 * @param value {@link #value} (The stratum component value.) 2528 */ 2529 public StratifierGroupComponentComponent setValue(DataType value) { 2530 if (value != null && !(value instanceof CodeableConcept || value instanceof BooleanType || value instanceof Quantity || value instanceof Range || value instanceof Reference)) 2531 throw new FHIRException("Not the right type for MeasureReport.group.stratifier.stratum.component.value[x]: "+value.fhirType()); 2532 this.value = value; 2533 return this; 2534 } 2535 2536 protected void listChildren(List<Property> children) { 2537 super.listChildren(children); 2538 children.add(new Property("linkId", "string", "The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource.", 0, 1, linkId)); 2539 children.add(new Property("code", "CodeableConcept", "The code for the stratum component value.", 0, 1, code)); 2540 children.add(new Property("value[x]", "CodeableConcept|boolean|Quantity|Range|Reference", "The stratum component value.", 0, 1, value)); 2541 } 2542 2543 @Override 2544 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2545 switch (_hash) { 2546 case -1102667083: /*linkId*/ return new Property("linkId", "string", "The stratifier component from the Measure that corresponds to this stratifier component in the MeasureReport resource.", 0, 1, linkId); 2547 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The code for the stratum component value.", 0, 1, code); 2548 case -1410166417: /*value[x]*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range|Reference", "The stratum component value.", 0, 1, value); 2549 case 111972721: /*value*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range|Reference", "The stratum component value.", 0, 1, value); 2550 case 924902896: /*valueCodeableConcept*/ return new Property("value[x]", "CodeableConcept", "The stratum component value.", 0, 1, value); 2551 case 733421943: /*valueBoolean*/ return new Property("value[x]", "boolean", "The stratum component value.", 0, 1, value); 2552 case -2029823716: /*valueQuantity*/ return new Property("value[x]", "Quantity", "The stratum component value.", 0, 1, value); 2553 case 2030761548: /*valueRange*/ return new Property("value[x]", "Range", "The stratum component value.", 0, 1, value); 2554 case 1755241690: /*valueReference*/ return new Property("value[x]", "Reference", "The stratum component value.", 0, 1, value); 2555 default: return super.getNamedProperty(_hash, _name, _checkValid); 2556 } 2557 2558 } 2559 2560 @Override 2561 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2562 switch (hash) { 2563 case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType 2564 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 2565 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType 2566 default: return super.getProperty(hash, name, checkValid); 2567 } 2568 2569 } 2570 2571 @Override 2572 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2573 switch (hash) { 2574 case -1102667083: // linkId 2575 this.linkId = TypeConvertor.castToString(value); // StringType 2576 return value; 2577 case 3059181: // code 2578 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2579 return value; 2580 case 111972721: // value 2581 this.value = TypeConvertor.castToType(value); // DataType 2582 return value; 2583 default: return super.setProperty(hash, name, value); 2584 } 2585 2586 } 2587 2588 @Override 2589 public Base setProperty(String name, Base value) throws FHIRException { 2590 if (name.equals("linkId")) { 2591 this.linkId = TypeConvertor.castToString(value); // StringType 2592 } else if (name.equals("code")) { 2593 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2594 } else if (name.equals("value[x]")) { 2595 this.value = TypeConvertor.castToType(value); // DataType 2596 } else 2597 return super.setProperty(name, value); 2598 return value; 2599 } 2600 2601 @Override 2602 public Base makeProperty(int hash, String name) throws FHIRException { 2603 switch (hash) { 2604 case -1102667083: return getLinkIdElement(); 2605 case 3059181: return getCode(); 2606 case -1410166417: return getValue(); 2607 case 111972721: return getValue(); 2608 default: return super.makeProperty(hash, name); 2609 } 2610 2611 } 2612 2613 @Override 2614 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2615 switch (hash) { 2616 case -1102667083: /*linkId*/ return new String[] {"string"}; 2617 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 2618 case 111972721: /*value*/ return new String[] {"CodeableConcept", "boolean", "Quantity", "Range", "Reference"}; 2619 default: return super.getTypesForProperty(hash, name); 2620 } 2621 2622 } 2623 2624 @Override 2625 public Base addChild(String name) throws FHIRException { 2626 if (name.equals("linkId")) { 2627 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.group.stratifier.stratum.component.linkId"); 2628 } 2629 else if (name.equals("code")) { 2630 this.code = new CodeableConcept(); 2631 return this.code; 2632 } 2633 else if (name.equals("valueCodeableConcept")) { 2634 this.value = new CodeableConcept(); 2635 return this.value; 2636 } 2637 else if (name.equals("valueBoolean")) { 2638 this.value = new BooleanType(); 2639 return this.value; 2640 } 2641 else if (name.equals("valueQuantity")) { 2642 this.value = new Quantity(); 2643 return this.value; 2644 } 2645 else if (name.equals("valueRange")) { 2646 this.value = new Range(); 2647 return this.value; 2648 } 2649 else if (name.equals("valueReference")) { 2650 this.value = new Reference(); 2651 return this.value; 2652 } 2653 else 2654 return super.addChild(name); 2655 } 2656 2657 public StratifierGroupComponentComponent copy() { 2658 StratifierGroupComponentComponent dst = new StratifierGroupComponentComponent(); 2659 copyValues(dst); 2660 return dst; 2661 } 2662 2663 public void copyValues(StratifierGroupComponentComponent dst) { 2664 super.copyValues(dst); 2665 dst.linkId = linkId == null ? null : linkId.copy(); 2666 dst.code = code == null ? null : code.copy(); 2667 dst.value = value == null ? null : value.copy(); 2668 } 2669 2670 @Override 2671 public boolean equalsDeep(Base other_) { 2672 if (!super.equalsDeep(other_)) 2673 return false; 2674 if (!(other_ instanceof StratifierGroupComponentComponent)) 2675 return false; 2676 StratifierGroupComponentComponent o = (StratifierGroupComponentComponent) other_; 2677 return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(value, o.value, true) 2678 ; 2679 } 2680 2681 @Override 2682 public boolean equalsShallow(Base other_) { 2683 if (!super.equalsShallow(other_)) 2684 return false; 2685 if (!(other_ instanceof StratifierGroupComponentComponent)) 2686 return false; 2687 StratifierGroupComponentComponent o = (StratifierGroupComponentComponent) other_; 2688 return compareValues(linkId, o.linkId, true); 2689 } 2690 2691 public boolean isEmpty() { 2692 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, value); 2693 } 2694 2695 public String fhirType() { 2696 return "MeasureReport.group.stratifier.stratum.component"; 2697 2698 } 2699 2700 } 2701 2702 @Block() 2703 public static class StratifierGroupPopulationComponent extends BackboneElement implements IBaseBackboneElement { 2704 /** 2705 * The population from the Measure that corresponds to this population in the MeasureReport resource. 2706 */ 2707 @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 2708 @Description(shortDefinition="Pointer to specific population from Measure", formalDefinition="The population from the Measure that corresponds to this population in the MeasureReport resource." ) 2709 protected StringType linkId; 2710 2711 /** 2712 * The type of the population. 2713 */ 2714 @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 2715 @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." ) 2716 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-population") 2717 protected CodeableConcept code; 2718 2719 /** 2720 * The number of members of the population in this stratum. 2721 */ 2722 @Child(name = "count", type = {IntegerType.class}, order=3, min=0, max=1, modifier=false, summary=false) 2723 @Description(shortDefinition="Size of the population", formalDefinition="The number of members of the population in this stratum." ) 2724 protected IntegerType count; 2725 2726 /** 2727 * This element refers to a List of individual level MeasureReport resources, one for each subject in this population in this stratum. 2728 */ 2729 @Child(name = "subjectResults", type = {ListResource.class}, order=4, min=0, max=1, modifier=false, summary=false) 2730 @Description(shortDefinition="For subject-list reports, the subject results in this population", formalDefinition="This element refers to a List of individual level MeasureReport resources, one for each subject in this population in this stratum." ) 2731 protected Reference subjectResults; 2732 2733 /** 2734 * A reference to an individual level MeasureReport resource for a member of the population. 2735 */ 2736 @Child(name = "subjectReport", type = {MeasureReport.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2737 @Description(shortDefinition="For subject-list reports, a subject result in this population", formalDefinition="A reference to an individual level MeasureReport resource for a member of the population." ) 2738 protected List<Reference> subjectReport; 2739 2740 /** 2741 * Optional Group identifying the individuals that make up the population. 2742 */ 2743 @Child(name = "subjects", type = {Group.class}, order=6, min=0, max=1, modifier=false, summary=false) 2744 @Description(shortDefinition="What individual(s) in the population", formalDefinition="Optional Group identifying the individuals that make up the population." ) 2745 protected Reference subjects; 2746 2747 private static final long serialVersionUID = -203678073L; 2748 2749 /** 2750 * Constructor 2751 */ 2752 public StratifierGroupPopulationComponent() { 2753 super(); 2754 } 2755 2756 /** 2757 * @return {@link #linkId} (The population from the Measure that corresponds to this population in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 2758 */ 2759 public StringType getLinkIdElement() { 2760 if (this.linkId == null) 2761 if (Configuration.errorOnAutoCreate()) 2762 throw new Error("Attempt to auto-create StratifierGroupPopulationComponent.linkId"); 2763 else if (Configuration.doAutoCreate()) 2764 this.linkId = new StringType(); // bb 2765 return this.linkId; 2766 } 2767 2768 public boolean hasLinkIdElement() { 2769 return this.linkId != null && !this.linkId.isEmpty(); 2770 } 2771 2772 public boolean hasLinkId() { 2773 return this.linkId != null && !this.linkId.isEmpty(); 2774 } 2775 2776 /** 2777 * @param value {@link #linkId} (The population from the Measure that corresponds to this population in the MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 2778 */ 2779 public StratifierGroupPopulationComponent setLinkIdElement(StringType value) { 2780 this.linkId = value; 2781 return this; 2782 } 2783 2784 /** 2785 * @return The population from the Measure that corresponds to this population in the MeasureReport resource. 2786 */ 2787 public String getLinkId() { 2788 return this.linkId == null ? null : this.linkId.getValue(); 2789 } 2790 2791 /** 2792 * @param value The population from the Measure that corresponds to this population in the MeasureReport resource. 2793 */ 2794 public StratifierGroupPopulationComponent setLinkId(String value) { 2795 if (Utilities.noString(value)) 2796 this.linkId = null; 2797 else { 2798 if (this.linkId == null) 2799 this.linkId = new StringType(); 2800 this.linkId.setValue(value); 2801 } 2802 return this; 2803 } 2804 2805 /** 2806 * @return {@link #code} (The type of the population.) 2807 */ 2808 public CodeableConcept getCode() { 2809 if (this.code == null) 2810 if (Configuration.errorOnAutoCreate()) 2811 throw new Error("Attempt to auto-create StratifierGroupPopulationComponent.code"); 2812 else if (Configuration.doAutoCreate()) 2813 this.code = new CodeableConcept(); // cc 2814 return this.code; 2815 } 2816 2817 public boolean hasCode() { 2818 return this.code != null && !this.code.isEmpty(); 2819 } 2820 2821 /** 2822 * @param value {@link #code} (The type of the population.) 2823 */ 2824 public StratifierGroupPopulationComponent setCode(CodeableConcept value) { 2825 this.code = value; 2826 return this; 2827 } 2828 2829 /** 2830 * @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 2831 */ 2832 public IntegerType getCountElement() { 2833 if (this.count == null) 2834 if (Configuration.errorOnAutoCreate()) 2835 throw new Error("Attempt to auto-create StratifierGroupPopulationComponent.count"); 2836 else if (Configuration.doAutoCreate()) 2837 this.count = new IntegerType(); // bb 2838 return this.count; 2839 } 2840 2841 public boolean hasCountElement() { 2842 return this.count != null && !this.count.isEmpty(); 2843 } 2844 2845 public boolean hasCount() { 2846 return this.count != null && !this.count.isEmpty(); 2847 } 2848 2849 /** 2850 * @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 2851 */ 2852 public StratifierGroupPopulationComponent setCountElement(IntegerType value) { 2853 this.count = value; 2854 return this; 2855 } 2856 2857 /** 2858 * @return The number of members of the population in this stratum. 2859 */ 2860 public int getCount() { 2861 return this.count == null || this.count.isEmpty() ? 0 : this.count.getValue(); 2862 } 2863 2864 /** 2865 * @param value The number of members of the population in this stratum. 2866 */ 2867 public StratifierGroupPopulationComponent setCount(int value) { 2868 if (this.count == null) 2869 this.count = new IntegerType(); 2870 this.count.setValue(value); 2871 return this; 2872 } 2873 2874 /** 2875 * @return {@link #subjectResults} (This element refers to a List of individual level MeasureReport resources, one for each subject in this population in this stratum.) 2876 */ 2877 public Reference getSubjectResults() { 2878 if (this.subjectResults == null) 2879 if (Configuration.errorOnAutoCreate()) 2880 throw new Error("Attempt to auto-create StratifierGroupPopulationComponent.subjectResults"); 2881 else if (Configuration.doAutoCreate()) 2882 this.subjectResults = new Reference(); // cc 2883 return this.subjectResults; 2884 } 2885 2886 public boolean hasSubjectResults() { 2887 return this.subjectResults != null && !this.subjectResults.isEmpty(); 2888 } 2889 2890 /** 2891 * @param value {@link #subjectResults} (This element refers to a List of individual level MeasureReport resources, one for each subject in this population in this stratum.) 2892 */ 2893 public StratifierGroupPopulationComponent setSubjectResults(Reference value) { 2894 this.subjectResults = value; 2895 return this; 2896 } 2897 2898 /** 2899 * @return {@link #subjectReport} (A reference to an individual level MeasureReport resource for a member of the population.) 2900 */ 2901 public List<Reference> getSubjectReport() { 2902 if (this.subjectReport == null) 2903 this.subjectReport = new ArrayList<Reference>(); 2904 return this.subjectReport; 2905 } 2906 2907 /** 2908 * @return Returns a reference to <code>this</code> for easy method chaining 2909 */ 2910 public StratifierGroupPopulationComponent setSubjectReport(List<Reference> theSubjectReport) { 2911 this.subjectReport = theSubjectReport; 2912 return this; 2913 } 2914 2915 public boolean hasSubjectReport() { 2916 if (this.subjectReport == null) 2917 return false; 2918 for (Reference item : this.subjectReport) 2919 if (!item.isEmpty()) 2920 return true; 2921 return false; 2922 } 2923 2924 public Reference addSubjectReport() { //3 2925 Reference t = new Reference(); 2926 if (this.subjectReport == null) 2927 this.subjectReport = new ArrayList<Reference>(); 2928 this.subjectReport.add(t); 2929 return t; 2930 } 2931 2932 public StratifierGroupPopulationComponent addSubjectReport(Reference t) { //3 2933 if (t == null) 2934 return this; 2935 if (this.subjectReport == null) 2936 this.subjectReport = new ArrayList<Reference>(); 2937 this.subjectReport.add(t); 2938 return this; 2939 } 2940 2941 /** 2942 * @return The first repetition of repeating field {@link #subjectReport}, creating it if it does not already exist {3} 2943 */ 2944 public Reference getSubjectReportFirstRep() { 2945 if (getSubjectReport().isEmpty()) { 2946 addSubjectReport(); 2947 } 2948 return getSubjectReport().get(0); 2949 } 2950 2951 /** 2952 * @return {@link #subjects} (Optional Group identifying the individuals that make up the population.) 2953 */ 2954 public Reference getSubjects() { 2955 if (this.subjects == null) 2956 if (Configuration.errorOnAutoCreate()) 2957 throw new Error("Attempt to auto-create StratifierGroupPopulationComponent.subjects"); 2958 else if (Configuration.doAutoCreate()) 2959 this.subjects = new Reference(); // cc 2960 return this.subjects; 2961 } 2962 2963 public boolean hasSubjects() { 2964 return this.subjects != null && !this.subjects.isEmpty(); 2965 } 2966 2967 /** 2968 * @param value {@link #subjects} (Optional Group identifying the individuals that make up the population.) 2969 */ 2970 public StratifierGroupPopulationComponent setSubjects(Reference value) { 2971 this.subjects = value; 2972 return this; 2973 } 2974 2975 protected void listChildren(List<Property> children) { 2976 super.listChildren(children); 2977 children.add(new Property("linkId", "string", "The population from the Measure that corresponds to this population in the MeasureReport resource.", 0, 1, linkId)); 2978 children.add(new Property("code", "CodeableConcept", "The type of the population.", 0, 1, code)); 2979 children.add(new Property("count", "integer", "The number of members of the population in this stratum.", 0, 1, count)); 2980 children.add(new Property("subjectResults", "Reference(List)", "This element refers to a List of individual level MeasureReport resources, one for each subject in this population in this stratum.", 0, 1, subjectResults)); 2981 children.add(new Property("subjectReport", "Reference(MeasureReport)", "A reference to an individual level MeasureReport resource for a member of the population.", 0, java.lang.Integer.MAX_VALUE, subjectReport)); 2982 children.add(new Property("subjects", "Reference(Group)", "Optional Group identifying the individuals that make up the population.", 0, 1, subjects)); 2983 } 2984 2985 @Override 2986 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2987 switch (_hash) { 2988 case -1102667083: /*linkId*/ return new Property("linkId", "string", "The population from the Measure that corresponds to this population in the MeasureReport resource.", 0, 1, linkId); 2989 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The type of the population.", 0, 1, code); 2990 case 94851343: /*count*/ return new Property("count", "integer", "The number of members of the population in this stratum.", 0, 1, count); 2991 case 2136184106: /*subjectResults*/ return new Property("subjectResults", "Reference(List)", "This element refers to a List of individual level MeasureReport resources, one for each subject in this population in this stratum.", 0, 1, subjectResults); 2992 case 68814208: /*subjectReport*/ return new Property("subjectReport", "Reference(MeasureReport)", "A reference to an individual level MeasureReport resource for a member of the population.", 0, java.lang.Integer.MAX_VALUE, subjectReport); 2993 case -2069868345: /*subjects*/ return new Property("subjects", "Reference(Group)", "Optional Group identifying the individuals that make up the population.", 0, 1, subjects); 2994 default: return super.getNamedProperty(_hash, _name, _checkValid); 2995 } 2996 2997 } 2998 2999 @Override 3000 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3001 switch (hash) { 3002 case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType 3003 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 3004 case 94851343: /*count*/ return this.count == null ? new Base[0] : new Base[] {this.count}; // IntegerType 3005 case 2136184106: /*subjectResults*/ return this.subjectResults == null ? new Base[0] : new Base[] {this.subjectResults}; // Reference 3006 case 68814208: /*subjectReport*/ return this.subjectReport == null ? new Base[0] : this.subjectReport.toArray(new Base[this.subjectReport.size()]); // Reference 3007 case -2069868345: /*subjects*/ return this.subjects == null ? new Base[0] : new Base[] {this.subjects}; // Reference 3008 default: return super.getProperty(hash, name, checkValid); 3009 } 3010 3011 } 3012 3013 @Override 3014 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3015 switch (hash) { 3016 case -1102667083: // linkId 3017 this.linkId = TypeConvertor.castToString(value); // StringType 3018 return value; 3019 case 3059181: // code 3020 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3021 return value; 3022 case 94851343: // count 3023 this.count = TypeConvertor.castToInteger(value); // IntegerType 3024 return value; 3025 case 2136184106: // subjectResults 3026 this.subjectResults = TypeConvertor.castToReference(value); // Reference 3027 return value; 3028 case 68814208: // subjectReport 3029 this.getSubjectReport().add(TypeConvertor.castToReference(value)); // Reference 3030 return value; 3031 case -2069868345: // subjects 3032 this.subjects = TypeConvertor.castToReference(value); // Reference 3033 return value; 3034 default: return super.setProperty(hash, name, value); 3035 } 3036 3037 } 3038 3039 @Override 3040 public Base setProperty(String name, Base value) throws FHIRException { 3041 if (name.equals("linkId")) { 3042 this.linkId = TypeConvertor.castToString(value); // StringType 3043 } else if (name.equals("code")) { 3044 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 3045 } else if (name.equals("count")) { 3046 this.count = TypeConvertor.castToInteger(value); // IntegerType 3047 } else if (name.equals("subjectResults")) { 3048 this.subjectResults = TypeConvertor.castToReference(value); // Reference 3049 } else if (name.equals("subjectReport")) { 3050 this.getSubjectReport().add(TypeConvertor.castToReference(value)); 3051 } else if (name.equals("subjects")) { 3052 this.subjects = TypeConvertor.castToReference(value); // Reference 3053 } else 3054 return super.setProperty(name, value); 3055 return value; 3056 } 3057 3058 @Override 3059 public Base makeProperty(int hash, String name) throws FHIRException { 3060 switch (hash) { 3061 case -1102667083: return getLinkIdElement(); 3062 case 3059181: return getCode(); 3063 case 94851343: return getCountElement(); 3064 case 2136184106: return getSubjectResults(); 3065 case 68814208: return addSubjectReport(); 3066 case -2069868345: return getSubjects(); 3067 default: return super.makeProperty(hash, name); 3068 } 3069 3070 } 3071 3072 @Override 3073 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3074 switch (hash) { 3075 case -1102667083: /*linkId*/ return new String[] {"string"}; 3076 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 3077 case 94851343: /*count*/ return new String[] {"integer"}; 3078 case 2136184106: /*subjectResults*/ return new String[] {"Reference"}; 3079 case 68814208: /*subjectReport*/ return new String[] {"Reference"}; 3080 case -2069868345: /*subjects*/ return new String[] {"Reference"}; 3081 default: return super.getTypesForProperty(hash, name); 3082 } 3083 3084 } 3085 3086 @Override 3087 public Base addChild(String name) throws FHIRException { 3088 if (name.equals("linkId")) { 3089 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.group.stratifier.stratum.population.linkId"); 3090 } 3091 else if (name.equals("code")) { 3092 this.code = new CodeableConcept(); 3093 return this.code; 3094 } 3095 else if (name.equals("count")) { 3096 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.group.stratifier.stratum.population.count"); 3097 } 3098 else if (name.equals("subjectResults")) { 3099 this.subjectResults = new Reference(); 3100 return this.subjectResults; 3101 } 3102 else if (name.equals("subjectReport")) { 3103 return addSubjectReport(); 3104 } 3105 else if (name.equals("subjects")) { 3106 this.subjects = new Reference(); 3107 return this.subjects; 3108 } 3109 else 3110 return super.addChild(name); 3111 } 3112 3113 public StratifierGroupPopulationComponent copy() { 3114 StratifierGroupPopulationComponent dst = new StratifierGroupPopulationComponent(); 3115 copyValues(dst); 3116 return dst; 3117 } 3118 3119 public void copyValues(StratifierGroupPopulationComponent dst) { 3120 super.copyValues(dst); 3121 dst.linkId = linkId == null ? null : linkId.copy(); 3122 dst.code = code == null ? null : code.copy(); 3123 dst.count = count == null ? null : count.copy(); 3124 dst.subjectResults = subjectResults == null ? null : subjectResults.copy(); 3125 if (subjectReport != null) { 3126 dst.subjectReport = new ArrayList<Reference>(); 3127 for (Reference i : subjectReport) 3128 dst.subjectReport.add(i.copy()); 3129 }; 3130 dst.subjects = subjects == null ? null : subjects.copy(); 3131 } 3132 3133 @Override 3134 public boolean equalsDeep(Base other_) { 3135 if (!super.equalsDeep(other_)) 3136 return false; 3137 if (!(other_ instanceof StratifierGroupPopulationComponent)) 3138 return false; 3139 StratifierGroupPopulationComponent o = (StratifierGroupPopulationComponent) other_; 3140 return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(count, o.count, true) 3141 && compareDeep(subjectResults, o.subjectResults, true) && compareDeep(subjectReport, o.subjectReport, true) 3142 && compareDeep(subjects, o.subjects, true); 3143 } 3144 3145 @Override 3146 public boolean equalsShallow(Base other_) { 3147 if (!super.equalsShallow(other_)) 3148 return false; 3149 if (!(other_ instanceof StratifierGroupPopulationComponent)) 3150 return false; 3151 StratifierGroupPopulationComponent o = (StratifierGroupPopulationComponent) other_; 3152 return compareValues(linkId, o.linkId, true) && compareValues(count, o.count, true); 3153 } 3154 3155 public boolean isEmpty() { 3156 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, count, subjectResults 3157 , subjectReport, subjects); 3158 } 3159 3160 public String fhirType() { 3161 return "MeasureReport.group.stratifier.stratum.population"; 3162 3163 } 3164 3165 } 3166 3167 /** 3168 * 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. 3169 */ 3170 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3171 @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." ) 3172 protected List<Identifier> identifier; 3173 3174 /** 3175 * The MeasureReport status. No data will be available until the MeasureReport status is complete. 3176 */ 3177 @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true) 3178 @Description(shortDefinition="complete | pending | error", formalDefinition="The MeasureReport status. No data will be available until the MeasureReport status is complete." ) 3179 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-report-status") 3180 protected Enumeration<MeasureReportStatus> status; 3181 3182 /** 3183 * 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. 3184 */ 3185 @Child(name = "type", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=true) 3186 @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." ) 3187 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-report-type") 3188 protected Enumeration<MeasureReportType> type; 3189 3190 /** 3191 * Indicates whether the data submitted in a 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. 3192 */ 3193 @Child(name = "dataUpdateType", type = {CodeType.class}, order=3, min=0, max=1, modifier=true, summary=true) 3194 @Description(shortDefinition="incremental | snapshot", formalDefinition="Indicates whether the data submitted in a 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." ) 3195 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/submit-data-update-type") 3196 protected Enumeration<SubmitDataUpdateType> dataUpdateType; 3197 3198 /** 3199 * A reference to the Measure that was calculated to produce this report. 3200 */ 3201 @Child(name = "measure", type = {CanonicalType.class}, order=4, min=0, max=1, modifier=false, summary=true) 3202 @Description(shortDefinition="What measure was calculated", formalDefinition="A reference to the Measure that was calculated to produce this report." ) 3203 protected CanonicalType measure; 3204 3205 /** 3206 * Optional subject identifying the individual or individuals the report is for. 3207 */ 3208 @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) 3209 @Description(shortDefinition="What individual(s) the report is for", formalDefinition="Optional subject identifying the individual or individuals the report is for." ) 3210 protected Reference subject; 3211 3212 /** 3213 * The date this measure was calculated. 3214 */ 3215 @Child(name = "date", type = {DateTimeType.class}, order=6, min=0, max=1, modifier=false, summary=true) 3216 @Description(shortDefinition="When the measure was calculated", formalDefinition="The date this measure was calculated." ) 3217 protected DateTimeType date; 3218 3219 /** 3220 * The individual or organization that is reporting the data. 3221 */ 3222 @Child(name = "reporter", type = {Practitioner.class, PractitionerRole.class, Organization.class, Group.class}, order=7, min=0, max=1, modifier=false, summary=true) 3223 @Description(shortDefinition="Who is reporting the data", formalDefinition="The individual or organization that is reporting the data." ) 3224 protected Reference reporter; 3225 3226 /** 3227 * 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. 3228 */ 3229 @Child(name = "reportingVendor", type = {Organization.class}, order=8, min=0, max=1, modifier=false, summary=false) 3230 @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." ) 3231 protected Reference reportingVendor; 3232 3233 /** 3234 * A reference to the location for which the data is being reported. 3235 */ 3236 @Child(name = "location", type = {Location.class}, order=9, min=0, max=1, modifier=false, summary=false) 3237 @Description(shortDefinition="Where the reported data is from", formalDefinition="A reference to the location for which the data is being reported." ) 3238 protected Reference location; 3239 3240 /** 3241 * The reporting period for which the report was calculated. 3242 */ 3243 @Child(name = "period", type = {Period.class}, order=10, min=1, max=1, modifier=false, summary=true) 3244 @Description(shortDefinition="What period the report covers", formalDefinition="The reporting period for which the report was calculated." ) 3245 protected Period period; 3246 3247 /** 3248 * 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. 3249 */ 3250 @Child(name = "inputParameters", type = {Parameters.class}, order=11, min=0, max=1, modifier=false, summary=false) 3251 @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." ) 3252 protected Reference inputParameters; 3253 3254 /** 3255 * 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. 3256 */ 3257 @Child(name = "scoring", type = {CodeableConcept.class}, order=12, min=0, max=1, modifier=true, summary=true) 3258 @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." ) 3259 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/measure-scoring") 3260 protected CodeableConcept scoring; 3261 3262 /** 3263 * Whether improvement in the measure is noted by an increase or decrease in the measure score. 3264 */ 3265 @Child(name = "improvementNotation", type = {CodeableConcept.class}, order=13, min=0, max=1, modifier=true, summary=true) 3266 @Description(shortDefinition="increase | decrease", formalDefinition="Whether improvement in the measure is noted by an increase or decrease in the measure score." ) 3267 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-improvement-notation") 3268 protected CodeableConcept improvementNotation; 3269 3270 /** 3271 * The results of the calculation, one for each population group in the measure. 3272 */ 3273 @Child(name = "group", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3274 @Description(shortDefinition="Measure results for each group", formalDefinition="The results of the calculation, one for each population group in the measure." ) 3275 protected List<MeasureReportGroupComponent> group; 3276 3277 /** 3278 * A reference to a Resource that represents additional information collected for the report. If the value of the supplemental data is not a Resource (i.e. evaluating the supplementalData expression for this case in the measure results in a value that is not a FHIR Resource), it is reported as a reference to a contained Observation resource. 3279 */ 3280 @Child(name = "supplementalData", type = {Reference.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3281 @Description(shortDefinition="Additional information collected for the report", formalDefinition="A reference to a Resource that represents additional information collected for the report. If the value of the supplemental data is not a Resource (i.e. evaluating the supplementalData expression for this case in the measure results in a value that is not a FHIR Resource), it is reported as a reference to a contained Observation resource." ) 3282 protected List<Reference> supplementalData; 3283 3284 /** 3285 * Evaluated resources are used to capture what data was involved in the calculation of a measure. This usage is only allowed for individual reports to ensure that the size of the MeasureReport resource is bounded. 3286 */ 3287 @Child(name = "evaluatedResource", type = {Reference.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3288 @Description(shortDefinition="What data was used to calculate the measure score", formalDefinition="Evaluated resources are used to capture what data was involved in the calculation of a measure. This usage is only allowed for individual reports to ensure that the size of the MeasureReport resource is bounded." ) 3289 protected List<Reference> evaluatedResource; 3290 3291 private static final long serialVersionUID = 962133374L; 3292 3293 /** 3294 * Constructor 3295 */ 3296 public MeasureReport() { 3297 super(); 3298 } 3299 3300 /** 3301 * Constructor 3302 */ 3303 public MeasureReport(MeasureReportStatus status, MeasureReportType type, Period period) { 3304 super(); 3305 this.setStatus(status); 3306 this.setType(type); 3307 this.setPeriod(period); 3308 } 3309 3310 /** 3311 * @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.) 3312 */ 3313 public List<Identifier> getIdentifier() { 3314 if (this.identifier == null) 3315 this.identifier = new ArrayList<Identifier>(); 3316 return this.identifier; 3317 } 3318 3319 /** 3320 * @return Returns a reference to <code>this</code> for easy method chaining 3321 */ 3322 public MeasureReport setIdentifier(List<Identifier> theIdentifier) { 3323 this.identifier = theIdentifier; 3324 return this; 3325 } 3326 3327 public boolean hasIdentifier() { 3328 if (this.identifier == null) 3329 return false; 3330 for (Identifier item : this.identifier) 3331 if (!item.isEmpty()) 3332 return true; 3333 return false; 3334 } 3335 3336 public Identifier addIdentifier() { //3 3337 Identifier t = new Identifier(); 3338 if (this.identifier == null) 3339 this.identifier = new ArrayList<Identifier>(); 3340 this.identifier.add(t); 3341 return t; 3342 } 3343 3344 public MeasureReport addIdentifier(Identifier t) { //3 3345 if (t == null) 3346 return this; 3347 if (this.identifier == null) 3348 this.identifier = new ArrayList<Identifier>(); 3349 this.identifier.add(t); 3350 return this; 3351 } 3352 3353 /** 3354 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 3355 */ 3356 public Identifier getIdentifierFirstRep() { 3357 if (getIdentifier().isEmpty()) { 3358 addIdentifier(); 3359 } 3360 return getIdentifier().get(0); 3361 } 3362 3363 /** 3364 * @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 3365 */ 3366 public Enumeration<MeasureReportStatus> getStatusElement() { 3367 if (this.status == null) 3368 if (Configuration.errorOnAutoCreate()) 3369 throw new Error("Attempt to auto-create MeasureReport.status"); 3370 else if (Configuration.doAutoCreate()) 3371 this.status = new Enumeration<MeasureReportStatus>(new MeasureReportStatusEnumFactory()); // bb 3372 return this.status; 3373 } 3374 3375 public boolean hasStatusElement() { 3376 return this.status != null && !this.status.isEmpty(); 3377 } 3378 3379 public boolean hasStatus() { 3380 return this.status != null && !this.status.isEmpty(); 3381 } 3382 3383 /** 3384 * @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 3385 */ 3386 public MeasureReport setStatusElement(Enumeration<MeasureReportStatus> value) { 3387 this.status = value; 3388 return this; 3389 } 3390 3391 /** 3392 * @return The MeasureReport status. No data will be available until the MeasureReport status is complete. 3393 */ 3394 public MeasureReportStatus getStatus() { 3395 return this.status == null ? null : this.status.getValue(); 3396 } 3397 3398 /** 3399 * @param value The MeasureReport status. No data will be available until the MeasureReport status is complete. 3400 */ 3401 public MeasureReport setStatus(MeasureReportStatus value) { 3402 if (this.status == null) 3403 this.status = new Enumeration<MeasureReportStatus>(new MeasureReportStatusEnumFactory()); 3404 this.status.setValue(value); 3405 return this; 3406 } 3407 3408 /** 3409 * @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 3410 */ 3411 public Enumeration<MeasureReportType> getTypeElement() { 3412 if (this.type == null) 3413 if (Configuration.errorOnAutoCreate()) 3414 throw new Error("Attempt to auto-create MeasureReport.type"); 3415 else if (Configuration.doAutoCreate()) 3416 this.type = new Enumeration<MeasureReportType>(new MeasureReportTypeEnumFactory()); // bb 3417 return this.type; 3418 } 3419 3420 public boolean hasTypeElement() { 3421 return this.type != null && !this.type.isEmpty(); 3422 } 3423 3424 public boolean hasType() { 3425 return this.type != null && !this.type.isEmpty(); 3426 } 3427 3428 /** 3429 * @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 3430 */ 3431 public MeasureReport setTypeElement(Enumeration<MeasureReportType> value) { 3432 this.type = value; 3433 return this; 3434 } 3435 3436 /** 3437 * @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. 3438 */ 3439 public MeasureReportType getType() { 3440 return this.type == null ? null : this.type.getValue(); 3441 } 3442 3443 /** 3444 * @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. 3445 */ 3446 public MeasureReport setType(MeasureReportType value) { 3447 if (this.type == null) 3448 this.type = new Enumeration<MeasureReportType>(new MeasureReportTypeEnumFactory()); 3449 this.type.setValue(value); 3450 return this; 3451 } 3452 3453 /** 3454 * @return {@link #dataUpdateType} (Indicates whether the data submitted in a 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 3455 */ 3456 public Enumeration<SubmitDataUpdateType> getDataUpdateTypeElement() { 3457 if (this.dataUpdateType == null) 3458 if (Configuration.errorOnAutoCreate()) 3459 throw new Error("Attempt to auto-create MeasureReport.dataUpdateType"); 3460 else if (Configuration.doAutoCreate()) 3461 this.dataUpdateType = new Enumeration<SubmitDataUpdateType>(new SubmitDataUpdateTypeEnumFactory()); // bb 3462 return this.dataUpdateType; 3463 } 3464 3465 public boolean hasDataUpdateTypeElement() { 3466 return this.dataUpdateType != null && !this.dataUpdateType.isEmpty(); 3467 } 3468 3469 public boolean hasDataUpdateType() { 3470 return this.dataUpdateType != null && !this.dataUpdateType.isEmpty(); 3471 } 3472 3473 /** 3474 * @param value {@link #dataUpdateType} (Indicates whether the data submitted in a 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 3475 */ 3476 public MeasureReport setDataUpdateTypeElement(Enumeration<SubmitDataUpdateType> value) { 3477 this.dataUpdateType = value; 3478 return this; 3479 } 3480 3481 /** 3482 * @return Indicates whether the data submitted in a 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. 3483 */ 3484 public SubmitDataUpdateType getDataUpdateType() { 3485 return this.dataUpdateType == null ? null : this.dataUpdateType.getValue(); 3486 } 3487 3488 /** 3489 * @param value Indicates whether the data submitted in a 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. 3490 */ 3491 public MeasureReport setDataUpdateType(SubmitDataUpdateType value) { 3492 if (value == null) 3493 this.dataUpdateType = null; 3494 else { 3495 if (this.dataUpdateType == null) 3496 this.dataUpdateType = new Enumeration<SubmitDataUpdateType>(new SubmitDataUpdateTypeEnumFactory()); 3497 this.dataUpdateType.setValue(value); 3498 } 3499 return this; 3500 } 3501 3502 /** 3503 * @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 3504 */ 3505 public CanonicalType getMeasureElement() { 3506 if (this.measure == null) 3507 if (Configuration.errorOnAutoCreate()) 3508 throw new Error("Attempt to auto-create MeasureReport.measure"); 3509 else if (Configuration.doAutoCreate()) 3510 this.measure = new CanonicalType(); // bb 3511 return this.measure; 3512 } 3513 3514 public boolean hasMeasureElement() { 3515 return this.measure != null && !this.measure.isEmpty(); 3516 } 3517 3518 public boolean hasMeasure() { 3519 return this.measure != null && !this.measure.isEmpty(); 3520 } 3521 3522 /** 3523 * @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 3524 */ 3525 public MeasureReport setMeasureElement(CanonicalType value) { 3526 this.measure = value; 3527 return this; 3528 } 3529 3530 /** 3531 * @return A reference to the Measure that was calculated to produce this report. 3532 */ 3533 public String getMeasure() { 3534 return this.measure == null ? null : this.measure.getValue(); 3535 } 3536 3537 /** 3538 * @param value A reference to the Measure that was calculated to produce this report. 3539 */ 3540 public MeasureReport setMeasure(String value) { 3541 if (Utilities.noString(value)) 3542 this.measure = null; 3543 else { 3544 if (this.measure == null) 3545 this.measure = new CanonicalType(); 3546 this.measure.setValue(value); 3547 } 3548 return this; 3549 } 3550 3551 /** 3552 * @return {@link #subject} (Optional subject identifying the individual or individuals the report is for.) 3553 */ 3554 public Reference getSubject() { 3555 if (this.subject == null) 3556 if (Configuration.errorOnAutoCreate()) 3557 throw new Error("Attempt to auto-create MeasureReport.subject"); 3558 else if (Configuration.doAutoCreate()) 3559 this.subject = new Reference(); // cc 3560 return this.subject; 3561 } 3562 3563 public boolean hasSubject() { 3564 return this.subject != null && !this.subject.isEmpty(); 3565 } 3566 3567 /** 3568 * @param value {@link #subject} (Optional subject identifying the individual or individuals the report is for.) 3569 */ 3570 public MeasureReport setSubject(Reference value) { 3571 this.subject = value; 3572 return this; 3573 } 3574 3575 /** 3576 * @return {@link #date} (The date this measure was calculated.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 3577 */ 3578 public DateTimeType getDateElement() { 3579 if (this.date == null) 3580 if (Configuration.errorOnAutoCreate()) 3581 throw new Error("Attempt to auto-create MeasureReport.date"); 3582 else if (Configuration.doAutoCreate()) 3583 this.date = new DateTimeType(); // bb 3584 return this.date; 3585 } 3586 3587 public boolean hasDateElement() { 3588 return this.date != null && !this.date.isEmpty(); 3589 } 3590 3591 public boolean hasDate() { 3592 return this.date != null && !this.date.isEmpty(); 3593 } 3594 3595 /** 3596 * @param value {@link #date} (The date this measure was calculated.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 3597 */ 3598 public MeasureReport setDateElement(DateTimeType value) { 3599 this.date = value; 3600 return this; 3601 } 3602 3603 /** 3604 * @return The date this measure was calculated. 3605 */ 3606 public Date getDate() { 3607 return this.date == null ? null : this.date.getValue(); 3608 } 3609 3610 /** 3611 * @param value The date this measure was calculated. 3612 */ 3613 public MeasureReport setDate(Date value) { 3614 if (value == null) 3615 this.date = null; 3616 else { 3617 if (this.date == null) 3618 this.date = new DateTimeType(); 3619 this.date.setValue(value); 3620 } 3621 return this; 3622 } 3623 3624 /** 3625 * @return {@link #reporter} (The individual or organization that is reporting the data.) 3626 */ 3627 public Reference getReporter() { 3628 if (this.reporter == null) 3629 if (Configuration.errorOnAutoCreate()) 3630 throw new Error("Attempt to auto-create MeasureReport.reporter"); 3631 else if (Configuration.doAutoCreate()) 3632 this.reporter = new Reference(); // cc 3633 return this.reporter; 3634 } 3635 3636 public boolean hasReporter() { 3637 return this.reporter != null && !this.reporter.isEmpty(); 3638 } 3639 3640 /** 3641 * @param value {@link #reporter} (The individual or organization that is reporting the data.) 3642 */ 3643 public MeasureReport setReporter(Reference value) { 3644 this.reporter = value; 3645 return this; 3646 } 3647 3648 /** 3649 * @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.) 3650 */ 3651 public Reference getReportingVendor() { 3652 if (this.reportingVendor == null) 3653 if (Configuration.errorOnAutoCreate()) 3654 throw new Error("Attempt to auto-create MeasureReport.reportingVendor"); 3655 else if (Configuration.doAutoCreate()) 3656 this.reportingVendor = new Reference(); // cc 3657 return this.reportingVendor; 3658 } 3659 3660 public boolean hasReportingVendor() { 3661 return this.reportingVendor != null && !this.reportingVendor.isEmpty(); 3662 } 3663 3664 /** 3665 * @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.) 3666 */ 3667 public MeasureReport setReportingVendor(Reference value) { 3668 this.reportingVendor = value; 3669 return this; 3670 } 3671 3672 /** 3673 * @return {@link #location} (A reference to the location for which the data is being reported.) 3674 */ 3675 public Reference getLocation() { 3676 if (this.location == null) 3677 if (Configuration.errorOnAutoCreate()) 3678 throw new Error("Attempt to auto-create MeasureReport.location"); 3679 else if (Configuration.doAutoCreate()) 3680 this.location = new Reference(); // cc 3681 return this.location; 3682 } 3683 3684 public boolean hasLocation() { 3685 return this.location != null && !this.location.isEmpty(); 3686 } 3687 3688 /** 3689 * @param value {@link #location} (A reference to the location for which the data is being reported.) 3690 */ 3691 public MeasureReport setLocation(Reference value) { 3692 this.location = value; 3693 return this; 3694 } 3695 3696 /** 3697 * @return {@link #period} (The reporting period for which the report was calculated.) 3698 */ 3699 public Period getPeriod() { 3700 if (this.period == null) 3701 if (Configuration.errorOnAutoCreate()) 3702 throw new Error("Attempt to auto-create MeasureReport.period"); 3703 else if (Configuration.doAutoCreate()) 3704 this.period = new Period(); // cc 3705 return this.period; 3706 } 3707 3708 public boolean hasPeriod() { 3709 return this.period != null && !this.period.isEmpty(); 3710 } 3711 3712 /** 3713 * @param value {@link #period} (The reporting period for which the report was calculated.) 3714 */ 3715 public MeasureReport setPeriod(Period value) { 3716 this.period = value; 3717 return this; 3718 } 3719 3720 /** 3721 * @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.) 3722 */ 3723 public Reference getInputParameters() { 3724 if (this.inputParameters == null) 3725 if (Configuration.errorOnAutoCreate()) 3726 throw new Error("Attempt to auto-create MeasureReport.inputParameters"); 3727 else if (Configuration.doAutoCreate()) 3728 this.inputParameters = new Reference(); // cc 3729 return this.inputParameters; 3730 } 3731 3732 public boolean hasInputParameters() { 3733 return this.inputParameters != null && !this.inputParameters.isEmpty(); 3734 } 3735 3736 /** 3737 * @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.) 3738 */ 3739 public MeasureReport setInputParameters(Reference value) { 3740 this.inputParameters = value; 3741 return this; 3742 } 3743 3744 /** 3745 * @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.) 3746 */ 3747 public CodeableConcept getScoring() { 3748 if (this.scoring == null) 3749 if (Configuration.errorOnAutoCreate()) 3750 throw new Error("Attempt to auto-create MeasureReport.scoring"); 3751 else if (Configuration.doAutoCreate()) 3752 this.scoring = new CodeableConcept(); // cc 3753 return this.scoring; 3754 } 3755 3756 public boolean hasScoring() { 3757 return this.scoring != null && !this.scoring.isEmpty(); 3758 } 3759 3760 /** 3761 * @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.) 3762 */ 3763 public MeasureReport setScoring(CodeableConcept value) { 3764 this.scoring = value; 3765 return this; 3766 } 3767 3768 /** 3769 * @return {@link #improvementNotation} (Whether improvement in the measure is noted by an increase or decrease in the measure score.) 3770 */ 3771 public CodeableConcept getImprovementNotation() { 3772 if (this.improvementNotation == null) 3773 if (Configuration.errorOnAutoCreate()) 3774 throw new Error("Attempt to auto-create MeasureReport.improvementNotation"); 3775 else if (Configuration.doAutoCreate()) 3776 this.improvementNotation = new CodeableConcept(); // cc 3777 return this.improvementNotation; 3778 } 3779 3780 public boolean hasImprovementNotation() { 3781 return this.improvementNotation != null && !this.improvementNotation.isEmpty(); 3782 } 3783 3784 /** 3785 * @param value {@link #improvementNotation} (Whether improvement in the measure is noted by an increase or decrease in the measure score.) 3786 */ 3787 public MeasureReport setImprovementNotation(CodeableConcept value) { 3788 this.improvementNotation = value; 3789 return this; 3790 } 3791 3792 /** 3793 * @return {@link #group} (The results of the calculation, one for each population group in the measure.) 3794 */ 3795 public List<MeasureReportGroupComponent> getGroup() { 3796 if (this.group == null) 3797 this.group = new ArrayList<MeasureReportGroupComponent>(); 3798 return this.group; 3799 } 3800 3801 /** 3802 * @return Returns a reference to <code>this</code> for easy method chaining 3803 */ 3804 public MeasureReport setGroup(List<MeasureReportGroupComponent> theGroup) { 3805 this.group = theGroup; 3806 return this; 3807 } 3808 3809 public boolean hasGroup() { 3810 if (this.group == null) 3811 return false; 3812 for (MeasureReportGroupComponent item : this.group) 3813 if (!item.isEmpty()) 3814 return true; 3815 return false; 3816 } 3817 3818 public MeasureReportGroupComponent addGroup() { //3 3819 MeasureReportGroupComponent t = new MeasureReportGroupComponent(); 3820 if (this.group == null) 3821 this.group = new ArrayList<MeasureReportGroupComponent>(); 3822 this.group.add(t); 3823 return t; 3824 } 3825 3826 public MeasureReport addGroup(MeasureReportGroupComponent t) { //3 3827 if (t == null) 3828 return this; 3829 if (this.group == null) 3830 this.group = new ArrayList<MeasureReportGroupComponent>(); 3831 this.group.add(t); 3832 return this; 3833 } 3834 3835 /** 3836 * @return The first repetition of repeating field {@link #group}, creating it if it does not already exist {3} 3837 */ 3838 public MeasureReportGroupComponent getGroupFirstRep() { 3839 if (getGroup().isEmpty()) { 3840 addGroup(); 3841 } 3842 return getGroup().get(0); 3843 } 3844 3845 /** 3846 * @return {@link #supplementalData} (A reference to a Resource that represents additional information collected for the report. If the value of the supplemental data is not a Resource (i.e. evaluating the supplementalData expression for this case in the measure results in a value that is not a FHIR Resource), it is reported as a reference to a contained Observation resource.) 3847 */ 3848 public List<Reference> getSupplementalData() { 3849 if (this.supplementalData == null) 3850 this.supplementalData = new ArrayList<Reference>(); 3851 return this.supplementalData; 3852 } 3853 3854 /** 3855 * @return Returns a reference to <code>this</code> for easy method chaining 3856 */ 3857 public MeasureReport setSupplementalData(List<Reference> theSupplementalData) { 3858 this.supplementalData = theSupplementalData; 3859 return this; 3860 } 3861 3862 public boolean hasSupplementalData() { 3863 if (this.supplementalData == null) 3864 return false; 3865 for (Reference item : this.supplementalData) 3866 if (!item.isEmpty()) 3867 return true; 3868 return false; 3869 } 3870 3871 public Reference addSupplementalData() { //3 3872 Reference t = new Reference(); 3873 if (this.supplementalData == null) 3874 this.supplementalData = new ArrayList<Reference>(); 3875 this.supplementalData.add(t); 3876 return t; 3877 } 3878 3879 public MeasureReport addSupplementalData(Reference t) { //3 3880 if (t == null) 3881 return this; 3882 if (this.supplementalData == null) 3883 this.supplementalData = new ArrayList<Reference>(); 3884 this.supplementalData.add(t); 3885 return this; 3886 } 3887 3888 /** 3889 * @return The first repetition of repeating field {@link #supplementalData}, creating it if it does not already exist {3} 3890 */ 3891 public Reference getSupplementalDataFirstRep() { 3892 if (getSupplementalData().isEmpty()) { 3893 addSupplementalData(); 3894 } 3895 return getSupplementalData().get(0); 3896 } 3897 3898 /** 3899 * @return {@link #evaluatedResource} (Evaluated resources are used to capture what data was involved in the calculation of a measure. This usage is only allowed for individual reports to ensure that the size of the MeasureReport resource is bounded.) 3900 */ 3901 public List<Reference> getEvaluatedResource() { 3902 if (this.evaluatedResource == null) 3903 this.evaluatedResource = new ArrayList<Reference>(); 3904 return this.evaluatedResource; 3905 } 3906 3907 /** 3908 * @return Returns a reference to <code>this</code> for easy method chaining 3909 */ 3910 public MeasureReport setEvaluatedResource(List<Reference> theEvaluatedResource) { 3911 this.evaluatedResource = theEvaluatedResource; 3912 return this; 3913 } 3914 3915 public boolean hasEvaluatedResource() { 3916 if (this.evaluatedResource == null) 3917 return false; 3918 for (Reference item : this.evaluatedResource) 3919 if (!item.isEmpty()) 3920 return true; 3921 return false; 3922 } 3923 3924 public Reference addEvaluatedResource() { //3 3925 Reference t = new Reference(); 3926 if (this.evaluatedResource == null) 3927 this.evaluatedResource = new ArrayList<Reference>(); 3928 this.evaluatedResource.add(t); 3929 return t; 3930 } 3931 3932 public MeasureReport addEvaluatedResource(Reference t) { //3 3933 if (t == null) 3934 return this; 3935 if (this.evaluatedResource == null) 3936 this.evaluatedResource = new ArrayList<Reference>(); 3937 this.evaluatedResource.add(t); 3938 return this; 3939 } 3940 3941 /** 3942 * @return The first repetition of repeating field {@link #evaluatedResource}, creating it if it does not already exist {3} 3943 */ 3944 public Reference getEvaluatedResourceFirstRep() { 3945 if (getEvaluatedResource().isEmpty()) { 3946 addEvaluatedResource(); 3947 } 3948 return getEvaluatedResource().get(0); 3949 } 3950 3951 protected void listChildren(List<Property> children) { 3952 super.listChildren(children); 3953 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)); 3954 children.add(new Property("status", "code", "The MeasureReport status. No data will be available until the MeasureReport status is complete.", 0, 1, status)); 3955 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)); 3956 children.add(new Property("dataUpdateType", "code", "Indicates whether the data submitted in a 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)); 3957 children.add(new Property("measure", "canonical(Measure)", "A reference to the Measure that was calculated to produce this report.", 0, 1, measure)); 3958 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)); 3959 children.add(new Property("date", "dateTime", "The date this measure was calculated.", 0, 1, date)); 3960 children.add(new Property("reporter", "Reference(Practitioner|PractitionerRole|Organization|Group)", "The individual or organization that is reporting the data.", 0, 1, reporter)); 3961 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)); 3962 children.add(new Property("location", "Reference(Location)", "A reference to the location for which the data is being reported.", 0, 1, location)); 3963 children.add(new Property("period", "Period", "The reporting period for which the report was calculated.", 0, 1, period)); 3964 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)); 3965 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)); 3966 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)); 3967 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)); 3968 children.add(new Property("supplementalData", "Reference(Any)", "A reference to a Resource that represents additional information collected for the report. If the value of the supplemental data is not a Resource (i.e. evaluating the supplementalData expression for this case in the measure results in a value that is not a FHIR Resource), it is reported as a reference to a contained Observation resource.", 0, java.lang.Integer.MAX_VALUE, supplementalData)); 3969 children.add(new Property("evaluatedResource", "Reference(Any)", "Evaluated resources are used to capture what data was involved in the calculation of a measure. This usage is only allowed for individual reports to ensure that the size of the MeasureReport resource is bounded.", 0, java.lang.Integer.MAX_VALUE, evaluatedResource)); 3970 } 3971 3972 @Override 3973 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3974 switch (_hash) { 3975 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); 3976 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); 3977 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); 3978 case -425890067: /*dataUpdateType*/ return new Property("dataUpdateType", "code", "Indicates whether the data submitted in a 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); 3979 case 938321246: /*measure*/ return new Property("measure", "canonical(Measure)", "A reference to the Measure that was calculated to produce this report.", 0, 1, measure); 3980 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); 3981 case 3076014: /*date*/ return new Property("date", "dateTime", "The date this measure was calculated.", 0, 1, date); 3982 case -427039519: /*reporter*/ return new Property("reporter", "Reference(Practitioner|PractitionerRole|Organization|Group)", "The individual or organization that is reporting the data.", 0, 1, reporter); 3983 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); 3984 case 1901043637: /*location*/ return new Property("location", "Reference(Location)", "A reference to the location for which the data is being reported.", 0, 1, location); 3985 case -991726143: /*period*/ return new Property("period", "Period", "The reporting period for which the report was calculated.", 0, 1, period); 3986 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); 3987 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); 3988 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); 3989 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); 3990 case 1447496814: /*supplementalData*/ return new Property("supplementalData", "Reference(Any)", "A reference to a Resource that represents additional information collected for the report. If the value of the supplemental data is not a Resource (i.e. evaluating the supplementalData expression for this case in the measure results in a value that is not a FHIR Resource), it is reported as a reference to a contained Observation resource.", 0, java.lang.Integer.MAX_VALUE, supplementalData); 3991 case -1056771047: /*evaluatedResource*/ return new Property("evaluatedResource", "Reference(Any)", "Evaluated resources are used to capture what data was involved in the calculation of a measure. This usage is only allowed for individual reports to ensure that the size of the MeasureReport resource is bounded.", 0, java.lang.Integer.MAX_VALUE, evaluatedResource); 3992 default: return super.getNamedProperty(_hash, _name, _checkValid); 3993 } 3994 3995 } 3996 3997 @Override 3998 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3999 switch (hash) { 4000 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 4001 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<MeasureReportStatus> 4002 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<MeasureReportType> 4003 case -425890067: /*dataUpdateType*/ return this.dataUpdateType == null ? new Base[0] : new Base[] {this.dataUpdateType}; // Enumeration<SubmitDataUpdateType> 4004 case 938321246: /*measure*/ return this.measure == null ? new Base[0] : new Base[] {this.measure}; // CanonicalType 4005 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 4006 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 4007 case -427039519: /*reporter*/ return this.reporter == null ? new Base[0] : new Base[] {this.reporter}; // Reference 4008 case 581336342: /*reportingVendor*/ return this.reportingVendor == null ? new Base[0] : new Base[] {this.reportingVendor}; // Reference 4009 case 1901043637: /*location*/ return this.location == null ? new Base[0] : new Base[] {this.location}; // Reference 4010 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 4011 case -812039852: /*inputParameters*/ return this.inputParameters == null ? new Base[0] : new Base[] {this.inputParameters}; // Reference 4012 case 1924005583: /*scoring*/ return this.scoring == null ? new Base[0] : new Base[] {this.scoring}; // CodeableConcept 4013 case -2085456136: /*improvementNotation*/ return this.improvementNotation == null ? new Base[0] : new Base[] {this.improvementNotation}; // CodeableConcept 4014 case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // MeasureReportGroupComponent 4015 case 1447496814: /*supplementalData*/ return this.supplementalData == null ? new Base[0] : this.supplementalData.toArray(new Base[this.supplementalData.size()]); // Reference 4016 case -1056771047: /*evaluatedResource*/ return this.evaluatedResource == null ? new Base[0] : this.evaluatedResource.toArray(new Base[this.evaluatedResource.size()]); // Reference 4017 default: return super.getProperty(hash, name, checkValid); 4018 } 4019 4020 } 4021 4022 @Override 4023 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4024 switch (hash) { 4025 case -1618432855: // identifier 4026 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 4027 return value; 4028 case -892481550: // status 4029 value = new MeasureReportStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 4030 this.status = (Enumeration) value; // Enumeration<MeasureReportStatus> 4031 return value; 4032 case 3575610: // type 4033 value = new MeasureReportTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 4034 this.type = (Enumeration) value; // Enumeration<MeasureReportType> 4035 return value; 4036 case -425890067: // dataUpdateType 4037 value = new SubmitDataUpdateTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 4038 this.dataUpdateType = (Enumeration) value; // Enumeration<SubmitDataUpdateType> 4039 return value; 4040 case 938321246: // measure 4041 this.measure = TypeConvertor.castToCanonical(value); // CanonicalType 4042 return value; 4043 case -1867885268: // subject 4044 this.subject = TypeConvertor.castToReference(value); // Reference 4045 return value; 4046 case 3076014: // date 4047 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 4048 return value; 4049 case -427039519: // reporter 4050 this.reporter = TypeConvertor.castToReference(value); // Reference 4051 return value; 4052 case 581336342: // reportingVendor 4053 this.reportingVendor = TypeConvertor.castToReference(value); // Reference 4054 return value; 4055 case 1901043637: // location 4056 this.location = TypeConvertor.castToReference(value); // Reference 4057 return value; 4058 case -991726143: // period 4059 this.period = TypeConvertor.castToPeriod(value); // Period 4060 return value; 4061 case -812039852: // inputParameters 4062 this.inputParameters = TypeConvertor.castToReference(value); // Reference 4063 return value; 4064 case 1924005583: // scoring 4065 this.scoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4066 return value; 4067 case -2085456136: // improvementNotation 4068 this.improvementNotation = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4069 return value; 4070 case 98629247: // group 4071 this.getGroup().add((MeasureReportGroupComponent) value); // MeasureReportGroupComponent 4072 return value; 4073 case 1447496814: // supplementalData 4074 this.getSupplementalData().add(TypeConvertor.castToReference(value)); // Reference 4075 return value; 4076 case -1056771047: // evaluatedResource 4077 this.getEvaluatedResource().add(TypeConvertor.castToReference(value)); // Reference 4078 return value; 4079 default: return super.setProperty(hash, name, value); 4080 } 4081 4082 } 4083 4084 @Override 4085 public Base setProperty(String name, Base value) throws FHIRException { 4086 if (name.equals("identifier")) { 4087 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 4088 } else if (name.equals("status")) { 4089 value = new MeasureReportStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 4090 this.status = (Enumeration) value; // Enumeration<MeasureReportStatus> 4091 } else if (name.equals("type")) { 4092 value = new MeasureReportTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 4093 this.type = (Enumeration) value; // Enumeration<MeasureReportType> 4094 } else if (name.equals("dataUpdateType")) { 4095 value = new SubmitDataUpdateTypeEnumFactory().fromType(TypeConvertor.castToCode(value)); 4096 this.dataUpdateType = (Enumeration) value; // Enumeration<SubmitDataUpdateType> 4097 } else if (name.equals("measure")) { 4098 this.measure = TypeConvertor.castToCanonical(value); // CanonicalType 4099 } else if (name.equals("subject")) { 4100 this.subject = TypeConvertor.castToReference(value); // Reference 4101 } else if (name.equals("date")) { 4102 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 4103 } else if (name.equals("reporter")) { 4104 this.reporter = TypeConvertor.castToReference(value); // Reference 4105 } else if (name.equals("reportingVendor")) { 4106 this.reportingVendor = TypeConvertor.castToReference(value); // Reference 4107 } else if (name.equals("location")) { 4108 this.location = TypeConvertor.castToReference(value); // Reference 4109 } else if (name.equals("period")) { 4110 this.period = TypeConvertor.castToPeriod(value); // Period 4111 } else if (name.equals("inputParameters")) { 4112 this.inputParameters = TypeConvertor.castToReference(value); // Reference 4113 } else if (name.equals("scoring")) { 4114 this.scoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4115 } else if (name.equals("improvementNotation")) { 4116 this.improvementNotation = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 4117 } else if (name.equals("group")) { 4118 this.getGroup().add((MeasureReportGroupComponent) value); 4119 } else if (name.equals("supplementalData")) { 4120 this.getSupplementalData().add(TypeConvertor.castToReference(value)); 4121 } else if (name.equals("evaluatedResource")) { 4122 this.getEvaluatedResource().add(TypeConvertor.castToReference(value)); 4123 } else 4124 return super.setProperty(name, value); 4125 return value; 4126 } 4127 4128 @Override 4129 public Base makeProperty(int hash, String name) throws FHIRException { 4130 switch (hash) { 4131 case -1618432855: return addIdentifier(); 4132 case -892481550: return getStatusElement(); 4133 case 3575610: return getTypeElement(); 4134 case -425890067: return getDataUpdateTypeElement(); 4135 case 938321246: return getMeasureElement(); 4136 case -1867885268: return getSubject(); 4137 case 3076014: return getDateElement(); 4138 case -427039519: return getReporter(); 4139 case 581336342: return getReportingVendor(); 4140 case 1901043637: return getLocation(); 4141 case -991726143: return getPeriod(); 4142 case -812039852: return getInputParameters(); 4143 case 1924005583: return getScoring(); 4144 case -2085456136: return getImprovementNotation(); 4145 case 98629247: return addGroup(); 4146 case 1447496814: return addSupplementalData(); 4147 case -1056771047: return addEvaluatedResource(); 4148 default: return super.makeProperty(hash, name); 4149 } 4150 4151 } 4152 4153 @Override 4154 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4155 switch (hash) { 4156 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 4157 case -892481550: /*status*/ return new String[] {"code"}; 4158 case 3575610: /*type*/ return new String[] {"code"}; 4159 case -425890067: /*dataUpdateType*/ return new String[] {"code"}; 4160 case 938321246: /*measure*/ return new String[] {"canonical"}; 4161 case -1867885268: /*subject*/ return new String[] {"Reference"}; 4162 case 3076014: /*date*/ return new String[] {"dateTime"}; 4163 case -427039519: /*reporter*/ return new String[] {"Reference"}; 4164 case 581336342: /*reportingVendor*/ return new String[] {"Reference"}; 4165 case 1901043637: /*location*/ return new String[] {"Reference"}; 4166 case -991726143: /*period*/ return new String[] {"Period"}; 4167 case -812039852: /*inputParameters*/ return new String[] {"Reference"}; 4168 case 1924005583: /*scoring*/ return new String[] {"CodeableConcept"}; 4169 case -2085456136: /*improvementNotation*/ return new String[] {"CodeableConcept"}; 4170 case 98629247: /*group*/ return new String[] {}; 4171 case 1447496814: /*supplementalData*/ return new String[] {"Reference"}; 4172 case -1056771047: /*evaluatedResource*/ return new String[] {"Reference"}; 4173 default: return super.getTypesForProperty(hash, name); 4174 } 4175 4176 } 4177 4178 @Override 4179 public Base addChild(String name) throws FHIRException { 4180 if (name.equals("identifier")) { 4181 return addIdentifier(); 4182 } 4183 else if (name.equals("status")) { 4184 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.status"); 4185 } 4186 else if (name.equals("type")) { 4187 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.type"); 4188 } 4189 else if (name.equals("dataUpdateType")) { 4190 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.dataUpdateType"); 4191 } 4192 else if (name.equals("measure")) { 4193 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.measure"); 4194 } 4195 else if (name.equals("subject")) { 4196 this.subject = new Reference(); 4197 return this.subject; 4198 } 4199 else if (name.equals("date")) { 4200 throw new FHIRException("Cannot call addChild on a singleton property MeasureReport.date"); 4201 } 4202 else if (name.equals("reporter")) { 4203 this.reporter = new Reference(); 4204 return this.reporter; 4205 } 4206 else if (name.equals("reportingVendor")) { 4207 this.reportingVendor = new Reference(); 4208 return this.reportingVendor; 4209 } 4210 else if (name.equals("location")) { 4211 this.location = new Reference(); 4212 return this.location; 4213 } 4214 else if (name.equals("period")) { 4215 this.period = new Period(); 4216 return this.period; 4217 } 4218 else if (name.equals("inputParameters")) { 4219 this.inputParameters = new Reference(); 4220 return this.inputParameters; 4221 } 4222 else if (name.equals("scoring")) { 4223 this.scoring = new CodeableConcept(); 4224 return this.scoring; 4225 } 4226 else if (name.equals("improvementNotation")) { 4227 this.improvementNotation = new CodeableConcept(); 4228 return this.improvementNotation; 4229 } 4230 else if (name.equals("group")) { 4231 return addGroup(); 4232 } 4233 else if (name.equals("supplementalData")) { 4234 return addSupplementalData(); 4235 } 4236 else if (name.equals("evaluatedResource")) { 4237 return addEvaluatedResource(); 4238 } 4239 else 4240 return super.addChild(name); 4241 } 4242 4243 public String fhirType() { 4244 return "MeasureReport"; 4245 4246 } 4247 4248 public MeasureReport copy() { 4249 MeasureReport dst = new MeasureReport(); 4250 copyValues(dst); 4251 return dst; 4252 } 4253 4254 public void copyValues(MeasureReport dst) { 4255 super.copyValues(dst); 4256 if (identifier != null) { 4257 dst.identifier = new ArrayList<Identifier>(); 4258 for (Identifier i : identifier) 4259 dst.identifier.add(i.copy()); 4260 }; 4261 dst.status = status == null ? null : status.copy(); 4262 dst.type = type == null ? null : type.copy(); 4263 dst.dataUpdateType = dataUpdateType == null ? null : dataUpdateType.copy(); 4264 dst.measure = measure == null ? null : measure.copy(); 4265 dst.subject = subject == null ? null : subject.copy(); 4266 dst.date = date == null ? null : date.copy(); 4267 dst.reporter = reporter == null ? null : reporter.copy(); 4268 dst.reportingVendor = reportingVendor == null ? null : reportingVendor.copy(); 4269 dst.location = location == null ? null : location.copy(); 4270 dst.period = period == null ? null : period.copy(); 4271 dst.inputParameters = inputParameters == null ? null : inputParameters.copy(); 4272 dst.scoring = scoring == null ? null : scoring.copy(); 4273 dst.improvementNotation = improvementNotation == null ? null : improvementNotation.copy(); 4274 if (group != null) { 4275 dst.group = new ArrayList<MeasureReportGroupComponent>(); 4276 for (MeasureReportGroupComponent i : group) 4277 dst.group.add(i.copy()); 4278 }; 4279 if (supplementalData != null) { 4280 dst.supplementalData = new ArrayList<Reference>(); 4281 for (Reference i : supplementalData) 4282 dst.supplementalData.add(i.copy()); 4283 }; 4284 if (evaluatedResource != null) { 4285 dst.evaluatedResource = new ArrayList<Reference>(); 4286 for (Reference i : evaluatedResource) 4287 dst.evaluatedResource.add(i.copy()); 4288 }; 4289 } 4290 4291 protected MeasureReport typedCopy() { 4292 return copy(); 4293 } 4294 4295 @Override 4296 public boolean equalsDeep(Base other_) { 4297 if (!super.equalsDeep(other_)) 4298 return false; 4299 if (!(other_ instanceof MeasureReport)) 4300 return false; 4301 MeasureReport o = (MeasureReport) other_; 4302 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(type, o.type, true) 4303 && compareDeep(dataUpdateType, o.dataUpdateType, true) && compareDeep(measure, o.measure, true) 4304 && compareDeep(subject, o.subject, true) && compareDeep(date, o.date, true) && compareDeep(reporter, o.reporter, true) 4305 && compareDeep(reportingVendor, o.reportingVendor, true) && compareDeep(location, o.location, true) 4306 && compareDeep(period, o.period, true) && compareDeep(inputParameters, o.inputParameters, true) 4307 && compareDeep(scoring, o.scoring, true) && compareDeep(improvementNotation, o.improvementNotation, true) 4308 && compareDeep(group, o.group, true) && compareDeep(supplementalData, o.supplementalData, true) 4309 && compareDeep(evaluatedResource, o.evaluatedResource, true); 4310 } 4311 4312 @Override 4313 public boolean equalsShallow(Base other_) { 4314 if (!super.equalsShallow(other_)) 4315 return false; 4316 if (!(other_ instanceof MeasureReport)) 4317 return false; 4318 MeasureReport o = (MeasureReport) other_; 4319 return compareValues(status, o.status, true) && compareValues(type, o.type, true) && compareValues(dataUpdateType, o.dataUpdateType, true) 4320 && compareValues(measure, o.measure, true) && compareValues(date, o.date, true); 4321 } 4322 4323 public boolean isEmpty() { 4324 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, type 4325 , dataUpdateType, measure, subject, date, reporter, reportingVendor, location 4326 , period, inputParameters, scoring, improvementNotation, group, supplementalData 4327 , evaluatedResource); 4328 } 4329 4330 @Override 4331 public ResourceType getResourceType() { 4332 return ResourceType.MeasureReport; 4333 } 4334 4335 /** 4336 * Search parameter: <b>evaluated-resource</b> 4337 * <p> 4338 * Description: <b>An evaluated resource referenced by the measure report</b><br> 4339 * Type: <b>reference</b><br> 4340 * Path: <b>MeasureReport.evaluatedResource</b><br> 4341 * </p> 4342 */ 4343 @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, BiologicallyDerivedProductDispense.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, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.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, InventoryItem.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, MedicationStatement.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, Parameters.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, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } ) 4344 public static final String SP_EVALUATED_RESOURCE = "evaluated-resource"; 4345 /** 4346 * <b>Fluent Client</b> search parameter constant for <b>evaluated-resource</b> 4347 * <p> 4348 * Description: <b>An evaluated resource referenced by the measure report</b><br> 4349 * Type: <b>reference</b><br> 4350 * Path: <b>MeasureReport.evaluatedResource</b><br> 4351 * </p> 4352 */ 4353 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam EVALUATED_RESOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_EVALUATED_RESOURCE); 4354 4355/** 4356 * Constant for fluent queries to be used to add include statements. Specifies 4357 * the path value of "<b>MeasureReport:evaluated-resource</b>". 4358 */ 4359 public static final ca.uhn.fhir.model.api.Include INCLUDE_EVALUATED_RESOURCE = new ca.uhn.fhir.model.api.Include("MeasureReport:evaluated-resource").toLocked(); 4360 4361 /** 4362 * Search parameter: <b>location</b> 4363 * <p> 4364 * Description: <b>The location to return measure report results for</b><br> 4365 * Type: <b>reference</b><br> 4366 * Path: <b>MeasureReport.location</b><br> 4367 * </p> 4368 */ 4369 @SearchParamDefinition(name="location", path="MeasureReport.location", description="The location to return measure report results for", type="reference", target={Location.class } ) 4370 public static final String SP_LOCATION = "location"; 4371 /** 4372 * <b>Fluent Client</b> search parameter constant for <b>location</b> 4373 * <p> 4374 * Description: <b>The location to return measure report results for</b><br> 4375 * Type: <b>reference</b><br> 4376 * Path: <b>MeasureReport.location</b><br> 4377 * </p> 4378 */ 4379 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 4380 4381/** 4382 * Constant for fluent queries to be used to add include statements. Specifies 4383 * the path value of "<b>MeasureReport:location</b>". 4384 */ 4385 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("MeasureReport:location").toLocked(); 4386 4387 /** 4388 * Search parameter: <b>measure</b> 4389 * <p> 4390 * Description: <b>The measure to return measure report results for</b><br> 4391 * Type: <b>reference</b><br> 4392 * Path: <b>MeasureReport.measure</b><br> 4393 * </p> 4394 */ 4395 @SearchParamDefinition(name="measure", path="MeasureReport.measure", description="The measure to return measure report results for", type="reference", target={Measure.class } ) 4396 public static final String SP_MEASURE = "measure"; 4397 /** 4398 * <b>Fluent Client</b> search parameter constant for <b>measure</b> 4399 * <p> 4400 * Description: <b>The measure to return measure report results for</b><br> 4401 * Type: <b>reference</b><br> 4402 * Path: <b>MeasureReport.measure</b><br> 4403 * </p> 4404 */ 4405 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam MEASURE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_MEASURE); 4406 4407/** 4408 * Constant for fluent queries to be used to add include statements. Specifies 4409 * the path value of "<b>MeasureReport:measure</b>". 4410 */ 4411 public static final ca.uhn.fhir.model.api.Include INCLUDE_MEASURE = new ca.uhn.fhir.model.api.Include("MeasureReport:measure").toLocked(); 4412 4413 /** 4414 * Search parameter: <b>period</b> 4415 * <p> 4416 * Description: <b>The period of the measure report</b><br> 4417 * Type: <b>date</b><br> 4418 * Path: <b>MeasureReport.period</b><br> 4419 * </p> 4420 */ 4421 @SearchParamDefinition(name="period", path="MeasureReport.period", description="The period of the measure report", type="date" ) 4422 public static final String SP_PERIOD = "period"; 4423 /** 4424 * <b>Fluent Client</b> search parameter constant for <b>period</b> 4425 * <p> 4426 * Description: <b>The period of the measure report</b><br> 4427 * Type: <b>date</b><br> 4428 * Path: <b>MeasureReport.period</b><br> 4429 * </p> 4430 */ 4431 public static final ca.uhn.fhir.rest.gclient.DateClientParam PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_PERIOD); 4432 4433 /** 4434 * Search parameter: <b>reporter</b> 4435 * <p> 4436 * Description: <b>The reporter to return measure report results for</b><br> 4437 * Type: <b>reference</b><br> 4438 * Path: <b>MeasureReport.reporter</b><br> 4439 * </p> 4440 */ 4441 @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 } ) 4442 public static final String SP_REPORTER = "reporter"; 4443 /** 4444 * <b>Fluent Client</b> search parameter constant for <b>reporter</b> 4445 * <p> 4446 * Description: <b>The reporter to return measure report results for</b><br> 4447 * Type: <b>reference</b><br> 4448 * Path: <b>MeasureReport.reporter</b><br> 4449 * </p> 4450 */ 4451 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REPORTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REPORTER); 4452 4453/** 4454 * Constant for fluent queries to be used to add include statements. Specifies 4455 * the path value of "<b>MeasureReport:reporter</b>". 4456 */ 4457 public static final ca.uhn.fhir.model.api.Include INCLUDE_REPORTER = new ca.uhn.fhir.model.api.Include("MeasureReport:reporter").toLocked(); 4458 4459 /** 4460 * Search parameter: <b>status</b> 4461 * <p> 4462 * Description: <b>The status of the measure report</b><br> 4463 * Type: <b>token</b><br> 4464 * Path: <b>MeasureReport.status</b><br> 4465 * </p> 4466 */ 4467 @SearchParamDefinition(name="status", path="MeasureReport.status", description="The status of the measure report", type="token" ) 4468 public static final String SP_STATUS = "status"; 4469 /** 4470 * <b>Fluent Client</b> search parameter constant for <b>status</b> 4471 * <p> 4472 * Description: <b>The status of the measure report</b><br> 4473 * Type: <b>token</b><br> 4474 * Path: <b>MeasureReport.status</b><br> 4475 * </p> 4476 */ 4477 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 4478 4479 /** 4480 * Search parameter: <b>subject</b> 4481 * <p> 4482 * Description: <b>The identity of a subject to search for individual measure report results for</b><br> 4483 * Type: <b>reference</b><br> 4484 * Path: <b>MeasureReport.subject</b><br> 4485 * </p> 4486 */ 4487 @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 } ) 4488 public static final String SP_SUBJECT = "subject"; 4489 /** 4490 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 4491 * <p> 4492 * Description: <b>The identity of a subject to search for individual measure report results for</b><br> 4493 * Type: <b>reference</b><br> 4494 * Path: <b>MeasureReport.subject</b><br> 4495 * </p> 4496 */ 4497 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 4498 4499/** 4500 * Constant for fluent queries to be used to add include statements. Specifies 4501 * the path value of "<b>MeasureReport:subject</b>". 4502 */ 4503 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("MeasureReport:subject").toLocked(); 4504 4505 /** 4506 * Search parameter: <b>date</b> 4507 * <p> 4508 * Description: <b>Multiple Resources: 4509 4510* [AdverseEvent](adverseevent.html): When the event occurred 4511* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 4512* [Appointment](appointment.html): Appointment date/time. 4513* [AuditEvent](auditevent.html): Time when the event was recorded 4514* [CarePlan](careplan.html): Time period plan covers 4515* [CareTeam](careteam.html): A date within the coverage time period. 4516* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 4517* [Composition](composition.html): Composition editing time 4518* [Consent](consent.html): When consent was agreed to 4519* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 4520* [DocumentReference](documentreference.html): When this document reference was created 4521* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 4522* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 4523* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 4524* [Flag](flag.html): Time period when flag is active 4525* [Immunization](immunization.html): Vaccination (non)-Administration Date 4526* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated 4527* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created 4528* [Invoice](invoice.html): Invoice date / posting date 4529* [List](list.html): When the list was prepared 4530* [MeasureReport](measurereport.html): The date of the measure report 4531* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication 4532* [Observation](observation.html): Clinically relevant time/time-period for observation 4533* [Procedure](procedure.html): When the procedure occurred or is occurring 4534* [ResearchSubject](researchsubject.html): Start and end of participation 4535* [RiskAssessment](riskassessment.html): When was assessment made? 4536* [SupplyRequest](supplyrequest.html): When the request was made 4537</b><br> 4538 * Type: <b>date</b><br> 4539 * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br> 4540 * </p> 4541 */ 4542 @SearchParamDefinition(name="date", path="AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): When the event occurred\r\n* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded\r\n* [Appointment](appointment.html): Appointment date/time.\r\n* [AuditEvent](auditevent.html): Time when the event was recorded\r\n* [CarePlan](careplan.html): Time period plan covers\r\n* [CareTeam](careteam.html): A date within the coverage time period.\r\n* [ClinicalImpression](clinicalimpression.html): When the assessment was documented\r\n* [Composition](composition.html): Composition editing time\r\n* [Consent](consent.html): When consent was agreed to\r\n* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report\r\n* [DocumentReference](documentreference.html): When this document reference was created\r\n* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted\r\n* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period\r\n* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated\r\n* [Flag](flag.html): Time period when flag is active\r\n* [Immunization](immunization.html): Vaccination (non)-Administration Date\r\n* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created\r\n* [Invoice](invoice.html): Invoice date / posting date\r\n* [List](list.html): When the list was prepared\r\n* [MeasureReport](measurereport.html): The date of the measure report\r\n* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication\r\n* [Observation](observation.html): Clinically relevant time/time-period for observation\r\n* [Procedure](procedure.html): When the procedure occurred or is occurring\r\n* [ResearchSubject](researchsubject.html): Start and end of participation\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" ) 4543 public static final String SP_DATE = "date"; 4544 /** 4545 * <b>Fluent Client</b> search parameter constant for <b>date</b> 4546 * <p> 4547 * Description: <b>Multiple Resources: 4548 4549* [AdverseEvent](adverseevent.html): When the event occurred 4550* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded 4551* [Appointment](appointment.html): Appointment date/time. 4552* [AuditEvent](auditevent.html): Time when the event was recorded 4553* [CarePlan](careplan.html): Time period plan covers 4554* [CareTeam](careteam.html): A date within the coverage time period. 4555* [ClinicalImpression](clinicalimpression.html): When the assessment was documented 4556* [Composition](composition.html): Composition editing time 4557* [Consent](consent.html): When consent was agreed to 4558* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report 4559* [DocumentReference](documentreference.html): When this document reference was created 4560* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted 4561* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period 4562* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated 4563* [Flag](flag.html): Time period when flag is active 4564* [Immunization](immunization.html): Vaccination (non)-Administration Date 4565* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated 4566* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created 4567* [Invoice](invoice.html): Invoice date / posting date 4568* [List](list.html): When the list was prepared 4569* [MeasureReport](measurereport.html): The date of the measure report 4570* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication 4571* [Observation](observation.html): Clinically relevant time/time-period for observation 4572* [Procedure](procedure.html): When the procedure occurred or is occurring 4573* [ResearchSubject](researchsubject.html): Start and end of participation 4574* [RiskAssessment](riskassessment.html): When was assessment made? 4575* [SupplyRequest](supplyrequest.html): When the request was made 4576</b><br> 4577 * Type: <b>date</b><br> 4578 * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br> 4579 * </p> 4580 */ 4581 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 4582 4583 /** 4584 * Search parameter: <b>identifier</b> 4585 * <p> 4586 * Description: <b>Multiple Resources: 4587 4588* [Account](account.html): Account number 4589* [AdverseEvent](adverseevent.html): Business identifier for the event 4590* [AllergyIntolerance](allergyintolerance.html): External ids for this item 4591* [Appointment](appointment.html): An Identifier of the Appointment 4592* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response 4593* [Basic](basic.html): Business identifier 4594* [BodyStructure](bodystructure.html): Bodystructure identifier 4595* [CarePlan](careplan.html): External Ids for this plan 4596* [CareTeam](careteam.html): External Ids for this team 4597* [ChargeItem](chargeitem.html): Business Identifier for item 4598* [Claim](claim.html): The primary identifier of the financial resource 4599* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse 4600* [ClinicalImpression](clinicalimpression.html): Business identifier 4601* [Communication](communication.html): Unique identifier 4602* [CommunicationRequest](communicationrequest.html): Unique identifier 4603* [Composition](composition.html): Version-independent identifier for the Composition 4604* [Condition](condition.html): A unique identifier of the condition record 4605* [Consent](consent.html): Identifier for this record (external references) 4606* [Contract](contract.html): The identity of the contract 4607* [Coverage](coverage.html): The primary identifier of the insured and the coverage 4608* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility 4609* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier 4610* [DetectedIssue](detectedissue.html): Unique id for the detected issue 4611* [DeviceRequest](devicerequest.html): Business identifier for request/order 4612* [DeviceUsage](deviceusage.html): Search by identifier 4613* [DiagnosticReport](diagnosticreport.html): An identifier for the report 4614* [DocumentReference](documentreference.html): Identifier of the attachment binary 4615* [Encounter](encounter.html): Identifier(s) by which this encounter is known 4616* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment 4617* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 4618* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit 4619* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 4620* [Flag](flag.html): Business identifier 4621* [Goal](goal.html): External Ids for this goal 4622* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response 4623* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection 4624* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 4625* [Immunization](immunization.html): Business identifier 4626* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation 4627* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier 4628* [Invoice](invoice.html): Business Identifier for item 4629* [List](list.html): Business identifier 4630* [MeasureReport](measurereport.html): External identifier of the measure report to be returned 4631* [Medication](medication.html): Returns medications with this external identifier 4632* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 4633* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 4634* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 4635* [MedicationStatement](medicationstatement.html): Return statements with this external identifier 4636* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence 4637* [NutritionIntake](nutritionintake.html): Return statements with this external identifier 4638* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 4639* [Observation](observation.html): The unique id for a particular observation 4640* [Person](person.html): A person Identifier 4641* [Procedure](procedure.html): A unique identifier for a procedure 4642* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response 4643* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson 4644* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration 4645* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study 4646* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 4647* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 4648* [Specimen](specimen.html): The unique identifier associated with the specimen 4649* [SupplyDelivery](supplydelivery.html): External identifier 4650* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 4651* [Task](task.html): Search for a task instance by its business identifier 4652* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 4653</b><br> 4654 * Type: <b>token</b><br> 4655 * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br> 4656 * </p> 4657 */ 4658 @SearchParamDefinition(name="identifier", path="Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [Account](account.html): Account number\r\n* [AdverseEvent](adverseevent.html): Business identifier for the event\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [Appointment](appointment.html): An Identifier of the Appointment\r\n* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response\r\n* [Basic](basic.html): Business identifier\r\n* [BodyStructure](bodystructure.html): Bodystructure identifier\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [ChargeItem](chargeitem.html): Business Identifier for item\r\n* [Claim](claim.html): The primary identifier of the financial resource\r\n* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse\r\n* [ClinicalImpression](clinicalimpression.html): Business identifier\r\n* [Communication](communication.html): Unique identifier\r\n* [CommunicationRequest](communicationrequest.html): Unique identifier\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [Contract](contract.html): The identity of the contract\r\n* [Coverage](coverage.html): The primary identifier of the insured and the coverage\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DeviceUsage](deviceusage.html): Search by identifier\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Flag](flag.html): Business identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response\r\n* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier\r\n* [Invoice](invoice.html): Business Identifier for item\r\n* [List](list.html): Business identifier\r\n* [MeasureReport](measurereport.html): External identifier of the measure report to be returned\r\n* [Medication](medication.html): Returns medications with this external identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationStatement](medicationstatement.html): Return statements with this external identifier\r\n* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence\r\n* [NutritionIntake](nutritionintake.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Person](person.html): A person Identifier\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response\r\n* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson\r\n* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration\r\n* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [Specimen](specimen.html): The unique identifier associated with the specimen\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [Task](task.html): Search for a task instance by its business identifier\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" ) 4659 public static final String SP_IDENTIFIER = "identifier"; 4660 /** 4661 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 4662 * <p> 4663 * Description: <b>Multiple Resources: 4664 4665* [Account](account.html): Account number 4666* [AdverseEvent](adverseevent.html): Business identifier for the event 4667* [AllergyIntolerance](allergyintolerance.html): External ids for this item 4668* [Appointment](appointment.html): An Identifier of the Appointment 4669* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response 4670* [Basic](basic.html): Business identifier 4671* [BodyStructure](bodystructure.html): Bodystructure identifier 4672* [CarePlan](careplan.html): External Ids for this plan 4673* [CareTeam](careteam.html): External Ids for this team 4674* [ChargeItem](chargeitem.html): Business Identifier for item 4675* [Claim](claim.html): The primary identifier of the financial resource 4676* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse 4677* [ClinicalImpression](clinicalimpression.html): Business identifier 4678* [Communication](communication.html): Unique identifier 4679* [CommunicationRequest](communicationrequest.html): Unique identifier 4680* [Composition](composition.html): Version-independent identifier for the Composition 4681* [Condition](condition.html): A unique identifier of the condition record 4682* [Consent](consent.html): Identifier for this record (external references) 4683* [Contract](contract.html): The identity of the contract 4684* [Coverage](coverage.html): The primary identifier of the insured and the coverage 4685* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility 4686* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier 4687* [DetectedIssue](detectedissue.html): Unique id for the detected issue 4688* [DeviceRequest](devicerequest.html): Business identifier for request/order 4689* [DeviceUsage](deviceusage.html): Search by identifier 4690* [DiagnosticReport](diagnosticreport.html): An identifier for the report 4691* [DocumentReference](documentreference.html): Identifier of the attachment binary 4692* [Encounter](encounter.html): Identifier(s) by which this encounter is known 4693* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment 4694* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 4695* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit 4696* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 4697* [Flag](flag.html): Business identifier 4698* [Goal](goal.html): External Ids for this goal 4699* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response 4700* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection 4701* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 4702* [Immunization](immunization.html): Business identifier 4703* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation 4704* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier 4705* [Invoice](invoice.html): Business Identifier for item 4706* [List](list.html): Business identifier 4707* [MeasureReport](measurereport.html): External identifier of the measure report to be returned 4708* [Medication](medication.html): Returns medications with this external identifier 4709* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 4710* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 4711* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 4712* [MedicationStatement](medicationstatement.html): Return statements with this external identifier 4713* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence 4714* [NutritionIntake](nutritionintake.html): Return statements with this external identifier 4715* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 4716* [Observation](observation.html): The unique id for a particular observation 4717* [Person](person.html): A person Identifier 4718* [Procedure](procedure.html): A unique identifier for a procedure 4719* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response 4720* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson 4721* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration 4722* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study 4723* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 4724* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 4725* [Specimen](specimen.html): The unique identifier associated with the specimen 4726* [SupplyDelivery](supplydelivery.html): External identifier 4727* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 4728* [Task](task.html): Search for a task instance by its business identifier 4729* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 4730</b><br> 4731 * Type: <b>token</b><br> 4732 * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br> 4733 * </p> 4734 */ 4735 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 4736 4737 /** 4738 * Search parameter: <b>patient</b> 4739 * <p> 4740 * Description: <b>Multiple Resources: 4741 4742* [Account](account.html): The entity that caused the expenses 4743* [AdverseEvent](adverseevent.html): Subject impacted by event 4744* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 4745* [Appointment](appointment.html): One of the individuals of the appointment is this patient 4746* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient 4747* [AuditEvent](auditevent.html): Where the activity involved patient data 4748* [Basic](basic.html): Identifies the focus of this resource 4749* [BodyStructure](bodystructure.html): Who this is about 4750* [CarePlan](careplan.html): Who the care plan is for 4751* [CareTeam](careteam.html): Who care team is for 4752* [ChargeItem](chargeitem.html): Individual service was done for/to 4753* [Claim](claim.html): Patient receiving the products or services 4754* [ClaimResponse](claimresponse.html): The subject of care 4755* [ClinicalImpression](clinicalimpression.html): Patient assessed 4756* [Communication](communication.html): Focus of message 4757* [CommunicationRequest](communicationrequest.html): Focus of message 4758* [Composition](composition.html): Who and/or what the composition is about 4759* [Condition](condition.html): Who has the condition? 4760* [Consent](consent.html): Who the consent applies to 4761* [Contract](contract.html): The identity of the subject of the contract (if a patient) 4762* [Coverage](coverage.html): Retrieve coverages for a patient 4763* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient 4764* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient 4765* [DetectedIssue](detectedissue.html): Associated patient 4766* [DeviceRequest](devicerequest.html): Individual the service is ordered for 4767* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 4768* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 4769* [DocumentReference](documentreference.html): Who/what is the subject of the document 4770* [Encounter](encounter.html): The patient present at the encounter 4771* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled 4772* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 4773* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient 4774* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 4775* [Flag](flag.html): The identity of a subject to list flags for 4776* [Goal](goal.html): Who this goal is intended for 4777* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results 4778* [ImagingSelection](imagingselection.html): Who the study is about 4779* [ImagingStudy](imagingstudy.html): Who the study is about 4780* [Immunization](immunization.html): The patient for the vaccination record 4781* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated 4782* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for 4783* [Invoice](invoice.html): Recipient(s) of goods and services 4784* [List](list.html): If all resources have the same subject 4785* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for 4786* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 4787* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 4788* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 4789* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 4790* [MolecularSequence](molecularsequence.html): The subject that the sequence is about 4791* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient. 4792* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 4793* [Observation](observation.html): The subject that the observation is about (if patient) 4794* [Person](person.html): The Person links to this Patient 4795* [Procedure](procedure.html): Search by subject - a patient 4796* [Provenance](provenance.html): Where the activity involved patient data 4797* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response 4798* [RelatedPerson](relatedperson.html): The patient this related person is related to 4799* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations 4800* [ResearchSubject](researchsubject.html): Who or what is part of study 4801* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 4802* [ServiceRequest](servicerequest.html): Search by subject - a patient 4803* [Specimen](specimen.html): The patient the specimen comes from 4804* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 4805* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined 4806* [Task](task.html): Search by patient 4807* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 4808</b><br> 4809 * Type: <b>reference</b><br> 4810 * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br> 4811 * </p> 4812 */ 4813 @SearchParamDefinition(name="patient", path="Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [Account](account.html): The entity that caused the expenses\r\n* [AdverseEvent](adverseevent.html): Subject impacted by event\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [Appointment](appointment.html): One of the individuals of the appointment is this patient\r\n* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient\r\n* [AuditEvent](auditevent.html): Where the activity involved patient data\r\n* [Basic](basic.html): Identifies the focus of this resource\r\n* [BodyStructure](bodystructure.html): Who this is about\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ChargeItem](chargeitem.html): Individual service was done for/to\r\n* [Claim](claim.html): Patient receiving the products or services\r\n* [ClaimResponse](claimresponse.html): The subject of care\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Communication](communication.html): Focus of message\r\n* [CommunicationRequest](communicationrequest.html): Focus of message\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [Contract](contract.html): The identity of the subject of the contract (if a patient)\r\n* [Coverage](coverage.html): Retrieve coverages for a patient\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results\r\n* [ImagingSelection](imagingselection.html): Who the study is about\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for\r\n* [Invoice](invoice.html): Recipient(s) of goods and services\r\n* [List](list.html): If all resources have the same subject\r\n* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.\r\n* [MolecularSequence](molecularsequence.html): The subject that the sequence is about\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Person](person.html): The Person links to this Patient\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [Provenance](provenance.html): Where the activity involved patient data\r\n* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response\r\n* [RelatedPerson](relatedperson.html): The patient this related person is related to\r\n* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations\r\n* [ResearchSubject](researchsubject.html): Who or what is part of study\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [Specimen](specimen.html): The patient the specimen comes from\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined\r\n* [Task](task.html): Search by patient\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Patient.class } ) 4814 public static final String SP_PATIENT = "patient"; 4815 /** 4816 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 4817 * <p> 4818 * Description: <b>Multiple Resources: 4819 4820* [Account](account.html): The entity that caused the expenses 4821* [AdverseEvent](adverseevent.html): Subject impacted by event 4822* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 4823* [Appointment](appointment.html): One of the individuals of the appointment is this patient 4824* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient 4825* [AuditEvent](auditevent.html): Where the activity involved patient data 4826* [Basic](basic.html): Identifies the focus of this resource 4827* [BodyStructure](bodystructure.html): Who this is about 4828* [CarePlan](careplan.html): Who the care plan is for 4829* [CareTeam](careteam.html): Who care team is for 4830* [ChargeItem](chargeitem.html): Individual service was done for/to 4831* [Claim](claim.html): Patient receiving the products or services 4832* [ClaimResponse](claimresponse.html): The subject of care 4833* [ClinicalImpression](clinicalimpression.html): Patient assessed 4834* [Communication](communication.html): Focus of message 4835* [CommunicationRequest](communicationrequest.html): Focus of message 4836* [Composition](composition.html): Who and/or what the composition is about 4837* [Condition](condition.html): Who has the condition? 4838* [Consent](consent.html): Who the consent applies to 4839* [Contract](contract.html): The identity of the subject of the contract (if a patient) 4840* [Coverage](coverage.html): Retrieve coverages for a patient 4841* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient 4842* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient 4843* [DetectedIssue](detectedissue.html): Associated patient 4844* [DeviceRequest](devicerequest.html): Individual the service is ordered for 4845* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 4846* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 4847* [DocumentReference](documentreference.html): Who/what is the subject of the document 4848* [Encounter](encounter.html): The patient present at the encounter 4849* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled 4850* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 4851* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient 4852* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 4853* [Flag](flag.html): The identity of a subject to list flags for 4854* [Goal](goal.html): Who this goal is intended for 4855* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results 4856* [ImagingSelection](imagingselection.html): Who the study is about 4857* [ImagingStudy](imagingstudy.html): Who the study is about 4858* [Immunization](immunization.html): The patient for the vaccination record 4859* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated 4860* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for 4861* [Invoice](invoice.html): Recipient(s) of goods and services 4862* [List](list.html): If all resources have the same subject 4863* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for 4864* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 4865* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 4866* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 4867* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 4868* [MolecularSequence](molecularsequence.html): The subject that the sequence is about 4869* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient. 4870* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 4871* [Observation](observation.html): The subject that the observation is about (if patient) 4872* [Person](person.html): The Person links to this Patient 4873* [Procedure](procedure.html): Search by subject - a patient 4874* [Provenance](provenance.html): Where the activity involved patient data 4875* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response 4876* [RelatedPerson](relatedperson.html): The patient this related person is related to 4877* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations 4878* [ResearchSubject](researchsubject.html): Who or what is part of study 4879* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 4880* [ServiceRequest](servicerequest.html): Search by subject - a patient 4881* [Specimen](specimen.html): The patient the specimen comes from 4882* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 4883* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined 4884* [Task](task.html): Search by patient 4885* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 4886</b><br> 4887 * Type: <b>reference</b><br> 4888 * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br> 4889 * </p> 4890 */ 4891 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 4892 4893/** 4894 * Constant for fluent queries to be used to add include statements. Specifies 4895 * the path value of "<b>MeasureReport:patient</b>". 4896 */ 4897 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("MeasureReport:patient").toLocked(); 4898 4899 4900} 4901