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