001package org.hl7.fhir.dstu3.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Mon, Apr 17, 2017 17:38-0400 for FHIR v3.0.1 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.dstu3.model.Enumerations.*; 038import ca.uhn.fhir.model.api.annotation.ResourceDef; 039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.ChildOrder; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.Block; 044import org.hl7.fhir.instance.model.api.*; 045import org.hl7.fhir.exceptions.FHIRException; 046/** 047 * The formal description of a single piece of information that can be gathered and reported. 048 */ 049@ResourceDef(name="DataElement", profile="http://hl7.org/fhir/Profile/DataElement") 050@ChildOrder(names={"url", "identifier", "version", "status", "experimental", "date", "publisher", "name", "title", "contact", "useContext", "jurisdiction", "copyright", "stringency", "mapping", "element"}) 051public class DataElement extends MetadataResource { 052 053 public enum DataElementStringency { 054 /** 055 * The data element is sufficiently well-constrained that multiple pieces of data captured according to the constraints of the data element will be comparable (though in some cases, a degree of automated conversion/normalization may be required). 056 */ 057 COMPARABLE, 058 /** 059 * The data element is fully specified down to a single value set, single unit of measure, single data type, etc. Multiple pieces of data associated with this data element are fully comparable. 060 */ 061 FULLYSPECIFIED, 062 /** 063 * The data element allows multiple units of measure having equivalent meaning; e.g. "cc" (cubic centimeter) and "mL" (milliliter). 064 */ 065 EQUIVALENT, 066 /** 067 * The data element allows multiple units of measure that are convertable between each other (e.g. inches and centimeters) and/or allows data to be captured in multiple value sets for which a known mapping exists allowing conversion of meaning. 068 */ 069 CONVERTABLE, 070 /** 071 * A convertable data element where unit conversions are different only by a power of 10; e.g. g, mg, kg. 072 */ 073 SCALEABLE, 074 /** 075 * The data element is unconstrained in units, choice of data types and/or choice of vocabulary such that automated comparison of data captured using the data element is not possible. 076 */ 077 FLEXIBLE, 078 /** 079 * added to help the parsers with the generic types 080 */ 081 NULL; 082 public static DataElementStringency fromCode(String codeString) throws FHIRException { 083 if (codeString == null || "".equals(codeString)) 084 return null; 085 if ("comparable".equals(codeString)) 086 return COMPARABLE; 087 if ("fully-specified".equals(codeString)) 088 return FULLYSPECIFIED; 089 if ("equivalent".equals(codeString)) 090 return EQUIVALENT; 091 if ("convertable".equals(codeString)) 092 return CONVERTABLE; 093 if ("scaleable".equals(codeString)) 094 return SCALEABLE; 095 if ("flexible".equals(codeString)) 096 return FLEXIBLE; 097 if (Configuration.isAcceptInvalidEnums()) 098 return null; 099 else 100 throw new FHIRException("Unknown DataElementStringency code '"+codeString+"'"); 101 } 102 public String toCode() { 103 switch (this) { 104 case COMPARABLE: return "comparable"; 105 case FULLYSPECIFIED: return "fully-specified"; 106 case EQUIVALENT: return "equivalent"; 107 case CONVERTABLE: return "convertable"; 108 case SCALEABLE: return "scaleable"; 109 case FLEXIBLE: return "flexible"; 110 default: return "?"; 111 } 112 } 113 public String getSystem() { 114 switch (this) { 115 case COMPARABLE: return "http://hl7.org/fhir/dataelement-stringency"; 116 case FULLYSPECIFIED: return "http://hl7.org/fhir/dataelement-stringency"; 117 case EQUIVALENT: return "http://hl7.org/fhir/dataelement-stringency"; 118 case CONVERTABLE: return "http://hl7.org/fhir/dataelement-stringency"; 119 case SCALEABLE: return "http://hl7.org/fhir/dataelement-stringency"; 120 case FLEXIBLE: return "http://hl7.org/fhir/dataelement-stringency"; 121 default: return "?"; 122 } 123 } 124 public String getDefinition() { 125 switch (this) { 126 case COMPARABLE: return "The data element is sufficiently well-constrained that multiple pieces of data captured according to the constraints of the data element will be comparable (though in some cases, a degree of automated conversion/normalization may be required)."; 127 case FULLYSPECIFIED: return "The data element is fully specified down to a single value set, single unit of measure, single data type, etc. Multiple pieces of data associated with this data element are fully comparable."; 128 case EQUIVALENT: return "The data element allows multiple units of measure having equivalent meaning; e.g. \"cc\" (cubic centimeter) and \"mL\" (milliliter)."; 129 case CONVERTABLE: return "The data element allows multiple units of measure that are convertable between each other (e.g. inches and centimeters) and/or allows data to be captured in multiple value sets for which a known mapping exists allowing conversion of meaning."; 130 case SCALEABLE: return "A convertable data element where unit conversions are different only by a power of 10; e.g. g, mg, kg."; 131 case FLEXIBLE: return "The data element is unconstrained in units, choice of data types and/or choice of vocabulary such that automated comparison of data captured using the data element is not possible."; 132 default: return "?"; 133 } 134 } 135 public String getDisplay() { 136 switch (this) { 137 case COMPARABLE: return "Comparable"; 138 case FULLYSPECIFIED: return "Fully Specified"; 139 case EQUIVALENT: return "Equivalent"; 140 case CONVERTABLE: return "Convertable"; 141 case SCALEABLE: return "Scaleable"; 142 case FLEXIBLE: return "Flexible"; 143 default: return "?"; 144 } 145 } 146 } 147 148 public static class DataElementStringencyEnumFactory implements EnumFactory<DataElementStringency> { 149 public DataElementStringency fromCode(String codeString) throws IllegalArgumentException { 150 if (codeString == null || "".equals(codeString)) 151 if (codeString == null || "".equals(codeString)) 152 return null; 153 if ("comparable".equals(codeString)) 154 return DataElementStringency.COMPARABLE; 155 if ("fully-specified".equals(codeString)) 156 return DataElementStringency.FULLYSPECIFIED; 157 if ("equivalent".equals(codeString)) 158 return DataElementStringency.EQUIVALENT; 159 if ("convertable".equals(codeString)) 160 return DataElementStringency.CONVERTABLE; 161 if ("scaleable".equals(codeString)) 162 return DataElementStringency.SCALEABLE; 163 if ("flexible".equals(codeString)) 164 return DataElementStringency.FLEXIBLE; 165 throw new IllegalArgumentException("Unknown DataElementStringency code '"+codeString+"'"); 166 } 167 public Enumeration<DataElementStringency> fromType(Base code) throws FHIRException { 168 if (code == null) 169 return null; 170 if (code.isEmpty()) 171 return new Enumeration<DataElementStringency>(this); 172 String codeString = ((PrimitiveType) code).asStringValue(); 173 if (codeString == null || "".equals(codeString)) 174 return null; 175 if ("comparable".equals(codeString)) 176 return new Enumeration<DataElementStringency>(this, DataElementStringency.COMPARABLE); 177 if ("fully-specified".equals(codeString)) 178 return new Enumeration<DataElementStringency>(this, DataElementStringency.FULLYSPECIFIED); 179 if ("equivalent".equals(codeString)) 180 return new Enumeration<DataElementStringency>(this, DataElementStringency.EQUIVALENT); 181 if ("convertable".equals(codeString)) 182 return new Enumeration<DataElementStringency>(this, DataElementStringency.CONVERTABLE); 183 if ("scaleable".equals(codeString)) 184 return new Enumeration<DataElementStringency>(this, DataElementStringency.SCALEABLE); 185 if ("flexible".equals(codeString)) 186 return new Enumeration<DataElementStringency>(this, DataElementStringency.FLEXIBLE); 187 throw new FHIRException("Unknown DataElementStringency code '"+codeString+"'"); 188 } 189 public String toCode(DataElementStringency code) { 190 if (code == DataElementStringency.COMPARABLE) 191 return "comparable"; 192 if (code == DataElementStringency.FULLYSPECIFIED) 193 return "fully-specified"; 194 if (code == DataElementStringency.EQUIVALENT) 195 return "equivalent"; 196 if (code == DataElementStringency.CONVERTABLE) 197 return "convertable"; 198 if (code == DataElementStringency.SCALEABLE) 199 return "scaleable"; 200 if (code == DataElementStringency.FLEXIBLE) 201 return "flexible"; 202 return "?"; 203 } 204 public String toSystem(DataElementStringency code) { 205 return code.getSystem(); 206 } 207 } 208 209 @Block() 210 public static class DataElementMappingComponent extends BackboneElement implements IBaseBackboneElement { 211 /** 212 * An internal id that is used to identify this mapping set when specific mappings are made on a per-element basis. 213 */ 214 @Child(name = "identity", type = {IdType.class}, order=1, min=1, max=1, modifier=false, summary=false) 215 @Description(shortDefinition="Internal id when this mapping is used", formalDefinition="An internal id that is used to identify this mapping set when specific mappings are made on a per-element basis." ) 216 protected IdType identity; 217 218 /** 219 * An absolute URI that identifies the specification that this mapping is expressed to. 220 */ 221 @Child(name = "uri", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=false) 222 @Description(shortDefinition="Identifies what this mapping refers to", formalDefinition="An absolute URI that identifies the specification that this mapping is expressed to." ) 223 protected UriType uri; 224 225 /** 226 * A name for the specification that is being mapped to. 227 */ 228 @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 229 @Description(shortDefinition="Names what this mapping refers to", formalDefinition="A name for the specification that is being mapped to." ) 230 protected StringType name; 231 232 /** 233 * Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. 234 */ 235 @Child(name = "comment", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 236 @Description(shortDefinition="Versions, issues, scope limitations, etc.", formalDefinition="Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage." ) 237 protected StringType comment; 238 239 private static final long serialVersionUID = 9610265L; 240 241 /** 242 * Constructor 243 */ 244 public DataElementMappingComponent() { 245 super(); 246 } 247 248 /** 249 * Constructor 250 */ 251 public DataElementMappingComponent(IdType identity) { 252 super(); 253 this.identity = identity; 254 } 255 256 /** 257 * @return {@link #identity} (An internal id that is used to identify this mapping set when specific mappings are made on a per-element basis.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value 258 */ 259 public IdType getIdentityElement() { 260 if (this.identity == null) 261 if (Configuration.errorOnAutoCreate()) 262 throw new Error("Attempt to auto-create DataElementMappingComponent.identity"); 263 else if (Configuration.doAutoCreate()) 264 this.identity = new IdType(); // bb 265 return this.identity; 266 } 267 268 public boolean hasIdentityElement() { 269 return this.identity != null && !this.identity.isEmpty(); 270 } 271 272 public boolean hasIdentity() { 273 return this.identity != null && !this.identity.isEmpty(); 274 } 275 276 /** 277 * @param value {@link #identity} (An internal id that is used to identify this mapping set when specific mappings are made on a per-element basis.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value 278 */ 279 public DataElementMappingComponent setIdentityElement(IdType value) { 280 this.identity = value; 281 return this; 282 } 283 284 /** 285 * @return An internal id that is used to identify this mapping set when specific mappings are made on a per-element basis. 286 */ 287 public String getIdentity() { 288 return this.identity == null ? null : this.identity.getValue(); 289 } 290 291 /** 292 * @param value An internal id that is used to identify this mapping set when specific mappings are made on a per-element basis. 293 */ 294 public DataElementMappingComponent setIdentity(String value) { 295 if (this.identity == null) 296 this.identity = new IdType(); 297 this.identity.setValue(value); 298 return this; 299 } 300 301 /** 302 * @return {@link #uri} (An absolute URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value 303 */ 304 public UriType getUriElement() { 305 if (this.uri == null) 306 if (Configuration.errorOnAutoCreate()) 307 throw new Error("Attempt to auto-create DataElementMappingComponent.uri"); 308 else if (Configuration.doAutoCreate()) 309 this.uri = new UriType(); // bb 310 return this.uri; 311 } 312 313 public boolean hasUriElement() { 314 return this.uri != null && !this.uri.isEmpty(); 315 } 316 317 public boolean hasUri() { 318 return this.uri != null && !this.uri.isEmpty(); 319 } 320 321 /** 322 * @param value {@link #uri} (An absolute URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value 323 */ 324 public DataElementMappingComponent setUriElement(UriType value) { 325 this.uri = value; 326 return this; 327 } 328 329 /** 330 * @return An absolute URI that identifies the specification that this mapping is expressed to. 331 */ 332 public String getUri() { 333 return this.uri == null ? null : this.uri.getValue(); 334 } 335 336 /** 337 * @param value An absolute URI that identifies the specification that this mapping is expressed to. 338 */ 339 public DataElementMappingComponent setUri(String value) { 340 if (Utilities.noString(value)) 341 this.uri = null; 342 else { 343 if (this.uri == null) 344 this.uri = new UriType(); 345 this.uri.setValue(value); 346 } 347 return this; 348 } 349 350 /** 351 * @return {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 352 */ 353 public StringType getNameElement() { 354 if (this.name == null) 355 if (Configuration.errorOnAutoCreate()) 356 throw new Error("Attempt to auto-create DataElementMappingComponent.name"); 357 else if (Configuration.doAutoCreate()) 358 this.name = new StringType(); // bb 359 return this.name; 360 } 361 362 public boolean hasNameElement() { 363 return this.name != null && !this.name.isEmpty(); 364 } 365 366 public boolean hasName() { 367 return this.name != null && !this.name.isEmpty(); 368 } 369 370 /** 371 * @param value {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 372 */ 373 public DataElementMappingComponent setNameElement(StringType value) { 374 this.name = value; 375 return this; 376 } 377 378 /** 379 * @return A name for the specification that is being mapped to. 380 */ 381 public String getName() { 382 return this.name == null ? null : this.name.getValue(); 383 } 384 385 /** 386 * @param value A name for the specification that is being mapped to. 387 */ 388 public DataElementMappingComponent setName(String value) { 389 if (Utilities.noString(value)) 390 this.name = null; 391 else { 392 if (this.name == null) 393 this.name = new StringType(); 394 this.name.setValue(value); 395 } 396 return this; 397 } 398 399 /** 400 * @return {@link #comment} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 401 */ 402 public StringType getCommentElement() { 403 if (this.comment == null) 404 if (Configuration.errorOnAutoCreate()) 405 throw new Error("Attempt to auto-create DataElementMappingComponent.comment"); 406 else if (Configuration.doAutoCreate()) 407 this.comment = new StringType(); // bb 408 return this.comment; 409 } 410 411 public boolean hasCommentElement() { 412 return this.comment != null && !this.comment.isEmpty(); 413 } 414 415 public boolean hasComment() { 416 return this.comment != null && !this.comment.isEmpty(); 417 } 418 419 /** 420 * @param value {@link #comment} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 421 */ 422 public DataElementMappingComponent setCommentElement(StringType value) { 423 this.comment = value; 424 return this; 425 } 426 427 /** 428 * @return Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. 429 */ 430 public String getComment() { 431 return this.comment == null ? null : this.comment.getValue(); 432 } 433 434 /** 435 * @param value Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. 436 */ 437 public DataElementMappingComponent setComment(String value) { 438 if (Utilities.noString(value)) 439 this.comment = null; 440 else { 441 if (this.comment == null) 442 this.comment = new StringType(); 443 this.comment.setValue(value); 444 } 445 return this; 446 } 447 448 protected void listChildren(List<Property> childrenList) { 449 super.listChildren(childrenList); 450 childrenList.add(new Property("identity", "id", "An internal id that is used to identify this mapping set when specific mappings are made on a per-element basis.", 0, java.lang.Integer.MAX_VALUE, identity)); 451 childrenList.add(new Property("uri", "uri", "An absolute URI that identifies the specification that this mapping is expressed to.", 0, java.lang.Integer.MAX_VALUE, uri)); 452 childrenList.add(new Property("name", "string", "A name for the specification that is being mapped to.", 0, java.lang.Integer.MAX_VALUE, name)); 453 childrenList.add(new Property("comment", "string", "Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.", 0, java.lang.Integer.MAX_VALUE, comment)); 454 } 455 456 @Override 457 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 458 switch (hash) { 459 case -135761730: /*identity*/ return this.identity == null ? new Base[0] : new Base[] {this.identity}; // IdType 460 case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // UriType 461 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 462 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType 463 default: return super.getProperty(hash, name, checkValid); 464 } 465 466 } 467 468 @Override 469 public Base setProperty(int hash, String name, Base value) throws FHIRException { 470 switch (hash) { 471 case -135761730: // identity 472 this.identity = castToId(value); // IdType 473 return value; 474 case 116076: // uri 475 this.uri = castToUri(value); // UriType 476 return value; 477 case 3373707: // name 478 this.name = castToString(value); // StringType 479 return value; 480 case 950398559: // comment 481 this.comment = castToString(value); // StringType 482 return value; 483 default: return super.setProperty(hash, name, value); 484 } 485 486 } 487 488 @Override 489 public Base setProperty(String name, Base value) throws FHIRException { 490 if (name.equals("identity")) { 491 this.identity = castToId(value); // IdType 492 } else if (name.equals("uri")) { 493 this.uri = castToUri(value); // UriType 494 } else if (name.equals("name")) { 495 this.name = castToString(value); // StringType 496 } else if (name.equals("comment")) { 497 this.comment = castToString(value); // StringType 498 } else 499 return super.setProperty(name, value); 500 return value; 501 } 502 503 @Override 504 public Base makeProperty(int hash, String name) throws FHIRException { 505 switch (hash) { 506 case -135761730: return getIdentityElement(); 507 case 116076: return getUriElement(); 508 case 3373707: return getNameElement(); 509 case 950398559: return getCommentElement(); 510 default: return super.makeProperty(hash, name); 511 } 512 513 } 514 515 @Override 516 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 517 switch (hash) { 518 case -135761730: /*identity*/ return new String[] {"id"}; 519 case 116076: /*uri*/ return new String[] {"uri"}; 520 case 3373707: /*name*/ return new String[] {"string"}; 521 case 950398559: /*comment*/ return new String[] {"string"}; 522 default: return super.getTypesForProperty(hash, name); 523 } 524 525 } 526 527 @Override 528 public Base addChild(String name) throws FHIRException { 529 if (name.equals("identity")) { 530 throw new FHIRException("Cannot call addChild on a primitive type DataElement.identity"); 531 } 532 else if (name.equals("uri")) { 533 throw new FHIRException("Cannot call addChild on a primitive type DataElement.uri"); 534 } 535 else if (name.equals("name")) { 536 throw new FHIRException("Cannot call addChild on a primitive type DataElement.name"); 537 } 538 else if (name.equals("comment")) { 539 throw new FHIRException("Cannot call addChild on a primitive type DataElement.comment"); 540 } 541 else 542 return super.addChild(name); 543 } 544 545 public DataElementMappingComponent copy() { 546 DataElementMappingComponent dst = new DataElementMappingComponent(); 547 copyValues(dst); 548 dst.identity = identity == null ? null : identity.copy(); 549 dst.uri = uri == null ? null : uri.copy(); 550 dst.name = name == null ? null : name.copy(); 551 dst.comment = comment == null ? null : comment.copy(); 552 return dst; 553 } 554 555 @Override 556 public boolean equalsDeep(Base other) { 557 if (!super.equalsDeep(other)) 558 return false; 559 if (!(other instanceof DataElementMappingComponent)) 560 return false; 561 DataElementMappingComponent o = (DataElementMappingComponent) other; 562 return compareDeep(identity, o.identity, true) && compareDeep(uri, o.uri, true) && compareDeep(name, o.name, true) 563 && compareDeep(comment, o.comment, true); 564 } 565 566 @Override 567 public boolean equalsShallow(Base other) { 568 if (!super.equalsShallow(other)) 569 return false; 570 if (!(other instanceof DataElementMappingComponent)) 571 return false; 572 DataElementMappingComponent o = (DataElementMappingComponent) other; 573 return compareValues(identity, o.identity, true) && compareValues(uri, o.uri, true) && compareValues(name, o.name, true) 574 && compareValues(comment, o.comment, true); 575 } 576 577 public boolean isEmpty() { 578 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identity, uri, name, comment 579 ); 580 } 581 582 public String fhirType() { 583 return "DataElement.mapping"; 584 585 } 586 587 } 588 589 /** 590 * A formal identifier that is used to identify this data element when it is represented in other formats, or referenced in a specification, model, design or an instance. 591 */ 592 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 593 @Description(shortDefinition="Additional identifier for the data element", formalDefinition="A formal identifier that is used to identify this data element when it is represented in other formats, or referenced in a specification, model, design or an instance." ) 594 protected List<Identifier> identifier; 595 596 /** 597 * A copyright statement relating to the data element and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the data element. 598 */ 599 @Child(name = "copyright", type = {MarkdownType.class}, order=1, min=0, max=1, modifier=false, summary=false) 600 @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the data element and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the data element." ) 601 protected MarkdownType copyright; 602 603 /** 604 * Identifies how precise the data element is in its definition. 605 */ 606 @Child(name = "stringency", type = {CodeType.class}, order=2, min=0, max=1, modifier=false, summary=true) 607 @Description(shortDefinition="comparable | fully-specified | equivalent | convertable | scaleable | flexible", formalDefinition="Identifies how precise the data element is in its definition." ) 608 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/dataelement-stringency") 609 protected Enumeration<DataElementStringency> stringency; 610 611 /** 612 * Identifies a specification (other than a terminology) that the elements which make up the DataElement have some correspondence with. 613 */ 614 @Child(name = "mapping", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 615 @Description(shortDefinition="External specification mapped to", formalDefinition="Identifies a specification (other than a terminology) that the elements which make up the DataElement have some correspondence with." ) 616 protected List<DataElementMappingComponent> mapping; 617 618 /** 619 * Defines the structure, type, allowed values and other constraining characteristics of the data element. 620 */ 621 @Child(name = "element", type = {ElementDefinition.class}, order=4, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 622 @Description(shortDefinition="Definition of element", formalDefinition="Defines the structure, type, allowed values and other constraining characteristics of the data element." ) 623 protected List<ElementDefinition> element; 624 625 private static final long serialVersionUID = 634422795L; 626 627 /** 628 * Constructor 629 */ 630 public DataElement() { 631 super(); 632 } 633 634 /** 635 * Constructor 636 */ 637 public DataElement(Enumeration<PublicationStatus> status) { 638 super(); 639 this.status = status; 640 } 641 642 /** 643 * @return {@link #url} (An absolute URI that is used to identify this data element when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this data element is (or will be) published. The URL SHOULD include the major version of the data element. For more information see [Technical and Business Versions](resource.html#versions).). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 644 */ 645 public UriType getUrlElement() { 646 if (this.url == null) 647 if (Configuration.errorOnAutoCreate()) 648 throw new Error("Attempt to auto-create DataElement.url"); 649 else if (Configuration.doAutoCreate()) 650 this.url = new UriType(); // bb 651 return this.url; 652 } 653 654 public boolean hasUrlElement() { 655 return this.url != null && !this.url.isEmpty(); 656 } 657 658 public boolean hasUrl() { 659 return this.url != null && !this.url.isEmpty(); 660 } 661 662 /** 663 * @param value {@link #url} (An absolute URI that is used to identify this data element when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this data element is (or will be) published. The URL SHOULD include the major version of the data element. For more information see [Technical and Business Versions](resource.html#versions).). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 664 */ 665 public DataElement setUrlElement(UriType value) { 666 this.url = value; 667 return this; 668 } 669 670 /** 671 * @return An absolute URI that is used to identify this data element when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this data element is (or will be) published. The URL SHOULD include the major version of the data element. For more information see [Technical and Business Versions](resource.html#versions). 672 */ 673 public String getUrl() { 674 return this.url == null ? null : this.url.getValue(); 675 } 676 677 /** 678 * @param value An absolute URI that is used to identify this data element when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this data element is (or will be) published. The URL SHOULD include the major version of the data element. For more information see [Technical and Business Versions](resource.html#versions). 679 */ 680 public DataElement setUrl(String value) { 681 if (Utilities.noString(value)) 682 this.url = null; 683 else { 684 if (this.url == null) 685 this.url = new UriType(); 686 this.url.setValue(value); 687 } 688 return this; 689 } 690 691 /** 692 * @return {@link #identifier} (A formal identifier that is used to identify this data element when it is represented in other formats, or referenced in a specification, model, design or an instance.) 693 */ 694 public List<Identifier> getIdentifier() { 695 if (this.identifier == null) 696 this.identifier = new ArrayList<Identifier>(); 697 return this.identifier; 698 } 699 700 /** 701 * @return Returns a reference to <code>this</code> for easy method chaining 702 */ 703 public DataElement setIdentifier(List<Identifier> theIdentifier) { 704 this.identifier = theIdentifier; 705 return this; 706 } 707 708 public boolean hasIdentifier() { 709 if (this.identifier == null) 710 return false; 711 for (Identifier item : this.identifier) 712 if (!item.isEmpty()) 713 return true; 714 return false; 715 } 716 717 public Identifier addIdentifier() { //3 718 Identifier t = new Identifier(); 719 if (this.identifier == null) 720 this.identifier = new ArrayList<Identifier>(); 721 this.identifier.add(t); 722 return t; 723 } 724 725 public DataElement addIdentifier(Identifier t) { //3 726 if (t == null) 727 return this; 728 if (this.identifier == null) 729 this.identifier = new ArrayList<Identifier>(); 730 this.identifier.add(t); 731 return this; 732 } 733 734 /** 735 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 736 */ 737 public Identifier getIdentifierFirstRep() { 738 if (getIdentifier().isEmpty()) { 739 addIdentifier(); 740 } 741 return getIdentifier().get(0); 742 } 743 744 /** 745 * @return {@link #version} (The identifier that is used to identify this version of the data element when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the data element 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.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 746 */ 747 public StringType getVersionElement() { 748 if (this.version == null) 749 if (Configuration.errorOnAutoCreate()) 750 throw new Error("Attempt to auto-create DataElement.version"); 751 else if (Configuration.doAutoCreate()) 752 this.version = new StringType(); // bb 753 return this.version; 754 } 755 756 public boolean hasVersionElement() { 757 return this.version != null && !this.version.isEmpty(); 758 } 759 760 public boolean hasVersion() { 761 return this.version != null && !this.version.isEmpty(); 762 } 763 764 /** 765 * @param value {@link #version} (The identifier that is used to identify this version of the data element when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the data element 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.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 766 */ 767 public DataElement setVersionElement(StringType value) { 768 this.version = value; 769 return this; 770 } 771 772 /** 773 * @return The identifier that is used to identify this version of the data element when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the data element 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. 774 */ 775 public String getVersion() { 776 return this.version == null ? null : this.version.getValue(); 777 } 778 779 /** 780 * @param value The identifier that is used to identify this version of the data element when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the data element 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. 781 */ 782 public DataElement setVersion(String value) { 783 if (Utilities.noString(value)) 784 this.version = null; 785 else { 786 if (this.version == null) 787 this.version = new StringType(); 788 this.version.setValue(value); 789 } 790 return this; 791 } 792 793 /** 794 * @return {@link #status} (The status of this data element. 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 795 */ 796 public Enumeration<PublicationStatus> getStatusElement() { 797 if (this.status == null) 798 if (Configuration.errorOnAutoCreate()) 799 throw new Error("Attempt to auto-create DataElement.status"); 800 else if (Configuration.doAutoCreate()) 801 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 802 return this.status; 803 } 804 805 public boolean hasStatusElement() { 806 return this.status != null && !this.status.isEmpty(); 807 } 808 809 public boolean hasStatus() { 810 return this.status != null && !this.status.isEmpty(); 811 } 812 813 /** 814 * @param value {@link #status} (The status of this data element. 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 815 */ 816 public DataElement setStatusElement(Enumeration<PublicationStatus> value) { 817 this.status = value; 818 return this; 819 } 820 821 /** 822 * @return The status of this data element. Enables tracking the life-cycle of the content. 823 */ 824 public PublicationStatus getStatus() { 825 return this.status == null ? null : this.status.getValue(); 826 } 827 828 /** 829 * @param value The status of this data element. Enables tracking the life-cycle of the content. 830 */ 831 public DataElement setStatus(PublicationStatus value) { 832 if (this.status == null) 833 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 834 this.status.setValue(value); 835 return this; 836 } 837 838 /** 839 * @return {@link #experimental} (A boolean value to indicate that this data element 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 840 */ 841 public BooleanType getExperimentalElement() { 842 if (this.experimental == null) 843 if (Configuration.errorOnAutoCreate()) 844 throw new Error("Attempt to auto-create DataElement.experimental"); 845 else if (Configuration.doAutoCreate()) 846 this.experimental = new BooleanType(); // bb 847 return this.experimental; 848 } 849 850 public boolean hasExperimentalElement() { 851 return this.experimental != null && !this.experimental.isEmpty(); 852 } 853 854 public boolean hasExperimental() { 855 return this.experimental != null && !this.experimental.isEmpty(); 856 } 857 858 /** 859 * @param value {@link #experimental} (A boolean value to indicate that this data element 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 860 */ 861 public DataElement setExperimentalElement(BooleanType value) { 862 this.experimental = value; 863 return this; 864 } 865 866 /** 867 * @return A boolean value to indicate that this data element is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. 868 */ 869 public boolean getExperimental() { 870 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 871 } 872 873 /** 874 * @param value A boolean value to indicate that this data element is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. 875 */ 876 public DataElement setExperimental(boolean value) { 877 if (this.experimental == null) 878 this.experimental = new BooleanType(); 879 this.experimental.setValue(value); 880 return this; 881 } 882 883 /** 884 * @return {@link #date} (The date (and optionally time) when the data element was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the data element changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 885 */ 886 public DateTimeType getDateElement() { 887 if (this.date == null) 888 if (Configuration.errorOnAutoCreate()) 889 throw new Error("Attempt to auto-create DataElement.date"); 890 else if (Configuration.doAutoCreate()) 891 this.date = new DateTimeType(); // bb 892 return this.date; 893 } 894 895 public boolean hasDateElement() { 896 return this.date != null && !this.date.isEmpty(); 897 } 898 899 public boolean hasDate() { 900 return this.date != null && !this.date.isEmpty(); 901 } 902 903 /** 904 * @param value {@link #date} (The date (and optionally time) when the data element was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the data element changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 905 */ 906 public DataElement setDateElement(DateTimeType value) { 907 this.date = value; 908 return this; 909 } 910 911 /** 912 * @return The date (and optionally time) when the data element was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the data element changes. 913 */ 914 public Date getDate() { 915 return this.date == null ? null : this.date.getValue(); 916 } 917 918 /** 919 * @param value The date (and optionally time) when the data element was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the data element changes. 920 */ 921 public DataElement setDate(Date value) { 922 if (value == null) 923 this.date = null; 924 else { 925 if (this.date == null) 926 this.date = new DateTimeType(); 927 this.date.setValue(value); 928 } 929 return this; 930 } 931 932 /** 933 * @return {@link #publisher} (The name of the individual or organization that published the data element.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 934 */ 935 public StringType getPublisherElement() { 936 if (this.publisher == null) 937 if (Configuration.errorOnAutoCreate()) 938 throw new Error("Attempt to auto-create DataElement.publisher"); 939 else if (Configuration.doAutoCreate()) 940 this.publisher = new StringType(); // bb 941 return this.publisher; 942 } 943 944 public boolean hasPublisherElement() { 945 return this.publisher != null && !this.publisher.isEmpty(); 946 } 947 948 public boolean hasPublisher() { 949 return this.publisher != null && !this.publisher.isEmpty(); 950 } 951 952 /** 953 * @param value {@link #publisher} (The name of the individual or organization that published the data element.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 954 */ 955 public DataElement setPublisherElement(StringType value) { 956 this.publisher = value; 957 return this; 958 } 959 960 /** 961 * @return The name of the individual or organization that published the data element. 962 */ 963 public String getPublisher() { 964 return this.publisher == null ? null : this.publisher.getValue(); 965 } 966 967 /** 968 * @param value The name of the individual or organization that published the data element. 969 */ 970 public DataElement setPublisher(String value) { 971 if (Utilities.noString(value)) 972 this.publisher = null; 973 else { 974 if (this.publisher == null) 975 this.publisher = new StringType(); 976 this.publisher.setValue(value); 977 } 978 return this; 979 } 980 981 /** 982 * @return {@link #name} (A natural language name identifying the data element. 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 983 */ 984 public StringType getNameElement() { 985 if (this.name == null) 986 if (Configuration.errorOnAutoCreate()) 987 throw new Error("Attempt to auto-create DataElement.name"); 988 else if (Configuration.doAutoCreate()) 989 this.name = new StringType(); // bb 990 return this.name; 991 } 992 993 public boolean hasNameElement() { 994 return this.name != null && !this.name.isEmpty(); 995 } 996 997 public boolean hasName() { 998 return this.name != null && !this.name.isEmpty(); 999 } 1000 1001 /** 1002 * @param value {@link #name} (A natural language name identifying the data element. 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 1003 */ 1004 public DataElement setNameElement(StringType value) { 1005 this.name = value; 1006 return this; 1007 } 1008 1009 /** 1010 * @return A natural language name identifying the data element. This name should be usable as an identifier for the module by machine processing applications such as code generation. 1011 */ 1012 public String getName() { 1013 return this.name == null ? null : this.name.getValue(); 1014 } 1015 1016 /** 1017 * @param value A natural language name identifying the data element. This name should be usable as an identifier for the module by machine processing applications such as code generation. 1018 */ 1019 public DataElement setName(String value) { 1020 if (Utilities.noString(value)) 1021 this.name = null; 1022 else { 1023 if (this.name == null) 1024 this.name = new StringType(); 1025 this.name.setValue(value); 1026 } 1027 return this; 1028 } 1029 1030 /** 1031 * @return {@link #title} (A short, descriptive, user-friendly title for the data element.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1032 */ 1033 public StringType getTitleElement() { 1034 if (this.title == null) 1035 if (Configuration.errorOnAutoCreate()) 1036 throw new Error("Attempt to auto-create DataElement.title"); 1037 else if (Configuration.doAutoCreate()) 1038 this.title = new StringType(); // bb 1039 return this.title; 1040 } 1041 1042 public boolean hasTitleElement() { 1043 return this.title != null && !this.title.isEmpty(); 1044 } 1045 1046 public boolean hasTitle() { 1047 return this.title != null && !this.title.isEmpty(); 1048 } 1049 1050 /** 1051 * @param value {@link #title} (A short, descriptive, user-friendly title for the data element.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 1052 */ 1053 public DataElement setTitleElement(StringType value) { 1054 this.title = value; 1055 return this; 1056 } 1057 1058 /** 1059 * @return A short, descriptive, user-friendly title for the data element. 1060 */ 1061 public String getTitle() { 1062 return this.title == null ? null : this.title.getValue(); 1063 } 1064 1065 /** 1066 * @param value A short, descriptive, user-friendly title for the data element. 1067 */ 1068 public DataElement setTitle(String value) { 1069 if (Utilities.noString(value)) 1070 this.title = null; 1071 else { 1072 if (this.title == null) 1073 this.title = new StringType(); 1074 this.title.setValue(value); 1075 } 1076 return this; 1077 } 1078 1079 /** 1080 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 1081 */ 1082 public List<ContactDetail> getContact() { 1083 if (this.contact == null) 1084 this.contact = new ArrayList<ContactDetail>(); 1085 return this.contact; 1086 } 1087 1088 /** 1089 * @return Returns a reference to <code>this</code> for easy method chaining 1090 */ 1091 public DataElement setContact(List<ContactDetail> theContact) { 1092 this.contact = theContact; 1093 return this; 1094 } 1095 1096 public boolean hasContact() { 1097 if (this.contact == null) 1098 return false; 1099 for (ContactDetail item : this.contact) 1100 if (!item.isEmpty()) 1101 return true; 1102 return false; 1103 } 1104 1105 public ContactDetail addContact() { //3 1106 ContactDetail t = new ContactDetail(); 1107 if (this.contact == null) 1108 this.contact = new ArrayList<ContactDetail>(); 1109 this.contact.add(t); 1110 return t; 1111 } 1112 1113 public DataElement addContact(ContactDetail t) { //3 1114 if (t == null) 1115 return this; 1116 if (this.contact == null) 1117 this.contact = new ArrayList<ContactDetail>(); 1118 this.contact.add(t); 1119 return this; 1120 } 1121 1122 /** 1123 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 1124 */ 1125 public ContactDetail getContactFirstRep() { 1126 if (getContact().isEmpty()) { 1127 addContact(); 1128 } 1129 return getContact().get(0); 1130 } 1131 1132 /** 1133 * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate data element instances.) 1134 */ 1135 public List<UsageContext> getUseContext() { 1136 if (this.useContext == null) 1137 this.useContext = new ArrayList<UsageContext>(); 1138 return this.useContext; 1139 } 1140 1141 /** 1142 * @return Returns a reference to <code>this</code> for easy method chaining 1143 */ 1144 public DataElement setUseContext(List<UsageContext> theUseContext) { 1145 this.useContext = theUseContext; 1146 return this; 1147 } 1148 1149 public boolean hasUseContext() { 1150 if (this.useContext == null) 1151 return false; 1152 for (UsageContext item : this.useContext) 1153 if (!item.isEmpty()) 1154 return true; 1155 return false; 1156 } 1157 1158 public UsageContext addUseContext() { //3 1159 UsageContext t = new UsageContext(); 1160 if (this.useContext == null) 1161 this.useContext = new ArrayList<UsageContext>(); 1162 this.useContext.add(t); 1163 return t; 1164 } 1165 1166 public DataElement addUseContext(UsageContext t) { //3 1167 if (t == null) 1168 return this; 1169 if (this.useContext == null) 1170 this.useContext = new ArrayList<UsageContext>(); 1171 this.useContext.add(t); 1172 return this; 1173 } 1174 1175 /** 1176 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 1177 */ 1178 public UsageContext getUseContextFirstRep() { 1179 if (getUseContext().isEmpty()) { 1180 addUseContext(); 1181 } 1182 return getUseContext().get(0); 1183 } 1184 1185 /** 1186 * @return {@link #jurisdiction} (A legal or geographic region in which the data element is intended to be used.) 1187 */ 1188 public List<CodeableConcept> getJurisdiction() { 1189 if (this.jurisdiction == null) 1190 this.jurisdiction = new ArrayList<CodeableConcept>(); 1191 return this.jurisdiction; 1192 } 1193 1194 /** 1195 * @return Returns a reference to <code>this</code> for easy method chaining 1196 */ 1197 public DataElement setJurisdiction(List<CodeableConcept> theJurisdiction) { 1198 this.jurisdiction = theJurisdiction; 1199 return this; 1200 } 1201 1202 public boolean hasJurisdiction() { 1203 if (this.jurisdiction == null) 1204 return false; 1205 for (CodeableConcept item : this.jurisdiction) 1206 if (!item.isEmpty()) 1207 return true; 1208 return false; 1209 } 1210 1211 public CodeableConcept addJurisdiction() { //3 1212 CodeableConcept t = new CodeableConcept(); 1213 if (this.jurisdiction == null) 1214 this.jurisdiction = new ArrayList<CodeableConcept>(); 1215 this.jurisdiction.add(t); 1216 return t; 1217 } 1218 1219 public DataElement addJurisdiction(CodeableConcept t) { //3 1220 if (t == null) 1221 return this; 1222 if (this.jurisdiction == null) 1223 this.jurisdiction = new ArrayList<CodeableConcept>(); 1224 this.jurisdiction.add(t); 1225 return this; 1226 } 1227 1228 /** 1229 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 1230 */ 1231 public CodeableConcept getJurisdictionFirstRep() { 1232 if (getJurisdiction().isEmpty()) { 1233 addJurisdiction(); 1234 } 1235 return getJurisdiction().get(0); 1236 } 1237 1238 /** 1239 * @return {@link #copyright} (A copyright statement relating to the data element and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the data element.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 1240 */ 1241 public MarkdownType getCopyrightElement() { 1242 if (this.copyright == null) 1243 if (Configuration.errorOnAutoCreate()) 1244 throw new Error("Attempt to auto-create DataElement.copyright"); 1245 else if (Configuration.doAutoCreate()) 1246 this.copyright = new MarkdownType(); // bb 1247 return this.copyright; 1248 } 1249 1250 public boolean hasCopyrightElement() { 1251 return this.copyright != null && !this.copyright.isEmpty(); 1252 } 1253 1254 public boolean hasCopyright() { 1255 return this.copyright != null && !this.copyright.isEmpty(); 1256 } 1257 1258 /** 1259 * @param value {@link #copyright} (A copyright statement relating to the data element and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the data element.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 1260 */ 1261 public DataElement setCopyrightElement(MarkdownType value) { 1262 this.copyright = value; 1263 return this; 1264 } 1265 1266 /** 1267 * @return A copyright statement relating to the data element and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the data element. 1268 */ 1269 public String getCopyright() { 1270 return this.copyright == null ? null : this.copyright.getValue(); 1271 } 1272 1273 /** 1274 * @param value A copyright statement relating to the data element and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the data element. 1275 */ 1276 public DataElement setCopyright(String value) { 1277 if (value == null) 1278 this.copyright = null; 1279 else { 1280 if (this.copyright == null) 1281 this.copyright = new MarkdownType(); 1282 this.copyright.setValue(value); 1283 } 1284 return this; 1285 } 1286 1287 /** 1288 * @return {@link #stringency} (Identifies how precise the data element is in its definition.). This is the underlying object with id, value and extensions. The accessor "getStringency" gives direct access to the value 1289 */ 1290 public Enumeration<DataElementStringency> getStringencyElement() { 1291 if (this.stringency == null) 1292 if (Configuration.errorOnAutoCreate()) 1293 throw new Error("Attempt to auto-create DataElement.stringency"); 1294 else if (Configuration.doAutoCreate()) 1295 this.stringency = new Enumeration<DataElementStringency>(new DataElementStringencyEnumFactory()); // bb 1296 return this.stringency; 1297 } 1298 1299 public boolean hasStringencyElement() { 1300 return this.stringency != null && !this.stringency.isEmpty(); 1301 } 1302 1303 public boolean hasStringency() { 1304 return this.stringency != null && !this.stringency.isEmpty(); 1305 } 1306 1307 /** 1308 * @param value {@link #stringency} (Identifies how precise the data element is in its definition.). This is the underlying object with id, value and extensions. The accessor "getStringency" gives direct access to the value 1309 */ 1310 public DataElement setStringencyElement(Enumeration<DataElementStringency> value) { 1311 this.stringency = value; 1312 return this; 1313 } 1314 1315 /** 1316 * @return Identifies how precise the data element is in its definition. 1317 */ 1318 public DataElementStringency getStringency() { 1319 return this.stringency == null ? null : this.stringency.getValue(); 1320 } 1321 1322 /** 1323 * @param value Identifies how precise the data element is in its definition. 1324 */ 1325 public DataElement setStringency(DataElementStringency value) { 1326 if (value == null) 1327 this.stringency = null; 1328 else { 1329 if (this.stringency == null) 1330 this.stringency = new Enumeration<DataElementStringency>(new DataElementStringencyEnumFactory()); 1331 this.stringency.setValue(value); 1332 } 1333 return this; 1334 } 1335 1336 /** 1337 * @return {@link #mapping} (Identifies a specification (other than a terminology) that the elements which make up the DataElement have some correspondence with.) 1338 */ 1339 public List<DataElementMappingComponent> getMapping() { 1340 if (this.mapping == null) 1341 this.mapping = new ArrayList<DataElementMappingComponent>(); 1342 return this.mapping; 1343 } 1344 1345 /** 1346 * @return Returns a reference to <code>this</code> for easy method chaining 1347 */ 1348 public DataElement setMapping(List<DataElementMappingComponent> theMapping) { 1349 this.mapping = theMapping; 1350 return this; 1351 } 1352 1353 public boolean hasMapping() { 1354 if (this.mapping == null) 1355 return false; 1356 for (DataElementMappingComponent item : this.mapping) 1357 if (!item.isEmpty()) 1358 return true; 1359 return false; 1360 } 1361 1362 public DataElementMappingComponent addMapping() { //3 1363 DataElementMappingComponent t = new DataElementMappingComponent(); 1364 if (this.mapping == null) 1365 this.mapping = new ArrayList<DataElementMappingComponent>(); 1366 this.mapping.add(t); 1367 return t; 1368 } 1369 1370 public DataElement addMapping(DataElementMappingComponent t) { //3 1371 if (t == null) 1372 return this; 1373 if (this.mapping == null) 1374 this.mapping = new ArrayList<DataElementMappingComponent>(); 1375 this.mapping.add(t); 1376 return this; 1377 } 1378 1379 /** 1380 * @return The first repetition of repeating field {@link #mapping}, creating it if it does not already exist 1381 */ 1382 public DataElementMappingComponent getMappingFirstRep() { 1383 if (getMapping().isEmpty()) { 1384 addMapping(); 1385 } 1386 return getMapping().get(0); 1387 } 1388 1389 /** 1390 * @return {@link #element} (Defines the structure, type, allowed values and other constraining characteristics of the data element.) 1391 */ 1392 public List<ElementDefinition> getElement() { 1393 if (this.element == null) 1394 this.element = new ArrayList<ElementDefinition>(); 1395 return this.element; 1396 } 1397 1398 /** 1399 * @return Returns a reference to <code>this</code> for easy method chaining 1400 */ 1401 public DataElement setElement(List<ElementDefinition> theElement) { 1402 this.element = theElement; 1403 return this; 1404 } 1405 1406 public boolean hasElement() { 1407 if (this.element == null) 1408 return false; 1409 for (ElementDefinition item : this.element) 1410 if (!item.isEmpty()) 1411 return true; 1412 return false; 1413 } 1414 1415 public ElementDefinition addElement() { //3 1416 ElementDefinition t = new ElementDefinition(); 1417 if (this.element == null) 1418 this.element = new ArrayList<ElementDefinition>(); 1419 this.element.add(t); 1420 return t; 1421 } 1422 1423 public DataElement addElement(ElementDefinition t) { //3 1424 if (t == null) 1425 return this; 1426 if (this.element == null) 1427 this.element = new ArrayList<ElementDefinition>(); 1428 this.element.add(t); 1429 return this; 1430 } 1431 1432 /** 1433 * @return The first repetition of repeating field {@link #element}, creating it if it does not already exist 1434 */ 1435 public ElementDefinition getElementFirstRep() { 1436 if (getElement().isEmpty()) { 1437 addElement(); 1438 } 1439 return getElement().get(0); 1440 } 1441 1442 protected void listChildren(List<Property> childrenList) { 1443 super.listChildren(childrenList); 1444 childrenList.add(new Property("url", "uri", "An absolute URI that is used to identify this data element when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this data element is (or will be) published. The URL SHOULD include the major version of the data element. For more information see [Technical and Business Versions](resource.html#versions).", 0, java.lang.Integer.MAX_VALUE, url)); 1445 childrenList.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this data element when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1446 childrenList.add(new Property("version", "string", "The identifier that is used to identify this version of the data element when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the data element 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.", 0, java.lang.Integer.MAX_VALUE, version)); 1447 childrenList.add(new Property("status", "code", "The status of this data element. Enables tracking the life-cycle of the content.", 0, java.lang.Integer.MAX_VALUE, status)); 1448 childrenList.add(new Property("experimental", "boolean", "A boolean value to indicate that this data element is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, java.lang.Integer.MAX_VALUE, experimental)); 1449 childrenList.add(new Property("date", "dateTime", "The date (and optionally time) when the data element was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the data element changes.", 0, java.lang.Integer.MAX_VALUE, date)); 1450 childrenList.add(new Property("publisher", "string", "The name of the individual or organization that published the data element.", 0, java.lang.Integer.MAX_VALUE, publisher)); 1451 childrenList.add(new Property("name", "string", "A natural language name identifying the data element. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, java.lang.Integer.MAX_VALUE, name)); 1452 childrenList.add(new Property("title", "string", "A short, descriptive, user-friendly title for the data element.", 0, java.lang.Integer.MAX_VALUE, title)); 1453 childrenList.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)); 1454 childrenList.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate data element instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 1455 childrenList.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the data element is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 1456 childrenList.add(new Property("copyright", "markdown", "A copyright statement relating to the data element and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the data element.", 0, java.lang.Integer.MAX_VALUE, copyright)); 1457 childrenList.add(new Property("stringency", "code", "Identifies how precise the data element is in its definition.", 0, java.lang.Integer.MAX_VALUE, stringency)); 1458 childrenList.add(new Property("mapping", "", "Identifies a specification (other than a terminology) that the elements which make up the DataElement have some correspondence with.", 0, java.lang.Integer.MAX_VALUE, mapping)); 1459 childrenList.add(new Property("element", "ElementDefinition", "Defines the structure, type, allowed values and other constraining characteristics of the data element.", 0, java.lang.Integer.MAX_VALUE, element)); 1460 } 1461 1462 @Override 1463 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1464 switch (hash) { 1465 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 1466 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1467 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 1468 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 1469 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 1470 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 1471 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 1472 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 1473 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 1474 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 1475 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 1476 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 1477 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 1478 case -1572568464: /*stringency*/ return this.stringency == null ? new Base[0] : new Base[] {this.stringency}; // Enumeration<DataElementStringency> 1479 case 837556430: /*mapping*/ return this.mapping == null ? new Base[0] : this.mapping.toArray(new Base[this.mapping.size()]); // DataElementMappingComponent 1480 case -1662836996: /*element*/ return this.element == null ? new Base[0] : this.element.toArray(new Base[this.element.size()]); // ElementDefinition 1481 default: return super.getProperty(hash, name, checkValid); 1482 } 1483 1484 } 1485 1486 @Override 1487 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1488 switch (hash) { 1489 case 116079: // url 1490 this.url = castToUri(value); // UriType 1491 return value; 1492 case -1618432855: // identifier 1493 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1494 return value; 1495 case 351608024: // version 1496 this.version = castToString(value); // StringType 1497 return value; 1498 case -892481550: // status 1499 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 1500 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 1501 return value; 1502 case -404562712: // experimental 1503 this.experimental = castToBoolean(value); // BooleanType 1504 return value; 1505 case 3076014: // date 1506 this.date = castToDateTime(value); // DateTimeType 1507 return value; 1508 case 1447404028: // publisher 1509 this.publisher = castToString(value); // StringType 1510 return value; 1511 case 3373707: // name 1512 this.name = castToString(value); // StringType 1513 return value; 1514 case 110371416: // title 1515 this.title = castToString(value); // StringType 1516 return value; 1517 case 951526432: // contact 1518 this.getContact().add(castToContactDetail(value)); // ContactDetail 1519 return value; 1520 case -669707736: // useContext 1521 this.getUseContext().add(castToUsageContext(value)); // UsageContext 1522 return value; 1523 case -507075711: // jurisdiction 1524 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 1525 return value; 1526 case 1522889671: // copyright 1527 this.copyright = castToMarkdown(value); // MarkdownType 1528 return value; 1529 case -1572568464: // stringency 1530 value = new DataElementStringencyEnumFactory().fromType(castToCode(value)); 1531 this.stringency = (Enumeration) value; // Enumeration<DataElementStringency> 1532 return value; 1533 case 837556430: // mapping 1534 this.getMapping().add((DataElementMappingComponent) value); // DataElementMappingComponent 1535 return value; 1536 case -1662836996: // element 1537 this.getElement().add(castToElementDefinition(value)); // ElementDefinition 1538 return value; 1539 default: return super.setProperty(hash, name, value); 1540 } 1541 1542 } 1543 1544 @Override 1545 public Base setProperty(String name, Base value) throws FHIRException { 1546 if (name.equals("url")) { 1547 this.url = castToUri(value); // UriType 1548 } else if (name.equals("identifier")) { 1549 this.getIdentifier().add(castToIdentifier(value)); 1550 } else if (name.equals("version")) { 1551 this.version = castToString(value); // StringType 1552 } else if (name.equals("status")) { 1553 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 1554 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 1555 } else if (name.equals("experimental")) { 1556 this.experimental = castToBoolean(value); // BooleanType 1557 } else if (name.equals("date")) { 1558 this.date = castToDateTime(value); // DateTimeType 1559 } else if (name.equals("publisher")) { 1560 this.publisher = castToString(value); // StringType 1561 } else if (name.equals("name")) { 1562 this.name = castToString(value); // StringType 1563 } else if (name.equals("title")) { 1564 this.title = castToString(value); // StringType 1565 } else if (name.equals("contact")) { 1566 this.getContact().add(castToContactDetail(value)); 1567 } else if (name.equals("useContext")) { 1568 this.getUseContext().add(castToUsageContext(value)); 1569 } else if (name.equals("jurisdiction")) { 1570 this.getJurisdiction().add(castToCodeableConcept(value)); 1571 } else if (name.equals("copyright")) { 1572 this.copyright = castToMarkdown(value); // MarkdownType 1573 } else if (name.equals("stringency")) { 1574 value = new DataElementStringencyEnumFactory().fromType(castToCode(value)); 1575 this.stringency = (Enumeration) value; // Enumeration<DataElementStringency> 1576 } else if (name.equals("mapping")) { 1577 this.getMapping().add((DataElementMappingComponent) value); 1578 } else if (name.equals("element")) { 1579 this.getElement().add(castToElementDefinition(value)); 1580 } else 1581 return super.setProperty(name, value); 1582 return value; 1583 } 1584 1585 @Override 1586 public Base makeProperty(int hash, String name) throws FHIRException { 1587 switch (hash) { 1588 case 116079: return getUrlElement(); 1589 case -1618432855: return addIdentifier(); 1590 case 351608024: return getVersionElement(); 1591 case -892481550: return getStatusElement(); 1592 case -404562712: return getExperimentalElement(); 1593 case 3076014: return getDateElement(); 1594 case 1447404028: return getPublisherElement(); 1595 case 3373707: return getNameElement(); 1596 case 110371416: return getTitleElement(); 1597 case 951526432: return addContact(); 1598 case -669707736: return addUseContext(); 1599 case -507075711: return addJurisdiction(); 1600 case 1522889671: return getCopyrightElement(); 1601 case -1572568464: return getStringencyElement(); 1602 case 837556430: return addMapping(); 1603 case -1662836996: return addElement(); 1604 default: return super.makeProperty(hash, name); 1605 } 1606 1607 } 1608 1609 @Override 1610 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1611 switch (hash) { 1612 case 116079: /*url*/ return new String[] {"uri"}; 1613 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1614 case 351608024: /*version*/ return new String[] {"string"}; 1615 case -892481550: /*status*/ return new String[] {"code"}; 1616 case -404562712: /*experimental*/ return new String[] {"boolean"}; 1617 case 3076014: /*date*/ return new String[] {"dateTime"}; 1618 case 1447404028: /*publisher*/ return new String[] {"string"}; 1619 case 3373707: /*name*/ return new String[] {"string"}; 1620 case 110371416: /*title*/ return new String[] {"string"}; 1621 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 1622 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 1623 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 1624 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 1625 case -1572568464: /*stringency*/ return new String[] {"code"}; 1626 case 837556430: /*mapping*/ return new String[] {}; 1627 case -1662836996: /*element*/ return new String[] {"ElementDefinition"}; 1628 default: return super.getTypesForProperty(hash, name); 1629 } 1630 1631 } 1632 1633 @Override 1634 public Base addChild(String name) throws FHIRException { 1635 if (name.equals("url")) { 1636 throw new FHIRException("Cannot call addChild on a primitive type DataElement.url"); 1637 } 1638 else if (name.equals("identifier")) { 1639 return addIdentifier(); 1640 } 1641 else if (name.equals("version")) { 1642 throw new FHIRException("Cannot call addChild on a primitive type DataElement.version"); 1643 } 1644 else if (name.equals("status")) { 1645 throw new FHIRException("Cannot call addChild on a primitive type DataElement.status"); 1646 } 1647 else if (name.equals("experimental")) { 1648 throw new FHIRException("Cannot call addChild on a primitive type DataElement.experimental"); 1649 } 1650 else if (name.equals("date")) { 1651 throw new FHIRException("Cannot call addChild on a primitive type DataElement.date"); 1652 } 1653 else if (name.equals("publisher")) { 1654 throw new FHIRException("Cannot call addChild on a primitive type DataElement.publisher"); 1655 } 1656 else if (name.equals("name")) { 1657 throw new FHIRException("Cannot call addChild on a primitive type DataElement.name"); 1658 } 1659 else if (name.equals("title")) { 1660 throw new FHIRException("Cannot call addChild on a primitive type DataElement.title"); 1661 } 1662 else if (name.equals("contact")) { 1663 return addContact(); 1664 } 1665 else if (name.equals("useContext")) { 1666 return addUseContext(); 1667 } 1668 else if (name.equals("jurisdiction")) { 1669 return addJurisdiction(); 1670 } 1671 else if (name.equals("copyright")) { 1672 throw new FHIRException("Cannot call addChild on a primitive type DataElement.copyright"); 1673 } 1674 else if (name.equals("stringency")) { 1675 throw new FHIRException("Cannot call addChild on a primitive type DataElement.stringency"); 1676 } 1677 else if (name.equals("mapping")) { 1678 return addMapping(); 1679 } 1680 else if (name.equals("element")) { 1681 return addElement(); 1682 } 1683 else 1684 return super.addChild(name); 1685 } 1686 1687 public String fhirType() { 1688 return "DataElement"; 1689 1690 } 1691 1692 public DataElement copy() { 1693 DataElement dst = new DataElement(); 1694 copyValues(dst); 1695 dst.url = url == null ? null : url.copy(); 1696 if (identifier != null) { 1697 dst.identifier = new ArrayList<Identifier>(); 1698 for (Identifier i : identifier) 1699 dst.identifier.add(i.copy()); 1700 }; 1701 dst.version = version == null ? null : version.copy(); 1702 dst.status = status == null ? null : status.copy(); 1703 dst.experimental = experimental == null ? null : experimental.copy(); 1704 dst.date = date == null ? null : date.copy(); 1705 dst.publisher = publisher == null ? null : publisher.copy(); 1706 dst.name = name == null ? null : name.copy(); 1707 dst.title = title == null ? null : title.copy(); 1708 if (contact != null) { 1709 dst.contact = new ArrayList<ContactDetail>(); 1710 for (ContactDetail i : contact) 1711 dst.contact.add(i.copy()); 1712 }; 1713 if (useContext != null) { 1714 dst.useContext = new ArrayList<UsageContext>(); 1715 for (UsageContext i : useContext) 1716 dst.useContext.add(i.copy()); 1717 }; 1718 if (jurisdiction != null) { 1719 dst.jurisdiction = new ArrayList<CodeableConcept>(); 1720 for (CodeableConcept i : jurisdiction) 1721 dst.jurisdiction.add(i.copy()); 1722 }; 1723 dst.copyright = copyright == null ? null : copyright.copy(); 1724 dst.stringency = stringency == null ? null : stringency.copy(); 1725 if (mapping != null) { 1726 dst.mapping = new ArrayList<DataElementMappingComponent>(); 1727 for (DataElementMappingComponent i : mapping) 1728 dst.mapping.add(i.copy()); 1729 }; 1730 if (element != null) { 1731 dst.element = new ArrayList<ElementDefinition>(); 1732 for (ElementDefinition i : element) 1733 dst.element.add(i.copy()); 1734 }; 1735 return dst; 1736 } 1737 1738 protected DataElement typedCopy() { 1739 return copy(); 1740 } 1741 1742 @Override 1743 public boolean equalsDeep(Base other) { 1744 if (!super.equalsDeep(other)) 1745 return false; 1746 if (!(other instanceof DataElement)) 1747 return false; 1748 DataElement o = (DataElement) other; 1749 return compareDeep(identifier, o.identifier, true) && compareDeep(copyright, o.copyright, true) 1750 && compareDeep(stringency, o.stringency, true) && compareDeep(mapping, o.mapping, true) && compareDeep(element, o.element, true) 1751 ; 1752 } 1753 1754 @Override 1755 public boolean equalsShallow(Base other) { 1756 if (!super.equalsShallow(other)) 1757 return false; 1758 if (!(other instanceof DataElement)) 1759 return false; 1760 DataElement o = (DataElement) other; 1761 return compareValues(copyright, o.copyright, true) && compareValues(stringency, o.stringency, true) 1762 ; 1763 } 1764 1765 public boolean isEmpty() { 1766 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, copyright, stringency 1767 , mapping, element); 1768 } 1769 1770 @Override 1771 public ResourceType getResourceType() { 1772 return ResourceType.DataElement; 1773 } 1774 1775 /** 1776 * Search parameter: <b>date</b> 1777 * <p> 1778 * Description: <b>The data element publication date</b><br> 1779 * Type: <b>date</b><br> 1780 * Path: <b>DataElement.date</b><br> 1781 * </p> 1782 */ 1783 @SearchParamDefinition(name="date", path="DataElement.date", description="The data element publication date", type="date" ) 1784 public static final String SP_DATE = "date"; 1785 /** 1786 * <b>Fluent Client</b> search parameter constant for <b>date</b> 1787 * <p> 1788 * Description: <b>The data element publication date</b><br> 1789 * Type: <b>date</b><br> 1790 * Path: <b>DataElement.date</b><br> 1791 * </p> 1792 */ 1793 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 1794 1795 /** 1796 * Search parameter: <b>identifier</b> 1797 * <p> 1798 * Description: <b>External identifier for the data element</b><br> 1799 * Type: <b>token</b><br> 1800 * Path: <b>DataElement.identifier</b><br> 1801 * </p> 1802 */ 1803 @SearchParamDefinition(name="identifier", path="DataElement.identifier", description="External identifier for the data element", type="token" ) 1804 public static final String SP_IDENTIFIER = "identifier"; 1805 /** 1806 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1807 * <p> 1808 * Description: <b>External identifier for the data element</b><br> 1809 * Type: <b>token</b><br> 1810 * Path: <b>DataElement.identifier</b><br> 1811 * </p> 1812 */ 1813 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1814 1815 /** 1816 * Search parameter: <b>code</b> 1817 * <p> 1818 * Description: <b>A code for the data element (server may choose to do subsumption)</b><br> 1819 * Type: <b>token</b><br> 1820 * Path: <b>DataElement.element.code</b><br> 1821 * </p> 1822 */ 1823 @SearchParamDefinition(name="code", path="DataElement.element.code", description="A code for the data element (server may choose to do subsumption)", type="token" ) 1824 public static final String SP_CODE = "code"; 1825 /** 1826 * <b>Fluent Client</b> search parameter constant for <b>code</b> 1827 * <p> 1828 * Description: <b>A code for the data element (server may choose to do subsumption)</b><br> 1829 * Type: <b>token</b><br> 1830 * Path: <b>DataElement.element.code</b><br> 1831 * </p> 1832 */ 1833 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 1834 1835 /** 1836 * Search parameter: <b>stringency</b> 1837 * <p> 1838 * Description: <b>The stringency of the data element definition</b><br> 1839 * Type: <b>token</b><br> 1840 * Path: <b>DataElement.stringency</b><br> 1841 * </p> 1842 */ 1843 @SearchParamDefinition(name="stringency", path="DataElement.stringency", description="The stringency of the data element definition", type="token" ) 1844 public static final String SP_STRINGENCY = "stringency"; 1845 /** 1846 * <b>Fluent Client</b> search parameter constant for <b>stringency</b> 1847 * <p> 1848 * Description: <b>The stringency of the data element definition</b><br> 1849 * Type: <b>token</b><br> 1850 * Path: <b>DataElement.stringency</b><br> 1851 * </p> 1852 */ 1853 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STRINGENCY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STRINGENCY); 1854 1855 /** 1856 * Search parameter: <b>jurisdiction</b> 1857 * <p> 1858 * Description: <b>Intended jurisdiction for the data element</b><br> 1859 * Type: <b>token</b><br> 1860 * Path: <b>DataElement.jurisdiction</b><br> 1861 * </p> 1862 */ 1863 @SearchParamDefinition(name="jurisdiction", path="DataElement.jurisdiction", description="Intended jurisdiction for the data element", type="token" ) 1864 public static final String SP_JURISDICTION = "jurisdiction"; 1865 /** 1866 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 1867 * <p> 1868 * Description: <b>Intended jurisdiction for the data element</b><br> 1869 * Type: <b>token</b><br> 1870 * Path: <b>DataElement.jurisdiction</b><br> 1871 * </p> 1872 */ 1873 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 1874 1875 /** 1876 * Search parameter: <b>name</b> 1877 * <p> 1878 * Description: <b>Computationally friendly name of the data element</b><br> 1879 * Type: <b>string</b><br> 1880 * Path: <b>DataElement.name</b><br> 1881 * </p> 1882 */ 1883 @SearchParamDefinition(name="name", path="DataElement.name", description="Computationally friendly name of the data element", type="string" ) 1884 public static final String SP_NAME = "name"; 1885 /** 1886 * <b>Fluent Client</b> search parameter constant for <b>name</b> 1887 * <p> 1888 * Description: <b>Computationally friendly name of the data element</b><br> 1889 * Type: <b>string</b><br> 1890 * Path: <b>DataElement.name</b><br> 1891 * </p> 1892 */ 1893 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 1894 1895 /** 1896 * Search parameter: <b>publisher</b> 1897 * <p> 1898 * Description: <b>Name of the publisher of the data element</b><br> 1899 * Type: <b>string</b><br> 1900 * Path: <b>DataElement.publisher</b><br> 1901 * </p> 1902 */ 1903 @SearchParamDefinition(name="publisher", path="DataElement.publisher", description="Name of the publisher of the data element", type="string" ) 1904 public static final String SP_PUBLISHER = "publisher"; 1905 /** 1906 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 1907 * <p> 1908 * Description: <b>Name of the publisher of the data element</b><br> 1909 * Type: <b>string</b><br> 1910 * Path: <b>DataElement.publisher</b><br> 1911 * </p> 1912 */ 1913 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 1914 1915 /** 1916 * Search parameter: <b>description</b> 1917 * <p> 1918 * Description: <b>Text search in the description of the data element. This corresponds to the definition of the first DataElement.element.</b><br> 1919 * Type: <b>string</b><br> 1920 * Path: <b>DataElement.element.definition</b><br> 1921 * </p> 1922 */ 1923 @SearchParamDefinition(name="description", path="DataElement.element.definition", description="Text search in the description of the data element. This corresponds to the definition of the first DataElement.element.", type="string" ) 1924 public static final String SP_DESCRIPTION = "description"; 1925 /** 1926 * <b>Fluent Client</b> search parameter constant for <b>description</b> 1927 * <p> 1928 * Description: <b>Text search in the description of the data element. This corresponds to the definition of the first DataElement.element.</b><br> 1929 * Type: <b>string</b><br> 1930 * Path: <b>DataElement.element.definition</b><br> 1931 * </p> 1932 */ 1933 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 1934 1935 /** 1936 * Search parameter: <b>title</b> 1937 * <p> 1938 * Description: <b>The human-friendly name of the data element</b><br> 1939 * Type: <b>string</b><br> 1940 * Path: <b>DataElement.title</b><br> 1941 * </p> 1942 */ 1943 @SearchParamDefinition(name="title", path="DataElement.title", description="The human-friendly name of the data element", type="string" ) 1944 public static final String SP_TITLE = "title"; 1945 /** 1946 * <b>Fluent Client</b> search parameter constant for <b>title</b> 1947 * <p> 1948 * Description: <b>The human-friendly name of the data element</b><br> 1949 * Type: <b>string</b><br> 1950 * Path: <b>DataElement.title</b><br> 1951 * </p> 1952 */ 1953 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 1954 1955 /** 1956 * Search parameter: <b>version</b> 1957 * <p> 1958 * Description: <b>The business version of the data element</b><br> 1959 * Type: <b>token</b><br> 1960 * Path: <b>DataElement.version</b><br> 1961 * </p> 1962 */ 1963 @SearchParamDefinition(name="version", path="DataElement.version", description="The business version of the data element", type="token" ) 1964 public static final String SP_VERSION = "version"; 1965 /** 1966 * <b>Fluent Client</b> search parameter constant for <b>version</b> 1967 * <p> 1968 * Description: <b>The business version of the data element</b><br> 1969 * Type: <b>token</b><br> 1970 * Path: <b>DataElement.version</b><br> 1971 * </p> 1972 */ 1973 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 1974 1975 /** 1976 * Search parameter: <b>url</b> 1977 * <p> 1978 * Description: <b>The uri that identifies the data element</b><br> 1979 * Type: <b>uri</b><br> 1980 * Path: <b>DataElement.url</b><br> 1981 * </p> 1982 */ 1983 @SearchParamDefinition(name="url", path="DataElement.url", description="The uri that identifies the data element", type="uri" ) 1984 public static final String SP_URL = "url"; 1985 /** 1986 * <b>Fluent Client</b> search parameter constant for <b>url</b> 1987 * <p> 1988 * Description: <b>The uri that identifies the data element</b><br> 1989 * Type: <b>uri</b><br> 1990 * Path: <b>DataElement.url</b><br> 1991 * </p> 1992 */ 1993 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 1994 1995 /** 1996 * Search parameter: <b>status</b> 1997 * <p> 1998 * Description: <b>The current status of the data element</b><br> 1999 * Type: <b>token</b><br> 2000 * Path: <b>DataElement.status</b><br> 2001 * </p> 2002 */ 2003 @SearchParamDefinition(name="status", path="DataElement.status", description="The current status of the data element", type="token" ) 2004 public static final String SP_STATUS = "status"; 2005 /** 2006 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2007 * <p> 2008 * Description: <b>The current status of the data element</b><br> 2009 * Type: <b>token</b><br> 2010 * Path: <b>DataElement.status</b><br> 2011 * </p> 2012 */ 2013 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2014 2015 2016} 2017