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