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