001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Thu, Dec 27, 2018 10:06-0500 for FHIR v4.0.0 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.r4.model.Enumerations.*; 038import ca.uhn.fhir.model.api.annotation.ResourceDef; 039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.ChildOrder; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.Block; 044import org.hl7.fhir.instance.model.api.*; 045import org.hl7.fhir.exceptions.FHIRException; 046/** 047 * The Measure resource provides the definition of a quality measure. 048 */ 049@ResourceDef(name="Measure", profile="http://hl7.org/fhir/StructureDefinition/Measure") 050@ChildOrder(names={"url", "identifier", "version", "name", "title", "subtitle", "status", "experimental", "subject[x]", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "purpose", "usage", "copyright", "approvalDate", "lastReviewDate", "effectivePeriod", "topic", "author", "editor", "reviewer", "endorser", "relatedArtifact", "library", "disclaimer", "scoring", "compositeScoring", "type", "riskAdjustment", "rateAggregation", "rationale", "clinicalRecommendationStatement", "improvementNotation", "definition", "guidance", "group", "supplementalData"}) 051public class Measure extends MetadataResource { 052 053 @Block() 054 public static class MeasureGroupComponent extends BackboneElement implements IBaseBackboneElement { 055 /** 056 * Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures. 057 */ 058 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 059 @Description(shortDefinition="Meaning of the group", formalDefinition="Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures." ) 060 protected CodeableConcept code; 061 062 /** 063 * The human readable description of this population group. 064 */ 065 @Child(name = "description", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 066 @Description(shortDefinition="Summary description", formalDefinition="The human readable description of this population group." ) 067 protected StringType description; 068 069 /** 070 * A population criteria for the measure. 071 */ 072 @Child(name = "population", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 073 @Description(shortDefinition="Population criteria", formalDefinition="A population criteria for the measure." ) 074 protected List<MeasureGroupPopulationComponent> population; 075 076 /** 077 * The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path. 078 */ 079 @Child(name = "stratifier", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 080 @Description(shortDefinition="Stratifier criteria for the measure", formalDefinition="The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path." ) 081 protected List<MeasureGroupStratifierComponent> stratifier; 082 083 private static final long serialVersionUID = -1797567579L; 084 085 /** 086 * Constructor 087 */ 088 public MeasureGroupComponent() { 089 super(); 090 } 091 092 /** 093 * @return {@link #code} (Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.) 094 */ 095 public CodeableConcept getCode() { 096 if (this.code == null) 097 if (Configuration.errorOnAutoCreate()) 098 throw new Error("Attempt to auto-create MeasureGroupComponent.code"); 099 else if (Configuration.doAutoCreate()) 100 this.code = new CodeableConcept(); // cc 101 return this.code; 102 } 103 104 public boolean hasCode() { 105 return this.code != null && !this.code.isEmpty(); 106 } 107 108 /** 109 * @param value {@link #code} (Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.) 110 */ 111 public MeasureGroupComponent setCode(CodeableConcept value) { 112 this.code = value; 113 return this; 114 } 115 116 /** 117 * @return {@link #description} (The human readable description of this population group.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 118 */ 119 public StringType getDescriptionElement() { 120 if (this.description == null) 121 if (Configuration.errorOnAutoCreate()) 122 throw new Error("Attempt to auto-create MeasureGroupComponent.description"); 123 else if (Configuration.doAutoCreate()) 124 this.description = new StringType(); // bb 125 return this.description; 126 } 127 128 public boolean hasDescriptionElement() { 129 return this.description != null && !this.description.isEmpty(); 130 } 131 132 public boolean hasDescription() { 133 return this.description != null && !this.description.isEmpty(); 134 } 135 136 /** 137 * @param value {@link #description} (The human readable description of this population group.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 138 */ 139 public MeasureGroupComponent setDescriptionElement(StringType value) { 140 this.description = value; 141 return this; 142 } 143 144 /** 145 * @return The human readable description of this population group. 146 */ 147 public String getDescription() { 148 return this.description == null ? null : this.description.getValue(); 149 } 150 151 /** 152 * @param value The human readable description of this population group. 153 */ 154 public MeasureGroupComponent setDescription(String value) { 155 if (Utilities.noString(value)) 156 this.description = null; 157 else { 158 if (this.description == null) 159 this.description = new StringType(); 160 this.description.setValue(value); 161 } 162 return this; 163 } 164 165 /** 166 * @return {@link #population} (A population criteria for the measure.) 167 */ 168 public List<MeasureGroupPopulationComponent> getPopulation() { 169 if (this.population == null) 170 this.population = new ArrayList<MeasureGroupPopulationComponent>(); 171 return this.population; 172 } 173 174 /** 175 * @return Returns a reference to <code>this</code> for easy method chaining 176 */ 177 public MeasureGroupComponent setPopulation(List<MeasureGroupPopulationComponent> thePopulation) { 178 this.population = thePopulation; 179 return this; 180 } 181 182 public boolean hasPopulation() { 183 if (this.population == null) 184 return false; 185 for (MeasureGroupPopulationComponent item : this.population) 186 if (!item.isEmpty()) 187 return true; 188 return false; 189 } 190 191 public MeasureGroupPopulationComponent addPopulation() { //3 192 MeasureGroupPopulationComponent t = new MeasureGroupPopulationComponent(); 193 if (this.population == null) 194 this.population = new ArrayList<MeasureGroupPopulationComponent>(); 195 this.population.add(t); 196 return t; 197 } 198 199 public MeasureGroupComponent addPopulation(MeasureGroupPopulationComponent t) { //3 200 if (t == null) 201 return this; 202 if (this.population == null) 203 this.population = new ArrayList<MeasureGroupPopulationComponent>(); 204 this.population.add(t); 205 return this; 206 } 207 208 /** 209 * @return The first repetition of repeating field {@link #population}, creating it if it does not already exist 210 */ 211 public MeasureGroupPopulationComponent getPopulationFirstRep() { 212 if (getPopulation().isEmpty()) { 213 addPopulation(); 214 } 215 return getPopulation().get(0); 216 } 217 218 /** 219 * @return {@link #stratifier} (The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.) 220 */ 221 public List<MeasureGroupStratifierComponent> getStratifier() { 222 if (this.stratifier == null) 223 this.stratifier = new ArrayList<MeasureGroupStratifierComponent>(); 224 return this.stratifier; 225 } 226 227 /** 228 * @return Returns a reference to <code>this</code> for easy method chaining 229 */ 230 public MeasureGroupComponent setStratifier(List<MeasureGroupStratifierComponent> theStratifier) { 231 this.stratifier = theStratifier; 232 return this; 233 } 234 235 public boolean hasStratifier() { 236 if (this.stratifier == null) 237 return false; 238 for (MeasureGroupStratifierComponent item : this.stratifier) 239 if (!item.isEmpty()) 240 return true; 241 return false; 242 } 243 244 public MeasureGroupStratifierComponent addStratifier() { //3 245 MeasureGroupStratifierComponent t = new MeasureGroupStratifierComponent(); 246 if (this.stratifier == null) 247 this.stratifier = new ArrayList<MeasureGroupStratifierComponent>(); 248 this.stratifier.add(t); 249 return t; 250 } 251 252 public MeasureGroupComponent addStratifier(MeasureGroupStratifierComponent t) { //3 253 if (t == null) 254 return this; 255 if (this.stratifier == null) 256 this.stratifier = new ArrayList<MeasureGroupStratifierComponent>(); 257 this.stratifier.add(t); 258 return this; 259 } 260 261 /** 262 * @return The first repetition of repeating field {@link #stratifier}, creating it if it does not already exist 263 */ 264 public MeasureGroupStratifierComponent getStratifierFirstRep() { 265 if (getStratifier().isEmpty()) { 266 addStratifier(); 267 } 268 return getStratifier().get(0); 269 } 270 271 protected void listChildren(List<Property> children) { 272 super.listChildren(children); 273 children.add(new Property("code", "CodeableConcept", "Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.", 0, 1, code)); 274 children.add(new Property("description", "string", "The human readable description of this population group.", 0, 1, description)); 275 children.add(new Property("population", "", "A population criteria for the measure.", 0, java.lang.Integer.MAX_VALUE, population)); 276 children.add(new Property("stratifier", "", "The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, stratifier)); 277 } 278 279 @Override 280 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 281 switch (_hash) { 282 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.", 0, 1, code); 283 case -1724546052: /*description*/ return new Property("description", "string", "The human readable description of this population group.", 0, 1, description); 284 case -2023558323: /*population*/ return new Property("population", "", "A population criteria for the measure.", 0, java.lang.Integer.MAX_VALUE, population); 285 case 90983669: /*stratifier*/ return new Property("stratifier", "", "The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, stratifier); 286 default: return super.getNamedProperty(_hash, _name, _checkValid); 287 } 288 289 } 290 291 @Override 292 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 293 switch (hash) { 294 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 295 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 296 case -2023558323: /*population*/ return this.population == null ? new Base[0] : this.population.toArray(new Base[this.population.size()]); // MeasureGroupPopulationComponent 297 case 90983669: /*stratifier*/ return this.stratifier == null ? new Base[0] : this.stratifier.toArray(new Base[this.stratifier.size()]); // MeasureGroupStratifierComponent 298 default: return super.getProperty(hash, name, checkValid); 299 } 300 301 } 302 303 @Override 304 public Base setProperty(int hash, String name, Base value) throws FHIRException { 305 switch (hash) { 306 case 3059181: // code 307 this.code = castToCodeableConcept(value); // CodeableConcept 308 return value; 309 case -1724546052: // description 310 this.description = castToString(value); // StringType 311 return value; 312 case -2023558323: // population 313 this.getPopulation().add((MeasureGroupPopulationComponent) value); // MeasureGroupPopulationComponent 314 return value; 315 case 90983669: // stratifier 316 this.getStratifier().add((MeasureGroupStratifierComponent) value); // MeasureGroupStratifierComponent 317 return value; 318 default: return super.setProperty(hash, name, value); 319 } 320 321 } 322 323 @Override 324 public Base setProperty(String name, Base value) throws FHIRException { 325 if (name.equals("code")) { 326 this.code = castToCodeableConcept(value); // CodeableConcept 327 } else if (name.equals("description")) { 328 this.description = castToString(value); // StringType 329 } else if (name.equals("population")) { 330 this.getPopulation().add((MeasureGroupPopulationComponent) value); 331 } else if (name.equals("stratifier")) { 332 this.getStratifier().add((MeasureGroupStratifierComponent) value); 333 } else 334 return super.setProperty(name, value); 335 return value; 336 } 337 338 @Override 339 public Base makeProperty(int hash, String name) throws FHIRException { 340 switch (hash) { 341 case 3059181: return getCode(); 342 case -1724546052: return getDescriptionElement(); 343 case -2023558323: return addPopulation(); 344 case 90983669: return addStratifier(); 345 default: return super.makeProperty(hash, name); 346 } 347 348 } 349 350 @Override 351 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 352 switch (hash) { 353 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 354 case -1724546052: /*description*/ return new String[] {"string"}; 355 case -2023558323: /*population*/ return new String[] {}; 356 case 90983669: /*stratifier*/ return new String[] {}; 357 default: return super.getTypesForProperty(hash, name); 358 } 359 360 } 361 362 @Override 363 public Base addChild(String name) throws FHIRException { 364 if (name.equals("code")) { 365 this.code = new CodeableConcept(); 366 return this.code; 367 } 368 else if (name.equals("description")) { 369 throw new FHIRException("Cannot call addChild on a primitive type Measure.description"); 370 } 371 else if (name.equals("population")) { 372 return addPopulation(); 373 } 374 else if (name.equals("stratifier")) { 375 return addStratifier(); 376 } 377 else 378 return super.addChild(name); 379 } 380 381 public MeasureGroupComponent copy() { 382 MeasureGroupComponent dst = new MeasureGroupComponent(); 383 copyValues(dst); 384 dst.code = code == null ? null : code.copy(); 385 dst.description = description == null ? null : description.copy(); 386 if (population != null) { 387 dst.population = new ArrayList<MeasureGroupPopulationComponent>(); 388 for (MeasureGroupPopulationComponent i : population) 389 dst.population.add(i.copy()); 390 }; 391 if (stratifier != null) { 392 dst.stratifier = new ArrayList<MeasureGroupStratifierComponent>(); 393 for (MeasureGroupStratifierComponent i : stratifier) 394 dst.stratifier.add(i.copy()); 395 }; 396 return dst; 397 } 398 399 @Override 400 public boolean equalsDeep(Base other_) { 401 if (!super.equalsDeep(other_)) 402 return false; 403 if (!(other_ instanceof MeasureGroupComponent)) 404 return false; 405 MeasureGroupComponent o = (MeasureGroupComponent) other_; 406 return compareDeep(code, o.code, true) && compareDeep(description, o.description, true) && compareDeep(population, o.population, true) 407 && compareDeep(stratifier, o.stratifier, true); 408 } 409 410 @Override 411 public boolean equalsShallow(Base other_) { 412 if (!super.equalsShallow(other_)) 413 return false; 414 if (!(other_ instanceof MeasureGroupComponent)) 415 return false; 416 MeasureGroupComponent o = (MeasureGroupComponent) other_; 417 return compareValues(description, o.description, true); 418 } 419 420 public boolean isEmpty() { 421 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, description, population 422 , stratifier); 423 } 424 425 public String fhirType() { 426 return "Measure.group"; 427 428 } 429 430 } 431 432 @Block() 433 public static class MeasureGroupPopulationComponent extends BackboneElement implements IBaseBackboneElement { 434 /** 435 * The type of population criteria. 436 */ 437 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 438 @Description(shortDefinition="initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation", formalDefinition="The type of population criteria." ) 439 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-population") 440 protected CodeableConcept code; 441 442 /** 443 * The human readable description of this population criteria. 444 */ 445 @Child(name = "description", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 446 @Description(shortDefinition="The human readable description of this population criteria", formalDefinition="The human readable description of this population criteria." ) 447 protected StringType description; 448 449 /** 450 * An expression that specifies the criteria for the population, typically the name of an expression in a library. 451 */ 452 @Child(name = "criteria", type = {Expression.class}, order=3, min=1, max=1, modifier=false, summary=false) 453 @Description(shortDefinition="The criteria that defines this population", formalDefinition="An expression that specifies the criteria for the population, typically the name of an expression in a library." ) 454 protected Expression criteria; 455 456 private static final long serialVersionUID = 2107514056L; 457 458 /** 459 * Constructor 460 */ 461 public MeasureGroupPopulationComponent() { 462 super(); 463 } 464 465 /** 466 * Constructor 467 */ 468 public MeasureGroupPopulationComponent(Expression criteria) { 469 super(); 470 this.criteria = criteria; 471 } 472 473 /** 474 * @return {@link #code} (The type of population criteria.) 475 */ 476 public CodeableConcept getCode() { 477 if (this.code == null) 478 if (Configuration.errorOnAutoCreate()) 479 throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.code"); 480 else if (Configuration.doAutoCreate()) 481 this.code = new CodeableConcept(); // cc 482 return this.code; 483 } 484 485 public boolean hasCode() { 486 return this.code != null && !this.code.isEmpty(); 487 } 488 489 /** 490 * @param value {@link #code} (The type of population criteria.) 491 */ 492 public MeasureGroupPopulationComponent setCode(CodeableConcept value) { 493 this.code = value; 494 return this; 495 } 496 497 /** 498 * @return {@link #description} (The human readable description of this population criteria.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 499 */ 500 public StringType getDescriptionElement() { 501 if (this.description == null) 502 if (Configuration.errorOnAutoCreate()) 503 throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.description"); 504 else if (Configuration.doAutoCreate()) 505 this.description = new StringType(); // bb 506 return this.description; 507 } 508 509 public boolean hasDescriptionElement() { 510 return this.description != null && !this.description.isEmpty(); 511 } 512 513 public boolean hasDescription() { 514 return this.description != null && !this.description.isEmpty(); 515 } 516 517 /** 518 * @param value {@link #description} (The human readable description of this population criteria.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 519 */ 520 public MeasureGroupPopulationComponent setDescriptionElement(StringType value) { 521 this.description = value; 522 return this; 523 } 524 525 /** 526 * @return The human readable description of this population criteria. 527 */ 528 public String getDescription() { 529 return this.description == null ? null : this.description.getValue(); 530 } 531 532 /** 533 * @param value The human readable description of this population criteria. 534 */ 535 public MeasureGroupPopulationComponent setDescription(String value) { 536 if (Utilities.noString(value)) 537 this.description = null; 538 else { 539 if (this.description == null) 540 this.description = new StringType(); 541 this.description.setValue(value); 542 } 543 return this; 544 } 545 546 /** 547 * @return {@link #criteria} (An expression that specifies the criteria for the population, typically the name of an expression in a library.) 548 */ 549 public Expression getCriteria() { 550 if (this.criteria == null) 551 if (Configuration.errorOnAutoCreate()) 552 throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.criteria"); 553 else if (Configuration.doAutoCreate()) 554 this.criteria = new Expression(); // cc 555 return this.criteria; 556 } 557 558 public boolean hasCriteria() { 559 return this.criteria != null && !this.criteria.isEmpty(); 560 } 561 562 /** 563 * @param value {@link #criteria} (An expression that specifies the criteria for the population, typically the name of an expression in a library.) 564 */ 565 public MeasureGroupPopulationComponent setCriteria(Expression value) { 566 this.criteria = value; 567 return this; 568 } 569 570 protected void listChildren(List<Property> children) { 571 super.listChildren(children); 572 children.add(new Property("code", "CodeableConcept", "The type of population criteria.", 0, 1, code)); 573 children.add(new Property("description", "string", "The human readable description of this population criteria.", 0, 1, description)); 574 children.add(new Property("criteria", "Expression", "An expression that specifies the criteria for the population, typically the name of an expression in a library.", 0, 1, criteria)); 575 } 576 577 @Override 578 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 579 switch (_hash) { 580 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The type of population criteria.", 0, 1, code); 581 case -1724546052: /*description*/ return new Property("description", "string", "The human readable description of this population criteria.", 0, 1, description); 582 case 1952046943: /*criteria*/ return new Property("criteria", "Expression", "An expression that specifies the criteria for the population, typically the name of an expression in a library.", 0, 1, criteria); 583 default: return super.getNamedProperty(_hash, _name, _checkValid); 584 } 585 586 } 587 588 @Override 589 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 590 switch (hash) { 591 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 592 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 593 case 1952046943: /*criteria*/ return this.criteria == null ? new Base[0] : new Base[] {this.criteria}; // Expression 594 default: return super.getProperty(hash, name, checkValid); 595 } 596 597 } 598 599 @Override 600 public Base setProperty(int hash, String name, Base value) throws FHIRException { 601 switch (hash) { 602 case 3059181: // code 603 this.code = castToCodeableConcept(value); // CodeableConcept 604 return value; 605 case -1724546052: // description 606 this.description = castToString(value); // StringType 607 return value; 608 case 1952046943: // criteria 609 this.criteria = castToExpression(value); // Expression 610 return value; 611 default: return super.setProperty(hash, name, value); 612 } 613 614 } 615 616 @Override 617 public Base setProperty(String name, Base value) throws FHIRException { 618 if (name.equals("code")) { 619 this.code = castToCodeableConcept(value); // CodeableConcept 620 } else if (name.equals("description")) { 621 this.description = castToString(value); // StringType 622 } else if (name.equals("criteria")) { 623 this.criteria = castToExpression(value); // Expression 624 } else 625 return super.setProperty(name, value); 626 return value; 627 } 628 629 @Override 630 public Base makeProperty(int hash, String name) throws FHIRException { 631 switch (hash) { 632 case 3059181: return getCode(); 633 case -1724546052: return getDescriptionElement(); 634 case 1952046943: return getCriteria(); 635 default: return super.makeProperty(hash, name); 636 } 637 638 } 639 640 @Override 641 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 642 switch (hash) { 643 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 644 case -1724546052: /*description*/ return new String[] {"string"}; 645 case 1952046943: /*criteria*/ return new String[] {"Expression"}; 646 default: return super.getTypesForProperty(hash, name); 647 } 648 649 } 650 651 @Override 652 public Base addChild(String name) throws FHIRException { 653 if (name.equals("code")) { 654 this.code = new CodeableConcept(); 655 return this.code; 656 } 657 else if (name.equals("description")) { 658 throw new FHIRException("Cannot call addChild on a primitive type Measure.description"); 659 } 660 else if (name.equals("criteria")) { 661 this.criteria = new Expression(); 662 return this.criteria; 663 } 664 else 665 return super.addChild(name); 666 } 667 668 public MeasureGroupPopulationComponent copy() { 669 MeasureGroupPopulationComponent dst = new MeasureGroupPopulationComponent(); 670 copyValues(dst); 671 dst.code = code == null ? null : code.copy(); 672 dst.description = description == null ? null : description.copy(); 673 dst.criteria = criteria == null ? null : criteria.copy(); 674 return dst; 675 } 676 677 @Override 678 public boolean equalsDeep(Base other_) { 679 if (!super.equalsDeep(other_)) 680 return false; 681 if (!(other_ instanceof MeasureGroupPopulationComponent)) 682 return false; 683 MeasureGroupPopulationComponent o = (MeasureGroupPopulationComponent) other_; 684 return compareDeep(code, o.code, true) && compareDeep(description, o.description, true) && compareDeep(criteria, o.criteria, true) 685 ; 686 } 687 688 @Override 689 public boolean equalsShallow(Base other_) { 690 if (!super.equalsShallow(other_)) 691 return false; 692 if (!(other_ instanceof MeasureGroupPopulationComponent)) 693 return false; 694 MeasureGroupPopulationComponent o = (MeasureGroupPopulationComponent) other_; 695 return compareValues(description, o.description, true); 696 } 697 698 public boolean isEmpty() { 699 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, description, criteria 700 ); 701 } 702 703 public String fhirType() { 704 return "Measure.group.population"; 705 706 } 707 708 } 709 710 @Block() 711 public static class MeasureGroupStratifierComponent extends BackboneElement implements IBaseBackboneElement { 712 /** 713 * Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures. 714 */ 715 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 716 @Description(shortDefinition="Meaning of the stratifier", formalDefinition="Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures." ) 717 protected CodeableConcept code; 718 719 /** 720 * The human readable description of this stratifier criteria. 721 */ 722 @Child(name = "description", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 723 @Description(shortDefinition="The human readable description of this stratifier", formalDefinition="The human readable description of this stratifier criteria." ) 724 protected StringType description; 725 726 /** 727 * An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element. 728 */ 729 @Child(name = "criteria", type = {Expression.class}, order=3, min=0, max=1, modifier=false, summary=false) 730 @Description(shortDefinition="How the measure should be stratified", formalDefinition="An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element." ) 731 protected Expression criteria; 732 733 /** 734 * A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path. 735 */ 736 @Child(name = "component", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 737 @Description(shortDefinition="Stratifier criteria component for the measure", formalDefinition="A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path." ) 738 protected List<MeasureGroupStratifierComponentComponent> component; 739 740 private static final long serialVersionUID = -1706793609L; 741 742 /** 743 * Constructor 744 */ 745 public MeasureGroupStratifierComponent() { 746 super(); 747 } 748 749 /** 750 * @return {@link #code} (Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.) 751 */ 752 public CodeableConcept getCode() { 753 if (this.code == null) 754 if (Configuration.errorOnAutoCreate()) 755 throw new Error("Attempt to auto-create MeasureGroupStratifierComponent.code"); 756 else if (Configuration.doAutoCreate()) 757 this.code = new CodeableConcept(); // cc 758 return this.code; 759 } 760 761 public boolean hasCode() { 762 return this.code != null && !this.code.isEmpty(); 763 } 764 765 /** 766 * @param value {@link #code} (Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.) 767 */ 768 public MeasureGroupStratifierComponent setCode(CodeableConcept value) { 769 this.code = value; 770 return this; 771 } 772 773 /** 774 * @return {@link #description} (The human readable description of this stratifier criteria.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 775 */ 776 public StringType getDescriptionElement() { 777 if (this.description == null) 778 if (Configuration.errorOnAutoCreate()) 779 throw new Error("Attempt to auto-create MeasureGroupStratifierComponent.description"); 780 else if (Configuration.doAutoCreate()) 781 this.description = new StringType(); // bb 782 return this.description; 783 } 784 785 public boolean hasDescriptionElement() { 786 return this.description != null && !this.description.isEmpty(); 787 } 788 789 public boolean hasDescription() { 790 return this.description != null && !this.description.isEmpty(); 791 } 792 793 /** 794 * @param value {@link #description} (The human readable description of this stratifier criteria.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 795 */ 796 public MeasureGroupStratifierComponent setDescriptionElement(StringType value) { 797 this.description = value; 798 return this; 799 } 800 801 /** 802 * @return The human readable description of this stratifier criteria. 803 */ 804 public String getDescription() { 805 return this.description == null ? null : this.description.getValue(); 806 } 807 808 /** 809 * @param value The human readable description of this stratifier criteria. 810 */ 811 public MeasureGroupStratifierComponent setDescription(String value) { 812 if (Utilities.noString(value)) 813 this.description = null; 814 else { 815 if (this.description == null) 816 this.description = new StringType(); 817 this.description.setValue(value); 818 } 819 return this; 820 } 821 822 /** 823 * @return {@link #criteria} (An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.) 824 */ 825 public Expression getCriteria() { 826 if (this.criteria == null) 827 if (Configuration.errorOnAutoCreate()) 828 throw new Error("Attempt to auto-create MeasureGroupStratifierComponent.criteria"); 829 else if (Configuration.doAutoCreate()) 830 this.criteria = new Expression(); // cc 831 return this.criteria; 832 } 833 834 public boolean hasCriteria() { 835 return this.criteria != null && !this.criteria.isEmpty(); 836 } 837 838 /** 839 * @param value {@link #criteria} (An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.) 840 */ 841 public MeasureGroupStratifierComponent setCriteria(Expression value) { 842 this.criteria = value; 843 return this; 844 } 845 846 /** 847 * @return {@link #component} (A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.) 848 */ 849 public List<MeasureGroupStratifierComponentComponent> getComponent() { 850 if (this.component == null) 851 this.component = new ArrayList<MeasureGroupStratifierComponentComponent>(); 852 return this.component; 853 } 854 855 /** 856 * @return Returns a reference to <code>this</code> for easy method chaining 857 */ 858 public MeasureGroupStratifierComponent setComponent(List<MeasureGroupStratifierComponentComponent> theComponent) { 859 this.component = theComponent; 860 return this; 861 } 862 863 public boolean hasComponent() { 864 if (this.component == null) 865 return false; 866 for (MeasureGroupStratifierComponentComponent item : this.component) 867 if (!item.isEmpty()) 868 return true; 869 return false; 870 } 871 872 public MeasureGroupStratifierComponentComponent addComponent() { //3 873 MeasureGroupStratifierComponentComponent t = new MeasureGroupStratifierComponentComponent(); 874 if (this.component == null) 875 this.component = new ArrayList<MeasureGroupStratifierComponentComponent>(); 876 this.component.add(t); 877 return t; 878 } 879 880 public MeasureGroupStratifierComponent addComponent(MeasureGroupStratifierComponentComponent t) { //3 881 if (t == null) 882 return this; 883 if (this.component == null) 884 this.component = new ArrayList<MeasureGroupStratifierComponentComponent>(); 885 this.component.add(t); 886 return this; 887 } 888 889 /** 890 * @return The first repetition of repeating field {@link #component}, creating it if it does not already exist 891 */ 892 public MeasureGroupStratifierComponentComponent getComponentFirstRep() { 893 if (getComponent().isEmpty()) { 894 addComponent(); 895 } 896 return getComponent().get(0); 897 } 898 899 protected void listChildren(List<Property> children) { 900 super.listChildren(children); 901 children.add(new Property("code", "CodeableConcept", "Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.", 0, 1, code)); 902 children.add(new Property("description", "string", "The human readable description of this stratifier criteria.", 0, 1, description)); 903 children.add(new Property("criteria", "Expression", "An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.", 0, 1, criteria)); 904 children.add(new Property("component", "", "A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, component)); 905 } 906 907 @Override 908 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 909 switch (_hash) { 910 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.", 0, 1, code); 911 case -1724546052: /*description*/ return new Property("description", "string", "The human readable description of this stratifier criteria.", 0, 1, description); 912 case 1952046943: /*criteria*/ return new Property("criteria", "Expression", "An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.", 0, 1, criteria); 913 case -1399907075: /*component*/ return new Property("component", "", "A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, component); 914 default: return super.getNamedProperty(_hash, _name, _checkValid); 915 } 916 917 } 918 919 @Override 920 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 921 switch (hash) { 922 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 923 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 924 case 1952046943: /*criteria*/ return this.criteria == null ? new Base[0] : new Base[] {this.criteria}; // Expression 925 case -1399907075: /*component*/ return this.component == null ? new Base[0] : this.component.toArray(new Base[this.component.size()]); // MeasureGroupStratifierComponentComponent 926 default: return super.getProperty(hash, name, checkValid); 927 } 928 929 } 930 931 @Override 932 public Base setProperty(int hash, String name, Base value) throws FHIRException { 933 switch (hash) { 934 case 3059181: // code 935 this.code = castToCodeableConcept(value); // CodeableConcept 936 return value; 937 case -1724546052: // description 938 this.description = castToString(value); // StringType 939 return value; 940 case 1952046943: // criteria 941 this.criteria = castToExpression(value); // Expression 942 return value; 943 case -1399907075: // component 944 this.getComponent().add((MeasureGroupStratifierComponentComponent) value); // MeasureGroupStratifierComponentComponent 945 return value; 946 default: return super.setProperty(hash, name, value); 947 } 948 949 } 950 951 @Override 952 public Base setProperty(String name, Base value) throws FHIRException { 953 if (name.equals("code")) { 954 this.code = castToCodeableConcept(value); // CodeableConcept 955 } else if (name.equals("description")) { 956 this.description = castToString(value); // StringType 957 } else if (name.equals("criteria")) { 958 this.criteria = castToExpression(value); // Expression 959 } else if (name.equals("component")) { 960 this.getComponent().add((MeasureGroupStratifierComponentComponent) value); 961 } else 962 return super.setProperty(name, value); 963 return value; 964 } 965 966 @Override 967 public Base makeProperty(int hash, String name) throws FHIRException { 968 switch (hash) { 969 case 3059181: return getCode(); 970 case -1724546052: return getDescriptionElement(); 971 case 1952046943: return getCriteria(); 972 case -1399907075: return addComponent(); 973 default: return super.makeProperty(hash, name); 974 } 975 976 } 977 978 @Override 979 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 980 switch (hash) { 981 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 982 case -1724546052: /*description*/ return new String[] {"string"}; 983 case 1952046943: /*criteria*/ return new String[] {"Expression"}; 984 case -1399907075: /*component*/ return new String[] {}; 985 default: return super.getTypesForProperty(hash, name); 986 } 987 988 } 989 990 @Override 991 public Base addChild(String name) throws FHIRException { 992 if (name.equals("code")) { 993 this.code = new CodeableConcept(); 994 return this.code; 995 } 996 else if (name.equals("description")) { 997 throw new FHIRException("Cannot call addChild on a primitive type Measure.description"); 998 } 999 else if (name.equals("criteria")) { 1000 this.criteria = new Expression(); 1001 return this.criteria; 1002 } 1003 else if (name.equals("component")) { 1004 return addComponent(); 1005 } 1006 else 1007 return super.addChild(name); 1008 } 1009 1010 public MeasureGroupStratifierComponent copy() { 1011 MeasureGroupStratifierComponent dst = new MeasureGroupStratifierComponent(); 1012 copyValues(dst); 1013 dst.code = code == null ? null : code.copy(); 1014 dst.description = description == null ? null : description.copy(); 1015 dst.criteria = criteria == null ? null : criteria.copy(); 1016 if (component != null) { 1017 dst.component = new ArrayList<MeasureGroupStratifierComponentComponent>(); 1018 for (MeasureGroupStratifierComponentComponent i : component) 1019 dst.component.add(i.copy()); 1020 }; 1021 return dst; 1022 } 1023 1024 @Override 1025 public boolean equalsDeep(Base other_) { 1026 if (!super.equalsDeep(other_)) 1027 return false; 1028 if (!(other_ instanceof MeasureGroupStratifierComponent)) 1029 return false; 1030 MeasureGroupStratifierComponent o = (MeasureGroupStratifierComponent) other_; 1031 return compareDeep(code, o.code, true) && compareDeep(description, o.description, true) && compareDeep(criteria, o.criteria, true) 1032 && compareDeep(component, o.component, true); 1033 } 1034 1035 @Override 1036 public boolean equalsShallow(Base other_) { 1037 if (!super.equalsShallow(other_)) 1038 return false; 1039 if (!(other_ instanceof MeasureGroupStratifierComponent)) 1040 return false; 1041 MeasureGroupStratifierComponent o = (MeasureGroupStratifierComponent) other_; 1042 return compareValues(description, o.description, true); 1043 } 1044 1045 public boolean isEmpty() { 1046 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, description, criteria 1047 , component); 1048 } 1049 1050 public String fhirType() { 1051 return "Measure.group.stratifier"; 1052 1053 } 1054 1055 } 1056 1057 @Block() 1058 public static class MeasureGroupStratifierComponentComponent extends BackboneElement implements IBaseBackboneElement { 1059 /** 1060 * Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures. 1061 */ 1062 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 1063 @Description(shortDefinition="Meaning of the stratifier component", formalDefinition="Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures." ) 1064 protected CodeableConcept code; 1065 1066 /** 1067 * The human readable description of this stratifier criteria component. 1068 */ 1069 @Child(name = "description", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1070 @Description(shortDefinition="The human readable description of this stratifier component", formalDefinition="The human readable description of this stratifier criteria component." ) 1071 protected StringType description; 1072 1073 /** 1074 * An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element. 1075 */ 1076 @Child(name = "criteria", type = {Expression.class}, order=3, min=1, max=1, modifier=false, summary=false) 1077 @Description(shortDefinition="Component of how the measure should be stratified", formalDefinition="An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element." ) 1078 protected Expression criteria; 1079 1080 private static final long serialVersionUID = 2107514056L; 1081 1082 /** 1083 * Constructor 1084 */ 1085 public MeasureGroupStratifierComponentComponent() { 1086 super(); 1087 } 1088 1089 /** 1090 * Constructor 1091 */ 1092 public MeasureGroupStratifierComponentComponent(Expression criteria) { 1093 super(); 1094 this.criteria = criteria; 1095 } 1096 1097 /** 1098 * @return {@link #code} (Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.) 1099 */ 1100 public CodeableConcept getCode() { 1101 if (this.code == null) 1102 if (Configuration.errorOnAutoCreate()) 1103 throw new Error("Attempt to auto-create MeasureGroupStratifierComponentComponent.code"); 1104 else if (Configuration.doAutoCreate()) 1105 this.code = new CodeableConcept(); // cc 1106 return this.code; 1107 } 1108 1109 public boolean hasCode() { 1110 return this.code != null && !this.code.isEmpty(); 1111 } 1112 1113 /** 1114 * @param value {@link #code} (Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.) 1115 */ 1116 public MeasureGroupStratifierComponentComponent setCode(CodeableConcept value) { 1117 this.code = value; 1118 return this; 1119 } 1120 1121 /** 1122 * @return {@link #description} (The human readable description of this stratifier criteria component.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1123 */ 1124 public StringType getDescriptionElement() { 1125 if (this.description == null) 1126 if (Configuration.errorOnAutoCreate()) 1127 throw new Error("Attempt to auto-create MeasureGroupStratifierComponentComponent.description"); 1128 else if (Configuration.doAutoCreate()) 1129 this.description = new StringType(); // bb 1130 return this.description; 1131 } 1132 1133 public boolean hasDescriptionElement() { 1134 return this.description != null && !this.description.isEmpty(); 1135 } 1136 1137 public boolean hasDescription() { 1138 return this.description != null && !this.description.isEmpty(); 1139 } 1140 1141 /** 1142 * @param value {@link #description} (The human readable description of this stratifier criteria component.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1143 */ 1144 public MeasureGroupStratifierComponentComponent setDescriptionElement(StringType value) { 1145 this.description = value; 1146 return this; 1147 } 1148 1149 /** 1150 * @return The human readable description of this stratifier criteria component. 1151 */ 1152 public String getDescription() { 1153 return this.description == null ? null : this.description.getValue(); 1154 } 1155 1156 /** 1157 * @param value The human readable description of this stratifier criteria component. 1158 */ 1159 public MeasureGroupStratifierComponentComponent setDescription(String value) { 1160 if (Utilities.noString(value)) 1161 this.description = null; 1162 else { 1163 if (this.description == null) 1164 this.description = new StringType(); 1165 this.description.setValue(value); 1166 } 1167 return this; 1168 } 1169 1170 /** 1171 * @return {@link #criteria} (An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.) 1172 */ 1173 public Expression getCriteria() { 1174 if (this.criteria == null) 1175 if (Configuration.errorOnAutoCreate()) 1176 throw new Error("Attempt to auto-create MeasureGroupStratifierComponentComponent.criteria"); 1177 else if (Configuration.doAutoCreate()) 1178 this.criteria = new Expression(); // cc 1179 return this.criteria; 1180 } 1181 1182 public boolean hasCriteria() { 1183 return this.criteria != null && !this.criteria.isEmpty(); 1184 } 1185 1186 /** 1187 * @param value {@link #criteria} (An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.) 1188 */ 1189 public MeasureGroupStratifierComponentComponent setCriteria(Expression value) { 1190 this.criteria = value; 1191 return this; 1192 } 1193 1194 protected void listChildren(List<Property> children) { 1195 super.listChildren(children); 1196 children.add(new Property("code", "CodeableConcept", "Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.", 0, 1, code)); 1197 children.add(new Property("description", "string", "The human readable description of this stratifier criteria component.", 0, 1, description)); 1198 children.add(new Property("criteria", "Expression", "An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.", 0, 1, criteria)); 1199 } 1200 1201 @Override 1202 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1203 switch (_hash) { 1204 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.", 0, 1, code); 1205 case -1724546052: /*description*/ return new Property("description", "string", "The human readable description of this stratifier criteria component.", 0, 1, description); 1206 case 1952046943: /*criteria*/ return new Property("criteria", "Expression", "An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.", 0, 1, criteria); 1207 default: return super.getNamedProperty(_hash, _name, _checkValid); 1208 } 1209 1210 } 1211 1212 @Override 1213 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1214 switch (hash) { 1215 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 1216 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 1217 case 1952046943: /*criteria*/ return this.criteria == null ? new Base[0] : new Base[] {this.criteria}; // Expression 1218 default: return super.getProperty(hash, name, checkValid); 1219 } 1220 1221 } 1222 1223 @Override 1224 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1225 switch (hash) { 1226 case 3059181: // code 1227 this.code = castToCodeableConcept(value); // CodeableConcept 1228 return value; 1229 case -1724546052: // description 1230 this.description = castToString(value); // StringType 1231 return value; 1232 case 1952046943: // criteria 1233 this.criteria = castToExpression(value); // Expression 1234 return value; 1235 default: return super.setProperty(hash, name, value); 1236 } 1237 1238 } 1239 1240 @Override 1241 public Base setProperty(String name, Base value) throws FHIRException { 1242 if (name.equals("code")) { 1243 this.code = castToCodeableConcept(value); // CodeableConcept 1244 } else if (name.equals("description")) { 1245 this.description = castToString(value); // StringType 1246 } else if (name.equals("criteria")) { 1247 this.criteria = castToExpression(value); // Expression 1248 } else 1249 return super.setProperty(name, value); 1250 return value; 1251 } 1252 1253 @Override 1254 public Base makeProperty(int hash, String name) throws FHIRException { 1255 switch (hash) { 1256 case 3059181: return getCode(); 1257 case -1724546052: return getDescriptionElement(); 1258 case 1952046943: return getCriteria(); 1259 default: return super.makeProperty(hash, name); 1260 } 1261 1262 } 1263 1264 @Override 1265 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1266 switch (hash) { 1267 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1268 case -1724546052: /*description*/ return new String[] {"string"}; 1269 case 1952046943: /*criteria*/ return new String[] {"Expression"}; 1270 default: return super.getTypesForProperty(hash, name); 1271 } 1272 1273 } 1274 1275 @Override 1276 public Base addChild(String name) throws FHIRException { 1277 if (name.equals("code")) { 1278 this.code = new CodeableConcept(); 1279 return this.code; 1280 } 1281 else if (name.equals("description")) { 1282 throw new FHIRException("Cannot call addChild on a primitive type Measure.description"); 1283 } 1284 else if (name.equals("criteria")) { 1285 this.criteria = new Expression(); 1286 return this.criteria; 1287 } 1288 else 1289 return super.addChild(name); 1290 } 1291 1292 public MeasureGroupStratifierComponentComponent copy() { 1293 MeasureGroupStratifierComponentComponent dst = new MeasureGroupStratifierComponentComponent(); 1294 copyValues(dst); 1295 dst.code = code == null ? null : code.copy(); 1296 dst.description = description == null ? null : description.copy(); 1297 dst.criteria = criteria == null ? null : criteria.copy(); 1298 return dst; 1299 } 1300 1301 @Override 1302 public boolean equalsDeep(Base other_) { 1303 if (!super.equalsDeep(other_)) 1304 return false; 1305 if (!(other_ instanceof MeasureGroupStratifierComponentComponent)) 1306 return false; 1307 MeasureGroupStratifierComponentComponent o = (MeasureGroupStratifierComponentComponent) other_; 1308 return compareDeep(code, o.code, true) && compareDeep(description, o.description, true) && compareDeep(criteria, o.criteria, true) 1309 ; 1310 } 1311 1312 @Override 1313 public boolean equalsShallow(Base other_) { 1314 if (!super.equalsShallow(other_)) 1315 return false; 1316 if (!(other_ instanceof MeasureGroupStratifierComponentComponent)) 1317 return false; 1318 MeasureGroupStratifierComponentComponent o = (MeasureGroupStratifierComponentComponent) other_; 1319 return compareValues(description, o.description, true); 1320 } 1321 1322 public boolean isEmpty() { 1323 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, description, criteria 1324 ); 1325 } 1326 1327 public String fhirType() { 1328 return "Measure.group.stratifier.component"; 1329 1330 } 1331 1332 } 1333 1334 @Block() 1335 public static class MeasureSupplementalDataComponent extends BackboneElement implements IBaseBackboneElement { 1336 /** 1337 * Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures. 1338 */ 1339 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 1340 @Description(shortDefinition="Meaning of the supplemental data", formalDefinition="Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures." ) 1341 protected CodeableConcept code; 1342 1343 /** 1344 * An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation. 1345 */ 1346 @Child(name = "usage", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1347 @Description(shortDefinition="supplemental-data | risk-adjustment-factor", formalDefinition="An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation." ) 1348 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-data-usage") 1349 protected List<CodeableConcept> usage; 1350 1351 /** 1352 * The human readable description of this supplemental data. 1353 */ 1354 @Child(name = "description", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1355 @Description(shortDefinition="The human readable description of this supplemental data", formalDefinition="The human readable description of this supplemental data." ) 1356 protected StringType description; 1357 1358 /** 1359 * The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element. 1360 */ 1361 @Child(name = "criteria", type = {Expression.class}, order=4, min=1, max=1, modifier=false, summary=false) 1362 @Description(shortDefinition="Expression describing additional data to be reported", formalDefinition="The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element." ) 1363 protected Expression criteria; 1364 1365 private static final long serialVersionUID = -1897021670L; 1366 1367 /** 1368 * Constructor 1369 */ 1370 public MeasureSupplementalDataComponent() { 1371 super(); 1372 } 1373 1374 /** 1375 * Constructor 1376 */ 1377 public MeasureSupplementalDataComponent(Expression criteria) { 1378 super(); 1379 this.criteria = criteria; 1380 } 1381 1382 /** 1383 * @return {@link #code} (Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.) 1384 */ 1385 public CodeableConcept getCode() { 1386 if (this.code == null) 1387 if (Configuration.errorOnAutoCreate()) 1388 throw new Error("Attempt to auto-create MeasureSupplementalDataComponent.code"); 1389 else if (Configuration.doAutoCreate()) 1390 this.code = new CodeableConcept(); // cc 1391 return this.code; 1392 } 1393 1394 public boolean hasCode() { 1395 return this.code != null && !this.code.isEmpty(); 1396 } 1397 1398 /** 1399 * @param value {@link #code} (Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.) 1400 */ 1401 public MeasureSupplementalDataComponent setCode(CodeableConcept value) { 1402 this.code = value; 1403 return this; 1404 } 1405 1406 /** 1407 * @return {@link #usage} (An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation.) 1408 */ 1409 public List<CodeableConcept> getUsage() { 1410 if (this.usage == null) 1411 this.usage = new ArrayList<CodeableConcept>(); 1412 return this.usage; 1413 } 1414 1415 /** 1416 * @return Returns a reference to <code>this</code> for easy method chaining 1417 */ 1418 public MeasureSupplementalDataComponent setUsage(List<CodeableConcept> theUsage) { 1419 this.usage = theUsage; 1420 return this; 1421 } 1422 1423 public boolean hasUsage() { 1424 if (this.usage == null) 1425 return false; 1426 for (CodeableConcept item : this.usage) 1427 if (!item.isEmpty()) 1428 return true; 1429 return false; 1430 } 1431 1432 public CodeableConcept addUsage() { //3 1433 CodeableConcept t = new CodeableConcept(); 1434 if (this.usage == null) 1435 this.usage = new ArrayList<CodeableConcept>(); 1436 this.usage.add(t); 1437 return t; 1438 } 1439 1440 public MeasureSupplementalDataComponent addUsage(CodeableConcept t) { //3 1441 if (t == null) 1442 return this; 1443 if (this.usage == null) 1444 this.usage = new ArrayList<CodeableConcept>(); 1445 this.usage.add(t); 1446 return this; 1447 } 1448 1449 /** 1450 * @return The first repetition of repeating field {@link #usage}, creating it if it does not already exist 1451 */ 1452 public CodeableConcept getUsageFirstRep() { 1453 if (getUsage().isEmpty()) { 1454 addUsage(); 1455 } 1456 return getUsage().get(0); 1457 } 1458 1459 /** 1460 * @return {@link #description} (The human readable description of this supplemental data.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1461 */ 1462 public StringType getDescriptionElement() { 1463 if (this.description == null) 1464 if (Configuration.errorOnAutoCreate()) 1465 throw new Error("Attempt to auto-create MeasureSupplementalDataComponent.description"); 1466 else if (Configuration.doAutoCreate()) 1467 this.description = new StringType(); // bb 1468 return this.description; 1469 } 1470 1471 public boolean hasDescriptionElement() { 1472 return this.description != null && !this.description.isEmpty(); 1473 } 1474 1475 public boolean hasDescription() { 1476 return this.description != null && !this.description.isEmpty(); 1477 } 1478 1479 /** 1480 * @param value {@link #description} (The human readable description of this supplemental data.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1481 */ 1482 public MeasureSupplementalDataComponent setDescriptionElement(StringType value) { 1483 this.description = value; 1484 return this; 1485 } 1486 1487 /** 1488 * @return The human readable description of this supplemental data. 1489 */ 1490 public String getDescription() { 1491 return this.description == null ? null : this.description.getValue(); 1492 } 1493 1494 /** 1495 * @param value The human readable description of this supplemental data. 1496 */ 1497 public MeasureSupplementalDataComponent setDescription(String value) { 1498 if (Utilities.noString(value)) 1499 this.description = null; 1500 else { 1501 if (this.description == null) 1502 this.description = new StringType(); 1503 this.description.setValue(value); 1504 } 1505 return this; 1506 } 1507 1508 /** 1509 * @return {@link #criteria} (The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.) 1510 */ 1511 public Expression getCriteria() { 1512 if (this.criteria == null) 1513 if (Configuration.errorOnAutoCreate()) 1514 throw new Error("Attempt to auto-create MeasureSupplementalDataComponent.criteria"); 1515 else if (Configuration.doAutoCreate()) 1516 this.criteria = new Expression(); // cc 1517 return this.criteria; 1518 } 1519 1520 public boolean hasCriteria() { 1521 return this.criteria != null && !this.criteria.isEmpty(); 1522 } 1523 1524 /** 1525 * @param value {@link #criteria} (The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.) 1526 */ 1527 public MeasureSupplementalDataComponent setCriteria(Expression value) { 1528 this.criteria = value; 1529 return this; 1530 } 1531 1532 protected void listChildren(List<Property> children) { 1533 super.listChildren(children); 1534 children.add(new Property("code", "CodeableConcept", "Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.", 0, 1, code)); 1535 children.add(new Property("usage", "CodeableConcept", "An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation.", 0, java.lang.Integer.MAX_VALUE, usage)); 1536 children.add(new Property("description", "string", "The human readable description of this supplemental data.", 0, 1, description)); 1537 children.add(new Property("criteria", "Expression", "The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.", 0, 1, criteria)); 1538 } 1539 1540 @Override 1541 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1542 switch (_hash) { 1543 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.", 0, 1, code); 1544 case 111574433: /*usage*/ return new Property("usage", "CodeableConcept", "An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation.", 0, java.lang.Integer.MAX_VALUE, usage); 1545 case -1724546052: /*description*/ return new Property("description", "string", "The human readable description of this supplemental data.", 0, 1, description); 1546 case 1952046943: /*criteria*/ return new Property("criteria", "Expression", "The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.", 0, 1, criteria); 1547 default: return super.getNamedProperty(_hash, _name, _checkValid); 1548 } 1549 1550 } 1551 1552 @Override 1553 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1554 switch (hash) { 1555 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 1556 case 111574433: /*usage*/ return this.usage == null ? new Base[0] : this.usage.toArray(new Base[this.usage.size()]); // CodeableConcept 1557 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 1558 case 1952046943: /*criteria*/ return this.criteria == null ? new Base[0] : new Base[] {this.criteria}; // Expression 1559 default: return super.getProperty(hash, name, checkValid); 1560 } 1561 1562 } 1563 1564 @Override 1565 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1566 switch (hash) { 1567 case 3059181: // code 1568 this.code = castToCodeableConcept(value); // CodeableConcept 1569 return value; 1570 case 111574433: // usage 1571 this.getUsage().add(castToCodeableConcept(value)); // CodeableConcept 1572 return value; 1573 case -1724546052: // description 1574 this.description = castToString(value); // StringType 1575 return value; 1576 case 1952046943: // criteria 1577 this.criteria = castToExpression(value); // Expression 1578 return value; 1579 default: return super.setProperty(hash, name, value); 1580 } 1581 1582 } 1583 1584 @Override 1585 public Base setProperty(String name, Base value) throws FHIRException { 1586 if (name.equals("code")) { 1587 this.code = castToCodeableConcept(value); // CodeableConcept 1588 } else if (name.equals("usage")) { 1589 this.getUsage().add(castToCodeableConcept(value)); 1590 } else if (name.equals("description")) { 1591 this.description = castToString(value); // StringType 1592 } else if (name.equals("criteria")) { 1593 this.criteria = castToExpression(value); // Expression 1594 } else 1595 return super.setProperty(name, value); 1596 return value; 1597 } 1598 1599 @Override 1600 public Base makeProperty(int hash, String name) throws FHIRException { 1601 switch (hash) { 1602 case 3059181: return getCode(); 1603 case 111574433: return addUsage(); 1604 case -1724546052: return getDescriptionElement(); 1605 case 1952046943: return getCriteria(); 1606 default: return super.makeProperty(hash, name); 1607 } 1608 1609 } 1610 1611 @Override 1612 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1613 switch (hash) { 1614 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1615 case 111574433: /*usage*/ return new String[] {"CodeableConcept"}; 1616 case -1724546052: /*description*/ return new String[] {"string"}; 1617 case 1952046943: /*criteria*/ return new String[] {"Expression"}; 1618 default: return super.getTypesForProperty(hash, name); 1619 } 1620 1621 } 1622 1623 @Override 1624 public Base addChild(String name) throws FHIRException { 1625 if (name.equals("code")) { 1626 this.code = new CodeableConcept(); 1627 return this.code; 1628 } 1629 else if (name.equals("usage")) { 1630 return addUsage(); 1631 } 1632 else if (name.equals("description")) { 1633 throw new FHIRException("Cannot call addChild on a primitive type Measure.description"); 1634 } 1635 else if (name.equals("criteria")) { 1636 this.criteria = new Expression(); 1637 return this.criteria; 1638 } 1639 else 1640 return super.addChild(name); 1641 } 1642 1643 public MeasureSupplementalDataComponent copy() { 1644 MeasureSupplementalDataComponent dst = new MeasureSupplementalDataComponent(); 1645 copyValues(dst); 1646 dst.code = code == null ? null : code.copy(); 1647 if (usage != null) { 1648 dst.usage = new ArrayList<CodeableConcept>(); 1649 for (CodeableConcept i : usage) 1650 dst.usage.add(i.copy()); 1651 }; 1652 dst.description = description == null ? null : description.copy(); 1653 dst.criteria = criteria == null ? null : criteria.copy(); 1654 return dst; 1655 } 1656 1657 @Override 1658 public boolean equalsDeep(Base other_) { 1659 if (!super.equalsDeep(other_)) 1660 return false; 1661 if (!(other_ instanceof MeasureSupplementalDataComponent)) 1662 return false; 1663 MeasureSupplementalDataComponent o = (MeasureSupplementalDataComponent) other_; 1664 return compareDeep(code, o.code, true) && compareDeep(usage, o.usage, true) && compareDeep(description, o.description, true) 1665 && compareDeep(criteria, o.criteria, true); 1666 } 1667 1668 @Override 1669 public boolean equalsShallow(Base other_) { 1670 if (!super.equalsShallow(other_)) 1671 return false; 1672 if (!(other_ instanceof MeasureSupplementalDataComponent)) 1673 return false; 1674 MeasureSupplementalDataComponent o = (MeasureSupplementalDataComponent) other_; 1675 return compareValues(description, o.description, true); 1676 } 1677 1678 public boolean isEmpty() { 1679 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, usage, description 1680 , criteria); 1681 } 1682 1683 public String fhirType() { 1684 return "Measure.supplementalData"; 1685 1686 } 1687 1688 } 1689 1690 /** 1691 * A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance. 1692 */ 1693 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1694 @Description(shortDefinition="Additional identifier for the measure", formalDefinition="A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance." ) 1695 protected List<Identifier> identifier; 1696 1697 /** 1698 * An explanatory or alternate title for the measure giving additional information about its content. 1699 */ 1700 @Child(name = "subtitle", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1701 @Description(shortDefinition="Subordinate title of the measure", formalDefinition="An explanatory or alternate title for the measure giving additional information about its content." ) 1702 protected StringType subtitle; 1703 1704 /** 1705 * The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything. 1706 */ 1707 @Child(name = "subject", type = {CodeableConcept.class, Group.class}, order=2, min=0, max=1, modifier=false, summary=false) 1708 @Description(shortDefinition="E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device", formalDefinition="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything." ) 1709 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/subject-type") 1710 protected Type subject; 1711 1712 /** 1713 * Explanation of why this measure is needed and why it has been designed as it has. 1714 */ 1715 @Child(name = "purpose", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1716 @Description(shortDefinition="Why this measure is defined", formalDefinition="Explanation of why this measure is needed and why it has been designed as it has." ) 1717 protected MarkdownType purpose; 1718 1719 /** 1720 * A detailed description, from a clinical perspective, of how the measure is used. 1721 */ 1722 @Child(name = "usage", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 1723 @Description(shortDefinition="Describes the clinical usage of the measure", formalDefinition="A detailed description, from a clinical perspective, of how the measure is used." ) 1724 protected StringType usage; 1725 1726 /** 1727 * A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure. 1728 */ 1729 @Child(name = "copyright", type = {MarkdownType.class}, order=5, min=0, max=1, modifier=false, summary=false) 1730 @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure." ) 1731 protected MarkdownType copyright; 1732 1733 /** 1734 * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 1735 */ 1736 @Child(name = "approvalDate", type = {DateType.class}, order=6, min=0, max=1, modifier=false, summary=false) 1737 @Description(shortDefinition="When the measure was approved by publisher", formalDefinition="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage." ) 1738 protected DateType approvalDate; 1739 1740 /** 1741 * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 1742 */ 1743 @Child(name = "lastReviewDate", type = {DateType.class}, order=7, min=0, max=1, modifier=false, summary=false) 1744 @Description(shortDefinition="When the measure was last reviewed", formalDefinition="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date." ) 1745 protected DateType lastReviewDate; 1746 1747 /** 1748 * The period during which the measure content was or is planned to be in active use. 1749 */ 1750 @Child(name = "effectivePeriod", type = {Period.class}, order=8, min=0, max=1, modifier=false, summary=true) 1751 @Description(shortDefinition="When the measure is expected to be used", formalDefinition="The period during which the measure content was or is planned to be in active use." ) 1752 protected Period effectivePeriod; 1753 1754 /** 1755 * Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching. 1756 */ 1757 @Child(name = "topic", type = {CodeableConcept.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1758 @Description(shortDefinition="The category of the measure, such as Education, Treatment, Assessment, etc.", formalDefinition="Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching." ) 1759 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic") 1760 protected List<CodeableConcept> topic; 1761 1762 /** 1763 * An individiual or organization primarily involved in the creation and maintenance of the content. 1764 */ 1765 @Child(name = "author", type = {ContactDetail.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1766 @Description(shortDefinition="Who authored the content", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the content." ) 1767 protected List<ContactDetail> author; 1768 1769 /** 1770 * An individual or organization primarily responsible for internal coherence of the content. 1771 */ 1772 @Child(name = "editor", type = {ContactDetail.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1773 @Description(shortDefinition="Who edited the content", formalDefinition="An individual or organization primarily responsible for internal coherence of the content." ) 1774 protected List<ContactDetail> editor; 1775 1776 /** 1777 * An individual or organization primarily responsible for review of some aspect of the content. 1778 */ 1779 @Child(name = "reviewer", type = {ContactDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1780 @Description(shortDefinition="Who reviewed the content", formalDefinition="An individual or organization primarily responsible for review of some aspect of the content." ) 1781 protected List<ContactDetail> reviewer; 1782 1783 /** 1784 * An individual or organization responsible for officially endorsing the content for use in some setting. 1785 */ 1786 @Child(name = "endorser", type = {ContactDetail.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1787 @Description(shortDefinition="Who endorsed the content", formalDefinition="An individual or organization responsible for officially endorsing the content for use in some setting." ) 1788 protected List<ContactDetail> endorser; 1789 1790 /** 1791 * Related artifacts such as additional documentation, justification, or bibliographic references. 1792 */ 1793 @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1794 @Description(shortDefinition="Additional documentation, citations, etc.", formalDefinition="Related artifacts such as additional documentation, justification, or bibliographic references." ) 1795 protected List<RelatedArtifact> relatedArtifact; 1796 1797 /** 1798 * A reference to a Library resource containing the formal logic used by the measure. 1799 */ 1800 @Child(name = "library", type = {CanonicalType.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1801 @Description(shortDefinition="Logic used by the measure", formalDefinition="A reference to a Library resource containing the formal logic used by the measure." ) 1802 protected List<CanonicalType> library; 1803 1804 /** 1805 * Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure. 1806 */ 1807 @Child(name = "disclaimer", type = {MarkdownType.class}, order=16, min=0, max=1, modifier=false, summary=true) 1808 @Description(shortDefinition="Disclaimer for use of the measure or its referenced content", formalDefinition="Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure." ) 1809 protected MarkdownType disclaimer; 1810 1811 /** 1812 * 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. 1813 */ 1814 @Child(name = "scoring", type = {CodeableConcept.class}, order=17, min=0, max=1, modifier=false, summary=true) 1815 @Description(shortDefinition="proportion | ratio | continuous-variable | cohort", 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." ) 1816 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-scoring") 1817 protected CodeableConcept scoring; 1818 1819 /** 1820 * If this is a composite measure, the scoring method used to combine the component measures to determine the composite score. 1821 */ 1822 @Child(name = "compositeScoring", type = {CodeableConcept.class}, order=18, min=0, max=1, modifier=false, summary=true) 1823 @Description(shortDefinition="opportunity | all-or-nothing | linear | weighted", formalDefinition="If this is a composite measure, the scoring method used to combine the component measures to determine the composite score." ) 1824 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/composite-measure-scoring") 1825 protected CodeableConcept compositeScoring; 1826 1827 /** 1828 * Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization. 1829 */ 1830 @Child(name = "type", type = {CodeableConcept.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1831 @Description(shortDefinition="process | outcome | structure | patient-reported-outcome | composite", formalDefinition="Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization." ) 1832 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-type") 1833 protected List<CodeableConcept> type; 1834 1835 /** 1836 * A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results. 1837 */ 1838 @Child(name = "riskAdjustment", type = {StringType.class}, order=20, min=0, max=1, modifier=false, summary=true) 1839 @Description(shortDefinition="How risk adjustment is applied for this measure", formalDefinition="A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results." ) 1840 protected StringType riskAdjustment; 1841 1842 /** 1843 * Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result. 1844 */ 1845 @Child(name = "rateAggregation", type = {StringType.class}, order=21, min=0, max=1, modifier=false, summary=true) 1846 @Description(shortDefinition="How is rate aggregation performed for this measure", formalDefinition="Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result." ) 1847 protected StringType rateAggregation; 1848 1849 /** 1850 * Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence. 1851 */ 1852 @Child(name = "rationale", type = {MarkdownType.class}, order=22, min=0, max=1, modifier=false, summary=true) 1853 @Description(shortDefinition="Detailed description of why the measure exists", formalDefinition="Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence." ) 1854 protected MarkdownType rationale; 1855 1856 /** 1857 * Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure. 1858 */ 1859 @Child(name = "clinicalRecommendationStatement", type = {MarkdownType.class}, order=23, min=0, max=1, modifier=false, summary=true) 1860 @Description(shortDefinition="Summary of clinical guidelines", formalDefinition="Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure." ) 1861 protected MarkdownType clinicalRecommendationStatement; 1862 1863 /** 1864 * Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range). 1865 */ 1866 @Child(name = "improvementNotation", type = {CodeableConcept.class}, order=24, min=0, max=1, modifier=false, summary=true) 1867 @Description(shortDefinition="increase | decrease", formalDefinition="Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range)." ) 1868 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-improvement-notation") 1869 protected CodeableConcept improvementNotation; 1870 1871 /** 1872 * Provides a description of an individual term used within the measure. 1873 */ 1874 @Child(name = "definition", type = {MarkdownType.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1875 @Description(shortDefinition="Defined terms used in the measure documentation", formalDefinition="Provides a description of an individual term used within the measure." ) 1876 protected List<MarkdownType> definition; 1877 1878 /** 1879 * Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure. 1880 */ 1881 @Child(name = "guidance", type = {MarkdownType.class}, order=26, min=0, max=1, modifier=false, summary=true) 1882 @Description(shortDefinition="Additional guidance for implementers", formalDefinition="Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure." ) 1883 protected MarkdownType guidance; 1884 1885 /** 1886 * A group of population criteria for the measure. 1887 */ 1888 @Child(name = "group", type = {}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1889 @Description(shortDefinition="Population criteria group", formalDefinition="A group of population criteria for the measure." ) 1890 protected List<MeasureGroupComponent> group; 1891 1892 /** 1893 * The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path. 1894 */ 1895 @Child(name = "supplementalData", type = {}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1896 @Description(shortDefinition="What other data should be reported with the measure", formalDefinition="The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path." ) 1897 protected List<MeasureSupplementalDataComponent> supplementalData; 1898 1899 private static final long serialVersionUID = 341731972L; 1900 1901 /** 1902 * Constructor 1903 */ 1904 public Measure() { 1905 super(); 1906 } 1907 1908 /** 1909 * Constructor 1910 */ 1911 public Measure(Enumeration<PublicationStatus> status) { 1912 super(); 1913 this.status = status; 1914 } 1915 1916 /** 1917 * @return {@link #url} (An absolute URI that is used to identify this measure when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1918 */ 1919 public UriType getUrlElement() { 1920 if (this.url == null) 1921 if (Configuration.errorOnAutoCreate()) 1922 throw new Error("Attempt to auto-create Measure.url"); 1923 else if (Configuration.doAutoCreate()) 1924 this.url = new UriType(); // bb 1925 return this.url; 1926 } 1927 1928 public boolean hasUrlElement() { 1929 return this.url != null && !this.url.isEmpty(); 1930 } 1931 1932 public boolean hasUrl() { 1933 return this.url != null && !this.url.isEmpty(); 1934 } 1935 1936 /** 1937 * @param value {@link #url} (An absolute URI that is used to identify this measure when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1938 */ 1939 public Measure setUrlElement(UriType value) { 1940 this.url = value; 1941 return this; 1942 } 1943 1944 /** 1945 * @return An absolute URI that is used to identify this measure when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers. 1946 */ 1947 public String getUrl() { 1948 return this.url == null ? null : this.url.getValue(); 1949 } 1950 1951 /** 1952 * @param value An absolute URI that is used to identify this measure when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers. 1953 */ 1954 public Measure setUrl(String value) { 1955 if (Utilities.noString(value)) 1956 this.url = null; 1957 else { 1958 if (this.url == null) 1959 this.url = new UriType(); 1960 this.url.setValue(value); 1961 } 1962 return this; 1963 } 1964 1965 /** 1966 * @return {@link #identifier} (A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance.) 1967 */ 1968 public List<Identifier> getIdentifier() { 1969 if (this.identifier == null) 1970 this.identifier = new ArrayList<Identifier>(); 1971 return this.identifier; 1972 } 1973 1974 /** 1975 * @return Returns a reference to <code>this</code> for easy method chaining 1976 */ 1977 public Measure setIdentifier(List<Identifier> theIdentifier) { 1978 this.identifier = theIdentifier; 1979 return this; 1980 } 1981 1982 public boolean hasIdentifier() { 1983 if (this.identifier == null) 1984 return false; 1985 for (Identifier item : this.identifier) 1986 if (!item.isEmpty()) 1987 return true; 1988 return false; 1989 } 1990 1991 public Identifier addIdentifier() { //3 1992 Identifier t = new Identifier(); 1993 if (this.identifier == null) 1994 this.identifier = new ArrayList<Identifier>(); 1995 this.identifier.add(t); 1996 return t; 1997 } 1998 1999 public Measure addIdentifier(Identifier t) { //3 2000 if (t == null) 2001 return this; 2002 if (this.identifier == null) 2003 this.identifier = new ArrayList<Identifier>(); 2004 this.identifier.add(t); 2005 return this; 2006 } 2007 2008 /** 2009 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 2010 */ 2011 public Identifier getIdentifierFirstRep() { 2012 if (getIdentifier().isEmpty()) { 2013 addIdentifier(); 2014 } 2015 return getIdentifier().get(0); 2016 } 2017 2018 /** 2019 * @return {@link #version} (The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 2020 */ 2021 public StringType getVersionElement() { 2022 if (this.version == null) 2023 if (Configuration.errorOnAutoCreate()) 2024 throw new Error("Attempt to auto-create Measure.version"); 2025 else if (Configuration.doAutoCreate()) 2026 this.version = new StringType(); // bb 2027 return this.version; 2028 } 2029 2030 public boolean hasVersionElement() { 2031 return this.version != null && !this.version.isEmpty(); 2032 } 2033 2034 public boolean hasVersion() { 2035 return this.version != null && !this.version.isEmpty(); 2036 } 2037 2038 /** 2039 * @param value {@link #version} (The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 2040 */ 2041 public Measure setVersionElement(StringType value) { 2042 this.version = value; 2043 return this; 2044 } 2045 2046 /** 2047 * @return The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts. 2048 */ 2049 public String getVersion() { 2050 return this.version == null ? null : this.version.getValue(); 2051 } 2052 2053 /** 2054 * @param value The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts. 2055 */ 2056 public Measure setVersion(String value) { 2057 if (Utilities.noString(value)) 2058 this.version = null; 2059 else { 2060 if (this.version == null) 2061 this.version = new StringType(); 2062 this.version.setValue(value); 2063 } 2064 return this; 2065 } 2066 2067 /** 2068 * @return {@link #name} (A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2069 */ 2070 public StringType getNameElement() { 2071 if (this.name == null) 2072 if (Configuration.errorOnAutoCreate()) 2073 throw new Error("Attempt to auto-create Measure.name"); 2074 else if (Configuration.doAutoCreate()) 2075 this.name = new StringType(); // bb 2076 return this.name; 2077 } 2078 2079 public boolean hasNameElement() { 2080 return this.name != null && !this.name.isEmpty(); 2081 } 2082 2083 public boolean hasName() { 2084 return this.name != null && !this.name.isEmpty(); 2085 } 2086 2087 /** 2088 * @param value {@link #name} (A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2089 */ 2090 public Measure setNameElement(StringType value) { 2091 this.name = value; 2092 return this; 2093 } 2094 2095 /** 2096 * @return A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation. 2097 */ 2098 public String getName() { 2099 return this.name == null ? null : this.name.getValue(); 2100 } 2101 2102 /** 2103 * @param value A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation. 2104 */ 2105 public Measure setName(String value) { 2106 if (Utilities.noString(value)) 2107 this.name = null; 2108 else { 2109 if (this.name == null) 2110 this.name = new StringType(); 2111 this.name.setValue(value); 2112 } 2113 return this; 2114 } 2115 2116 /** 2117 * @return {@link #title} (A short, descriptive, user-friendly title for the measure.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 2118 */ 2119 public StringType getTitleElement() { 2120 if (this.title == null) 2121 if (Configuration.errorOnAutoCreate()) 2122 throw new Error("Attempt to auto-create Measure.title"); 2123 else if (Configuration.doAutoCreate()) 2124 this.title = new StringType(); // bb 2125 return this.title; 2126 } 2127 2128 public boolean hasTitleElement() { 2129 return this.title != null && !this.title.isEmpty(); 2130 } 2131 2132 public boolean hasTitle() { 2133 return this.title != null && !this.title.isEmpty(); 2134 } 2135 2136 /** 2137 * @param value {@link #title} (A short, descriptive, user-friendly title for the measure.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 2138 */ 2139 public Measure setTitleElement(StringType value) { 2140 this.title = value; 2141 return this; 2142 } 2143 2144 /** 2145 * @return A short, descriptive, user-friendly title for the measure. 2146 */ 2147 public String getTitle() { 2148 return this.title == null ? null : this.title.getValue(); 2149 } 2150 2151 /** 2152 * @param value A short, descriptive, user-friendly title for the measure. 2153 */ 2154 public Measure setTitle(String value) { 2155 if (Utilities.noString(value)) 2156 this.title = null; 2157 else { 2158 if (this.title == null) 2159 this.title = new StringType(); 2160 this.title.setValue(value); 2161 } 2162 return this; 2163 } 2164 2165 /** 2166 * @return {@link #subtitle} (An explanatory or alternate title for the measure giving additional information about its content.). This is the underlying object with id, value and extensions. The accessor "getSubtitle" gives direct access to the value 2167 */ 2168 public StringType getSubtitleElement() { 2169 if (this.subtitle == null) 2170 if (Configuration.errorOnAutoCreate()) 2171 throw new Error("Attempt to auto-create Measure.subtitle"); 2172 else if (Configuration.doAutoCreate()) 2173 this.subtitle = new StringType(); // bb 2174 return this.subtitle; 2175 } 2176 2177 public boolean hasSubtitleElement() { 2178 return this.subtitle != null && !this.subtitle.isEmpty(); 2179 } 2180 2181 public boolean hasSubtitle() { 2182 return this.subtitle != null && !this.subtitle.isEmpty(); 2183 } 2184 2185 /** 2186 * @param value {@link #subtitle} (An explanatory or alternate title for the measure giving additional information about its content.). This is the underlying object with id, value and extensions. The accessor "getSubtitle" gives direct access to the value 2187 */ 2188 public Measure setSubtitleElement(StringType value) { 2189 this.subtitle = value; 2190 return this; 2191 } 2192 2193 /** 2194 * @return An explanatory or alternate title for the measure giving additional information about its content. 2195 */ 2196 public String getSubtitle() { 2197 return this.subtitle == null ? null : this.subtitle.getValue(); 2198 } 2199 2200 /** 2201 * @param value An explanatory or alternate title for the measure giving additional information about its content. 2202 */ 2203 public Measure setSubtitle(String value) { 2204 if (Utilities.noString(value)) 2205 this.subtitle = null; 2206 else { 2207 if (this.subtitle == null) 2208 this.subtitle = new StringType(); 2209 this.subtitle.setValue(value); 2210 } 2211 return this; 2212 } 2213 2214 /** 2215 * @return {@link #status} (The status of this measure. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2216 */ 2217 public Enumeration<PublicationStatus> getStatusElement() { 2218 if (this.status == null) 2219 if (Configuration.errorOnAutoCreate()) 2220 throw new Error("Attempt to auto-create Measure.status"); 2221 else if (Configuration.doAutoCreate()) 2222 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 2223 return this.status; 2224 } 2225 2226 public boolean hasStatusElement() { 2227 return this.status != null && !this.status.isEmpty(); 2228 } 2229 2230 public boolean hasStatus() { 2231 return this.status != null && !this.status.isEmpty(); 2232 } 2233 2234 /** 2235 * @param value {@link #status} (The status of this measure. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 2236 */ 2237 public Measure setStatusElement(Enumeration<PublicationStatus> value) { 2238 this.status = value; 2239 return this; 2240 } 2241 2242 /** 2243 * @return The status of this measure. Enables tracking the life-cycle of the content. 2244 */ 2245 public PublicationStatus getStatus() { 2246 return this.status == null ? null : this.status.getValue(); 2247 } 2248 2249 /** 2250 * @param value The status of this measure. Enables tracking the life-cycle of the content. 2251 */ 2252 public Measure setStatus(PublicationStatus value) { 2253 if (this.status == null) 2254 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 2255 this.status.setValue(value); 2256 return this; 2257 } 2258 2259 /** 2260 * @return {@link #experimental} (A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value 2261 */ 2262 public BooleanType getExperimentalElement() { 2263 if (this.experimental == null) 2264 if (Configuration.errorOnAutoCreate()) 2265 throw new Error("Attempt to auto-create Measure.experimental"); 2266 else if (Configuration.doAutoCreate()) 2267 this.experimental = new BooleanType(); // bb 2268 return this.experimental; 2269 } 2270 2271 public boolean hasExperimentalElement() { 2272 return this.experimental != null && !this.experimental.isEmpty(); 2273 } 2274 2275 public boolean hasExperimental() { 2276 return this.experimental != null && !this.experimental.isEmpty(); 2277 } 2278 2279 /** 2280 * @param value {@link #experimental} (A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value 2281 */ 2282 public Measure setExperimentalElement(BooleanType value) { 2283 this.experimental = value; 2284 return this; 2285 } 2286 2287 /** 2288 * @return A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 2289 */ 2290 public boolean getExperimental() { 2291 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 2292 } 2293 2294 /** 2295 * @param value A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 2296 */ 2297 public Measure setExperimental(boolean value) { 2298 if (this.experimental == null) 2299 this.experimental = new BooleanType(); 2300 this.experimental.setValue(value); 2301 return this; 2302 } 2303 2304 /** 2305 * @return {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.) 2306 */ 2307 public Type getSubject() { 2308 return this.subject; 2309 } 2310 2311 /** 2312 * @return {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.) 2313 */ 2314 public CodeableConcept getSubjectCodeableConcept() throws FHIRException { 2315 if (this.subject == null) 2316 this.subject = new CodeableConcept(); 2317 if (!(this.subject instanceof CodeableConcept)) 2318 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.subject.getClass().getName()+" was encountered"); 2319 return (CodeableConcept) this.subject; 2320 } 2321 2322 public boolean hasSubjectCodeableConcept() { 2323 return this != null && this.subject instanceof CodeableConcept; 2324 } 2325 2326 /** 2327 * @return {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.) 2328 */ 2329 public Reference getSubjectReference() throws FHIRException { 2330 if (this.subject == null) 2331 this.subject = new Reference(); 2332 if (!(this.subject instanceof Reference)) 2333 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.subject.getClass().getName()+" was encountered"); 2334 return (Reference) this.subject; 2335 } 2336 2337 public boolean hasSubjectReference() { 2338 return this != null && this.subject instanceof Reference; 2339 } 2340 2341 public boolean hasSubject() { 2342 return this.subject != null && !this.subject.isEmpty(); 2343 } 2344 2345 /** 2346 * @param value {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.) 2347 */ 2348 public Measure setSubject(Type value) { 2349 if (value != null && !(value instanceof CodeableConcept || value instanceof Reference)) 2350 throw new Error("Not the right type for Measure.subject[x]: "+value.fhirType()); 2351 this.subject = value; 2352 return this; 2353 } 2354 2355 /** 2356 * @return {@link #date} (The date (and optionally time) when the measure was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the measure changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2357 */ 2358 public DateTimeType getDateElement() { 2359 if (this.date == null) 2360 if (Configuration.errorOnAutoCreate()) 2361 throw new Error("Attempt to auto-create Measure.date"); 2362 else if (Configuration.doAutoCreate()) 2363 this.date = new DateTimeType(); // bb 2364 return this.date; 2365 } 2366 2367 public boolean hasDateElement() { 2368 return this.date != null && !this.date.isEmpty(); 2369 } 2370 2371 public boolean hasDate() { 2372 return this.date != null && !this.date.isEmpty(); 2373 } 2374 2375 /** 2376 * @param value {@link #date} (The date (and optionally time) when the measure was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the measure changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 2377 */ 2378 public Measure setDateElement(DateTimeType value) { 2379 this.date = value; 2380 return this; 2381 } 2382 2383 /** 2384 * @return The date (and optionally time) when the measure was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the measure changes. 2385 */ 2386 public Date getDate() { 2387 return this.date == null ? null : this.date.getValue(); 2388 } 2389 2390 /** 2391 * @param value The date (and optionally time) when the measure was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the measure changes. 2392 */ 2393 public Measure setDate(Date value) { 2394 if (value == null) 2395 this.date = null; 2396 else { 2397 if (this.date == null) 2398 this.date = new DateTimeType(); 2399 this.date.setValue(value); 2400 } 2401 return this; 2402 } 2403 2404 /** 2405 * @return {@link #publisher} (The name of the organization or individual that published the measure.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 2406 */ 2407 public StringType getPublisherElement() { 2408 if (this.publisher == null) 2409 if (Configuration.errorOnAutoCreate()) 2410 throw new Error("Attempt to auto-create Measure.publisher"); 2411 else if (Configuration.doAutoCreate()) 2412 this.publisher = new StringType(); // bb 2413 return this.publisher; 2414 } 2415 2416 public boolean hasPublisherElement() { 2417 return this.publisher != null && !this.publisher.isEmpty(); 2418 } 2419 2420 public boolean hasPublisher() { 2421 return this.publisher != null && !this.publisher.isEmpty(); 2422 } 2423 2424 /** 2425 * @param value {@link #publisher} (The name of the organization or individual that published the measure.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 2426 */ 2427 public Measure setPublisherElement(StringType value) { 2428 this.publisher = value; 2429 return this; 2430 } 2431 2432 /** 2433 * @return The name of the organization or individual that published the measure. 2434 */ 2435 public String getPublisher() { 2436 return this.publisher == null ? null : this.publisher.getValue(); 2437 } 2438 2439 /** 2440 * @param value The name of the organization or individual that published the measure. 2441 */ 2442 public Measure setPublisher(String value) { 2443 if (Utilities.noString(value)) 2444 this.publisher = null; 2445 else { 2446 if (this.publisher == null) 2447 this.publisher = new StringType(); 2448 this.publisher.setValue(value); 2449 } 2450 return this; 2451 } 2452 2453 /** 2454 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 2455 */ 2456 public List<ContactDetail> getContact() { 2457 if (this.contact == null) 2458 this.contact = new ArrayList<ContactDetail>(); 2459 return this.contact; 2460 } 2461 2462 /** 2463 * @return Returns a reference to <code>this</code> for easy method chaining 2464 */ 2465 public Measure setContact(List<ContactDetail> theContact) { 2466 this.contact = theContact; 2467 return this; 2468 } 2469 2470 public boolean hasContact() { 2471 if (this.contact == null) 2472 return false; 2473 for (ContactDetail item : this.contact) 2474 if (!item.isEmpty()) 2475 return true; 2476 return false; 2477 } 2478 2479 public ContactDetail addContact() { //3 2480 ContactDetail t = new ContactDetail(); 2481 if (this.contact == null) 2482 this.contact = new ArrayList<ContactDetail>(); 2483 this.contact.add(t); 2484 return t; 2485 } 2486 2487 public Measure addContact(ContactDetail t) { //3 2488 if (t == null) 2489 return this; 2490 if (this.contact == null) 2491 this.contact = new ArrayList<ContactDetail>(); 2492 this.contact.add(t); 2493 return this; 2494 } 2495 2496 /** 2497 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 2498 */ 2499 public ContactDetail getContactFirstRep() { 2500 if (getContact().isEmpty()) { 2501 addContact(); 2502 } 2503 return getContact().get(0); 2504 } 2505 2506 /** 2507 * @return {@link #description} (A free text natural language description of the measure from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2508 */ 2509 public MarkdownType getDescriptionElement() { 2510 if (this.description == null) 2511 if (Configuration.errorOnAutoCreate()) 2512 throw new Error("Attempt to auto-create Measure.description"); 2513 else if (Configuration.doAutoCreate()) 2514 this.description = new MarkdownType(); // bb 2515 return this.description; 2516 } 2517 2518 public boolean hasDescriptionElement() { 2519 return this.description != null && !this.description.isEmpty(); 2520 } 2521 2522 public boolean hasDescription() { 2523 return this.description != null && !this.description.isEmpty(); 2524 } 2525 2526 /** 2527 * @param value {@link #description} (A free text natural language description of the measure from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 2528 */ 2529 public Measure setDescriptionElement(MarkdownType value) { 2530 this.description = value; 2531 return this; 2532 } 2533 2534 /** 2535 * @return A free text natural language description of the measure from a consumer's perspective. 2536 */ 2537 public String getDescription() { 2538 return this.description == null ? null : this.description.getValue(); 2539 } 2540 2541 /** 2542 * @param value A free text natural language description of the measure from a consumer's perspective. 2543 */ 2544 public Measure setDescription(String value) { 2545 if (value == null) 2546 this.description = null; 2547 else { 2548 if (this.description == null) 2549 this.description = new MarkdownType(); 2550 this.description.setValue(value); 2551 } 2552 return this; 2553 } 2554 2555 /** 2556 * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate measure instances.) 2557 */ 2558 public List<UsageContext> getUseContext() { 2559 if (this.useContext == null) 2560 this.useContext = new ArrayList<UsageContext>(); 2561 return this.useContext; 2562 } 2563 2564 /** 2565 * @return Returns a reference to <code>this</code> for easy method chaining 2566 */ 2567 public Measure setUseContext(List<UsageContext> theUseContext) { 2568 this.useContext = theUseContext; 2569 return this; 2570 } 2571 2572 public boolean hasUseContext() { 2573 if (this.useContext == null) 2574 return false; 2575 for (UsageContext item : this.useContext) 2576 if (!item.isEmpty()) 2577 return true; 2578 return false; 2579 } 2580 2581 public UsageContext addUseContext() { //3 2582 UsageContext t = new UsageContext(); 2583 if (this.useContext == null) 2584 this.useContext = new ArrayList<UsageContext>(); 2585 this.useContext.add(t); 2586 return t; 2587 } 2588 2589 public Measure addUseContext(UsageContext t) { //3 2590 if (t == null) 2591 return this; 2592 if (this.useContext == null) 2593 this.useContext = new ArrayList<UsageContext>(); 2594 this.useContext.add(t); 2595 return this; 2596 } 2597 2598 /** 2599 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 2600 */ 2601 public UsageContext getUseContextFirstRep() { 2602 if (getUseContext().isEmpty()) { 2603 addUseContext(); 2604 } 2605 return getUseContext().get(0); 2606 } 2607 2608 /** 2609 * @return {@link #jurisdiction} (A legal or geographic region in which the measure is intended to be used.) 2610 */ 2611 public List<CodeableConcept> getJurisdiction() { 2612 if (this.jurisdiction == null) 2613 this.jurisdiction = new ArrayList<CodeableConcept>(); 2614 return this.jurisdiction; 2615 } 2616 2617 /** 2618 * @return Returns a reference to <code>this</code> for easy method chaining 2619 */ 2620 public Measure setJurisdiction(List<CodeableConcept> theJurisdiction) { 2621 this.jurisdiction = theJurisdiction; 2622 return this; 2623 } 2624 2625 public boolean hasJurisdiction() { 2626 if (this.jurisdiction == null) 2627 return false; 2628 for (CodeableConcept item : this.jurisdiction) 2629 if (!item.isEmpty()) 2630 return true; 2631 return false; 2632 } 2633 2634 public CodeableConcept addJurisdiction() { //3 2635 CodeableConcept t = new CodeableConcept(); 2636 if (this.jurisdiction == null) 2637 this.jurisdiction = new ArrayList<CodeableConcept>(); 2638 this.jurisdiction.add(t); 2639 return t; 2640 } 2641 2642 public Measure addJurisdiction(CodeableConcept t) { //3 2643 if (t == null) 2644 return this; 2645 if (this.jurisdiction == null) 2646 this.jurisdiction = new ArrayList<CodeableConcept>(); 2647 this.jurisdiction.add(t); 2648 return this; 2649 } 2650 2651 /** 2652 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 2653 */ 2654 public CodeableConcept getJurisdictionFirstRep() { 2655 if (getJurisdiction().isEmpty()) { 2656 addJurisdiction(); 2657 } 2658 return getJurisdiction().get(0); 2659 } 2660 2661 /** 2662 * @return {@link #purpose} (Explanation of why this measure is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value 2663 */ 2664 public MarkdownType getPurposeElement() { 2665 if (this.purpose == null) 2666 if (Configuration.errorOnAutoCreate()) 2667 throw new Error("Attempt to auto-create Measure.purpose"); 2668 else if (Configuration.doAutoCreate()) 2669 this.purpose = new MarkdownType(); // bb 2670 return this.purpose; 2671 } 2672 2673 public boolean hasPurposeElement() { 2674 return this.purpose != null && !this.purpose.isEmpty(); 2675 } 2676 2677 public boolean hasPurpose() { 2678 return this.purpose != null && !this.purpose.isEmpty(); 2679 } 2680 2681 /** 2682 * @param value {@link #purpose} (Explanation of why this measure is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value 2683 */ 2684 public Measure setPurposeElement(MarkdownType value) { 2685 this.purpose = value; 2686 return this; 2687 } 2688 2689 /** 2690 * @return Explanation of why this measure is needed and why it has been designed as it has. 2691 */ 2692 public String getPurpose() { 2693 return this.purpose == null ? null : this.purpose.getValue(); 2694 } 2695 2696 /** 2697 * @param value Explanation of why this measure is needed and why it has been designed as it has. 2698 */ 2699 public Measure setPurpose(String value) { 2700 if (value == null) 2701 this.purpose = null; 2702 else { 2703 if (this.purpose == null) 2704 this.purpose = new MarkdownType(); 2705 this.purpose.setValue(value); 2706 } 2707 return this; 2708 } 2709 2710 /** 2711 * @return {@link #usage} (A detailed description, from a clinical perspective, of how the measure is used.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value 2712 */ 2713 public StringType getUsageElement() { 2714 if (this.usage == null) 2715 if (Configuration.errorOnAutoCreate()) 2716 throw new Error("Attempt to auto-create Measure.usage"); 2717 else if (Configuration.doAutoCreate()) 2718 this.usage = new StringType(); // bb 2719 return this.usage; 2720 } 2721 2722 public boolean hasUsageElement() { 2723 return this.usage != null && !this.usage.isEmpty(); 2724 } 2725 2726 public boolean hasUsage() { 2727 return this.usage != null && !this.usage.isEmpty(); 2728 } 2729 2730 /** 2731 * @param value {@link #usage} (A detailed description, from a clinical perspective, of how the measure is used.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value 2732 */ 2733 public Measure setUsageElement(StringType value) { 2734 this.usage = value; 2735 return this; 2736 } 2737 2738 /** 2739 * @return A detailed description, from a clinical perspective, of how the measure is used. 2740 */ 2741 public String getUsage() { 2742 return this.usage == null ? null : this.usage.getValue(); 2743 } 2744 2745 /** 2746 * @param value A detailed description, from a clinical perspective, of how the measure is used. 2747 */ 2748 public Measure setUsage(String value) { 2749 if (Utilities.noString(value)) 2750 this.usage = null; 2751 else { 2752 if (this.usage == null) 2753 this.usage = new StringType(); 2754 this.usage.setValue(value); 2755 } 2756 return this; 2757 } 2758 2759 /** 2760 * @return {@link #copyright} (A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 2761 */ 2762 public MarkdownType getCopyrightElement() { 2763 if (this.copyright == null) 2764 if (Configuration.errorOnAutoCreate()) 2765 throw new Error("Attempt to auto-create Measure.copyright"); 2766 else if (Configuration.doAutoCreate()) 2767 this.copyright = new MarkdownType(); // bb 2768 return this.copyright; 2769 } 2770 2771 public boolean hasCopyrightElement() { 2772 return this.copyright != null && !this.copyright.isEmpty(); 2773 } 2774 2775 public boolean hasCopyright() { 2776 return this.copyright != null && !this.copyright.isEmpty(); 2777 } 2778 2779 /** 2780 * @param value {@link #copyright} (A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 2781 */ 2782 public Measure setCopyrightElement(MarkdownType value) { 2783 this.copyright = value; 2784 return this; 2785 } 2786 2787 /** 2788 * @return A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure. 2789 */ 2790 public String getCopyright() { 2791 return this.copyright == null ? null : this.copyright.getValue(); 2792 } 2793 2794 /** 2795 * @param value A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure. 2796 */ 2797 public Measure setCopyright(String value) { 2798 if (value == null) 2799 this.copyright = null; 2800 else { 2801 if (this.copyright == null) 2802 this.copyright = new MarkdownType(); 2803 this.copyright.setValue(value); 2804 } 2805 return this; 2806 } 2807 2808 /** 2809 * @return {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value 2810 */ 2811 public DateType getApprovalDateElement() { 2812 if (this.approvalDate == null) 2813 if (Configuration.errorOnAutoCreate()) 2814 throw new Error("Attempt to auto-create Measure.approvalDate"); 2815 else if (Configuration.doAutoCreate()) 2816 this.approvalDate = new DateType(); // bb 2817 return this.approvalDate; 2818 } 2819 2820 public boolean hasApprovalDateElement() { 2821 return this.approvalDate != null && !this.approvalDate.isEmpty(); 2822 } 2823 2824 public boolean hasApprovalDate() { 2825 return this.approvalDate != null && !this.approvalDate.isEmpty(); 2826 } 2827 2828 /** 2829 * @param value {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value 2830 */ 2831 public Measure setApprovalDateElement(DateType value) { 2832 this.approvalDate = value; 2833 return this; 2834 } 2835 2836 /** 2837 * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 2838 */ 2839 public Date getApprovalDate() { 2840 return this.approvalDate == null ? null : this.approvalDate.getValue(); 2841 } 2842 2843 /** 2844 * @param value The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 2845 */ 2846 public Measure setApprovalDate(Date value) { 2847 if (value == null) 2848 this.approvalDate = null; 2849 else { 2850 if (this.approvalDate == null) 2851 this.approvalDate = new DateType(); 2852 this.approvalDate.setValue(value); 2853 } 2854 return this; 2855 } 2856 2857 /** 2858 * @return {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value 2859 */ 2860 public DateType getLastReviewDateElement() { 2861 if (this.lastReviewDate == null) 2862 if (Configuration.errorOnAutoCreate()) 2863 throw new Error("Attempt to auto-create Measure.lastReviewDate"); 2864 else if (Configuration.doAutoCreate()) 2865 this.lastReviewDate = new DateType(); // bb 2866 return this.lastReviewDate; 2867 } 2868 2869 public boolean hasLastReviewDateElement() { 2870 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 2871 } 2872 2873 public boolean hasLastReviewDate() { 2874 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 2875 } 2876 2877 /** 2878 * @param value {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value 2879 */ 2880 public Measure setLastReviewDateElement(DateType value) { 2881 this.lastReviewDate = value; 2882 return this; 2883 } 2884 2885 /** 2886 * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 2887 */ 2888 public Date getLastReviewDate() { 2889 return this.lastReviewDate == null ? null : this.lastReviewDate.getValue(); 2890 } 2891 2892 /** 2893 * @param value The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 2894 */ 2895 public Measure setLastReviewDate(Date value) { 2896 if (value == null) 2897 this.lastReviewDate = null; 2898 else { 2899 if (this.lastReviewDate == null) 2900 this.lastReviewDate = new DateType(); 2901 this.lastReviewDate.setValue(value); 2902 } 2903 return this; 2904 } 2905 2906 /** 2907 * @return {@link #effectivePeriod} (The period during which the measure content was or is planned to be in active use.) 2908 */ 2909 public Period getEffectivePeriod() { 2910 if (this.effectivePeriod == null) 2911 if (Configuration.errorOnAutoCreate()) 2912 throw new Error("Attempt to auto-create Measure.effectivePeriod"); 2913 else if (Configuration.doAutoCreate()) 2914 this.effectivePeriod = new Period(); // cc 2915 return this.effectivePeriod; 2916 } 2917 2918 public boolean hasEffectivePeriod() { 2919 return this.effectivePeriod != null && !this.effectivePeriod.isEmpty(); 2920 } 2921 2922 /** 2923 * @param value {@link #effectivePeriod} (The period during which the measure content was or is planned to be in active use.) 2924 */ 2925 public Measure setEffectivePeriod(Period value) { 2926 this.effectivePeriod = value; 2927 return this; 2928 } 2929 2930 /** 2931 * @return {@link #topic} (Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching.) 2932 */ 2933 public List<CodeableConcept> getTopic() { 2934 if (this.topic == null) 2935 this.topic = new ArrayList<CodeableConcept>(); 2936 return this.topic; 2937 } 2938 2939 /** 2940 * @return Returns a reference to <code>this</code> for easy method chaining 2941 */ 2942 public Measure setTopic(List<CodeableConcept> theTopic) { 2943 this.topic = theTopic; 2944 return this; 2945 } 2946 2947 public boolean hasTopic() { 2948 if (this.topic == null) 2949 return false; 2950 for (CodeableConcept item : this.topic) 2951 if (!item.isEmpty()) 2952 return true; 2953 return false; 2954 } 2955 2956 public CodeableConcept addTopic() { //3 2957 CodeableConcept t = new CodeableConcept(); 2958 if (this.topic == null) 2959 this.topic = new ArrayList<CodeableConcept>(); 2960 this.topic.add(t); 2961 return t; 2962 } 2963 2964 public Measure addTopic(CodeableConcept t) { //3 2965 if (t == null) 2966 return this; 2967 if (this.topic == null) 2968 this.topic = new ArrayList<CodeableConcept>(); 2969 this.topic.add(t); 2970 return this; 2971 } 2972 2973 /** 2974 * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist 2975 */ 2976 public CodeableConcept getTopicFirstRep() { 2977 if (getTopic().isEmpty()) { 2978 addTopic(); 2979 } 2980 return getTopic().get(0); 2981 } 2982 2983 /** 2984 * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the content.) 2985 */ 2986 public List<ContactDetail> getAuthor() { 2987 if (this.author == null) 2988 this.author = new ArrayList<ContactDetail>(); 2989 return this.author; 2990 } 2991 2992 /** 2993 * @return Returns a reference to <code>this</code> for easy method chaining 2994 */ 2995 public Measure setAuthor(List<ContactDetail> theAuthor) { 2996 this.author = theAuthor; 2997 return this; 2998 } 2999 3000 public boolean hasAuthor() { 3001 if (this.author == null) 3002 return false; 3003 for (ContactDetail item : this.author) 3004 if (!item.isEmpty()) 3005 return true; 3006 return false; 3007 } 3008 3009 public ContactDetail addAuthor() { //3 3010 ContactDetail t = new ContactDetail(); 3011 if (this.author == null) 3012 this.author = new ArrayList<ContactDetail>(); 3013 this.author.add(t); 3014 return t; 3015 } 3016 3017 public Measure addAuthor(ContactDetail t) { //3 3018 if (t == null) 3019 return this; 3020 if (this.author == null) 3021 this.author = new ArrayList<ContactDetail>(); 3022 this.author.add(t); 3023 return this; 3024 } 3025 3026 /** 3027 * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist 3028 */ 3029 public ContactDetail getAuthorFirstRep() { 3030 if (getAuthor().isEmpty()) { 3031 addAuthor(); 3032 } 3033 return getAuthor().get(0); 3034 } 3035 3036 /** 3037 * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the content.) 3038 */ 3039 public List<ContactDetail> getEditor() { 3040 if (this.editor == null) 3041 this.editor = new ArrayList<ContactDetail>(); 3042 return this.editor; 3043 } 3044 3045 /** 3046 * @return Returns a reference to <code>this</code> for easy method chaining 3047 */ 3048 public Measure setEditor(List<ContactDetail> theEditor) { 3049 this.editor = theEditor; 3050 return this; 3051 } 3052 3053 public boolean hasEditor() { 3054 if (this.editor == null) 3055 return false; 3056 for (ContactDetail item : this.editor) 3057 if (!item.isEmpty()) 3058 return true; 3059 return false; 3060 } 3061 3062 public ContactDetail addEditor() { //3 3063 ContactDetail t = new ContactDetail(); 3064 if (this.editor == null) 3065 this.editor = new ArrayList<ContactDetail>(); 3066 this.editor.add(t); 3067 return t; 3068 } 3069 3070 public Measure addEditor(ContactDetail t) { //3 3071 if (t == null) 3072 return this; 3073 if (this.editor == null) 3074 this.editor = new ArrayList<ContactDetail>(); 3075 this.editor.add(t); 3076 return this; 3077 } 3078 3079 /** 3080 * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist 3081 */ 3082 public ContactDetail getEditorFirstRep() { 3083 if (getEditor().isEmpty()) { 3084 addEditor(); 3085 } 3086 return getEditor().get(0); 3087 } 3088 3089 /** 3090 * @return {@link #reviewer} (An individual or organization primarily responsible for review of some aspect of the content.) 3091 */ 3092 public List<ContactDetail> getReviewer() { 3093 if (this.reviewer == null) 3094 this.reviewer = new ArrayList<ContactDetail>(); 3095 return this.reviewer; 3096 } 3097 3098 /** 3099 * @return Returns a reference to <code>this</code> for easy method chaining 3100 */ 3101 public Measure setReviewer(List<ContactDetail> theReviewer) { 3102 this.reviewer = theReviewer; 3103 return this; 3104 } 3105 3106 public boolean hasReviewer() { 3107 if (this.reviewer == null) 3108 return false; 3109 for (ContactDetail item : this.reviewer) 3110 if (!item.isEmpty()) 3111 return true; 3112 return false; 3113 } 3114 3115 public ContactDetail addReviewer() { //3 3116 ContactDetail t = new ContactDetail(); 3117 if (this.reviewer == null) 3118 this.reviewer = new ArrayList<ContactDetail>(); 3119 this.reviewer.add(t); 3120 return t; 3121 } 3122 3123 public Measure addReviewer(ContactDetail t) { //3 3124 if (t == null) 3125 return this; 3126 if (this.reviewer == null) 3127 this.reviewer = new ArrayList<ContactDetail>(); 3128 this.reviewer.add(t); 3129 return this; 3130 } 3131 3132 /** 3133 * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist 3134 */ 3135 public ContactDetail getReviewerFirstRep() { 3136 if (getReviewer().isEmpty()) { 3137 addReviewer(); 3138 } 3139 return getReviewer().get(0); 3140 } 3141 3142 /** 3143 * @return {@link #endorser} (An individual or organization responsible for officially endorsing the content for use in some setting.) 3144 */ 3145 public List<ContactDetail> getEndorser() { 3146 if (this.endorser == null) 3147 this.endorser = new ArrayList<ContactDetail>(); 3148 return this.endorser; 3149 } 3150 3151 /** 3152 * @return Returns a reference to <code>this</code> for easy method chaining 3153 */ 3154 public Measure setEndorser(List<ContactDetail> theEndorser) { 3155 this.endorser = theEndorser; 3156 return this; 3157 } 3158 3159 public boolean hasEndorser() { 3160 if (this.endorser == null) 3161 return false; 3162 for (ContactDetail item : this.endorser) 3163 if (!item.isEmpty()) 3164 return true; 3165 return false; 3166 } 3167 3168 public ContactDetail addEndorser() { //3 3169 ContactDetail t = new ContactDetail(); 3170 if (this.endorser == null) 3171 this.endorser = new ArrayList<ContactDetail>(); 3172 this.endorser.add(t); 3173 return t; 3174 } 3175 3176 public Measure addEndorser(ContactDetail t) { //3 3177 if (t == null) 3178 return this; 3179 if (this.endorser == null) 3180 this.endorser = new ArrayList<ContactDetail>(); 3181 this.endorser.add(t); 3182 return this; 3183 } 3184 3185 /** 3186 * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist 3187 */ 3188 public ContactDetail getEndorserFirstRep() { 3189 if (getEndorser().isEmpty()) { 3190 addEndorser(); 3191 } 3192 return getEndorser().get(0); 3193 } 3194 3195 /** 3196 * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, or bibliographic references.) 3197 */ 3198 public List<RelatedArtifact> getRelatedArtifact() { 3199 if (this.relatedArtifact == null) 3200 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 3201 return this.relatedArtifact; 3202 } 3203 3204 /** 3205 * @return Returns a reference to <code>this</code> for easy method chaining 3206 */ 3207 public Measure setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 3208 this.relatedArtifact = theRelatedArtifact; 3209 return this; 3210 } 3211 3212 public boolean hasRelatedArtifact() { 3213 if (this.relatedArtifact == null) 3214 return false; 3215 for (RelatedArtifact item : this.relatedArtifact) 3216 if (!item.isEmpty()) 3217 return true; 3218 return false; 3219 } 3220 3221 public RelatedArtifact addRelatedArtifact() { //3 3222 RelatedArtifact t = new RelatedArtifact(); 3223 if (this.relatedArtifact == null) 3224 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 3225 this.relatedArtifact.add(t); 3226 return t; 3227 } 3228 3229 public Measure addRelatedArtifact(RelatedArtifact t) { //3 3230 if (t == null) 3231 return this; 3232 if (this.relatedArtifact == null) 3233 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 3234 this.relatedArtifact.add(t); 3235 return this; 3236 } 3237 3238 /** 3239 * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist 3240 */ 3241 public RelatedArtifact getRelatedArtifactFirstRep() { 3242 if (getRelatedArtifact().isEmpty()) { 3243 addRelatedArtifact(); 3244 } 3245 return getRelatedArtifact().get(0); 3246 } 3247 3248 /** 3249 * @return {@link #library} (A reference to a Library resource containing the formal logic used by the measure.) 3250 */ 3251 public List<CanonicalType> getLibrary() { 3252 if (this.library == null) 3253 this.library = new ArrayList<CanonicalType>(); 3254 return this.library; 3255 } 3256 3257 /** 3258 * @return Returns a reference to <code>this</code> for easy method chaining 3259 */ 3260 public Measure setLibrary(List<CanonicalType> theLibrary) { 3261 this.library = theLibrary; 3262 return this; 3263 } 3264 3265 public boolean hasLibrary() { 3266 if (this.library == null) 3267 return false; 3268 for (CanonicalType item : this.library) 3269 if (!item.isEmpty()) 3270 return true; 3271 return false; 3272 } 3273 3274 /** 3275 * @return {@link #library} (A reference to a Library resource containing the formal logic used by the measure.) 3276 */ 3277 public CanonicalType addLibraryElement() {//2 3278 CanonicalType t = new CanonicalType(); 3279 if (this.library == null) 3280 this.library = new ArrayList<CanonicalType>(); 3281 this.library.add(t); 3282 return t; 3283 } 3284 3285 /** 3286 * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the measure.) 3287 */ 3288 public Measure addLibrary(String value) { //1 3289 CanonicalType t = new CanonicalType(); 3290 t.setValue(value); 3291 if (this.library == null) 3292 this.library = new ArrayList<CanonicalType>(); 3293 this.library.add(t); 3294 return this; 3295 } 3296 3297 /** 3298 * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the measure.) 3299 */ 3300 public boolean hasLibrary(String value) { 3301 if (this.library == null) 3302 return false; 3303 for (CanonicalType v : this.library) 3304 if (v.getValue().equals(value)) // canonical(Library) 3305 return true; 3306 return false; 3307 } 3308 3309 /** 3310 * @return {@link #disclaimer} (Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.). This is the underlying object with id, value and extensions. The accessor "getDisclaimer" gives direct access to the value 3311 */ 3312 public MarkdownType getDisclaimerElement() { 3313 if (this.disclaimer == null) 3314 if (Configuration.errorOnAutoCreate()) 3315 throw new Error("Attempt to auto-create Measure.disclaimer"); 3316 else if (Configuration.doAutoCreate()) 3317 this.disclaimer = new MarkdownType(); // bb 3318 return this.disclaimer; 3319 } 3320 3321 public boolean hasDisclaimerElement() { 3322 return this.disclaimer != null && !this.disclaimer.isEmpty(); 3323 } 3324 3325 public boolean hasDisclaimer() { 3326 return this.disclaimer != null && !this.disclaimer.isEmpty(); 3327 } 3328 3329 /** 3330 * @param value {@link #disclaimer} (Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.). This is the underlying object with id, value and extensions. The accessor "getDisclaimer" gives direct access to the value 3331 */ 3332 public Measure setDisclaimerElement(MarkdownType value) { 3333 this.disclaimer = value; 3334 return this; 3335 } 3336 3337 /** 3338 * @return Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure. 3339 */ 3340 public String getDisclaimer() { 3341 return this.disclaimer == null ? null : this.disclaimer.getValue(); 3342 } 3343 3344 /** 3345 * @param value Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure. 3346 */ 3347 public Measure setDisclaimer(String value) { 3348 if (value == null) 3349 this.disclaimer = null; 3350 else { 3351 if (this.disclaimer == null) 3352 this.disclaimer = new MarkdownType(); 3353 this.disclaimer.setValue(value); 3354 } 3355 return this; 3356 } 3357 3358 /** 3359 * @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.) 3360 */ 3361 public CodeableConcept getScoring() { 3362 if (this.scoring == null) 3363 if (Configuration.errorOnAutoCreate()) 3364 throw new Error("Attempt to auto-create Measure.scoring"); 3365 else if (Configuration.doAutoCreate()) 3366 this.scoring = new CodeableConcept(); // cc 3367 return this.scoring; 3368 } 3369 3370 public boolean hasScoring() { 3371 return this.scoring != null && !this.scoring.isEmpty(); 3372 } 3373 3374 /** 3375 * @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.) 3376 */ 3377 public Measure setScoring(CodeableConcept value) { 3378 this.scoring = value; 3379 return this; 3380 } 3381 3382 /** 3383 * @return {@link #compositeScoring} (If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.) 3384 */ 3385 public CodeableConcept getCompositeScoring() { 3386 if (this.compositeScoring == null) 3387 if (Configuration.errorOnAutoCreate()) 3388 throw new Error("Attempt to auto-create Measure.compositeScoring"); 3389 else if (Configuration.doAutoCreate()) 3390 this.compositeScoring = new CodeableConcept(); // cc 3391 return this.compositeScoring; 3392 } 3393 3394 public boolean hasCompositeScoring() { 3395 return this.compositeScoring != null && !this.compositeScoring.isEmpty(); 3396 } 3397 3398 /** 3399 * @param value {@link #compositeScoring} (If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.) 3400 */ 3401 public Measure setCompositeScoring(CodeableConcept value) { 3402 this.compositeScoring = value; 3403 return this; 3404 } 3405 3406 /** 3407 * @return {@link #type} (Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.) 3408 */ 3409 public List<CodeableConcept> getType() { 3410 if (this.type == null) 3411 this.type = new ArrayList<CodeableConcept>(); 3412 return this.type; 3413 } 3414 3415 /** 3416 * @return Returns a reference to <code>this</code> for easy method chaining 3417 */ 3418 public Measure setType(List<CodeableConcept> theType) { 3419 this.type = theType; 3420 return this; 3421 } 3422 3423 public boolean hasType() { 3424 if (this.type == null) 3425 return false; 3426 for (CodeableConcept item : this.type) 3427 if (!item.isEmpty()) 3428 return true; 3429 return false; 3430 } 3431 3432 public CodeableConcept addType() { //3 3433 CodeableConcept t = new CodeableConcept(); 3434 if (this.type == null) 3435 this.type = new ArrayList<CodeableConcept>(); 3436 this.type.add(t); 3437 return t; 3438 } 3439 3440 public Measure addType(CodeableConcept t) { //3 3441 if (t == null) 3442 return this; 3443 if (this.type == null) 3444 this.type = new ArrayList<CodeableConcept>(); 3445 this.type.add(t); 3446 return this; 3447 } 3448 3449 /** 3450 * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist 3451 */ 3452 public CodeableConcept getTypeFirstRep() { 3453 if (getType().isEmpty()) { 3454 addType(); 3455 } 3456 return getType().get(0); 3457 } 3458 3459 /** 3460 * @return {@link #riskAdjustment} (A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.). This is the underlying object with id, value and extensions. The accessor "getRiskAdjustment" gives direct access to the value 3461 */ 3462 public StringType getRiskAdjustmentElement() { 3463 if (this.riskAdjustment == null) 3464 if (Configuration.errorOnAutoCreate()) 3465 throw new Error("Attempt to auto-create Measure.riskAdjustment"); 3466 else if (Configuration.doAutoCreate()) 3467 this.riskAdjustment = new StringType(); // bb 3468 return this.riskAdjustment; 3469 } 3470 3471 public boolean hasRiskAdjustmentElement() { 3472 return this.riskAdjustment != null && !this.riskAdjustment.isEmpty(); 3473 } 3474 3475 public boolean hasRiskAdjustment() { 3476 return this.riskAdjustment != null && !this.riskAdjustment.isEmpty(); 3477 } 3478 3479 /** 3480 * @param value {@link #riskAdjustment} (A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.). This is the underlying object with id, value and extensions. The accessor "getRiskAdjustment" gives direct access to the value 3481 */ 3482 public Measure setRiskAdjustmentElement(StringType value) { 3483 this.riskAdjustment = value; 3484 return this; 3485 } 3486 3487 /** 3488 * @return A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results. 3489 */ 3490 public String getRiskAdjustment() { 3491 return this.riskAdjustment == null ? null : this.riskAdjustment.getValue(); 3492 } 3493 3494 /** 3495 * @param value A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results. 3496 */ 3497 public Measure setRiskAdjustment(String value) { 3498 if (Utilities.noString(value)) 3499 this.riskAdjustment = null; 3500 else { 3501 if (this.riskAdjustment == null) 3502 this.riskAdjustment = new StringType(); 3503 this.riskAdjustment.setValue(value); 3504 } 3505 return this; 3506 } 3507 3508 /** 3509 * @return {@link #rateAggregation} (Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.). This is the underlying object with id, value and extensions. The accessor "getRateAggregation" gives direct access to the value 3510 */ 3511 public StringType getRateAggregationElement() { 3512 if (this.rateAggregation == null) 3513 if (Configuration.errorOnAutoCreate()) 3514 throw new Error("Attempt to auto-create Measure.rateAggregation"); 3515 else if (Configuration.doAutoCreate()) 3516 this.rateAggregation = new StringType(); // bb 3517 return this.rateAggregation; 3518 } 3519 3520 public boolean hasRateAggregationElement() { 3521 return this.rateAggregation != null && !this.rateAggregation.isEmpty(); 3522 } 3523 3524 public boolean hasRateAggregation() { 3525 return this.rateAggregation != null && !this.rateAggregation.isEmpty(); 3526 } 3527 3528 /** 3529 * @param value {@link #rateAggregation} (Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.). This is the underlying object with id, value and extensions. The accessor "getRateAggregation" gives direct access to the value 3530 */ 3531 public Measure setRateAggregationElement(StringType value) { 3532 this.rateAggregation = value; 3533 return this; 3534 } 3535 3536 /** 3537 * @return Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result. 3538 */ 3539 public String getRateAggregation() { 3540 return this.rateAggregation == null ? null : this.rateAggregation.getValue(); 3541 } 3542 3543 /** 3544 * @param value Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result. 3545 */ 3546 public Measure setRateAggregation(String value) { 3547 if (Utilities.noString(value)) 3548 this.rateAggregation = null; 3549 else { 3550 if (this.rateAggregation == null) 3551 this.rateAggregation = new StringType(); 3552 this.rateAggregation.setValue(value); 3553 } 3554 return this; 3555 } 3556 3557 /** 3558 * @return {@link #rationale} (Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.). This is the underlying object with id, value and extensions. The accessor "getRationale" gives direct access to the value 3559 */ 3560 public MarkdownType getRationaleElement() { 3561 if (this.rationale == null) 3562 if (Configuration.errorOnAutoCreate()) 3563 throw new Error("Attempt to auto-create Measure.rationale"); 3564 else if (Configuration.doAutoCreate()) 3565 this.rationale = new MarkdownType(); // bb 3566 return this.rationale; 3567 } 3568 3569 public boolean hasRationaleElement() { 3570 return this.rationale != null && !this.rationale.isEmpty(); 3571 } 3572 3573 public boolean hasRationale() { 3574 return this.rationale != null && !this.rationale.isEmpty(); 3575 } 3576 3577 /** 3578 * @param value {@link #rationale} (Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.). This is the underlying object with id, value and extensions. The accessor "getRationale" gives direct access to the value 3579 */ 3580 public Measure setRationaleElement(MarkdownType value) { 3581 this.rationale = value; 3582 return this; 3583 } 3584 3585 /** 3586 * @return Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence. 3587 */ 3588 public String getRationale() { 3589 return this.rationale == null ? null : this.rationale.getValue(); 3590 } 3591 3592 /** 3593 * @param value Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence. 3594 */ 3595 public Measure setRationale(String value) { 3596 if (value == null) 3597 this.rationale = null; 3598 else { 3599 if (this.rationale == null) 3600 this.rationale = new MarkdownType(); 3601 this.rationale.setValue(value); 3602 } 3603 return this; 3604 } 3605 3606 /** 3607 * @return {@link #clinicalRecommendationStatement} (Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.). This is the underlying object with id, value and extensions. The accessor "getClinicalRecommendationStatement" gives direct access to the value 3608 */ 3609 public MarkdownType getClinicalRecommendationStatementElement() { 3610 if (this.clinicalRecommendationStatement == null) 3611 if (Configuration.errorOnAutoCreate()) 3612 throw new Error("Attempt to auto-create Measure.clinicalRecommendationStatement"); 3613 else if (Configuration.doAutoCreate()) 3614 this.clinicalRecommendationStatement = new MarkdownType(); // bb 3615 return this.clinicalRecommendationStatement; 3616 } 3617 3618 public boolean hasClinicalRecommendationStatementElement() { 3619 return this.clinicalRecommendationStatement != null && !this.clinicalRecommendationStatement.isEmpty(); 3620 } 3621 3622 public boolean hasClinicalRecommendationStatement() { 3623 return this.clinicalRecommendationStatement != null && !this.clinicalRecommendationStatement.isEmpty(); 3624 } 3625 3626 /** 3627 * @param value {@link #clinicalRecommendationStatement} (Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.). This is the underlying object with id, value and extensions. The accessor "getClinicalRecommendationStatement" gives direct access to the value 3628 */ 3629 public Measure setClinicalRecommendationStatementElement(MarkdownType value) { 3630 this.clinicalRecommendationStatement = value; 3631 return this; 3632 } 3633 3634 /** 3635 * @return Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure. 3636 */ 3637 public String getClinicalRecommendationStatement() { 3638 return this.clinicalRecommendationStatement == null ? null : this.clinicalRecommendationStatement.getValue(); 3639 } 3640 3641 /** 3642 * @param value Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure. 3643 */ 3644 public Measure setClinicalRecommendationStatement(String value) { 3645 if (value == null) 3646 this.clinicalRecommendationStatement = null; 3647 else { 3648 if (this.clinicalRecommendationStatement == null) 3649 this.clinicalRecommendationStatement = new MarkdownType(); 3650 this.clinicalRecommendationStatement.setValue(value); 3651 } 3652 return this; 3653 } 3654 3655 /** 3656 * @return {@link #improvementNotation} (Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).) 3657 */ 3658 public CodeableConcept getImprovementNotation() { 3659 if (this.improvementNotation == null) 3660 if (Configuration.errorOnAutoCreate()) 3661 throw new Error("Attempt to auto-create Measure.improvementNotation"); 3662 else if (Configuration.doAutoCreate()) 3663 this.improvementNotation = new CodeableConcept(); // cc 3664 return this.improvementNotation; 3665 } 3666 3667 public boolean hasImprovementNotation() { 3668 return this.improvementNotation != null && !this.improvementNotation.isEmpty(); 3669 } 3670 3671 /** 3672 * @param value {@link #improvementNotation} (Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).) 3673 */ 3674 public Measure setImprovementNotation(CodeableConcept value) { 3675 this.improvementNotation = value; 3676 return this; 3677 } 3678 3679 /** 3680 * @return {@link #definition} (Provides a description of an individual term used within the measure.) 3681 */ 3682 public List<MarkdownType> getDefinition() { 3683 if (this.definition == null) 3684 this.definition = new ArrayList<MarkdownType>(); 3685 return this.definition; 3686 } 3687 3688 /** 3689 * @return Returns a reference to <code>this</code> for easy method chaining 3690 */ 3691 public Measure setDefinition(List<MarkdownType> theDefinition) { 3692 this.definition = theDefinition; 3693 return this; 3694 } 3695 3696 public boolean hasDefinition() { 3697 if (this.definition == null) 3698 return false; 3699 for (MarkdownType item : this.definition) 3700 if (!item.isEmpty()) 3701 return true; 3702 return false; 3703 } 3704 3705 /** 3706 * @return {@link #definition} (Provides a description of an individual term used within the measure.) 3707 */ 3708 public MarkdownType addDefinitionElement() {//2 3709 MarkdownType t = new MarkdownType(); 3710 if (this.definition == null) 3711 this.definition = new ArrayList<MarkdownType>(); 3712 this.definition.add(t); 3713 return t; 3714 } 3715 3716 /** 3717 * @param value {@link #definition} (Provides a description of an individual term used within the measure.) 3718 */ 3719 public Measure addDefinition(String value) { //1 3720 MarkdownType t = new MarkdownType(); 3721 t.setValue(value); 3722 if (this.definition == null) 3723 this.definition = new ArrayList<MarkdownType>(); 3724 this.definition.add(t); 3725 return this; 3726 } 3727 3728 /** 3729 * @param value {@link #definition} (Provides a description of an individual term used within the measure.) 3730 */ 3731 public boolean hasDefinition(String value) { 3732 if (this.definition == null) 3733 return false; 3734 for (MarkdownType v : this.definition) 3735 if (v.getValue().equals(value)) // markdown 3736 return true; 3737 return false; 3738 } 3739 3740 /** 3741 * @return {@link #guidance} (Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.). This is the underlying object with id, value and extensions. The accessor "getGuidance" gives direct access to the value 3742 */ 3743 public MarkdownType getGuidanceElement() { 3744 if (this.guidance == null) 3745 if (Configuration.errorOnAutoCreate()) 3746 throw new Error("Attempt to auto-create Measure.guidance"); 3747 else if (Configuration.doAutoCreate()) 3748 this.guidance = new MarkdownType(); // bb 3749 return this.guidance; 3750 } 3751 3752 public boolean hasGuidanceElement() { 3753 return this.guidance != null && !this.guidance.isEmpty(); 3754 } 3755 3756 public boolean hasGuidance() { 3757 return this.guidance != null && !this.guidance.isEmpty(); 3758 } 3759 3760 /** 3761 * @param value {@link #guidance} (Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.). This is the underlying object with id, value and extensions. The accessor "getGuidance" gives direct access to the value 3762 */ 3763 public Measure setGuidanceElement(MarkdownType value) { 3764 this.guidance = value; 3765 return this; 3766 } 3767 3768 /** 3769 * @return Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure. 3770 */ 3771 public String getGuidance() { 3772 return this.guidance == null ? null : this.guidance.getValue(); 3773 } 3774 3775 /** 3776 * @param value Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure. 3777 */ 3778 public Measure setGuidance(String value) { 3779 if (value == null) 3780 this.guidance = null; 3781 else { 3782 if (this.guidance == null) 3783 this.guidance = new MarkdownType(); 3784 this.guidance.setValue(value); 3785 } 3786 return this; 3787 } 3788 3789 /** 3790 * @return {@link #group} (A group of population criteria for the measure.) 3791 */ 3792 public List<MeasureGroupComponent> getGroup() { 3793 if (this.group == null) 3794 this.group = new ArrayList<MeasureGroupComponent>(); 3795 return this.group; 3796 } 3797 3798 /** 3799 * @return Returns a reference to <code>this</code> for easy method chaining 3800 */ 3801 public Measure setGroup(List<MeasureGroupComponent> theGroup) { 3802 this.group = theGroup; 3803 return this; 3804 } 3805 3806 public boolean hasGroup() { 3807 if (this.group == null) 3808 return false; 3809 for (MeasureGroupComponent item : this.group) 3810 if (!item.isEmpty()) 3811 return true; 3812 return false; 3813 } 3814 3815 public MeasureGroupComponent addGroup() { //3 3816 MeasureGroupComponent t = new MeasureGroupComponent(); 3817 if (this.group == null) 3818 this.group = new ArrayList<MeasureGroupComponent>(); 3819 this.group.add(t); 3820 return t; 3821 } 3822 3823 public Measure addGroup(MeasureGroupComponent t) { //3 3824 if (t == null) 3825 return this; 3826 if (this.group == null) 3827 this.group = new ArrayList<MeasureGroupComponent>(); 3828 this.group.add(t); 3829 return this; 3830 } 3831 3832 /** 3833 * @return The first repetition of repeating field {@link #group}, creating it if it does not already exist 3834 */ 3835 public MeasureGroupComponent getGroupFirstRep() { 3836 if (getGroup().isEmpty()) { 3837 addGroup(); 3838 } 3839 return getGroup().get(0); 3840 } 3841 3842 /** 3843 * @return {@link #supplementalData} (The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path.) 3844 */ 3845 public List<MeasureSupplementalDataComponent> getSupplementalData() { 3846 if (this.supplementalData == null) 3847 this.supplementalData = new ArrayList<MeasureSupplementalDataComponent>(); 3848 return this.supplementalData; 3849 } 3850 3851 /** 3852 * @return Returns a reference to <code>this</code> for easy method chaining 3853 */ 3854 public Measure setSupplementalData(List<MeasureSupplementalDataComponent> theSupplementalData) { 3855 this.supplementalData = theSupplementalData; 3856 return this; 3857 } 3858 3859 public boolean hasSupplementalData() { 3860 if (this.supplementalData == null) 3861 return false; 3862 for (MeasureSupplementalDataComponent item : this.supplementalData) 3863 if (!item.isEmpty()) 3864 return true; 3865 return false; 3866 } 3867 3868 public MeasureSupplementalDataComponent addSupplementalData() { //3 3869 MeasureSupplementalDataComponent t = new MeasureSupplementalDataComponent(); 3870 if (this.supplementalData == null) 3871 this.supplementalData = new ArrayList<MeasureSupplementalDataComponent>(); 3872 this.supplementalData.add(t); 3873 return t; 3874 } 3875 3876 public Measure addSupplementalData(MeasureSupplementalDataComponent t) { //3 3877 if (t == null) 3878 return this; 3879 if (this.supplementalData == null) 3880 this.supplementalData = new ArrayList<MeasureSupplementalDataComponent>(); 3881 this.supplementalData.add(t); 3882 return this; 3883 } 3884 3885 /** 3886 * @return The first repetition of repeating field {@link #supplementalData}, creating it if it does not already exist 3887 */ 3888 public MeasureSupplementalDataComponent getSupplementalDataFirstRep() { 3889 if (getSupplementalData().isEmpty()) { 3890 addSupplementalData(); 3891 } 3892 return getSupplementalData().get(0); 3893 } 3894 3895 protected void listChildren(List<Property> children) { 3896 super.listChildren(children); 3897 children.add(new Property("url", "uri", "An absolute URI that is used to identify this measure when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.", 0, 1, url)); 3898 children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier)); 3899 children.add(new Property("version", "string", "The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.", 0, 1, version)); 3900 children.add(new Property("name", "string", "A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name)); 3901 children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the measure.", 0, 1, title)); 3902 children.add(new Property("subtitle", "string", "An explanatory or alternate title for the measure giving additional information about its content.", 0, 1, subtitle)); 3903 children.add(new Property("status", "code", "The status of this measure. Enables tracking the life-cycle of the content.", 0, 1, status)); 3904 children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental)); 3905 children.add(new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject)); 3906 children.add(new Property("date", "dateTime", "The date (and optionally time) when the measure was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the measure changes.", 0, 1, date)); 3907 children.add(new Property("publisher", "string", "The name of the organization or individual that published the measure.", 0, 1, publisher)); 3908 children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact)); 3909 children.add(new Property("description", "markdown", "A free text natural language description of the measure from a consumer's perspective.", 0, 1, description)); 3910 children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate measure instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 3911 children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the measure is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 3912 children.add(new Property("purpose", "markdown", "Explanation of why this measure is needed and why it has been designed as it has.", 0, 1, purpose)); 3913 children.add(new Property("usage", "string", "A detailed description, from a clinical perspective, of how the measure is used.", 0, 1, usage)); 3914 children.add(new Property("copyright", "markdown", "A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.", 0, 1, copyright)); 3915 children.add(new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate)); 3916 children.add(new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate)); 3917 children.add(new Property("effectivePeriod", "Period", "The period during which the measure content was or is planned to be in active use.", 0, 1, effectivePeriod)); 3918 children.add(new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic)); 3919 children.add(new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author)); 3920 children.add(new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor)); 3921 children.add(new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer)); 3922 children.add(new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser)); 3923 children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact)); 3924 children.add(new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the measure.", 0, java.lang.Integer.MAX_VALUE, library)); 3925 children.add(new Property("disclaimer", "markdown", "Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.", 0, 1, disclaimer)); 3926 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.", 0, 1, scoring)); 3927 children.add(new Property("compositeScoring", "CodeableConcept", "If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.", 0, 1, compositeScoring)); 3928 children.add(new Property("type", "CodeableConcept", "Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.", 0, java.lang.Integer.MAX_VALUE, type)); 3929 children.add(new Property("riskAdjustment", "string", "A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.", 0, 1, riskAdjustment)); 3930 children.add(new Property("rateAggregation", "string", "Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.", 0, 1, rateAggregation)); 3931 children.add(new Property("rationale", "markdown", "Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.", 0, 1, rationale)); 3932 children.add(new Property("clinicalRecommendationStatement", "markdown", "Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.", 0, 1, clinicalRecommendationStatement)); 3933 children.add(new Property("improvementNotation", "CodeableConcept", "Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).", 0, 1, improvementNotation)); 3934 children.add(new Property("definition", "markdown", "Provides a description of an individual term used within the measure.", 0, java.lang.Integer.MAX_VALUE, definition)); 3935 children.add(new Property("guidance", "markdown", "Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.", 0, 1, guidance)); 3936 children.add(new Property("group", "", "A group of population criteria for the measure.", 0, java.lang.Integer.MAX_VALUE, group)); 3937 children.add(new Property("supplementalData", "", "The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, supplementalData)); 3938 } 3939 3940 @Override 3941 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3942 switch (_hash) { 3943 case 116079: /*url*/ return new Property("url", "uri", "An absolute URI that is used to identify this measure when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.", 0, 1, url); 3944 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier); 3945 case 351608024: /*version*/ return new Property("version", "string", "The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.", 0, 1, version); 3946 case 3373707: /*name*/ return new Property("name", "string", "A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name); 3947 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive, user-friendly title for the measure.", 0, 1, title); 3948 case -2060497896: /*subtitle*/ return new Property("subtitle", "string", "An explanatory or alternate title for the measure giving additional information about its content.", 0, 1, subtitle); 3949 case -892481550: /*status*/ return new Property("status", "code", "The status of this measure. Enables tracking the life-cycle of the content.", 0, 1, status); 3950 case -404562712: /*experimental*/ return new Property("experimental", "boolean", "A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental); 3951 case -573640748: /*subject[x]*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject); 3952 case -1867885268: /*subject*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject); 3953 case -1257122603: /*subjectCodeableConcept*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject); 3954 case 772938623: /*subjectReference*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject); 3955 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the measure was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the measure changes.", 0, 1, date); 3956 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the measure.", 0, 1, publisher); 3957 case 951526432: /*contact*/ return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact); 3958 case -1724546052: /*description*/ return new Property("description", "markdown", "A free text natural language description of the measure from a consumer's perspective.", 0, 1, description); 3959 case -669707736: /*useContext*/ return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate measure instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 3960 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the measure is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction); 3961 case -220463842: /*purpose*/ return new Property("purpose", "markdown", "Explanation of why this measure is needed and why it has been designed as it has.", 0, 1, purpose); 3962 case 111574433: /*usage*/ return new Property("usage", "string", "A detailed description, from a clinical perspective, of how the measure is used.", 0, 1, usage); 3963 case 1522889671: /*copyright*/ return new Property("copyright", "markdown", "A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.", 0, 1, copyright); 3964 case 223539345: /*approvalDate*/ return new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate); 3965 case -1687512484: /*lastReviewDate*/ return new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate); 3966 case -403934648: /*effectivePeriod*/ return new Property("effectivePeriod", "Period", "The period during which the measure content was or is planned to be in active use.", 0, 1, effectivePeriod); 3967 case 110546223: /*topic*/ return new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic); 3968 case -1406328437: /*author*/ return new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author); 3969 case -1307827859: /*editor*/ return new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor); 3970 case -261190139: /*reviewer*/ return new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer); 3971 case 1740277666: /*endorser*/ return new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser); 3972 case 666807069: /*relatedArtifact*/ return new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact); 3973 case 166208699: /*library*/ return new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the measure.", 0, java.lang.Integer.MAX_VALUE, library); 3974 case 432371099: /*disclaimer*/ return new Property("disclaimer", "markdown", "Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.", 0, 1, disclaimer); 3975 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.", 0, 1, scoring); 3976 case 569347656: /*compositeScoring*/ return new Property("compositeScoring", "CodeableConcept", "If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.", 0, 1, compositeScoring); 3977 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.", 0, java.lang.Integer.MAX_VALUE, type); 3978 case 93273500: /*riskAdjustment*/ return new Property("riskAdjustment", "string", "A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.", 0, 1, riskAdjustment); 3979 case 1254503906: /*rateAggregation*/ return new Property("rateAggregation", "string", "Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.", 0, 1, rateAggregation); 3980 case 345689335: /*rationale*/ return new Property("rationale", "markdown", "Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.", 0, 1, rationale); 3981 case -18631389: /*clinicalRecommendationStatement*/ return new Property("clinicalRecommendationStatement", "markdown", "Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.", 0, 1, clinicalRecommendationStatement); 3982 case -2085456136: /*improvementNotation*/ return new Property("improvementNotation", "CodeableConcept", "Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).", 0, 1, improvementNotation); 3983 case -1014418093: /*definition*/ return new Property("definition", "markdown", "Provides a description of an individual term used within the measure.", 0, java.lang.Integer.MAX_VALUE, definition); 3984 case -1314002088: /*guidance*/ return new Property("guidance", "markdown", "Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.", 0, 1, guidance); 3985 case 98629247: /*group*/ return new Property("group", "", "A group of population criteria for the measure.", 0, java.lang.Integer.MAX_VALUE, group); 3986 case 1447496814: /*supplementalData*/ return new Property("supplementalData", "", "The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, supplementalData); 3987 default: return super.getNamedProperty(_hash, _name, _checkValid); 3988 } 3989 3990 } 3991 3992 @Override 3993 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3994 switch (hash) { 3995 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 3996 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 3997 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 3998 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 3999 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 4000 case -2060497896: /*subtitle*/ return this.subtitle == null ? new Base[0] : new Base[] {this.subtitle}; // StringType 4001 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 4002 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 4003 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Type 4004 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 4005 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 4006 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 4007 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 4008 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 4009 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 4010 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 4011 case 111574433: /*usage*/ return this.usage == null ? new Base[0] : new Base[] {this.usage}; // StringType 4012 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 4013 case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType 4014 case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType 4015 case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period 4016 case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept 4017 case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail 4018 case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail 4019 case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail 4020 case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail 4021 case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact 4022 case 166208699: /*library*/ return this.library == null ? new Base[0] : this.library.toArray(new Base[this.library.size()]); // CanonicalType 4023 case 432371099: /*disclaimer*/ return this.disclaimer == null ? new Base[0] : new Base[] {this.disclaimer}; // MarkdownType 4024 case 1924005583: /*scoring*/ return this.scoring == null ? new Base[0] : new Base[] {this.scoring}; // CodeableConcept 4025 case 569347656: /*compositeScoring*/ return this.compositeScoring == null ? new Base[0] : new Base[] {this.compositeScoring}; // CodeableConcept 4026 case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 4027 case 93273500: /*riskAdjustment*/ return this.riskAdjustment == null ? new Base[0] : new Base[] {this.riskAdjustment}; // StringType 4028 case 1254503906: /*rateAggregation*/ return this.rateAggregation == null ? new Base[0] : new Base[] {this.rateAggregation}; // StringType 4029 case 345689335: /*rationale*/ return this.rationale == null ? new Base[0] : new Base[] {this.rationale}; // MarkdownType 4030 case -18631389: /*clinicalRecommendationStatement*/ return this.clinicalRecommendationStatement == null ? new Base[0] : new Base[] {this.clinicalRecommendationStatement}; // MarkdownType 4031 case -2085456136: /*improvementNotation*/ return this.improvementNotation == null ? new Base[0] : new Base[] {this.improvementNotation}; // CodeableConcept 4032 case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : this.definition.toArray(new Base[this.definition.size()]); // MarkdownType 4033 case -1314002088: /*guidance*/ return this.guidance == null ? new Base[0] : new Base[] {this.guidance}; // MarkdownType 4034 case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // MeasureGroupComponent 4035 case 1447496814: /*supplementalData*/ return this.supplementalData == null ? new Base[0] : this.supplementalData.toArray(new Base[this.supplementalData.size()]); // MeasureSupplementalDataComponent 4036 default: return super.getProperty(hash, name, checkValid); 4037 } 4038 4039 } 4040 4041 @Override 4042 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4043 switch (hash) { 4044 case 116079: // url 4045 this.url = castToUri(value); // UriType 4046 return value; 4047 case -1618432855: // identifier 4048 this.getIdentifier().add(castToIdentifier(value)); // Identifier 4049 return value; 4050 case 351608024: // version 4051 this.version = castToString(value); // StringType 4052 return value; 4053 case 3373707: // name 4054 this.name = castToString(value); // StringType 4055 return value; 4056 case 110371416: // title 4057 this.title = castToString(value); // StringType 4058 return value; 4059 case -2060497896: // subtitle 4060 this.subtitle = castToString(value); // StringType 4061 return value; 4062 case -892481550: // status 4063 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 4064 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 4065 return value; 4066 case -404562712: // experimental 4067 this.experimental = castToBoolean(value); // BooleanType 4068 return value; 4069 case -1867885268: // subject 4070 this.subject = castToType(value); // Type 4071 return value; 4072 case 3076014: // date 4073 this.date = castToDateTime(value); // DateTimeType 4074 return value; 4075 case 1447404028: // publisher 4076 this.publisher = castToString(value); // StringType 4077 return value; 4078 case 951526432: // contact 4079 this.getContact().add(castToContactDetail(value)); // ContactDetail 4080 return value; 4081 case -1724546052: // description 4082 this.description = castToMarkdown(value); // MarkdownType 4083 return value; 4084 case -669707736: // useContext 4085 this.getUseContext().add(castToUsageContext(value)); // UsageContext 4086 return value; 4087 case -507075711: // jurisdiction 4088 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 4089 return value; 4090 case -220463842: // purpose 4091 this.purpose = castToMarkdown(value); // MarkdownType 4092 return value; 4093 case 111574433: // usage 4094 this.usage = castToString(value); // StringType 4095 return value; 4096 case 1522889671: // copyright 4097 this.copyright = castToMarkdown(value); // MarkdownType 4098 return value; 4099 case 223539345: // approvalDate 4100 this.approvalDate = castToDate(value); // DateType 4101 return value; 4102 case -1687512484: // lastReviewDate 4103 this.lastReviewDate = castToDate(value); // DateType 4104 return value; 4105 case -403934648: // effectivePeriod 4106 this.effectivePeriod = castToPeriod(value); // Period 4107 return value; 4108 case 110546223: // topic 4109 this.getTopic().add(castToCodeableConcept(value)); // CodeableConcept 4110 return value; 4111 case -1406328437: // author 4112 this.getAuthor().add(castToContactDetail(value)); // ContactDetail 4113 return value; 4114 case -1307827859: // editor 4115 this.getEditor().add(castToContactDetail(value)); // ContactDetail 4116 return value; 4117 case -261190139: // reviewer 4118 this.getReviewer().add(castToContactDetail(value)); // ContactDetail 4119 return value; 4120 case 1740277666: // endorser 4121 this.getEndorser().add(castToContactDetail(value)); // ContactDetail 4122 return value; 4123 case 666807069: // relatedArtifact 4124 this.getRelatedArtifact().add(castToRelatedArtifact(value)); // RelatedArtifact 4125 return value; 4126 case 166208699: // library 4127 this.getLibrary().add(castToCanonical(value)); // CanonicalType 4128 return value; 4129 case 432371099: // disclaimer 4130 this.disclaimer = castToMarkdown(value); // MarkdownType 4131 return value; 4132 case 1924005583: // scoring 4133 this.scoring = castToCodeableConcept(value); // CodeableConcept 4134 return value; 4135 case 569347656: // compositeScoring 4136 this.compositeScoring = castToCodeableConcept(value); // CodeableConcept 4137 return value; 4138 case 3575610: // type 4139 this.getType().add(castToCodeableConcept(value)); // CodeableConcept 4140 return value; 4141 case 93273500: // riskAdjustment 4142 this.riskAdjustment = castToString(value); // StringType 4143 return value; 4144 case 1254503906: // rateAggregation 4145 this.rateAggregation = castToString(value); // StringType 4146 return value; 4147 case 345689335: // rationale 4148 this.rationale = castToMarkdown(value); // MarkdownType 4149 return value; 4150 case -18631389: // clinicalRecommendationStatement 4151 this.clinicalRecommendationStatement = castToMarkdown(value); // MarkdownType 4152 return value; 4153 case -2085456136: // improvementNotation 4154 this.improvementNotation = castToCodeableConcept(value); // CodeableConcept 4155 return value; 4156 case -1014418093: // definition 4157 this.getDefinition().add(castToMarkdown(value)); // MarkdownType 4158 return value; 4159 case -1314002088: // guidance 4160 this.guidance = castToMarkdown(value); // MarkdownType 4161 return value; 4162 case 98629247: // group 4163 this.getGroup().add((MeasureGroupComponent) value); // MeasureGroupComponent 4164 return value; 4165 case 1447496814: // supplementalData 4166 this.getSupplementalData().add((MeasureSupplementalDataComponent) value); // MeasureSupplementalDataComponent 4167 return value; 4168 default: return super.setProperty(hash, name, value); 4169 } 4170 4171 } 4172 4173 @Override 4174 public Base setProperty(String name, Base value) throws FHIRException { 4175 if (name.equals("url")) { 4176 this.url = castToUri(value); // UriType 4177 } else if (name.equals("identifier")) { 4178 this.getIdentifier().add(castToIdentifier(value)); 4179 } else if (name.equals("version")) { 4180 this.version = castToString(value); // StringType 4181 } else if (name.equals("name")) { 4182 this.name = castToString(value); // StringType 4183 } else if (name.equals("title")) { 4184 this.title = castToString(value); // StringType 4185 } else if (name.equals("subtitle")) { 4186 this.subtitle = castToString(value); // StringType 4187 } else if (name.equals("status")) { 4188 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 4189 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 4190 } else if (name.equals("experimental")) { 4191 this.experimental = castToBoolean(value); // BooleanType 4192 } else if (name.equals("subject[x]")) { 4193 this.subject = castToType(value); // Type 4194 } else if (name.equals("date")) { 4195 this.date = castToDateTime(value); // DateTimeType 4196 } else if (name.equals("publisher")) { 4197 this.publisher = castToString(value); // StringType 4198 } else if (name.equals("contact")) { 4199 this.getContact().add(castToContactDetail(value)); 4200 } else if (name.equals("description")) { 4201 this.description = castToMarkdown(value); // MarkdownType 4202 } else if (name.equals("useContext")) { 4203 this.getUseContext().add(castToUsageContext(value)); 4204 } else if (name.equals("jurisdiction")) { 4205 this.getJurisdiction().add(castToCodeableConcept(value)); 4206 } else if (name.equals("purpose")) { 4207 this.purpose = castToMarkdown(value); // MarkdownType 4208 } else if (name.equals("usage")) { 4209 this.usage = castToString(value); // StringType 4210 } else if (name.equals("copyright")) { 4211 this.copyright = castToMarkdown(value); // MarkdownType 4212 } else if (name.equals("approvalDate")) { 4213 this.approvalDate = castToDate(value); // DateType 4214 } else if (name.equals("lastReviewDate")) { 4215 this.lastReviewDate = castToDate(value); // DateType 4216 } else if (name.equals("effectivePeriod")) { 4217 this.effectivePeriod = castToPeriod(value); // Period 4218 } else if (name.equals("topic")) { 4219 this.getTopic().add(castToCodeableConcept(value)); 4220 } else if (name.equals("author")) { 4221 this.getAuthor().add(castToContactDetail(value)); 4222 } else if (name.equals("editor")) { 4223 this.getEditor().add(castToContactDetail(value)); 4224 } else if (name.equals("reviewer")) { 4225 this.getReviewer().add(castToContactDetail(value)); 4226 } else if (name.equals("endorser")) { 4227 this.getEndorser().add(castToContactDetail(value)); 4228 } else if (name.equals("relatedArtifact")) { 4229 this.getRelatedArtifact().add(castToRelatedArtifact(value)); 4230 } else if (name.equals("library")) { 4231 this.getLibrary().add(castToCanonical(value)); 4232 } else if (name.equals("disclaimer")) { 4233 this.disclaimer = castToMarkdown(value); // MarkdownType 4234 } else if (name.equals("scoring")) { 4235 this.scoring = castToCodeableConcept(value); // CodeableConcept 4236 } else if (name.equals("compositeScoring")) { 4237 this.compositeScoring = castToCodeableConcept(value); // CodeableConcept 4238 } else if (name.equals("type")) { 4239 this.getType().add(castToCodeableConcept(value)); 4240 } else if (name.equals("riskAdjustment")) { 4241 this.riskAdjustment = castToString(value); // StringType 4242 } else if (name.equals("rateAggregation")) { 4243 this.rateAggregation = castToString(value); // StringType 4244 } else if (name.equals("rationale")) { 4245 this.rationale = castToMarkdown(value); // MarkdownType 4246 } else if (name.equals("clinicalRecommendationStatement")) { 4247 this.clinicalRecommendationStatement = castToMarkdown(value); // MarkdownType 4248 } else if (name.equals("improvementNotation")) { 4249 this.improvementNotation = castToCodeableConcept(value); // CodeableConcept 4250 } else if (name.equals("definition")) { 4251 this.getDefinition().add(castToMarkdown(value)); 4252 } else if (name.equals("guidance")) { 4253 this.guidance = castToMarkdown(value); // MarkdownType 4254 } else if (name.equals("group")) { 4255 this.getGroup().add((MeasureGroupComponent) value); 4256 } else if (name.equals("supplementalData")) { 4257 this.getSupplementalData().add((MeasureSupplementalDataComponent) value); 4258 } else 4259 return super.setProperty(name, value); 4260 return value; 4261 } 4262 4263 @Override 4264 public Base makeProperty(int hash, String name) throws FHIRException { 4265 switch (hash) { 4266 case 116079: return getUrlElement(); 4267 case -1618432855: return addIdentifier(); 4268 case 351608024: return getVersionElement(); 4269 case 3373707: return getNameElement(); 4270 case 110371416: return getTitleElement(); 4271 case -2060497896: return getSubtitleElement(); 4272 case -892481550: return getStatusElement(); 4273 case -404562712: return getExperimentalElement(); 4274 case -573640748: return getSubject(); 4275 case -1867885268: return getSubject(); 4276 case 3076014: return getDateElement(); 4277 case 1447404028: return getPublisherElement(); 4278 case 951526432: return addContact(); 4279 case -1724546052: return getDescriptionElement(); 4280 case -669707736: return addUseContext(); 4281 case -507075711: return addJurisdiction(); 4282 case -220463842: return getPurposeElement(); 4283 case 111574433: return getUsageElement(); 4284 case 1522889671: return getCopyrightElement(); 4285 case 223539345: return getApprovalDateElement(); 4286 case -1687512484: return getLastReviewDateElement(); 4287 case -403934648: return getEffectivePeriod(); 4288 case 110546223: return addTopic(); 4289 case -1406328437: return addAuthor(); 4290 case -1307827859: return addEditor(); 4291 case -261190139: return addReviewer(); 4292 case 1740277666: return addEndorser(); 4293 case 666807069: return addRelatedArtifact(); 4294 case 166208699: return addLibraryElement(); 4295 case 432371099: return getDisclaimerElement(); 4296 case 1924005583: return getScoring(); 4297 case 569347656: return getCompositeScoring(); 4298 case 3575610: return addType(); 4299 case 93273500: return getRiskAdjustmentElement(); 4300 case 1254503906: return getRateAggregationElement(); 4301 case 345689335: return getRationaleElement(); 4302 case -18631389: return getClinicalRecommendationStatementElement(); 4303 case -2085456136: return getImprovementNotation(); 4304 case -1014418093: return addDefinitionElement(); 4305 case -1314002088: return getGuidanceElement(); 4306 case 98629247: return addGroup(); 4307 case 1447496814: return addSupplementalData(); 4308 default: return super.makeProperty(hash, name); 4309 } 4310 4311 } 4312 4313 @Override 4314 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4315 switch (hash) { 4316 case 116079: /*url*/ return new String[] {"uri"}; 4317 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 4318 case 351608024: /*version*/ return new String[] {"string"}; 4319 case 3373707: /*name*/ return new String[] {"string"}; 4320 case 110371416: /*title*/ return new String[] {"string"}; 4321 case -2060497896: /*subtitle*/ return new String[] {"string"}; 4322 case -892481550: /*status*/ return new String[] {"code"}; 4323 case -404562712: /*experimental*/ return new String[] {"boolean"}; 4324 case -1867885268: /*subject*/ return new String[] {"CodeableConcept", "Reference"}; 4325 case 3076014: /*date*/ return new String[] {"dateTime"}; 4326 case 1447404028: /*publisher*/ return new String[] {"string"}; 4327 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 4328 case -1724546052: /*description*/ return new String[] {"markdown"}; 4329 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 4330 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 4331 case -220463842: /*purpose*/ return new String[] {"markdown"}; 4332 case 111574433: /*usage*/ return new String[] {"string"}; 4333 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 4334 case 223539345: /*approvalDate*/ return new String[] {"date"}; 4335 case -1687512484: /*lastReviewDate*/ return new String[] {"date"}; 4336 case -403934648: /*effectivePeriod*/ return new String[] {"Period"}; 4337 case 110546223: /*topic*/ return new String[] {"CodeableConcept"}; 4338 case -1406328437: /*author*/ return new String[] {"ContactDetail"}; 4339 case -1307827859: /*editor*/ return new String[] {"ContactDetail"}; 4340 case -261190139: /*reviewer*/ return new String[] {"ContactDetail"}; 4341 case 1740277666: /*endorser*/ return new String[] {"ContactDetail"}; 4342 case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"}; 4343 case 166208699: /*library*/ return new String[] {"canonical"}; 4344 case 432371099: /*disclaimer*/ return new String[] {"markdown"}; 4345 case 1924005583: /*scoring*/ return new String[] {"CodeableConcept"}; 4346 case 569347656: /*compositeScoring*/ return new String[] {"CodeableConcept"}; 4347 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 4348 case 93273500: /*riskAdjustment*/ return new String[] {"string"}; 4349 case 1254503906: /*rateAggregation*/ return new String[] {"string"}; 4350 case 345689335: /*rationale*/ return new String[] {"markdown"}; 4351 case -18631389: /*clinicalRecommendationStatement*/ return new String[] {"markdown"}; 4352 case -2085456136: /*improvementNotation*/ return new String[] {"CodeableConcept"}; 4353 case -1014418093: /*definition*/ return new String[] {"markdown"}; 4354 case -1314002088: /*guidance*/ return new String[] {"markdown"}; 4355 case 98629247: /*group*/ return new String[] {}; 4356 case 1447496814: /*supplementalData*/ return new String[] {}; 4357 default: return super.getTypesForProperty(hash, name); 4358 } 4359 4360 } 4361 4362 @Override 4363 public Base addChild(String name) throws FHIRException { 4364 if (name.equals("url")) { 4365 throw new FHIRException("Cannot call addChild on a primitive type Measure.url"); 4366 } 4367 else if (name.equals("identifier")) { 4368 return addIdentifier(); 4369 } 4370 else if (name.equals("version")) { 4371 throw new FHIRException("Cannot call addChild on a primitive type Measure.version"); 4372 } 4373 else if (name.equals("name")) { 4374 throw new FHIRException("Cannot call addChild on a primitive type Measure.name"); 4375 } 4376 else if (name.equals("title")) { 4377 throw new FHIRException("Cannot call addChild on a primitive type Measure.title"); 4378 } 4379 else if (name.equals("subtitle")) { 4380 throw new FHIRException("Cannot call addChild on a primitive type Measure.subtitle"); 4381 } 4382 else if (name.equals("status")) { 4383 throw new FHIRException("Cannot call addChild on a primitive type Measure.status"); 4384 } 4385 else if (name.equals("experimental")) { 4386 throw new FHIRException("Cannot call addChild on a primitive type Measure.experimental"); 4387 } 4388 else if (name.equals("subjectCodeableConcept")) { 4389 this.subject = new CodeableConcept(); 4390 return this.subject; 4391 } 4392 else if (name.equals("subjectReference")) { 4393 this.subject = new Reference(); 4394 return this.subject; 4395 } 4396 else if (name.equals("date")) { 4397 throw new FHIRException("Cannot call addChild on a primitive type Measure.date"); 4398 } 4399 else if (name.equals("publisher")) { 4400 throw new FHIRException("Cannot call addChild on a primitive type Measure.publisher"); 4401 } 4402 else if (name.equals("contact")) { 4403 return addContact(); 4404 } 4405 else if (name.equals("description")) { 4406 throw new FHIRException("Cannot call addChild on a primitive type Measure.description"); 4407 } 4408 else if (name.equals("useContext")) { 4409 return addUseContext(); 4410 } 4411 else if (name.equals("jurisdiction")) { 4412 return addJurisdiction(); 4413 } 4414 else if (name.equals("purpose")) { 4415 throw new FHIRException("Cannot call addChild on a primitive type Measure.purpose"); 4416 } 4417 else if (name.equals("usage")) { 4418 throw new FHIRException("Cannot call addChild on a primitive type Measure.usage"); 4419 } 4420 else if (name.equals("copyright")) { 4421 throw new FHIRException("Cannot call addChild on a primitive type Measure.copyright"); 4422 } 4423 else if (name.equals("approvalDate")) { 4424 throw new FHIRException("Cannot call addChild on a primitive type Measure.approvalDate"); 4425 } 4426 else if (name.equals("lastReviewDate")) { 4427 throw new FHIRException("Cannot call addChild on a primitive type Measure.lastReviewDate"); 4428 } 4429 else if (name.equals("effectivePeriod")) { 4430 this.effectivePeriod = new Period(); 4431 return this.effectivePeriod; 4432 } 4433 else if (name.equals("topic")) { 4434 return addTopic(); 4435 } 4436 else if (name.equals("author")) { 4437 return addAuthor(); 4438 } 4439 else if (name.equals("editor")) { 4440 return addEditor(); 4441 } 4442 else if (name.equals("reviewer")) { 4443 return addReviewer(); 4444 } 4445 else if (name.equals("endorser")) { 4446 return addEndorser(); 4447 } 4448 else if (name.equals("relatedArtifact")) { 4449 return addRelatedArtifact(); 4450 } 4451 else if (name.equals("library")) { 4452 throw new FHIRException("Cannot call addChild on a primitive type Measure.library"); 4453 } 4454 else if (name.equals("disclaimer")) { 4455 throw new FHIRException("Cannot call addChild on a primitive type Measure.disclaimer"); 4456 } 4457 else if (name.equals("scoring")) { 4458 this.scoring = new CodeableConcept(); 4459 return this.scoring; 4460 } 4461 else if (name.equals("compositeScoring")) { 4462 this.compositeScoring = new CodeableConcept(); 4463 return this.compositeScoring; 4464 } 4465 else if (name.equals("type")) { 4466 return addType(); 4467 } 4468 else if (name.equals("riskAdjustment")) { 4469 throw new FHIRException("Cannot call addChild on a primitive type Measure.riskAdjustment"); 4470 } 4471 else if (name.equals("rateAggregation")) { 4472 throw new FHIRException("Cannot call addChild on a primitive type Measure.rateAggregation"); 4473 } 4474 else if (name.equals("rationale")) { 4475 throw new FHIRException("Cannot call addChild on a primitive type Measure.rationale"); 4476 } 4477 else if (name.equals("clinicalRecommendationStatement")) { 4478 throw new FHIRException("Cannot call addChild on a primitive type Measure.clinicalRecommendationStatement"); 4479 } 4480 else if (name.equals("improvementNotation")) { 4481 this.improvementNotation = new CodeableConcept(); 4482 return this.improvementNotation; 4483 } 4484 else if (name.equals("definition")) { 4485 throw new FHIRException("Cannot call addChild on a primitive type Measure.definition"); 4486 } 4487 else if (name.equals("guidance")) { 4488 throw new FHIRException("Cannot call addChild on a primitive type Measure.guidance"); 4489 } 4490 else if (name.equals("group")) { 4491 return addGroup(); 4492 } 4493 else if (name.equals("supplementalData")) { 4494 return addSupplementalData(); 4495 } 4496 else 4497 return super.addChild(name); 4498 } 4499 4500 public String fhirType() { 4501 return "Measure"; 4502 4503 } 4504 4505 public Measure copy() { 4506 Measure dst = new Measure(); 4507 copyValues(dst); 4508 dst.url = url == null ? null : url.copy(); 4509 if (identifier != null) { 4510 dst.identifier = new ArrayList<Identifier>(); 4511 for (Identifier i : identifier) 4512 dst.identifier.add(i.copy()); 4513 }; 4514 dst.version = version == null ? null : version.copy(); 4515 dst.name = name == null ? null : name.copy(); 4516 dst.title = title == null ? null : title.copy(); 4517 dst.subtitle = subtitle == null ? null : subtitle.copy(); 4518 dst.status = status == null ? null : status.copy(); 4519 dst.experimental = experimental == null ? null : experimental.copy(); 4520 dst.subject = subject == null ? null : subject.copy(); 4521 dst.date = date == null ? null : date.copy(); 4522 dst.publisher = publisher == null ? null : publisher.copy(); 4523 if (contact != null) { 4524 dst.contact = new ArrayList<ContactDetail>(); 4525 for (ContactDetail i : contact) 4526 dst.contact.add(i.copy()); 4527 }; 4528 dst.description = description == null ? null : description.copy(); 4529 if (useContext != null) { 4530 dst.useContext = new ArrayList<UsageContext>(); 4531 for (UsageContext i : useContext) 4532 dst.useContext.add(i.copy()); 4533 }; 4534 if (jurisdiction != null) { 4535 dst.jurisdiction = new ArrayList<CodeableConcept>(); 4536 for (CodeableConcept i : jurisdiction) 4537 dst.jurisdiction.add(i.copy()); 4538 }; 4539 dst.purpose = purpose == null ? null : purpose.copy(); 4540 dst.usage = usage == null ? null : usage.copy(); 4541 dst.copyright = copyright == null ? null : copyright.copy(); 4542 dst.approvalDate = approvalDate == null ? null : approvalDate.copy(); 4543 dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy(); 4544 dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy(); 4545 if (topic != null) { 4546 dst.topic = new ArrayList<CodeableConcept>(); 4547 for (CodeableConcept i : topic) 4548 dst.topic.add(i.copy()); 4549 }; 4550 if (author != null) { 4551 dst.author = new ArrayList<ContactDetail>(); 4552 for (ContactDetail i : author) 4553 dst.author.add(i.copy()); 4554 }; 4555 if (editor != null) { 4556 dst.editor = new ArrayList<ContactDetail>(); 4557 for (ContactDetail i : editor) 4558 dst.editor.add(i.copy()); 4559 }; 4560 if (reviewer != null) { 4561 dst.reviewer = new ArrayList<ContactDetail>(); 4562 for (ContactDetail i : reviewer) 4563 dst.reviewer.add(i.copy()); 4564 }; 4565 if (endorser != null) { 4566 dst.endorser = new ArrayList<ContactDetail>(); 4567 for (ContactDetail i : endorser) 4568 dst.endorser.add(i.copy()); 4569 }; 4570 if (relatedArtifact != null) { 4571 dst.relatedArtifact = new ArrayList<RelatedArtifact>(); 4572 for (RelatedArtifact i : relatedArtifact) 4573 dst.relatedArtifact.add(i.copy()); 4574 }; 4575 if (library != null) { 4576 dst.library = new ArrayList<CanonicalType>(); 4577 for (CanonicalType i : library) 4578 dst.library.add(i.copy()); 4579 }; 4580 dst.disclaimer = disclaimer == null ? null : disclaimer.copy(); 4581 dst.scoring = scoring == null ? null : scoring.copy(); 4582 dst.compositeScoring = compositeScoring == null ? null : compositeScoring.copy(); 4583 if (type != null) { 4584 dst.type = new ArrayList<CodeableConcept>(); 4585 for (CodeableConcept i : type) 4586 dst.type.add(i.copy()); 4587 }; 4588 dst.riskAdjustment = riskAdjustment == null ? null : riskAdjustment.copy(); 4589 dst.rateAggregation = rateAggregation == null ? null : rateAggregation.copy(); 4590 dst.rationale = rationale == null ? null : rationale.copy(); 4591 dst.clinicalRecommendationStatement = clinicalRecommendationStatement == null ? null : clinicalRecommendationStatement.copy(); 4592 dst.improvementNotation = improvementNotation == null ? null : improvementNotation.copy(); 4593 if (definition != null) { 4594 dst.definition = new ArrayList<MarkdownType>(); 4595 for (MarkdownType i : definition) 4596 dst.definition.add(i.copy()); 4597 }; 4598 dst.guidance = guidance == null ? null : guidance.copy(); 4599 if (group != null) { 4600 dst.group = new ArrayList<MeasureGroupComponent>(); 4601 for (MeasureGroupComponent i : group) 4602 dst.group.add(i.copy()); 4603 }; 4604 if (supplementalData != null) { 4605 dst.supplementalData = new ArrayList<MeasureSupplementalDataComponent>(); 4606 for (MeasureSupplementalDataComponent i : supplementalData) 4607 dst.supplementalData.add(i.copy()); 4608 }; 4609 return dst; 4610 } 4611 4612 protected Measure typedCopy() { 4613 return copy(); 4614 } 4615 4616 @Override 4617 public boolean equalsDeep(Base other_) { 4618 if (!super.equalsDeep(other_)) 4619 return false; 4620 if (!(other_ instanceof Measure)) 4621 return false; 4622 Measure o = (Measure) other_; 4623 return compareDeep(identifier, o.identifier, true) && compareDeep(subtitle, o.subtitle, true) && compareDeep(subject, o.subject, true) 4624 && compareDeep(purpose, o.purpose, true) && compareDeep(usage, o.usage, true) && compareDeep(copyright, o.copyright, true) 4625 && compareDeep(approvalDate, o.approvalDate, true) && compareDeep(lastReviewDate, o.lastReviewDate, true) 4626 && compareDeep(effectivePeriod, o.effectivePeriod, true) && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true) 4627 && compareDeep(editor, o.editor, true) && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true) 4628 && compareDeep(relatedArtifact, o.relatedArtifact, true) && compareDeep(library, o.library, true) 4629 && compareDeep(disclaimer, o.disclaimer, true) && compareDeep(scoring, o.scoring, true) && compareDeep(compositeScoring, o.compositeScoring, true) 4630 && compareDeep(type, o.type, true) && compareDeep(riskAdjustment, o.riskAdjustment, true) && compareDeep(rateAggregation, o.rateAggregation, true) 4631 && compareDeep(rationale, o.rationale, true) && compareDeep(clinicalRecommendationStatement, o.clinicalRecommendationStatement, true) 4632 && compareDeep(improvementNotation, o.improvementNotation, true) && compareDeep(definition, o.definition, true) 4633 && compareDeep(guidance, o.guidance, true) && compareDeep(group, o.group, true) && compareDeep(supplementalData, o.supplementalData, true) 4634 ; 4635 } 4636 4637 @Override 4638 public boolean equalsShallow(Base other_) { 4639 if (!super.equalsShallow(other_)) 4640 return false; 4641 if (!(other_ instanceof Measure)) 4642 return false; 4643 Measure o = (Measure) other_; 4644 return compareValues(subtitle, o.subtitle, true) && compareValues(purpose, o.purpose, true) && compareValues(usage, o.usage, true) 4645 && compareValues(copyright, o.copyright, true) && compareValues(approvalDate, o.approvalDate, true) 4646 && compareValues(lastReviewDate, o.lastReviewDate, true) && compareValues(disclaimer, o.disclaimer, true) 4647 && compareValues(riskAdjustment, o.riskAdjustment, true) && compareValues(rateAggregation, o.rateAggregation, true) 4648 && compareValues(rationale, o.rationale, true) && compareValues(clinicalRecommendationStatement, o.clinicalRecommendationStatement, true) 4649 && compareValues(definition, o.definition, true) && compareValues(guidance, o.guidance, true); 4650 } 4651 4652 public boolean isEmpty() { 4653 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, subtitle, subject 4654 , purpose, usage, copyright, approvalDate, lastReviewDate, effectivePeriod, topic 4655 , author, editor, reviewer, endorser, relatedArtifact, library, disclaimer, scoring 4656 , compositeScoring, type, riskAdjustment, rateAggregation, rationale, clinicalRecommendationStatement 4657 , improvementNotation, definition, guidance, group, supplementalData); 4658 } 4659 4660 @Override 4661 public ResourceType getResourceType() { 4662 return ResourceType.Measure; 4663 } 4664 4665 /** 4666 * Search parameter: <b>date</b> 4667 * <p> 4668 * Description: <b>The measure publication date</b><br> 4669 * Type: <b>date</b><br> 4670 * Path: <b>Measure.date</b><br> 4671 * </p> 4672 */ 4673 @SearchParamDefinition(name="date", path="Measure.date", description="The measure publication date", type="date" ) 4674 public static final String SP_DATE = "date"; 4675 /** 4676 * <b>Fluent Client</b> search parameter constant for <b>date</b> 4677 * <p> 4678 * Description: <b>The measure publication date</b><br> 4679 * Type: <b>date</b><br> 4680 * Path: <b>Measure.date</b><br> 4681 * </p> 4682 */ 4683 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 4684 4685 /** 4686 * Search parameter: <b>identifier</b> 4687 * <p> 4688 * Description: <b>External identifier for the measure</b><br> 4689 * Type: <b>token</b><br> 4690 * Path: <b>Measure.identifier</b><br> 4691 * </p> 4692 */ 4693 @SearchParamDefinition(name="identifier", path="Measure.identifier", description="External identifier for the measure", type="token" ) 4694 public static final String SP_IDENTIFIER = "identifier"; 4695 /** 4696 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 4697 * <p> 4698 * Description: <b>External identifier for the measure</b><br> 4699 * Type: <b>token</b><br> 4700 * Path: <b>Measure.identifier</b><br> 4701 * </p> 4702 */ 4703 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 4704 4705 /** 4706 * Search parameter: <b>successor</b> 4707 * <p> 4708 * Description: <b>What resource is being referenced</b><br> 4709 * Type: <b>reference</b><br> 4710 * Path: <b>Measure.relatedArtifact.resource</b><br> 4711 * </p> 4712 */ 4713 @SearchParamDefinition(name="successor", path="Measure.relatedArtifact.where(type='successor').resource", description="What resource is being referenced", type="reference" ) 4714 public static final String SP_SUCCESSOR = "successor"; 4715 /** 4716 * <b>Fluent Client</b> search parameter constant for <b>successor</b> 4717 * <p> 4718 * Description: <b>What resource is being referenced</b><br> 4719 * Type: <b>reference</b><br> 4720 * Path: <b>Measure.relatedArtifact.resource</b><br> 4721 * </p> 4722 */ 4723 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUCCESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUCCESSOR); 4724 4725/** 4726 * Constant for fluent queries to be used to add include statements. Specifies 4727 * the path value of "<b>Measure:successor</b>". 4728 */ 4729 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUCCESSOR = new ca.uhn.fhir.model.api.Include("Measure:successor").toLocked(); 4730 4731 /** 4732 * Search parameter: <b>context-type-value</b> 4733 * <p> 4734 * Description: <b>A use context type and value assigned to the measure</b><br> 4735 * Type: <b>composite</b><br> 4736 * Path: <b></b><br> 4737 * </p> 4738 */ 4739 @SearchParamDefinition(name="context-type-value", path="Measure.useContext", description="A use context type and value assigned to the measure", type="composite", compositeOf={"context-type", "context"} ) 4740 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 4741 /** 4742 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 4743 * <p> 4744 * Description: <b>A use context type and value assigned to the measure</b><br> 4745 * Type: <b>composite</b><br> 4746 * Path: <b></b><br> 4747 * </p> 4748 */ 4749 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE); 4750 4751 /** 4752 * Search parameter: <b>jurisdiction</b> 4753 * <p> 4754 * Description: <b>Intended jurisdiction for the measure</b><br> 4755 * Type: <b>token</b><br> 4756 * Path: <b>Measure.jurisdiction</b><br> 4757 * </p> 4758 */ 4759 @SearchParamDefinition(name="jurisdiction", path="Measure.jurisdiction", description="Intended jurisdiction for the measure", type="token" ) 4760 public static final String SP_JURISDICTION = "jurisdiction"; 4761 /** 4762 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 4763 * <p> 4764 * Description: <b>Intended jurisdiction for the measure</b><br> 4765 * Type: <b>token</b><br> 4766 * Path: <b>Measure.jurisdiction</b><br> 4767 * </p> 4768 */ 4769 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 4770 4771 /** 4772 * Search parameter: <b>description</b> 4773 * <p> 4774 * Description: <b>The description of the measure</b><br> 4775 * Type: <b>string</b><br> 4776 * Path: <b>Measure.description</b><br> 4777 * </p> 4778 */ 4779 @SearchParamDefinition(name="description", path="Measure.description", description="The description of the measure", type="string" ) 4780 public static final String SP_DESCRIPTION = "description"; 4781 /** 4782 * <b>Fluent Client</b> search parameter constant for <b>description</b> 4783 * <p> 4784 * Description: <b>The description of the measure</b><br> 4785 * Type: <b>string</b><br> 4786 * Path: <b>Measure.description</b><br> 4787 * </p> 4788 */ 4789 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 4790 4791 /** 4792 * Search parameter: <b>derived-from</b> 4793 * <p> 4794 * Description: <b>What resource is being referenced</b><br> 4795 * Type: <b>reference</b><br> 4796 * Path: <b>Measure.relatedArtifact.resource</b><br> 4797 * </p> 4798 */ 4799 @SearchParamDefinition(name="derived-from", path="Measure.relatedArtifact.where(type='derived-from').resource", description="What resource is being referenced", type="reference" ) 4800 public static final String SP_DERIVED_FROM = "derived-from"; 4801 /** 4802 * <b>Fluent Client</b> search parameter constant for <b>derived-from</b> 4803 * <p> 4804 * Description: <b>What resource is being referenced</b><br> 4805 * Type: <b>reference</b><br> 4806 * Path: <b>Measure.relatedArtifact.resource</b><br> 4807 * </p> 4808 */ 4809 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM); 4810 4811/** 4812 * Constant for fluent queries to be used to add include statements. Specifies 4813 * the path value of "<b>Measure:derived-from</b>". 4814 */ 4815 public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("Measure:derived-from").toLocked(); 4816 4817 /** 4818 * Search parameter: <b>context-type</b> 4819 * <p> 4820 * Description: <b>A type of use context assigned to the measure</b><br> 4821 * Type: <b>token</b><br> 4822 * Path: <b>Measure.useContext.code</b><br> 4823 * </p> 4824 */ 4825 @SearchParamDefinition(name="context-type", path="Measure.useContext.code", description="A type of use context assigned to the measure", type="token" ) 4826 public static final String SP_CONTEXT_TYPE = "context-type"; 4827 /** 4828 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 4829 * <p> 4830 * Description: <b>A type of use context assigned to the measure</b><br> 4831 * Type: <b>token</b><br> 4832 * Path: <b>Measure.useContext.code</b><br> 4833 * </p> 4834 */ 4835 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 4836 4837 /** 4838 * Search parameter: <b>predecessor</b> 4839 * <p> 4840 * Description: <b>What resource is being referenced</b><br> 4841 * Type: <b>reference</b><br> 4842 * Path: <b>Measure.relatedArtifact.resource</b><br> 4843 * </p> 4844 */ 4845 @SearchParamDefinition(name="predecessor", path="Measure.relatedArtifact.where(type='predecessor').resource", description="What resource is being referenced", type="reference" ) 4846 public static final String SP_PREDECESSOR = "predecessor"; 4847 /** 4848 * <b>Fluent Client</b> search parameter constant for <b>predecessor</b> 4849 * <p> 4850 * Description: <b>What resource is being referenced</b><br> 4851 * Type: <b>reference</b><br> 4852 * Path: <b>Measure.relatedArtifact.resource</b><br> 4853 * </p> 4854 */ 4855 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PREDECESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PREDECESSOR); 4856 4857/** 4858 * Constant for fluent queries to be used to add include statements. Specifies 4859 * the path value of "<b>Measure:predecessor</b>". 4860 */ 4861 public static final ca.uhn.fhir.model.api.Include INCLUDE_PREDECESSOR = new ca.uhn.fhir.model.api.Include("Measure:predecessor").toLocked(); 4862 4863 /** 4864 * Search parameter: <b>title</b> 4865 * <p> 4866 * Description: <b>The human-friendly name of the measure</b><br> 4867 * Type: <b>string</b><br> 4868 * Path: <b>Measure.title</b><br> 4869 * </p> 4870 */ 4871 @SearchParamDefinition(name="title", path="Measure.title", description="The human-friendly name of the measure", type="string" ) 4872 public static final String SP_TITLE = "title"; 4873 /** 4874 * <b>Fluent Client</b> search parameter constant for <b>title</b> 4875 * <p> 4876 * Description: <b>The human-friendly name of the measure</b><br> 4877 * Type: <b>string</b><br> 4878 * Path: <b>Measure.title</b><br> 4879 * </p> 4880 */ 4881 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 4882 4883 /** 4884 * Search parameter: <b>composed-of</b> 4885 * <p> 4886 * Description: <b>What resource is being referenced</b><br> 4887 * Type: <b>reference</b><br> 4888 * Path: <b>Measure.relatedArtifact.resource</b><br> 4889 * </p> 4890 */ 4891 @SearchParamDefinition(name="composed-of", path="Measure.relatedArtifact.where(type='composed-of').resource", description="What resource is being referenced", type="reference" ) 4892 public static final String SP_COMPOSED_OF = "composed-of"; 4893 /** 4894 * <b>Fluent Client</b> search parameter constant for <b>composed-of</b> 4895 * <p> 4896 * Description: <b>What resource is being referenced</b><br> 4897 * Type: <b>reference</b><br> 4898 * Path: <b>Measure.relatedArtifact.resource</b><br> 4899 * </p> 4900 */ 4901 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COMPOSED_OF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COMPOSED_OF); 4902 4903/** 4904 * Constant for fluent queries to be used to add include statements. Specifies 4905 * the path value of "<b>Measure:composed-of</b>". 4906 */ 4907 public static final ca.uhn.fhir.model.api.Include INCLUDE_COMPOSED_OF = new ca.uhn.fhir.model.api.Include("Measure:composed-of").toLocked(); 4908 4909 /** 4910 * Search parameter: <b>version</b> 4911 * <p> 4912 * Description: <b>The business version of the measure</b><br> 4913 * Type: <b>token</b><br> 4914 * Path: <b>Measure.version</b><br> 4915 * </p> 4916 */ 4917 @SearchParamDefinition(name="version", path="Measure.version", description="The business version of the measure", type="token" ) 4918 public static final String SP_VERSION = "version"; 4919 /** 4920 * <b>Fluent Client</b> search parameter constant for <b>version</b> 4921 * <p> 4922 * Description: <b>The business version of the measure</b><br> 4923 * Type: <b>token</b><br> 4924 * Path: <b>Measure.version</b><br> 4925 * </p> 4926 */ 4927 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 4928 4929 /** 4930 * Search parameter: <b>url</b> 4931 * <p> 4932 * Description: <b>The uri that identifies the measure</b><br> 4933 * Type: <b>uri</b><br> 4934 * Path: <b>Measure.url</b><br> 4935 * </p> 4936 */ 4937 @SearchParamDefinition(name="url", path="Measure.url", description="The uri that identifies the measure", type="uri" ) 4938 public static final String SP_URL = "url"; 4939 /** 4940 * <b>Fluent Client</b> search parameter constant for <b>url</b> 4941 * <p> 4942 * Description: <b>The uri that identifies the measure</b><br> 4943 * Type: <b>uri</b><br> 4944 * Path: <b>Measure.url</b><br> 4945 * </p> 4946 */ 4947 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 4948 4949 /** 4950 * Search parameter: <b>context-quantity</b> 4951 * <p> 4952 * Description: <b>A quantity- or range-valued use context assigned to the measure</b><br> 4953 * Type: <b>quantity</b><br> 4954 * Path: <b>Measure.useContext.valueQuantity, Measure.useContext.valueRange</b><br> 4955 * </p> 4956 */ 4957 @SearchParamDefinition(name="context-quantity", path="(Measure.useContext.value as Quantity) | (Measure.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the measure", type="quantity" ) 4958 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 4959 /** 4960 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 4961 * <p> 4962 * Description: <b>A quantity- or range-valued use context assigned to the measure</b><br> 4963 * Type: <b>quantity</b><br> 4964 * Path: <b>Measure.useContext.valueQuantity, Measure.useContext.valueRange</b><br> 4965 * </p> 4966 */ 4967 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 4968 4969 /** 4970 * Search parameter: <b>effective</b> 4971 * <p> 4972 * Description: <b>The time during which the measure is intended to be in use</b><br> 4973 * Type: <b>date</b><br> 4974 * Path: <b>Measure.effectivePeriod</b><br> 4975 * </p> 4976 */ 4977 @SearchParamDefinition(name="effective", path="Measure.effectivePeriod", description="The time during which the measure is intended to be in use", type="date" ) 4978 public static final String SP_EFFECTIVE = "effective"; 4979 /** 4980 * <b>Fluent Client</b> search parameter constant for <b>effective</b> 4981 * <p> 4982 * Description: <b>The time during which the measure is intended to be in use</b><br> 4983 * Type: <b>date</b><br> 4984 * Path: <b>Measure.effectivePeriod</b><br> 4985 * </p> 4986 */ 4987 public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE); 4988 4989 /** 4990 * Search parameter: <b>depends-on</b> 4991 * <p> 4992 * Description: <b>What resource is being referenced</b><br> 4993 * Type: <b>reference</b><br> 4994 * Path: <b>Measure.relatedArtifact.resource, Measure.library</b><br> 4995 * </p> 4996 */ 4997 @SearchParamDefinition(name="depends-on", path="Measure.relatedArtifact.where(type='depends-on').resource | Measure.library", description="What resource is being referenced", type="reference" ) 4998 public static final String SP_DEPENDS_ON = "depends-on"; 4999 /** 5000 * <b>Fluent Client</b> search parameter constant for <b>depends-on</b> 5001 * <p> 5002 * Description: <b>What resource is being referenced</b><br> 5003 * Type: <b>reference</b><br> 5004 * Path: <b>Measure.relatedArtifact.resource, Measure.library</b><br> 5005 * </p> 5006 */ 5007 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEPENDS_ON); 5008 5009/** 5010 * Constant for fluent queries to be used to add include statements. Specifies 5011 * the path value of "<b>Measure:depends-on</b>". 5012 */ 5013 public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include("Measure:depends-on").toLocked(); 5014 5015 /** 5016 * Search parameter: <b>name</b> 5017 * <p> 5018 * Description: <b>Computationally friendly name of the measure</b><br> 5019 * Type: <b>string</b><br> 5020 * Path: <b>Measure.name</b><br> 5021 * </p> 5022 */ 5023 @SearchParamDefinition(name="name", path="Measure.name", description="Computationally friendly name of the measure", type="string" ) 5024 public static final String SP_NAME = "name"; 5025 /** 5026 * <b>Fluent Client</b> search parameter constant for <b>name</b> 5027 * <p> 5028 * Description: <b>Computationally friendly name of the measure</b><br> 5029 * Type: <b>string</b><br> 5030 * Path: <b>Measure.name</b><br> 5031 * </p> 5032 */ 5033 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 5034 5035 /** 5036 * Search parameter: <b>context</b> 5037 * <p> 5038 * Description: <b>A use context assigned to the measure</b><br> 5039 * Type: <b>token</b><br> 5040 * Path: <b>Measure.useContext.valueCodeableConcept</b><br> 5041 * </p> 5042 */ 5043 @SearchParamDefinition(name="context", path="(Measure.useContext.value as CodeableConcept)", description="A use context assigned to the measure", type="token" ) 5044 public static final String SP_CONTEXT = "context"; 5045 /** 5046 * <b>Fluent Client</b> search parameter constant for <b>context</b> 5047 * <p> 5048 * Description: <b>A use context assigned to the measure</b><br> 5049 * Type: <b>token</b><br> 5050 * Path: <b>Measure.useContext.valueCodeableConcept</b><br> 5051 * </p> 5052 */ 5053 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 5054 5055 /** 5056 * Search parameter: <b>publisher</b> 5057 * <p> 5058 * Description: <b>Name of the publisher of the measure</b><br> 5059 * Type: <b>string</b><br> 5060 * Path: <b>Measure.publisher</b><br> 5061 * </p> 5062 */ 5063 @SearchParamDefinition(name="publisher", path="Measure.publisher", description="Name of the publisher of the measure", type="string" ) 5064 public static final String SP_PUBLISHER = "publisher"; 5065 /** 5066 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 5067 * <p> 5068 * Description: <b>Name of the publisher of the measure</b><br> 5069 * Type: <b>string</b><br> 5070 * Path: <b>Measure.publisher</b><br> 5071 * </p> 5072 */ 5073 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 5074 5075 /** 5076 * Search parameter: <b>topic</b> 5077 * <p> 5078 * Description: <b>Topics associated with the measure</b><br> 5079 * Type: <b>token</b><br> 5080 * Path: <b>Measure.topic</b><br> 5081 * </p> 5082 */ 5083 @SearchParamDefinition(name="topic", path="Measure.topic", description="Topics associated with the measure", type="token" ) 5084 public static final String SP_TOPIC = "topic"; 5085 /** 5086 * <b>Fluent Client</b> search parameter constant for <b>topic</b> 5087 * <p> 5088 * Description: <b>Topics associated with the measure</b><br> 5089 * Type: <b>token</b><br> 5090 * Path: <b>Measure.topic</b><br> 5091 * </p> 5092 */ 5093 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TOPIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TOPIC); 5094 5095 /** 5096 * Search parameter: <b>context-type-quantity</b> 5097 * <p> 5098 * Description: <b>A use context type and quantity- or range-based value assigned to the measure</b><br> 5099 * Type: <b>composite</b><br> 5100 * Path: <b></b><br> 5101 * </p> 5102 */ 5103 @SearchParamDefinition(name="context-type-quantity", path="Measure.useContext", description="A use context type and quantity- or range-based value assigned to the measure", type="composite", compositeOf={"context-type", "context-quantity"} ) 5104 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 5105 /** 5106 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 5107 * <p> 5108 * Description: <b>A use context type and quantity- or range-based value assigned to the measure</b><br> 5109 * Type: <b>composite</b><br> 5110 * Path: <b></b><br> 5111 * </p> 5112 */ 5113 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY); 5114 5115 /** 5116 * Search parameter: <b>status</b> 5117 * <p> 5118 * Description: <b>The current status of the measure</b><br> 5119 * Type: <b>token</b><br> 5120 * Path: <b>Measure.status</b><br> 5121 * </p> 5122 */ 5123 @SearchParamDefinition(name="status", path="Measure.status", description="The current status of the measure", type="token" ) 5124 public static final String SP_STATUS = "status"; 5125 /** 5126 * <b>Fluent Client</b> search parameter constant for <b>status</b> 5127 * <p> 5128 * Description: <b>The current status of the measure</b><br> 5129 * Type: <b>token</b><br> 5130 * Path: <b>Measure.status</b><br> 5131 * </p> 5132 */ 5133 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 5134 5135 5136} 5137