001package org.hl7.fhir.dstu3.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Mon, Apr 17, 2017 17:38-0400 for FHIR v3.0.1 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import ca.uhn.fhir.model.api.annotation.ResourceDef; 038import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 039import ca.uhn.fhir.model.api.annotation.Child; 040import ca.uhn.fhir.model.api.annotation.ChildOrder; 041import ca.uhn.fhir.model.api.annotation.Description; 042import ca.uhn.fhir.model.api.annotation.Block; 043import org.hl7.fhir.instance.model.api.*; 044import org.hl7.fhir.exceptions.FHIRException; 045/** 046 * The details of a healthcare service available at a location. 047 */ 048@ResourceDef(name="HealthcareService", profile="http://hl7.org/fhir/Profile/HealthcareService") 049public class HealthcareService extends DomainResource { 050 051 public enum DaysOfWeek { 052 /** 053 * Monday 054 */ 055 MON, 056 /** 057 * Tuesday 058 */ 059 TUE, 060 /** 061 * Wednesday 062 */ 063 WED, 064 /** 065 * Thursday 066 */ 067 THU, 068 /** 069 * Friday 070 */ 071 FRI, 072 /** 073 * Saturday 074 */ 075 SAT, 076 /** 077 * Sunday 078 */ 079 SUN, 080 /** 081 * added to help the parsers with the generic types 082 */ 083 NULL; 084 public static DaysOfWeek fromCode(String codeString) throws FHIRException { 085 if (codeString == null || "".equals(codeString)) 086 return null; 087 if ("mon".equals(codeString)) 088 return MON; 089 if ("tue".equals(codeString)) 090 return TUE; 091 if ("wed".equals(codeString)) 092 return WED; 093 if ("thu".equals(codeString)) 094 return THU; 095 if ("fri".equals(codeString)) 096 return FRI; 097 if ("sat".equals(codeString)) 098 return SAT; 099 if ("sun".equals(codeString)) 100 return SUN; 101 if (Configuration.isAcceptInvalidEnums()) 102 return null; 103 else 104 throw new FHIRException("Unknown DaysOfWeek code '"+codeString+"'"); 105 } 106 public String toCode() { 107 switch (this) { 108 case MON: return "mon"; 109 case TUE: return "tue"; 110 case WED: return "wed"; 111 case THU: return "thu"; 112 case FRI: return "fri"; 113 case SAT: return "sat"; 114 case SUN: return "sun"; 115 default: return "?"; 116 } 117 } 118 public String getSystem() { 119 switch (this) { 120 case MON: return "http://hl7.org/fhir/days-of-week"; 121 case TUE: return "http://hl7.org/fhir/days-of-week"; 122 case WED: return "http://hl7.org/fhir/days-of-week"; 123 case THU: return "http://hl7.org/fhir/days-of-week"; 124 case FRI: return "http://hl7.org/fhir/days-of-week"; 125 case SAT: return "http://hl7.org/fhir/days-of-week"; 126 case SUN: return "http://hl7.org/fhir/days-of-week"; 127 default: return "?"; 128 } 129 } 130 public String getDefinition() { 131 switch (this) { 132 case MON: return "Monday"; 133 case TUE: return "Tuesday"; 134 case WED: return "Wednesday"; 135 case THU: return "Thursday"; 136 case FRI: return "Friday"; 137 case SAT: return "Saturday"; 138 case SUN: return "Sunday"; 139 default: return "?"; 140 } 141 } 142 public String getDisplay() { 143 switch (this) { 144 case MON: return "Monday"; 145 case TUE: return "Tuesday"; 146 case WED: return "Wednesday"; 147 case THU: return "Thursday"; 148 case FRI: return "Friday"; 149 case SAT: return "Saturday"; 150 case SUN: return "Sunday"; 151 default: return "?"; 152 } 153 } 154 } 155 156 public static class DaysOfWeekEnumFactory implements EnumFactory<DaysOfWeek> { 157 public DaysOfWeek fromCode(String codeString) throws IllegalArgumentException { 158 if (codeString == null || "".equals(codeString)) 159 if (codeString == null || "".equals(codeString)) 160 return null; 161 if ("mon".equals(codeString)) 162 return DaysOfWeek.MON; 163 if ("tue".equals(codeString)) 164 return DaysOfWeek.TUE; 165 if ("wed".equals(codeString)) 166 return DaysOfWeek.WED; 167 if ("thu".equals(codeString)) 168 return DaysOfWeek.THU; 169 if ("fri".equals(codeString)) 170 return DaysOfWeek.FRI; 171 if ("sat".equals(codeString)) 172 return DaysOfWeek.SAT; 173 if ("sun".equals(codeString)) 174 return DaysOfWeek.SUN; 175 throw new IllegalArgumentException("Unknown DaysOfWeek code '"+codeString+"'"); 176 } 177 public Enumeration<DaysOfWeek> fromType(Base code) throws FHIRException { 178 if (code == null) 179 return null; 180 if (code.isEmpty()) 181 return new Enumeration<DaysOfWeek>(this); 182 String codeString = ((PrimitiveType) code).asStringValue(); 183 if (codeString == null || "".equals(codeString)) 184 return null; 185 if ("mon".equals(codeString)) 186 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.MON); 187 if ("tue".equals(codeString)) 188 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.TUE); 189 if ("wed".equals(codeString)) 190 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.WED); 191 if ("thu".equals(codeString)) 192 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.THU); 193 if ("fri".equals(codeString)) 194 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.FRI); 195 if ("sat".equals(codeString)) 196 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.SAT); 197 if ("sun".equals(codeString)) 198 return new Enumeration<DaysOfWeek>(this, DaysOfWeek.SUN); 199 throw new FHIRException("Unknown DaysOfWeek code '"+codeString+"'"); 200 } 201 public String toCode(DaysOfWeek code) { 202 if (code == DaysOfWeek.MON) 203 return "mon"; 204 if (code == DaysOfWeek.TUE) 205 return "tue"; 206 if (code == DaysOfWeek.WED) 207 return "wed"; 208 if (code == DaysOfWeek.THU) 209 return "thu"; 210 if (code == DaysOfWeek.FRI) 211 return "fri"; 212 if (code == DaysOfWeek.SAT) 213 return "sat"; 214 if (code == DaysOfWeek.SUN) 215 return "sun"; 216 return "?"; 217 } 218 public String toSystem(DaysOfWeek code) { 219 return code.getSystem(); 220 } 221 } 222 223 @Block() 224 public static class HealthcareServiceAvailableTimeComponent extends BackboneElement implements IBaseBackboneElement { 225 /** 226 * Indicates which days of the week are available between the start and end Times. 227 */ 228 @Child(name = "daysOfWeek", type = {CodeType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 229 @Description(shortDefinition="mon | tue | wed | thu | fri | sat | sun", formalDefinition="Indicates which days of the week are available between the start and end Times." ) 230 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/days-of-week") 231 protected List<Enumeration<DaysOfWeek>> daysOfWeek; 232 233 /** 234 * Is this always available? (hence times are irrelevant) e.g. 24 hour service. 235 */ 236 @Child(name = "allDay", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false) 237 @Description(shortDefinition="Always available? e.g. 24 hour service", formalDefinition="Is this always available? (hence times are irrelevant) e.g. 24 hour service." ) 238 protected BooleanType allDay; 239 240 /** 241 * The opening time of day. Note: If the AllDay flag is set, then this time is ignored. 242 */ 243 @Child(name = "availableStartTime", type = {TimeType.class}, order=3, min=0, max=1, modifier=false, summary=false) 244 @Description(shortDefinition="Opening time of day (ignored if allDay = true)", formalDefinition="The opening time of day. Note: If the AllDay flag is set, then this time is ignored." ) 245 protected TimeType availableStartTime; 246 247 /** 248 * The closing time of day. Note: If the AllDay flag is set, then this time is ignored. 249 */ 250 @Child(name = "availableEndTime", type = {TimeType.class}, order=4, min=0, max=1, modifier=false, summary=false) 251 @Description(shortDefinition="Closing time of day (ignored if allDay = true)", formalDefinition="The closing time of day. Note: If the AllDay flag is set, then this time is ignored." ) 252 protected TimeType availableEndTime; 253 254 private static final long serialVersionUID = -2139510127L; 255 256 /** 257 * Constructor 258 */ 259 public HealthcareServiceAvailableTimeComponent() { 260 super(); 261 } 262 263 /** 264 * @return {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 265 */ 266 public List<Enumeration<DaysOfWeek>> getDaysOfWeek() { 267 if (this.daysOfWeek == null) 268 this.daysOfWeek = new ArrayList<Enumeration<DaysOfWeek>>(); 269 return this.daysOfWeek; 270 } 271 272 /** 273 * @return Returns a reference to <code>this</code> for easy method chaining 274 */ 275 public HealthcareServiceAvailableTimeComponent setDaysOfWeek(List<Enumeration<DaysOfWeek>> theDaysOfWeek) { 276 this.daysOfWeek = theDaysOfWeek; 277 return this; 278 } 279 280 public boolean hasDaysOfWeek() { 281 if (this.daysOfWeek == null) 282 return false; 283 for (Enumeration<DaysOfWeek> item : this.daysOfWeek) 284 if (!item.isEmpty()) 285 return true; 286 return false; 287 } 288 289 /** 290 * @return {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 291 */ 292 public Enumeration<DaysOfWeek> addDaysOfWeekElement() {//2 293 Enumeration<DaysOfWeek> t = new Enumeration<DaysOfWeek>(new DaysOfWeekEnumFactory()); 294 if (this.daysOfWeek == null) 295 this.daysOfWeek = new ArrayList<Enumeration<DaysOfWeek>>(); 296 this.daysOfWeek.add(t); 297 return t; 298 } 299 300 /** 301 * @param value {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 302 */ 303 public HealthcareServiceAvailableTimeComponent addDaysOfWeek(DaysOfWeek value) { //1 304 Enumeration<DaysOfWeek> t = new Enumeration<DaysOfWeek>(new DaysOfWeekEnumFactory()); 305 t.setValue(value); 306 if (this.daysOfWeek == null) 307 this.daysOfWeek = new ArrayList<Enumeration<DaysOfWeek>>(); 308 this.daysOfWeek.add(t); 309 return this; 310 } 311 312 /** 313 * @param value {@link #daysOfWeek} (Indicates which days of the week are available between the start and end Times.) 314 */ 315 public boolean hasDaysOfWeek(DaysOfWeek value) { 316 if (this.daysOfWeek == null) 317 return false; 318 for (Enumeration<DaysOfWeek> v : this.daysOfWeek) 319 if (v.getValue().equals(value)) // code 320 return true; 321 return false; 322 } 323 324 /** 325 * @return {@link #allDay} (Is this always available? (hence times are irrelevant) e.g. 24 hour service.). This is the underlying object with id, value and extensions. The accessor "getAllDay" gives direct access to the value 326 */ 327 public BooleanType getAllDayElement() { 328 if (this.allDay == null) 329 if (Configuration.errorOnAutoCreate()) 330 throw new Error("Attempt to auto-create HealthcareServiceAvailableTimeComponent.allDay"); 331 else if (Configuration.doAutoCreate()) 332 this.allDay = new BooleanType(); // bb 333 return this.allDay; 334 } 335 336 public boolean hasAllDayElement() { 337 return this.allDay != null && !this.allDay.isEmpty(); 338 } 339 340 public boolean hasAllDay() { 341 return this.allDay != null && !this.allDay.isEmpty(); 342 } 343 344 /** 345 * @param value {@link #allDay} (Is this always available? (hence times are irrelevant) e.g. 24 hour service.). This is the underlying object with id, value and extensions. The accessor "getAllDay" gives direct access to the value 346 */ 347 public HealthcareServiceAvailableTimeComponent setAllDayElement(BooleanType value) { 348 this.allDay = value; 349 return this; 350 } 351 352 /** 353 * @return Is this always available? (hence times are irrelevant) e.g. 24 hour service. 354 */ 355 public boolean getAllDay() { 356 return this.allDay == null || this.allDay.isEmpty() ? false : this.allDay.getValue(); 357 } 358 359 /** 360 * @param value Is this always available? (hence times are irrelevant) e.g. 24 hour service. 361 */ 362 public HealthcareServiceAvailableTimeComponent setAllDay(boolean value) { 363 if (this.allDay == null) 364 this.allDay = new BooleanType(); 365 this.allDay.setValue(value); 366 return this; 367 } 368 369 /** 370 * @return {@link #availableStartTime} (The opening time of day. Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableStartTime" gives direct access to the value 371 */ 372 public TimeType getAvailableStartTimeElement() { 373 if (this.availableStartTime == null) 374 if (Configuration.errorOnAutoCreate()) 375 throw new Error("Attempt to auto-create HealthcareServiceAvailableTimeComponent.availableStartTime"); 376 else if (Configuration.doAutoCreate()) 377 this.availableStartTime = new TimeType(); // bb 378 return this.availableStartTime; 379 } 380 381 public boolean hasAvailableStartTimeElement() { 382 return this.availableStartTime != null && !this.availableStartTime.isEmpty(); 383 } 384 385 public boolean hasAvailableStartTime() { 386 return this.availableStartTime != null && !this.availableStartTime.isEmpty(); 387 } 388 389 /** 390 * @param value {@link #availableStartTime} (The opening time of day. Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableStartTime" gives direct access to the value 391 */ 392 public HealthcareServiceAvailableTimeComponent setAvailableStartTimeElement(TimeType value) { 393 this.availableStartTime = value; 394 return this; 395 } 396 397 /** 398 * @return The opening time of day. Note: If the AllDay flag is set, then this time is ignored. 399 */ 400 public String getAvailableStartTime() { 401 return this.availableStartTime == null ? null : this.availableStartTime.getValue(); 402 } 403 404 /** 405 * @param value The opening time of day. Note: If the AllDay flag is set, then this time is ignored. 406 */ 407 public HealthcareServiceAvailableTimeComponent setAvailableStartTime(String value) { 408 if (value == null) 409 this.availableStartTime = null; 410 else { 411 if (this.availableStartTime == null) 412 this.availableStartTime = new TimeType(); 413 this.availableStartTime.setValue(value); 414 } 415 return this; 416 } 417 418 /** 419 * @return {@link #availableEndTime} (The closing time of day. Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableEndTime" gives direct access to the value 420 */ 421 public TimeType getAvailableEndTimeElement() { 422 if (this.availableEndTime == null) 423 if (Configuration.errorOnAutoCreate()) 424 throw new Error("Attempt to auto-create HealthcareServiceAvailableTimeComponent.availableEndTime"); 425 else if (Configuration.doAutoCreate()) 426 this.availableEndTime = new TimeType(); // bb 427 return this.availableEndTime; 428 } 429 430 public boolean hasAvailableEndTimeElement() { 431 return this.availableEndTime != null && !this.availableEndTime.isEmpty(); 432 } 433 434 public boolean hasAvailableEndTime() { 435 return this.availableEndTime != null && !this.availableEndTime.isEmpty(); 436 } 437 438 /** 439 * @param value {@link #availableEndTime} (The closing time of day. Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableEndTime" gives direct access to the value 440 */ 441 public HealthcareServiceAvailableTimeComponent setAvailableEndTimeElement(TimeType value) { 442 this.availableEndTime = value; 443 return this; 444 } 445 446 /** 447 * @return The closing time of day. Note: If the AllDay flag is set, then this time is ignored. 448 */ 449 public String getAvailableEndTime() { 450 return this.availableEndTime == null ? null : this.availableEndTime.getValue(); 451 } 452 453 /** 454 * @param value The closing time of day. Note: If the AllDay flag is set, then this time is ignored. 455 */ 456 public HealthcareServiceAvailableTimeComponent setAvailableEndTime(String value) { 457 if (value == null) 458 this.availableEndTime = null; 459 else { 460 if (this.availableEndTime == null) 461 this.availableEndTime = new TimeType(); 462 this.availableEndTime.setValue(value); 463 } 464 return this; 465 } 466 467 protected void listChildren(List<Property> childrenList) { 468 super.listChildren(childrenList); 469 childrenList.add(new Property("daysOfWeek", "code", "Indicates which days of the week are available between the start and end Times.", 0, java.lang.Integer.MAX_VALUE, daysOfWeek)); 470 childrenList.add(new Property("allDay", "boolean", "Is this always available? (hence times are irrelevant) e.g. 24 hour service.", 0, java.lang.Integer.MAX_VALUE, allDay)); 471 childrenList.add(new Property("availableStartTime", "time", "The opening time of day. Note: If the AllDay flag is set, then this time is ignored.", 0, java.lang.Integer.MAX_VALUE, availableStartTime)); 472 childrenList.add(new Property("availableEndTime", "time", "The closing time of day. Note: If the AllDay flag is set, then this time is ignored.", 0, java.lang.Integer.MAX_VALUE, availableEndTime)); 473 } 474 475 @Override 476 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 477 switch (hash) { 478 case 68050338: /*daysOfWeek*/ return this.daysOfWeek == null ? new Base[0] : this.daysOfWeek.toArray(new Base[this.daysOfWeek.size()]); // Enumeration<DaysOfWeek> 479 case -1414913477: /*allDay*/ return this.allDay == null ? new Base[0] : new Base[] {this.allDay}; // BooleanType 480 case -1039453818: /*availableStartTime*/ return this.availableStartTime == null ? new Base[0] : new Base[] {this.availableStartTime}; // TimeType 481 case 101151551: /*availableEndTime*/ return this.availableEndTime == null ? new Base[0] : new Base[] {this.availableEndTime}; // TimeType 482 default: return super.getProperty(hash, name, checkValid); 483 } 484 485 } 486 487 @Override 488 public Base setProperty(int hash, String name, Base value) throws FHIRException { 489 switch (hash) { 490 case 68050338: // daysOfWeek 491 value = new DaysOfWeekEnumFactory().fromType(castToCode(value)); 492 this.getDaysOfWeek().add((Enumeration) value); // Enumeration<DaysOfWeek> 493 return value; 494 case -1414913477: // allDay 495 this.allDay = castToBoolean(value); // BooleanType 496 return value; 497 case -1039453818: // availableStartTime 498 this.availableStartTime = castToTime(value); // TimeType 499 return value; 500 case 101151551: // availableEndTime 501 this.availableEndTime = castToTime(value); // TimeType 502 return value; 503 default: return super.setProperty(hash, name, value); 504 } 505 506 } 507 508 @Override 509 public Base setProperty(String name, Base value) throws FHIRException { 510 if (name.equals("daysOfWeek")) { 511 value = new DaysOfWeekEnumFactory().fromType(castToCode(value)); 512 this.getDaysOfWeek().add((Enumeration) value); 513 } else if (name.equals("allDay")) { 514 this.allDay = castToBoolean(value); // BooleanType 515 } else if (name.equals("availableStartTime")) { 516 this.availableStartTime = castToTime(value); // TimeType 517 } else if (name.equals("availableEndTime")) { 518 this.availableEndTime = castToTime(value); // TimeType 519 } else 520 return super.setProperty(name, value); 521 return value; 522 } 523 524 @Override 525 public Base makeProperty(int hash, String name) throws FHIRException { 526 switch (hash) { 527 case 68050338: return addDaysOfWeekElement(); 528 case -1414913477: return getAllDayElement(); 529 case -1039453818: return getAvailableStartTimeElement(); 530 case 101151551: return getAvailableEndTimeElement(); 531 default: return super.makeProperty(hash, name); 532 } 533 534 } 535 536 @Override 537 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 538 switch (hash) { 539 case 68050338: /*daysOfWeek*/ return new String[] {"code"}; 540 case -1414913477: /*allDay*/ return new String[] {"boolean"}; 541 case -1039453818: /*availableStartTime*/ return new String[] {"time"}; 542 case 101151551: /*availableEndTime*/ return new String[] {"time"}; 543 default: return super.getTypesForProperty(hash, name); 544 } 545 546 } 547 548 @Override 549 public Base addChild(String name) throws FHIRException { 550 if (name.equals("daysOfWeek")) { 551 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.daysOfWeek"); 552 } 553 else if (name.equals("allDay")) { 554 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.allDay"); 555 } 556 else if (name.equals("availableStartTime")) { 557 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.availableStartTime"); 558 } 559 else if (name.equals("availableEndTime")) { 560 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.availableEndTime"); 561 } 562 else 563 return super.addChild(name); 564 } 565 566 public HealthcareServiceAvailableTimeComponent copy() { 567 HealthcareServiceAvailableTimeComponent dst = new HealthcareServiceAvailableTimeComponent(); 568 copyValues(dst); 569 if (daysOfWeek != null) { 570 dst.daysOfWeek = new ArrayList<Enumeration<DaysOfWeek>>(); 571 for (Enumeration<DaysOfWeek> i : daysOfWeek) 572 dst.daysOfWeek.add(i.copy()); 573 }; 574 dst.allDay = allDay == null ? null : allDay.copy(); 575 dst.availableStartTime = availableStartTime == null ? null : availableStartTime.copy(); 576 dst.availableEndTime = availableEndTime == null ? null : availableEndTime.copy(); 577 return dst; 578 } 579 580 @Override 581 public boolean equalsDeep(Base other) { 582 if (!super.equalsDeep(other)) 583 return false; 584 if (!(other instanceof HealthcareServiceAvailableTimeComponent)) 585 return false; 586 HealthcareServiceAvailableTimeComponent o = (HealthcareServiceAvailableTimeComponent) other; 587 return compareDeep(daysOfWeek, o.daysOfWeek, true) && compareDeep(allDay, o.allDay, true) && compareDeep(availableStartTime, o.availableStartTime, true) 588 && compareDeep(availableEndTime, o.availableEndTime, true); 589 } 590 591 @Override 592 public boolean equalsShallow(Base other) { 593 if (!super.equalsShallow(other)) 594 return false; 595 if (!(other instanceof HealthcareServiceAvailableTimeComponent)) 596 return false; 597 HealthcareServiceAvailableTimeComponent o = (HealthcareServiceAvailableTimeComponent) other; 598 return compareValues(daysOfWeek, o.daysOfWeek, true) && compareValues(allDay, o.allDay, true) && compareValues(availableStartTime, o.availableStartTime, true) 599 && compareValues(availableEndTime, o.availableEndTime, true); 600 } 601 602 public boolean isEmpty() { 603 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(daysOfWeek, allDay, availableStartTime 604 , availableEndTime); 605 } 606 607 public String fhirType() { 608 return "HealthcareService.availableTime"; 609 610 } 611 612 } 613 614 @Block() 615 public static class HealthcareServiceNotAvailableComponent extends BackboneElement implements IBaseBackboneElement { 616 /** 617 * The reason that can be presented to the user as to why this time is not available. 618 */ 619 @Child(name = "description", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 620 @Description(shortDefinition="Reason presented to the user explaining why time not available", formalDefinition="The reason that can be presented to the user as to why this time is not available." ) 621 protected StringType description; 622 623 /** 624 * Service is not available (seasonally or for a public holiday) from this date. 625 */ 626 @Child(name = "during", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=false) 627 @Description(shortDefinition="Service not availablefrom this date", formalDefinition="Service is not available (seasonally or for a public holiday) from this date." ) 628 protected Period during; 629 630 private static final long serialVersionUID = 310849929L; 631 632 /** 633 * Constructor 634 */ 635 public HealthcareServiceNotAvailableComponent() { 636 super(); 637 } 638 639 /** 640 * Constructor 641 */ 642 public HealthcareServiceNotAvailableComponent(StringType description) { 643 super(); 644 this.description = description; 645 } 646 647 /** 648 * @return {@link #description} (The reason that can be presented to the user as to why this time is not available.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 649 */ 650 public StringType getDescriptionElement() { 651 if (this.description == null) 652 if (Configuration.errorOnAutoCreate()) 653 throw new Error("Attempt to auto-create HealthcareServiceNotAvailableComponent.description"); 654 else if (Configuration.doAutoCreate()) 655 this.description = new StringType(); // bb 656 return this.description; 657 } 658 659 public boolean hasDescriptionElement() { 660 return this.description != null && !this.description.isEmpty(); 661 } 662 663 public boolean hasDescription() { 664 return this.description != null && !this.description.isEmpty(); 665 } 666 667 /** 668 * @param value {@link #description} (The reason that can be presented to the user as to why this time is not available.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 669 */ 670 public HealthcareServiceNotAvailableComponent setDescriptionElement(StringType value) { 671 this.description = value; 672 return this; 673 } 674 675 /** 676 * @return The reason that can be presented to the user as to why this time is not available. 677 */ 678 public String getDescription() { 679 return this.description == null ? null : this.description.getValue(); 680 } 681 682 /** 683 * @param value The reason that can be presented to the user as to why this time is not available. 684 */ 685 public HealthcareServiceNotAvailableComponent setDescription(String value) { 686 if (this.description == null) 687 this.description = new StringType(); 688 this.description.setValue(value); 689 return this; 690 } 691 692 /** 693 * @return {@link #during} (Service is not available (seasonally or for a public holiday) from this date.) 694 */ 695 public Period getDuring() { 696 if (this.during == null) 697 if (Configuration.errorOnAutoCreate()) 698 throw new Error("Attempt to auto-create HealthcareServiceNotAvailableComponent.during"); 699 else if (Configuration.doAutoCreate()) 700 this.during = new Period(); // cc 701 return this.during; 702 } 703 704 public boolean hasDuring() { 705 return this.during != null && !this.during.isEmpty(); 706 } 707 708 /** 709 * @param value {@link #during} (Service is not available (seasonally or for a public holiday) from this date.) 710 */ 711 public HealthcareServiceNotAvailableComponent setDuring(Period value) { 712 this.during = value; 713 return this; 714 } 715 716 protected void listChildren(List<Property> childrenList) { 717 super.listChildren(childrenList); 718 childrenList.add(new Property("description", "string", "The reason that can be presented to the user as to why this time is not available.", 0, java.lang.Integer.MAX_VALUE, description)); 719 childrenList.add(new Property("during", "Period", "Service is not available (seasonally or for a public holiday) from this date.", 0, java.lang.Integer.MAX_VALUE, during)); 720 } 721 722 @Override 723 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 724 switch (hash) { 725 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 726 case -1320499647: /*during*/ return this.during == null ? new Base[0] : new Base[] {this.during}; // Period 727 default: return super.getProperty(hash, name, checkValid); 728 } 729 730 } 731 732 @Override 733 public Base setProperty(int hash, String name, Base value) throws FHIRException { 734 switch (hash) { 735 case -1724546052: // description 736 this.description = castToString(value); // StringType 737 return value; 738 case -1320499647: // during 739 this.during = castToPeriod(value); // Period 740 return value; 741 default: return super.setProperty(hash, name, value); 742 } 743 744 } 745 746 @Override 747 public Base setProperty(String name, Base value) throws FHIRException { 748 if (name.equals("description")) { 749 this.description = castToString(value); // StringType 750 } else if (name.equals("during")) { 751 this.during = castToPeriod(value); // Period 752 } else 753 return super.setProperty(name, value); 754 return value; 755 } 756 757 @Override 758 public Base makeProperty(int hash, String name) throws FHIRException { 759 switch (hash) { 760 case -1724546052: return getDescriptionElement(); 761 case -1320499647: return getDuring(); 762 default: return super.makeProperty(hash, name); 763 } 764 765 } 766 767 @Override 768 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 769 switch (hash) { 770 case -1724546052: /*description*/ return new String[] {"string"}; 771 case -1320499647: /*during*/ return new String[] {"Period"}; 772 default: return super.getTypesForProperty(hash, name); 773 } 774 775 } 776 777 @Override 778 public Base addChild(String name) throws FHIRException { 779 if (name.equals("description")) { 780 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.description"); 781 } 782 else if (name.equals("during")) { 783 this.during = new Period(); 784 return this.during; 785 } 786 else 787 return super.addChild(name); 788 } 789 790 public HealthcareServiceNotAvailableComponent copy() { 791 HealthcareServiceNotAvailableComponent dst = new HealthcareServiceNotAvailableComponent(); 792 copyValues(dst); 793 dst.description = description == null ? null : description.copy(); 794 dst.during = during == null ? null : during.copy(); 795 return dst; 796 } 797 798 @Override 799 public boolean equalsDeep(Base other) { 800 if (!super.equalsDeep(other)) 801 return false; 802 if (!(other instanceof HealthcareServiceNotAvailableComponent)) 803 return false; 804 HealthcareServiceNotAvailableComponent o = (HealthcareServiceNotAvailableComponent) other; 805 return compareDeep(description, o.description, true) && compareDeep(during, o.during, true); 806 } 807 808 @Override 809 public boolean equalsShallow(Base other) { 810 if (!super.equalsShallow(other)) 811 return false; 812 if (!(other instanceof HealthcareServiceNotAvailableComponent)) 813 return false; 814 HealthcareServiceNotAvailableComponent o = (HealthcareServiceNotAvailableComponent) other; 815 return compareValues(description, o.description, true); 816 } 817 818 public boolean isEmpty() { 819 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(description, during); 820 } 821 822 public String fhirType() { 823 return "HealthcareService.notAvailable"; 824 825 } 826 827 } 828 829 /** 830 * External identifiers for this item. 831 */ 832 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 833 @Description(shortDefinition="External identifiers for this item", formalDefinition="External identifiers for this item." ) 834 protected List<Identifier> identifier; 835 836 /** 837 * Whether this healthcareservice record is in active use. 838 */ 839 @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=true, summary=true) 840 @Description(shortDefinition="Whether this healthcareservice is in active use", formalDefinition="Whether this healthcareservice record is in active use." ) 841 protected BooleanType active; 842 843 /** 844 * The organization that provides this healthcare service. 845 */ 846 @Child(name = "providedBy", type = {Organization.class}, order=2, min=0, max=1, modifier=false, summary=true) 847 @Description(shortDefinition="Organization that provides this service", formalDefinition="The organization that provides this healthcare service." ) 848 protected Reference providedBy; 849 850 /** 851 * The actual object that is the target of the reference (The organization that provides this healthcare service.) 852 */ 853 protected Organization providedByTarget; 854 855 /** 856 * Identifies the broad category of service being performed or delivered. 857 */ 858 @Child(name = "category", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true) 859 @Description(shortDefinition="Broad category of service being performed or delivered", formalDefinition="Identifies the broad category of service being performed or delivered." ) 860 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-category") 861 protected CodeableConcept category; 862 863 /** 864 * The specific type of service that may be delivered or performed. 865 */ 866 @Child(name = "type", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 867 @Description(shortDefinition="Type of service that may be delivered or performed", formalDefinition="The specific type of service that may be delivered or performed." ) 868 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-type") 869 protected List<CodeableConcept> type; 870 871 /** 872 * Collection of specialties handled by the service site. This is more of a medical term. 873 */ 874 @Child(name = "specialty", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 875 @Description(shortDefinition="Specialties handled by the HealthcareService", formalDefinition="Collection of specialties handled by the service site. This is more of a medical term." ) 876 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/c80-practice-codes") 877 protected List<CodeableConcept> specialty; 878 879 /** 880 * The location(s) where this healthcare service may be provided. 881 */ 882 @Child(name = "location", type = {Location.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 883 @Description(shortDefinition="Location(s) where service may be provided", formalDefinition="The location(s) where this healthcare service may be provided." ) 884 protected List<Reference> location; 885 /** 886 * The actual objects that are the target of the reference (The location(s) where this healthcare service may be provided.) 887 */ 888 protected List<Location> locationTarget; 889 890 891 /** 892 * Further description of the service as it would be presented to a consumer while searching. 893 */ 894 @Child(name = "name", type = {StringType.class}, order=7, min=0, max=1, modifier=false, summary=true) 895 @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." ) 896 protected StringType name; 897 898 /** 899 * 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. 900 */ 901 @Child(name = "comment", type = {StringType.class}, order=8, min=0, max=1, modifier=false, summary=true) 902 @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." ) 903 protected StringType comment; 904 905 /** 906 * Extra details about the service that can't be placed in the other fields. 907 */ 908 @Child(name = "extraDetails", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=false) 909 @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." ) 910 protected StringType extraDetails; 911 912 /** 913 * 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. 914 */ 915 @Child(name = "photo", type = {Attachment.class}, order=10, min=0, max=1, modifier=false, summary=true) 916 @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." ) 917 protected Attachment photo; 918 919 /** 920 * List of contacts related to this specific healthcare service. 921 */ 922 @Child(name = "telecom", type = {ContactPoint.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 923 @Description(shortDefinition="Contacts related to the healthcare service", formalDefinition="List of contacts related to this specific healthcare service." ) 924 protected List<ContactPoint> telecom; 925 926 /** 927 * The location(s) that this service is available to (not where the service is provided). 928 */ 929 @Child(name = "coverageArea", type = {Location.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 930 @Description(shortDefinition="Location(s) service is inteded for/available to", formalDefinition="The location(s) that this service is available to (not where the service is provided)." ) 931 protected List<Reference> coverageArea; 932 /** 933 * The actual objects that are the target of the reference (The location(s) that this service is available to (not where the service is provided).) 934 */ 935 protected List<Location> coverageAreaTarget; 936 937 938 /** 939 * The code(s) that detail the conditions under which the healthcare service is available/offered. 940 */ 941 @Child(name = "serviceProvisionCode", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 942 @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." ) 943 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-provision-conditions") 944 protected List<CodeableConcept> serviceProvisionCode; 945 946 /** 947 * Does this service have specific eligibility requirements that need to be met in order to use the service? 948 */ 949 @Child(name = "eligibility", type = {CodeableConcept.class}, order=14, min=0, max=1, modifier=false, summary=false) 950 @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?" ) 951 protected CodeableConcept eligibility; 952 953 /** 954 * Describes the eligibility conditions for the service. 955 */ 956 @Child(name = "eligibilityNote", type = {StringType.class}, order=15, min=0, max=1, modifier=false, summary=false) 957 @Description(shortDefinition="Describes the eligibility conditions for the service", formalDefinition="Describes the eligibility conditions for the service." ) 958 protected StringType eligibilityNote; 959 960 /** 961 * Program Names that can be used to categorize the service. 962 */ 963 @Child(name = "programName", type = {StringType.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 964 @Description(shortDefinition="Program Names that categorize the service", formalDefinition="Program Names that can be used to categorize the service." ) 965 protected List<StringType> programName; 966 967 /** 968 * Collection of characteristics (attributes). 969 */ 970 @Child(name = "characteristic", type = {CodeableConcept.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 971 @Description(shortDefinition="Collection of characteristics (attributes)", formalDefinition="Collection of characteristics (attributes)." ) 972 protected List<CodeableConcept> characteristic; 973 974 /** 975 * Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required. 976 */ 977 @Child(name = "referralMethod", type = {CodeableConcept.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 978 @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." ) 979 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/service-referral-method") 980 protected List<CodeableConcept> referralMethod; 981 982 /** 983 * 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. 984 */ 985 @Child(name = "appointmentRequired", type = {BooleanType.class}, order=19, min=0, max=1, modifier=false, summary=false) 986 @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." ) 987 protected BooleanType appointmentRequired; 988 989 /** 990 * A collection of times that the Service Site is available. 991 */ 992 @Child(name = "availableTime", type = {}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 993 @Description(shortDefinition="Times the Service Site is available", formalDefinition="A collection of times that the Service Site is available." ) 994 protected List<HealthcareServiceAvailableTimeComponent> availableTime; 995 996 /** 997 * The HealthcareService is not available during this period of time due to the provided reason. 998 */ 999 @Child(name = "notAvailable", type = {}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1000 @Description(shortDefinition="Not available during this time due to provided reason", formalDefinition="The HealthcareService is not available during this period of time due to the provided reason." ) 1001 protected List<HealthcareServiceNotAvailableComponent> notAvailable; 1002 1003 /** 1004 * A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times. 1005 */ 1006 @Child(name = "availabilityExceptions", type = {StringType.class}, order=22, min=0, max=1, modifier=false, summary=false) 1007 @Description(shortDefinition="Description of availability exceptions", formalDefinition="A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times." ) 1008 protected StringType availabilityExceptions; 1009 1010 /** 1011 * Technical endpoints providing access to services operated for the specific healthcare services defined at this resource. 1012 */ 1013 @Child(name = "endpoint", type = {Endpoint.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1014 @Description(shortDefinition="Technical endpoints providing access to services operated for the location", formalDefinition="Technical endpoints providing access to services operated for the specific healthcare services defined at this resource." ) 1015 protected List<Reference> endpoint; 1016 /** 1017 * The actual objects that are the target of the reference (Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.) 1018 */ 1019 protected List<Endpoint> endpointTarget; 1020 1021 1022 private static final long serialVersionUID = -202805485L; 1023 1024 /** 1025 * Constructor 1026 */ 1027 public HealthcareService() { 1028 super(); 1029 } 1030 1031 /** 1032 * @return {@link #identifier} (External identifiers for this item.) 1033 */ 1034 public List<Identifier> getIdentifier() { 1035 if (this.identifier == null) 1036 this.identifier = new ArrayList<Identifier>(); 1037 return this.identifier; 1038 } 1039 1040 /** 1041 * @return Returns a reference to <code>this</code> for easy method chaining 1042 */ 1043 public HealthcareService setIdentifier(List<Identifier> theIdentifier) { 1044 this.identifier = theIdentifier; 1045 return this; 1046 } 1047 1048 public boolean hasIdentifier() { 1049 if (this.identifier == null) 1050 return false; 1051 for (Identifier item : this.identifier) 1052 if (!item.isEmpty()) 1053 return true; 1054 return false; 1055 } 1056 1057 public Identifier addIdentifier() { //3 1058 Identifier t = new Identifier(); 1059 if (this.identifier == null) 1060 this.identifier = new ArrayList<Identifier>(); 1061 this.identifier.add(t); 1062 return t; 1063 } 1064 1065 public HealthcareService addIdentifier(Identifier t) { //3 1066 if (t == null) 1067 return this; 1068 if (this.identifier == null) 1069 this.identifier = new ArrayList<Identifier>(); 1070 this.identifier.add(t); 1071 return this; 1072 } 1073 1074 /** 1075 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 1076 */ 1077 public Identifier getIdentifierFirstRep() { 1078 if (getIdentifier().isEmpty()) { 1079 addIdentifier(); 1080 } 1081 return getIdentifier().get(0); 1082 } 1083 1084 /** 1085 * @return {@link #active} (Whether this healthcareservice record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 1086 */ 1087 public BooleanType getActiveElement() { 1088 if (this.active == null) 1089 if (Configuration.errorOnAutoCreate()) 1090 throw new Error("Attempt to auto-create HealthcareService.active"); 1091 else if (Configuration.doAutoCreate()) 1092 this.active = new BooleanType(); // bb 1093 return this.active; 1094 } 1095 1096 public boolean hasActiveElement() { 1097 return this.active != null && !this.active.isEmpty(); 1098 } 1099 1100 public boolean hasActive() { 1101 return this.active != null && !this.active.isEmpty(); 1102 } 1103 1104 /** 1105 * @param value {@link #active} (Whether this healthcareservice record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 1106 */ 1107 public HealthcareService setActiveElement(BooleanType value) { 1108 this.active = value; 1109 return this; 1110 } 1111 1112 /** 1113 * @return Whether this healthcareservice record is in active use. 1114 */ 1115 public boolean getActive() { 1116 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 1117 } 1118 1119 /** 1120 * @param value Whether this healthcareservice record is in active use. 1121 */ 1122 public HealthcareService setActive(boolean value) { 1123 if (this.active == null) 1124 this.active = new BooleanType(); 1125 this.active.setValue(value); 1126 return this; 1127 } 1128 1129 /** 1130 * @return {@link #providedBy} (The organization that provides this healthcare service.) 1131 */ 1132 public Reference getProvidedBy() { 1133 if (this.providedBy == null) 1134 if (Configuration.errorOnAutoCreate()) 1135 throw new Error("Attempt to auto-create HealthcareService.providedBy"); 1136 else if (Configuration.doAutoCreate()) 1137 this.providedBy = new Reference(); // cc 1138 return this.providedBy; 1139 } 1140 1141 public boolean hasProvidedBy() { 1142 return this.providedBy != null && !this.providedBy.isEmpty(); 1143 } 1144 1145 /** 1146 * @param value {@link #providedBy} (The organization that provides this healthcare service.) 1147 */ 1148 public HealthcareService setProvidedBy(Reference value) { 1149 this.providedBy = value; 1150 return this; 1151 } 1152 1153 /** 1154 * @return {@link #providedBy} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization that provides this healthcare service.) 1155 */ 1156 public Organization getProvidedByTarget() { 1157 if (this.providedByTarget == null) 1158 if (Configuration.errorOnAutoCreate()) 1159 throw new Error("Attempt to auto-create HealthcareService.providedBy"); 1160 else if (Configuration.doAutoCreate()) 1161 this.providedByTarget = new Organization(); // aa 1162 return this.providedByTarget; 1163 } 1164 1165 /** 1166 * @param value {@link #providedBy} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization that provides this healthcare service.) 1167 */ 1168 public HealthcareService setProvidedByTarget(Organization value) { 1169 this.providedByTarget = value; 1170 return this; 1171 } 1172 1173 /** 1174 * @return {@link #category} (Identifies the broad category of service being performed or delivered.) 1175 */ 1176 public CodeableConcept getCategory() { 1177 if (this.category == null) 1178 if (Configuration.errorOnAutoCreate()) 1179 throw new Error("Attempt to auto-create HealthcareService.category"); 1180 else if (Configuration.doAutoCreate()) 1181 this.category = new CodeableConcept(); // cc 1182 return this.category; 1183 } 1184 1185 public boolean hasCategory() { 1186 return this.category != null && !this.category.isEmpty(); 1187 } 1188 1189 /** 1190 * @param value {@link #category} (Identifies the broad category of service being performed or delivered.) 1191 */ 1192 public HealthcareService setCategory(CodeableConcept value) { 1193 this.category = value; 1194 return this; 1195 } 1196 1197 /** 1198 * @return {@link #type} (The specific type of service that may be delivered or performed.) 1199 */ 1200 public List<CodeableConcept> getType() { 1201 if (this.type == null) 1202 this.type = new ArrayList<CodeableConcept>(); 1203 return this.type; 1204 } 1205 1206 /** 1207 * @return Returns a reference to <code>this</code> for easy method chaining 1208 */ 1209 public HealthcareService setType(List<CodeableConcept> theType) { 1210 this.type = theType; 1211 return this; 1212 } 1213 1214 public boolean hasType() { 1215 if (this.type == null) 1216 return false; 1217 for (CodeableConcept item : this.type) 1218 if (!item.isEmpty()) 1219 return true; 1220 return false; 1221 } 1222 1223 public CodeableConcept addType() { //3 1224 CodeableConcept t = new CodeableConcept(); 1225 if (this.type == null) 1226 this.type = new ArrayList<CodeableConcept>(); 1227 this.type.add(t); 1228 return t; 1229 } 1230 1231 public HealthcareService addType(CodeableConcept t) { //3 1232 if (t == null) 1233 return this; 1234 if (this.type == null) 1235 this.type = new ArrayList<CodeableConcept>(); 1236 this.type.add(t); 1237 return this; 1238 } 1239 1240 /** 1241 * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist 1242 */ 1243 public CodeableConcept getTypeFirstRep() { 1244 if (getType().isEmpty()) { 1245 addType(); 1246 } 1247 return getType().get(0); 1248 } 1249 1250 /** 1251 * @return {@link #specialty} (Collection of specialties handled by the service site. This is more of a medical term.) 1252 */ 1253 public List<CodeableConcept> getSpecialty() { 1254 if (this.specialty == null) 1255 this.specialty = new ArrayList<CodeableConcept>(); 1256 return this.specialty; 1257 } 1258 1259 /** 1260 * @return Returns a reference to <code>this</code> for easy method chaining 1261 */ 1262 public HealthcareService setSpecialty(List<CodeableConcept> theSpecialty) { 1263 this.specialty = theSpecialty; 1264 return this; 1265 } 1266 1267 public boolean hasSpecialty() { 1268 if (this.specialty == null) 1269 return false; 1270 for (CodeableConcept item : this.specialty) 1271 if (!item.isEmpty()) 1272 return true; 1273 return false; 1274 } 1275 1276 public CodeableConcept addSpecialty() { //3 1277 CodeableConcept t = new CodeableConcept(); 1278 if (this.specialty == null) 1279 this.specialty = new ArrayList<CodeableConcept>(); 1280 this.specialty.add(t); 1281 return t; 1282 } 1283 1284 public HealthcareService addSpecialty(CodeableConcept t) { //3 1285 if (t == null) 1286 return this; 1287 if (this.specialty == null) 1288 this.specialty = new ArrayList<CodeableConcept>(); 1289 this.specialty.add(t); 1290 return this; 1291 } 1292 1293 /** 1294 * @return The first repetition of repeating field {@link #specialty}, creating it if it does not already exist 1295 */ 1296 public CodeableConcept getSpecialtyFirstRep() { 1297 if (getSpecialty().isEmpty()) { 1298 addSpecialty(); 1299 } 1300 return getSpecialty().get(0); 1301 } 1302 1303 /** 1304 * @return {@link #location} (The location(s) where this healthcare service may be provided.) 1305 */ 1306 public List<Reference> getLocation() { 1307 if (this.location == null) 1308 this.location = new ArrayList<Reference>(); 1309 return this.location; 1310 } 1311 1312 /** 1313 * @return Returns a reference to <code>this</code> for easy method chaining 1314 */ 1315 public HealthcareService setLocation(List<Reference> theLocation) { 1316 this.location = theLocation; 1317 return this; 1318 } 1319 1320 public boolean hasLocation() { 1321 if (this.location == null) 1322 return false; 1323 for (Reference item : this.location) 1324 if (!item.isEmpty()) 1325 return true; 1326 return false; 1327 } 1328 1329 public Reference addLocation() { //3 1330 Reference t = new Reference(); 1331 if (this.location == null) 1332 this.location = new ArrayList<Reference>(); 1333 this.location.add(t); 1334 return t; 1335 } 1336 1337 public HealthcareService addLocation(Reference t) { //3 1338 if (t == null) 1339 return this; 1340 if (this.location == null) 1341 this.location = new ArrayList<Reference>(); 1342 this.location.add(t); 1343 return this; 1344 } 1345 1346 /** 1347 * @return The first repetition of repeating field {@link #location}, creating it if it does not already exist 1348 */ 1349 public Reference getLocationFirstRep() { 1350 if (getLocation().isEmpty()) { 1351 addLocation(); 1352 } 1353 return getLocation().get(0); 1354 } 1355 1356 /** 1357 * @deprecated Use Reference#setResource(IBaseResource) instead 1358 */ 1359 @Deprecated 1360 public List<Location> getLocationTarget() { 1361 if (this.locationTarget == null) 1362 this.locationTarget = new ArrayList<Location>(); 1363 return this.locationTarget; 1364 } 1365 1366 /** 1367 * @deprecated Use Reference#setResource(IBaseResource) instead 1368 */ 1369 @Deprecated 1370 public Location addLocationTarget() { 1371 Location r = new Location(); 1372 if (this.locationTarget == null) 1373 this.locationTarget = new ArrayList<Location>(); 1374 this.locationTarget.add(r); 1375 return r; 1376 } 1377 1378 /** 1379 * @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 1380 */ 1381 public StringType getNameElement() { 1382 if (this.name == null) 1383 if (Configuration.errorOnAutoCreate()) 1384 throw new Error("Attempt to auto-create HealthcareService.name"); 1385 else if (Configuration.doAutoCreate()) 1386 this.name = new StringType(); // bb 1387 return this.name; 1388 } 1389 1390 public boolean hasNameElement() { 1391 return this.name != null && !this.name.isEmpty(); 1392 } 1393 1394 public boolean hasName() { 1395 return this.name != null && !this.name.isEmpty(); 1396 } 1397 1398 /** 1399 * @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 1400 */ 1401 public HealthcareService setNameElement(StringType value) { 1402 this.name = value; 1403 return this; 1404 } 1405 1406 /** 1407 * @return Further description of the service as it would be presented to a consumer while searching. 1408 */ 1409 public String getName() { 1410 return this.name == null ? null : this.name.getValue(); 1411 } 1412 1413 /** 1414 * @param value Further description of the service as it would be presented to a consumer while searching. 1415 */ 1416 public HealthcareService setName(String value) { 1417 if (Utilities.noString(value)) 1418 this.name = null; 1419 else { 1420 if (this.name == null) 1421 this.name = new StringType(); 1422 this.name.setValue(value); 1423 } 1424 return this; 1425 } 1426 1427 /** 1428 * @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 1429 */ 1430 public StringType getCommentElement() { 1431 if (this.comment == null) 1432 if (Configuration.errorOnAutoCreate()) 1433 throw new Error("Attempt to auto-create HealthcareService.comment"); 1434 else if (Configuration.doAutoCreate()) 1435 this.comment = new StringType(); // bb 1436 return this.comment; 1437 } 1438 1439 public boolean hasCommentElement() { 1440 return this.comment != null && !this.comment.isEmpty(); 1441 } 1442 1443 public boolean hasComment() { 1444 return this.comment != null && !this.comment.isEmpty(); 1445 } 1446 1447 /** 1448 * @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 1449 */ 1450 public HealthcareService setCommentElement(StringType value) { 1451 this.comment = value; 1452 return this; 1453 } 1454 1455 /** 1456 * @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. 1457 */ 1458 public String getComment() { 1459 return this.comment == null ? null : this.comment.getValue(); 1460 } 1461 1462 /** 1463 * @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. 1464 */ 1465 public HealthcareService setComment(String value) { 1466 if (Utilities.noString(value)) 1467 this.comment = null; 1468 else { 1469 if (this.comment == null) 1470 this.comment = new StringType(); 1471 this.comment.setValue(value); 1472 } 1473 return this; 1474 } 1475 1476 /** 1477 * @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 1478 */ 1479 public StringType getExtraDetailsElement() { 1480 if (this.extraDetails == null) 1481 if (Configuration.errorOnAutoCreate()) 1482 throw new Error("Attempt to auto-create HealthcareService.extraDetails"); 1483 else if (Configuration.doAutoCreate()) 1484 this.extraDetails = new StringType(); // bb 1485 return this.extraDetails; 1486 } 1487 1488 public boolean hasExtraDetailsElement() { 1489 return this.extraDetails != null && !this.extraDetails.isEmpty(); 1490 } 1491 1492 public boolean hasExtraDetails() { 1493 return this.extraDetails != null && !this.extraDetails.isEmpty(); 1494 } 1495 1496 /** 1497 * @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 1498 */ 1499 public HealthcareService setExtraDetailsElement(StringType value) { 1500 this.extraDetails = value; 1501 return this; 1502 } 1503 1504 /** 1505 * @return Extra details about the service that can't be placed in the other fields. 1506 */ 1507 public String getExtraDetails() { 1508 return this.extraDetails == null ? null : this.extraDetails.getValue(); 1509 } 1510 1511 /** 1512 * @param value Extra details about the service that can't be placed in the other fields. 1513 */ 1514 public HealthcareService setExtraDetails(String value) { 1515 if (Utilities.noString(value)) 1516 this.extraDetails = null; 1517 else { 1518 if (this.extraDetails == null) 1519 this.extraDetails = new StringType(); 1520 this.extraDetails.setValue(value); 1521 } 1522 return this; 1523 } 1524 1525 /** 1526 * @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.) 1527 */ 1528 public Attachment getPhoto() { 1529 if (this.photo == null) 1530 if (Configuration.errorOnAutoCreate()) 1531 throw new Error("Attempt to auto-create HealthcareService.photo"); 1532 else if (Configuration.doAutoCreate()) 1533 this.photo = new Attachment(); // cc 1534 return this.photo; 1535 } 1536 1537 public boolean hasPhoto() { 1538 return this.photo != null && !this.photo.isEmpty(); 1539 } 1540 1541 /** 1542 * @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.) 1543 */ 1544 public HealthcareService setPhoto(Attachment value) { 1545 this.photo = value; 1546 return this; 1547 } 1548 1549 /** 1550 * @return {@link #telecom} (List of contacts related to this specific healthcare service.) 1551 */ 1552 public List<ContactPoint> getTelecom() { 1553 if (this.telecom == null) 1554 this.telecom = new ArrayList<ContactPoint>(); 1555 return this.telecom; 1556 } 1557 1558 /** 1559 * @return Returns a reference to <code>this</code> for easy method chaining 1560 */ 1561 public HealthcareService setTelecom(List<ContactPoint> theTelecom) { 1562 this.telecom = theTelecom; 1563 return this; 1564 } 1565 1566 public boolean hasTelecom() { 1567 if (this.telecom == null) 1568 return false; 1569 for (ContactPoint item : this.telecom) 1570 if (!item.isEmpty()) 1571 return true; 1572 return false; 1573 } 1574 1575 public ContactPoint addTelecom() { //3 1576 ContactPoint t = new ContactPoint(); 1577 if (this.telecom == null) 1578 this.telecom = new ArrayList<ContactPoint>(); 1579 this.telecom.add(t); 1580 return t; 1581 } 1582 1583 public HealthcareService addTelecom(ContactPoint t) { //3 1584 if (t == null) 1585 return this; 1586 if (this.telecom == null) 1587 this.telecom = new ArrayList<ContactPoint>(); 1588 this.telecom.add(t); 1589 return this; 1590 } 1591 1592 /** 1593 * @return The first repetition of repeating field {@link #telecom}, creating it if it does not already exist 1594 */ 1595 public ContactPoint getTelecomFirstRep() { 1596 if (getTelecom().isEmpty()) { 1597 addTelecom(); 1598 } 1599 return getTelecom().get(0); 1600 } 1601 1602 /** 1603 * @return {@link #coverageArea} (The location(s) that this service is available to (not where the service is provided).) 1604 */ 1605 public List<Reference> getCoverageArea() { 1606 if (this.coverageArea == null) 1607 this.coverageArea = new ArrayList<Reference>(); 1608 return this.coverageArea; 1609 } 1610 1611 /** 1612 * @return Returns a reference to <code>this</code> for easy method chaining 1613 */ 1614 public HealthcareService setCoverageArea(List<Reference> theCoverageArea) { 1615 this.coverageArea = theCoverageArea; 1616 return this; 1617 } 1618 1619 public boolean hasCoverageArea() { 1620 if (this.coverageArea == null) 1621 return false; 1622 for (Reference item : this.coverageArea) 1623 if (!item.isEmpty()) 1624 return true; 1625 return false; 1626 } 1627 1628 public Reference addCoverageArea() { //3 1629 Reference t = new Reference(); 1630 if (this.coverageArea == null) 1631 this.coverageArea = new ArrayList<Reference>(); 1632 this.coverageArea.add(t); 1633 return t; 1634 } 1635 1636 public HealthcareService addCoverageArea(Reference t) { //3 1637 if (t == null) 1638 return this; 1639 if (this.coverageArea == null) 1640 this.coverageArea = new ArrayList<Reference>(); 1641 this.coverageArea.add(t); 1642 return this; 1643 } 1644 1645 /** 1646 * @return The first repetition of repeating field {@link #coverageArea}, creating it if it does not already exist 1647 */ 1648 public Reference getCoverageAreaFirstRep() { 1649 if (getCoverageArea().isEmpty()) { 1650 addCoverageArea(); 1651 } 1652 return getCoverageArea().get(0); 1653 } 1654 1655 /** 1656 * @deprecated Use Reference#setResource(IBaseResource) instead 1657 */ 1658 @Deprecated 1659 public List<Location> getCoverageAreaTarget() { 1660 if (this.coverageAreaTarget == null) 1661 this.coverageAreaTarget = new ArrayList<Location>(); 1662 return this.coverageAreaTarget; 1663 } 1664 1665 /** 1666 * @deprecated Use Reference#setResource(IBaseResource) instead 1667 */ 1668 @Deprecated 1669 public Location addCoverageAreaTarget() { 1670 Location r = new Location(); 1671 if (this.coverageAreaTarget == null) 1672 this.coverageAreaTarget = new ArrayList<Location>(); 1673 this.coverageAreaTarget.add(r); 1674 return r; 1675 } 1676 1677 /** 1678 * @return {@link #serviceProvisionCode} (The code(s) that detail the conditions under which the healthcare service is available/offered.) 1679 */ 1680 public List<CodeableConcept> getServiceProvisionCode() { 1681 if (this.serviceProvisionCode == null) 1682 this.serviceProvisionCode = new ArrayList<CodeableConcept>(); 1683 return this.serviceProvisionCode; 1684 } 1685 1686 /** 1687 * @return Returns a reference to <code>this</code> for easy method chaining 1688 */ 1689 public HealthcareService setServiceProvisionCode(List<CodeableConcept> theServiceProvisionCode) { 1690 this.serviceProvisionCode = theServiceProvisionCode; 1691 return this; 1692 } 1693 1694 public boolean hasServiceProvisionCode() { 1695 if (this.serviceProvisionCode == null) 1696 return false; 1697 for (CodeableConcept item : this.serviceProvisionCode) 1698 if (!item.isEmpty()) 1699 return true; 1700 return false; 1701 } 1702 1703 public CodeableConcept addServiceProvisionCode() { //3 1704 CodeableConcept t = new CodeableConcept(); 1705 if (this.serviceProvisionCode == null) 1706 this.serviceProvisionCode = new ArrayList<CodeableConcept>(); 1707 this.serviceProvisionCode.add(t); 1708 return t; 1709 } 1710 1711 public HealthcareService addServiceProvisionCode(CodeableConcept t) { //3 1712 if (t == null) 1713 return this; 1714 if (this.serviceProvisionCode == null) 1715 this.serviceProvisionCode = new ArrayList<CodeableConcept>(); 1716 this.serviceProvisionCode.add(t); 1717 return this; 1718 } 1719 1720 /** 1721 * @return The first repetition of repeating field {@link #serviceProvisionCode}, creating it if it does not already exist 1722 */ 1723 public CodeableConcept getServiceProvisionCodeFirstRep() { 1724 if (getServiceProvisionCode().isEmpty()) { 1725 addServiceProvisionCode(); 1726 } 1727 return getServiceProvisionCode().get(0); 1728 } 1729 1730 /** 1731 * @return {@link #eligibility} (Does this service have specific eligibility requirements that need to be met in order to use the service?) 1732 */ 1733 public CodeableConcept getEligibility() { 1734 if (this.eligibility == null) 1735 if (Configuration.errorOnAutoCreate()) 1736 throw new Error("Attempt to auto-create HealthcareService.eligibility"); 1737 else if (Configuration.doAutoCreate()) 1738 this.eligibility = new CodeableConcept(); // cc 1739 return this.eligibility; 1740 } 1741 1742 public boolean hasEligibility() { 1743 return this.eligibility != null && !this.eligibility.isEmpty(); 1744 } 1745 1746 /** 1747 * @param value {@link #eligibility} (Does this service have specific eligibility requirements that need to be met in order to use the service?) 1748 */ 1749 public HealthcareService setEligibility(CodeableConcept value) { 1750 this.eligibility = value; 1751 return this; 1752 } 1753 1754 /** 1755 * @return {@link #eligibilityNote} (Describes the eligibility conditions for the service.). This is the underlying object with id, value and extensions. The accessor "getEligibilityNote" gives direct access to the value 1756 */ 1757 public StringType getEligibilityNoteElement() { 1758 if (this.eligibilityNote == null) 1759 if (Configuration.errorOnAutoCreate()) 1760 throw new Error("Attempt to auto-create HealthcareService.eligibilityNote"); 1761 else if (Configuration.doAutoCreate()) 1762 this.eligibilityNote = new StringType(); // bb 1763 return this.eligibilityNote; 1764 } 1765 1766 public boolean hasEligibilityNoteElement() { 1767 return this.eligibilityNote != null && !this.eligibilityNote.isEmpty(); 1768 } 1769 1770 public boolean hasEligibilityNote() { 1771 return this.eligibilityNote != null && !this.eligibilityNote.isEmpty(); 1772 } 1773 1774 /** 1775 * @param value {@link #eligibilityNote} (Describes the eligibility conditions for the service.). This is the underlying object with id, value and extensions. The accessor "getEligibilityNote" gives direct access to the value 1776 */ 1777 public HealthcareService setEligibilityNoteElement(StringType value) { 1778 this.eligibilityNote = value; 1779 return this; 1780 } 1781 1782 /** 1783 * @return Describes the eligibility conditions for the service. 1784 */ 1785 public String getEligibilityNote() { 1786 return this.eligibilityNote == null ? null : this.eligibilityNote.getValue(); 1787 } 1788 1789 /** 1790 * @param value Describes the eligibility conditions for the service. 1791 */ 1792 public HealthcareService setEligibilityNote(String value) { 1793 if (Utilities.noString(value)) 1794 this.eligibilityNote = null; 1795 else { 1796 if (this.eligibilityNote == null) 1797 this.eligibilityNote = new StringType(); 1798 this.eligibilityNote.setValue(value); 1799 } 1800 return this; 1801 } 1802 1803 /** 1804 * @return {@link #programName} (Program Names that can be used to categorize the service.) 1805 */ 1806 public List<StringType> getProgramName() { 1807 if (this.programName == null) 1808 this.programName = new ArrayList<StringType>(); 1809 return this.programName; 1810 } 1811 1812 /** 1813 * @return Returns a reference to <code>this</code> for easy method chaining 1814 */ 1815 public HealthcareService setProgramName(List<StringType> theProgramName) { 1816 this.programName = theProgramName; 1817 return this; 1818 } 1819 1820 public boolean hasProgramName() { 1821 if (this.programName == null) 1822 return false; 1823 for (StringType item : this.programName) 1824 if (!item.isEmpty()) 1825 return true; 1826 return false; 1827 } 1828 1829 /** 1830 * @return {@link #programName} (Program Names that can be used to categorize the service.) 1831 */ 1832 public StringType addProgramNameElement() {//2 1833 StringType t = new StringType(); 1834 if (this.programName == null) 1835 this.programName = new ArrayList<StringType>(); 1836 this.programName.add(t); 1837 return t; 1838 } 1839 1840 /** 1841 * @param value {@link #programName} (Program Names that can be used to categorize the service.) 1842 */ 1843 public HealthcareService addProgramName(String value) { //1 1844 StringType t = new StringType(); 1845 t.setValue(value); 1846 if (this.programName == null) 1847 this.programName = new ArrayList<StringType>(); 1848 this.programName.add(t); 1849 return this; 1850 } 1851 1852 /** 1853 * @param value {@link #programName} (Program Names that can be used to categorize the service.) 1854 */ 1855 public boolean hasProgramName(String value) { 1856 if (this.programName == null) 1857 return false; 1858 for (StringType v : this.programName) 1859 if (v.equals(value)) // string 1860 return true; 1861 return false; 1862 } 1863 1864 /** 1865 * @return {@link #characteristic} (Collection of characteristics (attributes).) 1866 */ 1867 public List<CodeableConcept> getCharacteristic() { 1868 if (this.characteristic == null) 1869 this.characteristic = new ArrayList<CodeableConcept>(); 1870 return this.characteristic; 1871 } 1872 1873 /** 1874 * @return Returns a reference to <code>this</code> for easy method chaining 1875 */ 1876 public HealthcareService setCharacteristic(List<CodeableConcept> theCharacteristic) { 1877 this.characteristic = theCharacteristic; 1878 return this; 1879 } 1880 1881 public boolean hasCharacteristic() { 1882 if (this.characteristic == null) 1883 return false; 1884 for (CodeableConcept item : this.characteristic) 1885 if (!item.isEmpty()) 1886 return true; 1887 return false; 1888 } 1889 1890 public CodeableConcept addCharacteristic() { //3 1891 CodeableConcept t = new CodeableConcept(); 1892 if (this.characteristic == null) 1893 this.characteristic = new ArrayList<CodeableConcept>(); 1894 this.characteristic.add(t); 1895 return t; 1896 } 1897 1898 public HealthcareService addCharacteristic(CodeableConcept t) { //3 1899 if (t == null) 1900 return this; 1901 if (this.characteristic == null) 1902 this.characteristic = new ArrayList<CodeableConcept>(); 1903 this.characteristic.add(t); 1904 return this; 1905 } 1906 1907 /** 1908 * @return The first repetition of repeating field {@link #characteristic}, creating it if it does not already exist 1909 */ 1910 public CodeableConcept getCharacteristicFirstRep() { 1911 if (getCharacteristic().isEmpty()) { 1912 addCharacteristic(); 1913 } 1914 return getCharacteristic().get(0); 1915 } 1916 1917 /** 1918 * @return {@link #referralMethod} (Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required.) 1919 */ 1920 public List<CodeableConcept> getReferralMethod() { 1921 if (this.referralMethod == null) 1922 this.referralMethod = new ArrayList<CodeableConcept>(); 1923 return this.referralMethod; 1924 } 1925 1926 /** 1927 * @return Returns a reference to <code>this</code> for easy method chaining 1928 */ 1929 public HealthcareService setReferralMethod(List<CodeableConcept> theReferralMethod) { 1930 this.referralMethod = theReferralMethod; 1931 return this; 1932 } 1933 1934 public boolean hasReferralMethod() { 1935 if (this.referralMethod == null) 1936 return false; 1937 for (CodeableConcept item : this.referralMethod) 1938 if (!item.isEmpty()) 1939 return true; 1940 return false; 1941 } 1942 1943 public CodeableConcept addReferralMethod() { //3 1944 CodeableConcept t = new CodeableConcept(); 1945 if (this.referralMethod == null) 1946 this.referralMethod = new ArrayList<CodeableConcept>(); 1947 this.referralMethod.add(t); 1948 return t; 1949 } 1950 1951 public HealthcareService addReferralMethod(CodeableConcept t) { //3 1952 if (t == null) 1953 return this; 1954 if (this.referralMethod == null) 1955 this.referralMethod = new ArrayList<CodeableConcept>(); 1956 this.referralMethod.add(t); 1957 return this; 1958 } 1959 1960 /** 1961 * @return The first repetition of repeating field {@link #referralMethod}, creating it if it does not already exist 1962 */ 1963 public CodeableConcept getReferralMethodFirstRep() { 1964 if (getReferralMethod().isEmpty()) { 1965 addReferralMethod(); 1966 } 1967 return getReferralMethod().get(0); 1968 } 1969 1970 /** 1971 * @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 1972 */ 1973 public BooleanType getAppointmentRequiredElement() { 1974 if (this.appointmentRequired == null) 1975 if (Configuration.errorOnAutoCreate()) 1976 throw new Error("Attempt to auto-create HealthcareService.appointmentRequired"); 1977 else if (Configuration.doAutoCreate()) 1978 this.appointmentRequired = new BooleanType(); // bb 1979 return this.appointmentRequired; 1980 } 1981 1982 public boolean hasAppointmentRequiredElement() { 1983 return this.appointmentRequired != null && !this.appointmentRequired.isEmpty(); 1984 } 1985 1986 public boolean hasAppointmentRequired() { 1987 return this.appointmentRequired != null && !this.appointmentRequired.isEmpty(); 1988 } 1989 1990 /** 1991 * @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 1992 */ 1993 public HealthcareService setAppointmentRequiredElement(BooleanType value) { 1994 this.appointmentRequired = value; 1995 return this; 1996 } 1997 1998 /** 1999 * @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. 2000 */ 2001 public boolean getAppointmentRequired() { 2002 return this.appointmentRequired == null || this.appointmentRequired.isEmpty() ? false : this.appointmentRequired.getValue(); 2003 } 2004 2005 /** 2006 * @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. 2007 */ 2008 public HealthcareService setAppointmentRequired(boolean value) { 2009 if (this.appointmentRequired == null) 2010 this.appointmentRequired = new BooleanType(); 2011 this.appointmentRequired.setValue(value); 2012 return this; 2013 } 2014 2015 /** 2016 * @return {@link #availableTime} (A collection of times that the Service Site is available.) 2017 */ 2018 public List<HealthcareServiceAvailableTimeComponent> getAvailableTime() { 2019 if (this.availableTime == null) 2020 this.availableTime = new ArrayList<HealthcareServiceAvailableTimeComponent>(); 2021 return this.availableTime; 2022 } 2023 2024 /** 2025 * @return Returns a reference to <code>this</code> for easy method chaining 2026 */ 2027 public HealthcareService setAvailableTime(List<HealthcareServiceAvailableTimeComponent> theAvailableTime) { 2028 this.availableTime = theAvailableTime; 2029 return this; 2030 } 2031 2032 public boolean hasAvailableTime() { 2033 if (this.availableTime == null) 2034 return false; 2035 for (HealthcareServiceAvailableTimeComponent item : this.availableTime) 2036 if (!item.isEmpty()) 2037 return true; 2038 return false; 2039 } 2040 2041 public HealthcareServiceAvailableTimeComponent addAvailableTime() { //3 2042 HealthcareServiceAvailableTimeComponent t = new HealthcareServiceAvailableTimeComponent(); 2043 if (this.availableTime == null) 2044 this.availableTime = new ArrayList<HealthcareServiceAvailableTimeComponent>(); 2045 this.availableTime.add(t); 2046 return t; 2047 } 2048 2049 public HealthcareService addAvailableTime(HealthcareServiceAvailableTimeComponent t) { //3 2050 if (t == null) 2051 return this; 2052 if (this.availableTime == null) 2053 this.availableTime = new ArrayList<HealthcareServiceAvailableTimeComponent>(); 2054 this.availableTime.add(t); 2055 return this; 2056 } 2057 2058 /** 2059 * @return The first repetition of repeating field {@link #availableTime}, creating it if it does not already exist 2060 */ 2061 public HealthcareServiceAvailableTimeComponent getAvailableTimeFirstRep() { 2062 if (getAvailableTime().isEmpty()) { 2063 addAvailableTime(); 2064 } 2065 return getAvailableTime().get(0); 2066 } 2067 2068 /** 2069 * @return {@link #notAvailable} (The HealthcareService is not available during this period of time due to the provided reason.) 2070 */ 2071 public List<HealthcareServiceNotAvailableComponent> getNotAvailable() { 2072 if (this.notAvailable == null) 2073 this.notAvailable = new ArrayList<HealthcareServiceNotAvailableComponent>(); 2074 return this.notAvailable; 2075 } 2076 2077 /** 2078 * @return Returns a reference to <code>this</code> for easy method chaining 2079 */ 2080 public HealthcareService setNotAvailable(List<HealthcareServiceNotAvailableComponent> theNotAvailable) { 2081 this.notAvailable = theNotAvailable; 2082 return this; 2083 } 2084 2085 public boolean hasNotAvailable() { 2086 if (this.notAvailable == null) 2087 return false; 2088 for (HealthcareServiceNotAvailableComponent item : this.notAvailable) 2089 if (!item.isEmpty()) 2090 return true; 2091 return false; 2092 } 2093 2094 public HealthcareServiceNotAvailableComponent addNotAvailable() { //3 2095 HealthcareServiceNotAvailableComponent t = new HealthcareServiceNotAvailableComponent(); 2096 if (this.notAvailable == null) 2097 this.notAvailable = new ArrayList<HealthcareServiceNotAvailableComponent>(); 2098 this.notAvailable.add(t); 2099 return t; 2100 } 2101 2102 public HealthcareService addNotAvailable(HealthcareServiceNotAvailableComponent t) { //3 2103 if (t == null) 2104 return this; 2105 if (this.notAvailable == null) 2106 this.notAvailable = new ArrayList<HealthcareServiceNotAvailableComponent>(); 2107 this.notAvailable.add(t); 2108 return this; 2109 } 2110 2111 /** 2112 * @return The first repetition of repeating field {@link #notAvailable}, creating it if it does not already exist 2113 */ 2114 public HealthcareServiceNotAvailableComponent getNotAvailableFirstRep() { 2115 if (getNotAvailable().isEmpty()) { 2116 addNotAvailable(); 2117 } 2118 return getNotAvailable().get(0); 2119 } 2120 2121 /** 2122 * @return {@link #availabilityExceptions} (A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.). This is the underlying object with id, value and extensions. The accessor "getAvailabilityExceptions" gives direct access to the value 2123 */ 2124 public StringType getAvailabilityExceptionsElement() { 2125 if (this.availabilityExceptions == null) 2126 if (Configuration.errorOnAutoCreate()) 2127 throw new Error("Attempt to auto-create HealthcareService.availabilityExceptions"); 2128 else if (Configuration.doAutoCreate()) 2129 this.availabilityExceptions = new StringType(); // bb 2130 return this.availabilityExceptions; 2131 } 2132 2133 public boolean hasAvailabilityExceptionsElement() { 2134 return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); 2135 } 2136 2137 public boolean hasAvailabilityExceptions() { 2138 return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); 2139 } 2140 2141 /** 2142 * @param value {@link #availabilityExceptions} (A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.). This is the underlying object with id, value and extensions. The accessor "getAvailabilityExceptions" gives direct access to the value 2143 */ 2144 public HealthcareService setAvailabilityExceptionsElement(StringType value) { 2145 this.availabilityExceptions = value; 2146 return this; 2147 } 2148 2149 /** 2150 * @return A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times. 2151 */ 2152 public String getAvailabilityExceptions() { 2153 return this.availabilityExceptions == null ? null : this.availabilityExceptions.getValue(); 2154 } 2155 2156 /** 2157 * @param value A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times. 2158 */ 2159 public HealthcareService setAvailabilityExceptions(String value) { 2160 if (Utilities.noString(value)) 2161 this.availabilityExceptions = null; 2162 else { 2163 if (this.availabilityExceptions == null) 2164 this.availabilityExceptions = new StringType(); 2165 this.availabilityExceptions.setValue(value); 2166 } 2167 return this; 2168 } 2169 2170 /** 2171 * @return {@link #endpoint} (Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.) 2172 */ 2173 public List<Reference> getEndpoint() { 2174 if (this.endpoint == null) 2175 this.endpoint = new ArrayList<Reference>(); 2176 return this.endpoint; 2177 } 2178 2179 /** 2180 * @return Returns a reference to <code>this</code> for easy method chaining 2181 */ 2182 public HealthcareService setEndpoint(List<Reference> theEndpoint) { 2183 this.endpoint = theEndpoint; 2184 return this; 2185 } 2186 2187 public boolean hasEndpoint() { 2188 if (this.endpoint == null) 2189 return false; 2190 for (Reference item : this.endpoint) 2191 if (!item.isEmpty()) 2192 return true; 2193 return false; 2194 } 2195 2196 public Reference addEndpoint() { //3 2197 Reference t = new Reference(); 2198 if (this.endpoint == null) 2199 this.endpoint = new ArrayList<Reference>(); 2200 this.endpoint.add(t); 2201 return t; 2202 } 2203 2204 public HealthcareService addEndpoint(Reference t) { //3 2205 if (t == null) 2206 return this; 2207 if (this.endpoint == null) 2208 this.endpoint = new ArrayList<Reference>(); 2209 this.endpoint.add(t); 2210 return this; 2211 } 2212 2213 /** 2214 * @return The first repetition of repeating field {@link #endpoint}, creating it if it does not already exist 2215 */ 2216 public Reference getEndpointFirstRep() { 2217 if (getEndpoint().isEmpty()) { 2218 addEndpoint(); 2219 } 2220 return getEndpoint().get(0); 2221 } 2222 2223 /** 2224 * @deprecated Use Reference#setResource(IBaseResource) instead 2225 */ 2226 @Deprecated 2227 public List<Endpoint> getEndpointTarget() { 2228 if (this.endpointTarget == null) 2229 this.endpointTarget = new ArrayList<Endpoint>(); 2230 return this.endpointTarget; 2231 } 2232 2233 /** 2234 * @deprecated Use Reference#setResource(IBaseResource) instead 2235 */ 2236 @Deprecated 2237 public Endpoint addEndpointTarget() { 2238 Endpoint r = new Endpoint(); 2239 if (this.endpointTarget == null) 2240 this.endpointTarget = new ArrayList<Endpoint>(); 2241 this.endpointTarget.add(r); 2242 return r; 2243 } 2244 2245 protected void listChildren(List<Property> childrenList) { 2246 super.listChildren(childrenList); 2247 childrenList.add(new Property("identifier", "Identifier", "External identifiers for this item.", 0, java.lang.Integer.MAX_VALUE, identifier)); 2248 childrenList.add(new Property("active", "boolean", "Whether this healthcareservice record is in active use.", 0, java.lang.Integer.MAX_VALUE, active)); 2249 childrenList.add(new Property("providedBy", "Reference(Organization)", "The organization that provides this healthcare service.", 0, java.lang.Integer.MAX_VALUE, providedBy)); 2250 childrenList.add(new Property("category", "CodeableConcept", "Identifies the broad category of service being performed or delivered.", 0, java.lang.Integer.MAX_VALUE, category)); 2251 childrenList.add(new Property("type", "CodeableConcept", "The specific type of service that may be delivered or performed.", 0, java.lang.Integer.MAX_VALUE, type)); 2252 childrenList.add(new Property("specialty", "CodeableConcept", "Collection of specialties handled by the service site. This is more of a medical term.", 0, java.lang.Integer.MAX_VALUE, specialty)); 2253 childrenList.add(new Property("location", "Reference(Location)", "The location(s) where this healthcare service may be provided.", 0, java.lang.Integer.MAX_VALUE, location)); 2254 childrenList.add(new Property("name", "string", "Further description of the service as it would be presented to a consumer while searching.", 0, java.lang.Integer.MAX_VALUE, name)); 2255 childrenList.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, java.lang.Integer.MAX_VALUE, comment)); 2256 childrenList.add(new Property("extraDetails", "string", "Extra details about the service that can't be placed in the other fields.", 0, java.lang.Integer.MAX_VALUE, extraDetails)); 2257 childrenList.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, java.lang.Integer.MAX_VALUE, photo)); 2258 childrenList.add(new Property("telecom", "ContactPoint", "List of contacts related to this specific healthcare service.", 0, java.lang.Integer.MAX_VALUE, telecom)); 2259 childrenList.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)); 2260 childrenList.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)); 2261 childrenList.add(new Property("eligibility", "CodeableConcept", "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)); 2262 childrenList.add(new Property("eligibilityNote", "string", "Describes the eligibility conditions for the service.", 0, java.lang.Integer.MAX_VALUE, eligibilityNote)); 2263 childrenList.add(new Property("programName", "string", "Program Names that can be used to categorize the service.", 0, java.lang.Integer.MAX_VALUE, programName)); 2264 childrenList.add(new Property("characteristic", "CodeableConcept", "Collection of characteristics (attributes).", 0, java.lang.Integer.MAX_VALUE, characteristic)); 2265 childrenList.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)); 2266 childrenList.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, java.lang.Integer.MAX_VALUE, appointmentRequired)); 2267 childrenList.add(new Property("availableTime", "", "A collection of times that the Service Site is available.", 0, java.lang.Integer.MAX_VALUE, availableTime)); 2268 childrenList.add(new Property("notAvailable", "", "The HealthcareService is not available during this period of time due to the provided reason.", 0, java.lang.Integer.MAX_VALUE, notAvailable)); 2269 childrenList.add(new Property("availabilityExceptions", "string", "A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times.", 0, java.lang.Integer.MAX_VALUE, availabilityExceptions)); 2270 childrenList.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)); 2271 } 2272 2273 @Override 2274 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2275 switch (hash) { 2276 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2277 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 2278 case 205136282: /*providedBy*/ return this.providedBy == null ? new Base[0] : new Base[] {this.providedBy}; // Reference 2279 case 50511102: /*category*/ return this.category == null ? new Base[0] : new Base[] {this.category}; // CodeableConcept 2280 case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept 2281 case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept 2282 case 1901043637: /*location*/ return this.location == null ? new Base[0] : this.location.toArray(new Base[this.location.size()]); // Reference 2283 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 2284 case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType 2285 case -1469168622: /*extraDetails*/ return this.extraDetails == null ? new Base[0] : new Base[] {this.extraDetails}; // StringType 2286 case 106642994: /*photo*/ return this.photo == null ? new Base[0] : new Base[] {this.photo}; // Attachment 2287 case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint 2288 case -1532328299: /*coverageArea*/ return this.coverageArea == null ? new Base[0] : this.coverageArea.toArray(new Base[this.coverageArea.size()]); // Reference 2289 case 1504575405: /*serviceProvisionCode*/ return this.serviceProvisionCode == null ? new Base[0] : this.serviceProvisionCode.toArray(new Base[this.serviceProvisionCode.size()]); // CodeableConcept 2290 case -930847859: /*eligibility*/ return this.eligibility == null ? new Base[0] : new Base[] {this.eligibility}; // CodeableConcept 2291 case 1635973407: /*eligibilityNote*/ return this.eligibilityNote == null ? new Base[0] : new Base[] {this.eligibilityNote}; // StringType 2292 case 1010379567: /*programName*/ return this.programName == null ? new Base[0] : this.programName.toArray(new Base[this.programName.size()]); // StringType 2293 case 366313883: /*characteristic*/ return this.characteristic == null ? new Base[0] : this.characteristic.toArray(new Base[this.characteristic.size()]); // CodeableConcept 2294 case -2092740898: /*referralMethod*/ return this.referralMethod == null ? new Base[0] : this.referralMethod.toArray(new Base[this.referralMethod.size()]); // CodeableConcept 2295 case 427220062: /*appointmentRequired*/ return this.appointmentRequired == null ? new Base[0] : new Base[] {this.appointmentRequired}; // BooleanType 2296 case 1873069366: /*availableTime*/ return this.availableTime == null ? new Base[0] : this.availableTime.toArray(new Base[this.availableTime.size()]); // HealthcareServiceAvailableTimeComponent 2297 case -629572298: /*notAvailable*/ return this.notAvailable == null ? new Base[0] : this.notAvailable.toArray(new Base[this.notAvailable.size()]); // HealthcareServiceNotAvailableComponent 2298 case -1149143617: /*availabilityExceptions*/ return this.availabilityExceptions == null ? new Base[0] : new Base[] {this.availabilityExceptions}; // StringType 2299 case 1741102485: /*endpoint*/ return this.endpoint == null ? new Base[0] : this.endpoint.toArray(new Base[this.endpoint.size()]); // Reference 2300 default: return super.getProperty(hash, name, checkValid); 2301 } 2302 2303 } 2304 2305 @Override 2306 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2307 switch (hash) { 2308 case -1618432855: // identifier 2309 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2310 return value; 2311 case -1422950650: // active 2312 this.active = castToBoolean(value); // BooleanType 2313 return value; 2314 case 205136282: // providedBy 2315 this.providedBy = castToReference(value); // Reference 2316 return value; 2317 case 50511102: // category 2318 this.category = castToCodeableConcept(value); // CodeableConcept 2319 return value; 2320 case 3575610: // type 2321 this.getType().add(castToCodeableConcept(value)); // CodeableConcept 2322 return value; 2323 case -1694759682: // specialty 2324 this.getSpecialty().add(castToCodeableConcept(value)); // CodeableConcept 2325 return value; 2326 case 1901043637: // location 2327 this.getLocation().add(castToReference(value)); // Reference 2328 return value; 2329 case 3373707: // name 2330 this.name = castToString(value); // StringType 2331 return value; 2332 case 950398559: // comment 2333 this.comment = castToString(value); // StringType 2334 return value; 2335 case -1469168622: // extraDetails 2336 this.extraDetails = castToString(value); // StringType 2337 return value; 2338 case 106642994: // photo 2339 this.photo = castToAttachment(value); // Attachment 2340 return value; 2341 case -1429363305: // telecom 2342 this.getTelecom().add(castToContactPoint(value)); // ContactPoint 2343 return value; 2344 case -1532328299: // coverageArea 2345 this.getCoverageArea().add(castToReference(value)); // Reference 2346 return value; 2347 case 1504575405: // serviceProvisionCode 2348 this.getServiceProvisionCode().add(castToCodeableConcept(value)); // CodeableConcept 2349 return value; 2350 case -930847859: // eligibility 2351 this.eligibility = castToCodeableConcept(value); // CodeableConcept 2352 return value; 2353 case 1635973407: // eligibilityNote 2354 this.eligibilityNote = castToString(value); // StringType 2355 return value; 2356 case 1010379567: // programName 2357 this.getProgramName().add(castToString(value)); // StringType 2358 return value; 2359 case 366313883: // characteristic 2360 this.getCharacteristic().add(castToCodeableConcept(value)); // CodeableConcept 2361 return value; 2362 case -2092740898: // referralMethod 2363 this.getReferralMethod().add(castToCodeableConcept(value)); // CodeableConcept 2364 return value; 2365 case 427220062: // appointmentRequired 2366 this.appointmentRequired = castToBoolean(value); // BooleanType 2367 return value; 2368 case 1873069366: // availableTime 2369 this.getAvailableTime().add((HealthcareServiceAvailableTimeComponent) value); // HealthcareServiceAvailableTimeComponent 2370 return value; 2371 case -629572298: // notAvailable 2372 this.getNotAvailable().add((HealthcareServiceNotAvailableComponent) value); // HealthcareServiceNotAvailableComponent 2373 return value; 2374 case -1149143617: // availabilityExceptions 2375 this.availabilityExceptions = castToString(value); // StringType 2376 return value; 2377 case 1741102485: // endpoint 2378 this.getEndpoint().add(castToReference(value)); // Reference 2379 return value; 2380 default: return super.setProperty(hash, name, value); 2381 } 2382 2383 } 2384 2385 @Override 2386 public Base setProperty(String name, Base value) throws FHIRException { 2387 if (name.equals("identifier")) { 2388 this.getIdentifier().add(castToIdentifier(value)); 2389 } else if (name.equals("active")) { 2390 this.active = castToBoolean(value); // BooleanType 2391 } else if (name.equals("providedBy")) { 2392 this.providedBy = castToReference(value); // Reference 2393 } else if (name.equals("category")) { 2394 this.category = castToCodeableConcept(value); // CodeableConcept 2395 } else if (name.equals("type")) { 2396 this.getType().add(castToCodeableConcept(value)); 2397 } else if (name.equals("specialty")) { 2398 this.getSpecialty().add(castToCodeableConcept(value)); 2399 } else if (name.equals("location")) { 2400 this.getLocation().add(castToReference(value)); 2401 } else if (name.equals("name")) { 2402 this.name = castToString(value); // StringType 2403 } else if (name.equals("comment")) { 2404 this.comment = castToString(value); // StringType 2405 } else if (name.equals("extraDetails")) { 2406 this.extraDetails = castToString(value); // StringType 2407 } else if (name.equals("photo")) { 2408 this.photo = castToAttachment(value); // Attachment 2409 } else if (name.equals("telecom")) { 2410 this.getTelecom().add(castToContactPoint(value)); 2411 } else if (name.equals("coverageArea")) { 2412 this.getCoverageArea().add(castToReference(value)); 2413 } else if (name.equals("serviceProvisionCode")) { 2414 this.getServiceProvisionCode().add(castToCodeableConcept(value)); 2415 } else if (name.equals("eligibility")) { 2416 this.eligibility = castToCodeableConcept(value); // CodeableConcept 2417 } else if (name.equals("eligibilityNote")) { 2418 this.eligibilityNote = castToString(value); // StringType 2419 } else if (name.equals("programName")) { 2420 this.getProgramName().add(castToString(value)); 2421 } else if (name.equals("characteristic")) { 2422 this.getCharacteristic().add(castToCodeableConcept(value)); 2423 } else if (name.equals("referralMethod")) { 2424 this.getReferralMethod().add(castToCodeableConcept(value)); 2425 } else if (name.equals("appointmentRequired")) { 2426 this.appointmentRequired = castToBoolean(value); // BooleanType 2427 } else if (name.equals("availableTime")) { 2428 this.getAvailableTime().add((HealthcareServiceAvailableTimeComponent) value); 2429 } else if (name.equals("notAvailable")) { 2430 this.getNotAvailable().add((HealthcareServiceNotAvailableComponent) value); 2431 } else if (name.equals("availabilityExceptions")) { 2432 this.availabilityExceptions = castToString(value); // StringType 2433 } else if (name.equals("endpoint")) { 2434 this.getEndpoint().add(castToReference(value)); 2435 } else 2436 return super.setProperty(name, value); 2437 return value; 2438 } 2439 2440 @Override 2441 public Base makeProperty(int hash, String name) throws FHIRException { 2442 switch (hash) { 2443 case -1618432855: return addIdentifier(); 2444 case -1422950650: return getActiveElement(); 2445 case 205136282: return getProvidedBy(); 2446 case 50511102: return getCategory(); 2447 case 3575610: return addType(); 2448 case -1694759682: return addSpecialty(); 2449 case 1901043637: return addLocation(); 2450 case 3373707: return getNameElement(); 2451 case 950398559: return getCommentElement(); 2452 case -1469168622: return getExtraDetailsElement(); 2453 case 106642994: return getPhoto(); 2454 case -1429363305: return addTelecom(); 2455 case -1532328299: return addCoverageArea(); 2456 case 1504575405: return addServiceProvisionCode(); 2457 case -930847859: return getEligibility(); 2458 case 1635973407: return getEligibilityNoteElement(); 2459 case 1010379567: return addProgramNameElement(); 2460 case 366313883: return addCharacteristic(); 2461 case -2092740898: return addReferralMethod(); 2462 case 427220062: return getAppointmentRequiredElement(); 2463 case 1873069366: return addAvailableTime(); 2464 case -629572298: return addNotAvailable(); 2465 case -1149143617: return getAvailabilityExceptionsElement(); 2466 case 1741102485: return addEndpoint(); 2467 default: return super.makeProperty(hash, name); 2468 } 2469 2470 } 2471 2472 @Override 2473 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2474 switch (hash) { 2475 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2476 case -1422950650: /*active*/ return new String[] {"boolean"}; 2477 case 205136282: /*providedBy*/ return new String[] {"Reference"}; 2478 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 2479 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 2480 case -1694759682: /*specialty*/ return new String[] {"CodeableConcept"}; 2481 case 1901043637: /*location*/ return new String[] {"Reference"}; 2482 case 3373707: /*name*/ return new String[] {"string"}; 2483 case 950398559: /*comment*/ return new String[] {"string"}; 2484 case -1469168622: /*extraDetails*/ return new String[] {"string"}; 2485 case 106642994: /*photo*/ return new String[] {"Attachment"}; 2486 case -1429363305: /*telecom*/ return new String[] {"ContactPoint"}; 2487 case -1532328299: /*coverageArea*/ return new String[] {"Reference"}; 2488 case 1504575405: /*serviceProvisionCode*/ return new String[] {"CodeableConcept"}; 2489 case -930847859: /*eligibility*/ return new String[] {"CodeableConcept"}; 2490 case 1635973407: /*eligibilityNote*/ return new String[] {"string"}; 2491 case 1010379567: /*programName*/ return new String[] {"string"}; 2492 case 366313883: /*characteristic*/ return new String[] {"CodeableConcept"}; 2493 case -2092740898: /*referralMethod*/ return new String[] {"CodeableConcept"}; 2494 case 427220062: /*appointmentRequired*/ return new String[] {"boolean"}; 2495 case 1873069366: /*availableTime*/ return new String[] {}; 2496 case -629572298: /*notAvailable*/ return new String[] {}; 2497 case -1149143617: /*availabilityExceptions*/ return new String[] {"string"}; 2498 case 1741102485: /*endpoint*/ return new String[] {"Reference"}; 2499 default: return super.getTypesForProperty(hash, name); 2500 } 2501 2502 } 2503 2504 @Override 2505 public Base addChild(String name) throws FHIRException { 2506 if (name.equals("identifier")) { 2507 return addIdentifier(); 2508 } 2509 else if (name.equals("active")) { 2510 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.active"); 2511 } 2512 else if (name.equals("providedBy")) { 2513 this.providedBy = new Reference(); 2514 return this.providedBy; 2515 } 2516 else if (name.equals("category")) { 2517 this.category = new CodeableConcept(); 2518 return this.category; 2519 } 2520 else if (name.equals("type")) { 2521 return addType(); 2522 } 2523 else if (name.equals("specialty")) { 2524 return addSpecialty(); 2525 } 2526 else if (name.equals("location")) { 2527 return addLocation(); 2528 } 2529 else if (name.equals("name")) { 2530 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.name"); 2531 } 2532 else if (name.equals("comment")) { 2533 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.comment"); 2534 } 2535 else if (name.equals("extraDetails")) { 2536 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.extraDetails"); 2537 } 2538 else if (name.equals("photo")) { 2539 this.photo = new Attachment(); 2540 return this.photo; 2541 } 2542 else if (name.equals("telecom")) { 2543 return addTelecom(); 2544 } 2545 else if (name.equals("coverageArea")) { 2546 return addCoverageArea(); 2547 } 2548 else if (name.equals("serviceProvisionCode")) { 2549 return addServiceProvisionCode(); 2550 } 2551 else if (name.equals("eligibility")) { 2552 this.eligibility = new CodeableConcept(); 2553 return this.eligibility; 2554 } 2555 else if (name.equals("eligibilityNote")) { 2556 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.eligibilityNote"); 2557 } 2558 else if (name.equals("programName")) { 2559 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.programName"); 2560 } 2561 else if (name.equals("characteristic")) { 2562 return addCharacteristic(); 2563 } 2564 else if (name.equals("referralMethod")) { 2565 return addReferralMethod(); 2566 } 2567 else if (name.equals("appointmentRequired")) { 2568 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.appointmentRequired"); 2569 } 2570 else if (name.equals("availableTime")) { 2571 return addAvailableTime(); 2572 } 2573 else if (name.equals("notAvailable")) { 2574 return addNotAvailable(); 2575 } 2576 else if (name.equals("availabilityExceptions")) { 2577 throw new FHIRException("Cannot call addChild on a primitive type HealthcareService.availabilityExceptions"); 2578 } 2579 else if (name.equals("endpoint")) { 2580 return addEndpoint(); 2581 } 2582 else 2583 return super.addChild(name); 2584 } 2585 2586 public String fhirType() { 2587 return "HealthcareService"; 2588 2589 } 2590 2591 public HealthcareService copy() { 2592 HealthcareService dst = new HealthcareService(); 2593 copyValues(dst); 2594 if (identifier != null) { 2595 dst.identifier = new ArrayList<Identifier>(); 2596 for (Identifier i : identifier) 2597 dst.identifier.add(i.copy()); 2598 }; 2599 dst.active = active == null ? null : active.copy(); 2600 dst.providedBy = providedBy == null ? null : providedBy.copy(); 2601 dst.category = category == null ? null : category.copy(); 2602 if (type != null) { 2603 dst.type = new ArrayList<CodeableConcept>(); 2604 for (CodeableConcept i : type) 2605 dst.type.add(i.copy()); 2606 }; 2607 if (specialty != null) { 2608 dst.specialty = new ArrayList<CodeableConcept>(); 2609 for (CodeableConcept i : specialty) 2610 dst.specialty.add(i.copy()); 2611 }; 2612 if (location != null) { 2613 dst.location = new ArrayList<Reference>(); 2614 for (Reference i : location) 2615 dst.location.add(i.copy()); 2616 }; 2617 dst.name = name == null ? null : name.copy(); 2618 dst.comment = comment == null ? null : comment.copy(); 2619 dst.extraDetails = extraDetails == null ? null : extraDetails.copy(); 2620 dst.photo = photo == null ? null : photo.copy(); 2621 if (telecom != null) { 2622 dst.telecom = new ArrayList<ContactPoint>(); 2623 for (ContactPoint i : telecom) 2624 dst.telecom.add(i.copy()); 2625 }; 2626 if (coverageArea != null) { 2627 dst.coverageArea = new ArrayList<Reference>(); 2628 for (Reference i : coverageArea) 2629 dst.coverageArea.add(i.copy()); 2630 }; 2631 if (serviceProvisionCode != null) { 2632 dst.serviceProvisionCode = new ArrayList<CodeableConcept>(); 2633 for (CodeableConcept i : serviceProvisionCode) 2634 dst.serviceProvisionCode.add(i.copy()); 2635 }; 2636 dst.eligibility = eligibility == null ? null : eligibility.copy(); 2637 dst.eligibilityNote = eligibilityNote == null ? null : eligibilityNote.copy(); 2638 if (programName != null) { 2639 dst.programName = new ArrayList<StringType>(); 2640 for (StringType i : programName) 2641 dst.programName.add(i.copy()); 2642 }; 2643 if (characteristic != null) { 2644 dst.characteristic = new ArrayList<CodeableConcept>(); 2645 for (CodeableConcept i : characteristic) 2646 dst.characteristic.add(i.copy()); 2647 }; 2648 if (referralMethod != null) { 2649 dst.referralMethod = new ArrayList<CodeableConcept>(); 2650 for (CodeableConcept i : referralMethod) 2651 dst.referralMethod.add(i.copy()); 2652 }; 2653 dst.appointmentRequired = appointmentRequired == null ? null : appointmentRequired.copy(); 2654 if (availableTime != null) { 2655 dst.availableTime = new ArrayList<HealthcareServiceAvailableTimeComponent>(); 2656 for (HealthcareServiceAvailableTimeComponent i : availableTime) 2657 dst.availableTime.add(i.copy()); 2658 }; 2659 if (notAvailable != null) { 2660 dst.notAvailable = new ArrayList<HealthcareServiceNotAvailableComponent>(); 2661 for (HealthcareServiceNotAvailableComponent i : notAvailable) 2662 dst.notAvailable.add(i.copy()); 2663 }; 2664 dst.availabilityExceptions = availabilityExceptions == null ? null : availabilityExceptions.copy(); 2665 if (endpoint != null) { 2666 dst.endpoint = new ArrayList<Reference>(); 2667 for (Reference i : endpoint) 2668 dst.endpoint.add(i.copy()); 2669 }; 2670 return dst; 2671 } 2672 2673 protected HealthcareService typedCopy() { 2674 return copy(); 2675 } 2676 2677 @Override 2678 public boolean equalsDeep(Base other) { 2679 if (!super.equalsDeep(other)) 2680 return false; 2681 if (!(other instanceof HealthcareService)) 2682 return false; 2683 HealthcareService o = (HealthcareService) other; 2684 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(providedBy, o.providedBy, true) 2685 && compareDeep(category, o.category, true) && compareDeep(type, o.type, true) && compareDeep(specialty, o.specialty, true) 2686 && compareDeep(location, o.location, true) && compareDeep(name, o.name, true) && compareDeep(comment, o.comment, true) 2687 && compareDeep(extraDetails, o.extraDetails, true) && compareDeep(photo, o.photo, true) && compareDeep(telecom, o.telecom, true) 2688 && compareDeep(coverageArea, o.coverageArea, true) && compareDeep(serviceProvisionCode, o.serviceProvisionCode, true) 2689 && compareDeep(eligibility, o.eligibility, true) && compareDeep(eligibilityNote, o.eligibilityNote, true) 2690 && compareDeep(programName, o.programName, true) && compareDeep(characteristic, o.characteristic, true) 2691 && compareDeep(referralMethod, o.referralMethod, true) && compareDeep(appointmentRequired, o.appointmentRequired, true) 2692 && compareDeep(availableTime, o.availableTime, true) && compareDeep(notAvailable, o.notAvailable, true) 2693 && compareDeep(availabilityExceptions, o.availabilityExceptions, true) && compareDeep(endpoint, o.endpoint, true) 2694 ; 2695 } 2696 2697 @Override 2698 public boolean equalsShallow(Base other) { 2699 if (!super.equalsShallow(other)) 2700 return false; 2701 if (!(other instanceof HealthcareService)) 2702 return false; 2703 HealthcareService o = (HealthcareService) other; 2704 return compareValues(active, o.active, true) && compareValues(name, o.name, true) && compareValues(comment, o.comment, true) 2705 && compareValues(extraDetails, o.extraDetails, true) && compareValues(eligibilityNote, o.eligibilityNote, true) 2706 && compareValues(programName, o.programName, true) && compareValues(appointmentRequired, o.appointmentRequired, true) 2707 && compareValues(availabilityExceptions, o.availabilityExceptions, true); 2708 } 2709 2710 public boolean isEmpty() { 2711 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, providedBy 2712 , category, type, specialty, location, name, comment, extraDetails, photo, telecom 2713 , coverageArea, serviceProvisionCode, eligibility, eligibilityNote, programName, characteristic 2714 , referralMethod, appointmentRequired, availableTime, notAvailable, availabilityExceptions 2715 , endpoint); 2716 } 2717 2718 @Override 2719 public ResourceType getResourceType() { 2720 return ResourceType.HealthcareService; 2721 } 2722 2723 /** 2724 * Search parameter: <b>identifier</b> 2725 * <p> 2726 * Description: <b>External identifiers for this item</b><br> 2727 * Type: <b>token</b><br> 2728 * Path: <b>HealthcareService.identifier</b><br> 2729 * </p> 2730 */ 2731 @SearchParamDefinition(name="identifier", path="HealthcareService.identifier", description="External identifiers for this item", type="token" ) 2732 public static final String SP_IDENTIFIER = "identifier"; 2733 /** 2734 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2735 * <p> 2736 * Description: <b>External identifiers for this item</b><br> 2737 * Type: <b>token</b><br> 2738 * Path: <b>HealthcareService.identifier</b><br> 2739 * </p> 2740 */ 2741 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2742 2743 /** 2744 * Search parameter: <b>endpoint</b> 2745 * <p> 2746 * Description: <b>Technical endpoints providing access to services operated for the location</b><br> 2747 * Type: <b>reference</b><br> 2748 * Path: <b>HealthcareService.endpoint</b><br> 2749 * </p> 2750 */ 2751 @SearchParamDefinition(name="endpoint", path="HealthcareService.endpoint", description="Technical endpoints providing access to services operated for the location", type="reference", target={Endpoint.class } ) 2752 public static final String SP_ENDPOINT = "endpoint"; 2753 /** 2754 * <b>Fluent Client</b> search parameter constant for <b>endpoint</b> 2755 * <p> 2756 * Description: <b>Technical endpoints providing access to services operated for the location</b><br> 2757 * Type: <b>reference</b><br> 2758 * Path: <b>HealthcareService.endpoint</b><br> 2759 * </p> 2760 */ 2761 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENDPOINT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENDPOINT); 2762 2763/** 2764 * Constant for fluent queries to be used to add include statements. Specifies 2765 * the path value of "<b>HealthcareService:endpoint</b>". 2766 */ 2767 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENDPOINT = new ca.uhn.fhir.model.api.Include("HealthcareService:endpoint").toLocked(); 2768 2769 /** 2770 * Search parameter: <b>organization</b> 2771 * <p> 2772 * Description: <b>The organization that provides this Healthcare Service</b><br> 2773 * Type: <b>reference</b><br> 2774 * Path: <b>HealthcareService.providedBy</b><br> 2775 * </p> 2776 */ 2777 @SearchParamDefinition(name="organization", path="HealthcareService.providedBy", description="The organization that provides this Healthcare Service", type="reference", target={Organization.class } ) 2778 public static final String SP_ORGANIZATION = "organization"; 2779 /** 2780 * <b>Fluent Client</b> search parameter constant for <b>organization</b> 2781 * <p> 2782 * Description: <b>The organization that provides this Healthcare Service</b><br> 2783 * Type: <b>reference</b><br> 2784 * Path: <b>HealthcareService.providedBy</b><br> 2785 * </p> 2786 */ 2787 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION); 2788 2789/** 2790 * Constant for fluent queries to be used to add include statements. Specifies 2791 * the path value of "<b>HealthcareService:organization</b>". 2792 */ 2793 public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("HealthcareService:organization").toLocked(); 2794 2795 /** 2796 * Search parameter: <b>name</b> 2797 * <p> 2798 * Description: <b>A portion of the Healthcare service name</b><br> 2799 * Type: <b>string</b><br> 2800 * Path: <b>HealthcareService.name</b><br> 2801 * </p> 2802 */ 2803 @SearchParamDefinition(name="name", path="HealthcareService.name", description="A portion of the Healthcare service name", type="string" ) 2804 public static final String SP_NAME = "name"; 2805 /** 2806 * <b>Fluent Client</b> search parameter constant for <b>name</b> 2807 * <p> 2808 * Description: <b>A portion of the Healthcare service name</b><br> 2809 * Type: <b>string</b><br> 2810 * Path: <b>HealthcareService.name</b><br> 2811 * </p> 2812 */ 2813 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 2814 2815 /** 2816 * Search parameter: <b>programname</b> 2817 * <p> 2818 * Description: <b>One of the Program Names serviced by this HealthcareService</b><br> 2819 * Type: <b>string</b><br> 2820 * Path: <b>HealthcareService.programName</b><br> 2821 * </p> 2822 */ 2823 @SearchParamDefinition(name="programname", path="HealthcareService.programName", description="One of the Program Names serviced by this HealthcareService", type="string" ) 2824 public static final String SP_PROGRAMNAME = "programname"; 2825 /** 2826 * <b>Fluent Client</b> search parameter constant for <b>programname</b> 2827 * <p> 2828 * Description: <b>One of the Program Names serviced by this HealthcareService</b><br> 2829 * Type: <b>string</b><br> 2830 * Path: <b>HealthcareService.programName</b><br> 2831 * </p> 2832 */ 2833 public static final ca.uhn.fhir.rest.gclient.StringClientParam PROGRAMNAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PROGRAMNAME); 2834 2835 /** 2836 * Search parameter: <b>active</b> 2837 * <p> 2838 * Description: <b>The Healthcare Service is currently marked as active</b><br> 2839 * Type: <b>token</b><br> 2840 * Path: <b>HealthcareService.active</b><br> 2841 * </p> 2842 */ 2843 @SearchParamDefinition(name="active", path="HealthcareService.active", description="The Healthcare Service is currently marked as active", type="token" ) 2844 public static final String SP_ACTIVE = "active"; 2845 /** 2846 * <b>Fluent Client</b> search parameter constant for <b>active</b> 2847 * <p> 2848 * Description: <b>The Healthcare Service is currently marked as active</b><br> 2849 * Type: <b>token</b><br> 2850 * Path: <b>HealthcareService.active</b><br> 2851 * </p> 2852 */ 2853 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE); 2854 2855 /** 2856 * Search parameter: <b>location</b> 2857 * <p> 2858 * Description: <b>The location of the Healthcare Service</b><br> 2859 * Type: <b>reference</b><br> 2860 * Path: <b>HealthcareService.location</b><br> 2861 * </p> 2862 */ 2863 @SearchParamDefinition(name="location", path="HealthcareService.location", description="The location of the Healthcare Service", type="reference", target={Location.class } ) 2864 public static final String SP_LOCATION = "location"; 2865 /** 2866 * <b>Fluent Client</b> search parameter constant for <b>location</b> 2867 * <p> 2868 * Description: <b>The location of the Healthcare Service</b><br> 2869 * Type: <b>reference</b><br> 2870 * Path: <b>HealthcareService.location</b><br> 2871 * </p> 2872 */ 2873 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION); 2874 2875/** 2876 * Constant for fluent queries to be used to add include statements. Specifies 2877 * the path value of "<b>HealthcareService:location</b>". 2878 */ 2879 public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("HealthcareService:location").toLocked(); 2880 2881 /** 2882 * Search parameter: <b>category</b> 2883 * <p> 2884 * Description: <b>Service Category of the Healthcare Service</b><br> 2885 * Type: <b>token</b><br> 2886 * Path: <b>HealthcareService.category</b><br> 2887 * </p> 2888 */ 2889 @SearchParamDefinition(name="category", path="HealthcareService.category", description="Service Category of the Healthcare Service", type="token" ) 2890 public static final String SP_CATEGORY = "category"; 2891 /** 2892 * <b>Fluent Client</b> search parameter constant for <b>category</b> 2893 * <p> 2894 * Description: <b>Service Category of the Healthcare Service</b><br> 2895 * Type: <b>token</b><br> 2896 * Path: <b>HealthcareService.category</b><br> 2897 * </p> 2898 */ 2899 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 2900 2901 /** 2902 * Search parameter: <b>type</b> 2903 * <p> 2904 * Description: <b>The type of service provided by this healthcare service</b><br> 2905 * Type: <b>token</b><br> 2906 * Path: <b>HealthcareService.type</b><br> 2907 * </p> 2908 */ 2909 @SearchParamDefinition(name="type", path="HealthcareService.type", description="The type of service provided by this healthcare service", type="token" ) 2910 public static final String SP_TYPE = "type"; 2911 /** 2912 * <b>Fluent Client</b> search parameter constant for <b>type</b> 2913 * <p> 2914 * Description: <b>The type of service provided by this healthcare service</b><br> 2915 * Type: <b>token</b><br> 2916 * Path: <b>HealthcareService.type</b><br> 2917 * </p> 2918 */ 2919 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 2920 2921 /** 2922 * Search parameter: <b>characteristic</b> 2923 * <p> 2924 * Description: <b>One of the HealthcareService's characteristics</b><br> 2925 * Type: <b>token</b><br> 2926 * Path: <b>HealthcareService.characteristic</b><br> 2927 * </p> 2928 */ 2929 @SearchParamDefinition(name="characteristic", path="HealthcareService.characteristic", description="One of the HealthcareService's characteristics", type="token" ) 2930 public static final String SP_CHARACTERISTIC = "characteristic"; 2931 /** 2932 * <b>Fluent Client</b> search parameter constant for <b>characteristic</b> 2933 * <p> 2934 * Description: <b>One of the HealthcareService's characteristics</b><br> 2935 * Type: <b>token</b><br> 2936 * Path: <b>HealthcareService.characteristic</b><br> 2937 * </p> 2938 */ 2939 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CHARACTERISTIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CHARACTERISTIC); 2940 2941 2942} 2943