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