001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Sun, May 6, 2018 17:51-0400 for FHIR v3.4.0 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.r4.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 Library resource is a general-purpose container for knowledge asset definitions. It can be used to describe and expose existing knowledge assets such as logic libraries and information model descriptions, as well as to describe a collection of knowledge assets. 048 */ 049@ResourceDef(name="Library", profile="http://hl7.org/fhir/Profile/Library") 050@ChildOrder(names={"url", "identifier", "version", "name", "title", "subtitle", "status", "experimental", "type", "subject[x]", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "purpose", "usage", "copyright", "approvalDate", "lastReviewDate", "effectivePeriod", "topic", "contributor", "relatedArtifact", "parameter", "dataRequirement", "content"}) 051public class Library extends MetadataResource { 052 053 /** 054 * A formal identifier that is used to identify this library when it is represented in other formats, or referenced in a specification, model, design or an instance. e.g. CMS or NQF identifiers for a measure artifact. Note that at least one identifier is required for non-experimental active artifacts. 055 */ 056 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 057 @Description(shortDefinition="Additional identifier for the library", formalDefinition="A formal identifier that is used to identify this library when it is represented in other formats, or referenced in a specification, model, design or an instance. e.g. CMS or NQF identifiers for a measure artifact. Note that at least one identifier is required for non-experimental active artifacts." ) 058 protected List<Identifier> identifier; 059 060 /** 061 * An explanatory or alternate title for the library giving additional information about its content. 062 */ 063 @Child(name = "subtitle", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 064 @Description(shortDefinition="Subordinate title of the library", formalDefinition="An explanatory or alternate title for the library giving additional information about its content." ) 065 protected StringType subtitle; 066 067 /** 068 * Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition. 069 */ 070 @Child(name = "type", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=true) 071 @Description(shortDefinition="logic-library | model-definition | asset-collection | module-definition", formalDefinition="Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition." ) 072 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/library-type") 073 protected CodeableConcept type; 074 075 /** 076 * A code or group definition that describes the intended subject of the contents of the library. 077 */ 078 @Child(name = "subject", type = {CodeableConcept.class, Group.class}, order=3, min=0, max=1, modifier=false, summary=false) 079 @Description(shortDefinition="Type of individual the library content is focused on", formalDefinition="A code or group definition that describes the intended subject of the contents of the library." ) 080 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/subject-type") 081 protected Type subject; 082 083 /** 084 * Explanation of why this library is needed and why it has been designed as it has. 085 */ 086 @Child(name = "purpose", type = {MarkdownType.class}, order=4, min=0, max=1, modifier=false, summary=false) 087 @Description(shortDefinition="Why this library is defined", formalDefinition="Explanation of why this library is needed and why it has been designed as it has." ) 088 protected MarkdownType purpose; 089 090 /** 091 * A detailed description of how the library is used from a clinical perspective. 092 */ 093 @Child(name = "usage", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false) 094 @Description(shortDefinition="Describes the clinical usage of the library", formalDefinition="A detailed description of how the library is used from a clinical perspective." ) 095 protected StringType usage; 096 097 /** 098 * A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library. 099 */ 100 @Child(name = "copyright", type = {MarkdownType.class}, order=6, min=0, max=1, modifier=false, summary=false) 101 @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library." ) 102 protected MarkdownType copyright; 103 104 /** 105 * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 106 */ 107 @Child(name = "approvalDate", type = {DateType.class}, order=7, min=0, max=1, modifier=false, summary=false) 108 @Description(shortDefinition="When the library 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." ) 109 protected DateType approvalDate; 110 111 /** 112 * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 113 */ 114 @Child(name = "lastReviewDate", type = {DateType.class}, order=8, min=0, max=1, modifier=false, summary=false) 115 @Description(shortDefinition="When the library 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." ) 116 protected DateType lastReviewDate; 117 118 /** 119 * The period during which the library content was or is planned to be in active use. 120 */ 121 @Child(name = "effectivePeriod", type = {Period.class}, order=9, min=0, max=1, modifier=false, summary=true) 122 @Description(shortDefinition="When the library is expected to be used", formalDefinition="The period during which the library content was or is planned to be in active use." ) 123 protected Period effectivePeriod; 124 125 /** 126 * Descriptive topics related to the content of the library. Topics provide a high-level categorization of the library that can be useful for filtering and searching. 127 */ 128 @Child(name = "topic", type = {CodeableConcept.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 129 @Description(shortDefinition="E.g. Education, Treatment, Assessment, etc.", formalDefinition="Descriptive topics related to the content of the library. Topics provide a high-level categorization of the library that can be useful for filtering and searching." ) 130 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic") 131 protected List<CodeableConcept> topic; 132 133 /** 134 * A contributor to the content of the library, including authors, editors, reviewers, and endorsers. 135 */ 136 @Child(name = "contributor", type = {Contributor.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 137 @Description(shortDefinition="A content contributor", formalDefinition="A contributor to the content of the library, including authors, editors, reviewers, and endorsers." ) 138 protected List<Contributor> contributor; 139 140 /** 141 * Related artifacts such as additional documentation, justification, or bibliographic references. 142 */ 143 @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 144 @Description(shortDefinition="Additional documentation, citations, etc.", formalDefinition="Related artifacts such as additional documentation, justification, or bibliographic references." ) 145 protected List<RelatedArtifact> relatedArtifact; 146 147 /** 148 * The parameter element defines parameters used by the library. 149 */ 150 @Child(name = "parameter", type = {ParameterDefinition.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 151 @Description(shortDefinition="Parameters defined by the library", formalDefinition="The parameter element defines parameters used by the library." ) 152 protected List<ParameterDefinition> parameter; 153 154 /** 155 * Describes a set of data that must be provided in order to be able to successfully perform the computations defined by the library. 156 */ 157 @Child(name = "dataRequirement", type = {DataRequirement.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 158 @Description(shortDefinition="What data is referenced by this library", formalDefinition="Describes a set of data that must be provided in order to be able to successfully perform the computations defined by the library." ) 159 protected List<DataRequirement> dataRequirement; 160 161 /** 162 * The content of the library as an Attachment. The content may be a reference to a url, or may be directly embedded as a base-64 string. Either way, the contentType of the attachment determines how to interpret the content. 163 */ 164 @Child(name = "content", type = {Attachment.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 165 @Description(shortDefinition="Contents of the library, either embedded or referenced", formalDefinition="The content of the library as an Attachment. The content may be a reference to a url, or may be directly embedded as a base-64 string. Either way, the contentType of the attachment determines how to interpret the content." ) 166 protected List<Attachment> content; 167 168 private static final long serialVersionUID = -608518478L; 169 170 /** 171 * Constructor 172 */ 173 public Library() { 174 super(); 175 } 176 177 /** 178 * Constructor 179 */ 180 public Library(Enumeration<PublicationStatus> status, CodeableConcept type) { 181 super(); 182 this.status = status; 183 this.type = type; 184 } 185 186 /** 187 * @return {@link #url} (An absolute URI that is used to identify this library 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 this library is (or will be) published.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 188 */ 189 public UriType getUrlElement() { 190 if (this.url == null) 191 if (Configuration.errorOnAutoCreate()) 192 throw new Error("Attempt to auto-create Library.url"); 193 else if (Configuration.doAutoCreate()) 194 this.url = new UriType(); // bb 195 return this.url; 196 } 197 198 public boolean hasUrlElement() { 199 return this.url != null && !this.url.isEmpty(); 200 } 201 202 public boolean hasUrl() { 203 return this.url != null && !this.url.isEmpty(); 204 } 205 206 /** 207 * @param value {@link #url} (An absolute URI that is used to identify this library 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 this library is (or will be) published.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 208 */ 209 public Library setUrlElement(UriType value) { 210 this.url = value; 211 return this; 212 } 213 214 /** 215 * @return An absolute URI that is used to identify this library 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 this library is (or will be) published. 216 */ 217 public String getUrl() { 218 return this.url == null ? null : this.url.getValue(); 219 } 220 221 /** 222 * @param value An absolute URI that is used to identify this library 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 this library is (or will be) published. 223 */ 224 public Library setUrl(String value) { 225 if (Utilities.noString(value)) 226 this.url = null; 227 else { 228 if (this.url == null) 229 this.url = new UriType(); 230 this.url.setValue(value); 231 } 232 return this; 233 } 234 235 /** 236 * @return {@link #identifier} (A formal identifier that is used to identify this library when it is represented in other formats, or referenced in a specification, model, design or an instance. e.g. CMS or NQF identifiers for a measure artifact. Note that at least one identifier is required for non-experimental active artifacts.) 237 */ 238 public List<Identifier> getIdentifier() { 239 if (this.identifier == null) 240 this.identifier = new ArrayList<Identifier>(); 241 return this.identifier; 242 } 243 244 /** 245 * @return Returns a reference to <code>this</code> for easy method chaining 246 */ 247 public Library setIdentifier(List<Identifier> theIdentifier) { 248 this.identifier = theIdentifier; 249 return this; 250 } 251 252 public boolean hasIdentifier() { 253 if (this.identifier == null) 254 return false; 255 for (Identifier item : this.identifier) 256 if (!item.isEmpty()) 257 return true; 258 return false; 259 } 260 261 public Identifier addIdentifier() { //3 262 Identifier t = new Identifier(); 263 if (this.identifier == null) 264 this.identifier = new ArrayList<Identifier>(); 265 this.identifier.add(t); 266 return t; 267 } 268 269 public Library addIdentifier(Identifier t) { //3 270 if (t == null) 271 return this; 272 if (this.identifier == null) 273 this.identifier = new ArrayList<Identifier>(); 274 this.identifier.add(t); 275 return this; 276 } 277 278 /** 279 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 280 */ 281 public Identifier getIdentifierFirstRep() { 282 if (getIdentifier().isEmpty()) { 283 addIdentifier(); 284 } 285 return getIdentifier().get(0); 286 } 287 288 /** 289 * @return {@link #version} (The identifier that is used to identify this version of the library when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the library 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 290 */ 291 public StringType getVersionElement() { 292 if (this.version == null) 293 if (Configuration.errorOnAutoCreate()) 294 throw new Error("Attempt to auto-create Library.version"); 295 else if (Configuration.doAutoCreate()) 296 this.version = new StringType(); // bb 297 return this.version; 298 } 299 300 public boolean hasVersionElement() { 301 return this.version != null && !this.version.isEmpty(); 302 } 303 304 public boolean hasVersion() { 305 return this.version != null && !this.version.isEmpty(); 306 } 307 308 /** 309 * @param value {@link #version} (The identifier that is used to identify this version of the library when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the library 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 310 */ 311 public Library setVersionElement(StringType value) { 312 this.version = value; 313 return this; 314 } 315 316 /** 317 * @return The identifier that is used to identify this version of the library when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the library 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. 318 */ 319 public String getVersion() { 320 return this.version == null ? null : this.version.getValue(); 321 } 322 323 /** 324 * @param value The identifier that is used to identify this version of the library when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the library 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. 325 */ 326 public Library setVersion(String value) { 327 if (Utilities.noString(value)) 328 this.version = null; 329 else { 330 if (this.version == null) 331 this.version = new StringType(); 332 this.version.setValue(value); 333 } 334 return this; 335 } 336 337 /** 338 * @return {@link #name} (A natural language name identifying the library. 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 339 */ 340 public StringType getNameElement() { 341 if (this.name == null) 342 if (Configuration.errorOnAutoCreate()) 343 throw new Error("Attempt to auto-create Library.name"); 344 else if (Configuration.doAutoCreate()) 345 this.name = new StringType(); // bb 346 return this.name; 347 } 348 349 public boolean hasNameElement() { 350 return this.name != null && !this.name.isEmpty(); 351 } 352 353 public boolean hasName() { 354 return this.name != null && !this.name.isEmpty(); 355 } 356 357 /** 358 * @param value {@link #name} (A natural language name identifying the library. 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 359 */ 360 public Library setNameElement(StringType value) { 361 this.name = value; 362 return this; 363 } 364 365 /** 366 * @return A natural language name identifying the library. This name should be usable as an identifier for the module by machine processing applications such as code generation. 367 */ 368 public String getName() { 369 return this.name == null ? null : this.name.getValue(); 370 } 371 372 /** 373 * @param value A natural language name identifying the library. This name should be usable as an identifier for the module by machine processing applications such as code generation. 374 */ 375 public Library setName(String value) { 376 if (Utilities.noString(value)) 377 this.name = null; 378 else { 379 if (this.name == null) 380 this.name = new StringType(); 381 this.name.setValue(value); 382 } 383 return this; 384 } 385 386 /** 387 * @return {@link #title} (A short, descriptive, user-friendly title for the library.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 388 */ 389 public StringType getTitleElement() { 390 if (this.title == null) 391 if (Configuration.errorOnAutoCreate()) 392 throw new Error("Attempt to auto-create Library.title"); 393 else if (Configuration.doAutoCreate()) 394 this.title = new StringType(); // bb 395 return this.title; 396 } 397 398 public boolean hasTitleElement() { 399 return this.title != null && !this.title.isEmpty(); 400 } 401 402 public boolean hasTitle() { 403 return this.title != null && !this.title.isEmpty(); 404 } 405 406 /** 407 * @param value {@link #title} (A short, descriptive, user-friendly title for the library.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 408 */ 409 public Library setTitleElement(StringType value) { 410 this.title = value; 411 return this; 412 } 413 414 /** 415 * @return A short, descriptive, user-friendly title for the library. 416 */ 417 public String getTitle() { 418 return this.title == null ? null : this.title.getValue(); 419 } 420 421 /** 422 * @param value A short, descriptive, user-friendly title for the library. 423 */ 424 public Library setTitle(String value) { 425 if (Utilities.noString(value)) 426 this.title = null; 427 else { 428 if (this.title == null) 429 this.title = new StringType(); 430 this.title.setValue(value); 431 } 432 return this; 433 } 434 435 /** 436 * @return {@link #subtitle} (An explanatory or alternate title for the library 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 437 */ 438 public StringType getSubtitleElement() { 439 if (this.subtitle == null) 440 if (Configuration.errorOnAutoCreate()) 441 throw new Error("Attempt to auto-create Library.subtitle"); 442 else if (Configuration.doAutoCreate()) 443 this.subtitle = new StringType(); // bb 444 return this.subtitle; 445 } 446 447 public boolean hasSubtitleElement() { 448 return this.subtitle != null && !this.subtitle.isEmpty(); 449 } 450 451 public boolean hasSubtitle() { 452 return this.subtitle != null && !this.subtitle.isEmpty(); 453 } 454 455 /** 456 * @param value {@link #subtitle} (An explanatory or alternate title for the library 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 457 */ 458 public Library setSubtitleElement(StringType value) { 459 this.subtitle = value; 460 return this; 461 } 462 463 /** 464 * @return An explanatory or alternate title for the library giving additional information about its content. 465 */ 466 public String getSubtitle() { 467 return this.subtitle == null ? null : this.subtitle.getValue(); 468 } 469 470 /** 471 * @param value An explanatory or alternate title for the library giving additional information about its content. 472 */ 473 public Library setSubtitle(String value) { 474 if (Utilities.noString(value)) 475 this.subtitle = null; 476 else { 477 if (this.subtitle == null) 478 this.subtitle = new StringType(); 479 this.subtitle.setValue(value); 480 } 481 return this; 482 } 483 484 /** 485 * @return {@link #status} (The status of this library. 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 486 */ 487 public Enumeration<PublicationStatus> getStatusElement() { 488 if (this.status == null) 489 if (Configuration.errorOnAutoCreate()) 490 throw new Error("Attempt to auto-create Library.status"); 491 else if (Configuration.doAutoCreate()) 492 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 493 return this.status; 494 } 495 496 public boolean hasStatusElement() { 497 return this.status != null && !this.status.isEmpty(); 498 } 499 500 public boolean hasStatus() { 501 return this.status != null && !this.status.isEmpty(); 502 } 503 504 /** 505 * @param value {@link #status} (The status of this library. 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 506 */ 507 public Library setStatusElement(Enumeration<PublicationStatus> value) { 508 this.status = value; 509 return this; 510 } 511 512 /** 513 * @return The status of this library. Enables tracking the life-cycle of the content. 514 */ 515 public PublicationStatus getStatus() { 516 return this.status == null ? null : this.status.getValue(); 517 } 518 519 /** 520 * @param value The status of this library. Enables tracking the life-cycle of the content. 521 */ 522 public Library setStatus(PublicationStatus value) { 523 if (this.status == null) 524 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 525 this.status.setValue(value); 526 return this; 527 } 528 529 /** 530 * @return {@link #experimental} (A Boolean value to indicate that this library 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 531 */ 532 public BooleanType getExperimentalElement() { 533 if (this.experimental == null) 534 if (Configuration.errorOnAutoCreate()) 535 throw new Error("Attempt to auto-create Library.experimental"); 536 else if (Configuration.doAutoCreate()) 537 this.experimental = new BooleanType(); // bb 538 return this.experimental; 539 } 540 541 public boolean hasExperimentalElement() { 542 return this.experimental != null && !this.experimental.isEmpty(); 543 } 544 545 public boolean hasExperimental() { 546 return this.experimental != null && !this.experimental.isEmpty(); 547 } 548 549 /** 550 * @param value {@link #experimental} (A Boolean value to indicate that this library 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 551 */ 552 public Library setExperimentalElement(BooleanType value) { 553 this.experimental = value; 554 return this; 555 } 556 557 /** 558 * @return A Boolean value to indicate that this library is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 559 */ 560 public boolean getExperimental() { 561 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 562 } 563 564 /** 565 * @param value A Boolean value to indicate that this library is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 566 */ 567 public Library setExperimental(boolean value) { 568 if (this.experimental == null) 569 this.experimental = new BooleanType(); 570 this.experimental.setValue(value); 571 return this; 572 } 573 574 /** 575 * @return {@link #type} (Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition.) 576 */ 577 public CodeableConcept getType() { 578 if (this.type == null) 579 if (Configuration.errorOnAutoCreate()) 580 throw new Error("Attempt to auto-create Library.type"); 581 else if (Configuration.doAutoCreate()) 582 this.type = new CodeableConcept(); // cc 583 return this.type; 584 } 585 586 public boolean hasType() { 587 return this.type != null && !this.type.isEmpty(); 588 } 589 590 /** 591 * @param value {@link #type} (Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition.) 592 */ 593 public Library setType(CodeableConcept value) { 594 this.type = value; 595 return this; 596 } 597 598 /** 599 * @return {@link #subject} (A code or group definition that describes the intended subject of the contents of the library.) 600 */ 601 public Type getSubject() { 602 return this.subject; 603 } 604 605 /** 606 * @return {@link #subject} (A code or group definition that describes the intended subject of the contents of the library.) 607 */ 608 public CodeableConcept getSubjectCodeableConcept() throws FHIRException { 609 if (this.subject == null) 610 return null; 611 if (!(this.subject instanceof CodeableConcept)) 612 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.subject.getClass().getName()+" was encountered"); 613 return (CodeableConcept) this.subject; 614 } 615 616 public boolean hasSubjectCodeableConcept() { 617 return this != null && this.subject instanceof CodeableConcept; 618 } 619 620 /** 621 * @return {@link #subject} (A code or group definition that describes the intended subject of the contents of the library.) 622 */ 623 public Reference getSubjectReference() throws FHIRException { 624 if (this.subject == null) 625 return null; 626 if (!(this.subject instanceof Reference)) 627 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.subject.getClass().getName()+" was encountered"); 628 return (Reference) this.subject; 629 } 630 631 public boolean hasSubjectReference() { 632 return this != null && this.subject instanceof Reference; 633 } 634 635 public boolean hasSubject() { 636 return this.subject != null && !this.subject.isEmpty(); 637 } 638 639 /** 640 * @param value {@link #subject} (A code or group definition that describes the intended subject of the contents of the library.) 641 */ 642 public Library setSubject(Type value) { 643 if (value != null && !(value instanceof CodeableConcept || value instanceof Reference)) 644 throw new Error("Not the right type for Library.subject[x]: "+value.fhirType()); 645 this.subject = value; 646 return this; 647 } 648 649 /** 650 * @return {@link #date} (The date (and optionally time) when the library 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 library changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 651 */ 652 public DateTimeType getDateElement() { 653 if (this.date == null) 654 if (Configuration.errorOnAutoCreate()) 655 throw new Error("Attempt to auto-create Library.date"); 656 else if (Configuration.doAutoCreate()) 657 this.date = new DateTimeType(); // bb 658 return this.date; 659 } 660 661 public boolean hasDateElement() { 662 return this.date != null && !this.date.isEmpty(); 663 } 664 665 public boolean hasDate() { 666 return this.date != null && !this.date.isEmpty(); 667 } 668 669 /** 670 * @param value {@link #date} (The date (and optionally time) when the library 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 library changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 671 */ 672 public Library setDateElement(DateTimeType value) { 673 this.date = value; 674 return this; 675 } 676 677 /** 678 * @return The date (and optionally time) when the library 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 library changes. 679 */ 680 public Date getDate() { 681 return this.date == null ? null : this.date.getValue(); 682 } 683 684 /** 685 * @param value The date (and optionally time) when the library 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 library changes. 686 */ 687 public Library setDate(Date value) { 688 if (value == null) 689 this.date = null; 690 else { 691 if (this.date == null) 692 this.date = new DateTimeType(); 693 this.date.setValue(value); 694 } 695 return this; 696 } 697 698 /** 699 * @return {@link #publisher} (The name of the organization or individual that published the library.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 700 */ 701 public StringType getPublisherElement() { 702 if (this.publisher == null) 703 if (Configuration.errorOnAutoCreate()) 704 throw new Error("Attempt to auto-create Library.publisher"); 705 else if (Configuration.doAutoCreate()) 706 this.publisher = new StringType(); // bb 707 return this.publisher; 708 } 709 710 public boolean hasPublisherElement() { 711 return this.publisher != null && !this.publisher.isEmpty(); 712 } 713 714 public boolean hasPublisher() { 715 return this.publisher != null && !this.publisher.isEmpty(); 716 } 717 718 /** 719 * @param value {@link #publisher} (The name of the organization or individual that published the library.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 720 */ 721 public Library setPublisherElement(StringType value) { 722 this.publisher = value; 723 return this; 724 } 725 726 /** 727 * @return The name of the organization or individual that published the library. 728 */ 729 public String getPublisher() { 730 return this.publisher == null ? null : this.publisher.getValue(); 731 } 732 733 /** 734 * @param value The name of the organization or individual that published the library. 735 */ 736 public Library setPublisher(String value) { 737 if (Utilities.noString(value)) 738 this.publisher = null; 739 else { 740 if (this.publisher == null) 741 this.publisher = new StringType(); 742 this.publisher.setValue(value); 743 } 744 return this; 745 } 746 747 /** 748 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 749 */ 750 public List<ContactDetail> getContact() { 751 if (this.contact == null) 752 this.contact = new ArrayList<ContactDetail>(); 753 return this.contact; 754 } 755 756 /** 757 * @return Returns a reference to <code>this</code> for easy method chaining 758 */ 759 public Library setContact(List<ContactDetail> theContact) { 760 this.contact = theContact; 761 return this; 762 } 763 764 public boolean hasContact() { 765 if (this.contact == null) 766 return false; 767 for (ContactDetail item : this.contact) 768 if (!item.isEmpty()) 769 return true; 770 return false; 771 } 772 773 public ContactDetail addContact() { //3 774 ContactDetail t = new ContactDetail(); 775 if (this.contact == null) 776 this.contact = new ArrayList<ContactDetail>(); 777 this.contact.add(t); 778 return t; 779 } 780 781 public Library addContact(ContactDetail t) { //3 782 if (t == null) 783 return this; 784 if (this.contact == null) 785 this.contact = new ArrayList<ContactDetail>(); 786 this.contact.add(t); 787 return this; 788 } 789 790 /** 791 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 792 */ 793 public ContactDetail getContactFirstRep() { 794 if (getContact().isEmpty()) { 795 addContact(); 796 } 797 return getContact().get(0); 798 } 799 800 /** 801 * @return {@link #description} (A free text natural language description of the library from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 802 */ 803 public MarkdownType getDescriptionElement() { 804 if (this.description == null) 805 if (Configuration.errorOnAutoCreate()) 806 throw new Error("Attempt to auto-create Library.description"); 807 else if (Configuration.doAutoCreate()) 808 this.description = new MarkdownType(); // bb 809 return this.description; 810 } 811 812 public boolean hasDescriptionElement() { 813 return this.description != null && !this.description.isEmpty(); 814 } 815 816 public boolean hasDescription() { 817 return this.description != null && !this.description.isEmpty(); 818 } 819 820 /** 821 * @param value {@link #description} (A free text natural language description of the library from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 822 */ 823 public Library setDescriptionElement(MarkdownType value) { 824 this.description = value; 825 return this; 826 } 827 828 /** 829 * @return A free text natural language description of the library from a consumer's perspective. 830 */ 831 public String getDescription() { 832 return this.description == null ? null : this.description.getValue(); 833 } 834 835 /** 836 * @param value A free text natural language description of the library from a consumer's perspective. 837 */ 838 public Library setDescription(String value) { 839 if (value == null) 840 this.description = null; 841 else { 842 if (this.description == null) 843 this.description = new MarkdownType(); 844 this.description.setValue(value); 845 } 846 return this; 847 } 848 849 /** 850 * @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 library instances.) 851 */ 852 public List<UsageContext> getUseContext() { 853 if (this.useContext == null) 854 this.useContext = new ArrayList<UsageContext>(); 855 return this.useContext; 856 } 857 858 /** 859 * @return Returns a reference to <code>this</code> for easy method chaining 860 */ 861 public Library setUseContext(List<UsageContext> theUseContext) { 862 this.useContext = theUseContext; 863 return this; 864 } 865 866 public boolean hasUseContext() { 867 if (this.useContext == null) 868 return false; 869 for (UsageContext item : this.useContext) 870 if (!item.isEmpty()) 871 return true; 872 return false; 873 } 874 875 public UsageContext addUseContext() { //3 876 UsageContext t = new UsageContext(); 877 if (this.useContext == null) 878 this.useContext = new ArrayList<UsageContext>(); 879 this.useContext.add(t); 880 return t; 881 } 882 883 public Library addUseContext(UsageContext t) { //3 884 if (t == null) 885 return this; 886 if (this.useContext == null) 887 this.useContext = new ArrayList<UsageContext>(); 888 this.useContext.add(t); 889 return this; 890 } 891 892 /** 893 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 894 */ 895 public UsageContext getUseContextFirstRep() { 896 if (getUseContext().isEmpty()) { 897 addUseContext(); 898 } 899 return getUseContext().get(0); 900 } 901 902 /** 903 * @return {@link #jurisdiction} (A legal or geographic region in which the library is intended to be used.) 904 */ 905 public List<CodeableConcept> getJurisdiction() { 906 if (this.jurisdiction == null) 907 this.jurisdiction = new ArrayList<CodeableConcept>(); 908 return this.jurisdiction; 909 } 910 911 /** 912 * @return Returns a reference to <code>this</code> for easy method chaining 913 */ 914 public Library setJurisdiction(List<CodeableConcept> theJurisdiction) { 915 this.jurisdiction = theJurisdiction; 916 return this; 917 } 918 919 public boolean hasJurisdiction() { 920 if (this.jurisdiction == null) 921 return false; 922 for (CodeableConcept item : this.jurisdiction) 923 if (!item.isEmpty()) 924 return true; 925 return false; 926 } 927 928 public CodeableConcept addJurisdiction() { //3 929 CodeableConcept t = new CodeableConcept(); 930 if (this.jurisdiction == null) 931 this.jurisdiction = new ArrayList<CodeableConcept>(); 932 this.jurisdiction.add(t); 933 return t; 934 } 935 936 public Library addJurisdiction(CodeableConcept t) { //3 937 if (t == null) 938 return this; 939 if (this.jurisdiction == null) 940 this.jurisdiction = new ArrayList<CodeableConcept>(); 941 this.jurisdiction.add(t); 942 return this; 943 } 944 945 /** 946 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 947 */ 948 public CodeableConcept getJurisdictionFirstRep() { 949 if (getJurisdiction().isEmpty()) { 950 addJurisdiction(); 951 } 952 return getJurisdiction().get(0); 953 } 954 955 /** 956 * @return {@link #purpose} (Explanation of why this library 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 957 */ 958 public MarkdownType getPurposeElement() { 959 if (this.purpose == null) 960 if (Configuration.errorOnAutoCreate()) 961 throw new Error("Attempt to auto-create Library.purpose"); 962 else if (Configuration.doAutoCreate()) 963 this.purpose = new MarkdownType(); // bb 964 return this.purpose; 965 } 966 967 public boolean hasPurposeElement() { 968 return this.purpose != null && !this.purpose.isEmpty(); 969 } 970 971 public boolean hasPurpose() { 972 return this.purpose != null && !this.purpose.isEmpty(); 973 } 974 975 /** 976 * @param value {@link #purpose} (Explanation of why this library 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 977 */ 978 public Library setPurposeElement(MarkdownType value) { 979 this.purpose = value; 980 return this; 981 } 982 983 /** 984 * @return Explanation of why this library is needed and why it has been designed as it has. 985 */ 986 public String getPurpose() { 987 return this.purpose == null ? null : this.purpose.getValue(); 988 } 989 990 /** 991 * @param value Explanation of why this library is needed and why it has been designed as it has. 992 */ 993 public Library setPurpose(String value) { 994 if (value == null) 995 this.purpose = null; 996 else { 997 if (this.purpose == null) 998 this.purpose = new MarkdownType(); 999 this.purpose.setValue(value); 1000 } 1001 return this; 1002 } 1003 1004 /** 1005 * @return {@link #usage} (A detailed description of how the library is used from a clinical perspective.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value 1006 */ 1007 public StringType getUsageElement() { 1008 if (this.usage == null) 1009 if (Configuration.errorOnAutoCreate()) 1010 throw new Error("Attempt to auto-create Library.usage"); 1011 else if (Configuration.doAutoCreate()) 1012 this.usage = new StringType(); // bb 1013 return this.usage; 1014 } 1015 1016 public boolean hasUsageElement() { 1017 return this.usage != null && !this.usage.isEmpty(); 1018 } 1019 1020 public boolean hasUsage() { 1021 return this.usage != null && !this.usage.isEmpty(); 1022 } 1023 1024 /** 1025 * @param value {@link #usage} (A detailed description of how the library is used from a clinical perspective.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value 1026 */ 1027 public Library setUsageElement(StringType value) { 1028 this.usage = value; 1029 return this; 1030 } 1031 1032 /** 1033 * @return A detailed description of how the library is used from a clinical perspective. 1034 */ 1035 public String getUsage() { 1036 return this.usage == null ? null : this.usage.getValue(); 1037 } 1038 1039 /** 1040 * @param value A detailed description of how the library is used from a clinical perspective. 1041 */ 1042 public Library setUsage(String value) { 1043 if (Utilities.noString(value)) 1044 this.usage = null; 1045 else { 1046 if (this.usage == null) 1047 this.usage = new StringType(); 1048 this.usage.setValue(value); 1049 } 1050 return this; 1051 } 1052 1053 /** 1054 * @return {@link #copyright} (A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 1055 */ 1056 public MarkdownType getCopyrightElement() { 1057 if (this.copyright == null) 1058 if (Configuration.errorOnAutoCreate()) 1059 throw new Error("Attempt to auto-create Library.copyright"); 1060 else if (Configuration.doAutoCreate()) 1061 this.copyright = new MarkdownType(); // bb 1062 return this.copyright; 1063 } 1064 1065 public boolean hasCopyrightElement() { 1066 return this.copyright != null && !this.copyright.isEmpty(); 1067 } 1068 1069 public boolean hasCopyright() { 1070 return this.copyright != null && !this.copyright.isEmpty(); 1071 } 1072 1073 /** 1074 * @param value {@link #copyright} (A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 1075 */ 1076 public Library setCopyrightElement(MarkdownType value) { 1077 this.copyright = value; 1078 return this; 1079 } 1080 1081 /** 1082 * @return A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library. 1083 */ 1084 public String getCopyright() { 1085 return this.copyright == null ? null : this.copyright.getValue(); 1086 } 1087 1088 /** 1089 * @param value A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library. 1090 */ 1091 public Library setCopyright(String value) { 1092 if (value == null) 1093 this.copyright = null; 1094 else { 1095 if (this.copyright == null) 1096 this.copyright = new MarkdownType(); 1097 this.copyright.setValue(value); 1098 } 1099 return this; 1100 } 1101 1102 /** 1103 * @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 1104 */ 1105 public DateType getApprovalDateElement() { 1106 if (this.approvalDate == null) 1107 if (Configuration.errorOnAutoCreate()) 1108 throw new Error("Attempt to auto-create Library.approvalDate"); 1109 else if (Configuration.doAutoCreate()) 1110 this.approvalDate = new DateType(); // bb 1111 return this.approvalDate; 1112 } 1113 1114 public boolean hasApprovalDateElement() { 1115 return this.approvalDate != null && !this.approvalDate.isEmpty(); 1116 } 1117 1118 public boolean hasApprovalDate() { 1119 return this.approvalDate != null && !this.approvalDate.isEmpty(); 1120 } 1121 1122 /** 1123 * @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 1124 */ 1125 public Library setApprovalDateElement(DateType value) { 1126 this.approvalDate = value; 1127 return this; 1128 } 1129 1130 /** 1131 * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 1132 */ 1133 public Date getApprovalDate() { 1134 return this.approvalDate == null ? null : this.approvalDate.getValue(); 1135 } 1136 1137 /** 1138 * @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. 1139 */ 1140 public Library setApprovalDate(Date value) { 1141 if (value == null) 1142 this.approvalDate = null; 1143 else { 1144 if (this.approvalDate == null) 1145 this.approvalDate = new DateType(); 1146 this.approvalDate.setValue(value); 1147 } 1148 return this; 1149 } 1150 1151 /** 1152 * @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 1153 */ 1154 public DateType getLastReviewDateElement() { 1155 if (this.lastReviewDate == null) 1156 if (Configuration.errorOnAutoCreate()) 1157 throw new Error("Attempt to auto-create Library.lastReviewDate"); 1158 else if (Configuration.doAutoCreate()) 1159 this.lastReviewDate = new DateType(); // bb 1160 return this.lastReviewDate; 1161 } 1162 1163 public boolean hasLastReviewDateElement() { 1164 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 1165 } 1166 1167 public boolean hasLastReviewDate() { 1168 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 1169 } 1170 1171 /** 1172 * @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 1173 */ 1174 public Library setLastReviewDateElement(DateType value) { 1175 this.lastReviewDate = value; 1176 return this; 1177 } 1178 1179 /** 1180 * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 1181 */ 1182 public Date getLastReviewDate() { 1183 return this.lastReviewDate == null ? null : this.lastReviewDate.getValue(); 1184 } 1185 1186 /** 1187 * @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. 1188 */ 1189 public Library setLastReviewDate(Date value) { 1190 if (value == null) 1191 this.lastReviewDate = null; 1192 else { 1193 if (this.lastReviewDate == null) 1194 this.lastReviewDate = new DateType(); 1195 this.lastReviewDate.setValue(value); 1196 } 1197 return this; 1198 } 1199 1200 /** 1201 * @return {@link #effectivePeriod} (The period during which the library content was or is planned to be in active use.) 1202 */ 1203 public Period getEffectivePeriod() { 1204 if (this.effectivePeriod == null) 1205 if (Configuration.errorOnAutoCreate()) 1206 throw new Error("Attempt to auto-create Library.effectivePeriod"); 1207 else if (Configuration.doAutoCreate()) 1208 this.effectivePeriod = new Period(); // cc 1209 return this.effectivePeriod; 1210 } 1211 1212 public boolean hasEffectivePeriod() { 1213 return this.effectivePeriod != null && !this.effectivePeriod.isEmpty(); 1214 } 1215 1216 /** 1217 * @param value {@link #effectivePeriod} (The period during which the library content was or is planned to be in active use.) 1218 */ 1219 public Library setEffectivePeriod(Period value) { 1220 this.effectivePeriod = value; 1221 return this; 1222 } 1223 1224 /** 1225 * @return {@link #topic} (Descriptive topics related to the content of the library. Topics provide a high-level categorization of the library that can be useful for filtering and searching.) 1226 */ 1227 public List<CodeableConcept> getTopic() { 1228 if (this.topic == null) 1229 this.topic = new ArrayList<CodeableConcept>(); 1230 return this.topic; 1231 } 1232 1233 /** 1234 * @return Returns a reference to <code>this</code> for easy method chaining 1235 */ 1236 public Library setTopic(List<CodeableConcept> theTopic) { 1237 this.topic = theTopic; 1238 return this; 1239 } 1240 1241 public boolean hasTopic() { 1242 if (this.topic == null) 1243 return false; 1244 for (CodeableConcept item : this.topic) 1245 if (!item.isEmpty()) 1246 return true; 1247 return false; 1248 } 1249 1250 public CodeableConcept addTopic() { //3 1251 CodeableConcept t = new CodeableConcept(); 1252 if (this.topic == null) 1253 this.topic = new ArrayList<CodeableConcept>(); 1254 this.topic.add(t); 1255 return t; 1256 } 1257 1258 public Library addTopic(CodeableConcept t) { //3 1259 if (t == null) 1260 return this; 1261 if (this.topic == null) 1262 this.topic = new ArrayList<CodeableConcept>(); 1263 this.topic.add(t); 1264 return this; 1265 } 1266 1267 /** 1268 * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist 1269 */ 1270 public CodeableConcept getTopicFirstRep() { 1271 if (getTopic().isEmpty()) { 1272 addTopic(); 1273 } 1274 return getTopic().get(0); 1275 } 1276 1277 /** 1278 * @return {@link #contributor} (A contributor to the content of the library, including authors, editors, reviewers, and endorsers.) 1279 */ 1280 public List<Contributor> getContributor() { 1281 if (this.contributor == null) 1282 this.contributor = new ArrayList<Contributor>(); 1283 return this.contributor; 1284 } 1285 1286 /** 1287 * @return Returns a reference to <code>this</code> for easy method chaining 1288 */ 1289 public Library setContributor(List<Contributor> theContributor) { 1290 this.contributor = theContributor; 1291 return this; 1292 } 1293 1294 public boolean hasContributor() { 1295 if (this.contributor == null) 1296 return false; 1297 for (Contributor item : this.contributor) 1298 if (!item.isEmpty()) 1299 return true; 1300 return false; 1301 } 1302 1303 public Contributor addContributor() { //3 1304 Contributor t = new Contributor(); 1305 if (this.contributor == null) 1306 this.contributor = new ArrayList<Contributor>(); 1307 this.contributor.add(t); 1308 return t; 1309 } 1310 1311 public Library addContributor(Contributor t) { //3 1312 if (t == null) 1313 return this; 1314 if (this.contributor == null) 1315 this.contributor = new ArrayList<Contributor>(); 1316 this.contributor.add(t); 1317 return this; 1318 } 1319 1320 /** 1321 * @return The first repetition of repeating field {@link #contributor}, creating it if it does not already exist 1322 */ 1323 public Contributor getContributorFirstRep() { 1324 if (getContributor().isEmpty()) { 1325 addContributor(); 1326 } 1327 return getContributor().get(0); 1328 } 1329 1330 /** 1331 * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, or bibliographic references.) 1332 */ 1333 public List<RelatedArtifact> getRelatedArtifact() { 1334 if (this.relatedArtifact == null) 1335 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1336 return this.relatedArtifact; 1337 } 1338 1339 /** 1340 * @return Returns a reference to <code>this</code> for easy method chaining 1341 */ 1342 public Library setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 1343 this.relatedArtifact = theRelatedArtifact; 1344 return this; 1345 } 1346 1347 public boolean hasRelatedArtifact() { 1348 if (this.relatedArtifact == null) 1349 return false; 1350 for (RelatedArtifact item : this.relatedArtifact) 1351 if (!item.isEmpty()) 1352 return true; 1353 return false; 1354 } 1355 1356 public RelatedArtifact addRelatedArtifact() { //3 1357 RelatedArtifact t = new RelatedArtifact(); 1358 if (this.relatedArtifact == null) 1359 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1360 this.relatedArtifact.add(t); 1361 return t; 1362 } 1363 1364 public Library addRelatedArtifact(RelatedArtifact t) { //3 1365 if (t == null) 1366 return this; 1367 if (this.relatedArtifact == null) 1368 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1369 this.relatedArtifact.add(t); 1370 return this; 1371 } 1372 1373 /** 1374 * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist 1375 */ 1376 public RelatedArtifact getRelatedArtifactFirstRep() { 1377 if (getRelatedArtifact().isEmpty()) { 1378 addRelatedArtifact(); 1379 } 1380 return getRelatedArtifact().get(0); 1381 } 1382 1383 /** 1384 * @return {@link #parameter} (The parameter element defines parameters used by the library.) 1385 */ 1386 public List<ParameterDefinition> getParameter() { 1387 if (this.parameter == null) 1388 this.parameter = new ArrayList<ParameterDefinition>(); 1389 return this.parameter; 1390 } 1391 1392 /** 1393 * @return Returns a reference to <code>this</code> for easy method chaining 1394 */ 1395 public Library setParameter(List<ParameterDefinition> theParameter) { 1396 this.parameter = theParameter; 1397 return this; 1398 } 1399 1400 public boolean hasParameter() { 1401 if (this.parameter == null) 1402 return false; 1403 for (ParameterDefinition item : this.parameter) 1404 if (!item.isEmpty()) 1405 return true; 1406 return false; 1407 } 1408 1409 public ParameterDefinition addParameter() { //3 1410 ParameterDefinition t = new ParameterDefinition(); 1411 if (this.parameter == null) 1412 this.parameter = new ArrayList<ParameterDefinition>(); 1413 this.parameter.add(t); 1414 return t; 1415 } 1416 1417 public Library addParameter(ParameterDefinition t) { //3 1418 if (t == null) 1419 return this; 1420 if (this.parameter == null) 1421 this.parameter = new ArrayList<ParameterDefinition>(); 1422 this.parameter.add(t); 1423 return this; 1424 } 1425 1426 /** 1427 * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist 1428 */ 1429 public ParameterDefinition getParameterFirstRep() { 1430 if (getParameter().isEmpty()) { 1431 addParameter(); 1432 } 1433 return getParameter().get(0); 1434 } 1435 1436 /** 1437 * @return {@link #dataRequirement} (Describes a set of data that must be provided in order to be able to successfully perform the computations defined by the library.) 1438 */ 1439 public List<DataRequirement> getDataRequirement() { 1440 if (this.dataRequirement == null) 1441 this.dataRequirement = new ArrayList<DataRequirement>(); 1442 return this.dataRequirement; 1443 } 1444 1445 /** 1446 * @return Returns a reference to <code>this</code> for easy method chaining 1447 */ 1448 public Library setDataRequirement(List<DataRequirement> theDataRequirement) { 1449 this.dataRequirement = theDataRequirement; 1450 return this; 1451 } 1452 1453 public boolean hasDataRequirement() { 1454 if (this.dataRequirement == null) 1455 return false; 1456 for (DataRequirement item : this.dataRequirement) 1457 if (!item.isEmpty()) 1458 return true; 1459 return false; 1460 } 1461 1462 public DataRequirement addDataRequirement() { //3 1463 DataRequirement t = new DataRequirement(); 1464 if (this.dataRequirement == null) 1465 this.dataRequirement = new ArrayList<DataRequirement>(); 1466 this.dataRequirement.add(t); 1467 return t; 1468 } 1469 1470 public Library addDataRequirement(DataRequirement t) { //3 1471 if (t == null) 1472 return this; 1473 if (this.dataRequirement == null) 1474 this.dataRequirement = new ArrayList<DataRequirement>(); 1475 this.dataRequirement.add(t); 1476 return this; 1477 } 1478 1479 /** 1480 * @return The first repetition of repeating field {@link #dataRequirement}, creating it if it does not already exist 1481 */ 1482 public DataRequirement getDataRequirementFirstRep() { 1483 if (getDataRequirement().isEmpty()) { 1484 addDataRequirement(); 1485 } 1486 return getDataRequirement().get(0); 1487 } 1488 1489 /** 1490 * @return {@link #content} (The content of the library as an Attachment. The content may be a reference to a url, or may be directly embedded as a base-64 string. Either way, the contentType of the attachment determines how to interpret the content.) 1491 */ 1492 public List<Attachment> getContent() { 1493 if (this.content == null) 1494 this.content = new ArrayList<Attachment>(); 1495 return this.content; 1496 } 1497 1498 /** 1499 * @return Returns a reference to <code>this</code> for easy method chaining 1500 */ 1501 public Library setContent(List<Attachment> theContent) { 1502 this.content = theContent; 1503 return this; 1504 } 1505 1506 public boolean hasContent() { 1507 if (this.content == null) 1508 return false; 1509 for (Attachment item : this.content) 1510 if (!item.isEmpty()) 1511 return true; 1512 return false; 1513 } 1514 1515 public Attachment addContent() { //3 1516 Attachment t = new Attachment(); 1517 if (this.content == null) 1518 this.content = new ArrayList<Attachment>(); 1519 this.content.add(t); 1520 return t; 1521 } 1522 1523 public Library addContent(Attachment t) { //3 1524 if (t == null) 1525 return this; 1526 if (this.content == null) 1527 this.content = new ArrayList<Attachment>(); 1528 this.content.add(t); 1529 return this; 1530 } 1531 1532 /** 1533 * @return The first repetition of repeating field {@link #content}, creating it if it does not already exist 1534 */ 1535 public Attachment getContentFirstRep() { 1536 if (getContent().isEmpty()) { 1537 addContent(); 1538 } 1539 return getContent().get(0); 1540 } 1541 1542 protected void listChildren(List<Property> children) { 1543 super.listChildren(children); 1544 children.add(new Property("url", "uri", "An absolute URI that is used to identify this library 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 this library is (or will be) published.", 0, 1, url)); 1545 children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this library when it is represented in other formats, or referenced in a specification, model, design or an instance. e.g. CMS or NQF identifiers for a measure artifact. Note that at least one identifier is required for non-experimental active artifacts.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1546 children.add(new Property("version", "string", "The identifier that is used to identify this version of the library when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the library 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)); 1547 children.add(new Property("name", "string", "A natural language name identifying the library. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name)); 1548 children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the library.", 0, 1, title)); 1549 children.add(new Property("subtitle", "string", "An explanatory or alternate title for the library giving additional information about its content.", 0, 1, subtitle)); 1550 children.add(new Property("status", "code", "The status of this library. Enables tracking the life-cycle of the content.", 0, 1, status)); 1551 children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this library is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental)); 1552 children.add(new Property("type", "CodeableConcept", "Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition.", 0, 1, type)); 1553 children.add(new Property("subject[x]", "CodeableConcept|Reference(Group)", "A code or group definition that describes the intended subject of the contents of the library.", 0, 1, subject)); 1554 children.add(new Property("date", "dateTime", "The date (and optionally time) when the library 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 library changes.", 0, 1, date)); 1555 children.add(new Property("publisher", "string", "The name of the organization or individual that published the library.", 0, 1, publisher)); 1556 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)); 1557 children.add(new Property("description", "markdown", "A free text natural language description of the library from a consumer's perspective.", 0, 1, description)); 1558 children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate library instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 1559 children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the library is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 1560 children.add(new Property("purpose", "markdown", "Explanation of why this library is needed and why it has been designed as it has.", 0, 1, purpose)); 1561 children.add(new Property("usage", "string", "A detailed description of how the library is used from a clinical perspective.", 0, 1, usage)); 1562 children.add(new Property("copyright", "markdown", "A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library.", 0, 1, copyright)); 1563 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)); 1564 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)); 1565 children.add(new Property("effectivePeriod", "Period", "The period during which the library content was or is planned to be in active use.", 0, 1, effectivePeriod)); 1566 children.add(new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the library. Topics provide a high-level categorization of the library that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic)); 1567 children.add(new Property("contributor", "Contributor", "A contributor to the content of the library, including authors, editors, reviewers, and endorsers.", 0, java.lang.Integer.MAX_VALUE, contributor)); 1568 children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact)); 1569 children.add(new Property("parameter", "ParameterDefinition", "The parameter element defines parameters used by the library.", 0, java.lang.Integer.MAX_VALUE, parameter)); 1570 children.add(new Property("dataRequirement", "DataRequirement", "Describes a set of data that must be provided in order to be able to successfully perform the computations defined by the library.", 0, java.lang.Integer.MAX_VALUE, dataRequirement)); 1571 children.add(new Property("content", "Attachment", "The content of the library as an Attachment. The content may be a reference to a url, or may be directly embedded as a base-64 string. Either way, the contentType of the attachment determines how to interpret the content.", 0, java.lang.Integer.MAX_VALUE, content)); 1572 } 1573 1574 @Override 1575 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1576 switch (_hash) { 1577 case 116079: /*url*/ return new Property("url", "uri", "An absolute URI that is used to identify this library 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 this library is (or will be) published.", 0, 1, url); 1578 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A formal identifier that is used to identify this library when it is represented in other formats, or referenced in a specification, model, design or an instance. e.g. CMS or NQF identifiers for a measure artifact. Note that at least one identifier is required for non-experimental active artifacts.", 0, java.lang.Integer.MAX_VALUE, identifier); 1579 case 351608024: /*version*/ return new Property("version", "string", "The identifier that is used to identify this version of the library when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the library 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); 1580 case 3373707: /*name*/ return new Property("name", "string", "A natural language name identifying the library. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name); 1581 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive, user-friendly title for the library.", 0, 1, title); 1582 case -2060497896: /*subtitle*/ return new Property("subtitle", "string", "An explanatory or alternate title for the library giving additional information about its content.", 0, 1, subtitle); 1583 case -892481550: /*status*/ return new Property("status", "code", "The status of this library. Enables tracking the life-cycle of the content.", 0, 1, status); 1584 case -404562712: /*experimental*/ return new Property("experimental", "boolean", "A Boolean value to indicate that this library is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental); 1585 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition.", 0, 1, type); 1586 case -573640748: /*subject[x]*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "A code or group definition that describes the intended subject of the contents of the library.", 0, 1, subject); 1587 case -1867885268: /*subject*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "A code or group definition that describes the intended subject of the contents of the library.", 0, 1, subject); 1588 case -1257122603: /*subjectCodeableConcept*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "A code or group definition that describes the intended subject of the contents of the library.", 0, 1, subject); 1589 case 772938623: /*subjectReference*/ return new Property("subject[x]", "CodeableConcept|Reference(Group)", "A code or group definition that describes the intended subject of the contents of the library.", 0, 1, subject); 1590 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the library 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 library changes.", 0, 1, date); 1591 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the library.", 0, 1, publisher); 1592 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); 1593 case -1724546052: /*description*/ return new Property("description", "markdown", "A free text natural language description of the library from a consumer's perspective.", 0, 1, description); 1594 case -669707736: /*useContext*/ return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate library instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 1595 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the library is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction); 1596 case -220463842: /*purpose*/ return new Property("purpose", "markdown", "Explanation of why this library is needed and why it has been designed as it has.", 0, 1, purpose); 1597 case 111574433: /*usage*/ return new Property("usage", "string", "A detailed description of how the library is used from a clinical perspective.", 0, 1, usage); 1598 case 1522889671: /*copyright*/ return new Property("copyright", "markdown", "A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library.", 0, 1, copyright); 1599 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); 1600 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); 1601 case -403934648: /*effectivePeriod*/ return new Property("effectivePeriod", "Period", "The period during which the library content was or is planned to be in active use.", 0, 1, effectivePeriod); 1602 case 110546223: /*topic*/ return new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the library. Topics provide a high-level categorization of the library that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic); 1603 case -1895276325: /*contributor*/ return new Property("contributor", "Contributor", "A contributor to the content of the library, including authors, editors, reviewers, and endorsers.", 0, java.lang.Integer.MAX_VALUE, contributor); 1604 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); 1605 case 1954460585: /*parameter*/ return new Property("parameter", "ParameterDefinition", "The parameter element defines parameters used by the library.", 0, java.lang.Integer.MAX_VALUE, parameter); 1606 case 629147193: /*dataRequirement*/ return new Property("dataRequirement", "DataRequirement", "Describes a set of data that must be provided in order to be able to successfully perform the computations defined by the library.", 0, java.lang.Integer.MAX_VALUE, dataRequirement); 1607 case 951530617: /*content*/ return new Property("content", "Attachment", "The content of the library as an Attachment. The content may be a reference to a url, or may be directly embedded as a base-64 string. Either way, the contentType of the attachment determines how to interpret the content.", 0, java.lang.Integer.MAX_VALUE, content); 1608 default: return super.getNamedProperty(_hash, _name, _checkValid); 1609 } 1610 1611 } 1612 1613 @Override 1614 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1615 switch (hash) { 1616 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 1617 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1618 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 1619 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 1620 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 1621 case -2060497896: /*subtitle*/ return this.subtitle == null ? new Base[0] : new Base[] {this.subtitle}; // StringType 1622 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 1623 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 1624 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 1625 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Type 1626 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 1627 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 1628 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 1629 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 1630 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 1631 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 1632 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 1633 case 111574433: /*usage*/ return this.usage == null ? new Base[0] : new Base[] {this.usage}; // StringType 1634 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 1635 case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType 1636 case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType 1637 case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period 1638 case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept 1639 case -1895276325: /*contributor*/ return this.contributor == null ? new Base[0] : this.contributor.toArray(new Base[this.contributor.size()]); // Contributor 1640 case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact 1641 case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // ParameterDefinition 1642 case 629147193: /*dataRequirement*/ return this.dataRequirement == null ? new Base[0] : this.dataRequirement.toArray(new Base[this.dataRequirement.size()]); // DataRequirement 1643 case 951530617: /*content*/ return this.content == null ? new Base[0] : this.content.toArray(new Base[this.content.size()]); // Attachment 1644 default: return super.getProperty(hash, name, checkValid); 1645 } 1646 1647 } 1648 1649 @Override 1650 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1651 switch (hash) { 1652 case 116079: // url 1653 this.url = castToUri(value); // UriType 1654 return value; 1655 case -1618432855: // identifier 1656 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1657 return value; 1658 case 351608024: // version 1659 this.version = castToString(value); // StringType 1660 return value; 1661 case 3373707: // name 1662 this.name = castToString(value); // StringType 1663 return value; 1664 case 110371416: // title 1665 this.title = castToString(value); // StringType 1666 return value; 1667 case -2060497896: // subtitle 1668 this.subtitle = castToString(value); // StringType 1669 return value; 1670 case -892481550: // status 1671 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 1672 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 1673 return value; 1674 case -404562712: // experimental 1675 this.experimental = castToBoolean(value); // BooleanType 1676 return value; 1677 case 3575610: // type 1678 this.type = castToCodeableConcept(value); // CodeableConcept 1679 return value; 1680 case -1867885268: // subject 1681 this.subject = castToType(value); // Type 1682 return value; 1683 case 3076014: // date 1684 this.date = castToDateTime(value); // DateTimeType 1685 return value; 1686 case 1447404028: // publisher 1687 this.publisher = castToString(value); // StringType 1688 return value; 1689 case 951526432: // contact 1690 this.getContact().add(castToContactDetail(value)); // ContactDetail 1691 return value; 1692 case -1724546052: // description 1693 this.description = castToMarkdown(value); // MarkdownType 1694 return value; 1695 case -669707736: // useContext 1696 this.getUseContext().add(castToUsageContext(value)); // UsageContext 1697 return value; 1698 case -507075711: // jurisdiction 1699 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 1700 return value; 1701 case -220463842: // purpose 1702 this.purpose = castToMarkdown(value); // MarkdownType 1703 return value; 1704 case 111574433: // usage 1705 this.usage = castToString(value); // StringType 1706 return value; 1707 case 1522889671: // copyright 1708 this.copyright = castToMarkdown(value); // MarkdownType 1709 return value; 1710 case 223539345: // approvalDate 1711 this.approvalDate = castToDate(value); // DateType 1712 return value; 1713 case -1687512484: // lastReviewDate 1714 this.lastReviewDate = castToDate(value); // DateType 1715 return value; 1716 case -403934648: // effectivePeriod 1717 this.effectivePeriod = castToPeriod(value); // Period 1718 return value; 1719 case 110546223: // topic 1720 this.getTopic().add(castToCodeableConcept(value)); // CodeableConcept 1721 return value; 1722 case -1895276325: // contributor 1723 this.getContributor().add(castToContributor(value)); // Contributor 1724 return value; 1725 case 666807069: // relatedArtifact 1726 this.getRelatedArtifact().add(castToRelatedArtifact(value)); // RelatedArtifact 1727 return value; 1728 case 1954460585: // parameter 1729 this.getParameter().add(castToParameterDefinition(value)); // ParameterDefinition 1730 return value; 1731 case 629147193: // dataRequirement 1732 this.getDataRequirement().add(castToDataRequirement(value)); // DataRequirement 1733 return value; 1734 case 951530617: // content 1735 this.getContent().add(castToAttachment(value)); // Attachment 1736 return value; 1737 default: return super.setProperty(hash, name, value); 1738 } 1739 1740 } 1741 1742 @Override 1743 public Base setProperty(String name, Base value) throws FHIRException { 1744 if (name.equals("url")) { 1745 this.url = castToUri(value); // UriType 1746 } else if (name.equals("identifier")) { 1747 this.getIdentifier().add(castToIdentifier(value)); 1748 } else if (name.equals("version")) { 1749 this.version = castToString(value); // StringType 1750 } else if (name.equals("name")) { 1751 this.name = castToString(value); // StringType 1752 } else if (name.equals("title")) { 1753 this.title = castToString(value); // StringType 1754 } else if (name.equals("subtitle")) { 1755 this.subtitle = castToString(value); // StringType 1756 } else if (name.equals("status")) { 1757 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 1758 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 1759 } else if (name.equals("experimental")) { 1760 this.experimental = castToBoolean(value); // BooleanType 1761 } else if (name.equals("type")) { 1762 this.type = castToCodeableConcept(value); // CodeableConcept 1763 } else if (name.equals("subject[x]")) { 1764 this.subject = castToType(value); // Type 1765 } else if (name.equals("date")) { 1766 this.date = castToDateTime(value); // DateTimeType 1767 } else if (name.equals("publisher")) { 1768 this.publisher = castToString(value); // StringType 1769 } else if (name.equals("contact")) { 1770 this.getContact().add(castToContactDetail(value)); 1771 } else if (name.equals("description")) { 1772 this.description = castToMarkdown(value); // MarkdownType 1773 } else if (name.equals("useContext")) { 1774 this.getUseContext().add(castToUsageContext(value)); 1775 } else if (name.equals("jurisdiction")) { 1776 this.getJurisdiction().add(castToCodeableConcept(value)); 1777 } else if (name.equals("purpose")) { 1778 this.purpose = castToMarkdown(value); // MarkdownType 1779 } else if (name.equals("usage")) { 1780 this.usage = castToString(value); // StringType 1781 } else if (name.equals("copyright")) { 1782 this.copyright = castToMarkdown(value); // MarkdownType 1783 } else if (name.equals("approvalDate")) { 1784 this.approvalDate = castToDate(value); // DateType 1785 } else if (name.equals("lastReviewDate")) { 1786 this.lastReviewDate = castToDate(value); // DateType 1787 } else if (name.equals("effectivePeriod")) { 1788 this.effectivePeriod = castToPeriod(value); // Period 1789 } else if (name.equals("topic")) { 1790 this.getTopic().add(castToCodeableConcept(value)); 1791 } else if (name.equals("contributor")) { 1792 this.getContributor().add(castToContributor(value)); 1793 } else if (name.equals("relatedArtifact")) { 1794 this.getRelatedArtifact().add(castToRelatedArtifact(value)); 1795 } else if (name.equals("parameter")) { 1796 this.getParameter().add(castToParameterDefinition(value)); 1797 } else if (name.equals("dataRequirement")) { 1798 this.getDataRequirement().add(castToDataRequirement(value)); 1799 } else if (name.equals("content")) { 1800 this.getContent().add(castToAttachment(value)); 1801 } else 1802 return super.setProperty(name, value); 1803 return value; 1804 } 1805 1806 @Override 1807 public Base makeProperty(int hash, String name) throws FHIRException { 1808 switch (hash) { 1809 case 116079: return getUrlElement(); 1810 case -1618432855: return addIdentifier(); 1811 case 351608024: return getVersionElement(); 1812 case 3373707: return getNameElement(); 1813 case 110371416: return getTitleElement(); 1814 case -2060497896: return getSubtitleElement(); 1815 case -892481550: return getStatusElement(); 1816 case -404562712: return getExperimentalElement(); 1817 case 3575610: return getType(); 1818 case -573640748: return getSubject(); 1819 case -1867885268: return getSubject(); 1820 case 3076014: return getDateElement(); 1821 case 1447404028: return getPublisherElement(); 1822 case 951526432: return addContact(); 1823 case -1724546052: return getDescriptionElement(); 1824 case -669707736: return addUseContext(); 1825 case -507075711: return addJurisdiction(); 1826 case -220463842: return getPurposeElement(); 1827 case 111574433: return getUsageElement(); 1828 case 1522889671: return getCopyrightElement(); 1829 case 223539345: return getApprovalDateElement(); 1830 case -1687512484: return getLastReviewDateElement(); 1831 case -403934648: return getEffectivePeriod(); 1832 case 110546223: return addTopic(); 1833 case -1895276325: return addContributor(); 1834 case 666807069: return addRelatedArtifact(); 1835 case 1954460585: return addParameter(); 1836 case 629147193: return addDataRequirement(); 1837 case 951530617: return addContent(); 1838 default: return super.makeProperty(hash, name); 1839 } 1840 1841 } 1842 1843 @Override 1844 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1845 switch (hash) { 1846 case 116079: /*url*/ return new String[] {"uri"}; 1847 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1848 case 351608024: /*version*/ return new String[] {"string"}; 1849 case 3373707: /*name*/ return new String[] {"string"}; 1850 case 110371416: /*title*/ return new String[] {"string"}; 1851 case -2060497896: /*subtitle*/ return new String[] {"string"}; 1852 case -892481550: /*status*/ return new String[] {"code"}; 1853 case -404562712: /*experimental*/ return new String[] {"boolean"}; 1854 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 1855 case -1867885268: /*subject*/ return new String[] {"CodeableConcept", "Reference"}; 1856 case 3076014: /*date*/ return new String[] {"dateTime"}; 1857 case 1447404028: /*publisher*/ return new String[] {"string"}; 1858 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 1859 case -1724546052: /*description*/ return new String[] {"markdown"}; 1860 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 1861 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 1862 case -220463842: /*purpose*/ return new String[] {"markdown"}; 1863 case 111574433: /*usage*/ return new String[] {"string"}; 1864 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 1865 case 223539345: /*approvalDate*/ return new String[] {"date"}; 1866 case -1687512484: /*lastReviewDate*/ return new String[] {"date"}; 1867 case -403934648: /*effectivePeriod*/ return new String[] {"Period"}; 1868 case 110546223: /*topic*/ return new String[] {"CodeableConcept"}; 1869 case -1895276325: /*contributor*/ return new String[] {"Contributor"}; 1870 case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"}; 1871 case 1954460585: /*parameter*/ return new String[] {"ParameterDefinition"}; 1872 case 629147193: /*dataRequirement*/ return new String[] {"DataRequirement"}; 1873 case 951530617: /*content*/ return new String[] {"Attachment"}; 1874 default: return super.getTypesForProperty(hash, name); 1875 } 1876 1877 } 1878 1879 @Override 1880 public Base addChild(String name) throws FHIRException { 1881 if (name.equals("url")) { 1882 throw new FHIRException("Cannot call addChild on a primitive type Library.url"); 1883 } 1884 else if (name.equals("identifier")) { 1885 return addIdentifier(); 1886 } 1887 else if (name.equals("version")) { 1888 throw new FHIRException("Cannot call addChild on a primitive type Library.version"); 1889 } 1890 else if (name.equals("name")) { 1891 throw new FHIRException("Cannot call addChild on a primitive type Library.name"); 1892 } 1893 else if (name.equals("title")) { 1894 throw new FHIRException("Cannot call addChild on a primitive type Library.title"); 1895 } 1896 else if (name.equals("subtitle")) { 1897 throw new FHIRException("Cannot call addChild on a primitive type Library.subtitle"); 1898 } 1899 else if (name.equals("status")) { 1900 throw new FHIRException("Cannot call addChild on a primitive type Library.status"); 1901 } 1902 else if (name.equals("experimental")) { 1903 throw new FHIRException("Cannot call addChild on a primitive type Library.experimental"); 1904 } 1905 else if (name.equals("type")) { 1906 this.type = new CodeableConcept(); 1907 return this.type; 1908 } 1909 else if (name.equals("subjectCodeableConcept")) { 1910 this.subject = new CodeableConcept(); 1911 return this.subject; 1912 } 1913 else if (name.equals("subjectReference")) { 1914 this.subject = new Reference(); 1915 return this.subject; 1916 } 1917 else if (name.equals("date")) { 1918 throw new FHIRException("Cannot call addChild on a primitive type Library.date"); 1919 } 1920 else if (name.equals("publisher")) { 1921 throw new FHIRException("Cannot call addChild on a primitive type Library.publisher"); 1922 } 1923 else if (name.equals("contact")) { 1924 return addContact(); 1925 } 1926 else if (name.equals("description")) { 1927 throw new FHIRException("Cannot call addChild on a primitive type Library.description"); 1928 } 1929 else if (name.equals("useContext")) { 1930 return addUseContext(); 1931 } 1932 else if (name.equals("jurisdiction")) { 1933 return addJurisdiction(); 1934 } 1935 else if (name.equals("purpose")) { 1936 throw new FHIRException("Cannot call addChild on a primitive type Library.purpose"); 1937 } 1938 else if (name.equals("usage")) { 1939 throw new FHIRException("Cannot call addChild on a primitive type Library.usage"); 1940 } 1941 else if (name.equals("copyright")) { 1942 throw new FHIRException("Cannot call addChild on a primitive type Library.copyright"); 1943 } 1944 else if (name.equals("approvalDate")) { 1945 throw new FHIRException("Cannot call addChild on a primitive type Library.approvalDate"); 1946 } 1947 else if (name.equals("lastReviewDate")) { 1948 throw new FHIRException("Cannot call addChild on a primitive type Library.lastReviewDate"); 1949 } 1950 else if (name.equals("effectivePeriod")) { 1951 this.effectivePeriod = new Period(); 1952 return this.effectivePeriod; 1953 } 1954 else if (name.equals("topic")) { 1955 return addTopic(); 1956 } 1957 else if (name.equals("contributor")) { 1958 return addContributor(); 1959 } 1960 else if (name.equals("relatedArtifact")) { 1961 return addRelatedArtifact(); 1962 } 1963 else if (name.equals("parameter")) { 1964 return addParameter(); 1965 } 1966 else if (name.equals("dataRequirement")) { 1967 return addDataRequirement(); 1968 } 1969 else if (name.equals("content")) { 1970 return addContent(); 1971 } 1972 else 1973 return super.addChild(name); 1974 } 1975 1976 public String fhirType() { 1977 return "Library"; 1978 1979 } 1980 1981 public Library copy() { 1982 Library dst = new Library(); 1983 copyValues(dst); 1984 dst.url = url == null ? null : url.copy(); 1985 if (identifier != null) { 1986 dst.identifier = new ArrayList<Identifier>(); 1987 for (Identifier i : identifier) 1988 dst.identifier.add(i.copy()); 1989 }; 1990 dst.version = version == null ? null : version.copy(); 1991 dst.name = name == null ? null : name.copy(); 1992 dst.title = title == null ? null : title.copy(); 1993 dst.subtitle = subtitle == null ? null : subtitle.copy(); 1994 dst.status = status == null ? null : status.copy(); 1995 dst.experimental = experimental == null ? null : experimental.copy(); 1996 dst.type = type == null ? null : type.copy(); 1997 dst.subject = subject == null ? null : subject.copy(); 1998 dst.date = date == null ? null : date.copy(); 1999 dst.publisher = publisher == null ? null : publisher.copy(); 2000 if (contact != null) { 2001 dst.contact = new ArrayList<ContactDetail>(); 2002 for (ContactDetail i : contact) 2003 dst.contact.add(i.copy()); 2004 }; 2005 dst.description = description == null ? null : description.copy(); 2006 if (useContext != null) { 2007 dst.useContext = new ArrayList<UsageContext>(); 2008 for (UsageContext i : useContext) 2009 dst.useContext.add(i.copy()); 2010 }; 2011 if (jurisdiction != null) { 2012 dst.jurisdiction = new ArrayList<CodeableConcept>(); 2013 for (CodeableConcept i : jurisdiction) 2014 dst.jurisdiction.add(i.copy()); 2015 }; 2016 dst.purpose = purpose == null ? null : purpose.copy(); 2017 dst.usage = usage == null ? null : usage.copy(); 2018 dst.copyright = copyright == null ? null : copyright.copy(); 2019 dst.approvalDate = approvalDate == null ? null : approvalDate.copy(); 2020 dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy(); 2021 dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy(); 2022 if (topic != null) { 2023 dst.topic = new ArrayList<CodeableConcept>(); 2024 for (CodeableConcept i : topic) 2025 dst.topic.add(i.copy()); 2026 }; 2027 if (contributor != null) { 2028 dst.contributor = new ArrayList<Contributor>(); 2029 for (Contributor i : contributor) 2030 dst.contributor.add(i.copy()); 2031 }; 2032 if (relatedArtifact != null) { 2033 dst.relatedArtifact = new ArrayList<RelatedArtifact>(); 2034 for (RelatedArtifact i : relatedArtifact) 2035 dst.relatedArtifact.add(i.copy()); 2036 }; 2037 if (parameter != null) { 2038 dst.parameter = new ArrayList<ParameterDefinition>(); 2039 for (ParameterDefinition i : parameter) 2040 dst.parameter.add(i.copy()); 2041 }; 2042 if (dataRequirement != null) { 2043 dst.dataRequirement = new ArrayList<DataRequirement>(); 2044 for (DataRequirement i : dataRequirement) 2045 dst.dataRequirement.add(i.copy()); 2046 }; 2047 if (content != null) { 2048 dst.content = new ArrayList<Attachment>(); 2049 for (Attachment i : content) 2050 dst.content.add(i.copy()); 2051 }; 2052 return dst; 2053 } 2054 2055 protected Library typedCopy() { 2056 return copy(); 2057 } 2058 2059 @Override 2060 public boolean equalsDeep(Base other_) { 2061 if (!super.equalsDeep(other_)) 2062 return false; 2063 if (!(other_ instanceof Library)) 2064 return false; 2065 Library o = (Library) other_; 2066 return compareDeep(identifier, o.identifier, true) && compareDeep(subtitle, o.subtitle, true) && compareDeep(type, o.type, true) 2067 && compareDeep(subject, o.subject, true) && compareDeep(purpose, o.purpose, true) && compareDeep(usage, o.usage, true) 2068 && compareDeep(copyright, o.copyright, true) && compareDeep(approvalDate, o.approvalDate, true) 2069 && compareDeep(lastReviewDate, o.lastReviewDate, true) && compareDeep(effectivePeriod, o.effectivePeriod, true) 2070 && compareDeep(topic, o.topic, true) && compareDeep(contributor, o.contributor, true) && compareDeep(relatedArtifact, o.relatedArtifact, true) 2071 && compareDeep(parameter, o.parameter, true) && compareDeep(dataRequirement, o.dataRequirement, true) 2072 && compareDeep(content, o.content, true); 2073 } 2074 2075 @Override 2076 public boolean equalsShallow(Base other_) { 2077 if (!super.equalsShallow(other_)) 2078 return false; 2079 if (!(other_ instanceof Library)) 2080 return false; 2081 Library o = (Library) other_; 2082 return compareValues(subtitle, o.subtitle, true) && compareValues(purpose, o.purpose, true) && compareValues(usage, o.usage, true) 2083 && compareValues(copyright, o.copyright, true) && compareValues(approvalDate, o.approvalDate, true) 2084 && compareValues(lastReviewDate, o.lastReviewDate, true); 2085 } 2086 2087 public boolean isEmpty() { 2088 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, subtitle, type 2089 , subject, purpose, usage, copyright, approvalDate, lastReviewDate, effectivePeriod 2090 , topic, contributor, relatedArtifact, parameter, dataRequirement, content); 2091 } 2092 2093 @Override 2094 public ResourceType getResourceType() { 2095 return ResourceType.Library; 2096 } 2097 2098 /** 2099 * Search parameter: <b>date</b> 2100 * <p> 2101 * Description: <b>The library publication date</b><br> 2102 * Type: <b>date</b><br> 2103 * Path: <b>Library.date</b><br> 2104 * </p> 2105 */ 2106 @SearchParamDefinition(name="date", path="Library.date", description="The library publication date", type="date" ) 2107 public static final String SP_DATE = "date"; 2108 /** 2109 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2110 * <p> 2111 * Description: <b>The library publication date</b><br> 2112 * Type: <b>date</b><br> 2113 * Path: <b>Library.date</b><br> 2114 * </p> 2115 */ 2116 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2117 2118 /** 2119 * Search parameter: <b>identifier</b> 2120 * <p> 2121 * Description: <b>External identifier for the library</b><br> 2122 * Type: <b>token</b><br> 2123 * Path: <b>Library.identifier</b><br> 2124 * </p> 2125 */ 2126 @SearchParamDefinition(name="identifier", path="Library.identifier", description="External identifier for the library", type="token" ) 2127 public static final String SP_IDENTIFIER = "identifier"; 2128 /** 2129 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2130 * <p> 2131 * Description: <b>External identifier for the library</b><br> 2132 * Type: <b>token</b><br> 2133 * Path: <b>Library.identifier</b><br> 2134 * </p> 2135 */ 2136 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2137 2138 /** 2139 * Search parameter: <b>successor</b> 2140 * <p> 2141 * Description: <b>What resource is being referenced</b><br> 2142 * Type: <b>reference</b><br> 2143 * Path: <b>Library.relatedArtifact.resource</b><br> 2144 * </p> 2145 */ 2146 @SearchParamDefinition(name="successor", path="Library.relatedArtifact.where(type='successor').resource", description="What resource is being referenced", type="reference" ) 2147 public static final String SP_SUCCESSOR = "successor"; 2148 /** 2149 * <b>Fluent Client</b> search parameter constant for <b>successor</b> 2150 * <p> 2151 * Description: <b>What resource is being referenced</b><br> 2152 * Type: <b>reference</b><br> 2153 * Path: <b>Library.relatedArtifact.resource</b><br> 2154 * </p> 2155 */ 2156 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUCCESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUCCESSOR); 2157 2158/** 2159 * Constant for fluent queries to be used to add include statements. Specifies 2160 * the path value of "<b>Library:successor</b>". 2161 */ 2162 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUCCESSOR = new ca.uhn.fhir.model.api.Include("Library:successor").toLocked(); 2163 2164 /** 2165 * Search parameter: <b>jurisdiction</b> 2166 * <p> 2167 * Description: <b>Intended jurisdiction for the library</b><br> 2168 * Type: <b>token</b><br> 2169 * Path: <b>Library.jurisdiction</b><br> 2170 * </p> 2171 */ 2172 @SearchParamDefinition(name="jurisdiction", path="Library.jurisdiction", description="Intended jurisdiction for the library", type="token" ) 2173 public static final String SP_JURISDICTION = "jurisdiction"; 2174 /** 2175 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 2176 * <p> 2177 * Description: <b>Intended jurisdiction for the library</b><br> 2178 * Type: <b>token</b><br> 2179 * Path: <b>Library.jurisdiction</b><br> 2180 * </p> 2181 */ 2182 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 2183 2184 /** 2185 * Search parameter: <b>description</b> 2186 * <p> 2187 * Description: <b>The description of the library</b><br> 2188 * Type: <b>string</b><br> 2189 * Path: <b>Library.description</b><br> 2190 * </p> 2191 */ 2192 @SearchParamDefinition(name="description", path="Library.description", description="The description of the library", type="string" ) 2193 public static final String SP_DESCRIPTION = "description"; 2194 /** 2195 * <b>Fluent Client</b> search parameter constant for <b>description</b> 2196 * <p> 2197 * Description: <b>The description of the library</b><br> 2198 * Type: <b>string</b><br> 2199 * Path: <b>Library.description</b><br> 2200 * </p> 2201 */ 2202 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 2203 2204 /** 2205 * Search parameter: <b>derived-from</b> 2206 * <p> 2207 * Description: <b>What resource is being referenced</b><br> 2208 * Type: <b>reference</b><br> 2209 * Path: <b>Library.relatedArtifact.resource</b><br> 2210 * </p> 2211 */ 2212 @SearchParamDefinition(name="derived-from", path="Library.relatedArtifact.where(type='derived-from').resource", description="What resource is being referenced", type="reference" ) 2213 public static final String SP_DERIVED_FROM = "derived-from"; 2214 /** 2215 * <b>Fluent Client</b> search parameter constant for <b>derived-from</b> 2216 * <p> 2217 * Description: <b>What resource is being referenced</b><br> 2218 * Type: <b>reference</b><br> 2219 * Path: <b>Library.relatedArtifact.resource</b><br> 2220 * </p> 2221 */ 2222 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM); 2223 2224/** 2225 * Constant for fluent queries to be used to add include statements. Specifies 2226 * the path value of "<b>Library:derived-from</b>". 2227 */ 2228 public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("Library:derived-from").toLocked(); 2229 2230 /** 2231 * Search parameter: <b>predecessor</b> 2232 * <p> 2233 * Description: <b>What resource is being referenced</b><br> 2234 * Type: <b>reference</b><br> 2235 * Path: <b>Library.relatedArtifact.resource</b><br> 2236 * </p> 2237 */ 2238 @SearchParamDefinition(name="predecessor", path="Library.relatedArtifact.where(type='predecessor').resource", description="What resource is being referenced", type="reference" ) 2239 public static final String SP_PREDECESSOR = "predecessor"; 2240 /** 2241 * <b>Fluent Client</b> search parameter constant for <b>predecessor</b> 2242 * <p> 2243 * Description: <b>What resource is being referenced</b><br> 2244 * Type: <b>reference</b><br> 2245 * Path: <b>Library.relatedArtifact.resource</b><br> 2246 * </p> 2247 */ 2248 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PREDECESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PREDECESSOR); 2249 2250/** 2251 * Constant for fluent queries to be used to add include statements. Specifies 2252 * the path value of "<b>Library:predecessor</b>". 2253 */ 2254 public static final ca.uhn.fhir.model.api.Include INCLUDE_PREDECESSOR = new ca.uhn.fhir.model.api.Include("Library:predecessor").toLocked(); 2255 2256 /** 2257 * Search parameter: <b>title</b> 2258 * <p> 2259 * Description: <b>The human-friendly name of the library</b><br> 2260 * Type: <b>string</b><br> 2261 * Path: <b>Library.title</b><br> 2262 * </p> 2263 */ 2264 @SearchParamDefinition(name="title", path="Library.title", description="The human-friendly name of the library", type="string" ) 2265 public static final String SP_TITLE = "title"; 2266 /** 2267 * <b>Fluent Client</b> search parameter constant for <b>title</b> 2268 * <p> 2269 * Description: <b>The human-friendly name of the library</b><br> 2270 * Type: <b>string</b><br> 2271 * Path: <b>Library.title</b><br> 2272 * </p> 2273 */ 2274 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 2275 2276 /** 2277 * Search parameter: <b>composed-of</b> 2278 * <p> 2279 * Description: <b>What resource is being referenced</b><br> 2280 * Type: <b>reference</b><br> 2281 * Path: <b>Library.relatedArtifact.resource</b><br> 2282 * </p> 2283 */ 2284 @SearchParamDefinition(name="composed-of", path="Library.relatedArtifact.where(type='composed-of').resource", description="What resource is being referenced", type="reference" ) 2285 public static final String SP_COMPOSED_OF = "composed-of"; 2286 /** 2287 * <b>Fluent Client</b> search parameter constant for <b>composed-of</b> 2288 * <p> 2289 * Description: <b>What resource is being referenced</b><br> 2290 * Type: <b>reference</b><br> 2291 * Path: <b>Library.relatedArtifact.resource</b><br> 2292 * </p> 2293 */ 2294 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COMPOSED_OF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COMPOSED_OF); 2295 2296/** 2297 * Constant for fluent queries to be used to add include statements. Specifies 2298 * the path value of "<b>Library:composed-of</b>". 2299 */ 2300 public static final ca.uhn.fhir.model.api.Include INCLUDE_COMPOSED_OF = new ca.uhn.fhir.model.api.Include("Library:composed-of").toLocked(); 2301 2302 /** 2303 * Search parameter: <b>type</b> 2304 * <p> 2305 * Description: <b>The type of the library (e.g. logic-library, model-definition, asset-collection, module-definition)</b><br> 2306 * Type: <b>token</b><br> 2307 * Path: <b>Library.type</b><br> 2308 * </p> 2309 */ 2310 @SearchParamDefinition(name="type", path="Library.type", description="The type of the library (e.g. logic-library, model-definition, asset-collection, module-definition)", type="token" ) 2311 public static final String SP_TYPE = "type"; 2312 /** 2313 * <b>Fluent Client</b> search parameter constant for <b>type</b> 2314 * <p> 2315 * Description: <b>The type of the library (e.g. logic-library, model-definition, asset-collection, module-definition)</b><br> 2316 * Type: <b>token</b><br> 2317 * Path: <b>Library.type</b><br> 2318 * </p> 2319 */ 2320 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 2321 2322 /** 2323 * Search parameter: <b>version</b> 2324 * <p> 2325 * Description: <b>The business version of the library</b><br> 2326 * Type: <b>token</b><br> 2327 * Path: <b>Library.version</b><br> 2328 * </p> 2329 */ 2330 @SearchParamDefinition(name="version", path="Library.version", description="The business version of the library", type="token" ) 2331 public static final String SP_VERSION = "version"; 2332 /** 2333 * <b>Fluent Client</b> search parameter constant for <b>version</b> 2334 * <p> 2335 * Description: <b>The business version of the library</b><br> 2336 * Type: <b>token</b><br> 2337 * Path: <b>Library.version</b><br> 2338 * </p> 2339 */ 2340 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 2341 2342 /** 2343 * Search parameter: <b>url</b> 2344 * <p> 2345 * Description: <b>The uri that identifies the library</b><br> 2346 * Type: <b>uri</b><br> 2347 * Path: <b>Library.url</b><br> 2348 * </p> 2349 */ 2350 @SearchParamDefinition(name="url", path="Library.url", description="The uri that identifies the library", type="uri" ) 2351 public static final String SP_URL = "url"; 2352 /** 2353 * <b>Fluent Client</b> search parameter constant for <b>url</b> 2354 * <p> 2355 * Description: <b>The uri that identifies the library</b><br> 2356 * Type: <b>uri</b><br> 2357 * Path: <b>Library.url</b><br> 2358 * </p> 2359 */ 2360 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 2361 2362 /** 2363 * Search parameter: <b>effective</b> 2364 * <p> 2365 * Description: <b>The time during which the library is intended to be in use</b><br> 2366 * Type: <b>date</b><br> 2367 * Path: <b>Library.effectivePeriod</b><br> 2368 * </p> 2369 */ 2370 @SearchParamDefinition(name="effective", path="Library.effectivePeriod", description="The time during which the library is intended to be in use", type="date" ) 2371 public static final String SP_EFFECTIVE = "effective"; 2372 /** 2373 * <b>Fluent Client</b> search parameter constant for <b>effective</b> 2374 * <p> 2375 * Description: <b>The time during which the library is intended to be in use</b><br> 2376 * Type: <b>date</b><br> 2377 * Path: <b>Library.effectivePeriod</b><br> 2378 * </p> 2379 */ 2380 public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE); 2381 2382 /** 2383 * Search parameter: <b>depends-on</b> 2384 * <p> 2385 * Description: <b>What resource is being referenced</b><br> 2386 * Type: <b>reference</b><br> 2387 * Path: <b>Library.relatedArtifact.resource</b><br> 2388 * </p> 2389 */ 2390 @SearchParamDefinition(name="depends-on", path="Library.relatedArtifact.where(type='depends-on').resource", description="What resource is being referenced", type="reference" ) 2391 public static final String SP_DEPENDS_ON = "depends-on"; 2392 /** 2393 * <b>Fluent Client</b> search parameter constant for <b>depends-on</b> 2394 * <p> 2395 * Description: <b>What resource is being referenced</b><br> 2396 * Type: <b>reference</b><br> 2397 * Path: <b>Library.relatedArtifact.resource</b><br> 2398 * </p> 2399 */ 2400 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEPENDS_ON); 2401 2402/** 2403 * Constant for fluent queries to be used to add include statements. Specifies 2404 * the path value of "<b>Library:depends-on</b>". 2405 */ 2406 public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include("Library:depends-on").toLocked(); 2407 2408 /** 2409 * Search parameter: <b>name</b> 2410 * <p> 2411 * Description: <b>Computationally friendly name of the library</b><br> 2412 * Type: <b>string</b><br> 2413 * Path: <b>Library.name</b><br> 2414 * </p> 2415 */ 2416 @SearchParamDefinition(name="name", path="Library.name", description="Computationally friendly name of the library", type="string" ) 2417 public static final String SP_NAME = "name"; 2418 /** 2419 * <b>Fluent Client</b> search parameter constant for <b>name</b> 2420 * <p> 2421 * Description: <b>Computationally friendly name of the library</b><br> 2422 * Type: <b>string</b><br> 2423 * Path: <b>Library.name</b><br> 2424 * </p> 2425 */ 2426 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 2427 2428 /** 2429 * Search parameter: <b>publisher</b> 2430 * <p> 2431 * Description: <b>Name of the publisher of the library</b><br> 2432 * Type: <b>string</b><br> 2433 * Path: <b>Library.publisher</b><br> 2434 * </p> 2435 */ 2436 @SearchParamDefinition(name="publisher", path="Library.publisher", description="Name of the publisher of the library", type="string" ) 2437 public static final String SP_PUBLISHER = "publisher"; 2438 /** 2439 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 2440 * <p> 2441 * Description: <b>Name of the publisher of the library</b><br> 2442 * Type: <b>string</b><br> 2443 * Path: <b>Library.publisher</b><br> 2444 * </p> 2445 */ 2446 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 2447 2448 /** 2449 * Search parameter: <b>topic</b> 2450 * <p> 2451 * Description: <b>Topics associated with the module</b><br> 2452 * Type: <b>token</b><br> 2453 * Path: <b>Library.topic</b><br> 2454 * </p> 2455 */ 2456 @SearchParamDefinition(name="topic", path="Library.topic", description="Topics associated with the module", type="token" ) 2457 public static final String SP_TOPIC = "topic"; 2458 /** 2459 * <b>Fluent Client</b> search parameter constant for <b>topic</b> 2460 * <p> 2461 * Description: <b>Topics associated with the module</b><br> 2462 * Type: <b>token</b><br> 2463 * Path: <b>Library.topic</b><br> 2464 * </p> 2465 */ 2466 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TOPIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TOPIC); 2467 2468 /** 2469 * Search parameter: <b>status</b> 2470 * <p> 2471 * Description: <b>The current status of the library</b><br> 2472 * Type: <b>token</b><br> 2473 * Path: <b>Library.status</b><br> 2474 * </p> 2475 */ 2476 @SearchParamDefinition(name="status", path="Library.status", description="The current status of the library", type="token" ) 2477 public static final String SP_STATUS = "status"; 2478 /** 2479 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2480 * <p> 2481 * Description: <b>The current status of the library</b><br> 2482 * Type: <b>token</b><br> 2483 * Path: <b>Library.status</b><br> 2484 * </p> 2485 */ 2486 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2487 2488 2489} 2490