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