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 Thu, Sep 13, 2018 09:04-0400 for FHIR v3.5.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/StructureDefinition/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", "author", "editor", "reviewer", "endorser", "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 * An individiual or organization primarily involved in the creation and maintenance of the content. 135 */ 136 @Child(name = "author", type = {ContactDetail.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 137 @Description(shortDefinition="Who authored the content", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the content." ) 138 protected List<ContactDetail> author; 139 140 /** 141 * An individual or organization primarily responsible for internal coherence of the content. 142 */ 143 @Child(name = "editor", type = {ContactDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 144 @Description(shortDefinition="Who edited the content", formalDefinition="An individual or organization primarily responsible for internal coherence of the content." ) 145 protected List<ContactDetail> editor; 146 147 /** 148 * An individual or organization primarily responsible for review of some aspect of the content. 149 */ 150 @Child(name = "reviewer", type = {ContactDetail.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 151 @Description(shortDefinition="Who reviewed the content", formalDefinition="An individual or organization primarily responsible for review of some aspect of the content." ) 152 protected List<ContactDetail> reviewer; 153 154 /** 155 * An individual or organization responsible for officially endorsing the content for use in some setting. 156 */ 157 @Child(name = "endorser", type = {ContactDetail.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 158 @Description(shortDefinition="Who endorsed the content", formalDefinition="An individual or organization responsible for officially endorsing the content for use in some setting." ) 159 protected List<ContactDetail> endorser; 160 161 /** 162 * Related artifacts such as additional documentation, justification, or bibliographic references. 163 */ 164 @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 165 @Description(shortDefinition="Additional documentation, citations, etc.", formalDefinition="Related artifacts such as additional documentation, justification, or bibliographic references." ) 166 protected List<RelatedArtifact> relatedArtifact; 167 168 /** 169 * The parameter element defines parameters used by the library. 170 */ 171 @Child(name = "parameter", type = {ParameterDefinition.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 172 @Description(shortDefinition="Parameters defined by the library", formalDefinition="The parameter element defines parameters used by the library." ) 173 protected List<ParameterDefinition> parameter; 174 175 /** 176 * Describes a set of data that must be provided in order to be able to successfully perform the computations defined by the library. 177 */ 178 @Child(name = "dataRequirement", type = {DataRequirement.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 179 @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." ) 180 protected List<DataRequirement> dataRequirement; 181 182 /** 183 * 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. 184 */ 185 @Child(name = "content", type = {Attachment.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 186 @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." ) 187 protected List<Attachment> content; 188 189 private static final long serialVersionUID = -796686369L; 190 191 /** 192 * Constructor 193 */ 194 public Library() { 195 super(); 196 } 197 198 /** 199 * Constructor 200 */ 201 public Library(Enumeration<PublicationStatus> status, CodeableConcept type) { 202 super(); 203 this.status = status; 204 this.type = type; 205 } 206 207 /** 208 * @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 at which an authoritative instance of this library is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the library is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 209 */ 210 public UriType getUrlElement() { 211 if (this.url == null) 212 if (Configuration.errorOnAutoCreate()) 213 throw new Error("Attempt to auto-create Library.url"); 214 else if (Configuration.doAutoCreate()) 215 this.url = new UriType(); // bb 216 return this.url; 217 } 218 219 public boolean hasUrlElement() { 220 return this.url != null && !this.url.isEmpty(); 221 } 222 223 public boolean hasUrl() { 224 return this.url != null && !this.url.isEmpty(); 225 } 226 227 /** 228 * @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 at which an authoritative instance of this library is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the library is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 229 */ 230 public Library setUrlElement(UriType value) { 231 this.url = value; 232 return this; 233 } 234 235 /** 236 * @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 at which an authoritative instance of this library is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the library is stored on different servers. 237 */ 238 public String getUrl() { 239 return this.url == null ? null : this.url.getValue(); 240 } 241 242 /** 243 * @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 at which an authoritative instance of this library is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the library is stored on different servers. 244 */ 245 public Library setUrl(String value) { 246 if (Utilities.noString(value)) 247 this.url = null; 248 else { 249 if (this.url == null) 250 this.url = new UriType(); 251 this.url.setValue(value); 252 } 253 return this; 254 } 255 256 /** 257 * @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.) 258 */ 259 public List<Identifier> getIdentifier() { 260 if (this.identifier == null) 261 this.identifier = new ArrayList<Identifier>(); 262 return this.identifier; 263 } 264 265 /** 266 * @return Returns a reference to <code>this</code> for easy method chaining 267 */ 268 public Library setIdentifier(List<Identifier> theIdentifier) { 269 this.identifier = theIdentifier; 270 return this; 271 } 272 273 public boolean hasIdentifier() { 274 if (this.identifier == null) 275 return false; 276 for (Identifier item : this.identifier) 277 if (!item.isEmpty()) 278 return true; 279 return false; 280 } 281 282 public Identifier addIdentifier() { //3 283 Identifier t = new Identifier(); 284 if (this.identifier == null) 285 this.identifier = new ArrayList<Identifier>(); 286 this.identifier.add(t); 287 return t; 288 } 289 290 public Library addIdentifier(Identifier t) { //3 291 if (t == null) 292 return this; 293 if (this.identifier == null) 294 this.identifier = new ArrayList<Identifier>(); 295 this.identifier.add(t); 296 return this; 297 } 298 299 /** 300 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 301 */ 302 public Identifier getIdentifierFirstRep() { 303 if (getIdentifier().isEmpty()) { 304 addIdentifier(); 305 } 306 return getIdentifier().get(0); 307 } 308 309 /** 310 * @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 311 */ 312 public StringType getVersionElement() { 313 if (this.version == null) 314 if (Configuration.errorOnAutoCreate()) 315 throw new Error("Attempt to auto-create Library.version"); 316 else if (Configuration.doAutoCreate()) 317 this.version = new StringType(); // bb 318 return this.version; 319 } 320 321 public boolean hasVersionElement() { 322 return this.version != null && !this.version.isEmpty(); 323 } 324 325 public boolean hasVersion() { 326 return this.version != null && !this.version.isEmpty(); 327 } 328 329 /** 330 * @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 331 */ 332 public Library setVersionElement(StringType value) { 333 this.version = value; 334 return this; 335 } 336 337 /** 338 * @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. 339 */ 340 public String getVersion() { 341 return this.version == null ? null : this.version.getValue(); 342 } 343 344 /** 345 * @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. 346 */ 347 public Library setVersion(String value) { 348 if (Utilities.noString(value)) 349 this.version = null; 350 else { 351 if (this.version == null) 352 this.version = new StringType(); 353 this.version.setValue(value); 354 } 355 return this; 356 } 357 358 /** 359 * @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 360 */ 361 public StringType getNameElement() { 362 if (this.name == null) 363 if (Configuration.errorOnAutoCreate()) 364 throw new Error("Attempt to auto-create Library.name"); 365 else if (Configuration.doAutoCreate()) 366 this.name = new StringType(); // bb 367 return this.name; 368 } 369 370 public boolean hasNameElement() { 371 return this.name != null && !this.name.isEmpty(); 372 } 373 374 public boolean hasName() { 375 return this.name != null && !this.name.isEmpty(); 376 } 377 378 /** 379 * @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 380 */ 381 public Library setNameElement(StringType value) { 382 this.name = value; 383 return this; 384 } 385 386 /** 387 * @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. 388 */ 389 public String getName() { 390 return this.name == null ? null : this.name.getValue(); 391 } 392 393 /** 394 * @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. 395 */ 396 public Library setName(String value) { 397 if (Utilities.noString(value)) 398 this.name = null; 399 else { 400 if (this.name == null) 401 this.name = new StringType(); 402 this.name.setValue(value); 403 } 404 return this; 405 } 406 407 /** 408 * @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 409 */ 410 public StringType getTitleElement() { 411 if (this.title == null) 412 if (Configuration.errorOnAutoCreate()) 413 throw new Error("Attempt to auto-create Library.title"); 414 else if (Configuration.doAutoCreate()) 415 this.title = new StringType(); // bb 416 return this.title; 417 } 418 419 public boolean hasTitleElement() { 420 return this.title != null && !this.title.isEmpty(); 421 } 422 423 public boolean hasTitle() { 424 return this.title != null && !this.title.isEmpty(); 425 } 426 427 /** 428 * @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 429 */ 430 public Library setTitleElement(StringType value) { 431 this.title = value; 432 return this; 433 } 434 435 /** 436 * @return A short, descriptive, user-friendly title for the library. 437 */ 438 public String getTitle() { 439 return this.title == null ? null : this.title.getValue(); 440 } 441 442 /** 443 * @param value A short, descriptive, user-friendly title for the library. 444 */ 445 public Library setTitle(String value) { 446 if (Utilities.noString(value)) 447 this.title = null; 448 else { 449 if (this.title == null) 450 this.title = new StringType(); 451 this.title.setValue(value); 452 } 453 return this; 454 } 455 456 /** 457 * @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 458 */ 459 public StringType getSubtitleElement() { 460 if (this.subtitle == null) 461 if (Configuration.errorOnAutoCreate()) 462 throw new Error("Attempt to auto-create Library.subtitle"); 463 else if (Configuration.doAutoCreate()) 464 this.subtitle = new StringType(); // bb 465 return this.subtitle; 466 } 467 468 public boolean hasSubtitleElement() { 469 return this.subtitle != null && !this.subtitle.isEmpty(); 470 } 471 472 public boolean hasSubtitle() { 473 return this.subtitle != null && !this.subtitle.isEmpty(); 474 } 475 476 /** 477 * @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 478 */ 479 public Library setSubtitleElement(StringType value) { 480 this.subtitle = value; 481 return this; 482 } 483 484 /** 485 * @return An explanatory or alternate title for the library giving additional information about its content. 486 */ 487 public String getSubtitle() { 488 return this.subtitle == null ? null : this.subtitle.getValue(); 489 } 490 491 /** 492 * @param value An explanatory or alternate title for the library giving additional information about its content. 493 */ 494 public Library setSubtitle(String value) { 495 if (Utilities.noString(value)) 496 this.subtitle = null; 497 else { 498 if (this.subtitle == null) 499 this.subtitle = new StringType(); 500 this.subtitle.setValue(value); 501 } 502 return this; 503 } 504 505 /** 506 * @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 507 */ 508 public Enumeration<PublicationStatus> getStatusElement() { 509 if (this.status == null) 510 if (Configuration.errorOnAutoCreate()) 511 throw new Error("Attempt to auto-create Library.status"); 512 else if (Configuration.doAutoCreate()) 513 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 514 return this.status; 515 } 516 517 public boolean hasStatusElement() { 518 return this.status != null && !this.status.isEmpty(); 519 } 520 521 public boolean hasStatus() { 522 return this.status != null && !this.status.isEmpty(); 523 } 524 525 /** 526 * @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 527 */ 528 public Library setStatusElement(Enumeration<PublicationStatus> value) { 529 this.status = value; 530 return this; 531 } 532 533 /** 534 * @return The status of this library. Enables tracking the life-cycle of the content. 535 */ 536 public PublicationStatus getStatus() { 537 return this.status == null ? null : this.status.getValue(); 538 } 539 540 /** 541 * @param value The status of this library. Enables tracking the life-cycle of the content. 542 */ 543 public Library setStatus(PublicationStatus value) { 544 if (this.status == null) 545 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 546 this.status.setValue(value); 547 return this; 548 } 549 550 /** 551 * @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 552 */ 553 public BooleanType getExperimentalElement() { 554 if (this.experimental == null) 555 if (Configuration.errorOnAutoCreate()) 556 throw new Error("Attempt to auto-create Library.experimental"); 557 else if (Configuration.doAutoCreate()) 558 this.experimental = new BooleanType(); // bb 559 return this.experimental; 560 } 561 562 public boolean hasExperimentalElement() { 563 return this.experimental != null && !this.experimental.isEmpty(); 564 } 565 566 public boolean hasExperimental() { 567 return this.experimental != null && !this.experimental.isEmpty(); 568 } 569 570 /** 571 * @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 572 */ 573 public Library setExperimentalElement(BooleanType value) { 574 this.experimental = value; 575 return this; 576 } 577 578 /** 579 * @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. 580 */ 581 public boolean getExperimental() { 582 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 583 } 584 585 /** 586 * @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. 587 */ 588 public Library setExperimental(boolean value) { 589 if (this.experimental == null) 590 this.experimental = new BooleanType(); 591 this.experimental.setValue(value); 592 return this; 593 } 594 595 /** 596 * @return {@link #type} (Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition.) 597 */ 598 public CodeableConcept getType() { 599 if (this.type == null) 600 if (Configuration.errorOnAutoCreate()) 601 throw new Error("Attempt to auto-create Library.type"); 602 else if (Configuration.doAutoCreate()) 603 this.type = new CodeableConcept(); // cc 604 return this.type; 605 } 606 607 public boolean hasType() { 608 return this.type != null && !this.type.isEmpty(); 609 } 610 611 /** 612 * @param value {@link #type} (Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition.) 613 */ 614 public Library setType(CodeableConcept value) { 615 this.type = value; 616 return this; 617 } 618 619 /** 620 * @return {@link #subject} (A code or group definition that describes the intended subject of the contents of the library.) 621 */ 622 public Type getSubject() { 623 return this.subject; 624 } 625 626 /** 627 * @return {@link #subject} (A code or group definition that describes the intended subject of the contents of the library.) 628 */ 629 public CodeableConcept getSubjectCodeableConcept() throws FHIRException { 630 if (this.subject == null) 631 return null; 632 if (!(this.subject instanceof CodeableConcept)) 633 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.subject.getClass().getName()+" was encountered"); 634 return (CodeableConcept) this.subject; 635 } 636 637 public boolean hasSubjectCodeableConcept() { 638 return this != null && this.subject instanceof CodeableConcept; 639 } 640 641 /** 642 * @return {@link #subject} (A code or group definition that describes the intended subject of the contents of the library.) 643 */ 644 public Reference getSubjectReference() throws FHIRException { 645 if (this.subject == null) 646 return null; 647 if (!(this.subject instanceof Reference)) 648 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.subject.getClass().getName()+" was encountered"); 649 return (Reference) this.subject; 650 } 651 652 public boolean hasSubjectReference() { 653 return this != null && this.subject instanceof Reference; 654 } 655 656 public boolean hasSubject() { 657 return this.subject != null && !this.subject.isEmpty(); 658 } 659 660 /** 661 * @param value {@link #subject} (A code or group definition that describes the intended subject of the contents of the library.) 662 */ 663 public Library setSubject(Type value) { 664 if (value != null && !(value instanceof CodeableConcept || value instanceof Reference)) 665 throw new Error("Not the right type for Library.subject[x]: "+value.fhirType()); 666 this.subject = value; 667 return this; 668 } 669 670 /** 671 * @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 672 */ 673 public DateTimeType getDateElement() { 674 if (this.date == null) 675 if (Configuration.errorOnAutoCreate()) 676 throw new Error("Attempt to auto-create Library.date"); 677 else if (Configuration.doAutoCreate()) 678 this.date = new DateTimeType(); // bb 679 return this.date; 680 } 681 682 public boolean hasDateElement() { 683 return this.date != null && !this.date.isEmpty(); 684 } 685 686 public boolean hasDate() { 687 return this.date != null && !this.date.isEmpty(); 688 } 689 690 /** 691 * @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 692 */ 693 public Library setDateElement(DateTimeType value) { 694 this.date = value; 695 return this; 696 } 697 698 /** 699 * @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. 700 */ 701 public Date getDate() { 702 return this.date == null ? null : this.date.getValue(); 703 } 704 705 /** 706 * @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. 707 */ 708 public Library setDate(Date value) { 709 if (value == null) 710 this.date = null; 711 else { 712 if (this.date == null) 713 this.date = new DateTimeType(); 714 this.date.setValue(value); 715 } 716 return this; 717 } 718 719 /** 720 * @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 721 */ 722 public StringType getPublisherElement() { 723 if (this.publisher == null) 724 if (Configuration.errorOnAutoCreate()) 725 throw new Error("Attempt to auto-create Library.publisher"); 726 else if (Configuration.doAutoCreate()) 727 this.publisher = new StringType(); // bb 728 return this.publisher; 729 } 730 731 public boolean hasPublisherElement() { 732 return this.publisher != null && !this.publisher.isEmpty(); 733 } 734 735 public boolean hasPublisher() { 736 return this.publisher != null && !this.publisher.isEmpty(); 737 } 738 739 /** 740 * @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 741 */ 742 public Library setPublisherElement(StringType value) { 743 this.publisher = value; 744 return this; 745 } 746 747 /** 748 * @return The name of the organization or individual that published the library. 749 */ 750 public String getPublisher() { 751 return this.publisher == null ? null : this.publisher.getValue(); 752 } 753 754 /** 755 * @param value The name of the organization or individual that published the library. 756 */ 757 public Library setPublisher(String value) { 758 if (Utilities.noString(value)) 759 this.publisher = null; 760 else { 761 if (this.publisher == null) 762 this.publisher = new StringType(); 763 this.publisher.setValue(value); 764 } 765 return this; 766 } 767 768 /** 769 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 770 */ 771 public List<ContactDetail> getContact() { 772 if (this.contact == null) 773 this.contact = new ArrayList<ContactDetail>(); 774 return this.contact; 775 } 776 777 /** 778 * @return Returns a reference to <code>this</code> for easy method chaining 779 */ 780 public Library setContact(List<ContactDetail> theContact) { 781 this.contact = theContact; 782 return this; 783 } 784 785 public boolean hasContact() { 786 if (this.contact == null) 787 return false; 788 for (ContactDetail item : this.contact) 789 if (!item.isEmpty()) 790 return true; 791 return false; 792 } 793 794 public ContactDetail addContact() { //3 795 ContactDetail t = new ContactDetail(); 796 if (this.contact == null) 797 this.contact = new ArrayList<ContactDetail>(); 798 this.contact.add(t); 799 return t; 800 } 801 802 public Library addContact(ContactDetail t) { //3 803 if (t == null) 804 return this; 805 if (this.contact == null) 806 this.contact = new ArrayList<ContactDetail>(); 807 this.contact.add(t); 808 return this; 809 } 810 811 /** 812 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 813 */ 814 public ContactDetail getContactFirstRep() { 815 if (getContact().isEmpty()) { 816 addContact(); 817 } 818 return getContact().get(0); 819 } 820 821 /** 822 * @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 823 */ 824 public MarkdownType getDescriptionElement() { 825 if (this.description == null) 826 if (Configuration.errorOnAutoCreate()) 827 throw new Error("Attempt to auto-create Library.description"); 828 else if (Configuration.doAutoCreate()) 829 this.description = new MarkdownType(); // bb 830 return this.description; 831 } 832 833 public boolean hasDescriptionElement() { 834 return this.description != null && !this.description.isEmpty(); 835 } 836 837 public boolean hasDescription() { 838 return this.description != null && !this.description.isEmpty(); 839 } 840 841 /** 842 * @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 843 */ 844 public Library setDescriptionElement(MarkdownType value) { 845 this.description = value; 846 return this; 847 } 848 849 /** 850 * @return A free text natural language description of the library from a consumer's perspective. 851 */ 852 public String getDescription() { 853 return this.description == null ? null : this.description.getValue(); 854 } 855 856 /** 857 * @param value A free text natural language description of the library from a consumer's perspective. 858 */ 859 public Library setDescription(String value) { 860 if (value == null) 861 this.description = null; 862 else { 863 if (this.description == null) 864 this.description = new MarkdownType(); 865 this.description.setValue(value); 866 } 867 return this; 868 } 869 870 /** 871 * @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.) 872 */ 873 public List<UsageContext> getUseContext() { 874 if (this.useContext == null) 875 this.useContext = new ArrayList<UsageContext>(); 876 return this.useContext; 877 } 878 879 /** 880 * @return Returns a reference to <code>this</code> for easy method chaining 881 */ 882 public Library setUseContext(List<UsageContext> theUseContext) { 883 this.useContext = theUseContext; 884 return this; 885 } 886 887 public boolean hasUseContext() { 888 if (this.useContext == null) 889 return false; 890 for (UsageContext item : this.useContext) 891 if (!item.isEmpty()) 892 return true; 893 return false; 894 } 895 896 public UsageContext addUseContext() { //3 897 UsageContext t = new UsageContext(); 898 if (this.useContext == null) 899 this.useContext = new ArrayList<UsageContext>(); 900 this.useContext.add(t); 901 return t; 902 } 903 904 public Library addUseContext(UsageContext t) { //3 905 if (t == null) 906 return this; 907 if (this.useContext == null) 908 this.useContext = new ArrayList<UsageContext>(); 909 this.useContext.add(t); 910 return this; 911 } 912 913 /** 914 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 915 */ 916 public UsageContext getUseContextFirstRep() { 917 if (getUseContext().isEmpty()) { 918 addUseContext(); 919 } 920 return getUseContext().get(0); 921 } 922 923 /** 924 * @return {@link #jurisdiction} (A legal or geographic region in which the library is intended to be used.) 925 */ 926 public List<CodeableConcept> getJurisdiction() { 927 if (this.jurisdiction == null) 928 this.jurisdiction = new ArrayList<CodeableConcept>(); 929 return this.jurisdiction; 930 } 931 932 /** 933 * @return Returns a reference to <code>this</code> for easy method chaining 934 */ 935 public Library setJurisdiction(List<CodeableConcept> theJurisdiction) { 936 this.jurisdiction = theJurisdiction; 937 return this; 938 } 939 940 public boolean hasJurisdiction() { 941 if (this.jurisdiction == null) 942 return false; 943 for (CodeableConcept item : this.jurisdiction) 944 if (!item.isEmpty()) 945 return true; 946 return false; 947 } 948 949 public CodeableConcept addJurisdiction() { //3 950 CodeableConcept t = new CodeableConcept(); 951 if (this.jurisdiction == null) 952 this.jurisdiction = new ArrayList<CodeableConcept>(); 953 this.jurisdiction.add(t); 954 return t; 955 } 956 957 public Library addJurisdiction(CodeableConcept t) { //3 958 if (t == null) 959 return this; 960 if (this.jurisdiction == null) 961 this.jurisdiction = new ArrayList<CodeableConcept>(); 962 this.jurisdiction.add(t); 963 return this; 964 } 965 966 /** 967 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 968 */ 969 public CodeableConcept getJurisdictionFirstRep() { 970 if (getJurisdiction().isEmpty()) { 971 addJurisdiction(); 972 } 973 return getJurisdiction().get(0); 974 } 975 976 /** 977 * @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 978 */ 979 public MarkdownType getPurposeElement() { 980 if (this.purpose == null) 981 if (Configuration.errorOnAutoCreate()) 982 throw new Error("Attempt to auto-create Library.purpose"); 983 else if (Configuration.doAutoCreate()) 984 this.purpose = new MarkdownType(); // bb 985 return this.purpose; 986 } 987 988 public boolean hasPurposeElement() { 989 return this.purpose != null && !this.purpose.isEmpty(); 990 } 991 992 public boolean hasPurpose() { 993 return this.purpose != null && !this.purpose.isEmpty(); 994 } 995 996 /** 997 * @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 998 */ 999 public Library setPurposeElement(MarkdownType value) { 1000 this.purpose = value; 1001 return this; 1002 } 1003 1004 /** 1005 * @return Explanation of why this library is needed and why it has been designed as it has. 1006 */ 1007 public String getPurpose() { 1008 return this.purpose == null ? null : this.purpose.getValue(); 1009 } 1010 1011 /** 1012 * @param value Explanation of why this library is needed and why it has been designed as it has. 1013 */ 1014 public Library setPurpose(String value) { 1015 if (value == null) 1016 this.purpose = null; 1017 else { 1018 if (this.purpose == null) 1019 this.purpose = new MarkdownType(); 1020 this.purpose.setValue(value); 1021 } 1022 return this; 1023 } 1024 1025 /** 1026 * @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 1027 */ 1028 public StringType getUsageElement() { 1029 if (this.usage == null) 1030 if (Configuration.errorOnAutoCreate()) 1031 throw new Error("Attempt to auto-create Library.usage"); 1032 else if (Configuration.doAutoCreate()) 1033 this.usage = new StringType(); // bb 1034 return this.usage; 1035 } 1036 1037 public boolean hasUsageElement() { 1038 return this.usage != null && !this.usage.isEmpty(); 1039 } 1040 1041 public boolean hasUsage() { 1042 return this.usage != null && !this.usage.isEmpty(); 1043 } 1044 1045 /** 1046 * @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 1047 */ 1048 public Library setUsageElement(StringType value) { 1049 this.usage = value; 1050 return this; 1051 } 1052 1053 /** 1054 * @return A detailed description of how the library is used from a clinical perspective. 1055 */ 1056 public String getUsage() { 1057 return this.usage == null ? null : this.usage.getValue(); 1058 } 1059 1060 /** 1061 * @param value A detailed description of how the library is used from a clinical perspective. 1062 */ 1063 public Library setUsage(String value) { 1064 if (Utilities.noString(value)) 1065 this.usage = null; 1066 else { 1067 if (this.usage == null) 1068 this.usage = new StringType(); 1069 this.usage.setValue(value); 1070 } 1071 return this; 1072 } 1073 1074 /** 1075 * @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 1076 */ 1077 public MarkdownType getCopyrightElement() { 1078 if (this.copyright == null) 1079 if (Configuration.errorOnAutoCreate()) 1080 throw new Error("Attempt to auto-create Library.copyright"); 1081 else if (Configuration.doAutoCreate()) 1082 this.copyright = new MarkdownType(); // bb 1083 return this.copyright; 1084 } 1085 1086 public boolean hasCopyrightElement() { 1087 return this.copyright != null && !this.copyright.isEmpty(); 1088 } 1089 1090 public boolean hasCopyright() { 1091 return this.copyright != null && !this.copyright.isEmpty(); 1092 } 1093 1094 /** 1095 * @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 1096 */ 1097 public Library setCopyrightElement(MarkdownType value) { 1098 this.copyright = value; 1099 return this; 1100 } 1101 1102 /** 1103 * @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. 1104 */ 1105 public String getCopyright() { 1106 return this.copyright == null ? null : this.copyright.getValue(); 1107 } 1108 1109 /** 1110 * @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. 1111 */ 1112 public Library setCopyright(String value) { 1113 if (value == null) 1114 this.copyright = null; 1115 else { 1116 if (this.copyright == null) 1117 this.copyright = new MarkdownType(); 1118 this.copyright.setValue(value); 1119 } 1120 return this; 1121 } 1122 1123 /** 1124 * @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 1125 */ 1126 public DateType getApprovalDateElement() { 1127 if (this.approvalDate == null) 1128 if (Configuration.errorOnAutoCreate()) 1129 throw new Error("Attempt to auto-create Library.approvalDate"); 1130 else if (Configuration.doAutoCreate()) 1131 this.approvalDate = new DateType(); // bb 1132 return this.approvalDate; 1133 } 1134 1135 public boolean hasApprovalDateElement() { 1136 return this.approvalDate != null && !this.approvalDate.isEmpty(); 1137 } 1138 1139 public boolean hasApprovalDate() { 1140 return this.approvalDate != null && !this.approvalDate.isEmpty(); 1141 } 1142 1143 /** 1144 * @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 1145 */ 1146 public Library setApprovalDateElement(DateType value) { 1147 this.approvalDate = value; 1148 return this; 1149 } 1150 1151 /** 1152 * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage. 1153 */ 1154 public Date getApprovalDate() { 1155 return this.approvalDate == null ? null : this.approvalDate.getValue(); 1156 } 1157 1158 /** 1159 * @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. 1160 */ 1161 public Library setApprovalDate(Date value) { 1162 if (value == null) 1163 this.approvalDate = null; 1164 else { 1165 if (this.approvalDate == null) 1166 this.approvalDate = new DateType(); 1167 this.approvalDate.setValue(value); 1168 } 1169 return this; 1170 } 1171 1172 /** 1173 * @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 1174 */ 1175 public DateType getLastReviewDateElement() { 1176 if (this.lastReviewDate == null) 1177 if (Configuration.errorOnAutoCreate()) 1178 throw new Error("Attempt to auto-create Library.lastReviewDate"); 1179 else if (Configuration.doAutoCreate()) 1180 this.lastReviewDate = new DateType(); // bb 1181 return this.lastReviewDate; 1182 } 1183 1184 public boolean hasLastReviewDateElement() { 1185 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 1186 } 1187 1188 public boolean hasLastReviewDate() { 1189 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 1190 } 1191 1192 /** 1193 * @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 1194 */ 1195 public Library setLastReviewDateElement(DateType value) { 1196 this.lastReviewDate = value; 1197 return this; 1198 } 1199 1200 /** 1201 * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date. 1202 */ 1203 public Date getLastReviewDate() { 1204 return this.lastReviewDate == null ? null : this.lastReviewDate.getValue(); 1205 } 1206 1207 /** 1208 * @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. 1209 */ 1210 public Library setLastReviewDate(Date value) { 1211 if (value == null) 1212 this.lastReviewDate = null; 1213 else { 1214 if (this.lastReviewDate == null) 1215 this.lastReviewDate = new DateType(); 1216 this.lastReviewDate.setValue(value); 1217 } 1218 return this; 1219 } 1220 1221 /** 1222 * @return {@link #effectivePeriod} (The period during which the library content was or is planned to be in active use.) 1223 */ 1224 public Period getEffectivePeriod() { 1225 if (this.effectivePeriod == null) 1226 if (Configuration.errorOnAutoCreate()) 1227 throw new Error("Attempt to auto-create Library.effectivePeriod"); 1228 else if (Configuration.doAutoCreate()) 1229 this.effectivePeriod = new Period(); // cc 1230 return this.effectivePeriod; 1231 } 1232 1233 public boolean hasEffectivePeriod() { 1234 return this.effectivePeriod != null && !this.effectivePeriod.isEmpty(); 1235 } 1236 1237 /** 1238 * @param value {@link #effectivePeriod} (The period during which the library content was or is planned to be in active use.) 1239 */ 1240 public Library setEffectivePeriod(Period value) { 1241 this.effectivePeriod = value; 1242 return this; 1243 } 1244 1245 /** 1246 * @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.) 1247 */ 1248 public List<CodeableConcept> getTopic() { 1249 if (this.topic == null) 1250 this.topic = new ArrayList<CodeableConcept>(); 1251 return this.topic; 1252 } 1253 1254 /** 1255 * @return Returns a reference to <code>this</code> for easy method chaining 1256 */ 1257 public Library setTopic(List<CodeableConcept> theTopic) { 1258 this.topic = theTopic; 1259 return this; 1260 } 1261 1262 public boolean hasTopic() { 1263 if (this.topic == null) 1264 return false; 1265 for (CodeableConcept item : this.topic) 1266 if (!item.isEmpty()) 1267 return true; 1268 return false; 1269 } 1270 1271 public CodeableConcept addTopic() { //3 1272 CodeableConcept t = new CodeableConcept(); 1273 if (this.topic == null) 1274 this.topic = new ArrayList<CodeableConcept>(); 1275 this.topic.add(t); 1276 return t; 1277 } 1278 1279 public Library addTopic(CodeableConcept t) { //3 1280 if (t == null) 1281 return this; 1282 if (this.topic == null) 1283 this.topic = new ArrayList<CodeableConcept>(); 1284 this.topic.add(t); 1285 return this; 1286 } 1287 1288 /** 1289 * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist 1290 */ 1291 public CodeableConcept getTopicFirstRep() { 1292 if (getTopic().isEmpty()) { 1293 addTopic(); 1294 } 1295 return getTopic().get(0); 1296 } 1297 1298 /** 1299 * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the content.) 1300 */ 1301 public List<ContactDetail> getAuthor() { 1302 if (this.author == null) 1303 this.author = new ArrayList<ContactDetail>(); 1304 return this.author; 1305 } 1306 1307 /** 1308 * @return Returns a reference to <code>this</code> for easy method chaining 1309 */ 1310 public Library setAuthor(List<ContactDetail> theAuthor) { 1311 this.author = theAuthor; 1312 return this; 1313 } 1314 1315 public boolean hasAuthor() { 1316 if (this.author == null) 1317 return false; 1318 for (ContactDetail item : this.author) 1319 if (!item.isEmpty()) 1320 return true; 1321 return false; 1322 } 1323 1324 public ContactDetail addAuthor() { //3 1325 ContactDetail t = new ContactDetail(); 1326 if (this.author == null) 1327 this.author = new ArrayList<ContactDetail>(); 1328 this.author.add(t); 1329 return t; 1330 } 1331 1332 public Library addAuthor(ContactDetail t) { //3 1333 if (t == null) 1334 return this; 1335 if (this.author == null) 1336 this.author = new ArrayList<ContactDetail>(); 1337 this.author.add(t); 1338 return this; 1339 } 1340 1341 /** 1342 * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist 1343 */ 1344 public ContactDetail getAuthorFirstRep() { 1345 if (getAuthor().isEmpty()) { 1346 addAuthor(); 1347 } 1348 return getAuthor().get(0); 1349 } 1350 1351 /** 1352 * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the content.) 1353 */ 1354 public List<ContactDetail> getEditor() { 1355 if (this.editor == null) 1356 this.editor = new ArrayList<ContactDetail>(); 1357 return this.editor; 1358 } 1359 1360 /** 1361 * @return Returns a reference to <code>this</code> for easy method chaining 1362 */ 1363 public Library setEditor(List<ContactDetail> theEditor) { 1364 this.editor = theEditor; 1365 return this; 1366 } 1367 1368 public boolean hasEditor() { 1369 if (this.editor == null) 1370 return false; 1371 for (ContactDetail item : this.editor) 1372 if (!item.isEmpty()) 1373 return true; 1374 return false; 1375 } 1376 1377 public ContactDetail addEditor() { //3 1378 ContactDetail t = new ContactDetail(); 1379 if (this.editor == null) 1380 this.editor = new ArrayList<ContactDetail>(); 1381 this.editor.add(t); 1382 return t; 1383 } 1384 1385 public Library addEditor(ContactDetail t) { //3 1386 if (t == null) 1387 return this; 1388 if (this.editor == null) 1389 this.editor = new ArrayList<ContactDetail>(); 1390 this.editor.add(t); 1391 return this; 1392 } 1393 1394 /** 1395 * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist 1396 */ 1397 public ContactDetail getEditorFirstRep() { 1398 if (getEditor().isEmpty()) { 1399 addEditor(); 1400 } 1401 return getEditor().get(0); 1402 } 1403 1404 /** 1405 * @return {@link #reviewer} (An individual or organization primarily responsible for review of some aspect of the content.) 1406 */ 1407 public List<ContactDetail> getReviewer() { 1408 if (this.reviewer == null) 1409 this.reviewer = new ArrayList<ContactDetail>(); 1410 return this.reviewer; 1411 } 1412 1413 /** 1414 * @return Returns a reference to <code>this</code> for easy method chaining 1415 */ 1416 public Library setReviewer(List<ContactDetail> theReviewer) { 1417 this.reviewer = theReviewer; 1418 return this; 1419 } 1420 1421 public boolean hasReviewer() { 1422 if (this.reviewer == null) 1423 return false; 1424 for (ContactDetail item : this.reviewer) 1425 if (!item.isEmpty()) 1426 return true; 1427 return false; 1428 } 1429 1430 public ContactDetail addReviewer() { //3 1431 ContactDetail t = new ContactDetail(); 1432 if (this.reviewer == null) 1433 this.reviewer = new ArrayList<ContactDetail>(); 1434 this.reviewer.add(t); 1435 return t; 1436 } 1437 1438 public Library addReviewer(ContactDetail t) { //3 1439 if (t == null) 1440 return this; 1441 if (this.reviewer == null) 1442 this.reviewer = new ArrayList<ContactDetail>(); 1443 this.reviewer.add(t); 1444 return this; 1445 } 1446 1447 /** 1448 * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist 1449 */ 1450 public ContactDetail getReviewerFirstRep() { 1451 if (getReviewer().isEmpty()) { 1452 addReviewer(); 1453 } 1454 return getReviewer().get(0); 1455 } 1456 1457 /** 1458 * @return {@link #endorser} (An individual or organization responsible for officially endorsing the content for use in some setting.) 1459 */ 1460 public List<ContactDetail> getEndorser() { 1461 if (this.endorser == null) 1462 this.endorser = new ArrayList<ContactDetail>(); 1463 return this.endorser; 1464 } 1465 1466 /** 1467 * @return Returns a reference to <code>this</code> for easy method chaining 1468 */ 1469 public Library setEndorser(List<ContactDetail> theEndorser) { 1470 this.endorser = theEndorser; 1471 return this; 1472 } 1473 1474 public boolean hasEndorser() { 1475 if (this.endorser == null) 1476 return false; 1477 for (ContactDetail item : this.endorser) 1478 if (!item.isEmpty()) 1479 return true; 1480 return false; 1481 } 1482 1483 public ContactDetail addEndorser() { //3 1484 ContactDetail t = new ContactDetail(); 1485 if (this.endorser == null) 1486 this.endorser = new ArrayList<ContactDetail>(); 1487 this.endorser.add(t); 1488 return t; 1489 } 1490 1491 public Library addEndorser(ContactDetail t) { //3 1492 if (t == null) 1493 return this; 1494 if (this.endorser == null) 1495 this.endorser = new ArrayList<ContactDetail>(); 1496 this.endorser.add(t); 1497 return this; 1498 } 1499 1500 /** 1501 * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist 1502 */ 1503 public ContactDetail getEndorserFirstRep() { 1504 if (getEndorser().isEmpty()) { 1505 addEndorser(); 1506 } 1507 return getEndorser().get(0); 1508 } 1509 1510 /** 1511 * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, or bibliographic references.) 1512 */ 1513 public List<RelatedArtifact> getRelatedArtifact() { 1514 if (this.relatedArtifact == null) 1515 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1516 return this.relatedArtifact; 1517 } 1518 1519 /** 1520 * @return Returns a reference to <code>this</code> for easy method chaining 1521 */ 1522 public Library setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 1523 this.relatedArtifact = theRelatedArtifact; 1524 return this; 1525 } 1526 1527 public boolean hasRelatedArtifact() { 1528 if (this.relatedArtifact == null) 1529 return false; 1530 for (RelatedArtifact item : this.relatedArtifact) 1531 if (!item.isEmpty()) 1532 return true; 1533 return false; 1534 } 1535 1536 public RelatedArtifact addRelatedArtifact() { //3 1537 RelatedArtifact t = new RelatedArtifact(); 1538 if (this.relatedArtifact == null) 1539 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1540 this.relatedArtifact.add(t); 1541 return t; 1542 } 1543 1544 public Library addRelatedArtifact(RelatedArtifact t) { //3 1545 if (t == null) 1546 return this; 1547 if (this.relatedArtifact == null) 1548 this.relatedArtifact = new ArrayList<RelatedArtifact>(); 1549 this.relatedArtifact.add(t); 1550 return this; 1551 } 1552 1553 /** 1554 * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist 1555 */ 1556 public RelatedArtifact getRelatedArtifactFirstRep() { 1557 if (getRelatedArtifact().isEmpty()) { 1558 addRelatedArtifact(); 1559 } 1560 return getRelatedArtifact().get(0); 1561 } 1562 1563 /** 1564 * @return {@link #parameter} (The parameter element defines parameters used by the library.) 1565 */ 1566 public List<ParameterDefinition> getParameter() { 1567 if (this.parameter == null) 1568 this.parameter = new ArrayList<ParameterDefinition>(); 1569 return this.parameter; 1570 } 1571 1572 /** 1573 * @return Returns a reference to <code>this</code> for easy method chaining 1574 */ 1575 public Library setParameter(List<ParameterDefinition> theParameter) { 1576 this.parameter = theParameter; 1577 return this; 1578 } 1579 1580 public boolean hasParameter() { 1581 if (this.parameter == null) 1582 return false; 1583 for (ParameterDefinition item : this.parameter) 1584 if (!item.isEmpty()) 1585 return true; 1586 return false; 1587 } 1588 1589 public ParameterDefinition addParameter() { //3 1590 ParameterDefinition t = new ParameterDefinition(); 1591 if (this.parameter == null) 1592 this.parameter = new ArrayList<ParameterDefinition>(); 1593 this.parameter.add(t); 1594 return t; 1595 } 1596 1597 public Library addParameter(ParameterDefinition t) { //3 1598 if (t == null) 1599 return this; 1600 if (this.parameter == null) 1601 this.parameter = new ArrayList<ParameterDefinition>(); 1602 this.parameter.add(t); 1603 return this; 1604 } 1605 1606 /** 1607 * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist 1608 */ 1609 public ParameterDefinition getParameterFirstRep() { 1610 if (getParameter().isEmpty()) { 1611 addParameter(); 1612 } 1613 return getParameter().get(0); 1614 } 1615 1616 /** 1617 * @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.) 1618 */ 1619 public List<DataRequirement> getDataRequirement() { 1620 if (this.dataRequirement == null) 1621 this.dataRequirement = new ArrayList<DataRequirement>(); 1622 return this.dataRequirement; 1623 } 1624 1625 /** 1626 * @return Returns a reference to <code>this</code> for easy method chaining 1627 */ 1628 public Library setDataRequirement(List<DataRequirement> theDataRequirement) { 1629 this.dataRequirement = theDataRequirement; 1630 return this; 1631 } 1632 1633 public boolean hasDataRequirement() { 1634 if (this.dataRequirement == null) 1635 return false; 1636 for (DataRequirement item : this.dataRequirement) 1637 if (!item.isEmpty()) 1638 return true; 1639 return false; 1640 } 1641 1642 public DataRequirement addDataRequirement() { //3 1643 DataRequirement t = new DataRequirement(); 1644 if (this.dataRequirement == null) 1645 this.dataRequirement = new ArrayList<DataRequirement>(); 1646 this.dataRequirement.add(t); 1647 return t; 1648 } 1649 1650 public Library addDataRequirement(DataRequirement t) { //3 1651 if (t == null) 1652 return this; 1653 if (this.dataRequirement == null) 1654 this.dataRequirement = new ArrayList<DataRequirement>(); 1655 this.dataRequirement.add(t); 1656 return this; 1657 } 1658 1659 /** 1660 * @return The first repetition of repeating field {@link #dataRequirement}, creating it if it does not already exist 1661 */ 1662 public DataRequirement getDataRequirementFirstRep() { 1663 if (getDataRequirement().isEmpty()) { 1664 addDataRequirement(); 1665 } 1666 return getDataRequirement().get(0); 1667 } 1668 1669 /** 1670 * @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.) 1671 */ 1672 public List<Attachment> getContent() { 1673 if (this.content == null) 1674 this.content = new ArrayList<Attachment>(); 1675 return this.content; 1676 } 1677 1678 /** 1679 * @return Returns a reference to <code>this</code> for easy method chaining 1680 */ 1681 public Library setContent(List<Attachment> theContent) { 1682 this.content = theContent; 1683 return this; 1684 } 1685 1686 public boolean hasContent() { 1687 if (this.content == null) 1688 return false; 1689 for (Attachment item : this.content) 1690 if (!item.isEmpty()) 1691 return true; 1692 return false; 1693 } 1694 1695 public Attachment addContent() { //3 1696 Attachment t = new Attachment(); 1697 if (this.content == null) 1698 this.content = new ArrayList<Attachment>(); 1699 this.content.add(t); 1700 return t; 1701 } 1702 1703 public Library addContent(Attachment t) { //3 1704 if (t == null) 1705 return this; 1706 if (this.content == null) 1707 this.content = new ArrayList<Attachment>(); 1708 this.content.add(t); 1709 return this; 1710 } 1711 1712 /** 1713 * @return The first repetition of repeating field {@link #content}, creating it if it does not already exist 1714 */ 1715 public Attachment getContentFirstRep() { 1716 if (getContent().isEmpty()) { 1717 addContent(); 1718 } 1719 return getContent().get(0); 1720 } 1721 1722 protected void listChildren(List<Property> children) { 1723 super.listChildren(children); 1724 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 at which an authoritative instance of this library is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the library is stored on different servers.", 0, 1, url)); 1725 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)); 1726 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)); 1727 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)); 1728 children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the library.", 0, 1, title)); 1729 children.add(new Property("subtitle", "string", "An explanatory or alternate title for the library giving additional information about its content.", 0, 1, subtitle)); 1730 children.add(new Property("status", "code", "The status of this library. Enables tracking the life-cycle of the content.", 0, 1, status)); 1731 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)); 1732 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)); 1733 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)); 1734 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)); 1735 children.add(new Property("publisher", "string", "The name of the organization or individual that published the library.", 0, 1, publisher)); 1736 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)); 1737 children.add(new Property("description", "markdown", "A free text natural language description of the library from a consumer's perspective.", 0, 1, description)); 1738 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)); 1739 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)); 1740 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)); 1741 children.add(new Property("usage", "string", "A detailed description of how the library is used from a clinical perspective.", 0, 1, usage)); 1742 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)); 1743 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)); 1744 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)); 1745 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)); 1746 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)); 1747 children.add(new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author)); 1748 children.add(new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor)); 1749 children.add(new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer)); 1750 children.add(new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser)); 1751 children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact)); 1752 children.add(new Property("parameter", "ParameterDefinition", "The parameter element defines parameters used by the library.", 0, java.lang.Integer.MAX_VALUE, parameter)); 1753 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)); 1754 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)); 1755 } 1756 1757 @Override 1758 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1759 switch (_hash) { 1760 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 at which an authoritative instance of this library is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the library is stored on different servers.", 0, 1, url); 1761 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); 1762 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); 1763 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); 1764 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive, user-friendly title for the library.", 0, 1, title); 1765 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); 1766 case -892481550: /*status*/ return new Property("status", "code", "The status of this library. Enables tracking the life-cycle of the content.", 0, 1, status); 1767 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); 1768 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); 1769 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); 1770 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); 1771 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); 1772 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); 1773 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); 1774 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the library.", 0, 1, publisher); 1775 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); 1776 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); 1777 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); 1778 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); 1779 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); 1780 case 111574433: /*usage*/ return new Property("usage", "string", "A detailed description of how the library is used from a clinical perspective.", 0, 1, usage); 1781 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); 1782 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); 1783 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); 1784 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); 1785 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); 1786 case -1406328437: /*author*/ return new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author); 1787 case -1307827859: /*editor*/ return new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor); 1788 case -261190139: /*reviewer*/ return new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer); 1789 case 1740277666: /*endorser*/ return new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser); 1790 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); 1791 case 1954460585: /*parameter*/ return new Property("parameter", "ParameterDefinition", "The parameter element defines parameters used by the library.", 0, java.lang.Integer.MAX_VALUE, parameter); 1792 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); 1793 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); 1794 default: return super.getNamedProperty(_hash, _name, _checkValid); 1795 } 1796 1797 } 1798 1799 @Override 1800 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1801 switch (hash) { 1802 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 1803 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1804 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 1805 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 1806 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 1807 case -2060497896: /*subtitle*/ return this.subtitle == null ? new Base[0] : new Base[] {this.subtitle}; // StringType 1808 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 1809 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 1810 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 1811 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Type 1812 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 1813 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 1814 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 1815 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 1816 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 1817 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 1818 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 1819 case 111574433: /*usage*/ return this.usage == null ? new Base[0] : new Base[] {this.usage}; // StringType 1820 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 1821 case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType 1822 case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType 1823 case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period 1824 case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept 1825 case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail 1826 case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail 1827 case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail 1828 case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail 1829 case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact 1830 case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // ParameterDefinition 1831 case 629147193: /*dataRequirement*/ return this.dataRequirement == null ? new Base[0] : this.dataRequirement.toArray(new Base[this.dataRequirement.size()]); // DataRequirement 1832 case 951530617: /*content*/ return this.content == null ? new Base[0] : this.content.toArray(new Base[this.content.size()]); // Attachment 1833 default: return super.getProperty(hash, name, checkValid); 1834 } 1835 1836 } 1837 1838 @Override 1839 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1840 switch (hash) { 1841 case 116079: // url 1842 this.url = castToUri(value); // UriType 1843 return value; 1844 case -1618432855: // identifier 1845 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1846 return value; 1847 case 351608024: // version 1848 this.version = castToString(value); // StringType 1849 return value; 1850 case 3373707: // name 1851 this.name = castToString(value); // StringType 1852 return value; 1853 case 110371416: // title 1854 this.title = castToString(value); // StringType 1855 return value; 1856 case -2060497896: // subtitle 1857 this.subtitle = castToString(value); // StringType 1858 return value; 1859 case -892481550: // status 1860 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 1861 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 1862 return value; 1863 case -404562712: // experimental 1864 this.experimental = castToBoolean(value); // BooleanType 1865 return value; 1866 case 3575610: // type 1867 this.type = castToCodeableConcept(value); // CodeableConcept 1868 return value; 1869 case -1867885268: // subject 1870 this.subject = castToType(value); // Type 1871 return value; 1872 case 3076014: // date 1873 this.date = castToDateTime(value); // DateTimeType 1874 return value; 1875 case 1447404028: // publisher 1876 this.publisher = castToString(value); // StringType 1877 return value; 1878 case 951526432: // contact 1879 this.getContact().add(castToContactDetail(value)); // ContactDetail 1880 return value; 1881 case -1724546052: // description 1882 this.description = castToMarkdown(value); // MarkdownType 1883 return value; 1884 case -669707736: // useContext 1885 this.getUseContext().add(castToUsageContext(value)); // UsageContext 1886 return value; 1887 case -507075711: // jurisdiction 1888 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 1889 return value; 1890 case -220463842: // purpose 1891 this.purpose = castToMarkdown(value); // MarkdownType 1892 return value; 1893 case 111574433: // usage 1894 this.usage = castToString(value); // StringType 1895 return value; 1896 case 1522889671: // copyright 1897 this.copyright = castToMarkdown(value); // MarkdownType 1898 return value; 1899 case 223539345: // approvalDate 1900 this.approvalDate = castToDate(value); // DateType 1901 return value; 1902 case -1687512484: // lastReviewDate 1903 this.lastReviewDate = castToDate(value); // DateType 1904 return value; 1905 case -403934648: // effectivePeriod 1906 this.effectivePeriod = castToPeriod(value); // Period 1907 return value; 1908 case 110546223: // topic 1909 this.getTopic().add(castToCodeableConcept(value)); // CodeableConcept 1910 return value; 1911 case -1406328437: // author 1912 this.getAuthor().add(castToContactDetail(value)); // ContactDetail 1913 return value; 1914 case -1307827859: // editor 1915 this.getEditor().add(castToContactDetail(value)); // ContactDetail 1916 return value; 1917 case -261190139: // reviewer 1918 this.getReviewer().add(castToContactDetail(value)); // ContactDetail 1919 return value; 1920 case 1740277666: // endorser 1921 this.getEndorser().add(castToContactDetail(value)); // ContactDetail 1922 return value; 1923 case 666807069: // relatedArtifact 1924 this.getRelatedArtifact().add(castToRelatedArtifact(value)); // RelatedArtifact 1925 return value; 1926 case 1954460585: // parameter 1927 this.getParameter().add(castToParameterDefinition(value)); // ParameterDefinition 1928 return value; 1929 case 629147193: // dataRequirement 1930 this.getDataRequirement().add(castToDataRequirement(value)); // DataRequirement 1931 return value; 1932 case 951530617: // content 1933 this.getContent().add(castToAttachment(value)); // Attachment 1934 return value; 1935 default: return super.setProperty(hash, name, value); 1936 } 1937 1938 } 1939 1940 @Override 1941 public Base setProperty(String name, Base value) throws FHIRException { 1942 if (name.equals("url")) { 1943 this.url = castToUri(value); // UriType 1944 } else if (name.equals("identifier")) { 1945 this.getIdentifier().add(castToIdentifier(value)); 1946 } else if (name.equals("version")) { 1947 this.version = castToString(value); // StringType 1948 } else if (name.equals("name")) { 1949 this.name = castToString(value); // StringType 1950 } else if (name.equals("title")) { 1951 this.title = castToString(value); // StringType 1952 } else if (name.equals("subtitle")) { 1953 this.subtitle = castToString(value); // StringType 1954 } else if (name.equals("status")) { 1955 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 1956 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 1957 } else if (name.equals("experimental")) { 1958 this.experimental = castToBoolean(value); // BooleanType 1959 } else if (name.equals("type")) { 1960 this.type = castToCodeableConcept(value); // CodeableConcept 1961 } else if (name.equals("subject[x]")) { 1962 this.subject = castToType(value); // Type 1963 } else if (name.equals("date")) { 1964 this.date = castToDateTime(value); // DateTimeType 1965 } else if (name.equals("publisher")) { 1966 this.publisher = castToString(value); // StringType 1967 } else if (name.equals("contact")) { 1968 this.getContact().add(castToContactDetail(value)); 1969 } else if (name.equals("description")) { 1970 this.description = castToMarkdown(value); // MarkdownType 1971 } else if (name.equals("useContext")) { 1972 this.getUseContext().add(castToUsageContext(value)); 1973 } else if (name.equals("jurisdiction")) { 1974 this.getJurisdiction().add(castToCodeableConcept(value)); 1975 } else if (name.equals("purpose")) { 1976 this.purpose = castToMarkdown(value); // MarkdownType 1977 } else if (name.equals("usage")) { 1978 this.usage = castToString(value); // StringType 1979 } else if (name.equals("copyright")) { 1980 this.copyright = castToMarkdown(value); // MarkdownType 1981 } else if (name.equals("approvalDate")) { 1982 this.approvalDate = castToDate(value); // DateType 1983 } else if (name.equals("lastReviewDate")) { 1984 this.lastReviewDate = castToDate(value); // DateType 1985 } else if (name.equals("effectivePeriod")) { 1986 this.effectivePeriod = castToPeriod(value); // Period 1987 } else if (name.equals("topic")) { 1988 this.getTopic().add(castToCodeableConcept(value)); 1989 } else if (name.equals("author")) { 1990 this.getAuthor().add(castToContactDetail(value)); 1991 } else if (name.equals("editor")) { 1992 this.getEditor().add(castToContactDetail(value)); 1993 } else if (name.equals("reviewer")) { 1994 this.getReviewer().add(castToContactDetail(value)); 1995 } else if (name.equals("endorser")) { 1996 this.getEndorser().add(castToContactDetail(value)); 1997 } else if (name.equals("relatedArtifact")) { 1998 this.getRelatedArtifact().add(castToRelatedArtifact(value)); 1999 } else if (name.equals("parameter")) { 2000 this.getParameter().add(castToParameterDefinition(value)); 2001 } else if (name.equals("dataRequirement")) { 2002 this.getDataRequirement().add(castToDataRequirement(value)); 2003 } else if (name.equals("content")) { 2004 this.getContent().add(castToAttachment(value)); 2005 } else 2006 return super.setProperty(name, value); 2007 return value; 2008 } 2009 2010 @Override 2011 public Base makeProperty(int hash, String name) throws FHIRException { 2012 switch (hash) { 2013 case 116079: return getUrlElement(); 2014 case -1618432855: return addIdentifier(); 2015 case 351608024: return getVersionElement(); 2016 case 3373707: return getNameElement(); 2017 case 110371416: return getTitleElement(); 2018 case -2060497896: return getSubtitleElement(); 2019 case -892481550: return getStatusElement(); 2020 case -404562712: return getExperimentalElement(); 2021 case 3575610: return getType(); 2022 case -573640748: return getSubject(); 2023 case -1867885268: return getSubject(); 2024 case 3076014: return getDateElement(); 2025 case 1447404028: return getPublisherElement(); 2026 case 951526432: return addContact(); 2027 case -1724546052: return getDescriptionElement(); 2028 case -669707736: return addUseContext(); 2029 case -507075711: return addJurisdiction(); 2030 case -220463842: return getPurposeElement(); 2031 case 111574433: return getUsageElement(); 2032 case 1522889671: return getCopyrightElement(); 2033 case 223539345: return getApprovalDateElement(); 2034 case -1687512484: return getLastReviewDateElement(); 2035 case -403934648: return getEffectivePeriod(); 2036 case 110546223: return addTopic(); 2037 case -1406328437: return addAuthor(); 2038 case -1307827859: return addEditor(); 2039 case -261190139: return addReviewer(); 2040 case 1740277666: return addEndorser(); 2041 case 666807069: return addRelatedArtifact(); 2042 case 1954460585: return addParameter(); 2043 case 629147193: return addDataRequirement(); 2044 case 951530617: return addContent(); 2045 default: return super.makeProperty(hash, name); 2046 } 2047 2048 } 2049 2050 @Override 2051 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2052 switch (hash) { 2053 case 116079: /*url*/ return new String[] {"uri"}; 2054 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2055 case 351608024: /*version*/ return new String[] {"string"}; 2056 case 3373707: /*name*/ return new String[] {"string"}; 2057 case 110371416: /*title*/ return new String[] {"string"}; 2058 case -2060497896: /*subtitle*/ return new String[] {"string"}; 2059 case -892481550: /*status*/ return new String[] {"code"}; 2060 case -404562712: /*experimental*/ return new String[] {"boolean"}; 2061 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 2062 case -1867885268: /*subject*/ return new String[] {"CodeableConcept", "Reference"}; 2063 case 3076014: /*date*/ return new String[] {"dateTime"}; 2064 case 1447404028: /*publisher*/ return new String[] {"string"}; 2065 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 2066 case -1724546052: /*description*/ return new String[] {"markdown"}; 2067 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 2068 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 2069 case -220463842: /*purpose*/ return new String[] {"markdown"}; 2070 case 111574433: /*usage*/ return new String[] {"string"}; 2071 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 2072 case 223539345: /*approvalDate*/ return new String[] {"date"}; 2073 case -1687512484: /*lastReviewDate*/ return new String[] {"date"}; 2074 case -403934648: /*effectivePeriod*/ return new String[] {"Period"}; 2075 case 110546223: /*topic*/ return new String[] {"CodeableConcept"}; 2076 case -1406328437: /*author*/ return new String[] {"ContactDetail"}; 2077 case -1307827859: /*editor*/ return new String[] {"ContactDetail"}; 2078 case -261190139: /*reviewer*/ return new String[] {"ContactDetail"}; 2079 case 1740277666: /*endorser*/ return new String[] {"ContactDetail"}; 2080 case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"}; 2081 case 1954460585: /*parameter*/ return new String[] {"ParameterDefinition"}; 2082 case 629147193: /*dataRequirement*/ return new String[] {"DataRequirement"}; 2083 case 951530617: /*content*/ return new String[] {"Attachment"}; 2084 default: return super.getTypesForProperty(hash, name); 2085 } 2086 2087 } 2088 2089 @Override 2090 public Base addChild(String name) throws FHIRException { 2091 if (name.equals("url")) { 2092 throw new FHIRException("Cannot call addChild on a primitive type Library.url"); 2093 } 2094 else if (name.equals("identifier")) { 2095 return addIdentifier(); 2096 } 2097 else if (name.equals("version")) { 2098 throw new FHIRException("Cannot call addChild on a primitive type Library.version"); 2099 } 2100 else if (name.equals("name")) { 2101 throw new FHIRException("Cannot call addChild on a primitive type Library.name"); 2102 } 2103 else if (name.equals("title")) { 2104 throw new FHIRException("Cannot call addChild on a primitive type Library.title"); 2105 } 2106 else if (name.equals("subtitle")) { 2107 throw new FHIRException("Cannot call addChild on a primitive type Library.subtitle"); 2108 } 2109 else if (name.equals("status")) { 2110 throw new FHIRException("Cannot call addChild on a primitive type Library.status"); 2111 } 2112 else if (name.equals("experimental")) { 2113 throw new FHIRException("Cannot call addChild on a primitive type Library.experimental"); 2114 } 2115 else if (name.equals("type")) { 2116 this.type = new CodeableConcept(); 2117 return this.type; 2118 } 2119 else if (name.equals("subjectCodeableConcept")) { 2120 this.subject = new CodeableConcept(); 2121 return this.subject; 2122 } 2123 else if (name.equals("subjectReference")) { 2124 this.subject = new Reference(); 2125 return this.subject; 2126 } 2127 else if (name.equals("date")) { 2128 throw new FHIRException("Cannot call addChild on a primitive type Library.date"); 2129 } 2130 else if (name.equals("publisher")) { 2131 throw new FHIRException("Cannot call addChild on a primitive type Library.publisher"); 2132 } 2133 else if (name.equals("contact")) { 2134 return addContact(); 2135 } 2136 else if (name.equals("description")) { 2137 throw new FHIRException("Cannot call addChild on a primitive type Library.description"); 2138 } 2139 else if (name.equals("useContext")) { 2140 return addUseContext(); 2141 } 2142 else if (name.equals("jurisdiction")) { 2143 return addJurisdiction(); 2144 } 2145 else if (name.equals("purpose")) { 2146 throw new FHIRException("Cannot call addChild on a primitive type Library.purpose"); 2147 } 2148 else if (name.equals("usage")) { 2149 throw new FHIRException("Cannot call addChild on a primitive type Library.usage"); 2150 } 2151 else if (name.equals("copyright")) { 2152 throw new FHIRException("Cannot call addChild on a primitive type Library.copyright"); 2153 } 2154 else if (name.equals("approvalDate")) { 2155 throw new FHIRException("Cannot call addChild on a primitive type Library.approvalDate"); 2156 } 2157 else if (name.equals("lastReviewDate")) { 2158 throw new FHIRException("Cannot call addChild on a primitive type Library.lastReviewDate"); 2159 } 2160 else if (name.equals("effectivePeriod")) { 2161 this.effectivePeriod = new Period(); 2162 return this.effectivePeriod; 2163 } 2164 else if (name.equals("topic")) { 2165 return addTopic(); 2166 } 2167 else if (name.equals("author")) { 2168 return addAuthor(); 2169 } 2170 else if (name.equals("editor")) { 2171 return addEditor(); 2172 } 2173 else if (name.equals("reviewer")) { 2174 return addReviewer(); 2175 } 2176 else if (name.equals("endorser")) { 2177 return addEndorser(); 2178 } 2179 else if (name.equals("relatedArtifact")) { 2180 return addRelatedArtifact(); 2181 } 2182 else if (name.equals("parameter")) { 2183 return addParameter(); 2184 } 2185 else if (name.equals("dataRequirement")) { 2186 return addDataRequirement(); 2187 } 2188 else if (name.equals("content")) { 2189 return addContent(); 2190 } 2191 else 2192 return super.addChild(name); 2193 } 2194 2195 public String fhirType() { 2196 return "Library"; 2197 2198 } 2199 2200 public Library copy() { 2201 Library dst = new Library(); 2202 copyValues(dst); 2203 dst.url = url == null ? null : url.copy(); 2204 if (identifier != null) { 2205 dst.identifier = new ArrayList<Identifier>(); 2206 for (Identifier i : identifier) 2207 dst.identifier.add(i.copy()); 2208 }; 2209 dst.version = version == null ? null : version.copy(); 2210 dst.name = name == null ? null : name.copy(); 2211 dst.title = title == null ? null : title.copy(); 2212 dst.subtitle = subtitle == null ? null : subtitle.copy(); 2213 dst.status = status == null ? null : status.copy(); 2214 dst.experimental = experimental == null ? null : experimental.copy(); 2215 dst.type = type == null ? null : type.copy(); 2216 dst.subject = subject == null ? null : subject.copy(); 2217 dst.date = date == null ? null : date.copy(); 2218 dst.publisher = publisher == null ? null : publisher.copy(); 2219 if (contact != null) { 2220 dst.contact = new ArrayList<ContactDetail>(); 2221 for (ContactDetail i : contact) 2222 dst.contact.add(i.copy()); 2223 }; 2224 dst.description = description == null ? null : description.copy(); 2225 if (useContext != null) { 2226 dst.useContext = new ArrayList<UsageContext>(); 2227 for (UsageContext i : useContext) 2228 dst.useContext.add(i.copy()); 2229 }; 2230 if (jurisdiction != null) { 2231 dst.jurisdiction = new ArrayList<CodeableConcept>(); 2232 for (CodeableConcept i : jurisdiction) 2233 dst.jurisdiction.add(i.copy()); 2234 }; 2235 dst.purpose = purpose == null ? null : purpose.copy(); 2236 dst.usage = usage == null ? null : usage.copy(); 2237 dst.copyright = copyright == null ? null : copyright.copy(); 2238 dst.approvalDate = approvalDate == null ? null : approvalDate.copy(); 2239 dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy(); 2240 dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy(); 2241 if (topic != null) { 2242 dst.topic = new ArrayList<CodeableConcept>(); 2243 for (CodeableConcept i : topic) 2244 dst.topic.add(i.copy()); 2245 }; 2246 if (author != null) { 2247 dst.author = new ArrayList<ContactDetail>(); 2248 for (ContactDetail i : author) 2249 dst.author.add(i.copy()); 2250 }; 2251 if (editor != null) { 2252 dst.editor = new ArrayList<ContactDetail>(); 2253 for (ContactDetail i : editor) 2254 dst.editor.add(i.copy()); 2255 }; 2256 if (reviewer != null) { 2257 dst.reviewer = new ArrayList<ContactDetail>(); 2258 for (ContactDetail i : reviewer) 2259 dst.reviewer.add(i.copy()); 2260 }; 2261 if (endorser != null) { 2262 dst.endorser = new ArrayList<ContactDetail>(); 2263 for (ContactDetail i : endorser) 2264 dst.endorser.add(i.copy()); 2265 }; 2266 if (relatedArtifact != null) { 2267 dst.relatedArtifact = new ArrayList<RelatedArtifact>(); 2268 for (RelatedArtifact i : relatedArtifact) 2269 dst.relatedArtifact.add(i.copy()); 2270 }; 2271 if (parameter != null) { 2272 dst.parameter = new ArrayList<ParameterDefinition>(); 2273 for (ParameterDefinition i : parameter) 2274 dst.parameter.add(i.copy()); 2275 }; 2276 if (dataRequirement != null) { 2277 dst.dataRequirement = new ArrayList<DataRequirement>(); 2278 for (DataRequirement i : dataRequirement) 2279 dst.dataRequirement.add(i.copy()); 2280 }; 2281 if (content != null) { 2282 dst.content = new ArrayList<Attachment>(); 2283 for (Attachment i : content) 2284 dst.content.add(i.copy()); 2285 }; 2286 return dst; 2287 } 2288 2289 protected Library typedCopy() { 2290 return copy(); 2291 } 2292 2293 @Override 2294 public boolean equalsDeep(Base other_) { 2295 if (!super.equalsDeep(other_)) 2296 return false; 2297 if (!(other_ instanceof Library)) 2298 return false; 2299 Library o = (Library) other_; 2300 return compareDeep(identifier, o.identifier, true) && compareDeep(subtitle, o.subtitle, true) && compareDeep(type, o.type, true) 2301 && compareDeep(subject, o.subject, true) && compareDeep(purpose, o.purpose, true) && compareDeep(usage, o.usage, true) 2302 && compareDeep(copyright, o.copyright, true) && compareDeep(approvalDate, o.approvalDate, true) 2303 && compareDeep(lastReviewDate, o.lastReviewDate, true) && compareDeep(effectivePeriod, o.effectivePeriod, true) 2304 && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true) && compareDeep(editor, o.editor, true) 2305 && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true) && compareDeep(relatedArtifact, o.relatedArtifact, true) 2306 && compareDeep(parameter, o.parameter, true) && compareDeep(dataRequirement, o.dataRequirement, true) 2307 && compareDeep(content, o.content, true); 2308 } 2309 2310 @Override 2311 public boolean equalsShallow(Base other_) { 2312 if (!super.equalsShallow(other_)) 2313 return false; 2314 if (!(other_ instanceof Library)) 2315 return false; 2316 Library o = (Library) other_; 2317 return compareValues(subtitle, o.subtitle, true) && compareValues(purpose, o.purpose, true) && compareValues(usage, o.usage, true) 2318 && compareValues(copyright, o.copyright, true) && compareValues(approvalDate, o.approvalDate, true) 2319 && compareValues(lastReviewDate, o.lastReviewDate, true); 2320 } 2321 2322 public boolean isEmpty() { 2323 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, subtitle, type 2324 , subject, purpose, usage, copyright, approvalDate, lastReviewDate, effectivePeriod 2325 , topic, author, editor, reviewer, endorser, relatedArtifact, parameter, dataRequirement 2326 , content); 2327 } 2328 2329 @Override 2330 public ResourceType getResourceType() { 2331 return ResourceType.Library; 2332 } 2333 2334 /** 2335 * Search parameter: <b>date</b> 2336 * <p> 2337 * Description: <b>The library publication date</b><br> 2338 * Type: <b>date</b><br> 2339 * Path: <b>Library.date</b><br> 2340 * </p> 2341 */ 2342 @SearchParamDefinition(name="date", path="Library.date", description="The library publication date", type="date" ) 2343 public static final String SP_DATE = "date"; 2344 /** 2345 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2346 * <p> 2347 * Description: <b>The library publication date</b><br> 2348 * Type: <b>date</b><br> 2349 * Path: <b>Library.date</b><br> 2350 * </p> 2351 */ 2352 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2353 2354 /** 2355 * Search parameter: <b>identifier</b> 2356 * <p> 2357 * Description: <b>External identifier for the library</b><br> 2358 * Type: <b>token</b><br> 2359 * Path: <b>Library.identifier</b><br> 2360 * </p> 2361 */ 2362 @SearchParamDefinition(name="identifier", path="Library.identifier", description="External identifier for the library", type="token" ) 2363 public static final String SP_IDENTIFIER = "identifier"; 2364 /** 2365 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2366 * <p> 2367 * Description: <b>External identifier for the library</b><br> 2368 * Type: <b>token</b><br> 2369 * Path: <b>Library.identifier</b><br> 2370 * </p> 2371 */ 2372 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2373 2374 /** 2375 * Search parameter: <b>successor</b> 2376 * <p> 2377 * Description: <b>What resource is being referenced</b><br> 2378 * Type: <b>reference</b><br> 2379 * Path: <b>Library.relatedArtifact.resource</b><br> 2380 * </p> 2381 */ 2382 @SearchParamDefinition(name="successor", path="Library.relatedArtifact.where(type='successor').resource", description="What resource is being referenced", type="reference" ) 2383 public static final String SP_SUCCESSOR = "successor"; 2384 /** 2385 * <b>Fluent Client</b> search parameter constant for <b>successor</b> 2386 * <p> 2387 * Description: <b>What resource is being referenced</b><br> 2388 * Type: <b>reference</b><br> 2389 * Path: <b>Library.relatedArtifact.resource</b><br> 2390 * </p> 2391 */ 2392 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUCCESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUCCESSOR); 2393 2394/** 2395 * Constant for fluent queries to be used to add include statements. Specifies 2396 * the path value of "<b>Library:successor</b>". 2397 */ 2398 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUCCESSOR = new ca.uhn.fhir.model.api.Include("Library:successor").toLocked(); 2399 2400 /** 2401 * Search parameter: <b>context-type-value</b> 2402 * <p> 2403 * Description: <b>A use context type and value assigned to the library</b><br> 2404 * Type: <b>composite</b><br> 2405 * Path: <b></b><br> 2406 * </p> 2407 */ 2408 @SearchParamDefinition(name="context-type-value", path="Library.useContext", description="A use context type and value assigned to the library", type="composite", compositeOf={"context-type", "context"} ) 2409 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 2410 /** 2411 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 2412 * <p> 2413 * Description: <b>A use context type and value assigned to the library</b><br> 2414 * Type: <b>composite</b><br> 2415 * Path: <b></b><br> 2416 * </p> 2417 */ 2418 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE); 2419 2420 /** 2421 * Search parameter: <b>jurisdiction</b> 2422 * <p> 2423 * Description: <b>Intended jurisdiction for the library</b><br> 2424 * Type: <b>token</b><br> 2425 * Path: <b>Library.jurisdiction</b><br> 2426 * </p> 2427 */ 2428 @SearchParamDefinition(name="jurisdiction", path="Library.jurisdiction", description="Intended jurisdiction for the library", type="token" ) 2429 public static final String SP_JURISDICTION = "jurisdiction"; 2430 /** 2431 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 2432 * <p> 2433 * Description: <b>Intended jurisdiction for the library</b><br> 2434 * Type: <b>token</b><br> 2435 * Path: <b>Library.jurisdiction</b><br> 2436 * </p> 2437 */ 2438 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 2439 2440 /** 2441 * Search parameter: <b>description</b> 2442 * <p> 2443 * Description: <b>The description of the library</b><br> 2444 * Type: <b>string</b><br> 2445 * Path: <b>Library.description</b><br> 2446 * </p> 2447 */ 2448 @SearchParamDefinition(name="description", path="Library.description", description="The description of the library", type="string" ) 2449 public static final String SP_DESCRIPTION = "description"; 2450 /** 2451 * <b>Fluent Client</b> search parameter constant for <b>description</b> 2452 * <p> 2453 * Description: <b>The description of the library</b><br> 2454 * Type: <b>string</b><br> 2455 * Path: <b>Library.description</b><br> 2456 * </p> 2457 */ 2458 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 2459 2460 /** 2461 * Search parameter: <b>derived-from</b> 2462 * <p> 2463 * Description: <b>What resource is being referenced</b><br> 2464 * Type: <b>reference</b><br> 2465 * Path: <b>Library.relatedArtifact.resource</b><br> 2466 * </p> 2467 */ 2468 @SearchParamDefinition(name="derived-from", path="Library.relatedArtifact.where(type='derived-from').resource", description="What resource is being referenced", type="reference" ) 2469 public static final String SP_DERIVED_FROM = "derived-from"; 2470 /** 2471 * <b>Fluent Client</b> search parameter constant for <b>derived-from</b> 2472 * <p> 2473 * Description: <b>What resource is being referenced</b><br> 2474 * Type: <b>reference</b><br> 2475 * Path: <b>Library.relatedArtifact.resource</b><br> 2476 * </p> 2477 */ 2478 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM); 2479 2480/** 2481 * Constant for fluent queries to be used to add include statements. Specifies 2482 * the path value of "<b>Library:derived-from</b>". 2483 */ 2484 public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("Library:derived-from").toLocked(); 2485 2486 /** 2487 * Search parameter: <b>context-type</b> 2488 * <p> 2489 * Description: <b>A type of use context assigned to the library</b><br> 2490 * Type: <b>token</b><br> 2491 * Path: <b>Library.useContext.code</b><br> 2492 * </p> 2493 */ 2494 @SearchParamDefinition(name="context-type", path="Library.useContext.code", description="A type of use context assigned to the library", type="token" ) 2495 public static final String SP_CONTEXT_TYPE = "context-type"; 2496 /** 2497 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 2498 * <p> 2499 * Description: <b>A type of use context assigned to the library</b><br> 2500 * Type: <b>token</b><br> 2501 * Path: <b>Library.useContext.code</b><br> 2502 * </p> 2503 */ 2504 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 2505 2506 /** 2507 * Search parameter: <b>predecessor</b> 2508 * <p> 2509 * Description: <b>What resource is being referenced</b><br> 2510 * Type: <b>reference</b><br> 2511 * Path: <b>Library.relatedArtifact.resource</b><br> 2512 * </p> 2513 */ 2514 @SearchParamDefinition(name="predecessor", path="Library.relatedArtifact.where(type='predecessor').resource", description="What resource is being referenced", type="reference" ) 2515 public static final String SP_PREDECESSOR = "predecessor"; 2516 /** 2517 * <b>Fluent Client</b> search parameter constant for <b>predecessor</b> 2518 * <p> 2519 * Description: <b>What resource is being referenced</b><br> 2520 * Type: <b>reference</b><br> 2521 * Path: <b>Library.relatedArtifact.resource</b><br> 2522 * </p> 2523 */ 2524 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PREDECESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PREDECESSOR); 2525 2526/** 2527 * Constant for fluent queries to be used to add include statements. Specifies 2528 * the path value of "<b>Library:predecessor</b>". 2529 */ 2530 public static final ca.uhn.fhir.model.api.Include INCLUDE_PREDECESSOR = new ca.uhn.fhir.model.api.Include("Library:predecessor").toLocked(); 2531 2532 /** 2533 * Search parameter: <b>title</b> 2534 * <p> 2535 * Description: <b>The human-friendly name of the library</b><br> 2536 * Type: <b>string</b><br> 2537 * Path: <b>Library.title</b><br> 2538 * </p> 2539 */ 2540 @SearchParamDefinition(name="title", path="Library.title", description="The human-friendly name of the library", type="string" ) 2541 public static final String SP_TITLE = "title"; 2542 /** 2543 * <b>Fluent Client</b> search parameter constant for <b>title</b> 2544 * <p> 2545 * Description: <b>The human-friendly name of the library</b><br> 2546 * Type: <b>string</b><br> 2547 * Path: <b>Library.title</b><br> 2548 * </p> 2549 */ 2550 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 2551 2552 /** 2553 * Search parameter: <b>composed-of</b> 2554 * <p> 2555 * Description: <b>What resource is being referenced</b><br> 2556 * Type: <b>reference</b><br> 2557 * Path: <b>Library.relatedArtifact.resource</b><br> 2558 * </p> 2559 */ 2560 @SearchParamDefinition(name="composed-of", path="Library.relatedArtifact.where(type='composed-of').resource", description="What resource is being referenced", type="reference" ) 2561 public static final String SP_COMPOSED_OF = "composed-of"; 2562 /** 2563 * <b>Fluent Client</b> search parameter constant for <b>composed-of</b> 2564 * <p> 2565 * Description: <b>What resource is being referenced</b><br> 2566 * Type: <b>reference</b><br> 2567 * Path: <b>Library.relatedArtifact.resource</b><br> 2568 * </p> 2569 */ 2570 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COMPOSED_OF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COMPOSED_OF); 2571 2572/** 2573 * Constant for fluent queries to be used to add include statements. Specifies 2574 * the path value of "<b>Library:composed-of</b>". 2575 */ 2576 public static final ca.uhn.fhir.model.api.Include INCLUDE_COMPOSED_OF = new ca.uhn.fhir.model.api.Include("Library:composed-of").toLocked(); 2577 2578 /** 2579 * Search parameter: <b>type</b> 2580 * <p> 2581 * Description: <b>The type of the library (e.g. logic-library, model-definition, asset-collection, module-definition)</b><br> 2582 * Type: <b>token</b><br> 2583 * Path: <b>Library.type</b><br> 2584 * </p> 2585 */ 2586 @SearchParamDefinition(name="type", path="Library.type", description="The type of the library (e.g. logic-library, model-definition, asset-collection, module-definition)", type="token" ) 2587 public static final String SP_TYPE = "type"; 2588 /** 2589 * <b>Fluent Client</b> search parameter constant for <b>type</b> 2590 * <p> 2591 * Description: <b>The type of the library (e.g. logic-library, model-definition, asset-collection, module-definition)</b><br> 2592 * Type: <b>token</b><br> 2593 * Path: <b>Library.type</b><br> 2594 * </p> 2595 */ 2596 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 2597 2598 /** 2599 * Search parameter: <b>version</b> 2600 * <p> 2601 * Description: <b>The business version of the library</b><br> 2602 * Type: <b>token</b><br> 2603 * Path: <b>Library.version</b><br> 2604 * </p> 2605 */ 2606 @SearchParamDefinition(name="version", path="Library.version", description="The business version of the library", type="token" ) 2607 public static final String SP_VERSION = "version"; 2608 /** 2609 * <b>Fluent Client</b> search parameter constant for <b>version</b> 2610 * <p> 2611 * Description: <b>The business version of the library</b><br> 2612 * Type: <b>token</b><br> 2613 * Path: <b>Library.version</b><br> 2614 * </p> 2615 */ 2616 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 2617 2618 /** 2619 * Search parameter: <b>url</b> 2620 * <p> 2621 * Description: <b>The uri that identifies the library</b><br> 2622 * Type: <b>uri</b><br> 2623 * Path: <b>Library.url</b><br> 2624 * </p> 2625 */ 2626 @SearchParamDefinition(name="url", path="Library.url", description="The uri that identifies the library", type="uri" ) 2627 public static final String SP_URL = "url"; 2628 /** 2629 * <b>Fluent Client</b> search parameter constant for <b>url</b> 2630 * <p> 2631 * Description: <b>The uri that identifies the library</b><br> 2632 * Type: <b>uri</b><br> 2633 * Path: <b>Library.url</b><br> 2634 * </p> 2635 */ 2636 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 2637 2638 /** 2639 * Search parameter: <b>context-quantity</b> 2640 * <p> 2641 * Description: <b>A quantity- or range-valued use context assigned to the library</b><br> 2642 * Type: <b>quantity</b><br> 2643 * Path: <b>Library.useContext.valueQuantity, Library.useContext.valueRange</b><br> 2644 * </p> 2645 */ 2646 @SearchParamDefinition(name="context-quantity", path="(Library.useContext.value as Quantity) | (Library.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the library", type="quantity" ) 2647 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 2648 /** 2649 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 2650 * <p> 2651 * Description: <b>A quantity- or range-valued use context assigned to the library</b><br> 2652 * Type: <b>quantity</b><br> 2653 * Path: <b>Library.useContext.valueQuantity, Library.useContext.valueRange</b><br> 2654 * </p> 2655 */ 2656 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 2657 2658 /** 2659 * Search parameter: <b>effective</b> 2660 * <p> 2661 * Description: <b>The time during which the library is intended to be in use</b><br> 2662 * Type: <b>date</b><br> 2663 * Path: <b>Library.effectivePeriod</b><br> 2664 * </p> 2665 */ 2666 @SearchParamDefinition(name="effective", path="Library.effectivePeriod", description="The time during which the library is intended to be in use", type="date" ) 2667 public static final String SP_EFFECTIVE = "effective"; 2668 /** 2669 * <b>Fluent Client</b> search parameter constant for <b>effective</b> 2670 * <p> 2671 * Description: <b>The time during which the library is intended to be in use</b><br> 2672 * Type: <b>date</b><br> 2673 * Path: <b>Library.effectivePeriod</b><br> 2674 * </p> 2675 */ 2676 public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE); 2677 2678 /** 2679 * Search parameter: <b>depends-on</b> 2680 * <p> 2681 * Description: <b>What resource is being referenced</b><br> 2682 * Type: <b>reference</b><br> 2683 * Path: <b>Library.relatedArtifact.resource</b><br> 2684 * </p> 2685 */ 2686 @SearchParamDefinition(name="depends-on", path="Library.relatedArtifact.where(type='depends-on').resource", description="What resource is being referenced", type="reference" ) 2687 public static final String SP_DEPENDS_ON = "depends-on"; 2688 /** 2689 * <b>Fluent Client</b> search parameter constant for <b>depends-on</b> 2690 * <p> 2691 * Description: <b>What resource is being referenced</b><br> 2692 * Type: <b>reference</b><br> 2693 * Path: <b>Library.relatedArtifact.resource</b><br> 2694 * </p> 2695 */ 2696 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEPENDS_ON); 2697 2698/** 2699 * Constant for fluent queries to be used to add include statements. Specifies 2700 * the path value of "<b>Library:depends-on</b>". 2701 */ 2702 public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include("Library:depends-on").toLocked(); 2703 2704 /** 2705 * Search parameter: <b>name</b> 2706 * <p> 2707 * Description: <b>Computationally friendly name of the library</b><br> 2708 * Type: <b>string</b><br> 2709 * Path: <b>Library.name</b><br> 2710 * </p> 2711 */ 2712 @SearchParamDefinition(name="name", path="Library.name", description="Computationally friendly name of the library", type="string" ) 2713 public static final String SP_NAME = "name"; 2714 /** 2715 * <b>Fluent Client</b> search parameter constant for <b>name</b> 2716 * <p> 2717 * Description: <b>Computationally friendly name of the library</b><br> 2718 * Type: <b>string</b><br> 2719 * Path: <b>Library.name</b><br> 2720 * </p> 2721 */ 2722 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 2723 2724 /** 2725 * Search parameter: <b>context</b> 2726 * <p> 2727 * Description: <b>A use context assigned to the library</b><br> 2728 * Type: <b>token</b><br> 2729 * Path: <b>Library.useContext.valueCodeableConcept</b><br> 2730 * </p> 2731 */ 2732 @SearchParamDefinition(name="context", path="(Library.useContext.value as CodeableConcept)", description="A use context assigned to the library", type="token" ) 2733 public static final String SP_CONTEXT = "context"; 2734 /** 2735 * <b>Fluent Client</b> search parameter constant for <b>context</b> 2736 * <p> 2737 * Description: <b>A use context assigned to the library</b><br> 2738 * Type: <b>token</b><br> 2739 * Path: <b>Library.useContext.valueCodeableConcept</b><br> 2740 * </p> 2741 */ 2742 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 2743 2744 /** 2745 * Search parameter: <b>publisher</b> 2746 * <p> 2747 * Description: <b>Name of the publisher of the library</b><br> 2748 * Type: <b>string</b><br> 2749 * Path: <b>Library.publisher</b><br> 2750 * </p> 2751 */ 2752 @SearchParamDefinition(name="publisher", path="Library.publisher", description="Name of the publisher of the library", type="string" ) 2753 public static final String SP_PUBLISHER = "publisher"; 2754 /** 2755 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 2756 * <p> 2757 * Description: <b>Name of the publisher of the library</b><br> 2758 * Type: <b>string</b><br> 2759 * Path: <b>Library.publisher</b><br> 2760 * </p> 2761 */ 2762 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 2763 2764 /** 2765 * Search parameter: <b>topic</b> 2766 * <p> 2767 * Description: <b>Topics associated with the module</b><br> 2768 * Type: <b>token</b><br> 2769 * Path: <b>Library.topic</b><br> 2770 * </p> 2771 */ 2772 @SearchParamDefinition(name="topic", path="Library.topic", description="Topics associated with the module", type="token" ) 2773 public static final String SP_TOPIC = "topic"; 2774 /** 2775 * <b>Fluent Client</b> search parameter constant for <b>topic</b> 2776 * <p> 2777 * Description: <b>Topics associated with the module</b><br> 2778 * Type: <b>token</b><br> 2779 * Path: <b>Library.topic</b><br> 2780 * </p> 2781 */ 2782 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TOPIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TOPIC); 2783 2784 /** 2785 * Search parameter: <b>context-type-quantity</b> 2786 * <p> 2787 * Description: <b>A use context type and quantity- or range-based value assigned to the library</b><br> 2788 * Type: <b>composite</b><br> 2789 * Path: <b></b><br> 2790 * </p> 2791 */ 2792 @SearchParamDefinition(name="context-type-quantity", path="Library.useContext", description="A use context type and quantity- or range-based value assigned to the library", type="composite", compositeOf={"context-type", "context-quantity"} ) 2793 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 2794 /** 2795 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 2796 * <p> 2797 * Description: <b>A use context type and quantity- or range-based value assigned to the library</b><br> 2798 * Type: <b>composite</b><br> 2799 * Path: <b></b><br> 2800 * </p> 2801 */ 2802 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY); 2803 2804 /** 2805 * Search parameter: <b>status</b> 2806 * <p> 2807 * Description: <b>The current status of the library</b><br> 2808 * Type: <b>token</b><br> 2809 * Path: <b>Library.status</b><br> 2810 * </p> 2811 */ 2812 @SearchParamDefinition(name="status", path="Library.status", description="The current status of the library", type="token" ) 2813 public static final String SP_STATUS = "status"; 2814 /** 2815 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2816 * <p> 2817 * Description: <b>The current status of the library</b><br> 2818 * Type: <b>token</b><br> 2819 * Path: <b>Library.status</b><br> 2820 * </p> 2821 */ 2822 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2823 2824 2825} 2826