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