001package org.hl7.fhir.r5.model; 002 003 004/* 005 Copyright (c) 2011+, HL7, Inc. 006 All rights reserved. 007 008 Redistribution and use in source and binary forms, with or without modification, \ 009 are permitted provided that the following conditions are met: 010 011 * Redistributions of source code must retain the above copyright notice, this \ 012 list of conditions and the following disclaimer. 013 * Redistributions in binary form must reproduce the above copyright notice, \ 014 this list of conditions and the following disclaimer in the documentation \ 015 and/or other materials provided with the distribution. 016 * Neither the name of HL7 nor the names of its contributors may be used to 017 endorse or promote products derived from this software without specific 018 prior written permission. 019 020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 021 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 022 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 023 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 024 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 025 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 026 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 027 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 028 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 029 POSSIBILITY OF SUCH DAMAGE. 030 */ 031 032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 033 034import java.util.ArrayList; 035import java.util.Date; 036import java.util.List; 037import org.hl7.fhir.utilities.Utilities; 038import org.hl7.fhir.r5.model.Enumerations.*; 039import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.instance.model.api.ICompositeType; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import ca.uhn.fhir.model.api.annotation.Child; 046import ca.uhn.fhir.model.api.annotation.ChildOrder; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.Block; 049 050/** 051 * Describes the event of a patient consuming or otherwise being administered a medication. This may be as simple as swallowing a tablet or it may be a long running infusion. Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner. This event can also be used to record waste using a status of not-done and the appropriate statusReason. 052 */ 053@ResourceDef(name="MedicationAdministration", profile="http://hl7.org/fhir/StructureDefinition/MedicationAdministration") 054public class MedicationAdministration extends DomainResource { 055 056 public enum MedicationAdministrationStatusCodes { 057 /** 058 * The administration has started but has not yet completed. 059 */ 060 INPROGRESS, 061 /** 062 * The administration was terminated prior to any impact on the subject (though preparatory actions may have been taken) 063 */ 064 NOTDONE, 065 /** 066 * Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called 'suspended'. 067 */ 068 ONHOLD, 069 /** 070 * All actions that are implied by the administration have occurred. 071 */ 072 COMPLETED, 073 /** 074 * The administration was entered in error and therefore nullified. 075 */ 076 ENTEREDINERROR, 077 /** 078 * Actions implied by the administration have been permanently halted, before all of them occurred. 079 */ 080 STOPPED, 081 /** 082 * The authoring system does not know which of the status values currently applies for this request. Note: This concept is not to be used for 'other' - one of the listed statuses is presumed to apply, it's just not known which one. 083 */ 084 UNKNOWN, 085 /** 086 * added to help the parsers with the generic types 087 */ 088 NULL; 089 public static MedicationAdministrationStatusCodes fromCode(String codeString) throws FHIRException { 090 if (codeString == null || "".equals(codeString)) 091 return null; 092 if ("in-progress".equals(codeString)) 093 return INPROGRESS; 094 if ("not-done".equals(codeString)) 095 return NOTDONE; 096 if ("on-hold".equals(codeString)) 097 return ONHOLD; 098 if ("completed".equals(codeString)) 099 return COMPLETED; 100 if ("entered-in-error".equals(codeString)) 101 return ENTEREDINERROR; 102 if ("stopped".equals(codeString)) 103 return STOPPED; 104 if ("unknown".equals(codeString)) 105 return UNKNOWN; 106 if (Configuration.isAcceptInvalidEnums()) 107 return null; 108 else 109 throw new FHIRException("Unknown MedicationAdministrationStatusCodes code '"+codeString+"'"); 110 } 111 public String toCode() { 112 switch (this) { 113 case INPROGRESS: return "in-progress"; 114 case NOTDONE: return "not-done"; 115 case ONHOLD: return "on-hold"; 116 case COMPLETED: return "completed"; 117 case ENTEREDINERROR: return "entered-in-error"; 118 case STOPPED: return "stopped"; 119 case UNKNOWN: return "unknown"; 120 case NULL: return null; 121 default: return "?"; 122 } 123 } 124 public String getSystem() { 125 switch (this) { 126 case INPROGRESS: return "http://hl7.org/fhir/CodeSystem/medication-admin-status"; 127 case NOTDONE: return "http://hl7.org/fhir/CodeSystem/medication-admin-status"; 128 case ONHOLD: return "http://hl7.org/fhir/CodeSystem/medication-admin-status"; 129 case COMPLETED: return "http://hl7.org/fhir/CodeSystem/medication-admin-status"; 130 case ENTEREDINERROR: return "http://hl7.org/fhir/CodeSystem/medication-admin-status"; 131 case STOPPED: return "http://hl7.org/fhir/CodeSystem/medication-admin-status"; 132 case UNKNOWN: return "http://hl7.org/fhir/CodeSystem/medication-admin-status"; 133 case NULL: return null; 134 default: return "?"; 135 } 136 } 137 public String getDefinition() { 138 switch (this) { 139 case INPROGRESS: return "The administration has started but has not yet completed."; 140 case NOTDONE: return "The administration was terminated prior to any impact on the subject (though preparatory actions may have been taken)"; 141 case ONHOLD: return "Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called 'suspended'."; 142 case COMPLETED: return "All actions that are implied by the administration have occurred."; 143 case ENTEREDINERROR: return "The administration was entered in error and therefore nullified."; 144 case STOPPED: return "Actions implied by the administration have been permanently halted, before all of them occurred."; 145 case UNKNOWN: return "The authoring system does not know which of the status values currently applies for this request. Note: This concept is not to be used for 'other' - one of the listed statuses is presumed to apply, it's just not known which one."; 146 case NULL: return null; 147 default: return "?"; 148 } 149 } 150 public String getDisplay() { 151 switch (this) { 152 case INPROGRESS: return "In Progress"; 153 case NOTDONE: return "Not Done"; 154 case ONHOLD: return "On Hold"; 155 case COMPLETED: return "Completed"; 156 case ENTEREDINERROR: return "Entered in Error"; 157 case STOPPED: return "Stopped"; 158 case UNKNOWN: return "Unknown"; 159 case NULL: return null; 160 default: return "?"; 161 } 162 } 163 } 164 165 public static class MedicationAdministrationStatusCodesEnumFactory implements EnumFactory<MedicationAdministrationStatusCodes> { 166 public MedicationAdministrationStatusCodes fromCode(String codeString) throws IllegalArgumentException { 167 if (codeString == null || "".equals(codeString)) 168 if (codeString == null || "".equals(codeString)) 169 return null; 170 if ("in-progress".equals(codeString)) 171 return MedicationAdministrationStatusCodes.INPROGRESS; 172 if ("not-done".equals(codeString)) 173 return MedicationAdministrationStatusCodes.NOTDONE; 174 if ("on-hold".equals(codeString)) 175 return MedicationAdministrationStatusCodes.ONHOLD; 176 if ("completed".equals(codeString)) 177 return MedicationAdministrationStatusCodes.COMPLETED; 178 if ("entered-in-error".equals(codeString)) 179 return MedicationAdministrationStatusCodes.ENTEREDINERROR; 180 if ("stopped".equals(codeString)) 181 return MedicationAdministrationStatusCodes.STOPPED; 182 if ("unknown".equals(codeString)) 183 return MedicationAdministrationStatusCodes.UNKNOWN; 184 throw new IllegalArgumentException("Unknown MedicationAdministrationStatusCodes code '"+codeString+"'"); 185 } 186 public Enumeration<MedicationAdministrationStatusCodes> fromType(PrimitiveType<?> code) throws FHIRException { 187 if (code == null) 188 return null; 189 if (code.isEmpty()) 190 return new Enumeration<MedicationAdministrationStatusCodes>(this, MedicationAdministrationStatusCodes.NULL, code); 191 String codeString = ((PrimitiveType) code).asStringValue(); 192 if (codeString == null || "".equals(codeString)) 193 return new Enumeration<MedicationAdministrationStatusCodes>(this, MedicationAdministrationStatusCodes.NULL, code); 194 if ("in-progress".equals(codeString)) 195 return new Enumeration<MedicationAdministrationStatusCodes>(this, MedicationAdministrationStatusCodes.INPROGRESS, code); 196 if ("not-done".equals(codeString)) 197 return new Enumeration<MedicationAdministrationStatusCodes>(this, MedicationAdministrationStatusCodes.NOTDONE, code); 198 if ("on-hold".equals(codeString)) 199 return new Enumeration<MedicationAdministrationStatusCodes>(this, MedicationAdministrationStatusCodes.ONHOLD, code); 200 if ("completed".equals(codeString)) 201 return new Enumeration<MedicationAdministrationStatusCodes>(this, MedicationAdministrationStatusCodes.COMPLETED, code); 202 if ("entered-in-error".equals(codeString)) 203 return new Enumeration<MedicationAdministrationStatusCodes>(this, MedicationAdministrationStatusCodes.ENTEREDINERROR, code); 204 if ("stopped".equals(codeString)) 205 return new Enumeration<MedicationAdministrationStatusCodes>(this, MedicationAdministrationStatusCodes.STOPPED, code); 206 if ("unknown".equals(codeString)) 207 return new Enumeration<MedicationAdministrationStatusCodes>(this, MedicationAdministrationStatusCodes.UNKNOWN, code); 208 throw new FHIRException("Unknown MedicationAdministrationStatusCodes code '"+codeString+"'"); 209 } 210 public String toCode(MedicationAdministrationStatusCodes code) { 211 if (code == MedicationAdministrationStatusCodes.INPROGRESS) 212 return "in-progress"; 213 if (code == MedicationAdministrationStatusCodes.NOTDONE) 214 return "not-done"; 215 if (code == MedicationAdministrationStatusCodes.ONHOLD) 216 return "on-hold"; 217 if (code == MedicationAdministrationStatusCodes.COMPLETED) 218 return "completed"; 219 if (code == MedicationAdministrationStatusCodes.ENTEREDINERROR) 220 return "entered-in-error"; 221 if (code == MedicationAdministrationStatusCodes.STOPPED) 222 return "stopped"; 223 if (code == MedicationAdministrationStatusCodes.UNKNOWN) 224 return "unknown"; 225 return "?"; 226 } 227 public String toSystem(MedicationAdministrationStatusCodes code) { 228 return code.getSystem(); 229 } 230 } 231 232 @Block() 233 public static class MedicationAdministrationPerformerComponent extends BackboneElement implements IBaseBackboneElement { 234 /** 235 * Distinguishes the type of involvement of the performer in the medication administration. 236 */ 237 @Child(name = "function", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 238 @Description(shortDefinition="Type of performance", formalDefinition="Distinguishes the type of involvement of the performer in the medication administration." ) 239 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/med-admin-perform-function") 240 protected CodeableConcept function; 241 242 /** 243 * Indicates who or what performed the medication administration. 244 */ 245 @Child(name = "actor", type = {CodeableReference.class}, order=2, min=1, max=1, modifier=false, summary=true) 246 @Description(shortDefinition="Who or what performed the medication administration", formalDefinition="Indicates who or what performed the medication administration." ) 247 protected CodeableReference actor; 248 249 private static final long serialVersionUID = -1725418144L; 250 251 /** 252 * Constructor 253 */ 254 public MedicationAdministrationPerformerComponent() { 255 super(); 256 } 257 258 /** 259 * Constructor 260 */ 261 public MedicationAdministrationPerformerComponent(CodeableReference actor) { 262 super(); 263 this.setActor(actor); 264 } 265 266 /** 267 * @return {@link #function} (Distinguishes the type of involvement of the performer in the medication administration.) 268 */ 269 public CodeableConcept getFunction() { 270 if (this.function == null) 271 if (Configuration.errorOnAutoCreate()) 272 throw new Error("Attempt to auto-create MedicationAdministrationPerformerComponent.function"); 273 else if (Configuration.doAutoCreate()) 274 this.function = new CodeableConcept(); // cc 275 return this.function; 276 } 277 278 public boolean hasFunction() { 279 return this.function != null && !this.function.isEmpty(); 280 } 281 282 /** 283 * @param value {@link #function} (Distinguishes the type of involvement of the performer in the medication administration.) 284 */ 285 public MedicationAdministrationPerformerComponent setFunction(CodeableConcept value) { 286 this.function = value; 287 return this; 288 } 289 290 /** 291 * @return {@link #actor} (Indicates who or what performed the medication administration.) 292 */ 293 public CodeableReference getActor() { 294 if (this.actor == null) 295 if (Configuration.errorOnAutoCreate()) 296 throw new Error("Attempt to auto-create MedicationAdministrationPerformerComponent.actor"); 297 else if (Configuration.doAutoCreate()) 298 this.actor = new CodeableReference(); // cc 299 return this.actor; 300 } 301 302 public boolean hasActor() { 303 return this.actor != null && !this.actor.isEmpty(); 304 } 305 306 /** 307 * @param value {@link #actor} (Indicates who or what performed the medication administration.) 308 */ 309 public MedicationAdministrationPerformerComponent setActor(CodeableReference value) { 310 this.actor = value; 311 return this; 312 } 313 314 protected void listChildren(List<Property> children) { 315 super.listChildren(children); 316 children.add(new Property("function", "CodeableConcept", "Distinguishes the type of involvement of the performer in the medication administration.", 0, 1, function)); 317 children.add(new Property("actor", "CodeableReference(Practitioner|PractitionerRole|Patient|RelatedPerson|Device)", "Indicates who or what performed the medication administration.", 0, 1, actor)); 318 } 319 320 @Override 321 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 322 switch (_hash) { 323 case 1380938712: /*function*/ return new Property("function", "CodeableConcept", "Distinguishes the type of involvement of the performer in the medication administration.", 0, 1, function); 324 case 92645877: /*actor*/ return new Property("actor", "CodeableReference(Practitioner|PractitionerRole|Patient|RelatedPerson|Device)", "Indicates who or what performed the medication administration.", 0, 1, actor); 325 default: return super.getNamedProperty(_hash, _name, _checkValid); 326 } 327 328 } 329 330 @Override 331 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 332 switch (hash) { 333 case 1380938712: /*function*/ return this.function == null ? new Base[0] : new Base[] {this.function}; // CodeableConcept 334 case 92645877: /*actor*/ return this.actor == null ? new Base[0] : new Base[] {this.actor}; // CodeableReference 335 default: return super.getProperty(hash, name, checkValid); 336 } 337 338 } 339 340 @Override 341 public Base setProperty(int hash, String name, Base value) throws FHIRException { 342 switch (hash) { 343 case 1380938712: // function 344 this.function = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 345 return value; 346 case 92645877: // actor 347 this.actor = TypeConvertor.castToCodeableReference(value); // CodeableReference 348 return value; 349 default: return super.setProperty(hash, name, value); 350 } 351 352 } 353 354 @Override 355 public Base setProperty(String name, Base value) throws FHIRException { 356 if (name.equals("function")) { 357 this.function = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 358 } else if (name.equals("actor")) { 359 this.actor = TypeConvertor.castToCodeableReference(value); // CodeableReference 360 } else 361 return super.setProperty(name, value); 362 return value; 363 } 364 365 @Override 366 public void removeChild(String name, Base value) throws FHIRException { 367 if (name.equals("function")) { 368 this.function = null; 369 } else if (name.equals("actor")) { 370 this.actor = null; 371 } else 372 super.removeChild(name, value); 373 374 } 375 376 @Override 377 public Base makeProperty(int hash, String name) throws FHIRException { 378 switch (hash) { 379 case 1380938712: return getFunction(); 380 case 92645877: return getActor(); 381 default: return super.makeProperty(hash, name); 382 } 383 384 } 385 386 @Override 387 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 388 switch (hash) { 389 case 1380938712: /*function*/ return new String[] {"CodeableConcept"}; 390 case 92645877: /*actor*/ return new String[] {"CodeableReference"}; 391 default: return super.getTypesForProperty(hash, name); 392 } 393 394 } 395 396 @Override 397 public Base addChild(String name) throws FHIRException { 398 if (name.equals("function")) { 399 this.function = new CodeableConcept(); 400 return this.function; 401 } 402 else if (name.equals("actor")) { 403 this.actor = new CodeableReference(); 404 return this.actor; 405 } 406 else 407 return super.addChild(name); 408 } 409 410 public MedicationAdministrationPerformerComponent copy() { 411 MedicationAdministrationPerformerComponent dst = new MedicationAdministrationPerformerComponent(); 412 copyValues(dst); 413 return dst; 414 } 415 416 public void copyValues(MedicationAdministrationPerformerComponent dst) { 417 super.copyValues(dst); 418 dst.function = function == null ? null : function.copy(); 419 dst.actor = actor == null ? null : actor.copy(); 420 } 421 422 @Override 423 public boolean equalsDeep(Base other_) { 424 if (!super.equalsDeep(other_)) 425 return false; 426 if (!(other_ instanceof MedicationAdministrationPerformerComponent)) 427 return false; 428 MedicationAdministrationPerformerComponent o = (MedicationAdministrationPerformerComponent) other_; 429 return compareDeep(function, o.function, true) && compareDeep(actor, o.actor, true); 430 } 431 432 @Override 433 public boolean equalsShallow(Base other_) { 434 if (!super.equalsShallow(other_)) 435 return false; 436 if (!(other_ instanceof MedicationAdministrationPerformerComponent)) 437 return false; 438 MedicationAdministrationPerformerComponent o = (MedicationAdministrationPerformerComponent) other_; 439 return true; 440 } 441 442 public boolean isEmpty() { 443 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(function, actor); 444 } 445 446 public String fhirType() { 447 return "MedicationAdministration.performer"; 448 449 } 450 451 } 452 453 @Block() 454 public static class MedicationAdministrationDosageComponent extends BackboneElement implements IBaseBackboneElement { 455 /** 456 * Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans. 457 458The dosage instructions should reflect the dosage of the medication that was administered. 459 */ 460 @Child(name = "text", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false) 461 @Description(shortDefinition="Free text dosage instructions e.g. SIG", formalDefinition="Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans.\r\rThe dosage instructions should reflect the dosage of the medication that was administered." ) 462 protected StringType text; 463 464 /** 465 * A coded specification of the anatomic site where the medication first entered the body. For example, "left arm". 466 */ 467 @Child(name = "site", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false) 468 @Description(shortDefinition="Body site administered to", formalDefinition="A coded specification of the anatomic site where the medication first entered the body. For example, \"left arm\"." ) 469 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/approach-site-codes") 470 protected CodeableConcept site; 471 472 /** 473 * A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc. 474 */ 475 @Child(name = "route", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=false) 476 @Description(shortDefinition="Path of substance into body", formalDefinition="A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc." ) 477 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/route-codes") 478 protected CodeableConcept route; 479 480 /** 481 * A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV. 482 */ 483 @Child(name = "method", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=false) 484 @Description(shortDefinition="How drug was administered", formalDefinition="A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV." ) 485 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/administration-method-codes") 486 protected CodeableConcept method; 487 488 /** 489 * The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection. 490 */ 491 @Child(name = "dose", type = {Quantity.class}, order=5, min=0, max=1, modifier=false, summary=false) 492 @Description(shortDefinition="Amount of medication per dose", formalDefinition="The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection." ) 493 protected Quantity dose; 494 495 /** 496 * Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours. 497 */ 498 @Child(name = "rate", type = {Ratio.class, Quantity.class}, order=6, min=0, max=1, modifier=false, summary=false) 499 @Description(shortDefinition="Dose quantity per unit of time", formalDefinition="Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours." ) 500 protected DataType rate; 501 502 private static final long serialVersionUID = -484090956L; 503 504 /** 505 * Constructor 506 */ 507 public MedicationAdministrationDosageComponent() { 508 super(); 509 } 510 511 /** 512 * @return {@link #text} (Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans. 513 514The dosage instructions should reflect the dosage of the medication that was administered.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 515 */ 516 public StringType getTextElement() { 517 if (this.text == null) 518 if (Configuration.errorOnAutoCreate()) 519 throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.text"); 520 else if (Configuration.doAutoCreate()) 521 this.text = new StringType(); // bb 522 return this.text; 523 } 524 525 public boolean hasTextElement() { 526 return this.text != null && !this.text.isEmpty(); 527 } 528 529 public boolean hasText() { 530 return this.text != null && !this.text.isEmpty(); 531 } 532 533 /** 534 * @param value {@link #text} (Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans. 535 536The dosage instructions should reflect the dosage of the medication that was administered.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 537 */ 538 public MedicationAdministrationDosageComponent setTextElement(StringType value) { 539 this.text = value; 540 return this; 541 } 542 543 /** 544 * @return Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans. 545 546The dosage instructions should reflect the dosage of the medication that was administered. 547 */ 548 public String getText() { 549 return this.text == null ? null : this.text.getValue(); 550 } 551 552 /** 553 * @param value Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans. 554 555The dosage instructions should reflect the dosage of the medication that was administered. 556 */ 557 public MedicationAdministrationDosageComponent setText(String value) { 558 if (Utilities.noString(value)) 559 this.text = null; 560 else { 561 if (this.text == null) 562 this.text = new StringType(); 563 this.text.setValue(value); 564 } 565 return this; 566 } 567 568 /** 569 * @return {@link #site} (A coded specification of the anatomic site where the medication first entered the body. For example, "left arm".) 570 */ 571 public CodeableConcept getSite() { 572 if (this.site == null) 573 if (Configuration.errorOnAutoCreate()) 574 throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.site"); 575 else if (Configuration.doAutoCreate()) 576 this.site = new CodeableConcept(); // cc 577 return this.site; 578 } 579 580 public boolean hasSite() { 581 return this.site != null && !this.site.isEmpty(); 582 } 583 584 /** 585 * @param value {@link #site} (A coded specification of the anatomic site where the medication first entered the body. For example, "left arm".) 586 */ 587 public MedicationAdministrationDosageComponent setSite(CodeableConcept value) { 588 this.site = value; 589 return this; 590 } 591 592 /** 593 * @return {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc.) 594 */ 595 public CodeableConcept getRoute() { 596 if (this.route == null) 597 if (Configuration.errorOnAutoCreate()) 598 throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.route"); 599 else if (Configuration.doAutoCreate()) 600 this.route = new CodeableConcept(); // cc 601 return this.route; 602 } 603 604 public boolean hasRoute() { 605 return this.route != null && !this.route.isEmpty(); 606 } 607 608 /** 609 * @param value {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc.) 610 */ 611 public MedicationAdministrationDosageComponent setRoute(CodeableConcept value) { 612 this.route = value; 613 return this; 614 } 615 616 /** 617 * @return {@link #method} (A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV.) 618 */ 619 public CodeableConcept getMethod() { 620 if (this.method == null) 621 if (Configuration.errorOnAutoCreate()) 622 throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.method"); 623 else if (Configuration.doAutoCreate()) 624 this.method = new CodeableConcept(); // cc 625 return this.method; 626 } 627 628 public boolean hasMethod() { 629 return this.method != null && !this.method.isEmpty(); 630 } 631 632 /** 633 * @param value {@link #method} (A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV.) 634 */ 635 public MedicationAdministrationDosageComponent setMethod(CodeableConcept value) { 636 this.method = value; 637 return this; 638 } 639 640 /** 641 * @return {@link #dose} (The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.) 642 */ 643 public Quantity getDose() { 644 if (this.dose == null) 645 if (Configuration.errorOnAutoCreate()) 646 throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.dose"); 647 else if (Configuration.doAutoCreate()) 648 this.dose = new Quantity(); // cc 649 return this.dose; 650 } 651 652 public boolean hasDose() { 653 return this.dose != null && !this.dose.isEmpty(); 654 } 655 656 /** 657 * @param value {@link #dose} (The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.) 658 */ 659 public MedicationAdministrationDosageComponent setDose(Quantity value) { 660 this.dose = value; 661 return this; 662 } 663 664 /** 665 * @return {@link #rate} (Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.) 666 */ 667 public DataType getRate() { 668 return this.rate; 669 } 670 671 /** 672 * @return {@link #rate} (Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.) 673 */ 674 public Ratio getRateRatio() throws FHIRException { 675 if (this.rate == null) 676 this.rate = new Ratio(); 677 if (!(this.rate instanceof Ratio)) 678 throw new FHIRException("Type mismatch: the type Ratio was expected, but "+this.rate.getClass().getName()+" was encountered"); 679 return (Ratio) this.rate; 680 } 681 682 public boolean hasRateRatio() { 683 return this != null && this.rate instanceof Ratio; 684 } 685 686 /** 687 * @return {@link #rate} (Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.) 688 */ 689 public Quantity getRateQuantity() throws FHIRException { 690 if (this.rate == null) 691 this.rate = new Quantity(); 692 if (!(this.rate instanceof Quantity)) 693 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.rate.getClass().getName()+" was encountered"); 694 return (Quantity) this.rate; 695 } 696 697 public boolean hasRateQuantity() { 698 return this != null && this.rate instanceof Quantity; 699 } 700 701 public boolean hasRate() { 702 return this.rate != null && !this.rate.isEmpty(); 703 } 704 705 /** 706 * @param value {@link #rate} (Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.) 707 */ 708 public MedicationAdministrationDosageComponent setRate(DataType value) { 709 if (value != null && !(value instanceof Ratio || value instanceof Quantity)) 710 throw new FHIRException("Not the right type for MedicationAdministration.dosage.rate[x]: "+value.fhirType()); 711 this.rate = value; 712 return this; 713 } 714 715 protected void listChildren(List<Property> children) { 716 super.listChildren(children); 717 children.add(new Property("text", "string", "Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans.\r\rThe dosage instructions should reflect the dosage of the medication that was administered.", 0, 1, text)); 718 children.add(new Property("site", "CodeableConcept", "A coded specification of the anatomic site where the medication first entered the body. For example, \"left arm\".", 0, 1, site)); 719 children.add(new Property("route", "CodeableConcept", "A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc.", 0, 1, route)); 720 children.add(new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV.", 0, 1, method)); 721 children.add(new Property("dose", "Quantity", "The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.", 0, 1, dose)); 722 children.add(new Property("rate[x]", "Ratio|Quantity", "Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.", 0, 1, rate)); 723 } 724 725 @Override 726 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 727 switch (_hash) { 728 case 3556653: /*text*/ return new Property("text", "string", "Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans.\r\rThe dosage instructions should reflect the dosage of the medication that was administered.", 0, 1, text); 729 case 3530567: /*site*/ return new Property("site", "CodeableConcept", "A coded specification of the anatomic site where the medication first entered the body. For example, \"left arm\".", 0, 1, site); 730 case 108704329: /*route*/ return new Property("route", "CodeableConcept", "A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc.", 0, 1, route); 731 case -1077554975: /*method*/ return new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV.", 0, 1, method); 732 case 3089437: /*dose*/ return new Property("dose", "Quantity", "The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.", 0, 1, dose); 733 case 983460768: /*rate[x]*/ return new Property("rate[x]", "Ratio|Quantity", "Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.", 0, 1, rate); 734 case 3493088: /*rate*/ return new Property("rate[x]", "Ratio|Quantity", "Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.", 0, 1, rate); 735 case 204021515: /*rateRatio*/ return new Property("rate[x]", "Ratio", "Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.", 0, 1, rate); 736 case -1085459061: /*rateQuantity*/ return new Property("rate[x]", "Quantity", "Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.", 0, 1, rate); 737 default: return super.getNamedProperty(_hash, _name, _checkValid); 738 } 739 740 } 741 742 @Override 743 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 744 switch (hash) { 745 case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // StringType 746 case 3530567: /*site*/ return this.site == null ? new Base[0] : new Base[] {this.site}; // CodeableConcept 747 case 108704329: /*route*/ return this.route == null ? new Base[0] : new Base[] {this.route}; // CodeableConcept 748 case -1077554975: /*method*/ return this.method == null ? new Base[0] : new Base[] {this.method}; // CodeableConcept 749 case 3089437: /*dose*/ return this.dose == null ? new Base[0] : new Base[] {this.dose}; // Quantity 750 case 3493088: /*rate*/ return this.rate == null ? new Base[0] : new Base[] {this.rate}; // DataType 751 default: return super.getProperty(hash, name, checkValid); 752 } 753 754 } 755 756 @Override 757 public Base setProperty(int hash, String name, Base value) throws FHIRException { 758 switch (hash) { 759 case 3556653: // text 760 this.text = TypeConvertor.castToString(value); // StringType 761 return value; 762 case 3530567: // site 763 this.site = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 764 return value; 765 case 108704329: // route 766 this.route = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 767 return value; 768 case -1077554975: // method 769 this.method = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 770 return value; 771 case 3089437: // dose 772 this.dose = TypeConvertor.castToQuantity(value); // Quantity 773 return value; 774 case 3493088: // rate 775 this.rate = TypeConvertor.castToType(value); // DataType 776 return value; 777 default: return super.setProperty(hash, name, value); 778 } 779 780 } 781 782 @Override 783 public Base setProperty(String name, Base value) throws FHIRException { 784 if (name.equals("text")) { 785 this.text = TypeConvertor.castToString(value); // StringType 786 } else if (name.equals("site")) { 787 this.site = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 788 } else if (name.equals("route")) { 789 this.route = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 790 } else if (name.equals("method")) { 791 this.method = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 792 } else if (name.equals("dose")) { 793 this.dose = TypeConvertor.castToQuantity(value); // Quantity 794 } else if (name.equals("rate[x]")) { 795 this.rate = TypeConvertor.castToType(value); // DataType 796 } else 797 return super.setProperty(name, value); 798 return value; 799 } 800 801 @Override 802 public void removeChild(String name, Base value) throws FHIRException { 803 if (name.equals("text")) { 804 this.text = null; 805 } else if (name.equals("site")) { 806 this.site = null; 807 } else if (name.equals("route")) { 808 this.route = null; 809 } else if (name.equals("method")) { 810 this.method = null; 811 } else if (name.equals("dose")) { 812 this.dose = null; 813 } else if (name.equals("rate[x]")) { 814 this.rate = null; 815 } else 816 super.removeChild(name, value); 817 818 } 819 820 @Override 821 public Base makeProperty(int hash, String name) throws FHIRException { 822 switch (hash) { 823 case 3556653: return getTextElement(); 824 case 3530567: return getSite(); 825 case 108704329: return getRoute(); 826 case -1077554975: return getMethod(); 827 case 3089437: return getDose(); 828 case 983460768: return getRate(); 829 case 3493088: return getRate(); 830 default: return super.makeProperty(hash, name); 831 } 832 833 } 834 835 @Override 836 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 837 switch (hash) { 838 case 3556653: /*text*/ return new String[] {"string"}; 839 case 3530567: /*site*/ return new String[] {"CodeableConcept"}; 840 case 108704329: /*route*/ return new String[] {"CodeableConcept"}; 841 case -1077554975: /*method*/ return new String[] {"CodeableConcept"}; 842 case 3089437: /*dose*/ return new String[] {"Quantity"}; 843 case 3493088: /*rate*/ return new String[] {"Ratio", "Quantity"}; 844 default: return super.getTypesForProperty(hash, name); 845 } 846 847 } 848 849 @Override 850 public Base addChild(String name) throws FHIRException { 851 if (name.equals("text")) { 852 throw new FHIRException("Cannot call addChild on a singleton property MedicationAdministration.dosage.text"); 853 } 854 else if (name.equals("site")) { 855 this.site = new CodeableConcept(); 856 return this.site; 857 } 858 else if (name.equals("route")) { 859 this.route = new CodeableConcept(); 860 return this.route; 861 } 862 else if (name.equals("method")) { 863 this.method = new CodeableConcept(); 864 return this.method; 865 } 866 else if (name.equals("dose")) { 867 this.dose = new Quantity(); 868 return this.dose; 869 } 870 else if (name.equals("rateRatio")) { 871 this.rate = new Ratio(); 872 return this.rate; 873 } 874 else if (name.equals("rateQuantity")) { 875 this.rate = new Quantity(); 876 return this.rate; 877 } 878 else 879 return super.addChild(name); 880 } 881 882 public MedicationAdministrationDosageComponent copy() { 883 MedicationAdministrationDosageComponent dst = new MedicationAdministrationDosageComponent(); 884 copyValues(dst); 885 return dst; 886 } 887 888 public void copyValues(MedicationAdministrationDosageComponent dst) { 889 super.copyValues(dst); 890 dst.text = text == null ? null : text.copy(); 891 dst.site = site == null ? null : site.copy(); 892 dst.route = route == null ? null : route.copy(); 893 dst.method = method == null ? null : method.copy(); 894 dst.dose = dose == null ? null : dose.copy(); 895 dst.rate = rate == null ? null : rate.copy(); 896 } 897 898 @Override 899 public boolean equalsDeep(Base other_) { 900 if (!super.equalsDeep(other_)) 901 return false; 902 if (!(other_ instanceof MedicationAdministrationDosageComponent)) 903 return false; 904 MedicationAdministrationDosageComponent o = (MedicationAdministrationDosageComponent) other_; 905 return compareDeep(text, o.text, true) && compareDeep(site, o.site, true) && compareDeep(route, o.route, true) 906 && compareDeep(method, o.method, true) && compareDeep(dose, o.dose, true) && compareDeep(rate, o.rate, true) 907 ; 908 } 909 910 @Override 911 public boolean equalsShallow(Base other_) { 912 if (!super.equalsShallow(other_)) 913 return false; 914 if (!(other_ instanceof MedicationAdministrationDosageComponent)) 915 return false; 916 MedicationAdministrationDosageComponent o = (MedicationAdministrationDosageComponent) other_; 917 return compareValues(text, o.text, true); 918 } 919 920 public boolean isEmpty() { 921 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(text, site, route, method 922 , dose, rate); 923 } 924 925 public String fhirType() { 926 return "MedicationAdministration.dosage"; 927 928 } 929 930 } 931 932 /** 933 * Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server. 934 */ 935 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 936 @Description(shortDefinition="External identifier", formalDefinition="Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server." ) 937 protected List<Identifier> identifier; 938 939 /** 940 * A plan that is fulfilled in whole or in part by this MedicationAdministration. 941 */ 942 @Child(name = "basedOn", type = {CarePlan.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 943 @Description(shortDefinition="Plan this is fulfilled by this administration", formalDefinition="A plan that is fulfilled in whole or in part by this MedicationAdministration." ) 944 protected List<Reference> basedOn; 945 946 /** 947 * A larger event of which this particular event is a component or step. 948 */ 949 @Child(name = "partOf", type = {MedicationAdministration.class, Procedure.class, MedicationDispense.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 950 @Description(shortDefinition="Part of referenced event", formalDefinition="A larger event of which this particular event is a component or step." ) 951 protected List<Reference> partOf; 952 953 /** 954 * Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way. 955 */ 956 @Child(name = "status", type = {CodeType.class}, order=3, min=1, max=1, modifier=true, summary=true) 957 @Description(shortDefinition="in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown", formalDefinition="Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way." ) 958 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-admin-status") 959 protected Enumeration<MedicationAdministrationStatusCodes> status; 960 961 /** 962 * A code indicating why the administration was not performed. 963 */ 964 @Child(name = "statusReason", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 965 @Description(shortDefinition="Reason administration not performed", formalDefinition="A code indicating why the administration was not performed." ) 966 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/reason-medication-not-given-codes") 967 protected List<CodeableConcept> statusReason; 968 969 /** 970 * The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication). 971 */ 972 @Child(name = "category", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 973 @Description(shortDefinition="Type of medication administration", formalDefinition="The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication)." ) 974 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-admin-location") 975 protected List<CodeableConcept> category; 976 977 /** 978 * Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications. 979 */ 980 @Child(name = "medication", type = {CodeableReference.class}, order=6, min=1, max=1, modifier=false, summary=true) 981 @Description(shortDefinition="What was administered", formalDefinition="Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications." ) 982 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-codes") 983 protected CodeableReference medication; 984 985 /** 986 * The person or animal or group receiving the medication. 987 */ 988 @Child(name = "subject", type = {Patient.class, Group.class}, order=7, min=1, max=1, modifier=false, summary=true) 989 @Description(shortDefinition="Who received medication", formalDefinition="The person or animal or group receiving the medication." ) 990 protected Reference subject; 991 992 /** 993 * The visit, admission, or other contact between patient and health care provider during which the medication administration was performed. 994 */ 995 @Child(name = "encounter", type = {Encounter.class}, order=8, min=0, max=1, modifier=false, summary=false) 996 @Description(shortDefinition="Encounter administered as part of", formalDefinition="The visit, admission, or other contact between patient and health care provider during which the medication administration was performed." ) 997 protected Reference encounter; 998 999 /** 1000 * Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says "give "x" if the heartrate exceeds "y"", then the heart rate can be included using this attribute. 1001 */ 1002 @Child(name = "supportingInformation", type = {Reference.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1003 @Description(shortDefinition="Additional information to support administration", formalDefinition="Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says \"give \"x\" if the heartrate exceeds \"y\"\", then the heart rate can be included using this attribute." ) 1004 protected List<Reference> supportingInformation; 1005 1006 /** 1007 * A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate. 1008 */ 1009 @Child(name = "occurence", type = {DateTimeType.class, Period.class, Timing.class}, order=10, min=1, max=1, modifier=false, summary=true) 1010 @Description(shortDefinition="Specific date/time or interval of time during which the administration took place (or did not take place)", formalDefinition="A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate." ) 1011 protected DataType occurence; 1012 1013 /** 1014 * The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event. 1015 */ 1016 @Child(name = "recorded", type = {DateTimeType.class}, order=11, min=0, max=1, modifier=false, summary=true) 1017 @Description(shortDefinition="When the MedicationAdministration was first captured in the subject's record", formalDefinition="The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event." ) 1018 protected DateTimeType recorded; 1019 1020 /** 1021 * An indication that the full dose was not administered. 1022 */ 1023 @Child(name = "isSubPotent", type = {BooleanType.class}, order=12, min=0, max=1, modifier=false, summary=false) 1024 @Description(shortDefinition="Full dose was not administered", formalDefinition="An indication that the full dose was not administered." ) 1025 protected BooleanType isSubPotent; 1026 1027 /** 1028 * The reason or reasons why the full dose was not administered. 1029 */ 1030 @Child(name = "subPotentReason", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1031 @Description(shortDefinition="Reason full dose was not administered", formalDefinition="The reason or reasons why the full dose was not administered." ) 1032 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/administration-subpotent-reason") 1033 protected List<CodeableConcept> subPotentReason; 1034 1035 /** 1036 * The performer of the medication treatment. For devices this is the device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers. 1037 */ 1038 @Child(name = "performer", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1039 @Description(shortDefinition="Who or what performed the medication administration and what type of performance they did", formalDefinition="The performer of the medication treatment. For devices this is the device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers." ) 1040 protected List<MedicationAdministrationPerformerComponent> performer; 1041 1042 /** 1043 * A code, Condition or observation that supports why the medication was administered. 1044 */ 1045 @Child(name = "reason", type = {CodeableReference.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1046 @Description(shortDefinition="Concept, condition or observation that supports why the medication was administered", formalDefinition="A code, Condition or observation that supports why the medication was administered." ) 1047 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/reason-medication-given-codes") 1048 protected List<CodeableReference> reason; 1049 1050 /** 1051 * The original request, instruction or authority to perform the administration. 1052 */ 1053 @Child(name = "request", type = {MedicationRequest.class}, order=16, min=0, max=1, modifier=false, summary=false) 1054 @Description(shortDefinition="Request administration performed against", formalDefinition="The original request, instruction or authority to perform the administration." ) 1055 protected Reference request; 1056 1057 /** 1058 * The device that is to be used for the administration of the medication (for example, PCA Pump). 1059 */ 1060 @Child(name = "device", type = {CodeableReference.class}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1061 @Description(shortDefinition="Device used to administer", formalDefinition="The device that is to be used for the administration of the medication (for example, PCA Pump)." ) 1062 protected List<CodeableReference> device; 1063 1064 /** 1065 * Extra information about the medication administration that is not conveyed by the other attributes. 1066 */ 1067 @Child(name = "note", type = {Annotation.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1068 @Description(shortDefinition="Information about the administration", formalDefinition="Extra information about the medication administration that is not conveyed by the other attributes." ) 1069 protected List<Annotation> note; 1070 1071 /** 1072 * Describes the medication dosage information details e.g. dose, rate, site, route, etc. 1073 */ 1074 @Child(name = "dosage", type = {}, order=19, min=0, max=1, modifier=false, summary=false) 1075 @Description(shortDefinition="Details of how medication was taken", formalDefinition="Describes the medication dosage information details e.g. dose, rate, site, route, etc." ) 1076 protected MedicationAdministrationDosageComponent dosage; 1077 1078 /** 1079 * A summary of the events of interest that have occurred, such as when the administration was verified. 1080 */ 1081 @Child(name = "eventHistory", type = {Provenance.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1082 @Description(shortDefinition="A list of events of interest in the lifecycle", formalDefinition="A summary of the events of interest that have occurred, such as when the administration was verified." ) 1083 protected List<Reference> eventHistory; 1084 1085 private static final long serialVersionUID = 296165909L; 1086 1087 /** 1088 * Constructor 1089 */ 1090 public MedicationAdministration() { 1091 super(); 1092 } 1093 1094 /** 1095 * Constructor 1096 */ 1097 public MedicationAdministration(MedicationAdministrationStatusCodes status, CodeableReference medication, Reference subject, DataType occurence) { 1098 super(); 1099 this.setStatus(status); 1100 this.setMedication(medication); 1101 this.setSubject(subject); 1102 this.setOccurence(occurence); 1103 } 1104 1105 /** 1106 * @return {@link #identifier} (Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.) 1107 */ 1108 public List<Identifier> getIdentifier() { 1109 if (this.identifier == null) 1110 this.identifier = new ArrayList<Identifier>(); 1111 return this.identifier; 1112 } 1113 1114 /** 1115 * @return Returns a reference to <code>this</code> for easy method chaining 1116 */ 1117 public MedicationAdministration setIdentifier(List<Identifier> theIdentifier) { 1118 this.identifier = theIdentifier; 1119 return this; 1120 } 1121 1122 public boolean hasIdentifier() { 1123 if (this.identifier == null) 1124 return false; 1125 for (Identifier item : this.identifier) 1126 if (!item.isEmpty()) 1127 return true; 1128 return false; 1129 } 1130 1131 public Identifier addIdentifier() { //3 1132 Identifier t = new Identifier(); 1133 if (this.identifier == null) 1134 this.identifier = new ArrayList<Identifier>(); 1135 this.identifier.add(t); 1136 return t; 1137 } 1138 1139 public MedicationAdministration addIdentifier(Identifier t) { //3 1140 if (t == null) 1141 return this; 1142 if (this.identifier == null) 1143 this.identifier = new ArrayList<Identifier>(); 1144 this.identifier.add(t); 1145 return this; 1146 } 1147 1148 /** 1149 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3} 1150 */ 1151 public Identifier getIdentifierFirstRep() { 1152 if (getIdentifier().isEmpty()) { 1153 addIdentifier(); 1154 } 1155 return getIdentifier().get(0); 1156 } 1157 1158 /** 1159 * @return {@link #basedOn} (A plan that is fulfilled in whole or in part by this MedicationAdministration.) 1160 */ 1161 public List<Reference> getBasedOn() { 1162 if (this.basedOn == null) 1163 this.basedOn = new ArrayList<Reference>(); 1164 return this.basedOn; 1165 } 1166 1167 /** 1168 * @return Returns a reference to <code>this</code> for easy method chaining 1169 */ 1170 public MedicationAdministration setBasedOn(List<Reference> theBasedOn) { 1171 this.basedOn = theBasedOn; 1172 return this; 1173 } 1174 1175 public boolean hasBasedOn() { 1176 if (this.basedOn == null) 1177 return false; 1178 for (Reference item : this.basedOn) 1179 if (!item.isEmpty()) 1180 return true; 1181 return false; 1182 } 1183 1184 public Reference addBasedOn() { //3 1185 Reference t = new Reference(); 1186 if (this.basedOn == null) 1187 this.basedOn = new ArrayList<Reference>(); 1188 this.basedOn.add(t); 1189 return t; 1190 } 1191 1192 public MedicationAdministration addBasedOn(Reference t) { //3 1193 if (t == null) 1194 return this; 1195 if (this.basedOn == null) 1196 this.basedOn = new ArrayList<Reference>(); 1197 this.basedOn.add(t); 1198 return this; 1199 } 1200 1201 /** 1202 * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist {3} 1203 */ 1204 public Reference getBasedOnFirstRep() { 1205 if (getBasedOn().isEmpty()) { 1206 addBasedOn(); 1207 } 1208 return getBasedOn().get(0); 1209 } 1210 1211 /** 1212 * @return {@link #partOf} (A larger event of which this particular event is a component or step.) 1213 */ 1214 public List<Reference> getPartOf() { 1215 if (this.partOf == null) 1216 this.partOf = new ArrayList<Reference>(); 1217 return this.partOf; 1218 } 1219 1220 /** 1221 * @return Returns a reference to <code>this</code> for easy method chaining 1222 */ 1223 public MedicationAdministration setPartOf(List<Reference> thePartOf) { 1224 this.partOf = thePartOf; 1225 return this; 1226 } 1227 1228 public boolean hasPartOf() { 1229 if (this.partOf == null) 1230 return false; 1231 for (Reference item : this.partOf) 1232 if (!item.isEmpty()) 1233 return true; 1234 return false; 1235 } 1236 1237 public Reference addPartOf() { //3 1238 Reference t = new Reference(); 1239 if (this.partOf == null) 1240 this.partOf = new ArrayList<Reference>(); 1241 this.partOf.add(t); 1242 return t; 1243 } 1244 1245 public MedicationAdministration addPartOf(Reference t) { //3 1246 if (t == null) 1247 return this; 1248 if (this.partOf == null) 1249 this.partOf = new ArrayList<Reference>(); 1250 this.partOf.add(t); 1251 return this; 1252 } 1253 1254 /** 1255 * @return The first repetition of repeating field {@link #partOf}, creating it if it does not already exist {3} 1256 */ 1257 public Reference getPartOfFirstRep() { 1258 if (getPartOf().isEmpty()) { 1259 addPartOf(); 1260 } 1261 return getPartOf().get(0); 1262 } 1263 1264 /** 1265 * @return {@link #status} (Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1266 */ 1267 public Enumeration<MedicationAdministrationStatusCodes> getStatusElement() { 1268 if (this.status == null) 1269 if (Configuration.errorOnAutoCreate()) 1270 throw new Error("Attempt to auto-create MedicationAdministration.status"); 1271 else if (Configuration.doAutoCreate()) 1272 this.status = new Enumeration<MedicationAdministrationStatusCodes>(new MedicationAdministrationStatusCodesEnumFactory()); // bb 1273 return this.status; 1274 } 1275 1276 public boolean hasStatusElement() { 1277 return this.status != null && !this.status.isEmpty(); 1278 } 1279 1280 public boolean hasStatus() { 1281 return this.status != null && !this.status.isEmpty(); 1282 } 1283 1284 /** 1285 * @param value {@link #status} (Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1286 */ 1287 public MedicationAdministration setStatusElement(Enumeration<MedicationAdministrationStatusCodes> value) { 1288 this.status = value; 1289 return this; 1290 } 1291 1292 /** 1293 * @return Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way. 1294 */ 1295 public MedicationAdministrationStatusCodes getStatus() { 1296 return this.status == null ? null : this.status.getValue(); 1297 } 1298 1299 /** 1300 * @param value Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way. 1301 */ 1302 public MedicationAdministration setStatus(MedicationAdministrationStatusCodes value) { 1303 if (this.status == null) 1304 this.status = new Enumeration<MedicationAdministrationStatusCodes>(new MedicationAdministrationStatusCodesEnumFactory()); 1305 this.status.setValue(value); 1306 return this; 1307 } 1308 1309 /** 1310 * @return {@link #statusReason} (A code indicating why the administration was not performed.) 1311 */ 1312 public List<CodeableConcept> getStatusReason() { 1313 if (this.statusReason == null) 1314 this.statusReason = new ArrayList<CodeableConcept>(); 1315 return this.statusReason; 1316 } 1317 1318 /** 1319 * @return Returns a reference to <code>this</code> for easy method chaining 1320 */ 1321 public MedicationAdministration setStatusReason(List<CodeableConcept> theStatusReason) { 1322 this.statusReason = theStatusReason; 1323 return this; 1324 } 1325 1326 public boolean hasStatusReason() { 1327 if (this.statusReason == null) 1328 return false; 1329 for (CodeableConcept item : this.statusReason) 1330 if (!item.isEmpty()) 1331 return true; 1332 return false; 1333 } 1334 1335 public CodeableConcept addStatusReason() { //3 1336 CodeableConcept t = new CodeableConcept(); 1337 if (this.statusReason == null) 1338 this.statusReason = new ArrayList<CodeableConcept>(); 1339 this.statusReason.add(t); 1340 return t; 1341 } 1342 1343 public MedicationAdministration addStatusReason(CodeableConcept t) { //3 1344 if (t == null) 1345 return this; 1346 if (this.statusReason == null) 1347 this.statusReason = new ArrayList<CodeableConcept>(); 1348 this.statusReason.add(t); 1349 return this; 1350 } 1351 1352 /** 1353 * @return The first repetition of repeating field {@link #statusReason}, creating it if it does not already exist {3} 1354 */ 1355 public CodeableConcept getStatusReasonFirstRep() { 1356 if (getStatusReason().isEmpty()) { 1357 addStatusReason(); 1358 } 1359 return getStatusReason().get(0); 1360 } 1361 1362 /** 1363 * @return {@link #category} (The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication).) 1364 */ 1365 public List<CodeableConcept> getCategory() { 1366 if (this.category == null) 1367 this.category = new ArrayList<CodeableConcept>(); 1368 return this.category; 1369 } 1370 1371 /** 1372 * @return Returns a reference to <code>this</code> for easy method chaining 1373 */ 1374 public MedicationAdministration setCategory(List<CodeableConcept> theCategory) { 1375 this.category = theCategory; 1376 return this; 1377 } 1378 1379 public boolean hasCategory() { 1380 if (this.category == null) 1381 return false; 1382 for (CodeableConcept item : this.category) 1383 if (!item.isEmpty()) 1384 return true; 1385 return false; 1386 } 1387 1388 public CodeableConcept addCategory() { //3 1389 CodeableConcept t = new CodeableConcept(); 1390 if (this.category == null) 1391 this.category = new ArrayList<CodeableConcept>(); 1392 this.category.add(t); 1393 return t; 1394 } 1395 1396 public MedicationAdministration addCategory(CodeableConcept t) { //3 1397 if (t == null) 1398 return this; 1399 if (this.category == null) 1400 this.category = new ArrayList<CodeableConcept>(); 1401 this.category.add(t); 1402 return this; 1403 } 1404 1405 /** 1406 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3} 1407 */ 1408 public CodeableConcept getCategoryFirstRep() { 1409 if (getCategory().isEmpty()) { 1410 addCategory(); 1411 } 1412 return getCategory().get(0); 1413 } 1414 1415 /** 1416 * @return {@link #medication} (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) 1417 */ 1418 public CodeableReference getMedication() { 1419 if (this.medication == null) 1420 if (Configuration.errorOnAutoCreate()) 1421 throw new Error("Attempt to auto-create MedicationAdministration.medication"); 1422 else if (Configuration.doAutoCreate()) 1423 this.medication = new CodeableReference(); // cc 1424 return this.medication; 1425 } 1426 1427 public boolean hasMedication() { 1428 return this.medication != null && !this.medication.isEmpty(); 1429 } 1430 1431 /** 1432 * @param value {@link #medication} (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) 1433 */ 1434 public MedicationAdministration setMedication(CodeableReference value) { 1435 this.medication = value; 1436 return this; 1437 } 1438 1439 /** 1440 * @return {@link #subject} (The person or animal or group receiving the medication.) 1441 */ 1442 public Reference getSubject() { 1443 if (this.subject == null) 1444 if (Configuration.errorOnAutoCreate()) 1445 throw new Error("Attempt to auto-create MedicationAdministration.subject"); 1446 else if (Configuration.doAutoCreate()) 1447 this.subject = new Reference(); // cc 1448 return this.subject; 1449 } 1450 1451 public boolean hasSubject() { 1452 return this.subject != null && !this.subject.isEmpty(); 1453 } 1454 1455 /** 1456 * @param value {@link #subject} (The person or animal or group receiving the medication.) 1457 */ 1458 public MedicationAdministration setSubject(Reference value) { 1459 this.subject = value; 1460 return this; 1461 } 1462 1463 /** 1464 * @return {@link #encounter} (The visit, admission, or other contact between patient and health care provider during which the medication administration was performed.) 1465 */ 1466 public Reference getEncounter() { 1467 if (this.encounter == null) 1468 if (Configuration.errorOnAutoCreate()) 1469 throw new Error("Attempt to auto-create MedicationAdministration.encounter"); 1470 else if (Configuration.doAutoCreate()) 1471 this.encounter = new Reference(); // cc 1472 return this.encounter; 1473 } 1474 1475 public boolean hasEncounter() { 1476 return this.encounter != null && !this.encounter.isEmpty(); 1477 } 1478 1479 /** 1480 * @param value {@link #encounter} (The visit, admission, or other contact between patient and health care provider during which the medication administration was performed.) 1481 */ 1482 public MedicationAdministration setEncounter(Reference value) { 1483 this.encounter = value; 1484 return this; 1485 } 1486 1487 /** 1488 * @return {@link #supportingInformation} (Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says "give "x" if the heartrate exceeds "y"", then the heart rate can be included using this attribute.) 1489 */ 1490 public List<Reference> getSupportingInformation() { 1491 if (this.supportingInformation == null) 1492 this.supportingInformation = new ArrayList<Reference>(); 1493 return this.supportingInformation; 1494 } 1495 1496 /** 1497 * @return Returns a reference to <code>this</code> for easy method chaining 1498 */ 1499 public MedicationAdministration setSupportingInformation(List<Reference> theSupportingInformation) { 1500 this.supportingInformation = theSupportingInformation; 1501 return this; 1502 } 1503 1504 public boolean hasSupportingInformation() { 1505 if (this.supportingInformation == null) 1506 return false; 1507 for (Reference item : this.supportingInformation) 1508 if (!item.isEmpty()) 1509 return true; 1510 return false; 1511 } 1512 1513 public Reference addSupportingInformation() { //3 1514 Reference t = new Reference(); 1515 if (this.supportingInformation == null) 1516 this.supportingInformation = new ArrayList<Reference>(); 1517 this.supportingInformation.add(t); 1518 return t; 1519 } 1520 1521 public MedicationAdministration addSupportingInformation(Reference t) { //3 1522 if (t == null) 1523 return this; 1524 if (this.supportingInformation == null) 1525 this.supportingInformation = new ArrayList<Reference>(); 1526 this.supportingInformation.add(t); 1527 return this; 1528 } 1529 1530 /** 1531 * @return The first repetition of repeating field {@link #supportingInformation}, creating it if it does not already exist {3} 1532 */ 1533 public Reference getSupportingInformationFirstRep() { 1534 if (getSupportingInformation().isEmpty()) { 1535 addSupportingInformation(); 1536 } 1537 return getSupportingInformation().get(0); 1538 } 1539 1540 /** 1541 * @return {@link #occurence} (A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.) 1542 */ 1543 public DataType getOccurence() { 1544 return this.occurence; 1545 } 1546 1547 /** 1548 * @return {@link #occurence} (A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.) 1549 */ 1550 public DateTimeType getOccurenceDateTimeType() throws FHIRException { 1551 if (this.occurence == null) 1552 this.occurence = new DateTimeType(); 1553 if (!(this.occurence instanceof DateTimeType)) 1554 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.occurence.getClass().getName()+" was encountered"); 1555 return (DateTimeType) this.occurence; 1556 } 1557 1558 public boolean hasOccurenceDateTimeType() { 1559 return this != null && this.occurence instanceof DateTimeType; 1560 } 1561 1562 /** 1563 * @return {@link #occurence} (A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.) 1564 */ 1565 public Period getOccurencePeriod() throws FHIRException { 1566 if (this.occurence == null) 1567 this.occurence = new Period(); 1568 if (!(this.occurence instanceof Period)) 1569 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.occurence.getClass().getName()+" was encountered"); 1570 return (Period) this.occurence; 1571 } 1572 1573 public boolean hasOccurencePeriod() { 1574 return this != null && this.occurence instanceof Period; 1575 } 1576 1577 /** 1578 * @return {@link #occurence} (A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.) 1579 */ 1580 public Timing getOccurenceTiming() throws FHIRException { 1581 if (this.occurence == null) 1582 this.occurence = new Timing(); 1583 if (!(this.occurence instanceof Timing)) 1584 throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.occurence.getClass().getName()+" was encountered"); 1585 return (Timing) this.occurence; 1586 } 1587 1588 public boolean hasOccurenceTiming() { 1589 return this != null && this.occurence instanceof Timing; 1590 } 1591 1592 public boolean hasOccurence() { 1593 return this.occurence != null && !this.occurence.isEmpty(); 1594 } 1595 1596 /** 1597 * @param value {@link #occurence} (A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.) 1598 */ 1599 public MedicationAdministration setOccurence(DataType value) { 1600 if (value != null && !(value instanceof DateTimeType || value instanceof Period || value instanceof Timing)) 1601 throw new FHIRException("Not the right type for MedicationAdministration.occurence[x]: "+value.fhirType()); 1602 this.occurence = value; 1603 return this; 1604 } 1605 1606 /** 1607 * @return {@link #recorded} (The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event.). This is the underlying object with id, value and extensions. The accessor "getRecorded" gives direct access to the value 1608 */ 1609 public DateTimeType getRecordedElement() { 1610 if (this.recorded == null) 1611 if (Configuration.errorOnAutoCreate()) 1612 throw new Error("Attempt to auto-create MedicationAdministration.recorded"); 1613 else if (Configuration.doAutoCreate()) 1614 this.recorded = new DateTimeType(); // bb 1615 return this.recorded; 1616 } 1617 1618 public boolean hasRecordedElement() { 1619 return this.recorded != null && !this.recorded.isEmpty(); 1620 } 1621 1622 public boolean hasRecorded() { 1623 return this.recorded != null && !this.recorded.isEmpty(); 1624 } 1625 1626 /** 1627 * @param value {@link #recorded} (The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event.). This is the underlying object with id, value and extensions. The accessor "getRecorded" gives direct access to the value 1628 */ 1629 public MedicationAdministration setRecordedElement(DateTimeType value) { 1630 this.recorded = value; 1631 return this; 1632 } 1633 1634 /** 1635 * @return The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event. 1636 */ 1637 public Date getRecorded() { 1638 return this.recorded == null ? null : this.recorded.getValue(); 1639 } 1640 1641 /** 1642 * @param value The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event. 1643 */ 1644 public MedicationAdministration setRecorded(Date value) { 1645 if (value == null) 1646 this.recorded = null; 1647 else { 1648 if (this.recorded == null) 1649 this.recorded = new DateTimeType(); 1650 this.recorded.setValue(value); 1651 } 1652 return this; 1653 } 1654 1655 /** 1656 * @return {@link #isSubPotent} (An indication that the full dose was not administered.). This is the underlying object with id, value and extensions. The accessor "getIsSubPotent" gives direct access to the value 1657 */ 1658 public BooleanType getIsSubPotentElement() { 1659 if (this.isSubPotent == null) 1660 if (Configuration.errorOnAutoCreate()) 1661 throw new Error("Attempt to auto-create MedicationAdministration.isSubPotent"); 1662 else if (Configuration.doAutoCreate()) 1663 this.isSubPotent = new BooleanType(); // bb 1664 return this.isSubPotent; 1665 } 1666 1667 public boolean hasIsSubPotentElement() { 1668 return this.isSubPotent != null && !this.isSubPotent.isEmpty(); 1669 } 1670 1671 public boolean hasIsSubPotent() { 1672 return this.isSubPotent != null && !this.isSubPotent.isEmpty(); 1673 } 1674 1675 /** 1676 * @param value {@link #isSubPotent} (An indication that the full dose was not administered.). This is the underlying object with id, value and extensions. The accessor "getIsSubPotent" gives direct access to the value 1677 */ 1678 public MedicationAdministration setIsSubPotentElement(BooleanType value) { 1679 this.isSubPotent = value; 1680 return this; 1681 } 1682 1683 /** 1684 * @return An indication that the full dose was not administered. 1685 */ 1686 public boolean getIsSubPotent() { 1687 return this.isSubPotent == null || this.isSubPotent.isEmpty() ? false : this.isSubPotent.getValue(); 1688 } 1689 1690 /** 1691 * @param value An indication that the full dose was not administered. 1692 */ 1693 public MedicationAdministration setIsSubPotent(boolean value) { 1694 if (this.isSubPotent == null) 1695 this.isSubPotent = new BooleanType(); 1696 this.isSubPotent.setValue(value); 1697 return this; 1698 } 1699 1700 /** 1701 * @return {@link #subPotentReason} (The reason or reasons why the full dose was not administered.) 1702 */ 1703 public List<CodeableConcept> getSubPotentReason() { 1704 if (this.subPotentReason == null) 1705 this.subPotentReason = new ArrayList<CodeableConcept>(); 1706 return this.subPotentReason; 1707 } 1708 1709 /** 1710 * @return Returns a reference to <code>this</code> for easy method chaining 1711 */ 1712 public MedicationAdministration setSubPotentReason(List<CodeableConcept> theSubPotentReason) { 1713 this.subPotentReason = theSubPotentReason; 1714 return this; 1715 } 1716 1717 public boolean hasSubPotentReason() { 1718 if (this.subPotentReason == null) 1719 return false; 1720 for (CodeableConcept item : this.subPotentReason) 1721 if (!item.isEmpty()) 1722 return true; 1723 return false; 1724 } 1725 1726 public CodeableConcept addSubPotentReason() { //3 1727 CodeableConcept t = new CodeableConcept(); 1728 if (this.subPotentReason == null) 1729 this.subPotentReason = new ArrayList<CodeableConcept>(); 1730 this.subPotentReason.add(t); 1731 return t; 1732 } 1733 1734 public MedicationAdministration addSubPotentReason(CodeableConcept t) { //3 1735 if (t == null) 1736 return this; 1737 if (this.subPotentReason == null) 1738 this.subPotentReason = new ArrayList<CodeableConcept>(); 1739 this.subPotentReason.add(t); 1740 return this; 1741 } 1742 1743 /** 1744 * @return The first repetition of repeating field {@link #subPotentReason}, creating it if it does not already exist {3} 1745 */ 1746 public CodeableConcept getSubPotentReasonFirstRep() { 1747 if (getSubPotentReason().isEmpty()) { 1748 addSubPotentReason(); 1749 } 1750 return getSubPotentReason().get(0); 1751 } 1752 1753 /** 1754 * @return {@link #performer} (The performer of the medication treatment. For devices this is the device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers.) 1755 */ 1756 public List<MedicationAdministrationPerformerComponent> getPerformer() { 1757 if (this.performer == null) 1758 this.performer = new ArrayList<MedicationAdministrationPerformerComponent>(); 1759 return this.performer; 1760 } 1761 1762 /** 1763 * @return Returns a reference to <code>this</code> for easy method chaining 1764 */ 1765 public MedicationAdministration setPerformer(List<MedicationAdministrationPerformerComponent> thePerformer) { 1766 this.performer = thePerformer; 1767 return this; 1768 } 1769 1770 public boolean hasPerformer() { 1771 if (this.performer == null) 1772 return false; 1773 for (MedicationAdministrationPerformerComponent item : this.performer) 1774 if (!item.isEmpty()) 1775 return true; 1776 return false; 1777 } 1778 1779 public MedicationAdministrationPerformerComponent addPerformer() { //3 1780 MedicationAdministrationPerformerComponent t = new MedicationAdministrationPerformerComponent(); 1781 if (this.performer == null) 1782 this.performer = new ArrayList<MedicationAdministrationPerformerComponent>(); 1783 this.performer.add(t); 1784 return t; 1785 } 1786 1787 public MedicationAdministration addPerformer(MedicationAdministrationPerformerComponent t) { //3 1788 if (t == null) 1789 return this; 1790 if (this.performer == null) 1791 this.performer = new ArrayList<MedicationAdministrationPerformerComponent>(); 1792 this.performer.add(t); 1793 return this; 1794 } 1795 1796 /** 1797 * @return The first repetition of repeating field {@link #performer}, creating it if it does not already exist {3} 1798 */ 1799 public MedicationAdministrationPerformerComponent getPerformerFirstRep() { 1800 if (getPerformer().isEmpty()) { 1801 addPerformer(); 1802 } 1803 return getPerformer().get(0); 1804 } 1805 1806 /** 1807 * @return {@link #reason} (A code, Condition or observation that supports why the medication was administered.) 1808 */ 1809 public List<CodeableReference> getReason() { 1810 if (this.reason == null) 1811 this.reason = new ArrayList<CodeableReference>(); 1812 return this.reason; 1813 } 1814 1815 /** 1816 * @return Returns a reference to <code>this</code> for easy method chaining 1817 */ 1818 public MedicationAdministration setReason(List<CodeableReference> theReason) { 1819 this.reason = theReason; 1820 return this; 1821 } 1822 1823 public boolean hasReason() { 1824 if (this.reason == null) 1825 return false; 1826 for (CodeableReference item : this.reason) 1827 if (!item.isEmpty()) 1828 return true; 1829 return false; 1830 } 1831 1832 public CodeableReference addReason() { //3 1833 CodeableReference t = new CodeableReference(); 1834 if (this.reason == null) 1835 this.reason = new ArrayList<CodeableReference>(); 1836 this.reason.add(t); 1837 return t; 1838 } 1839 1840 public MedicationAdministration addReason(CodeableReference t) { //3 1841 if (t == null) 1842 return this; 1843 if (this.reason == null) 1844 this.reason = new ArrayList<CodeableReference>(); 1845 this.reason.add(t); 1846 return this; 1847 } 1848 1849 /** 1850 * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist {3} 1851 */ 1852 public CodeableReference getReasonFirstRep() { 1853 if (getReason().isEmpty()) { 1854 addReason(); 1855 } 1856 return getReason().get(0); 1857 } 1858 1859 /** 1860 * @return {@link #request} (The original request, instruction or authority to perform the administration.) 1861 */ 1862 public Reference getRequest() { 1863 if (this.request == null) 1864 if (Configuration.errorOnAutoCreate()) 1865 throw new Error("Attempt to auto-create MedicationAdministration.request"); 1866 else if (Configuration.doAutoCreate()) 1867 this.request = new Reference(); // cc 1868 return this.request; 1869 } 1870 1871 public boolean hasRequest() { 1872 return this.request != null && !this.request.isEmpty(); 1873 } 1874 1875 /** 1876 * @param value {@link #request} (The original request, instruction or authority to perform the administration.) 1877 */ 1878 public MedicationAdministration setRequest(Reference value) { 1879 this.request = value; 1880 return this; 1881 } 1882 1883 /** 1884 * @return {@link #device} (The device that is to be used for the administration of the medication (for example, PCA Pump).) 1885 */ 1886 public List<CodeableReference> getDevice() { 1887 if (this.device == null) 1888 this.device = new ArrayList<CodeableReference>(); 1889 return this.device; 1890 } 1891 1892 /** 1893 * @return Returns a reference to <code>this</code> for easy method chaining 1894 */ 1895 public MedicationAdministration setDevice(List<CodeableReference> theDevice) { 1896 this.device = theDevice; 1897 return this; 1898 } 1899 1900 public boolean hasDevice() { 1901 if (this.device == null) 1902 return false; 1903 for (CodeableReference item : this.device) 1904 if (!item.isEmpty()) 1905 return true; 1906 return false; 1907 } 1908 1909 public CodeableReference addDevice() { //3 1910 CodeableReference t = new CodeableReference(); 1911 if (this.device == null) 1912 this.device = new ArrayList<CodeableReference>(); 1913 this.device.add(t); 1914 return t; 1915 } 1916 1917 public MedicationAdministration addDevice(CodeableReference t) { //3 1918 if (t == null) 1919 return this; 1920 if (this.device == null) 1921 this.device = new ArrayList<CodeableReference>(); 1922 this.device.add(t); 1923 return this; 1924 } 1925 1926 /** 1927 * @return The first repetition of repeating field {@link #device}, creating it if it does not already exist {3} 1928 */ 1929 public CodeableReference getDeviceFirstRep() { 1930 if (getDevice().isEmpty()) { 1931 addDevice(); 1932 } 1933 return getDevice().get(0); 1934 } 1935 1936 /** 1937 * @return {@link #note} (Extra information about the medication administration that is not conveyed by the other attributes.) 1938 */ 1939 public List<Annotation> getNote() { 1940 if (this.note == null) 1941 this.note = new ArrayList<Annotation>(); 1942 return this.note; 1943 } 1944 1945 /** 1946 * @return Returns a reference to <code>this</code> for easy method chaining 1947 */ 1948 public MedicationAdministration setNote(List<Annotation> theNote) { 1949 this.note = theNote; 1950 return this; 1951 } 1952 1953 public boolean hasNote() { 1954 if (this.note == null) 1955 return false; 1956 for (Annotation item : this.note) 1957 if (!item.isEmpty()) 1958 return true; 1959 return false; 1960 } 1961 1962 public Annotation addNote() { //3 1963 Annotation t = new Annotation(); 1964 if (this.note == null) 1965 this.note = new ArrayList<Annotation>(); 1966 this.note.add(t); 1967 return t; 1968 } 1969 1970 public MedicationAdministration addNote(Annotation t) { //3 1971 if (t == null) 1972 return this; 1973 if (this.note == null) 1974 this.note = new ArrayList<Annotation>(); 1975 this.note.add(t); 1976 return this; 1977 } 1978 1979 /** 1980 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3} 1981 */ 1982 public Annotation getNoteFirstRep() { 1983 if (getNote().isEmpty()) { 1984 addNote(); 1985 } 1986 return getNote().get(0); 1987 } 1988 1989 /** 1990 * @return {@link #dosage} (Describes the medication dosage information details e.g. dose, rate, site, route, etc.) 1991 */ 1992 public MedicationAdministrationDosageComponent getDosage() { 1993 if (this.dosage == null) 1994 if (Configuration.errorOnAutoCreate()) 1995 throw new Error("Attempt to auto-create MedicationAdministration.dosage"); 1996 else if (Configuration.doAutoCreate()) 1997 this.dosage = new MedicationAdministrationDosageComponent(); // cc 1998 return this.dosage; 1999 } 2000 2001 public boolean hasDosage() { 2002 return this.dosage != null && !this.dosage.isEmpty(); 2003 } 2004 2005 /** 2006 * @param value {@link #dosage} (Describes the medication dosage information details e.g. dose, rate, site, route, etc.) 2007 */ 2008 public MedicationAdministration setDosage(MedicationAdministrationDosageComponent value) { 2009 this.dosage = value; 2010 return this; 2011 } 2012 2013 /** 2014 * @return {@link #eventHistory} (A summary of the events of interest that have occurred, such as when the administration was verified.) 2015 */ 2016 public List<Reference> getEventHistory() { 2017 if (this.eventHistory == null) 2018 this.eventHistory = new ArrayList<Reference>(); 2019 return this.eventHistory; 2020 } 2021 2022 /** 2023 * @return Returns a reference to <code>this</code> for easy method chaining 2024 */ 2025 public MedicationAdministration setEventHistory(List<Reference> theEventHistory) { 2026 this.eventHistory = theEventHistory; 2027 return this; 2028 } 2029 2030 public boolean hasEventHistory() { 2031 if (this.eventHistory == null) 2032 return false; 2033 for (Reference item : this.eventHistory) 2034 if (!item.isEmpty()) 2035 return true; 2036 return false; 2037 } 2038 2039 public Reference addEventHistory() { //3 2040 Reference t = new Reference(); 2041 if (this.eventHistory == null) 2042 this.eventHistory = new ArrayList<Reference>(); 2043 this.eventHistory.add(t); 2044 return t; 2045 } 2046 2047 public MedicationAdministration addEventHistory(Reference t) { //3 2048 if (t == null) 2049 return this; 2050 if (this.eventHistory == null) 2051 this.eventHistory = new ArrayList<Reference>(); 2052 this.eventHistory.add(t); 2053 return this; 2054 } 2055 2056 /** 2057 * @return The first repetition of repeating field {@link #eventHistory}, creating it if it does not already exist {3} 2058 */ 2059 public Reference getEventHistoryFirstRep() { 2060 if (getEventHistory().isEmpty()) { 2061 addEventHistory(); 2062 } 2063 return getEventHistory().get(0); 2064 } 2065 2066 protected void listChildren(List<Property> children) { 2067 super.listChildren(children); 2068 children.add(new Property("identifier", "Identifier", "Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier)); 2069 children.add(new Property("basedOn", "Reference(CarePlan)", "A plan that is fulfilled in whole or in part by this MedicationAdministration.", 0, java.lang.Integer.MAX_VALUE, basedOn)); 2070 children.add(new Property("partOf", "Reference(MedicationAdministration|Procedure|MedicationDispense)", "A larger event of which this particular event is a component or step.", 0, java.lang.Integer.MAX_VALUE, partOf)); 2071 children.add(new Property("status", "code", "Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way.", 0, 1, status)); 2072 children.add(new Property("statusReason", "CodeableConcept", "A code indicating why the administration was not performed.", 0, java.lang.Integer.MAX_VALUE, statusReason)); 2073 children.add(new Property("category", "CodeableConcept", "The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication).", 0, java.lang.Integer.MAX_VALUE, category)); 2074 children.add(new Property("medication", "CodeableReference(Medication)", "Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.", 0, 1, medication)); 2075 children.add(new Property("subject", "Reference(Patient|Group)", "The person or animal or group receiving the medication.", 0, 1, subject)); 2076 children.add(new Property("encounter", "Reference(Encounter)", "The visit, admission, or other contact between patient and health care provider during which the medication administration was performed.", 0, 1, encounter)); 2077 children.add(new Property("supportingInformation", "Reference(Any)", "Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says \"give \"x\" if the heartrate exceeds \"y\"\", then the heart rate can be included using this attribute.", 0, java.lang.Integer.MAX_VALUE, supportingInformation)); 2078 children.add(new Property("occurence[x]", "dateTime|Period|Timing", "A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", 0, 1, occurence)); 2079 children.add(new Property("recorded", "dateTime", "The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event.", 0, 1, recorded)); 2080 children.add(new Property("isSubPotent", "boolean", "An indication that the full dose was not administered.", 0, 1, isSubPotent)); 2081 children.add(new Property("subPotentReason", "CodeableConcept", "The reason or reasons why the full dose was not administered.", 0, java.lang.Integer.MAX_VALUE, subPotentReason)); 2082 children.add(new Property("performer", "", "The performer of the medication treatment. For devices this is the device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers.", 0, java.lang.Integer.MAX_VALUE, performer)); 2083 children.add(new Property("reason", "CodeableReference(Condition|Observation|DiagnosticReport)", "A code, Condition or observation that supports why the medication was administered.", 0, java.lang.Integer.MAX_VALUE, reason)); 2084 children.add(new Property("request", "Reference(MedicationRequest)", "The original request, instruction or authority to perform the administration.", 0, 1, request)); 2085 children.add(new Property("device", "CodeableReference(Device)", "The device that is to be used for the administration of the medication (for example, PCA Pump).", 0, java.lang.Integer.MAX_VALUE, device)); 2086 children.add(new Property("note", "Annotation", "Extra information about the medication administration that is not conveyed by the other attributes.", 0, java.lang.Integer.MAX_VALUE, note)); 2087 children.add(new Property("dosage", "", "Describes the medication dosage information details e.g. dose, rate, site, route, etc.", 0, 1, dosage)); 2088 children.add(new Property("eventHistory", "Reference(Provenance)", "A summary of the events of interest that have occurred, such as when the administration was verified.", 0, java.lang.Integer.MAX_VALUE, eventHistory)); 2089 } 2090 2091 @Override 2092 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2093 switch (_hash) { 2094 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier); 2095 case -332612366: /*basedOn*/ return new Property("basedOn", "Reference(CarePlan)", "A plan that is fulfilled in whole or in part by this MedicationAdministration.", 0, java.lang.Integer.MAX_VALUE, basedOn); 2096 case -995410646: /*partOf*/ return new Property("partOf", "Reference(MedicationAdministration|Procedure|MedicationDispense)", "A larger event of which this particular event is a component or step.", 0, java.lang.Integer.MAX_VALUE, partOf); 2097 case -892481550: /*status*/ return new Property("status", "code", "Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way.", 0, 1, status); 2098 case 2051346646: /*statusReason*/ return new Property("statusReason", "CodeableConcept", "A code indicating why the administration was not performed.", 0, java.lang.Integer.MAX_VALUE, statusReason); 2099 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication).", 0, java.lang.Integer.MAX_VALUE, category); 2100 case 1998965455: /*medication*/ return new Property("medication", "CodeableReference(Medication)", "Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.", 0, 1, medication); 2101 case -1867885268: /*subject*/ return new Property("subject", "Reference(Patient|Group)", "The person or animal or group receiving the medication.", 0, 1, subject); 2102 case 1524132147: /*encounter*/ return new Property("encounter", "Reference(Encounter)", "The visit, admission, or other contact between patient and health care provider during which the medication administration was performed.", 0, 1, encounter); 2103 case -1248768647: /*supportingInformation*/ return new Property("supportingInformation", "Reference(Any)", "Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says \"give \"x\" if the heartrate exceeds \"y\"\", then the heart rate can be included using this attribute.", 0, java.lang.Integer.MAX_VALUE, supportingInformation); 2104 case 144188521: /*occurence[x]*/ return new Property("occurence[x]", "dateTime|Period|Timing", "A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", 0, 1, occurence); 2105 case -1192857417: /*occurence*/ return new Property("occurence[x]", "dateTime|Period|Timing", "A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", 0, 1, occurence); 2106 case -820552334: /*occurenceDateTime*/ return new Property("occurence[x]", "dateTime", "A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", 0, 1, occurence); 2107 case 221195608: /*occurencePeriod*/ return new Property("occurence[x]", "Period", "A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", 0, 1, occurence); 2108 case 339257313: /*occurenceTiming*/ return new Property("occurence[x]", "Timing", "A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", 0, 1, occurence); 2109 case -799233872: /*recorded*/ return new Property("recorded", "dateTime", "The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the event.", 0, 1, recorded); 2110 case 702379724: /*isSubPotent*/ return new Property("isSubPotent", "boolean", "An indication that the full dose was not administered.", 0, 1, isSubPotent); 2111 case 969489082: /*subPotentReason*/ return new Property("subPotentReason", "CodeableConcept", "The reason or reasons why the full dose was not administered.", 0, java.lang.Integer.MAX_VALUE, subPotentReason); 2112 case 481140686: /*performer*/ return new Property("performer", "", "The performer of the medication treatment. For devices this is the device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers.", 0, java.lang.Integer.MAX_VALUE, performer); 2113 case -934964668: /*reason*/ return new Property("reason", "CodeableReference(Condition|Observation|DiagnosticReport)", "A code, Condition or observation that supports why the medication was administered.", 0, java.lang.Integer.MAX_VALUE, reason); 2114 case 1095692943: /*request*/ return new Property("request", "Reference(MedicationRequest)", "The original request, instruction or authority to perform the administration.", 0, 1, request); 2115 case -1335157162: /*device*/ return new Property("device", "CodeableReference(Device)", "The device that is to be used for the administration of the medication (for example, PCA Pump).", 0, java.lang.Integer.MAX_VALUE, device); 2116 case 3387378: /*note*/ return new Property("note", "Annotation", "Extra information about the medication administration that is not conveyed by the other attributes.", 0, java.lang.Integer.MAX_VALUE, note); 2117 case -1326018889: /*dosage*/ return new Property("dosage", "", "Describes the medication dosage information details e.g. dose, rate, site, route, etc.", 0, 1, dosage); 2118 case 1835190426: /*eventHistory*/ return new Property("eventHistory", "Reference(Provenance)", "A summary of the events of interest that have occurred, such as when the administration was verified.", 0, java.lang.Integer.MAX_VALUE, eventHistory); 2119 default: return super.getNamedProperty(_hash, _name, _checkValid); 2120 } 2121 2122 } 2123 2124 @Override 2125 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2126 switch (hash) { 2127 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2128 case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference 2129 case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // Reference 2130 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<MedicationAdministrationStatusCodes> 2131 case 2051346646: /*statusReason*/ return this.statusReason == null ? new Base[0] : this.statusReason.toArray(new Base[this.statusReason.size()]); // CodeableConcept 2132 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 2133 case 1998965455: /*medication*/ return this.medication == null ? new Base[0] : new Base[] {this.medication}; // CodeableReference 2134 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 2135 case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference 2136 case -1248768647: /*supportingInformation*/ return this.supportingInformation == null ? new Base[0] : this.supportingInformation.toArray(new Base[this.supportingInformation.size()]); // Reference 2137 case -1192857417: /*occurence*/ return this.occurence == null ? new Base[0] : new Base[] {this.occurence}; // DataType 2138 case -799233872: /*recorded*/ return this.recorded == null ? new Base[0] : new Base[] {this.recorded}; // DateTimeType 2139 case 702379724: /*isSubPotent*/ return this.isSubPotent == null ? new Base[0] : new Base[] {this.isSubPotent}; // BooleanType 2140 case 969489082: /*subPotentReason*/ return this.subPotentReason == null ? new Base[0] : this.subPotentReason.toArray(new Base[this.subPotentReason.size()]); // CodeableConcept 2141 case 481140686: /*performer*/ return this.performer == null ? new Base[0] : this.performer.toArray(new Base[this.performer.size()]); // MedicationAdministrationPerformerComponent 2142 case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // CodeableReference 2143 case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // Reference 2144 case -1335157162: /*device*/ return this.device == null ? new Base[0] : this.device.toArray(new Base[this.device.size()]); // CodeableReference 2145 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 2146 case -1326018889: /*dosage*/ return this.dosage == null ? new Base[0] : new Base[] {this.dosage}; // MedicationAdministrationDosageComponent 2147 case 1835190426: /*eventHistory*/ return this.eventHistory == null ? new Base[0] : this.eventHistory.toArray(new Base[this.eventHistory.size()]); // Reference 2148 default: return super.getProperty(hash, name, checkValid); 2149 } 2150 2151 } 2152 2153 @Override 2154 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2155 switch (hash) { 2156 case -1618432855: // identifier 2157 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 2158 return value; 2159 case -332612366: // basedOn 2160 this.getBasedOn().add(TypeConvertor.castToReference(value)); // Reference 2161 return value; 2162 case -995410646: // partOf 2163 this.getPartOf().add(TypeConvertor.castToReference(value)); // Reference 2164 return value; 2165 case -892481550: // status 2166 value = new MedicationAdministrationStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value)); 2167 this.status = (Enumeration) value; // Enumeration<MedicationAdministrationStatusCodes> 2168 return value; 2169 case 2051346646: // statusReason 2170 this.getStatusReason().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2171 return value; 2172 case 50511102: // category 2173 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2174 return value; 2175 case 1998965455: // medication 2176 this.medication = TypeConvertor.castToCodeableReference(value); // CodeableReference 2177 return value; 2178 case -1867885268: // subject 2179 this.subject = TypeConvertor.castToReference(value); // Reference 2180 return value; 2181 case 1524132147: // encounter 2182 this.encounter = TypeConvertor.castToReference(value); // Reference 2183 return value; 2184 case -1248768647: // supportingInformation 2185 this.getSupportingInformation().add(TypeConvertor.castToReference(value)); // Reference 2186 return value; 2187 case -1192857417: // occurence 2188 this.occurence = TypeConvertor.castToType(value); // DataType 2189 return value; 2190 case -799233872: // recorded 2191 this.recorded = TypeConvertor.castToDateTime(value); // DateTimeType 2192 return value; 2193 case 702379724: // isSubPotent 2194 this.isSubPotent = TypeConvertor.castToBoolean(value); // BooleanType 2195 return value; 2196 case 969489082: // subPotentReason 2197 this.getSubPotentReason().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2198 return value; 2199 case 481140686: // performer 2200 this.getPerformer().add((MedicationAdministrationPerformerComponent) value); // MedicationAdministrationPerformerComponent 2201 return value; 2202 case -934964668: // reason 2203 this.getReason().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 2204 return value; 2205 case 1095692943: // request 2206 this.request = TypeConvertor.castToReference(value); // Reference 2207 return value; 2208 case -1335157162: // device 2209 this.getDevice().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference 2210 return value; 2211 case 3387378: // note 2212 this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation 2213 return value; 2214 case -1326018889: // dosage 2215 this.dosage = (MedicationAdministrationDosageComponent) value; // MedicationAdministrationDosageComponent 2216 return value; 2217 case 1835190426: // eventHistory 2218 this.getEventHistory().add(TypeConvertor.castToReference(value)); // Reference 2219 return value; 2220 default: return super.setProperty(hash, name, value); 2221 } 2222 2223 } 2224 2225 @Override 2226 public Base setProperty(String name, Base value) throws FHIRException { 2227 if (name.equals("identifier")) { 2228 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 2229 } else if (name.equals("basedOn")) { 2230 this.getBasedOn().add(TypeConvertor.castToReference(value)); 2231 } else if (name.equals("partOf")) { 2232 this.getPartOf().add(TypeConvertor.castToReference(value)); 2233 } else if (name.equals("status")) { 2234 value = new MedicationAdministrationStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value)); 2235 this.status = (Enumeration) value; // Enumeration<MedicationAdministrationStatusCodes> 2236 } else if (name.equals("statusReason")) { 2237 this.getStatusReason().add(TypeConvertor.castToCodeableConcept(value)); 2238 } else if (name.equals("category")) { 2239 this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); 2240 } else if (name.equals("medication")) { 2241 this.medication = TypeConvertor.castToCodeableReference(value); // CodeableReference 2242 } else if (name.equals("subject")) { 2243 this.subject = TypeConvertor.castToReference(value); // Reference 2244 } else if (name.equals("encounter")) { 2245 this.encounter = TypeConvertor.castToReference(value); // Reference 2246 } else if (name.equals("supportingInformation")) { 2247 this.getSupportingInformation().add(TypeConvertor.castToReference(value)); 2248 } else if (name.equals("occurence[x]")) { 2249 this.occurence = TypeConvertor.castToType(value); // DataType 2250 } else if (name.equals("recorded")) { 2251 this.recorded = TypeConvertor.castToDateTime(value); // DateTimeType 2252 } else if (name.equals("isSubPotent")) { 2253 this.isSubPotent = TypeConvertor.castToBoolean(value); // BooleanType 2254 } else if (name.equals("subPotentReason")) { 2255 this.getSubPotentReason().add(TypeConvertor.castToCodeableConcept(value)); 2256 } else if (name.equals("performer")) { 2257 this.getPerformer().add((MedicationAdministrationPerformerComponent) value); 2258 } else if (name.equals("reason")) { 2259 this.getReason().add(TypeConvertor.castToCodeableReference(value)); 2260 } else if (name.equals("request")) { 2261 this.request = TypeConvertor.castToReference(value); // Reference 2262 } else if (name.equals("device")) { 2263 this.getDevice().add(TypeConvertor.castToCodeableReference(value)); 2264 } else if (name.equals("note")) { 2265 this.getNote().add(TypeConvertor.castToAnnotation(value)); 2266 } else if (name.equals("dosage")) { 2267 this.dosage = (MedicationAdministrationDosageComponent) value; // MedicationAdministrationDosageComponent 2268 } else if (name.equals("eventHistory")) { 2269 this.getEventHistory().add(TypeConvertor.castToReference(value)); 2270 } else 2271 return super.setProperty(name, value); 2272 return value; 2273 } 2274 2275 @Override 2276 public void removeChild(String name, Base value) throws FHIRException { 2277 if (name.equals("identifier")) { 2278 this.getIdentifier().remove(value); 2279 } else if (name.equals("basedOn")) { 2280 this.getBasedOn().remove(value); 2281 } else if (name.equals("partOf")) { 2282 this.getPartOf().remove(value); 2283 } else if (name.equals("status")) { 2284 value = new MedicationAdministrationStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value)); 2285 this.status = (Enumeration) value; // Enumeration<MedicationAdministrationStatusCodes> 2286 } else if (name.equals("statusReason")) { 2287 this.getStatusReason().remove(value); 2288 } else if (name.equals("category")) { 2289 this.getCategory().remove(value); 2290 } else if (name.equals("medication")) { 2291 this.medication = null; 2292 } else if (name.equals("subject")) { 2293 this.subject = null; 2294 } else if (name.equals("encounter")) { 2295 this.encounter = null; 2296 } else if (name.equals("supportingInformation")) { 2297 this.getSupportingInformation().remove(value); 2298 } else if (name.equals("occurence[x]")) { 2299 this.occurence = null; 2300 } else if (name.equals("recorded")) { 2301 this.recorded = null; 2302 } else if (name.equals("isSubPotent")) { 2303 this.isSubPotent = null; 2304 } else if (name.equals("subPotentReason")) { 2305 this.getSubPotentReason().remove(value); 2306 } else if (name.equals("performer")) { 2307 this.getPerformer().remove((MedicationAdministrationPerformerComponent) value); 2308 } else if (name.equals("reason")) { 2309 this.getReason().remove(value); 2310 } else if (name.equals("request")) { 2311 this.request = null; 2312 } else if (name.equals("device")) { 2313 this.getDevice().remove(value); 2314 } else if (name.equals("note")) { 2315 this.getNote().remove(value); 2316 } else if (name.equals("dosage")) { 2317 this.dosage = (MedicationAdministrationDosageComponent) value; // MedicationAdministrationDosageComponent 2318 } else if (name.equals("eventHistory")) { 2319 this.getEventHistory().remove(value); 2320 } else 2321 super.removeChild(name, value); 2322 2323 } 2324 2325 @Override 2326 public Base makeProperty(int hash, String name) throws FHIRException { 2327 switch (hash) { 2328 case -1618432855: return addIdentifier(); 2329 case -332612366: return addBasedOn(); 2330 case -995410646: return addPartOf(); 2331 case -892481550: return getStatusElement(); 2332 case 2051346646: return addStatusReason(); 2333 case 50511102: return addCategory(); 2334 case 1998965455: return getMedication(); 2335 case -1867885268: return getSubject(); 2336 case 1524132147: return getEncounter(); 2337 case -1248768647: return addSupportingInformation(); 2338 case 144188521: return getOccurence(); 2339 case -1192857417: return getOccurence(); 2340 case -799233872: return getRecordedElement(); 2341 case 702379724: return getIsSubPotentElement(); 2342 case 969489082: return addSubPotentReason(); 2343 case 481140686: return addPerformer(); 2344 case -934964668: return addReason(); 2345 case 1095692943: return getRequest(); 2346 case -1335157162: return addDevice(); 2347 case 3387378: return addNote(); 2348 case -1326018889: return getDosage(); 2349 case 1835190426: return addEventHistory(); 2350 default: return super.makeProperty(hash, name); 2351 } 2352 2353 } 2354 2355 @Override 2356 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2357 switch (hash) { 2358 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2359 case -332612366: /*basedOn*/ return new String[] {"Reference"}; 2360 case -995410646: /*partOf*/ return new String[] {"Reference"}; 2361 case -892481550: /*status*/ return new String[] {"code"}; 2362 case 2051346646: /*statusReason*/ return new String[] {"CodeableConcept"}; 2363 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 2364 case 1998965455: /*medication*/ return new String[] {"CodeableReference"}; 2365 case -1867885268: /*subject*/ return new String[] {"Reference"}; 2366 case 1524132147: /*encounter*/ return new String[] {"Reference"}; 2367 case -1248768647: /*supportingInformation*/ return new String[] {"Reference"}; 2368 case -1192857417: /*occurence*/ return new String[] {"dateTime", "Period", "Timing"}; 2369 case -799233872: /*recorded*/ return new String[] {"dateTime"}; 2370 case 702379724: /*isSubPotent*/ return new String[] {"boolean"}; 2371 case 969489082: /*subPotentReason*/ return new String[] {"CodeableConcept"}; 2372 case 481140686: /*performer*/ return new String[] {}; 2373 case -934964668: /*reason*/ return new String[] {"CodeableReference"}; 2374 case 1095692943: /*request*/ return new String[] {"Reference"}; 2375 case -1335157162: /*device*/ return new String[] {"CodeableReference"}; 2376 case 3387378: /*note*/ return new String[] {"Annotation"}; 2377 case -1326018889: /*dosage*/ return new String[] {}; 2378 case 1835190426: /*eventHistory*/ return new String[] {"Reference"}; 2379 default: return super.getTypesForProperty(hash, name); 2380 } 2381 2382 } 2383 2384 @Override 2385 public Base addChild(String name) throws FHIRException { 2386 if (name.equals("identifier")) { 2387 return addIdentifier(); 2388 } 2389 else if (name.equals("basedOn")) { 2390 return addBasedOn(); 2391 } 2392 else if (name.equals("partOf")) { 2393 return addPartOf(); 2394 } 2395 else if (name.equals("status")) { 2396 throw new FHIRException("Cannot call addChild on a singleton property MedicationAdministration.status"); 2397 } 2398 else if (name.equals("statusReason")) { 2399 return addStatusReason(); 2400 } 2401 else if (name.equals("category")) { 2402 return addCategory(); 2403 } 2404 else if (name.equals("medication")) { 2405 this.medication = new CodeableReference(); 2406 return this.medication; 2407 } 2408 else if (name.equals("subject")) { 2409 this.subject = new Reference(); 2410 return this.subject; 2411 } 2412 else if (name.equals("encounter")) { 2413 this.encounter = new Reference(); 2414 return this.encounter; 2415 } 2416 else if (name.equals("supportingInformation")) { 2417 return addSupportingInformation(); 2418 } 2419 else if (name.equals("occurenceDateTime")) { 2420 this.occurence = new DateTimeType(); 2421 return this.occurence; 2422 } 2423 else if (name.equals("occurencePeriod")) { 2424 this.occurence = new Period(); 2425 return this.occurence; 2426 } 2427 else if (name.equals("occurenceTiming")) { 2428 this.occurence = new Timing(); 2429 return this.occurence; 2430 } 2431 else if (name.equals("recorded")) { 2432 throw new FHIRException("Cannot call addChild on a singleton property MedicationAdministration.recorded"); 2433 } 2434 else if (name.equals("isSubPotent")) { 2435 throw new FHIRException("Cannot call addChild on a singleton property MedicationAdministration.isSubPotent"); 2436 } 2437 else if (name.equals("subPotentReason")) { 2438 return addSubPotentReason(); 2439 } 2440 else if (name.equals("performer")) { 2441 return addPerformer(); 2442 } 2443 else if (name.equals("reason")) { 2444 return addReason(); 2445 } 2446 else if (name.equals("request")) { 2447 this.request = new Reference(); 2448 return this.request; 2449 } 2450 else if (name.equals("device")) { 2451 return addDevice(); 2452 } 2453 else if (name.equals("note")) { 2454 return addNote(); 2455 } 2456 else if (name.equals("dosage")) { 2457 this.dosage = new MedicationAdministrationDosageComponent(); 2458 return this.dosage; 2459 } 2460 else if (name.equals("eventHistory")) { 2461 return addEventHistory(); 2462 } 2463 else 2464 return super.addChild(name); 2465 } 2466 2467 public String fhirType() { 2468 return "MedicationAdministration"; 2469 2470 } 2471 2472 public MedicationAdministration copy() { 2473 MedicationAdministration dst = new MedicationAdministration(); 2474 copyValues(dst); 2475 return dst; 2476 } 2477 2478 public void copyValues(MedicationAdministration dst) { 2479 super.copyValues(dst); 2480 if (identifier != null) { 2481 dst.identifier = new ArrayList<Identifier>(); 2482 for (Identifier i : identifier) 2483 dst.identifier.add(i.copy()); 2484 }; 2485 if (basedOn != null) { 2486 dst.basedOn = new ArrayList<Reference>(); 2487 for (Reference i : basedOn) 2488 dst.basedOn.add(i.copy()); 2489 }; 2490 if (partOf != null) { 2491 dst.partOf = new ArrayList<Reference>(); 2492 for (Reference i : partOf) 2493 dst.partOf.add(i.copy()); 2494 }; 2495 dst.status = status == null ? null : status.copy(); 2496 if (statusReason != null) { 2497 dst.statusReason = new ArrayList<CodeableConcept>(); 2498 for (CodeableConcept i : statusReason) 2499 dst.statusReason.add(i.copy()); 2500 }; 2501 if (category != null) { 2502 dst.category = new ArrayList<CodeableConcept>(); 2503 for (CodeableConcept i : category) 2504 dst.category.add(i.copy()); 2505 }; 2506 dst.medication = medication == null ? null : medication.copy(); 2507 dst.subject = subject == null ? null : subject.copy(); 2508 dst.encounter = encounter == null ? null : encounter.copy(); 2509 if (supportingInformation != null) { 2510 dst.supportingInformation = new ArrayList<Reference>(); 2511 for (Reference i : supportingInformation) 2512 dst.supportingInformation.add(i.copy()); 2513 }; 2514 dst.occurence = occurence == null ? null : occurence.copy(); 2515 dst.recorded = recorded == null ? null : recorded.copy(); 2516 dst.isSubPotent = isSubPotent == null ? null : isSubPotent.copy(); 2517 if (subPotentReason != null) { 2518 dst.subPotentReason = new ArrayList<CodeableConcept>(); 2519 for (CodeableConcept i : subPotentReason) 2520 dst.subPotentReason.add(i.copy()); 2521 }; 2522 if (performer != null) { 2523 dst.performer = new ArrayList<MedicationAdministrationPerformerComponent>(); 2524 for (MedicationAdministrationPerformerComponent i : performer) 2525 dst.performer.add(i.copy()); 2526 }; 2527 if (reason != null) { 2528 dst.reason = new ArrayList<CodeableReference>(); 2529 for (CodeableReference i : reason) 2530 dst.reason.add(i.copy()); 2531 }; 2532 dst.request = request == null ? null : request.copy(); 2533 if (device != null) { 2534 dst.device = new ArrayList<CodeableReference>(); 2535 for (CodeableReference i : device) 2536 dst.device.add(i.copy()); 2537 }; 2538 if (note != null) { 2539 dst.note = new ArrayList<Annotation>(); 2540 for (Annotation i : note) 2541 dst.note.add(i.copy()); 2542 }; 2543 dst.dosage = dosage == null ? null : dosage.copy(); 2544 if (eventHistory != null) { 2545 dst.eventHistory = new ArrayList<Reference>(); 2546 for (Reference i : eventHistory) 2547 dst.eventHistory.add(i.copy()); 2548 }; 2549 } 2550 2551 protected MedicationAdministration typedCopy() { 2552 return copy(); 2553 } 2554 2555 @Override 2556 public boolean equalsDeep(Base other_) { 2557 if (!super.equalsDeep(other_)) 2558 return false; 2559 if (!(other_ instanceof MedicationAdministration)) 2560 return false; 2561 MedicationAdministration o = (MedicationAdministration) other_; 2562 return compareDeep(identifier, o.identifier, true) && compareDeep(basedOn, o.basedOn, true) && compareDeep(partOf, o.partOf, true) 2563 && compareDeep(status, o.status, true) && compareDeep(statusReason, o.statusReason, true) && compareDeep(category, o.category, true) 2564 && compareDeep(medication, o.medication, true) && compareDeep(subject, o.subject, true) && compareDeep(encounter, o.encounter, true) 2565 && compareDeep(supportingInformation, o.supportingInformation, true) && compareDeep(occurence, o.occurence, true) 2566 && compareDeep(recorded, o.recorded, true) && compareDeep(isSubPotent, o.isSubPotent, true) && compareDeep(subPotentReason, o.subPotentReason, true) 2567 && compareDeep(performer, o.performer, true) && compareDeep(reason, o.reason, true) && compareDeep(request, o.request, true) 2568 && compareDeep(device, o.device, true) && compareDeep(note, o.note, true) && compareDeep(dosage, o.dosage, true) 2569 && compareDeep(eventHistory, o.eventHistory, true); 2570 } 2571 2572 @Override 2573 public boolean equalsShallow(Base other_) { 2574 if (!super.equalsShallow(other_)) 2575 return false; 2576 if (!(other_ instanceof MedicationAdministration)) 2577 return false; 2578 MedicationAdministration o = (MedicationAdministration) other_; 2579 return compareValues(status, o.status, true) && compareValues(recorded, o.recorded, true) && compareValues(isSubPotent, o.isSubPotent, true) 2580 ; 2581 } 2582 2583 public boolean isEmpty() { 2584 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, basedOn, partOf 2585 , status, statusReason, category, medication, subject, encounter, supportingInformation 2586 , occurence, recorded, isSubPotent, subPotentReason, performer, reason, request 2587 , device, note, dosage, eventHistory); 2588 } 2589 2590 @Override 2591 public ResourceType getResourceType() { 2592 return ResourceType.MedicationAdministration; 2593 } 2594 2595 /** 2596 * Search parameter: <b>device</b> 2597 * <p> 2598 * Description: <b>Return administrations with this administration device identity</b><br> 2599 * Type: <b>reference</b><br> 2600 * Path: <b>MedicationAdministration.device.reference</b><br> 2601 * </p> 2602 */ 2603 @SearchParamDefinition(name="device", path="MedicationAdministration.device.reference", description="Return administrations with this administration device identity", type="reference", target={Device.class } ) 2604 public static final String SP_DEVICE = "device"; 2605 /** 2606 * <b>Fluent Client</b> search parameter constant for <b>device</b> 2607 * <p> 2608 * Description: <b>Return administrations with this administration device identity</b><br> 2609 * Type: <b>reference</b><br> 2610 * Path: <b>MedicationAdministration.device.reference</b><br> 2611 * </p> 2612 */ 2613 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEVICE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEVICE); 2614 2615/** 2616 * Constant for fluent queries to be used to add include statements. Specifies 2617 * the path value of "<b>MedicationAdministration:device</b>". 2618 */ 2619 public static final ca.uhn.fhir.model.api.Include INCLUDE_DEVICE = new ca.uhn.fhir.model.api.Include("MedicationAdministration:device").toLocked(); 2620 2621 /** 2622 * Search parameter: <b>performer-device-code</b> 2623 * <p> 2624 * Description: <b>The identity of the individual who administered the medication</b><br> 2625 * Type: <b>token</b><br> 2626 * Path: <b>MedicationAdministration.performer.actor.concept</b><br> 2627 * </p> 2628 */ 2629 @SearchParamDefinition(name="performer-device-code", path="MedicationAdministration.performer.actor.concept", description="The identity of the individual who administered the medication", type="token" ) 2630 public static final String SP_PERFORMER_DEVICE_CODE = "performer-device-code"; 2631 /** 2632 * <b>Fluent Client</b> search parameter constant for <b>performer-device-code</b> 2633 * <p> 2634 * Description: <b>The identity of the individual who administered the medication</b><br> 2635 * Type: <b>token</b><br> 2636 * Path: <b>MedicationAdministration.performer.actor.concept</b><br> 2637 * </p> 2638 */ 2639 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PERFORMER_DEVICE_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PERFORMER_DEVICE_CODE); 2640 2641 /** 2642 * Search parameter: <b>performer</b> 2643 * <p> 2644 * Description: <b>The identity of the individual who administered the medication</b><br> 2645 * Type: <b>reference</b><br> 2646 * Path: <b>MedicationAdministration.performer.actor.reference</b><br> 2647 * </p> 2648 */ 2649 @SearchParamDefinition(name="performer", path="MedicationAdministration.performer.actor.reference", description="The identity of the individual who administered the medication", type="reference", target={Device.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 2650 public static final String SP_PERFORMER = "performer"; 2651 /** 2652 * <b>Fluent Client</b> search parameter constant for <b>performer</b> 2653 * <p> 2654 * Description: <b>The identity of the individual who administered the medication</b><br> 2655 * Type: <b>reference</b><br> 2656 * Path: <b>MedicationAdministration.performer.actor.reference</b><br> 2657 * </p> 2658 */ 2659 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PERFORMER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PERFORMER); 2660 2661/** 2662 * Constant for fluent queries to be used to add include statements. Specifies 2663 * the path value of "<b>MedicationAdministration:performer</b>". 2664 */ 2665 public static final ca.uhn.fhir.model.api.Include INCLUDE_PERFORMER = new ca.uhn.fhir.model.api.Include("MedicationAdministration:performer").toLocked(); 2666 2667 /** 2668 * Search parameter: <b>reason-given-code</b> 2669 * <p> 2670 * Description: <b>Reasons for administering the medication</b><br> 2671 * Type: <b>token</b><br> 2672 * Path: <b>MedicationAdministration.reason.concept</b><br> 2673 * </p> 2674 */ 2675 @SearchParamDefinition(name="reason-given-code", path="MedicationAdministration.reason.concept", description="Reasons for administering the medication", type="token" ) 2676 public static final String SP_REASON_GIVEN_CODE = "reason-given-code"; 2677 /** 2678 * <b>Fluent Client</b> search parameter constant for <b>reason-given-code</b> 2679 * <p> 2680 * Description: <b>Reasons for administering the medication</b><br> 2681 * Type: <b>token</b><br> 2682 * Path: <b>MedicationAdministration.reason.concept</b><br> 2683 * </p> 2684 */ 2685 public static final ca.uhn.fhir.rest.gclient.TokenClientParam REASON_GIVEN_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REASON_GIVEN_CODE); 2686 2687 /** 2688 * Search parameter: <b>reason-given</b> 2689 * <p> 2690 * Description: <b>Reference to a resource (by instance)</b><br> 2691 * Type: <b>reference</b><br> 2692 * Path: <b>MedicationAdministration.reason.reference</b><br> 2693 * </p> 2694 */ 2695 @SearchParamDefinition(name="reason-given", path="MedicationAdministration.reason.reference", description="Reference to a resource (by instance)", type="reference", target={Condition.class, DiagnosticReport.class, Observation.class } ) 2696 public static final String SP_REASON_GIVEN = "reason-given"; 2697 /** 2698 * <b>Fluent Client</b> search parameter constant for <b>reason-given</b> 2699 * <p> 2700 * Description: <b>Reference to a resource (by instance)</b><br> 2701 * Type: <b>reference</b><br> 2702 * Path: <b>MedicationAdministration.reason.reference</b><br> 2703 * </p> 2704 */ 2705 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REASON_GIVEN = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REASON_GIVEN); 2706 2707/** 2708 * Constant for fluent queries to be used to add include statements. Specifies 2709 * the path value of "<b>MedicationAdministration:reason-given</b>". 2710 */ 2711 public static final ca.uhn.fhir.model.api.Include INCLUDE_REASON_GIVEN = new ca.uhn.fhir.model.api.Include("MedicationAdministration:reason-given").toLocked(); 2712 2713 /** 2714 * Search parameter: <b>reason-not-given</b> 2715 * <p> 2716 * Description: <b>Reasons for not administering the medication</b><br> 2717 * Type: <b>token</b><br> 2718 * Path: <b>MedicationAdministration.statusReason</b><br> 2719 * </p> 2720 */ 2721 @SearchParamDefinition(name="reason-not-given", path="MedicationAdministration.statusReason", description="Reasons for not administering the medication", type="token" ) 2722 public static final String SP_REASON_NOT_GIVEN = "reason-not-given"; 2723 /** 2724 * <b>Fluent Client</b> search parameter constant for <b>reason-not-given</b> 2725 * <p> 2726 * Description: <b>Reasons for not administering the medication</b><br> 2727 * Type: <b>token</b><br> 2728 * Path: <b>MedicationAdministration.statusReason</b><br> 2729 * </p> 2730 */ 2731 public static final ca.uhn.fhir.rest.gclient.TokenClientParam REASON_NOT_GIVEN = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REASON_NOT_GIVEN); 2732 2733 /** 2734 * Search parameter: <b>request</b> 2735 * <p> 2736 * Description: <b>The identity of a request to list administrations from</b><br> 2737 * Type: <b>reference</b><br> 2738 * Path: <b>MedicationAdministration.request</b><br> 2739 * </p> 2740 */ 2741 @SearchParamDefinition(name="request", path="MedicationAdministration.request", description="The identity of a request to list administrations from", type="reference", target={MedicationRequest.class } ) 2742 public static final String SP_REQUEST = "request"; 2743 /** 2744 * <b>Fluent Client</b> search parameter constant for <b>request</b> 2745 * <p> 2746 * Description: <b>The identity of a request to list administrations from</b><br> 2747 * Type: <b>reference</b><br> 2748 * Path: <b>MedicationAdministration.request</b><br> 2749 * </p> 2750 */ 2751 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST); 2752 2753/** 2754 * Constant for fluent queries to be used to add include statements. Specifies 2755 * the path value of "<b>MedicationAdministration:request</b>". 2756 */ 2757 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST = new ca.uhn.fhir.model.api.Include("MedicationAdministration:request").toLocked(); 2758 2759 /** 2760 * Search parameter: <b>subject</b> 2761 * <p> 2762 * Description: <b>The identity of the individual or group to list administrations for</b><br> 2763 * Type: <b>reference</b><br> 2764 * Path: <b>MedicationAdministration.subject</b><br> 2765 * </p> 2766 */ 2767 @SearchParamDefinition(name="subject", path="MedicationAdministration.subject", description="The identity of the individual or group to list administrations for", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Group.class, Patient.class } ) 2768 public static final String SP_SUBJECT = "subject"; 2769 /** 2770 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 2771 * <p> 2772 * Description: <b>The identity of the individual or group to list administrations for</b><br> 2773 * Type: <b>reference</b><br> 2774 * Path: <b>MedicationAdministration.subject</b><br> 2775 * </p> 2776 */ 2777 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 2778 2779/** 2780 * Constant for fluent queries to be used to add include statements. Specifies 2781 * the path value of "<b>MedicationAdministration:subject</b>". 2782 */ 2783 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("MedicationAdministration:subject").toLocked(); 2784 2785 /** 2786 * Search parameter: <b>code</b> 2787 * <p> 2788 * Description: <b>Multiple Resources: 2789 2790* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted 2791* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance 2792* [AuditEvent](auditevent.html): More specific code for the event 2793* [Basic](basic.html): Kind of Resource 2794* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code 2795* [Condition](condition.html): Code for the condition 2796* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc. 2797* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered 2798* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result 2799* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code 2800* [ImagingSelection](imagingselection.html): The imaging selection status 2801* [List](list.html): What the purpose of this list is 2802* [Medication](medication.html): Returns medications for a specific code 2803* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code 2804* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code 2805* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code 2806* [MedicationStatement](medicationstatement.html): Return statements of this medication code 2807* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake 2808* [Observation](observation.html): The code of the observation type 2809* [Procedure](procedure.html): A code to identify a procedure 2810* [RequestOrchestration](requestorchestration.html): The code of the request orchestration 2811* [Task](task.html): Search by task code 2812</b><br> 2813 * Type: <b>token</b><br> 2814 * Path: <b>AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code</b><br> 2815 * </p> 2816 */ 2817 @SearchParamDefinition(name="code", path="AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted\r\n* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance\r\n* [AuditEvent](auditevent.html): More specific code for the event\r\n* [Basic](basic.html): Kind of Resource\r\n* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code\r\n* [Condition](condition.html): Code for the condition\r\n* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.\r\n* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered\r\n* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code\r\n* [ImagingSelection](imagingselection.html): The imaging selection status\r\n* [List](list.html): What the purpose of this list is\r\n* [Medication](medication.html): Returns medications for a specific code\r\n* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code\r\n* [MedicationStatement](medicationstatement.html): Return statements of this medication code\r\n* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake\r\n* [Observation](observation.html): The code of the observation type\r\n* [Procedure](procedure.html): A code to identify a procedure\r\n* [RequestOrchestration](requestorchestration.html): The code of the request orchestration\r\n* [Task](task.html): Search by task code\r\n", type="token" ) 2818 public static final String SP_CODE = "code"; 2819 /** 2820 * <b>Fluent Client</b> search parameter constant for <b>code</b> 2821 * <p> 2822 * Description: <b>Multiple Resources: 2823 2824* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted 2825* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance 2826* [AuditEvent](auditevent.html): More specific code for the event 2827* [Basic](basic.html): Kind of Resource 2828* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code 2829* [Condition](condition.html): Code for the condition 2830* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc. 2831* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered 2832* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result 2833* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code 2834* [ImagingSelection](imagingselection.html): The imaging selection status 2835* [List](list.html): What the purpose of this list is 2836* [Medication](medication.html): Returns medications for a specific code 2837* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code 2838* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code 2839* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code 2840* [MedicationStatement](medicationstatement.html): Return statements of this medication code 2841* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake 2842* [Observation](observation.html): The code of the observation type 2843* [Procedure](procedure.html): A code to identify a procedure 2844* [RequestOrchestration](requestorchestration.html): The code of the request orchestration 2845* [Task](task.html): Search by task code 2846</b><br> 2847 * Type: <b>token</b><br> 2848 * Path: <b>AdverseEvent.code | AllergyIntolerance.code | AllergyIntolerance.reaction.substance | AuditEvent.code | Basic.code | ChargeItem.code | Condition.code | DetectedIssue.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | ImagingSelection.status | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationStatement.medication.concept | NutritionIntake.code | Observation.code | Procedure.code | RequestOrchestration.code | Task.code</b><br> 2849 * </p> 2850 */ 2851 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 2852 2853 /** 2854 * Search parameter: <b>identifier</b> 2855 * <p> 2856 * Description: <b>Multiple Resources: 2857 2858* [Account](account.html): Account number 2859* [AdverseEvent](adverseevent.html): Business identifier for the event 2860* [AllergyIntolerance](allergyintolerance.html): External ids for this item 2861* [Appointment](appointment.html): An Identifier of the Appointment 2862* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response 2863* [Basic](basic.html): Business identifier 2864* [BodyStructure](bodystructure.html): Bodystructure identifier 2865* [CarePlan](careplan.html): External Ids for this plan 2866* [CareTeam](careteam.html): External Ids for this team 2867* [ChargeItem](chargeitem.html): Business Identifier for item 2868* [Claim](claim.html): The primary identifier of the financial resource 2869* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse 2870* [ClinicalImpression](clinicalimpression.html): Business identifier 2871* [Communication](communication.html): Unique identifier 2872* [CommunicationRequest](communicationrequest.html): Unique identifier 2873* [Composition](composition.html): Version-independent identifier for the Composition 2874* [Condition](condition.html): A unique identifier of the condition record 2875* [Consent](consent.html): Identifier for this record (external references) 2876* [Contract](contract.html): The identity of the contract 2877* [Coverage](coverage.html): The primary identifier of the insured and the coverage 2878* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility 2879* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier 2880* [DetectedIssue](detectedissue.html): Unique id for the detected issue 2881* [DeviceRequest](devicerequest.html): Business identifier for request/order 2882* [DeviceUsage](deviceusage.html): Search by identifier 2883* [DiagnosticReport](diagnosticreport.html): An identifier for the report 2884* [DocumentReference](documentreference.html): Identifier of the attachment binary 2885* [Encounter](encounter.html): Identifier(s) by which this encounter is known 2886* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment 2887* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 2888* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit 2889* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 2890* [Flag](flag.html): Business identifier 2891* [Goal](goal.html): External Ids for this goal 2892* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response 2893* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection 2894* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 2895* [Immunization](immunization.html): Business identifier 2896* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation 2897* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier 2898* [Invoice](invoice.html): Business Identifier for item 2899* [List](list.html): Business identifier 2900* [MeasureReport](measurereport.html): External identifier of the measure report to be returned 2901* [Medication](medication.html): Returns medications with this external identifier 2902* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 2903* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 2904* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 2905* [MedicationStatement](medicationstatement.html): Return statements with this external identifier 2906* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence 2907* [NutritionIntake](nutritionintake.html): Return statements with this external identifier 2908* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 2909* [Observation](observation.html): The unique id for a particular observation 2910* [Person](person.html): A person Identifier 2911* [Procedure](procedure.html): A unique identifier for a procedure 2912* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response 2913* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson 2914* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration 2915* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study 2916* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 2917* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 2918* [Specimen](specimen.html): The unique identifier associated with the specimen 2919* [SupplyDelivery](supplydelivery.html): External identifier 2920* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 2921* [Task](task.html): Search for a task instance by its business identifier 2922* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 2923</b><br> 2924 * Type: <b>token</b><br> 2925 * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br> 2926 * </p> 2927 */ 2928 @SearchParamDefinition(name="identifier", path="Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [Account](account.html): Account number\r\n* [AdverseEvent](adverseevent.html): Business identifier for the event\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [Appointment](appointment.html): An Identifier of the Appointment\r\n* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response\r\n* [Basic](basic.html): Business identifier\r\n* [BodyStructure](bodystructure.html): Bodystructure identifier\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [ChargeItem](chargeitem.html): Business Identifier for item\r\n* [Claim](claim.html): The primary identifier of the financial resource\r\n* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse\r\n* [ClinicalImpression](clinicalimpression.html): Business identifier\r\n* [Communication](communication.html): Unique identifier\r\n* [CommunicationRequest](communicationrequest.html): Unique identifier\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [Contract](contract.html): The identity of the contract\r\n* [Coverage](coverage.html): The primary identifier of the insured and the coverage\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DeviceUsage](deviceusage.html): Search by identifier\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Flag](flag.html): Business identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response\r\n* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier\r\n* [Invoice](invoice.html): Business Identifier for item\r\n* [List](list.html): Business identifier\r\n* [MeasureReport](measurereport.html): External identifier of the measure report to be returned\r\n* [Medication](medication.html): Returns medications with this external identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationStatement](medicationstatement.html): Return statements with this external identifier\r\n* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence\r\n* [NutritionIntake](nutritionintake.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Person](person.html): A person Identifier\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response\r\n* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson\r\n* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration\r\n* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [Specimen](specimen.html): The unique identifier associated with the specimen\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [Task](task.html): Search for a task instance by its business identifier\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" ) 2929 public static final String SP_IDENTIFIER = "identifier"; 2930 /** 2931 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2932 * <p> 2933 * Description: <b>Multiple Resources: 2934 2935* [Account](account.html): Account number 2936* [AdverseEvent](adverseevent.html): Business identifier for the event 2937* [AllergyIntolerance](allergyintolerance.html): External ids for this item 2938* [Appointment](appointment.html): An Identifier of the Appointment 2939* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response 2940* [Basic](basic.html): Business identifier 2941* [BodyStructure](bodystructure.html): Bodystructure identifier 2942* [CarePlan](careplan.html): External Ids for this plan 2943* [CareTeam](careteam.html): External Ids for this team 2944* [ChargeItem](chargeitem.html): Business Identifier for item 2945* [Claim](claim.html): The primary identifier of the financial resource 2946* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse 2947* [ClinicalImpression](clinicalimpression.html): Business identifier 2948* [Communication](communication.html): Unique identifier 2949* [CommunicationRequest](communicationrequest.html): Unique identifier 2950* [Composition](composition.html): Version-independent identifier for the Composition 2951* [Condition](condition.html): A unique identifier of the condition record 2952* [Consent](consent.html): Identifier for this record (external references) 2953* [Contract](contract.html): The identity of the contract 2954* [Coverage](coverage.html): The primary identifier of the insured and the coverage 2955* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility 2956* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier 2957* [DetectedIssue](detectedissue.html): Unique id for the detected issue 2958* [DeviceRequest](devicerequest.html): Business identifier for request/order 2959* [DeviceUsage](deviceusage.html): Search by identifier 2960* [DiagnosticReport](diagnosticreport.html): An identifier for the report 2961* [DocumentReference](documentreference.html): Identifier of the attachment binary 2962* [Encounter](encounter.html): Identifier(s) by which this encounter is known 2963* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment 2964* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare 2965* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit 2966* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier 2967* [Flag](flag.html): Business identifier 2968* [Goal](goal.html): External Ids for this goal 2969* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response 2970* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection 2971* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID 2972* [Immunization](immunization.html): Business identifier 2973* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation 2974* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier 2975* [Invoice](invoice.html): Business Identifier for item 2976* [List](list.html): Business identifier 2977* [MeasureReport](measurereport.html): External identifier of the measure report to be returned 2978* [Medication](medication.html): Returns medications with this external identifier 2979* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier 2980* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier 2981* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier 2982* [MedicationStatement](medicationstatement.html): Return statements with this external identifier 2983* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence 2984* [NutritionIntake](nutritionintake.html): Return statements with this external identifier 2985* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier 2986* [Observation](observation.html): The unique id for a particular observation 2987* [Person](person.html): A person Identifier 2988* [Procedure](procedure.html): A unique identifier for a procedure 2989* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response 2990* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson 2991* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration 2992* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study 2993* [RiskAssessment](riskassessment.html): Unique identifier for the assessment 2994* [ServiceRequest](servicerequest.html): Identifiers assigned to this order 2995* [Specimen](specimen.html): The unique identifier associated with the specimen 2996* [SupplyDelivery](supplydelivery.html): External identifier 2997* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest 2998* [Task](task.html): Search for a task instance by its business identifier 2999* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier 3000</b><br> 3001 * Type: <b>token</b><br> 3002 * Path: <b>Account.identifier | AdverseEvent.identifier | AllergyIntolerance.identifier | Appointment.identifier | AppointmentResponse.identifier | Basic.identifier | BodyStructure.identifier | CarePlan.identifier | CareTeam.identifier | ChargeItem.identifier | Claim.identifier | ClaimResponse.identifier | ClinicalImpression.identifier | Communication.identifier | CommunicationRequest.identifier | Composition.identifier | Condition.identifier | Consent.identifier | Contract.identifier | Coverage.identifier | CoverageEligibilityRequest.identifier | CoverageEligibilityResponse.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DeviceUsage.identifier | DiagnosticReport.identifier | DocumentReference.identifier | Encounter.identifier | EnrollmentRequest.identifier | EpisodeOfCare.identifier | ExplanationOfBenefit.identifier | FamilyMemberHistory.identifier | Flag.identifier | Goal.identifier | GuidanceResponse.identifier | ImagingSelection.identifier | ImagingStudy.identifier | Immunization.identifier | ImmunizationEvaluation.identifier | ImmunizationRecommendation.identifier | Invoice.identifier | List.identifier | MeasureReport.identifier | Medication.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationStatement.identifier | MolecularSequence.identifier | NutritionIntake.identifier | NutritionOrder.identifier | Observation.identifier | Person.identifier | Procedure.identifier | QuestionnaireResponse.identifier | RelatedPerson.identifier | RequestOrchestration.identifier | ResearchSubject.identifier | RiskAssessment.identifier | ServiceRequest.identifier | Specimen.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | Task.identifier | VisionPrescription.identifier</b><br> 3003 * </p> 3004 */ 3005 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 3006 3007 /** 3008 * Search parameter: <b>patient</b> 3009 * <p> 3010 * Description: <b>Multiple Resources: 3011 3012* [Account](account.html): The entity that caused the expenses 3013* [AdverseEvent](adverseevent.html): Subject impacted by event 3014* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 3015* [Appointment](appointment.html): One of the individuals of the appointment is this patient 3016* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient 3017* [AuditEvent](auditevent.html): Where the activity involved patient data 3018* [Basic](basic.html): Identifies the focus of this resource 3019* [BodyStructure](bodystructure.html): Who this is about 3020* [CarePlan](careplan.html): Who the care plan is for 3021* [CareTeam](careteam.html): Who care team is for 3022* [ChargeItem](chargeitem.html): Individual service was done for/to 3023* [Claim](claim.html): Patient receiving the products or services 3024* [ClaimResponse](claimresponse.html): The subject of care 3025* [ClinicalImpression](clinicalimpression.html): Patient assessed 3026* [Communication](communication.html): Focus of message 3027* [CommunicationRequest](communicationrequest.html): Focus of message 3028* [Composition](composition.html): Who and/or what the composition is about 3029* [Condition](condition.html): Who has the condition? 3030* [Consent](consent.html): Who the consent applies to 3031* [Contract](contract.html): The identity of the subject of the contract (if a patient) 3032* [Coverage](coverage.html): Retrieve coverages for a patient 3033* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient 3034* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient 3035* [DetectedIssue](detectedissue.html): Associated patient 3036* [DeviceRequest](devicerequest.html): Individual the service is ordered for 3037* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 3038* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 3039* [DocumentReference](documentreference.html): Who/what is the subject of the document 3040* [Encounter](encounter.html): The patient present at the encounter 3041* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled 3042* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 3043* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient 3044* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 3045* [Flag](flag.html): The identity of a subject to list flags for 3046* [Goal](goal.html): Who this goal is intended for 3047* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results 3048* [ImagingSelection](imagingselection.html): Who the study is about 3049* [ImagingStudy](imagingstudy.html): Who the study is about 3050* [Immunization](immunization.html): The patient for the vaccination record 3051* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated 3052* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for 3053* [Invoice](invoice.html): Recipient(s) of goods and services 3054* [List](list.html): If all resources have the same subject 3055* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for 3056* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 3057* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 3058* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 3059* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 3060* [MolecularSequence](molecularsequence.html): The subject that the sequence is about 3061* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient. 3062* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 3063* [Observation](observation.html): The subject that the observation is about (if patient) 3064* [Person](person.html): The Person links to this Patient 3065* [Procedure](procedure.html): Search by subject - a patient 3066* [Provenance](provenance.html): Where the activity involved patient data 3067* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response 3068* [RelatedPerson](relatedperson.html): The patient this related person is related to 3069* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations 3070* [ResearchSubject](researchsubject.html): Who or what is part of study 3071* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 3072* [ServiceRequest](servicerequest.html): Search by subject - a patient 3073* [Specimen](specimen.html): The patient the specimen comes from 3074* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 3075* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined 3076* [Task](task.html): Search by patient 3077* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 3078</b><br> 3079 * Type: <b>reference</b><br> 3080 * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br> 3081 * </p> 3082 */ 3083 @SearchParamDefinition(name="patient", path="Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [Account](account.html): The entity that caused the expenses\r\n* [AdverseEvent](adverseevent.html): Subject impacted by event\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [Appointment](appointment.html): One of the individuals of the appointment is this patient\r\n* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient\r\n* [AuditEvent](auditevent.html): Where the activity involved patient data\r\n* [Basic](basic.html): Identifies the focus of this resource\r\n* [BodyStructure](bodystructure.html): Who this is about\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ChargeItem](chargeitem.html): Individual service was done for/to\r\n* [Claim](claim.html): Patient receiving the products or services\r\n* [ClaimResponse](claimresponse.html): The subject of care\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Communication](communication.html): Focus of message\r\n* [CommunicationRequest](communicationrequest.html): Focus of message\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [Contract](contract.html): The identity of the subject of the contract (if a patient)\r\n* [Coverage](coverage.html): Retrieve coverages for a patient\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results\r\n* [ImagingSelection](imagingselection.html): Who the study is about\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for\r\n* [Invoice](invoice.html): Recipient(s) of goods and services\r\n* [List](list.html): If all resources have the same subject\r\n* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.\r\n* [MolecularSequence](molecularsequence.html): The subject that the sequence is about\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Person](person.html): The Person links to this Patient\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [Provenance](provenance.html): Where the activity involved patient data\r\n* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response\r\n* [RelatedPerson](relatedperson.html): The patient this related person is related to\r\n* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations\r\n* [ResearchSubject](researchsubject.html): Who or what is part of study\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [Specimen](specimen.html): The patient the specimen comes from\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined\r\n* [Task](task.html): Search by patient\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Patient.class } ) 3084 public static final String SP_PATIENT = "patient"; 3085 /** 3086 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 3087 * <p> 3088 * Description: <b>Multiple Resources: 3089 3090* [Account](account.html): The entity that caused the expenses 3091* [AdverseEvent](adverseevent.html): Subject impacted by event 3092* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for 3093* [Appointment](appointment.html): One of the individuals of the appointment is this patient 3094* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient 3095* [AuditEvent](auditevent.html): Where the activity involved patient data 3096* [Basic](basic.html): Identifies the focus of this resource 3097* [BodyStructure](bodystructure.html): Who this is about 3098* [CarePlan](careplan.html): Who the care plan is for 3099* [CareTeam](careteam.html): Who care team is for 3100* [ChargeItem](chargeitem.html): Individual service was done for/to 3101* [Claim](claim.html): Patient receiving the products or services 3102* [ClaimResponse](claimresponse.html): The subject of care 3103* [ClinicalImpression](clinicalimpression.html): Patient assessed 3104* [Communication](communication.html): Focus of message 3105* [CommunicationRequest](communicationrequest.html): Focus of message 3106* [Composition](composition.html): Who and/or what the composition is about 3107* [Condition](condition.html): Who has the condition? 3108* [Consent](consent.html): Who the consent applies to 3109* [Contract](contract.html): The identity of the subject of the contract (if a patient) 3110* [Coverage](coverage.html): Retrieve coverages for a patient 3111* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient 3112* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient 3113* [DetectedIssue](detectedissue.html): Associated patient 3114* [DeviceRequest](devicerequest.html): Individual the service is ordered for 3115* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device 3116* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient 3117* [DocumentReference](documentreference.html): Who/what is the subject of the document 3118* [Encounter](encounter.html): The patient present at the encounter 3119* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled 3120* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care 3121* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient 3122* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for 3123* [Flag](flag.html): The identity of a subject to list flags for 3124* [Goal](goal.html): Who this goal is intended for 3125* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results 3126* [ImagingSelection](imagingselection.html): Who the study is about 3127* [ImagingStudy](imagingstudy.html): Who the study is about 3128* [Immunization](immunization.html): The patient for the vaccination record 3129* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated 3130* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for 3131* [Invoice](invoice.html): Recipient(s) of goods and services 3132* [List](list.html): If all resources have the same subject 3133* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for 3134* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations for 3135* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses for 3136* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient 3137* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient. 3138* [MolecularSequence](molecularsequence.html): The subject that the sequence is about 3139* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient. 3140* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement 3141* [Observation](observation.html): The subject that the observation is about (if patient) 3142* [Person](person.html): The Person links to this Patient 3143* [Procedure](procedure.html): Search by subject - a patient 3144* [Provenance](provenance.html): Where the activity involved patient data 3145* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response 3146* [RelatedPerson](relatedperson.html): The patient this related person is related to 3147* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations 3148* [ResearchSubject](researchsubject.html): Who or what is part of study 3149* [RiskAssessment](riskassessment.html): Who/what does assessment apply to? 3150* [ServiceRequest](servicerequest.html): Search by subject - a patient 3151* [Specimen](specimen.html): The patient the specimen comes from 3152* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied 3153* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined 3154* [Task](task.html): Search by patient 3155* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for 3156</b><br> 3157 * Type: <b>reference</b><br> 3158 * Path: <b>Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient</b><br> 3159 * </p> 3160 */ 3161 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 3162 3163/** 3164 * Constant for fluent queries to be used to add include statements. Specifies 3165 * the path value of "<b>MedicationAdministration:patient</b>". 3166 */ 3167 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("MedicationAdministration:patient").toLocked(); 3168 3169 /** 3170 * Search parameter: <b>date</b> 3171 * <p> 3172 * Description: <b>Multiple Resources: 3173 3174* [MedicationAdministration](medicationadministration.html): Date administration happened (or did not happen) 3175</b><br> 3176 * Type: <b>date</b><br> 3177 * Path: <b>MedicationAdministration.occurence.ofType(dateTime) | MedicationAdministration.occurence.ofType(Period)</b><br> 3178 * </p> 3179 */ 3180 @SearchParamDefinition(name="date", path="MedicationAdministration.occurence.ofType(dateTime) | MedicationAdministration.occurence.ofType(Period)", description="Multiple Resources: \r\n\r\n* [MedicationAdministration](medicationadministration.html): Date administration happened (or did not happen)\r\n", type="date" ) 3181 public static final String SP_DATE = "date"; 3182 /** 3183 * <b>Fluent Client</b> search parameter constant for <b>date</b> 3184 * <p> 3185 * Description: <b>Multiple Resources: 3186 3187* [MedicationAdministration](medicationadministration.html): Date administration happened (or did not happen) 3188</b><br> 3189 * Type: <b>date</b><br> 3190 * Path: <b>MedicationAdministration.occurence.ofType(dateTime) | MedicationAdministration.occurence.ofType(Period)</b><br> 3191 * </p> 3192 */ 3193 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 3194 3195 /** 3196 * Search parameter: <b>encounter</b> 3197 * <p> 3198 * Description: <b>Multiple Resources: 3199 3200* [MedicationAdministration](medicationadministration.html): Return administrations that share this encounter 3201* [MedicationRequest](medicationrequest.html): Return prescriptions with this encounter identifier 3202</b><br> 3203 * Type: <b>reference</b><br> 3204 * Path: <b>MedicationAdministration.encounter | MedicationRequest.encounter</b><br> 3205 * </p> 3206 */ 3207 @SearchParamDefinition(name="encounter", path="MedicationAdministration.encounter | MedicationRequest.encounter", description="Multiple Resources: \r\n\r\n* [MedicationAdministration](medicationadministration.html): Return administrations that share this encounter\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this encounter identifier\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Encounter") }, target={Encounter.class } ) 3208 public static final String SP_ENCOUNTER = "encounter"; 3209 /** 3210 * <b>Fluent Client</b> search parameter constant for <b>encounter</b> 3211 * <p> 3212 * Description: <b>Multiple Resources: 3213 3214* [MedicationAdministration](medicationadministration.html): Return administrations that share this encounter 3215* [MedicationRequest](medicationrequest.html): Return prescriptions with this encounter identifier 3216</b><br> 3217 * Type: <b>reference</b><br> 3218 * Path: <b>MedicationAdministration.encounter | MedicationRequest.encounter</b><br> 3219 * </p> 3220 */ 3221 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER); 3222 3223/** 3224 * Constant for fluent queries to be used to add include statements. Specifies 3225 * the path value of "<b>MedicationAdministration:encounter</b>". 3226 */ 3227 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("MedicationAdministration:encounter").toLocked(); 3228 3229 /** 3230 * Search parameter: <b>medication</b> 3231 * <p> 3232 * Description: <b>Multiple Resources: 3233 3234* [MedicationAdministration](medicationadministration.html): Return administrations of this medication reference 3235* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine resource 3236* [MedicationRequest](medicationrequest.html): Return prescriptions for this medication reference 3237* [MedicationStatement](medicationstatement.html): Return statements of this medication reference 3238</b><br> 3239 * Type: <b>reference</b><br> 3240 * Path: <b>MedicationAdministration.medication.reference | MedicationDispense.medication.reference | MedicationRequest.medication.reference | MedicationStatement.medication.reference</b><br> 3241 * </p> 3242 */ 3243 @SearchParamDefinition(name="medication", path="MedicationAdministration.medication.reference | MedicationDispense.medication.reference | MedicationRequest.medication.reference | MedicationStatement.medication.reference", description="Multiple Resources: \r\n\r\n* [MedicationAdministration](medicationadministration.html): Return administrations of this medication reference\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine resource\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions for this medication reference\r\n* [MedicationStatement](medicationstatement.html): Return statements of this medication reference\r\n", type="reference", target={Medication.class } ) 3244 public static final String SP_MEDICATION = "medication"; 3245 /** 3246 * <b>Fluent Client</b> search parameter constant for <b>medication</b> 3247 * <p> 3248 * Description: <b>Multiple Resources: 3249 3250* [MedicationAdministration](medicationadministration.html): Return administrations of this medication reference 3251* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine resource 3252* [MedicationRequest](medicationrequest.html): Return prescriptions for this medication reference 3253* [MedicationStatement](medicationstatement.html): Return statements of this medication reference 3254</b><br> 3255 * Type: <b>reference</b><br> 3256 * Path: <b>MedicationAdministration.medication.reference | MedicationDispense.medication.reference | MedicationRequest.medication.reference | MedicationStatement.medication.reference</b><br> 3257 * </p> 3258 */ 3259 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam MEDICATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_MEDICATION); 3260 3261/** 3262 * Constant for fluent queries to be used to add include statements. Specifies 3263 * the path value of "<b>MedicationAdministration:medication</b>". 3264 */ 3265 public static final ca.uhn.fhir.model.api.Include INCLUDE_MEDICATION = new ca.uhn.fhir.model.api.Include("MedicationAdministration:medication").toLocked(); 3266 3267 /** 3268 * Search parameter: <b>status</b> 3269 * <p> 3270 * Description: <b>Multiple Resources: 3271 3272* [MedicationAdministration](medicationadministration.html): MedicationAdministration event status (for example one of active/paused/completed/nullified) 3273* [MedicationDispense](medicationdispense.html): Returns dispenses with a specified dispense status 3274* [MedicationRequest](medicationrequest.html): Status of the prescription 3275* [MedicationStatement](medicationstatement.html): Return statements that match the given status 3276</b><br> 3277 * Type: <b>token</b><br> 3278 * Path: <b>MedicationAdministration.status | MedicationDispense.status | MedicationRequest.status | MedicationStatement.status</b><br> 3279 * </p> 3280 */ 3281 @SearchParamDefinition(name="status", path="MedicationAdministration.status | MedicationDispense.status | MedicationRequest.status | MedicationStatement.status", description="Multiple Resources: \r\n\r\n* [MedicationAdministration](medicationadministration.html): MedicationAdministration event status (for example one of active/paused/completed/nullified)\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with a specified dispense status\r\n* [MedicationRequest](medicationrequest.html): Status of the prescription\r\n* [MedicationStatement](medicationstatement.html): Return statements that match the given status\r\n", type="token" ) 3282 public static final String SP_STATUS = "status"; 3283 /** 3284 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3285 * <p> 3286 * Description: <b>Multiple Resources: 3287 3288* [MedicationAdministration](medicationadministration.html): MedicationAdministration event status (for example one of active/paused/completed/nullified) 3289* [MedicationDispense](medicationdispense.html): Returns dispenses with a specified dispense status 3290* [MedicationRequest](medicationrequest.html): Status of the prescription 3291* [MedicationStatement](medicationstatement.html): Return statements that match the given status 3292</b><br> 3293 * Type: <b>token</b><br> 3294 * Path: <b>MedicationAdministration.status | MedicationDispense.status | MedicationRequest.status | MedicationStatement.status</b><br> 3295 * </p> 3296 */ 3297 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3298 3299 3300} 3301