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