001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Tue, Dec 13, 2022 17:53+1100 for FHIR vcurrent 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * The details of a healthcare service available at a location or in a catalog. In the case where there is a hierarchy of services (for example, Lab -> Pathology -> Wound Cultures), this can be represented using a set of linked HealthcareServices. 052 */ 053@ResourceDef(name="HealthcareService", profile="http://hl7.org/fhir/StructureDefinition/HealthcareService") 054public class HealthcareService extends DomainResource { 055 056 @Block() 057 public static class HealthcareServiceEligibilityComponent extends BackboneElement implements IBaseBackboneElement { 058 /** 059 * Coded value for the eligibility. 060 */ 061 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 062 @Description(shortDefinition="Coded value for the eligibility", formalDefinition="Coded value for the eligibility." ) 063 protected CodeableConcept code; 064 065 /** 066 * Describes the eligibility conditions for the service. 067 */ 068 @Child(name = "comment", type = {MarkdownType.class}, order=2, min=0, max=1, modifier=false, summary=false) 069 @Description(shortDefinition="Describes the eligibility conditions for the service", formalDefinition="Describes the eligibility conditions for the service." ) 070 protected MarkdownType comment; 071 072 private static final long serialVersionUID = 1078065348L; 073 074 /** 075 * Constructor 076 */ 077 public HealthcareServiceEligibilityComponent() { 078 super(); 079 } 080 081 /** 082 * @return {@link #code} (Coded value for the eligibility.) 083 */ 084 public CodeableConcept getCode() { 085 if (this.code == null) 086 if (Configuration.errorOnAutoCreate()) 087 throw new Error("Attempt to auto-create HealthcareServiceEligibilityComponent.code"); 088 else if (Configuration.doAutoCreate()) 089 this.code = new CodeableConcept(); // cc 090 return this.code; 091 } 092 093 public boolean hasCode() { 094 return this.code != null && !this.code.isEmpty(); 095 } 096 097 /** 098 * @param value {@link #code} (Coded value for the eligibility.) 099 */ 100 public HealthcareServiceEligibilityComponent setCode(CodeableConcept value) { 101 this.code = value; 102 return this; 103 } 104 105 /** 106 * @return {@link #comment} (Describes the eligibility conditions for the service.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 107 */ 108 public MarkdownType getCommentElement() { 109 if (this.comment == null) 110 if (Configuration.errorOnAutoCreate()) 111 throw new Error("Attempt to auto-create HealthcareServiceEligibilityComponent.comment"); 112 else if (Configuration.doAutoCreate()) 113 this.comment = new MarkdownType(); // bb 114 return this.comment; 115 } 116 117 public boolean hasCommentElement() { 118 return this.comment != null && !this.comment.isEmpty(); 119 } 120 121 public boolean hasComment() { 122 return this.comment != null && !this.comment.isEmpty(); 123 } 124 125 /** 126 * @param value {@link #comment} (Describes the eligibility conditions for the service.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 127 */ 128 public HealthcareServiceEligibilityComponent setCommentElement(MarkdownType value) { 129 this.comment = value; 130 return this; 131 } 132 133 /** 134 * @return Describes the eligibility conditions for the service. 135 */ 136 public String getComment() { 137 return this.comment == null ? null : this.comment.getValue(); 138 } 139 140 /** 141 * @param value Describes the eligibility conditions for the service. 142 */ 143 public HealthcareServiceEligibilityComponent setComment(String value) { 144 if (value == null) 145 this.comment = null; 146 else { 147 if (this.comment == null) 148 this.comment = new MarkdownType(); 149 this.comment.setValue(value); 150 } 151 return this; 152 } 153 154 protected void listChildren(List<Property> children) { 155 super.listChildren(children); 156 children.add(new Property("code", "CodeableConcept", "Coded value for the eligibility.", 0, 1, code)); 157 children.add(new Property("comment", "markdown", "Describes the eligibility conditions for the service.", 0, 1, comment)); 158 } 159 160 @Override 161 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 162 switch (_hash) { 163 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Coded value for the eligibility.", 0, 1, code); 164 case 950398559: /*comment*/ return new Property("comment", "markdown", "Describes the eligibility conditions for the service.", 0, 1, comment); 165 default: return super.getNamedProperty(_hash, _name, _checkValid); 166 } 167 168 } 169 170 @Override 171 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 172 switch (hash) { 173 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 174 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // MarkdownType 175 default: return super.getProperty(hash, name, checkValid); 176 } 177 178 } 179 180 @Override 181 public Base setProperty(int hash, String name, Base value) throws FHIRException { 182 switch (hash) { 183 case 3059181: // code 184 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 185 return value; 186 case 950398559: // comment 187 this.comment = TypeConvertor.castToMarkdown(value); // MarkdownType 188 return value; 189 default: return super.setProperty(hash, name, value); 190 } 191 192 } 193 194 @Override 195 public Base setProperty(String name, Base value) throws FHIRException { 196 if (name.equals("code")) { 197 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 198 } else if (name.equals("comment")) { 199 this.comment = TypeConvertor.castToMarkdown(value); // MarkdownType 200 } else 201 return super.setProperty(name, value); 202 return value; 203 } 204 205 @Override 206 public Base makeProperty(int hash, String name) throws FHIRException { 207 switch (hash) { 208 case 3059181: return getCode(); 209 case 950398559: return getCommentElement(); 210 default: return super.makeProperty(hash, name); 211 } 212 213 } 214 215 @Override 216 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 217 switch (hash) { 218 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 219 case 950398559: /*comment*/ return new String[] {"markdown"}; 220 default: return super.getTypesForProperty(hash, name); 221 } 222 223 } 224 225 @Override 226 public Base addChild(String name) throws FHIRException { 227 if (name.equals("code")) { 228 this.code = new CodeableConcept(); 229 return this.code; 230 } 231 else if (name.equals("comment")) { 232 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.eligibility.comment"); 233 } 234 else 235 return super.addChild(name); 236 } 237 238 public HealthcareServiceEligibilityComponent copy() { 239 HealthcareServiceEligibilityComponent dst = new HealthcareServiceEligibilityComponent(); 240 copyValues(dst); 241 return dst; 242 } 243 244 public void copyValues(HealthcareServiceEligibilityComponent dst) { 245 super.copyValues(dst); 246 dst.code = code == null ? null : code.copy(); 247 dst.comment = comment == null ? null : comment.copy(); 248 } 249 250 @Override 251 public boolean equalsDeep(Base other_) { 252 if (!super.equalsDeep(other_)) 253 return false; 254 if (!(other_ instanceof HealthcareServiceEligibilityComponent)) 255 return false; 256 HealthcareServiceEligibilityComponent o = (HealthcareServiceEligibilityComponent) other_; 257 return compareDeep(code, o.code, true) && compareDeep(comment, o.comment, true); 258 } 259 260 @Override 261 public boolean equalsShallow(Base other_) { 262 if (!super.equalsShallow(other_)) 263 return false; 264 if (!(other_ instanceof HealthcareServiceEligibilityComponent)) 265 return false; 266 HealthcareServiceEligibilityComponent o = (HealthcareServiceEligibilityComponent) other_; 267 return compareValues(comment, o.comment, true); 268 } 269 270 public boolean isEmpty() { 271 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, comment); 272 } 273 274 public String fhirType() { 275 return "HealthcareService.eligibility"; 276 277 } 278 279 } 280 281 /** 282 * External identifiers for this item. 283 */ 284 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 285 @Description(shortDefinition="External identifiers for this item", formalDefinition="External identifiers for this item." ) 286 protected List<Identifier> identifier; 287 288 /** 289 * This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this. 290 */ 291 @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=true, summary=true) 292 @Description(shortDefinition="Whether this HealthcareService record is in active use", formalDefinition="This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this." ) 293 protected BooleanType active; 294 295 /** 296 * The organization that provides this healthcare service. 297 */ 298 @Child(name = "providedBy", type = {Organization.class}, order=2, min=0, max=1, modifier=false, summary=true) 299 @Description(shortDefinition="Organization that provides this service", formalDefinition="The organization that provides this healthcare service." ) 300 protected Reference providedBy; 301 302 /** 303 * When the HealthcareService is representing a specific, schedulable service, the availableIn property can refer to a generic service. 304 */ 305 @Child(name = "offeredIn", type = {HealthcareService.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 306 @Description(shortDefinition="The service within which this service is offered", formalDefinition="When the HealthcareService is representing a specific, schedulable service, the availableIn property can refer to a generic service." ) 307 protected List<Reference> offeredIn; 308 309 /** 310 * Identifies the broad category of service being performed or delivered. 311 */ 312 @Child(name = "category", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 313 @Description(shortDefinition="Broad category of service being performed or delivered", formalDefinition="Identifies the broad category of service being performed or delivered." ) 314 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-category") 315 protected List<CodeableConcept> category; 316 317 /** 318 * The specific type of service that may be delivered or performed. 319 */ 320 @Child(name = "type", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 321 @Description(shortDefinition="Type of service that may be delivered or performed", formalDefinition="The specific type of service that may be delivered or performed." ) 322 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-type") 323 protected List<CodeableConcept> type; 324 325 /** 326 * Collection of specialties handled by the Healthcare service. This is more of a medical term. 327 */ 328 @Child(name = "specialty", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 329 @Description(shortDefinition="Specialties handled by the HealthcareService", formalDefinition="Collection of specialties handled by the Healthcare service. This is more of a medical term." ) 330 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/c80-practice-codes") 331 protected List<CodeableConcept> specialty; 332 333 /** 334 * The location(s) where this healthcare service may be provided. 335 */ 336 @Child(name = "location", type = {Location.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 337 @Description(shortDefinition="Location(s) where service may be provided", formalDefinition="The location(s) where this healthcare service may be provided." ) 338 protected List<Reference> location; 339 340 /** 341 * Further description of the service as it would be presented to a consumer while searching. 342 */ 343 @Child(name = "name", type = {StringType.class}, order=8, min=0, max=1, modifier=false, summary=true) 344 @Description(shortDefinition="Description of service as presented to a consumer while searching", formalDefinition="Further description of the service as it would be presented to a consumer while searching." ) 345 protected StringType name; 346 347 /** 348 * Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. 349 */ 350 @Child(name = "comment", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=true) 351 @Description(shortDefinition="Additional description and/or any specific issues not covered elsewhere", formalDefinition="Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName." ) 352 protected StringType comment; 353 354 /** 355 * Extra details about the service that can't be placed in the other fields. 356 */ 357 @Child(name = "extraDetails", type = {MarkdownType.class}, order=10, min=0, max=1, modifier=false, summary=false) 358 @Description(shortDefinition="Extra details about the service that can't be placed in the other fields", formalDefinition="Extra details about the service that can't be placed in the other fields." ) 359 protected MarkdownType extraDetails; 360 361 /** 362 * If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list. 363 */ 364 @Child(name = "photo", type = {Attachment.class}, order=11, min=0, max=1, modifier=false, summary=true) 365 @Description(shortDefinition="Facilitates quick identification of the service", formalDefinition="If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list." ) 366 protected Attachment photo; 367 368 /** 369 * The contact details of communication devices available relevant to the specific HealthcareService. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites. 370 */ 371 @Child(name = "contact", type = {ExtendedContactDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 372 @Description(shortDefinition="Official contact details for the HealthcareService", formalDefinition="The contact details of communication devices available relevant to the specific HealthcareService. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites." ) 373 protected List<ExtendedContactDetail> contact; 374 375 /** 376 * The location(s) that this service is available to (not where the service is provided). 377 */ 378 @Child(name = "coverageArea", type = {Location.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 379 @Description(shortDefinition="Location(s) service is intended for/available to", formalDefinition="The location(s) that this service is available to (not where the service is provided)." ) 380 protected List<Reference> coverageArea; 381 382 /** 383 * The code(s) that detail the conditions under which the healthcare service is available/offered. 384 */ 385 @Child(name = "serviceProvisionCode", type = {CodeableConcept.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 386 @Description(shortDefinition="Conditions under which service is available/offered", formalDefinition="The code(s) that detail the conditions under which the healthcare service is available/offered." ) 387 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-provision-conditions") 388 protected List<CodeableConcept> serviceProvisionCode; 389 390 /** 391 * Does this service have specific eligibility requirements that need to be met in order to use the service? 392 */ 393 @Child(name = "eligibility", type = {}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 394 @Description(shortDefinition="Specific eligibility requirements required to use the service", formalDefinition="Does this service have specific eligibility requirements that need to be met in order to use the service?" ) 395 protected List<HealthcareServiceEligibilityComponent> eligibility; 396 397 /** 398 * Programs that this service is applicable to. 399 */ 400 @Child(name = "program", type = {CodeableConcept.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 401 @Description(shortDefinition="Programs that this service is applicable to", formalDefinition="Programs that this service is applicable to." ) 402 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/program") 403 protected List<CodeableConcept> program; 404 405 /** 406 * Collection of characteristics (attributes). 407 */ 408 @Child(name = "characteristic", type = {CodeableConcept.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 409 @Description(shortDefinition="Collection of characteristics (attributes)", formalDefinition="Collection of characteristics (attributes)." ) 410 protected List<CodeableConcept> characteristic; 411 412 /** 413 * Some services are specifically made available in multiple languages, this property permits a directory to declare the languages this is offered in. Typically this is only provided where a service operates in communities with mixed languages used. 414 */ 415 @Child(name = "communication", type = {CodeableConcept.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 416 @Description(shortDefinition="The language that this service is offered in", formalDefinition="Some services are specifically made available in multiple languages, this property permits a directory to declare the languages this is offered in. Typically this is only provided where a service operates in communities with mixed languages used." ) 417 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/languages") 418 protected List<CodeableConcept> communication; 419 420 /** 421 * Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required. 422 */ 423 @Child(name = "referralMethod", type = {CodeableConcept.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 424 @Description(shortDefinition="Ways that the service accepts referrals", formalDefinition="Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required." ) 425 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-referral-method") 426 protected List<CodeableConcept> referralMethod; 427 428 /** 429 * Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service. 430 */ 431 @Child(name = "appointmentRequired", type = {BooleanType.class}, order=20, min=0, max=1, modifier=false, summary=false) 432 @Description(shortDefinition="If an appointment is required for access to this service", formalDefinition="Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service." ) 433 protected BooleanType appointmentRequired; 434 435 /** 436 * A collection of times that the healthcare service is available. 437 */ 438 @Child(name = "availability", type = {Availability.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 439 @Description(shortDefinition="Times the healthcare service is available (including exceptions)", formalDefinition="A collection of times that the healthcare service is available." ) 440 protected List<Availability> availability; 441 442 /** 443 * Technical endpoints providing access to services operated for the specific healthcare services defined at this resource. 444 */ 445 @Child(name = "endpoint", type = {Endpoint.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 446 @Description(shortDefinition="Technical endpoints providing access to electronic services operated for the healthcare service", formalDefinition="Technical endpoints providing access to services operated for the specific healthcare services defined at this resource." ) 447 protected List<Reference> endpoint; 448 449 private static final long serialVersionUID = -1321795105L; 450 451 /** 452 * Constructor 453 */ 454 public HealthcareService() { 455 super(); 456 } 457 458 /** 459 * @return {@link #identifier} (External identifiers for this item.) 460 */ 461 public List<Identifier> getIdentifier() { 462 if (this.identifier == null) 463 this.identifier = new ArrayList<Identifier>(); 464 return this.identifier; 465 } 466 467 /** 468 * @return Returns a reference to <code>this</code> for easy method chaining 469 */ 470 public HealthcareService setIdentifier(List<Identifier> theIdentifier) { 471 this.identifier = theIdentifier; 472 return this; 473 } 474 475 public boolean hasIdentifier() { 476 if (this.identifier == null) 477 return false; 478 for (Identifier item : this.identifier) 479 if (!item.isEmpty()) 480 return true; 481 return false; 482 } 483 484 public Identifier addIdentifier() { //3 485 Identifier t = new Identifier(); 486 if (this.identifier == null) 487 this.identifier = new ArrayList<Identifier>(); 488 this.identifier.add(t); 489 return t; 490 } 491 492 public HealthcareService addIdentifier(Identifier t) { //3 493 if (t == null) 494 return this; 495 if (this.identifier == null) 496 this.identifier = new ArrayList<Identifier>(); 497 this.identifier.add(t); 498 return this; 499 } 500 501 /** 502 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 503 */ 504 public Identifier getIdentifierFirstRep() { 505 if (getIdentifier().isEmpty()) { 506 addIdentifier(); 507 } 508 return getIdentifier().get(0); 509 } 510 511 /** 512 * @return {@link #active} (This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 513 */ 514 public BooleanType getActiveElement() { 515 if (this.active == null) 516 if (Configuration.errorOnAutoCreate()) 517 throw new Error("Attempt to auto-create HealthcareService.active"); 518 else if (Configuration.doAutoCreate()) 519 this.active = new BooleanType(); // bb 520 return this.active; 521 } 522 523 public boolean hasActiveElement() { 524 return this.active != null && !this.active.isEmpty(); 525 } 526 527 public boolean hasActive() { 528 return this.active != null && !this.active.isEmpty(); 529 } 530 531 /** 532 * @param value {@link #active} (This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 533 */ 534 public HealthcareService setActiveElement(BooleanType value) { 535 this.active = value; 536 return this; 537 } 538 539 /** 540 * @return This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this. 541 */ 542 public boolean getActive() { 543 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 544 } 545 546 /** 547 * @param value This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this. 548 */ 549 public HealthcareService setActive(boolean value) { 550 if (this.active == null) 551 this.active = new BooleanType(); 552 this.active.setValue(value); 553 return this; 554 } 555 556 /** 557 * @return {@link #providedBy} (The organization that provides this healthcare service.) 558 */ 559 public Reference getProvidedBy() { 560 if (this.providedBy == null) 561 if (Configuration.errorOnAutoCreate()) 562 throw new Error("Attempt to auto-create HealthcareService.providedBy"); 563 else if (Configuration.doAutoCreate()) 564 this.providedBy = new Reference(); // cc 565 return this.providedBy; 566 } 567 568 public boolean hasProvidedBy() { 569 return this.providedBy != null && !this.providedBy.isEmpty(); 570 } 571 572 /** 573 * @param value {@link #providedBy} (The organization that provides this healthcare service.) 574 */ 575 public HealthcareService setProvidedBy(Reference value) { 576 this.providedBy = value; 577 return this; 578 } 579 580 /** 581 * @return {@link #offeredIn} (When the HealthcareService is representing a specific, schedulable service, the availableIn property can refer to a generic service.) 582 */ 583 public List<Reference> getOfferedIn() { 584 if (this.offeredIn == null) 585 this.offeredIn = new ArrayList<Reference>(); 586 return this.offeredIn; 587 } 588 589 /** 590 * @return Returns a reference to <code>this</code> for easy method chaining 591 */ 592 public HealthcareService setOfferedIn(List<Reference> theOfferedIn) { 593 this.offeredIn = theOfferedIn; 594 return this; 595 } 596 597 public boolean hasOfferedIn() { 598 if (this.offeredIn == null) 599 return false; 600 for (Reference item : this.offeredIn) 601 if (!item.isEmpty()) 602 return true; 603 return false; 604 } 605 606 public Reference addOfferedIn() { //3 607 Reference t = new Reference(); 608 if (this.offeredIn == null) 609 this.offeredIn = new ArrayList<Reference>(); 610 this.offeredIn.add(t); 611 return t; 612 } 613 614 public HealthcareService addOfferedIn(Reference t) { //3 615 if (t == null) 616 return this; 617 if (this.offeredIn == null) 618 this.offeredIn = new ArrayList<Reference>(); 619 this.offeredIn.add(t); 620 return this; 621 } 622 623 /** 624 * @return The first repetition of repeating field {@link #offeredIn}, creating it if it does not already exist {3} 625 */ 626 public Reference getOfferedInFirstRep() { 627 if (getOfferedIn().isEmpty()) { 628 addOfferedIn(); 629 } 630 return getOfferedIn().get(0); 631 } 632 633 /** 634 * @return {@link #category} (Identifies the broad category of service being performed or delivered.) 635 */ 636 public List<CodeableConcept> getCategory() { 637 if (this.category == null) 638 this.category = new ArrayList<CodeableConcept>(); 639 return this.category; 640 } 641 642 /** 643 * @return Returns a reference to <code>this</code> for easy method chaining 644 */ 645 public HealthcareService setCategory(List<CodeableConcept> theCategory) { 646 this.category = theCategory; 647 return this; 648 } 649 650 public boolean hasCategory() { 651 if (this.category == null) 652 return false; 653 for (CodeableConcept item : this.category) 654 if (!item.isEmpty()) 655 return true; 656 return false; 657 } 658 659 public CodeableConcept addCategory() { //3 660 CodeableConcept t = new CodeableConcept(); 661 if (this.category == null) 662 this.category = new ArrayList<CodeableConcept>(); 663 this.category.add(t); 664 return t; 665 } 666 667 public HealthcareService addCategory(CodeableConcept t) { //3 668 if (t == null) 669 return this; 670 if (this.category == null) 671 this.category = new ArrayList<CodeableConcept>(); 672 this.category.add(t); 673 return this; 674 } 675 676 /** 677 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3} 678 */ 679 public CodeableConcept getCategoryFirstRep() { 680 if (getCategory().isEmpty()) { 681 addCategory(); 682 } 683 return getCategory().get(0); 684 } 685 686 /** 687 * @return {@link #type} (The specific type of service that may be delivered or performed.) 688 */ 689 public List<CodeableConcept> getType() { 690 if (this.type == null) 691 this.type = new ArrayList<CodeableConcept>(); 692 return this.type; 693 } 694 695 /** 696 * @return Returns a reference to <code>this</code> for easy method chaining 697 */ 698 public HealthcareService setType(List<CodeableConcept> theType) { 699 this.type = theType; 700 return this; 701 } 702 703 public boolean hasType() { 704 if (this.type == null) 705 return false; 706 for (CodeableConcept item : this.type) 707 if (!item.isEmpty()) 708 return true; 709 return false; 710 } 711 712 public CodeableConcept addType() { //3 713 CodeableConcept t = new CodeableConcept(); 714 if (this.type == null) 715 this.type = new ArrayList<CodeableConcept>(); 716 this.type.add(t); 717 return t; 718 } 719 720 public HealthcareService addType(CodeableConcept t) { //3 721 if (t == null) 722 return this; 723 if (this.type == null) 724 this.type = new ArrayList<CodeableConcept>(); 725 this.type.add(t); 726 return this; 727 } 728 729 /** 730 * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist {3} 731 */ 732 public CodeableConcept getTypeFirstRep() { 733 if (getType().isEmpty()) { 734 addType(); 735 } 736 return getType().get(0); 737 } 738 739 /** 740 * @return {@link #specialty} (Collection of specialties handled by the Healthcare service. This is more of a medical term.) 741 */ 742 public List<CodeableConcept> getSpecialty() { 743 if (this.specialty == null) 744 this.specialty = new ArrayList<CodeableConcept>(); 745 return this.specialty; 746 } 747 748 /** 749 * @return Returns a reference to <code>this</code> for easy method chaining 750 */ 751 public HealthcareService setSpecialty(List<CodeableConcept> theSpecialty) { 752 this.specialty = theSpecialty; 753 return this; 754 } 755 756 public boolean hasSpecialty() { 757 if (this.specialty == null) 758 return false; 759 for (CodeableConcept item : this.specialty) 760 if (!item.isEmpty()) 761 return true; 762 return false; 763 } 764 765 public CodeableConcept addSpecialty() { //3 766 CodeableConcept t = new CodeableConcept(); 767 if (this.specialty == null) 768 this.specialty = new ArrayList<CodeableConcept>(); 769 this.specialty.add(t); 770 return t; 771 } 772 773 public HealthcareService addSpecialty(CodeableConcept t) { //3 774 if (t == null) 775 return this; 776 if (this.specialty == null) 777 this.specialty = new ArrayList<CodeableConcept>(); 778 this.specialty.add(t); 779 return this; 780 } 781 782 /** 783 * @return The first repetition of repeating field {@link #specialty}, creating it if it does not already exist {3} 784 */ 785 public CodeableConcept getSpecialtyFirstRep() { 786 if (getSpecialty().isEmpty()) { 787 addSpecialty(); 788 } 789 return getSpecialty().get(0); 790 } 791 792 /** 793 * @return {@link #location} (The location(s) where this healthcare service may be provided.) 794 */ 795 public List<Reference> getLocation() { 796 if (this.location == null) 797 this.location = new ArrayList<Reference>(); 798 return this.location; 799 } 800 801 /** 802 * @return Returns a reference to <code>this</code> for easy method chaining 803 */ 804 public HealthcareService setLocation(List<Reference> theLocation) { 805 this.location = theLocation; 806 return this; 807 } 808 809 public boolean hasLocation() { 810 if (this.location == null) 811 return false; 812 for (Reference item : this.location) 813 if (!item.isEmpty()) 814 return true; 815 return false; 816 } 817 818 public Reference addLocation() { //3 819 Reference t = new Reference(); 820 if (this.location == null) 821 this.location = new ArrayList<Reference>(); 822 this.location.add(t); 823 return t; 824 } 825 826 public HealthcareService addLocation(Reference t) { //3 827 if (t == null) 828 return this; 829 if (this.location == null) 830 this.location = new ArrayList<Reference>(); 831 this.location.add(t); 832 return this; 833 } 834 835 /** 836 * @return The first repetition of repeating field {@link #location}, creating it if it does not already exist {3} 837 */ 838 public Reference getLocationFirstRep() { 839 if (getLocation().isEmpty()) { 840 addLocation(); 841 } 842 return getLocation().get(0); 843 } 844 845 /** 846 * @return {@link #name} (Further description of the service as it would be presented to a consumer while searching.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 847 */ 848 public StringType getNameElement() { 849 if (this.name == null) 850 if (Configuration.errorOnAutoCreate()) 851 throw new Error("Attempt to auto-create HealthcareService.name"); 852 else if (Configuration.doAutoCreate()) 853 this.name = new StringType(); // bb 854 return this.name; 855 } 856 857 public boolean hasNameElement() { 858 return this.name != null && !this.name.isEmpty(); 859 } 860 861 public boolean hasName() { 862 return this.name != null && !this.name.isEmpty(); 863 } 864 865 /** 866 * @param value {@link #name} (Further description of the service as it would be presented to a consumer while searching.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 867 */ 868 public HealthcareService setNameElement(StringType value) { 869 this.name = value; 870 return this; 871 } 872 873 /** 874 * @return Further description of the service as it would be presented to a consumer while searching. 875 */ 876 public String getName() { 877 return this.name == null ? null : this.name.getValue(); 878 } 879 880 /** 881 * @param value Further description of the service as it would be presented to a consumer while searching. 882 */ 883 public HealthcareService setName(String value) { 884 if (Utilities.noString(value)) 885 this.name = null; 886 else { 887 if (this.name == null) 888 this.name = new StringType(); 889 this.name.setValue(value); 890 } 891 return this; 892 } 893 894 /** 895 * @return {@link #comment} (Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 896 */ 897 public StringType getCommentElement() { 898 if (this.comment == null) 899 if (Configuration.errorOnAutoCreate()) 900 throw new Error("Attempt to auto-create HealthcareService.comment"); 901 else if (Configuration.doAutoCreate()) 902 this.comment = new StringType(); // bb 903 return this.comment; 904 } 905 906 public boolean hasCommentElement() { 907 return this.comment != null && !this.comment.isEmpty(); 908 } 909 910 public boolean hasComment() { 911 return this.comment != null && !this.comment.isEmpty(); 912 } 913 914 /** 915 * @param value {@link #comment} (Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value 916 */ 917 public HealthcareService setCommentElement(StringType value) { 918 this.comment = value; 919 return this; 920 } 921 922 /** 923 * @return Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. 924 */ 925 public String getComment() { 926 return this.comment == null ? null : this.comment.getValue(); 927 } 928 929 /** 930 * @param value Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. 931 */ 932 public HealthcareService setComment(String value) { 933 if (Utilities.noString(value)) 934 this.comment = null; 935 else { 936 if (this.comment == null) 937 this.comment = new StringType(); 938 this.comment.setValue(value); 939 } 940 return this; 941 } 942 943 /** 944 * @return {@link #extraDetails} (Extra details about the service that can't be placed in the other fields.). This is the underlying object with id, value and extensions. The accessor "getExtraDetails" gives direct access to the value 945 */ 946 public MarkdownType getExtraDetailsElement() { 947 if (this.extraDetails == null) 948 if (Configuration.errorOnAutoCreate()) 949 throw new Error("Attempt to auto-create HealthcareService.extraDetails"); 950 else if (Configuration.doAutoCreate()) 951 this.extraDetails = new MarkdownType(); // bb 952 return this.extraDetails; 953 } 954 955 public boolean hasExtraDetailsElement() { 956 return this.extraDetails != null && !this.extraDetails.isEmpty(); 957 } 958 959 public boolean hasExtraDetails() { 960 return this.extraDetails != null && !this.extraDetails.isEmpty(); 961 } 962 963 /** 964 * @param value {@link #extraDetails} (Extra details about the service that can't be placed in the other fields.). This is the underlying object with id, value and extensions. The accessor "getExtraDetails" gives direct access to the value 965 */ 966 public HealthcareService setExtraDetailsElement(MarkdownType value) { 967 this.extraDetails = value; 968 return this; 969 } 970 971 /** 972 * @return Extra details about the service that can't be placed in the other fields. 973 */ 974 public String getExtraDetails() { 975 return this.extraDetails == null ? null : this.extraDetails.getValue(); 976 } 977 978 /** 979 * @param value Extra details about the service that can't be placed in the other fields. 980 */ 981 public HealthcareService setExtraDetails(String value) { 982 if (value == null) 983 this.extraDetails = null; 984 else { 985 if (this.extraDetails == null) 986 this.extraDetails = new MarkdownType(); 987 this.extraDetails.setValue(value); 988 } 989 return this; 990 } 991 992 /** 993 * @return {@link #photo} (If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list.) 994 */ 995 public Attachment getPhoto() { 996 if (this.photo == null) 997 if (Configuration.errorOnAutoCreate()) 998 throw new Error("Attempt to auto-create HealthcareService.photo"); 999 else if (Configuration.doAutoCreate()) 1000 this.photo = new Attachment(); // cc 1001 return this.photo; 1002 } 1003 1004 public boolean hasPhoto() { 1005 return this.photo != null && !this.photo.isEmpty(); 1006 } 1007 1008 /** 1009 * @param value {@link #photo} (If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list.) 1010 */ 1011 public HealthcareService setPhoto(Attachment value) { 1012 this.photo = value; 1013 return this; 1014 } 1015 1016 /** 1017 * @return {@link #contact} (The contact details of communication devices available relevant to the specific HealthcareService. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.) 1018 */ 1019 public List<ExtendedContactDetail> getContact() { 1020 if (this.contact == null) 1021 this.contact = new ArrayList<ExtendedContactDetail>(); 1022 return this.contact; 1023 } 1024 1025 /** 1026 * @return Returns a reference to <code>this</code> for easy method chaining 1027 */ 1028 public HealthcareService setContact(List<ExtendedContactDetail> theContact) { 1029 this.contact = theContact; 1030 return this; 1031 } 1032 1033 public boolean hasContact() { 1034 if (this.contact == null) 1035 return false; 1036 for (ExtendedContactDetail item : this.contact) 1037 if (!item.isEmpty()) 1038 return true; 1039 return false; 1040 } 1041 1042 public ExtendedContactDetail addContact() { //3 1043 ExtendedContactDetail t = new ExtendedContactDetail(); 1044 if (this.contact == null) 1045 this.contact = new ArrayList<ExtendedContactDetail>(); 1046 this.contact.add(t); 1047 return t; 1048 } 1049 1050 public HealthcareService addContact(ExtendedContactDetail t) { //3 1051 if (t == null) 1052 return this; 1053 if (this.contact == null) 1054 this.contact = new ArrayList<ExtendedContactDetail>(); 1055 this.contact.add(t); 1056 return this; 1057 } 1058 1059 /** 1060 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3} 1061 */ 1062 public ExtendedContactDetail getContactFirstRep() { 1063 if (getContact().isEmpty()) { 1064 addContact(); 1065 } 1066 return getContact().get(0); 1067 } 1068 1069 /** 1070 * @return {@link #coverageArea} (The location(s) that this service is available to (not where the service is provided).) 1071 */ 1072 public List<Reference> getCoverageArea() { 1073 if (this.coverageArea == null) 1074 this.coverageArea = new ArrayList<Reference>(); 1075 return this.coverageArea; 1076 } 1077 1078 /** 1079 * @return Returns a reference to <code>this</code> for easy method chaining 1080 */ 1081 public HealthcareService setCoverageArea(List<Reference> theCoverageArea) { 1082 this.coverageArea = theCoverageArea; 1083 return this; 1084 } 1085 1086 public boolean hasCoverageArea() { 1087 if (this.coverageArea == null) 1088 return false; 1089 for (Reference item : this.coverageArea) 1090 if (!item.isEmpty()) 1091 return true; 1092 return false; 1093 } 1094 1095 public Reference addCoverageArea() { //3 1096 Reference t = new Reference(); 1097 if (this.coverageArea == null) 1098 this.coverageArea = new ArrayList<Reference>(); 1099 this.coverageArea.add(t); 1100 return t; 1101 } 1102 1103 public HealthcareService addCoverageArea(Reference t) { //3 1104 if (t == null) 1105 return this; 1106 if (this.coverageArea == null) 1107 this.coverageArea = new ArrayList<Reference>(); 1108 this.coverageArea.add(t); 1109 return this; 1110 } 1111 1112 /** 1113 * @return The first repetition of repeating field {@link #coverageArea}, creating it if it does not already exist {3} 1114 */ 1115 public Reference getCoverageAreaFirstRep() { 1116 if (getCoverageArea().isEmpty()) { 1117 addCoverageArea(); 1118 } 1119 return getCoverageArea().get(0); 1120 } 1121 1122 /** 1123 * @return {@link #serviceProvisionCode} (The code(s) that detail the conditions under which the healthcare service is available/offered.) 1124 */ 1125 public List<CodeableConcept> getServiceProvisionCode() { 1126 if (this.serviceProvisionCode == null) 1127 this.serviceProvisionCode = new ArrayList<CodeableConcept>(); 1128 return this.serviceProvisionCode; 1129 } 1130 1131 /** 1132 * @return Returns a reference to <code>this</code> for easy method chaining 1133 */ 1134 public HealthcareService setServiceProvisionCode(List<CodeableConcept> theServiceProvisionCode) { 1135 this.serviceProvisionCode = theServiceProvisionCode; 1136 return this; 1137 } 1138 1139 public boolean hasServiceProvisionCode() { 1140 if (this.serviceProvisionCode == null) 1141 return false; 1142 for (CodeableConcept item : this.serviceProvisionCode) 1143 if (!item.isEmpty()) 1144 return true; 1145 return false; 1146 } 1147 1148 public CodeableConcept addServiceProvisionCode() { //3 1149 CodeableConcept t = new CodeableConcept(); 1150 if (this.serviceProvisionCode == null) 1151 this.serviceProvisionCode = new ArrayList<CodeableConcept>(); 1152 this.serviceProvisionCode.add(t); 1153 return t; 1154 } 1155 1156 public HealthcareService addServiceProvisionCode(CodeableConcept t) { //3 1157 if (t == null) 1158 return this; 1159 if (this.serviceProvisionCode == null) 1160 this.serviceProvisionCode = new ArrayList<CodeableConcept>(); 1161 this.serviceProvisionCode.add(t); 1162 return this; 1163 } 1164 1165 /** 1166 * @return The first repetition of repeating field {@link #serviceProvisionCode}, creating it if it does not already exist {3} 1167 */ 1168 public CodeableConcept getServiceProvisionCodeFirstRep() { 1169 if (getServiceProvisionCode().isEmpty()) { 1170 addServiceProvisionCode(); 1171 } 1172 return getServiceProvisionCode().get(0); 1173 } 1174 1175 /** 1176 * @return {@link #eligibility} (Does this service have specific eligibility requirements that need to be met in order to use the service?) 1177 */ 1178 public List<HealthcareServiceEligibilityComponent> getEligibility() { 1179 if (this.eligibility == null) 1180 this.eligibility = new ArrayList<HealthcareServiceEligibilityComponent>(); 1181 return this.eligibility; 1182 } 1183 1184 /** 1185 * @return Returns a reference to <code>this</code> for easy method chaining 1186 */ 1187 public HealthcareService setEligibility(List<HealthcareServiceEligibilityComponent> theEligibility) { 1188 this.eligibility = theEligibility; 1189 return this; 1190 } 1191 1192 public boolean hasEligibility() { 1193 if (this.eligibility == null) 1194 return false; 1195 for (HealthcareServiceEligibilityComponent item : this.eligibility) 1196 if (!item.isEmpty()) 1197 return true; 1198 return false; 1199 } 1200 1201 public HealthcareServiceEligibilityComponent addEligibility() { //3 1202 HealthcareServiceEligibilityComponent t = new HealthcareServiceEligibilityComponent(); 1203 if (this.eligibility == null) 1204 this.eligibility = new ArrayList<HealthcareServiceEligibilityComponent>(); 1205 this.eligibility.add(t); 1206 return t; 1207 } 1208 1209 public HealthcareService addEligibility(HealthcareServiceEligibilityComponent t) { //3 1210 if (t == null) 1211 return this; 1212 if (this.eligibility == null) 1213 this.eligibility = new ArrayList<HealthcareServiceEligibilityComponent>(); 1214 this.eligibility.add(t); 1215 return this; 1216 } 1217 1218 /** 1219 * @return The first repetition of repeating field {@link #eligibility}, creating it if it does not already exist {3} 1220 */ 1221 public HealthcareServiceEligibilityComponent getEligibilityFirstRep() { 1222 if (getEligibility().isEmpty()) { 1223 addEligibility(); 1224 } 1225 return getEligibility().get(0); 1226 } 1227 1228 /** 1229 * @return {@link #program} (Programs that this service is applicable to.) 1230 */ 1231 public List<CodeableConcept> getProgram() { 1232 if (this.program == null) 1233 this.program = new ArrayList<CodeableConcept>(); 1234 return this.program; 1235 } 1236 1237 /** 1238 * @return Returns a reference to <code>this</code> for easy method chaining 1239 */ 1240 public HealthcareService setProgram(List<CodeableConcept> theProgram) { 1241 this.program = theProgram; 1242 return this; 1243 } 1244 1245 public boolean hasProgram() { 1246 if (this.program == null) 1247 return false; 1248 for (CodeableConcept item : this.program) 1249 if (!item.isEmpty()) 1250 return true; 1251 return false; 1252 } 1253 1254 public CodeableConcept addProgram() { //3 1255 CodeableConcept t = new CodeableConcept(); 1256 if (this.program == null) 1257 this.program = new ArrayList<CodeableConcept>(); 1258 this.program.add(t); 1259 return t; 1260 } 1261 1262 public HealthcareService addProgram(CodeableConcept t) { //3 1263 if (t == null) 1264 return this; 1265 if (this.program == null) 1266 this.program = new ArrayList<CodeableConcept>(); 1267 this.program.add(t); 1268 return this; 1269 } 1270 1271 /** 1272 * @return The first repetition of repeating field {@link #program}, creating it if it does not already exist {3} 1273 */ 1274 public CodeableConcept getProgramFirstRep() { 1275 if (getProgram().isEmpty()) { 1276 addProgram(); 1277 } 1278 return getProgram().get(0); 1279 } 1280 1281 /** 1282 * @return {@link #characteristic} (Collection of characteristics (attributes).) 1283 */ 1284 public List<CodeableConcept> getCharacteristic() { 1285 if (this.characteristic == null) 1286 this.characteristic = new ArrayList<CodeableConcept>(); 1287 return this.characteristic; 1288 } 1289 1290 /** 1291 * @return Returns a reference to <code>this</code> for easy method chaining 1292 */ 1293 public HealthcareService setCharacteristic(List<CodeableConcept> theCharacteristic) { 1294 this.characteristic = theCharacteristic; 1295 return this; 1296 } 1297 1298 public boolean hasCharacteristic() { 1299 if (this.characteristic == null) 1300 return false; 1301 for (CodeableConcept item : this.characteristic) 1302 if (!item.isEmpty()) 1303 return true; 1304 return false; 1305 } 1306 1307 public CodeableConcept addCharacteristic() { //3 1308 CodeableConcept t = new CodeableConcept(); 1309 if (this.characteristic == null) 1310 this.characteristic = new ArrayList<CodeableConcept>(); 1311 this.characteristic.add(t); 1312 return t; 1313 } 1314 1315 public HealthcareService addCharacteristic(CodeableConcept t) { //3 1316 if (t == null) 1317 return this; 1318 if (this.characteristic == null) 1319 this.characteristic = new ArrayList<CodeableConcept>(); 1320 this.characteristic.add(t); 1321 return this; 1322 } 1323 1324 /** 1325 * @return The first repetition of repeating field {@link #characteristic}, creating it if it does not already exist {3} 1326 */ 1327 public CodeableConcept getCharacteristicFirstRep() { 1328 if (getCharacteristic().isEmpty()) { 1329 addCharacteristic(); 1330 } 1331 return getCharacteristic().get(0); 1332 } 1333 1334 /** 1335 * @return {@link #communication} (Some services are specifically made available in multiple languages, this property permits a directory to declare the languages this is offered in. Typically this is only provided where a service operates in communities with mixed languages used.) 1336 */ 1337 public List<CodeableConcept> getCommunication() { 1338 if (this.communication == null) 1339 this.communication = new ArrayList<CodeableConcept>(); 1340 return this.communication; 1341 } 1342 1343 /** 1344 * @return Returns a reference to <code>this</code> for easy method chaining 1345 */ 1346 public HealthcareService setCommunication(List<CodeableConcept> theCommunication) { 1347 this.communication = theCommunication; 1348 return this; 1349 } 1350 1351 public boolean hasCommunication() { 1352 if (this.communication == null) 1353 return false; 1354 for (CodeableConcept item : this.communication) 1355 if (!item.isEmpty()) 1356 return true; 1357 return false; 1358 } 1359 1360 public CodeableConcept addCommunication() { //3 1361 CodeableConcept t = new CodeableConcept(); 1362 if (this.communication == null) 1363 this.communication = new ArrayList<CodeableConcept>(); 1364 this.communication.add(t); 1365 return t; 1366 } 1367 1368 public HealthcareService addCommunication(CodeableConcept t) { //3 1369 if (t == null) 1370 return this; 1371 if (this.communication == null) 1372 this.communication = new ArrayList<CodeableConcept>(); 1373 this.communication.add(t); 1374 return this; 1375 } 1376 1377 /** 1378 * @return The first repetition of repeating field {@link #communication}, creating it if it does not already exist {3} 1379 */ 1380 public CodeableConcept getCommunicationFirstRep() { 1381 if (getCommunication().isEmpty()) { 1382 addCommunication(); 1383 } 1384 return getCommunication().get(0); 1385 } 1386 1387 /** 1388 * @return {@link #referralMethod} (Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required.) 1389 */ 1390 public List<CodeableConcept> getReferralMethod() { 1391 if (this.referralMethod == null) 1392 this.referralMethod = new ArrayList<CodeableConcept>(); 1393 return this.referralMethod; 1394 } 1395 1396 /** 1397 * @return Returns a reference to <code>this</code> for easy method chaining 1398 */ 1399 public HealthcareService setReferralMethod(List<CodeableConcept> theReferralMethod) { 1400 this.referralMethod = theReferralMethod; 1401 return this; 1402 } 1403 1404 public boolean hasReferralMethod() { 1405 if (this.referralMethod == null) 1406 return false; 1407 for (CodeableConcept item : this.referralMethod) 1408 if (!item.isEmpty()) 1409 return true; 1410 return false; 1411 } 1412 1413 public CodeableConcept addReferralMethod() { //3 1414 CodeableConcept t = new CodeableConcept(); 1415 if (this.referralMethod == null) 1416 this.referralMethod = new ArrayList<CodeableConcept>(); 1417 this.referralMethod.add(t); 1418 return t; 1419 } 1420 1421 public HealthcareService addReferralMethod(CodeableConcept t) { //3 1422 if (t == null) 1423 return this; 1424 if (this.referralMethod == null) 1425 this.referralMethod = new ArrayList<CodeableConcept>(); 1426 this.referralMethod.add(t); 1427 return this; 1428 } 1429 1430 /** 1431 * @return The first repetition of repeating field {@link #referralMethod}, creating it if it does not already exist {3} 1432 */ 1433 public CodeableConcept getReferralMethodFirstRep() { 1434 if (getReferralMethod().isEmpty()) { 1435 addReferralMethod(); 1436 } 1437 return getReferralMethod().get(0); 1438 } 1439 1440 /** 1441 * @return {@link #appointmentRequired} (Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.). This is the underlying object with id, value and extensions. The accessor "getAppointmentRequired" gives direct access to the value 1442 */ 1443 public BooleanType getAppointmentRequiredElement() { 1444 if (this.appointmentRequired == null) 1445 if (Configuration.errorOnAutoCreate()) 1446 throw new Error("Attempt to auto-create HealthcareService.appointmentRequired"); 1447 else if (Configuration.doAutoCreate()) 1448 this.appointmentRequired = new BooleanType(); // bb 1449 return this.appointmentRequired; 1450 } 1451 1452 public boolean hasAppointmentRequiredElement() { 1453 return this.appointmentRequired != null && !this.appointmentRequired.isEmpty(); 1454 } 1455 1456 public boolean hasAppointmentRequired() { 1457 return this.appointmentRequired != null && !this.appointmentRequired.isEmpty(); 1458 } 1459 1460 /** 1461 * @param value {@link #appointmentRequired} (Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.). This is the underlying object with id, value and extensions. The accessor "getAppointmentRequired" gives direct access to the value 1462 */ 1463 public HealthcareService setAppointmentRequiredElement(BooleanType value) { 1464 this.appointmentRequired = value; 1465 return this; 1466 } 1467 1468 /** 1469 * @return Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service. 1470 */ 1471 public boolean getAppointmentRequired() { 1472 return this.appointmentRequired == null || this.appointmentRequired.isEmpty() ? false : this.appointmentRequired.getValue(); 1473 } 1474 1475 /** 1476 * @param value Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service. 1477 */ 1478 public HealthcareService setAppointmentRequired(boolean value) { 1479 if (this.appointmentRequired == null) 1480 this.appointmentRequired = new BooleanType(); 1481 this.appointmentRequired.setValue(value); 1482 return this; 1483 } 1484 1485 /** 1486 * @return {@link #availability} (A collection of times that the healthcare service is available.) 1487 */ 1488 public List<Availability> getAvailability() { 1489 if (this.availability == null) 1490 this.availability = new ArrayList<Availability>(); 1491 return this.availability; 1492 } 1493 1494 /** 1495 * @return Returns a reference to <code>this</code> for easy method chaining 1496 */ 1497 public HealthcareService setAvailability(List<Availability> theAvailability) { 1498 this.availability = theAvailability; 1499 return this; 1500 } 1501 1502 public boolean hasAvailability() { 1503 if (this.availability == null) 1504 return false; 1505 for (Availability item : this.availability) 1506 if (!item.isEmpty()) 1507 return true; 1508 return false; 1509 } 1510 1511 public Availability addAvailability() { //3 1512 Availability t = new Availability(); 1513 if (this.availability == null) 1514 this.availability = new ArrayList<Availability>(); 1515 this.availability.add(t); 1516 return t; 1517 } 1518 1519 public HealthcareService addAvailability(Availability t) { //3 1520 if (t == null) 1521 return this; 1522 if (this.availability == null) 1523 this.availability = new ArrayList<Availability>(); 1524 this.availability.add(t); 1525 return this; 1526 } 1527 1528 /** 1529 * @return The first repetition of repeating field {@link #availability}, creating it if it does not already exist {3} 1530 */ 1531 public Availability getAvailabilityFirstRep() { 1532 if (getAvailability().isEmpty()) { 1533 addAvailability(); 1534 } 1535 return getAvailability().get(0); 1536 } 1537 1538 /** 1539 * @return {@link #endpoint} (Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.) 1540 */ 1541 public List<Reference> getEndpoint() { 1542 if (this.endpoint == null) 1543 this.endpoint = new ArrayList<Reference>(); 1544 return this.endpoint; 1545 } 1546 1547 /** 1548 * @return Returns a reference to <code>this</code> for easy method chaining 1549 */ 1550 public HealthcareService setEndpoint(List<Reference> theEndpoint) { 1551 this.endpoint = theEndpoint; 1552 return this; 1553 } 1554 1555 public boolean hasEndpoint() { 1556 if (this.endpoint == null) 1557 return false; 1558 for (Reference item : this.endpoint) 1559 if (!item.isEmpty()) 1560 return true; 1561 return false; 1562 } 1563 1564 public Reference addEndpoint() { //3 1565 Reference t = new Reference(); 1566 if (this.endpoint == null) 1567 this.endpoint = new ArrayList<Reference>(); 1568 this.endpoint.add(t); 1569 return t; 1570 } 1571 1572 public HealthcareService addEndpoint(Reference t) { //3 1573 if (t == null) 1574 return this; 1575 if (this.endpoint == null) 1576 this.endpoint = new ArrayList<Reference>(); 1577 this.endpoint.add(t); 1578 return this; 1579 } 1580 1581 /** 1582 * @return The first repetition of repeating field {@link #endpoint}, creating it if it does not already exist {3} 1583 */ 1584 public Reference getEndpointFirstRep() { 1585 if (getEndpoint().isEmpty()) { 1586 addEndpoint(); 1587 } 1588 return getEndpoint().get(0); 1589 } 1590 1591 protected void listChildren(List<Property> children) { 1592 super.listChildren(children); 1593 children.add(new Property("identifier", "Identifier", "External identifiers for this item.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1594 children.add(new Property("active", "boolean", "This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this.", 0, 1, active)); 1595 children.add(new Property("providedBy", "Reference(Organization)", "The organization that provides this healthcare service.", 0, 1, providedBy)); 1596 children.add(new Property("offeredIn", "Reference(HealthcareService)", "When the HealthcareService is representing a specific, schedulable service, the availableIn property can refer to a generic service.", 0, java.lang.Integer.MAX_VALUE, offeredIn)); 1597 children.add(new Property("category", "CodeableConcept", "Identifies the broad category of service being performed or delivered.", 0, java.lang.Integer.MAX_VALUE, category)); 1598 children.add(new Property("type", "CodeableConcept", "The specific type of service that may be delivered or performed.", 0, java.lang.Integer.MAX_VALUE, type)); 1599 children.add(new Property("specialty", "CodeableConcept", "Collection of specialties handled by the Healthcare service. This is more of a medical term.", 0, java.lang.Integer.MAX_VALUE, specialty)); 1600 children.add(new Property("location", "Reference(Location)", "The location(s) where this healthcare service may be provided.", 0, java.lang.Integer.MAX_VALUE, location)); 1601 children.add(new Property("name", "string", "Further description of the service as it would be presented to a consumer while searching.", 0, 1, name)); 1602 children.add(new Property("comment", "string", "Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.", 0, 1, comment)); 1603 children.add(new Property("extraDetails", "markdown", "Extra details about the service that can't be placed in the other fields.", 0, 1, extraDetails)); 1604 children.add(new Property("photo", "Attachment", "If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list.", 0, 1, photo)); 1605 children.add(new Property("contact", "ExtendedContactDetail", "The contact details of communication devices available relevant to the specific HealthcareService. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.", 0, java.lang.Integer.MAX_VALUE, contact)); 1606 children.add(new Property("coverageArea", "Reference(Location)", "The location(s) that this service is available to (not where the service is provided).", 0, java.lang.Integer.MAX_VALUE, coverageArea)); 1607 children.add(new Property("serviceProvisionCode", "CodeableConcept", "The code(s) that detail the conditions under which the healthcare service is available/offered.", 0, java.lang.Integer.MAX_VALUE, serviceProvisionCode)); 1608 children.add(new Property("eligibility", "", "Does this service have specific eligibility requirements that need to be met in order to use the service?", 0, java.lang.Integer.MAX_VALUE, eligibility)); 1609 children.add(new Property("program", "CodeableConcept", "Programs that this service is applicable to.", 0, java.lang.Integer.MAX_VALUE, program)); 1610 children.add(new Property("characteristic", "CodeableConcept", "Collection of characteristics (attributes).", 0, java.lang.Integer.MAX_VALUE, characteristic)); 1611 children.add(new Property("communication", "CodeableConcept", "Some services are specifically made available in multiple languages, this property permits a directory to declare the languages this is offered in. Typically this is only provided where a service operates in communities with mixed languages used.", 0, java.lang.Integer.MAX_VALUE, communication)); 1612 children.add(new Property("referralMethod", "CodeableConcept", "Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required.", 0, java.lang.Integer.MAX_VALUE, referralMethod)); 1613 children.add(new Property("appointmentRequired", "boolean", "Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.", 0, 1, appointmentRequired)); 1614 children.add(new Property("availability", "Availability", "A collection of times that the healthcare service is available.", 0, java.lang.Integer.MAX_VALUE, availability)); 1615 children.add(new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.", 0, java.lang.Integer.MAX_VALUE, endpoint)); 1616 } 1617 1618 @Override 1619 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1620 switch (_hash) { 1621 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "External identifiers for this item.", 0, java.lang.Integer.MAX_VALUE, identifier); 1622 case -1422950650: /*active*/ return new Property("active", "boolean", "This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this.", 0, 1, active); 1623 case 205136282: /*providedBy*/ return new Property("providedBy", "Reference(Organization)", "The organization that provides this healthcare service.", 0, 1, providedBy); 1624 case 1945040512: /*offeredIn*/ return new Property("offeredIn", "Reference(HealthcareService)", "When the HealthcareService is representing a specific, schedulable service, the availableIn property can refer to a generic service.", 0, java.lang.Integer.MAX_VALUE, offeredIn); 1625 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "Identifies the broad category of service being performed or delivered.", 0, java.lang.Integer.MAX_VALUE, category); 1626 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The specific type of service that may be delivered or performed.", 0, java.lang.Integer.MAX_VALUE, type); 1627 case -1694759682: /*specialty*/ return new Property("specialty", "CodeableConcept", "Collection of specialties handled by the Healthcare service. This is more of a medical term.", 0, java.lang.Integer.MAX_VALUE, specialty); 1628 case 1901043637: /*location*/ return new Property("location", "Reference(Location)", "The location(s) where this healthcare service may be provided.", 0, java.lang.Integer.MAX_VALUE, location); 1629 case 3373707: /*name*/ return new Property("name", "string", "Further description of the service as it would be presented to a consumer while searching.", 0, 1, name); 1630 case 950398559: /*comment*/ return new Property("comment", "string", "Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.", 0, 1, comment); 1631 case -1469168622: /*extraDetails*/ return new Property("extraDetails", "markdown", "Extra details about the service that can't be placed in the other fields.", 0, 1, extraDetails); 1632 case 106642994: /*photo*/ return new Property("photo", "Attachment", "If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list.", 0, 1, photo); 1633 case 951526432: /*contact*/ return new Property("contact", "ExtendedContactDetail", "The contact details of communication devices available relevant to the specific HealthcareService. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.", 0, java.lang.Integer.MAX_VALUE, contact); 1634 case -1532328299: /*coverageArea*/ return new Property("coverageArea", "Reference(Location)", "The location(s) that this service is available to (not where the service is provided).", 0, java.lang.Integer.MAX_VALUE, coverageArea); 1635 case 1504575405: /*serviceProvisionCode*/ return new Property("serviceProvisionCode", "CodeableConcept", "The code(s) that detail the conditions under which the healthcare service is available/offered.", 0, java.lang.Integer.MAX_VALUE, serviceProvisionCode); 1636 case -930847859: /*eligibility*/ return new Property("eligibility", "", "Does this service have specific eligibility requirements that need to be met in order to use the service?", 0, java.lang.Integer.MAX_VALUE, eligibility); 1637 case -309387644: /*program*/ return new Property("program", "CodeableConcept", "Programs that this service is applicable to.", 0, java.lang.Integer.MAX_VALUE, program); 1638 case 366313883: /*characteristic*/ return new Property("characteristic", "CodeableConcept", "Collection of characteristics (attributes).", 0, java.lang.Integer.MAX_VALUE, characteristic); 1639 case -1035284522: /*communication*/ return new Property("communication", "CodeableConcept", "Some services are specifically made available in multiple languages, this property permits a directory to declare the languages this is offered in. Typically this is only provided where a service operates in communities with mixed languages used.", 0, java.lang.Integer.MAX_VALUE, communication); 1640 case -2092740898: /*referralMethod*/ return new Property("referralMethod", "CodeableConcept", "Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required.", 0, java.lang.Integer.MAX_VALUE, referralMethod); 1641 case 427220062: /*appointmentRequired*/ return new Property("appointmentRequired", "boolean", "Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.", 0, 1, appointmentRequired); 1642 case 1997542747: /*availability*/ return new Property("availability", "Availability", "A collection of times that the healthcare service is available.", 0, java.lang.Integer.MAX_VALUE, availability); 1643 case 1741102485: /*endpoint*/ return new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.", 0, java.lang.Integer.MAX_VALUE, endpoint); 1644 default: return super.getNamedProperty(_hash, _name, _checkValid); 1645 } 1646 1647 } 1648 1649 @Override 1650 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1651 switch (hash) { 1652 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1653 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 1654 case 205136282: /*providedBy*/ return this.providedBy == null ? new Base[0] : new Base[] {this.providedBy}; // Reference 1655 case 1945040512: /*offeredIn*/ return this.offeredIn == null ? new Base[0] : this.offeredIn.toArray(new Base[this.offeredIn.size()]); // Reference 1656 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 1657 case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 1658 case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept 1659 case 1901043637: /*location*/ return this.location == null ? new Base[0] : this.location.toArray(new Base[this.location.size()]); // Reference 1660 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 1661 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType 1662 case -1469168622: /*extraDetails*/ return this.extraDetails == null ? new Base[0] : new Base[] {this.extraDetails}; // MarkdownType 1663 case 106642994: /*photo*/ return this.photo == null ? new Base[0] : new Base[] {this.photo}; // Attachment 1664 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ExtendedContactDetail 1665 case -1532328299: /*coverageArea*/ return this.coverageArea == null ? new Base[0] : this.coverageArea.toArray(new Base[this.coverageArea.size()]); // Reference 1666 case 1504575405: /*serviceProvisionCode*/ return this.serviceProvisionCode == null ? new Base[0] : this.serviceProvisionCode.toArray(new Base[this.serviceProvisionCode.size()]); // CodeableConcept 1667 case -930847859: /*eligibility*/ return this.eligibility == null ? new Base[0] : this.eligibility.toArray(new Base[this.eligibility.size()]); // HealthcareServiceEligibilityComponent 1668 case -309387644: /*program*/ return this.program == null ? new Base[0] : this.program.toArray(new Base[this.program.size()]); // CodeableConcept 1669 case 366313883: /*characteristic*/ return this.characteristic == null ? new Base[0] : this.characteristic.toArray(new Base[this.characteristic.size()]); // CodeableConcept 1670 case -1035284522: /*communication*/ return this.communication == null ? new Base[0] : this.communication.toArray(new Base[this.communication.size()]); // CodeableConcept 1671 case -2092740898: /*referralMethod*/ return this.referralMethod == null ? new Base[0] : this.referralMethod.toArray(new Base[this.referralMethod.size()]); // CodeableConcept 1672 case 427220062: /*appointmentRequired*/ return this.appointmentRequired == null ? new Base[0] : new Base[] {this.appointmentRequired}; // BooleanType 1673 case 1997542747: /*availability*/ return this.availability == null ? new Base[0] : this.availability.toArray(new Base[this.availability.size()]); // Availability 1674 case 1741102485: /*endpoint*/ return this.endpoint == null ? new Base[0] : this.endpoint.toArray(new Base[this.endpoint.size()]); // Reference 1675 default: return super.getProperty(hash, name, checkValid); 1676 } 1677 1678 } 1679 1680 @Override 1681 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1682 switch (hash) { 1683 case -1618432855: // identifier 1684 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 1685 return value; 1686 case -1422950650: // active 1687 this.active = TypeConvertor.castToBoolean(value); // BooleanType 1688 return value; 1689 case 205136282: // providedBy 1690 this.providedBy = TypeConvertor.castToReference(value); // Reference 1691 return value; 1692 case 1945040512: // offeredIn 1693 this.getOfferedIn().add(TypeConvertor.castToReference(value)); // Reference 1694 return value; 1695 case 50511102: // category 1696 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1697 return value; 1698 case 3575610: // type 1699 this.getType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1700 return value; 1701 case -1694759682: // specialty 1702 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1703 return value; 1704 case 1901043637: // location 1705 this.getLocation().add(TypeConvertor.castToReference(value)); // Reference 1706 return value; 1707 case 3373707: // name 1708 this.name = TypeConvertor.castToString(value); // StringType 1709 return value; 1710 case 950398559: // comment 1711 this.comment = TypeConvertor.castToString(value); // StringType 1712 return value; 1713 case -1469168622: // extraDetails 1714 this.extraDetails = TypeConvertor.castToMarkdown(value); // MarkdownType 1715 return value; 1716 case 106642994: // photo 1717 this.photo = TypeConvertor.castToAttachment(value); // Attachment 1718 return value; 1719 case 951526432: // contact 1720 this.getContact().add(TypeConvertor.castToExtendedContactDetail(value)); // ExtendedContactDetail 1721 return value; 1722 case -1532328299: // coverageArea 1723 this.getCoverageArea().add(TypeConvertor.castToReference(value)); // Reference 1724 return value; 1725 case 1504575405: // serviceProvisionCode 1726 this.getServiceProvisionCode().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1727 return value; 1728 case -930847859: // eligibility 1729 this.getEligibility().add((HealthcareServiceEligibilityComponent) value); // HealthcareServiceEligibilityComponent 1730 return value; 1731 case -309387644: // program 1732 this.getProgram().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1733 return value; 1734 case 366313883: // characteristic 1735 this.getCharacteristic().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1736 return value; 1737 case -1035284522: // communication 1738 this.getCommunication().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1739 return value; 1740 case -2092740898: // referralMethod 1741 this.getReferralMethod().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 1742 return value; 1743 case 427220062: // appointmentRequired 1744 this.appointmentRequired = TypeConvertor.castToBoolean(value); // BooleanType 1745 return value; 1746 case 1997542747: // availability 1747 this.getAvailability().add(TypeConvertor.castToAvailability(value)); // Availability 1748 return value; 1749 case 1741102485: // endpoint 1750 this.getEndpoint().add(TypeConvertor.castToReference(value)); // Reference 1751 return value; 1752 default: return super.setProperty(hash, name, value); 1753 } 1754 1755 } 1756 1757 @Override 1758 public Base setProperty(String name, Base value) throws FHIRException { 1759 if (name.equals("identifier")) { 1760 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 1761 } else if (name.equals("active")) { 1762 this.active = TypeConvertor.castToBoolean(value); // BooleanType 1763 } else if (name.equals("providedBy")) { 1764 this.providedBy = TypeConvertor.castToReference(value); // Reference 1765 } else if (name.equals("offeredIn")) { 1766 this.getOfferedIn().add(TypeConvertor.castToReference(value)); 1767 } else if (name.equals("category")) { 1768 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); 1769 } else if (name.equals("type")) { 1770 this.getType().add(TypeConvertor.castToCodeableConcept(value)); 1771 } else if (name.equals("specialty")) { 1772 this.getSpecialty().add(TypeConvertor.castToCodeableConcept(value)); 1773 } else if (name.equals("location")) { 1774 this.getLocation().add(TypeConvertor.castToReference(value)); 1775 } else if (name.equals("name")) { 1776 this.name = TypeConvertor.castToString(value); // StringType 1777 } else if (name.equals("comment")) { 1778 this.comment = TypeConvertor.castToString(value); // StringType 1779 } else if (name.equals("extraDetails")) { 1780 this.extraDetails = TypeConvertor.castToMarkdown(value); // MarkdownType 1781 } else if (name.equals("photo")) { 1782 this.photo = TypeConvertor.castToAttachment(value); // Attachment 1783 } else if (name.equals("contact")) { 1784 this.getContact().add(TypeConvertor.castToExtendedContactDetail(value)); 1785 } else if (name.equals("coverageArea")) { 1786 this.getCoverageArea().add(TypeConvertor.castToReference(value)); 1787 } else if (name.equals("serviceProvisionCode")) { 1788 this.getServiceProvisionCode().add(TypeConvertor.castToCodeableConcept(value)); 1789 } else if (name.equals("eligibility")) { 1790 this.getEligibility().add((HealthcareServiceEligibilityComponent) value); 1791 } else if (name.equals("program")) { 1792 this.getProgram().add(TypeConvertor.castToCodeableConcept(value)); 1793 } else if (name.equals("characteristic")) { 1794 this.getCharacteristic().add(TypeConvertor.castToCodeableConcept(value)); 1795 } else if (name.equals("communication")) { 1796 this.getCommunication().add(TypeConvertor.castToCodeableConcept(value)); 1797 } else if (name.equals("referralMethod")) { 1798 this.getReferralMethod().add(TypeConvertor.castToCodeableConcept(value)); 1799 } else if (name.equals("appointmentRequired")) { 1800 this.appointmentRequired = TypeConvertor.castToBoolean(value); // BooleanType 1801 } else if (name.equals("availability")) { 1802 this.getAvailability().add(TypeConvertor.castToAvailability(value)); 1803 } else if (name.equals("endpoint")) { 1804 this.getEndpoint().add(TypeConvertor.castToReference(value)); 1805 } else 1806 return super.setProperty(name, value); 1807 return value; 1808 } 1809 1810 @Override 1811 public Base makeProperty(int hash, String name) throws FHIRException { 1812 switch (hash) { 1813 case -1618432855: return addIdentifier(); 1814 case -1422950650: return getActiveElement(); 1815 case 205136282: return getProvidedBy(); 1816 case 1945040512: return addOfferedIn(); 1817 case 50511102: return addCategory(); 1818 case 3575610: return addType(); 1819 case -1694759682: return addSpecialty(); 1820 case 1901043637: return addLocation(); 1821 case 3373707: return getNameElement(); 1822 case 950398559: return getCommentElement(); 1823 case -1469168622: return getExtraDetailsElement(); 1824 case 106642994: return getPhoto(); 1825 case 951526432: return addContact(); 1826 case -1532328299: return addCoverageArea(); 1827 case 1504575405: return addServiceProvisionCode(); 1828 case -930847859: return addEligibility(); 1829 case -309387644: return addProgram(); 1830 case 366313883: return addCharacteristic(); 1831 case -1035284522: return addCommunication(); 1832 case -2092740898: return addReferralMethod(); 1833 case 427220062: return getAppointmentRequiredElement(); 1834 case 1997542747: return addAvailability(); 1835 case 1741102485: return addEndpoint(); 1836 default: return super.makeProperty(hash, name); 1837 } 1838 1839 } 1840 1841 @Override 1842 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1843 switch (hash) { 1844 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1845 case -1422950650: /*active*/ return new String[] {"boolean"}; 1846 case 205136282: /*providedBy*/ return new String[] {"Reference"}; 1847 case 1945040512: /*offeredIn*/ return new String[] {"Reference"}; 1848 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 1849 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 1850 case -1694759682: /*specialty*/ return new String[] {"CodeableConcept"}; 1851 case 1901043637: /*location*/ return new String[] {"Reference"}; 1852 case 3373707: /*name*/ return new String[] {"string"}; 1853 case 950398559: /*comment*/ return new String[] {"string"}; 1854 case -1469168622: /*extraDetails*/ return new String[] {"markdown"}; 1855 case 106642994: /*photo*/ return new String[] {"Attachment"}; 1856 case 951526432: /*contact*/ return new String[] {"ExtendedContactDetail"}; 1857 case -1532328299: /*coverageArea*/ return new String[] {"Reference"}; 1858 case 1504575405: /*serviceProvisionCode*/ return new String[] {"CodeableConcept"}; 1859 case -930847859: /*eligibility*/ return new String[] {}; 1860 case -309387644: /*program*/ return new String[] {"CodeableConcept"}; 1861 case 366313883: /*characteristic*/ return new String[] {"CodeableConcept"}; 1862 case -1035284522: /*communication*/ return new String[] {"CodeableConcept"}; 1863 case -2092740898: /*referralMethod*/ return new String[] {"CodeableConcept"}; 1864 case 427220062: /*appointmentRequired*/ return new String[] {"boolean"}; 1865 case 1997542747: /*availability*/ return new String[] {"Availability"}; 1866 case 1741102485: /*endpoint*/ return new String[] {"Reference"}; 1867 default: return super.getTypesForProperty(hash, name); 1868 } 1869 1870 } 1871 1872 @Override 1873 public Base addChild(String name) throws FHIRException { 1874 if (name.equals("identifier")) { 1875 return addIdentifier(); 1876 } 1877 else if (name.equals("active")) { 1878 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.active"); 1879 } 1880 else if (name.equals("providedBy")) { 1881 this.providedBy = new Reference(); 1882 return this.providedBy; 1883 } 1884 else if (name.equals("offeredIn")) { 1885 return addOfferedIn(); 1886 } 1887 else if (name.equals("category")) { 1888 return addCategory(); 1889 } 1890 else if (name.equals("type")) { 1891 return addType(); 1892 } 1893 else if (name.equals("specialty")) { 1894 return addSpecialty(); 1895 } 1896 else if (name.equals("location")) { 1897 return addLocation(); 1898 } 1899 else if (name.equals("name")) { 1900 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.name"); 1901 } 1902 else if (name.equals("comment")) { 1903 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.comment"); 1904 } 1905 else if (name.equals("extraDetails")) { 1906 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.extraDetails"); 1907 } 1908 else if (name.equals("photo")) { 1909 this.photo = new Attachment(); 1910 return this.photo; 1911 } 1912 else if (name.equals("contact")) { 1913 return addContact(); 1914 } 1915 else if (name.equals("coverageArea")) { 1916 return addCoverageArea(); 1917 } 1918 else if (name.equals("serviceProvisionCode")) { 1919 return addServiceProvisionCode(); 1920 } 1921 else if (name.equals("eligibility")) { 1922 return addEligibility(); 1923 } 1924 else if (name.equals("program")) { 1925 return addProgram(); 1926 } 1927 else if (name.equals("characteristic")) { 1928 return addCharacteristic(); 1929 } 1930 else if (name.equals("communication")) { 1931 return addCommunication(); 1932 } 1933 else if (name.equals("referralMethod")) { 1934 return addReferralMethod(); 1935 } 1936 else if (name.equals("appointmentRequired")) { 1937 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.appointmentRequired"); 1938 } 1939 else if (name.equals("availability")) { 1940 return addAvailability(); 1941 } 1942 else if (name.equals("endpoint")) { 1943 return addEndpoint(); 1944 } 1945 else 1946 return super.addChild(name); 1947 } 1948 1949 public String fhirType() { 1950 return "HealthcareService"; 1951 1952 } 1953 1954 public HealthcareService copy() { 1955 HealthcareService dst = new HealthcareService(); 1956 copyValues(dst); 1957 return dst; 1958 } 1959 1960 public void copyValues(HealthcareService dst) { 1961 super.copyValues(dst); 1962 if (identifier != null) { 1963 dst.identifier = new ArrayList<Identifier>(); 1964 for (Identifier i : identifier) 1965 dst.identifier.add(i.copy()); 1966 }; 1967 dst.active = active == null ? null : active.copy(); 1968 dst.providedBy = providedBy == null ? null : providedBy.copy(); 1969 if (offeredIn != null) { 1970 dst.offeredIn = new ArrayList<Reference>(); 1971 for (Reference i : offeredIn) 1972 dst.offeredIn.add(i.copy()); 1973 }; 1974 if (category != null) { 1975 dst.category = new ArrayList<CodeableConcept>(); 1976 for (CodeableConcept i : category) 1977 dst.category.add(i.copy()); 1978 }; 1979 if (type != null) { 1980 dst.type = new ArrayList<CodeableConcept>(); 1981 for (CodeableConcept i : type) 1982 dst.type.add(i.copy()); 1983 }; 1984 if (specialty != null) { 1985 dst.specialty = new ArrayList<CodeableConcept>(); 1986 for (CodeableConcept i : specialty) 1987 dst.specialty.add(i.copy()); 1988 }; 1989 if (location != null) { 1990 dst.location = new ArrayList<Reference>(); 1991 for (Reference i : location) 1992 dst.location.add(i.copy()); 1993 }; 1994 dst.name = name == null ? null : name.copy(); 1995 dst.comment = comment == null ? null : comment.copy(); 1996 dst.extraDetails = extraDetails == null ? null : extraDetails.copy(); 1997 dst.photo = photo == null ? null : photo.copy(); 1998 if (contact != null) { 1999 dst.contact = new ArrayList<ExtendedContactDetail>(); 2000 for (ExtendedContactDetail i : contact) 2001 dst.contact.add(i.copy()); 2002 }; 2003 if (coverageArea != null) { 2004 dst.coverageArea = new ArrayList<Reference>(); 2005 for (Reference i : coverageArea) 2006 dst.coverageArea.add(i.copy()); 2007 }; 2008 if (serviceProvisionCode != null) { 2009 dst.serviceProvisionCode = new ArrayList<CodeableConcept>(); 2010 for (CodeableConcept i : serviceProvisionCode) 2011 dst.serviceProvisionCode.add(i.copy()); 2012 }; 2013 if (eligibility != null) { 2014 dst.eligibility = new ArrayList<HealthcareServiceEligibilityComponent>(); 2015 for (HealthcareServiceEligibilityComponent i : eligibility) 2016 dst.eligibility.add(i.copy()); 2017 }; 2018 if (program != null) { 2019 dst.program = new ArrayList<CodeableConcept>(); 2020 for (CodeableConcept i : program) 2021 dst.program.add(i.copy()); 2022 }; 2023 if (characteristic != null) { 2024 dst.characteristic = new ArrayList<CodeableConcept>(); 2025 for (CodeableConcept i : characteristic) 2026 dst.characteristic.add(i.copy()); 2027 }; 2028 if (communication != null) { 2029 dst.communication = new ArrayList<CodeableConcept>(); 2030 for (CodeableConcept i : communication) 2031 dst.communication.add(i.copy()); 2032 }; 2033 if (referralMethod != null) { 2034 dst.referralMethod = new ArrayList<CodeableConcept>(); 2035 for (CodeableConcept i : referralMethod) 2036 dst.referralMethod.add(i.copy()); 2037 }; 2038 dst.appointmentRequired = appointmentRequired == null ? null : appointmentRequired.copy(); 2039 if (availability != null) { 2040 dst.availability = new ArrayList<Availability>(); 2041 for (Availability i : availability) 2042 dst.availability.add(i.copy()); 2043 }; 2044 if (endpoint != null) { 2045 dst.endpoint = new ArrayList<Reference>(); 2046 for (Reference i : endpoint) 2047 dst.endpoint.add(i.copy()); 2048 }; 2049 } 2050 2051 protected HealthcareService typedCopy() { 2052 return copy(); 2053 } 2054 2055 @Override 2056 public boolean equalsDeep(Base other_) { 2057 if (!super.equalsDeep(other_)) 2058 return false; 2059 if (!(other_ instanceof HealthcareService)) 2060 return false; 2061 HealthcareService o = (HealthcareService) other_; 2062 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(providedBy, o.providedBy, true) 2063 && compareDeep(offeredIn, o.offeredIn, true) && compareDeep(category, o.category, true) && compareDeep(type, o.type, true) 2064 && compareDeep(specialty, o.specialty, true) && compareDeep(location, o.location, true) && compareDeep(name, o.name, true) 2065 && compareDeep(comment, o.comment, true) && compareDeep(extraDetails, o.extraDetails, true) && compareDeep(photo, o.photo, true) 2066 && compareDeep(contact, o.contact, true) && compareDeep(coverageArea, o.coverageArea, true) && compareDeep(serviceProvisionCode, o.serviceProvisionCode, true) 2067 && compareDeep(eligibility, o.eligibility, true) && compareDeep(program, o.program, true) && compareDeep(characteristic, o.characteristic, true) 2068 && compareDeep(communication, o.communication, true) && compareDeep(referralMethod, o.referralMethod, true) 2069 && compareDeep(appointmentRequired, o.appointmentRequired, true) && compareDeep(availability, o.availability, true) 2070 && compareDeep(endpoint, o.endpoint, true); 2071 } 2072 2073 @Override 2074 public boolean equalsShallow(Base other_) { 2075 if (!super.equalsShallow(other_)) 2076 return false; 2077 if (!(other_ instanceof HealthcareService)) 2078 return false; 2079 HealthcareService o = (HealthcareService) other_; 2080 return compareValues(active, o.active, true) && compareValues(name, o.name, true) && compareValues(comment, o.comment, true) 2081 && compareValues(extraDetails, o.extraDetails, true) && compareValues(appointmentRequired, o.appointmentRequired, true) 2082 ; 2083 } 2084 2085 public boolean isEmpty() { 2086 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, providedBy 2087 , offeredIn, category, type, specialty, location, name, comment, extraDetails 2088 , photo, contact, coverageArea, serviceProvisionCode, eligibility, program, characteristic 2089 , communication, referralMethod, appointmentRequired, availability, endpoint); 2090 } 2091 2092 @Override 2093 public ResourceType getResourceType() { 2094 return ResourceType.HealthcareService; 2095 } 2096 2097 /** 2098 * Search parameter: <b>active</b> 2099 * <p> 2100 * Description: <b>The Healthcare Service is currently marked as active</b><br> 2101 * Type: <b>token</b><br> 2102 * Path: <b>HealthcareService.active</b><br> 2103 * </p> 2104 */ 2105 @SearchParamDefinition(name="active", path="HealthcareService.active", description="The Healthcare Service is currently marked as active", type="token" ) 2106 public static final String SP_ACTIVE = "active"; 2107 /** 2108 * <b>Fluent Client</b> search parameter constant for <b>active</b> 2109 * <p> 2110 * Description: <b>The Healthcare Service is currently marked as active</b><br> 2111 * Type: <b>token</b><br> 2112 * Path: <b>HealthcareService.active</b><br> 2113 * </p> 2114 */ 2115 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE); 2116 2117 /** 2118 * Search parameter: <b>characteristic</b> 2119 * <p> 2120 * Description: <b>One of the HealthcareService's characteristics</b><br> 2121 * Type: <b>token</b><br> 2122 * Path: <b>HealthcareService.characteristic</b><br> 2123 * </p> 2124 */ 2125 @SearchParamDefinition(name="characteristic", path="HealthcareService.characteristic", description="One of the HealthcareService's characteristics", type="token" ) 2126 public static final String SP_CHARACTERISTIC = "characteristic"; 2127 /** 2128 * <b>Fluent Client</b> search parameter constant for <b>characteristic</b> 2129 * <p> 2130 * Description: <b>One of the HealthcareService's characteristics</b><br> 2131 * Type: <b>token</b><br> 2132 * Path: <b>HealthcareService.characteristic</b><br> 2133 * </p> 2134 */ 2135 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CHARACTERISTIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CHARACTERISTIC); 2136 2137 /** 2138 * Search parameter: <b>coverage-area</b> 2139 * <p> 2140 * Description: <b>Location(s) service is intended for/available to</b><br> 2141 * Type: <b>reference</b><br> 2142 * Path: <b>HealthcareService.coverageArea</b><br> 2143 * </p> 2144 */ 2145 @SearchParamDefinition(name="coverage-area", path="HealthcareService.coverageArea", description="Location(s) service is intended for/available to", type="reference", target={Location.class } ) 2146 public static final String SP_COVERAGE_AREA = "coverage-area"; 2147 /** 2148 * <b>Fluent Client</b> search parameter constant for <b>coverage-area</b> 2149 * <p> 2150 * Description: <b>Location(s) service is intended for/available to</b><br> 2151 * Type: <b>reference</b><br> 2152 * Path: <b>HealthcareService.coverageArea</b><br> 2153 * </p> 2154 */ 2155 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COVERAGE_AREA = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COVERAGE_AREA); 2156 2157/** 2158 * Constant for fluent queries to be used to add include statements. Specifies 2159 * the path value of "<b>HealthcareService:coverage-area</b>". 2160 */ 2161 public static final ca.uhn.fhir.model.api.Include INCLUDE_COVERAGE_AREA = new ca.uhn.fhir.model.api.Include("HealthcareService:coverage-area").toLocked(); 2162 2163 /** 2164 * Search parameter: <b>endpoint</b> 2165 * <p> 2166 * Description: <b>Technical endpoints providing access to electronic services operated for the healthcare service</b><br> 2167 * Type: <b>reference</b><br> 2168 * Path: <b>HealthcareService.endpoint</b><br> 2169 * </p> 2170 */ 2171 @SearchParamDefinition(name="endpoint", path="HealthcareService.endpoint", description="Technical endpoints providing access to electronic services operated for the healthcare service", type="reference", target={Endpoint.class } ) 2172 public static final String SP_ENDPOINT = "endpoint"; 2173 /** 2174 * <b>Fluent Client</b> search parameter constant for <b>endpoint</b> 2175 * <p> 2176 * Description: <b>Technical endpoints providing access to electronic services operated for the healthcare service</b><br> 2177 * Type: <b>reference</b><br> 2178 * Path: <b>HealthcareService.endpoint</b><br> 2179 * </p> 2180 */ 2181 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENDPOINT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENDPOINT); 2182 2183/** 2184 * Constant for fluent queries to be used to add include statements. Specifies 2185 * the path value of "<b>HealthcareService:endpoint</b>". 2186 */ 2187 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENDPOINT = new ca.uhn.fhir.model.api.Include("HealthcareService:endpoint").toLocked(); 2188 2189 /** 2190 * Search parameter: <b>identifier</b> 2191 * <p> 2192 * Description: <b>External identifiers for this item</b><br> 2193 * Type: <b>token</b><br> 2194 * Path: <b>HealthcareService.identifier</b><br> 2195 * </p> 2196 */ 2197 @SearchParamDefinition(name="identifier", path="HealthcareService.identifier", description="External identifiers for this item", type="token" ) 2198 public static final String SP_IDENTIFIER = "identifier"; 2199 /** 2200 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2201 * <p> 2202 * Description: <b>External identifiers for this item</b><br> 2203 * Type: <b>token</b><br> 2204 * Path: <b>HealthcareService.identifier</b><br> 2205 * </p> 2206 */ 2207 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2208 2209 /** 2210 * Search parameter: <b>location</b> 2211 * <p> 2212 * Description: <b>The location of the Healthcare Service</b><br> 2213 * Type: <b>reference</b><br> 2214 * Path: <b>HealthcareService.location</b><br> 2215 * </p> 2216 */ 2217 @SearchParamDefinition(name="location", path="HealthcareService.location", description="The location of the Healthcare Service", type="reference", target={Location.class } ) 2218 public static final String SP_LOCATION = "location"; 2219 /** 2220 * <b>Fluent Client</b> search parameter constant for <b>location</b> 2221 * <p> 2222 * Description: <b>The location of the Healthcare Service</b><br> 2223 * Type: <b>reference</b><br> 2224 * Path: <b>HealthcareService.location</b><br> 2225 * </p> 2226 */ 2227 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 2228 2229/** 2230 * Constant for fluent queries to be used to add include statements. Specifies 2231 * the path value of "<b>HealthcareService:location</b>". 2232 */ 2233 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("HealthcareService:location").toLocked(); 2234 2235 /** 2236 * Search parameter: <b>name</b> 2237 * <p> 2238 * Description: <b>A portion of the Healthcare service name</b><br> 2239 * Type: <b>string</b><br> 2240 * Path: <b>HealthcareService.name</b><br> 2241 * </p> 2242 */ 2243 @SearchParamDefinition(name="name", path="HealthcareService.name", description="A portion of the Healthcare service name", type="string" ) 2244 public static final String SP_NAME = "name"; 2245 /** 2246 * <b>Fluent Client</b> search parameter constant for <b>name</b> 2247 * <p> 2248 * Description: <b>A portion of the Healthcare service name</b><br> 2249 * Type: <b>string</b><br> 2250 * Path: <b>HealthcareService.name</b><br> 2251 * </p> 2252 */ 2253 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 2254 2255 /** 2256 * Search parameter: <b>offered-in</b> 2257 * <p> 2258 * Description: <b>The service within which this service is offered</b><br> 2259 * Type: <b>reference</b><br> 2260 * Path: <b>HealthcareService.offeredIn</b><br> 2261 * </p> 2262 */ 2263 @SearchParamDefinition(name="offered-in", path="HealthcareService.offeredIn", description="The service within which this service is offered", type="reference", target={HealthcareService.class } ) 2264 public static final String SP_OFFERED_IN = "offered-in"; 2265 /** 2266 * <b>Fluent Client</b> search parameter constant for <b>offered-in</b> 2267 * <p> 2268 * Description: <b>The service within which this service is offered</b><br> 2269 * Type: <b>reference</b><br> 2270 * Path: <b>HealthcareService.offeredIn</b><br> 2271 * </p> 2272 */ 2273 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam OFFERED_IN = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_OFFERED_IN); 2274 2275/** 2276 * Constant for fluent queries to be used to add include statements. Specifies 2277 * the path value of "<b>HealthcareService:offered-in</b>". 2278 */ 2279 public static final ca.uhn.fhir.model.api.Include INCLUDE_OFFERED_IN = new ca.uhn.fhir.model.api.Include("HealthcareService:offered-in").toLocked(); 2280 2281 /** 2282 * Search parameter: <b>organization</b> 2283 * <p> 2284 * Description: <b>The organization that provides this Healthcare Service</b><br> 2285 * Type: <b>reference</b><br> 2286 * Path: <b>HealthcareService.providedBy</b><br> 2287 * </p> 2288 */ 2289 @SearchParamDefinition(name="organization", path="HealthcareService.providedBy", description="The organization that provides this Healthcare Service", type="reference", target={Organization.class } ) 2290 public static final String SP_ORGANIZATION = "organization"; 2291 /** 2292 * <b>Fluent Client</b> search parameter constant for <b>organization</b> 2293 * <p> 2294 * Description: <b>The organization that provides this Healthcare Service</b><br> 2295 * Type: <b>reference</b><br> 2296 * Path: <b>HealthcareService.providedBy</b><br> 2297 * </p> 2298 */ 2299 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION); 2300 2301/** 2302 * Constant for fluent queries to be used to add include statements. Specifies 2303 * the path value of "<b>HealthcareService:organization</b>". 2304 */ 2305 public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("HealthcareService:organization").toLocked(); 2306 2307 /** 2308 * Search parameter: <b>program</b> 2309 * <p> 2310 * Description: <b>One of the Programs supported by this HealthcareService</b><br> 2311 * Type: <b>token</b><br> 2312 * Path: <b>HealthcareService.program</b><br> 2313 * </p> 2314 */ 2315 @SearchParamDefinition(name="program", path="HealthcareService.program", description="One of the Programs supported by this HealthcareService", type="token" ) 2316 public static final String SP_PROGRAM = "program"; 2317 /** 2318 * <b>Fluent Client</b> search parameter constant for <b>program</b> 2319 * <p> 2320 * Description: <b>One of the Programs supported by this HealthcareService</b><br> 2321 * Type: <b>token</b><br> 2322 * Path: <b>HealthcareService.program</b><br> 2323 * </p> 2324 */ 2325 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PROGRAM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PROGRAM); 2326 2327 /** 2328 * Search parameter: <b>service-category</b> 2329 * <p> 2330 * Description: <b>Service Category of the Healthcare Service</b><br> 2331 * Type: <b>token</b><br> 2332 * Path: <b>HealthcareService.category</b><br> 2333 * </p> 2334 */ 2335 @SearchParamDefinition(name="service-category", path="HealthcareService.category", description="Service Category of the Healthcare Service", type="token" ) 2336 public static final String SP_SERVICE_CATEGORY = "service-category"; 2337 /** 2338 * <b>Fluent Client</b> search parameter constant for <b>service-category</b> 2339 * <p> 2340 * Description: <b>Service Category of the Healthcare Service</b><br> 2341 * Type: <b>token</b><br> 2342 * Path: <b>HealthcareService.category</b><br> 2343 * </p> 2344 */ 2345 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERVICE_CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERVICE_CATEGORY); 2346 2347 /** 2348 * Search parameter: <b>service-type</b> 2349 * <p> 2350 * Description: <b>The type of service provided by this healthcare service</b><br> 2351 * Type: <b>token</b><br> 2352 * Path: <b>HealthcareService.type</b><br> 2353 * </p> 2354 */ 2355 @SearchParamDefinition(name="service-type", path="HealthcareService.type", description="The type of service provided by this healthcare service", type="token" ) 2356 public static final String SP_SERVICE_TYPE = "service-type"; 2357 /** 2358 * <b>Fluent Client</b> search parameter constant for <b>service-type</b> 2359 * <p> 2360 * Description: <b>The type of service provided by this healthcare service</b><br> 2361 * Type: <b>token</b><br> 2362 * Path: <b>HealthcareService.type</b><br> 2363 * </p> 2364 */ 2365 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SERVICE_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SERVICE_TYPE); 2366 2367 /** 2368 * Search parameter: <b>specialty</b> 2369 * <p> 2370 * Description: <b>The specialty of the service provided by this healthcare service</b><br> 2371 * Type: <b>token</b><br> 2372 * Path: <b>HealthcareService.specialty</b><br> 2373 * </p> 2374 */ 2375 @SearchParamDefinition(name="specialty", path="HealthcareService.specialty", description="The specialty of the service provided by this healthcare service", type="token" ) 2376 public static final String SP_SPECIALTY = "specialty"; 2377 /** 2378 * <b>Fluent Client</b> search parameter constant for <b>specialty</b> 2379 * <p> 2380 * Description: <b>The specialty of the service provided by this healthcare service</b><br> 2381 * Type: <b>token</b><br> 2382 * Path: <b>HealthcareService.specialty</b><br> 2383 * </p> 2384 */ 2385 public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIALTY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SPECIALTY); 2386 2387 2388} 2389