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 * A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting.
052 */
053@ResourceDef(name="SupplyRequest", profile="http://hl7.org/fhir/StructureDefinition/SupplyRequest")
054public class SupplyRequest extends DomainResource {
055
056    public enum SupplyRequestStatus {
057        /**
058         * The request has been created but is not yet complete or ready for action.
059         */
060        DRAFT, 
061        /**
062         * The request is ready to be acted upon.
063         */
064        ACTIVE, 
065        /**
066         * The authorization/request to act has been temporarily withdrawn but is expected to resume in the future.
067         */
068        SUSPENDED, 
069        /**
070         * The authorization/request to act has been terminated prior to the full completion of the intended actions.  No further activity should occur.
071         */
072        CANCELLED, 
073        /**
074         * Activity against the request has been sufficiently completed to the satisfaction of the requester.
075         */
076        COMPLETED, 
077        /**
078         * This electronic record should never have existed, though it is possible that real-world decisions were based on it.  (If real-world activity has occurred, the status should be \"cancelled\" rather than \"entered-in-error\".).
079         */
080        ENTEREDINERROR, 
081        /**
082         * The authoring/source system does not know which of the status values currently applies for this observation. Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply, but the authoring/source system does not know which.
083         */
084        UNKNOWN, 
085        /**
086         * added to help the parsers with the generic types
087         */
088        NULL;
089        public static SupplyRequestStatus fromCode(String codeString) throws FHIRException {
090            if (codeString == null || "".equals(codeString))
091                return null;
092        if ("draft".equals(codeString))
093          return DRAFT;
094        if ("active".equals(codeString))
095          return ACTIVE;
096        if ("suspended".equals(codeString))
097          return SUSPENDED;
098        if ("cancelled".equals(codeString))
099          return CANCELLED;
100        if ("completed".equals(codeString))
101          return COMPLETED;
102        if ("entered-in-error".equals(codeString))
103          return ENTEREDINERROR;
104        if ("unknown".equals(codeString))
105          return UNKNOWN;
106        if (Configuration.isAcceptInvalidEnums())
107          return null;
108        else
109          throw new FHIRException("Unknown SupplyRequestStatus code '"+codeString+"'");
110        }
111        public String toCode() {
112          switch (this) {
113            case DRAFT: return "draft";
114            case ACTIVE: return "active";
115            case SUSPENDED: return "suspended";
116            case CANCELLED: return "cancelled";
117            case COMPLETED: return "completed";
118            case ENTEREDINERROR: return "entered-in-error";
119            case UNKNOWN: return "unknown";
120            case NULL: return null;
121            default: return "?";
122          }
123        }
124        public String getSystem() {
125          switch (this) {
126            case DRAFT: return "http://hl7.org/fhir/supplyrequest-status";
127            case ACTIVE: return "http://hl7.org/fhir/supplyrequest-status";
128            case SUSPENDED: return "http://hl7.org/fhir/supplyrequest-status";
129            case CANCELLED: return "http://hl7.org/fhir/supplyrequest-status";
130            case COMPLETED: return "http://hl7.org/fhir/supplyrequest-status";
131            case ENTEREDINERROR: return "http://hl7.org/fhir/supplyrequest-status";
132            case UNKNOWN: return "http://hl7.org/fhir/supplyrequest-status";
133            case NULL: return null;
134            default: return "?";
135          }
136        }
137        public String getDefinition() {
138          switch (this) {
139            case DRAFT: return "The request has been created but is not yet complete or ready for action.";
140            case ACTIVE: return "The request is ready to be acted upon.";
141            case SUSPENDED: return "The authorization/request to act has been temporarily withdrawn but is expected to resume in the future.";
142            case CANCELLED: return "The authorization/request to act has been terminated prior to the full completion of the intended actions.  No further activity should occur.";
143            case COMPLETED: return "Activity against the request has been sufficiently completed to the satisfaction of the requester.";
144            case ENTEREDINERROR: return "This electronic record should never have existed, though it is possible that real-world decisions were based on it.  (If real-world activity has occurred, the status should be \"cancelled\" rather than \"entered-in-error\".).";
145            case UNKNOWN: return "The authoring/source system does not know which of the status values currently applies for this observation. Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply, but the authoring/source system does not know which.";
146            case NULL: return null;
147            default: return "?";
148          }
149        }
150        public String getDisplay() {
151          switch (this) {
152            case DRAFT: return "Draft";
153            case ACTIVE: return "Active";
154            case SUSPENDED: return "Suspended";
155            case CANCELLED: return "Cancelled";
156            case COMPLETED: return "Completed";
157            case ENTEREDINERROR: return "Entered in Error";
158            case UNKNOWN: return "Unknown";
159            case NULL: return null;
160            default: return "?";
161          }
162        }
163    }
164
165  public static class SupplyRequestStatusEnumFactory implements EnumFactory<SupplyRequestStatus> {
166    public SupplyRequestStatus fromCode(String codeString) throws IllegalArgumentException {
167      if (codeString == null || "".equals(codeString))
168            if (codeString == null || "".equals(codeString))
169                return null;
170        if ("draft".equals(codeString))
171          return SupplyRequestStatus.DRAFT;
172        if ("active".equals(codeString))
173          return SupplyRequestStatus.ACTIVE;
174        if ("suspended".equals(codeString))
175          return SupplyRequestStatus.SUSPENDED;
176        if ("cancelled".equals(codeString))
177          return SupplyRequestStatus.CANCELLED;
178        if ("completed".equals(codeString))
179          return SupplyRequestStatus.COMPLETED;
180        if ("entered-in-error".equals(codeString))
181          return SupplyRequestStatus.ENTEREDINERROR;
182        if ("unknown".equals(codeString))
183          return SupplyRequestStatus.UNKNOWN;
184        throw new IllegalArgumentException("Unknown SupplyRequestStatus code '"+codeString+"'");
185        }
186        public Enumeration<SupplyRequestStatus> fromType(PrimitiveType<?> code) throws FHIRException {
187          if (code == null)
188            return null;
189          if (code.isEmpty())
190            return new Enumeration<SupplyRequestStatus>(this, SupplyRequestStatus.NULL, code);
191          String codeString = ((PrimitiveType) code).asStringValue();
192          if (codeString == null || "".equals(codeString))
193            return new Enumeration<SupplyRequestStatus>(this, SupplyRequestStatus.NULL, code);
194        if ("draft".equals(codeString))
195          return new Enumeration<SupplyRequestStatus>(this, SupplyRequestStatus.DRAFT, code);
196        if ("active".equals(codeString))
197          return new Enumeration<SupplyRequestStatus>(this, SupplyRequestStatus.ACTIVE, code);
198        if ("suspended".equals(codeString))
199          return new Enumeration<SupplyRequestStatus>(this, SupplyRequestStatus.SUSPENDED, code);
200        if ("cancelled".equals(codeString))
201          return new Enumeration<SupplyRequestStatus>(this, SupplyRequestStatus.CANCELLED, code);
202        if ("completed".equals(codeString))
203          return new Enumeration<SupplyRequestStatus>(this, SupplyRequestStatus.COMPLETED, code);
204        if ("entered-in-error".equals(codeString))
205          return new Enumeration<SupplyRequestStatus>(this, SupplyRequestStatus.ENTEREDINERROR, code);
206        if ("unknown".equals(codeString))
207          return new Enumeration<SupplyRequestStatus>(this, SupplyRequestStatus.UNKNOWN, code);
208        throw new FHIRException("Unknown SupplyRequestStatus code '"+codeString+"'");
209        }
210    public String toCode(SupplyRequestStatus code) {
211      if (code == SupplyRequestStatus.DRAFT)
212        return "draft";
213      if (code == SupplyRequestStatus.ACTIVE)
214        return "active";
215      if (code == SupplyRequestStatus.SUSPENDED)
216        return "suspended";
217      if (code == SupplyRequestStatus.CANCELLED)
218        return "cancelled";
219      if (code == SupplyRequestStatus.COMPLETED)
220        return "completed";
221      if (code == SupplyRequestStatus.ENTEREDINERROR)
222        return "entered-in-error";
223      if (code == SupplyRequestStatus.UNKNOWN)
224        return "unknown";
225      return "?";
226      }
227    public String toSystem(SupplyRequestStatus code) {
228      return code.getSystem();
229      }
230    }
231
232    @Block()
233    public static class SupplyRequestParameterComponent extends BackboneElement implements IBaseBackboneElement {
234        /**
235         * A code or string that identifies the device detail being asserted.
236         */
237        @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false)
238        @Description(shortDefinition="Item detail", formalDefinition="A code or string that identifies the device detail being asserted." )
239        protected CodeableConcept code;
240
241        /**
242         * The value of the device detail.
243         */
244        @Child(name = "value", type = {CodeableConcept.class, Quantity.class, Range.class, BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false)
245        @Description(shortDefinition="Value of detail", formalDefinition="The value of the device detail." )
246        protected DataType value;
247
248        private static final long serialVersionUID = -1950789033L;
249
250    /**
251     * Constructor
252     */
253      public SupplyRequestParameterComponent() {
254        super();
255      }
256
257        /**
258         * @return {@link #code} (A code or string that identifies the device detail being asserted.)
259         */
260        public CodeableConcept getCode() { 
261          if (this.code == null)
262            if (Configuration.errorOnAutoCreate())
263              throw new Error("Attempt to auto-create SupplyRequestParameterComponent.code");
264            else if (Configuration.doAutoCreate())
265              this.code = new CodeableConcept(); // cc
266          return this.code;
267        }
268
269        public boolean hasCode() { 
270          return this.code != null && !this.code.isEmpty();
271        }
272
273        /**
274         * @param value {@link #code} (A code or string that identifies the device detail being asserted.)
275         */
276        public SupplyRequestParameterComponent setCode(CodeableConcept value) { 
277          this.code = value;
278          return this;
279        }
280
281        /**
282         * @return {@link #value} (The value of the device detail.)
283         */
284        public DataType getValue() { 
285          return this.value;
286        }
287
288        /**
289         * @return {@link #value} (The value of the device detail.)
290         */
291        public CodeableConcept getValueCodeableConcept() throws FHIRException { 
292          if (this.value == null)
293            this.value = new CodeableConcept();
294          if (!(this.value instanceof CodeableConcept))
295            throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered");
296          return (CodeableConcept) this.value;
297        }
298
299        public boolean hasValueCodeableConcept() { 
300          return this != null && this.value instanceof CodeableConcept;
301        }
302
303        /**
304         * @return {@link #value} (The value of the device detail.)
305         */
306        public Quantity getValueQuantity() throws FHIRException { 
307          if (this.value == null)
308            this.value = new Quantity();
309          if (!(this.value instanceof Quantity))
310            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered");
311          return (Quantity) this.value;
312        }
313
314        public boolean hasValueQuantity() { 
315          return this != null && this.value instanceof Quantity;
316        }
317
318        /**
319         * @return {@link #value} (The value of the device detail.)
320         */
321        public Range getValueRange() throws FHIRException { 
322          if (this.value == null)
323            this.value = new Range();
324          if (!(this.value instanceof Range))
325            throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered");
326          return (Range) this.value;
327        }
328
329        public boolean hasValueRange() { 
330          return this != null && this.value instanceof Range;
331        }
332
333        /**
334         * @return {@link #value} (The value of the device detail.)
335         */
336        public BooleanType getValueBooleanType() throws FHIRException { 
337          if (this.value == null)
338            this.value = new BooleanType();
339          if (!(this.value instanceof BooleanType))
340            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
341          return (BooleanType) this.value;
342        }
343
344        public boolean hasValueBooleanType() { 
345          return this != null && this.value instanceof BooleanType;
346        }
347
348        public boolean hasValue() { 
349          return this.value != null && !this.value.isEmpty();
350        }
351
352        /**
353         * @param value {@link #value} (The value of the device detail.)
354         */
355        public SupplyRequestParameterComponent setValue(DataType value) { 
356          if (value != null && !(value instanceof CodeableConcept || value instanceof Quantity || value instanceof Range || value instanceof BooleanType))
357            throw new FHIRException("Not the right type for SupplyRequest.parameter.value[x]: "+value.fhirType());
358          this.value = value;
359          return this;
360        }
361
362        protected void listChildren(List<Property> children) {
363          super.listChildren(children);
364          children.add(new Property("code", "CodeableConcept", "A code or string that identifies the device detail being asserted.", 0, 1, code));
365          children.add(new Property("value[x]", "CodeableConcept|Quantity|Range|boolean", "The value of the device detail.", 0, 1, value));
366        }
367
368        @Override
369        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
370          switch (_hash) {
371          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "A code or string that identifies the device detail being asserted.", 0, 1, code);
372          case -1410166417: /*value[x]*/  return new Property("value[x]", "CodeableConcept|Quantity|Range|boolean", "The value of the device detail.", 0, 1, value);
373          case 111972721: /*value*/  return new Property("value[x]", "CodeableConcept|Quantity|Range|boolean", "The value of the device detail.", 0, 1, value);
374          case 924902896: /*valueCodeableConcept*/  return new Property("value[x]", "CodeableConcept", "The value of the device detail.", 0, 1, value);
375          case -2029823716: /*valueQuantity*/  return new Property("value[x]", "Quantity", "The value of the device detail.", 0, 1, value);
376          case 2030761548: /*valueRange*/  return new Property("value[x]", "Range", "The value of the device detail.", 0, 1, value);
377          case 733421943: /*valueBoolean*/  return new Property("value[x]", "boolean", "The value of the device detail.", 0, 1, value);
378          default: return super.getNamedProperty(_hash, _name, _checkValid);
379          }
380
381        }
382
383      @Override
384      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
385        switch (hash) {
386        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
387        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
388        default: return super.getProperty(hash, name, checkValid);
389        }
390
391      }
392
393      @Override
394      public Base setProperty(int hash, String name, Base value) throws FHIRException {
395        switch (hash) {
396        case 3059181: // code
397          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
398          return value;
399        case 111972721: // value
400          this.value = TypeConvertor.castToType(value); // DataType
401          return value;
402        default: return super.setProperty(hash, name, value);
403        }
404
405      }
406
407      @Override
408      public Base setProperty(String name, Base value) throws FHIRException {
409        if (name.equals("code")) {
410          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
411        } else if (name.equals("value[x]")) {
412          this.value = TypeConvertor.castToType(value); // DataType
413        } else
414          return super.setProperty(name, value);
415        return value;
416      }
417
418      @Override
419      public Base makeProperty(int hash, String name) throws FHIRException {
420        switch (hash) {
421        case 3059181:  return getCode();
422        case -1410166417:  return getValue();
423        case 111972721:  return getValue();
424        default: return super.makeProperty(hash, name);
425        }
426
427      }
428
429      @Override
430      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
431        switch (hash) {
432        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
433        case 111972721: /*value*/ return new String[] {"CodeableConcept", "Quantity", "Range", "boolean"};
434        default: return super.getTypesForProperty(hash, name);
435        }
436
437      }
438
439      @Override
440      public Base addChild(String name) throws FHIRException {
441        if (name.equals("code")) {
442          this.code = new CodeableConcept();
443          return this.code;
444        }
445        else if (name.equals("valueCodeableConcept")) {
446          this.value = new CodeableConcept();
447          return this.value;
448        }
449        else if (name.equals("valueQuantity")) {
450          this.value = new Quantity();
451          return this.value;
452        }
453        else if (name.equals("valueRange")) {
454          this.value = new Range();
455          return this.value;
456        }
457        else if (name.equals("valueBoolean")) {
458          this.value = new BooleanType();
459          return this.value;
460        }
461        else
462          return super.addChild(name);
463      }
464
465      public SupplyRequestParameterComponent copy() {
466        SupplyRequestParameterComponent dst = new SupplyRequestParameterComponent();
467        copyValues(dst);
468        return dst;
469      }
470
471      public void copyValues(SupplyRequestParameterComponent dst) {
472        super.copyValues(dst);
473        dst.code = code == null ? null : code.copy();
474        dst.value = value == null ? null : value.copy();
475      }
476
477      @Override
478      public boolean equalsDeep(Base other_) {
479        if (!super.equalsDeep(other_))
480          return false;
481        if (!(other_ instanceof SupplyRequestParameterComponent))
482          return false;
483        SupplyRequestParameterComponent o = (SupplyRequestParameterComponent) other_;
484        return compareDeep(code, o.code, true) && compareDeep(value, o.value, true);
485      }
486
487      @Override
488      public boolean equalsShallow(Base other_) {
489        if (!super.equalsShallow(other_))
490          return false;
491        if (!(other_ instanceof SupplyRequestParameterComponent))
492          return false;
493        SupplyRequestParameterComponent o = (SupplyRequestParameterComponent) other_;
494        return true;
495      }
496
497      public boolean isEmpty() {
498        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value);
499      }
500
501  public String fhirType() {
502    return "SupplyRequest.parameter";
503
504  }
505
506  }
507
508    /**
509     * Business identifiers assigned to this SupplyRequest by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.
510     */
511    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
512    @Description(shortDefinition="Business Identifier for SupplyRequest", formalDefinition="Business identifiers assigned to this SupplyRequest by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server." )
513    protected List<Identifier> identifier;
514
515    /**
516     * Status of the supply request.
517     */
518    @Child(name = "status", type = {CodeType.class}, order=1, min=0, max=1, modifier=true, summary=true)
519    @Description(shortDefinition="draft | active | suspended +", formalDefinition="Status of the supply request." )
520    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/supplyrequest-status")
521    protected Enumeration<SupplyRequestStatus> status;
522
523    /**
524     * Plan/proposal/order fulfilled by this request.
525     */
526    @Child(name = "basedOn", type = {Reference.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
527    @Description(shortDefinition="What other request is fulfilled by this supply request", formalDefinition="Plan/proposal/order fulfilled by this request." )
528    protected List<Reference> basedOn;
529
530    /**
531     * Category of supply, e.g.  central, non-stock, etc. This is used to support work flows associated with the supply process.
532     */
533    @Child(name = "category", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true)
534    @Description(shortDefinition="The kind of supply (central, non-stock, etc.)", formalDefinition="Category of supply, e.g.  central, non-stock, etc. This is used to support work flows associated with the supply process." )
535    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/supplyrequest-kind")
536    protected CodeableConcept category;
537
538    /**
539     * Indicates how quickly this SupplyRequest should be addressed with respect to other requests.
540     */
541    @Child(name = "priority", type = {CodeType.class}, order=4, min=0, max=1, modifier=false, summary=true)
542    @Description(shortDefinition="routine | urgent | asap | stat", formalDefinition="Indicates how quickly this SupplyRequest should be addressed with respect to other requests." )
543    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-priority")
544    protected Enumeration<RequestPriority> priority;
545
546    /**
547     * The patient to whom the supply will be given or for whom they will be used.
548     */
549    @Child(name = "deliverFor", type = {Patient.class}, order=5, min=0, max=1, modifier=false, summary=false)
550    @Description(shortDefinition="The patient for who the supply request is for", formalDefinition="The patient to whom the supply will be given or for whom they will be used." )
551    protected Reference deliverFor;
552
553    /**
554     * The item that is requested to be supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.
555     */
556    @Child(name = "item", type = {CodeableReference.class}, order=6, min=1, max=1, modifier=false, summary=true)
557    @Description(shortDefinition="Medication, Substance, or Device requested to be supplied", formalDefinition="The item that is requested to be supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list." )
558    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/supply-item")
559    protected CodeableReference item;
560
561    /**
562     * The amount that is being ordered of the indicated item.
563     */
564    @Child(name = "quantity", type = {Quantity.class}, order=7, min=1, max=1, modifier=false, summary=true)
565    @Description(shortDefinition="The requested amount of the item indicated", formalDefinition="The amount that is being ordered of the indicated item." )
566    protected Quantity quantity;
567
568    /**
569     * Specific parameters for the ordered item.  For example, the size of the indicated item.
570     */
571    @Child(name = "parameter", type = {}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
572    @Description(shortDefinition="Ordered item details", formalDefinition="Specific parameters for the ordered item.  For example, the size of the indicated item." )
573    protected List<SupplyRequestParameterComponent> parameter;
574
575    /**
576     * When the request should be fulfilled.
577     */
578    @Child(name = "occurrence", type = {DateTimeType.class, Period.class, Timing.class}, order=9, min=0, max=1, modifier=false, summary=true)
579    @Description(shortDefinition="When the request should be fulfilled", formalDefinition="When the request should be fulfilled." )
580    protected DataType occurrence;
581
582    /**
583     * When the request was made.
584     */
585    @Child(name = "authoredOn", type = {DateTimeType.class}, order=10, min=0, max=1, modifier=false, summary=true)
586    @Description(shortDefinition="When the request was made", formalDefinition="When the request was made." )
587    protected DateTimeType authoredOn;
588
589    /**
590     * The device, practitioner, etc. who initiated the request.
591     */
592    @Child(name = "requester", type = {Practitioner.class, PractitionerRole.class, Organization.class, Patient.class, RelatedPerson.class, Device.class, CareTeam.class}, order=11, min=0, max=1, modifier=false, summary=true)
593    @Description(shortDefinition="Individual making the request", formalDefinition="The device, practitioner, etc. who initiated the request." )
594    protected Reference requester;
595
596    /**
597     * Who is intended to fulfill the request.
598     */
599    @Child(name = "supplier", type = {Organization.class, HealthcareService.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
600    @Description(shortDefinition="Who is intended to fulfill the request", formalDefinition="Who is intended to fulfill the request." )
601    protected List<Reference> supplier;
602
603    /**
604     * The reason why the supply item was requested.
605     */
606    @Child(name = "reason", type = {CodeableReference.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
607    @Description(shortDefinition="The reason why the supply item was requested", formalDefinition="The reason why the supply item was requested." )
608    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/supplyrequest-reason")
609    protected List<CodeableReference> reason;
610
611    /**
612     * Where the supply is expected to come from.
613     */
614    @Child(name = "deliverFrom", type = {Organization.class, Location.class}, order=14, min=0, max=1, modifier=false, summary=false)
615    @Description(shortDefinition="The origin of the supply", formalDefinition="Where the supply is expected to come from." )
616    protected Reference deliverFrom;
617
618    /**
619     * Where the supply is destined to go.
620     */
621    @Child(name = "deliverTo", type = {Organization.class, Location.class, Patient.class, RelatedPerson.class}, order=15, min=0, max=1, modifier=false, summary=false)
622    @Description(shortDefinition="The destination of the supply", formalDefinition="Where the supply is destined to go." )
623    protected Reference deliverTo;
624
625    private static final long serialVersionUID = -1701051976L;
626
627  /**
628   * Constructor
629   */
630    public SupplyRequest() {
631      super();
632    }
633
634  /**
635   * Constructor
636   */
637    public SupplyRequest(CodeableReference item, Quantity quantity) {
638      super();
639      this.setItem(item);
640      this.setQuantity(quantity);
641    }
642
643    /**
644     * @return {@link #identifier} (Business identifiers assigned to this SupplyRequest by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.)
645     */
646    public List<Identifier> getIdentifier() { 
647      if (this.identifier == null)
648        this.identifier = new ArrayList<Identifier>();
649      return this.identifier;
650    }
651
652    /**
653     * @return Returns a reference to <code>this</code> for easy method chaining
654     */
655    public SupplyRequest setIdentifier(List<Identifier> theIdentifier) { 
656      this.identifier = theIdentifier;
657      return this;
658    }
659
660    public boolean hasIdentifier() { 
661      if (this.identifier == null)
662        return false;
663      for (Identifier item : this.identifier)
664        if (!item.isEmpty())
665          return true;
666      return false;
667    }
668
669    public Identifier addIdentifier() { //3
670      Identifier t = new Identifier();
671      if (this.identifier == null)
672        this.identifier = new ArrayList<Identifier>();
673      this.identifier.add(t);
674      return t;
675    }
676
677    public SupplyRequest addIdentifier(Identifier t) { //3
678      if (t == null)
679        return this;
680      if (this.identifier == null)
681        this.identifier = new ArrayList<Identifier>();
682      this.identifier.add(t);
683      return this;
684    }
685
686    /**
687     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
688     */
689    public Identifier getIdentifierFirstRep() { 
690      if (getIdentifier().isEmpty()) {
691        addIdentifier();
692      }
693      return getIdentifier().get(0);
694    }
695
696    /**
697     * @return {@link #status} (Status of the supply request.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
698     */
699    public Enumeration<SupplyRequestStatus> getStatusElement() { 
700      if (this.status == null)
701        if (Configuration.errorOnAutoCreate())
702          throw new Error("Attempt to auto-create SupplyRequest.status");
703        else if (Configuration.doAutoCreate())
704          this.status = new Enumeration<SupplyRequestStatus>(new SupplyRequestStatusEnumFactory()); // bb
705      return this.status;
706    }
707
708    public boolean hasStatusElement() { 
709      return this.status != null && !this.status.isEmpty();
710    }
711
712    public boolean hasStatus() { 
713      return this.status != null && !this.status.isEmpty();
714    }
715
716    /**
717     * @param value {@link #status} (Status of the supply request.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
718     */
719    public SupplyRequest setStatusElement(Enumeration<SupplyRequestStatus> value) { 
720      this.status = value;
721      return this;
722    }
723
724    /**
725     * @return Status of the supply request.
726     */
727    public SupplyRequestStatus getStatus() { 
728      return this.status == null ? null : this.status.getValue();
729    }
730
731    /**
732     * @param value Status of the supply request.
733     */
734    public SupplyRequest setStatus(SupplyRequestStatus value) { 
735      if (value == null)
736        this.status = null;
737      else {
738        if (this.status == null)
739          this.status = new Enumeration<SupplyRequestStatus>(new SupplyRequestStatusEnumFactory());
740        this.status.setValue(value);
741      }
742      return this;
743    }
744
745    /**
746     * @return {@link #basedOn} (Plan/proposal/order fulfilled by this request.)
747     */
748    public List<Reference> getBasedOn() { 
749      if (this.basedOn == null)
750        this.basedOn = new ArrayList<Reference>();
751      return this.basedOn;
752    }
753
754    /**
755     * @return Returns a reference to <code>this</code> for easy method chaining
756     */
757    public SupplyRequest setBasedOn(List<Reference> theBasedOn) { 
758      this.basedOn = theBasedOn;
759      return this;
760    }
761
762    public boolean hasBasedOn() { 
763      if (this.basedOn == null)
764        return false;
765      for (Reference item : this.basedOn)
766        if (!item.isEmpty())
767          return true;
768      return false;
769    }
770
771    public Reference addBasedOn() { //3
772      Reference t = new Reference();
773      if (this.basedOn == null)
774        this.basedOn = new ArrayList<Reference>();
775      this.basedOn.add(t);
776      return t;
777    }
778
779    public SupplyRequest addBasedOn(Reference t) { //3
780      if (t == null)
781        return this;
782      if (this.basedOn == null)
783        this.basedOn = new ArrayList<Reference>();
784      this.basedOn.add(t);
785      return this;
786    }
787
788    /**
789     * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist {3}
790     */
791    public Reference getBasedOnFirstRep() { 
792      if (getBasedOn().isEmpty()) {
793        addBasedOn();
794      }
795      return getBasedOn().get(0);
796    }
797
798    /**
799     * @return {@link #category} (Category of supply, e.g.  central, non-stock, etc. This is used to support work flows associated with the supply process.)
800     */
801    public CodeableConcept getCategory() { 
802      if (this.category == null)
803        if (Configuration.errorOnAutoCreate())
804          throw new Error("Attempt to auto-create SupplyRequest.category");
805        else if (Configuration.doAutoCreate())
806          this.category = new CodeableConcept(); // cc
807      return this.category;
808    }
809
810    public boolean hasCategory() { 
811      return this.category != null && !this.category.isEmpty();
812    }
813
814    /**
815     * @param value {@link #category} (Category of supply, e.g.  central, non-stock, etc. This is used to support work flows associated with the supply process.)
816     */
817    public SupplyRequest setCategory(CodeableConcept value) { 
818      this.category = value;
819      return this;
820    }
821
822    /**
823     * @return {@link #priority} (Indicates how quickly this SupplyRequest should be addressed with respect to other requests.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value
824     */
825    public Enumeration<RequestPriority> getPriorityElement() { 
826      if (this.priority == null)
827        if (Configuration.errorOnAutoCreate())
828          throw new Error("Attempt to auto-create SupplyRequest.priority");
829        else if (Configuration.doAutoCreate())
830          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory()); // bb
831      return this.priority;
832    }
833
834    public boolean hasPriorityElement() { 
835      return this.priority != null && !this.priority.isEmpty();
836    }
837
838    public boolean hasPriority() { 
839      return this.priority != null && !this.priority.isEmpty();
840    }
841
842    /**
843     * @param value {@link #priority} (Indicates how quickly this SupplyRequest should be addressed with respect to other requests.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value
844     */
845    public SupplyRequest setPriorityElement(Enumeration<RequestPriority> value) { 
846      this.priority = value;
847      return this;
848    }
849
850    /**
851     * @return Indicates how quickly this SupplyRequest should be addressed with respect to other requests.
852     */
853    public RequestPriority getPriority() { 
854      return this.priority == null ? null : this.priority.getValue();
855    }
856
857    /**
858     * @param value Indicates how quickly this SupplyRequest should be addressed with respect to other requests.
859     */
860    public SupplyRequest setPriority(RequestPriority value) { 
861      if (value == null)
862        this.priority = null;
863      else {
864        if (this.priority == null)
865          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory());
866        this.priority.setValue(value);
867      }
868      return this;
869    }
870
871    /**
872     * @return {@link #deliverFor} (The patient to whom the supply will be given or for whom they will be used.)
873     */
874    public Reference getDeliverFor() { 
875      if (this.deliverFor == null)
876        if (Configuration.errorOnAutoCreate())
877          throw new Error("Attempt to auto-create SupplyRequest.deliverFor");
878        else if (Configuration.doAutoCreate())
879          this.deliverFor = new Reference(); // cc
880      return this.deliverFor;
881    }
882
883    public boolean hasDeliverFor() { 
884      return this.deliverFor != null && !this.deliverFor.isEmpty();
885    }
886
887    /**
888     * @param value {@link #deliverFor} (The patient to whom the supply will be given or for whom they will be used.)
889     */
890    public SupplyRequest setDeliverFor(Reference value) { 
891      this.deliverFor = value;
892      return this;
893    }
894
895    /**
896     * @return {@link #item} (The item that is requested to be supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.)
897     */
898    public CodeableReference getItem() { 
899      if (this.item == null)
900        if (Configuration.errorOnAutoCreate())
901          throw new Error("Attempt to auto-create SupplyRequest.item");
902        else if (Configuration.doAutoCreate())
903          this.item = new CodeableReference(); // cc
904      return this.item;
905    }
906
907    public boolean hasItem() { 
908      return this.item != null && !this.item.isEmpty();
909    }
910
911    /**
912     * @param value {@link #item} (The item that is requested to be supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.)
913     */
914    public SupplyRequest setItem(CodeableReference value) { 
915      this.item = value;
916      return this;
917    }
918
919    /**
920     * @return {@link #quantity} (The amount that is being ordered of the indicated item.)
921     */
922    public Quantity getQuantity() { 
923      if (this.quantity == null)
924        if (Configuration.errorOnAutoCreate())
925          throw new Error("Attempt to auto-create SupplyRequest.quantity");
926        else if (Configuration.doAutoCreate())
927          this.quantity = new Quantity(); // cc
928      return this.quantity;
929    }
930
931    public boolean hasQuantity() { 
932      return this.quantity != null && !this.quantity.isEmpty();
933    }
934
935    /**
936     * @param value {@link #quantity} (The amount that is being ordered of the indicated item.)
937     */
938    public SupplyRequest setQuantity(Quantity value) { 
939      this.quantity = value;
940      return this;
941    }
942
943    /**
944     * @return {@link #parameter} (Specific parameters for the ordered item.  For example, the size of the indicated item.)
945     */
946    public List<SupplyRequestParameterComponent> getParameter() { 
947      if (this.parameter == null)
948        this.parameter = new ArrayList<SupplyRequestParameterComponent>();
949      return this.parameter;
950    }
951
952    /**
953     * @return Returns a reference to <code>this</code> for easy method chaining
954     */
955    public SupplyRequest setParameter(List<SupplyRequestParameterComponent> theParameter) { 
956      this.parameter = theParameter;
957      return this;
958    }
959
960    public boolean hasParameter() { 
961      if (this.parameter == null)
962        return false;
963      for (SupplyRequestParameterComponent item : this.parameter)
964        if (!item.isEmpty())
965          return true;
966      return false;
967    }
968
969    public SupplyRequestParameterComponent addParameter() { //3
970      SupplyRequestParameterComponent t = new SupplyRequestParameterComponent();
971      if (this.parameter == null)
972        this.parameter = new ArrayList<SupplyRequestParameterComponent>();
973      this.parameter.add(t);
974      return t;
975    }
976
977    public SupplyRequest addParameter(SupplyRequestParameterComponent t) { //3
978      if (t == null)
979        return this;
980      if (this.parameter == null)
981        this.parameter = new ArrayList<SupplyRequestParameterComponent>();
982      this.parameter.add(t);
983      return this;
984    }
985
986    /**
987     * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist {3}
988     */
989    public SupplyRequestParameterComponent getParameterFirstRep() { 
990      if (getParameter().isEmpty()) {
991        addParameter();
992      }
993      return getParameter().get(0);
994    }
995
996    /**
997     * @return {@link #occurrence} (When the request should be fulfilled.)
998     */
999    public DataType getOccurrence() { 
1000      return this.occurrence;
1001    }
1002
1003    /**
1004     * @return {@link #occurrence} (When the request should be fulfilled.)
1005     */
1006    public DateTimeType getOccurrenceDateTimeType() throws FHIRException { 
1007      if (this.occurrence == null)
1008        this.occurrence = new DateTimeType();
1009      if (!(this.occurrence instanceof DateTimeType))
1010        throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.occurrence.getClass().getName()+" was encountered");
1011      return (DateTimeType) this.occurrence;
1012    }
1013
1014    public boolean hasOccurrenceDateTimeType() { 
1015      return this != null && this.occurrence instanceof DateTimeType;
1016    }
1017
1018    /**
1019     * @return {@link #occurrence} (When the request should be fulfilled.)
1020     */
1021    public Period getOccurrencePeriod() throws FHIRException { 
1022      if (this.occurrence == null)
1023        this.occurrence = new Period();
1024      if (!(this.occurrence instanceof Period))
1025        throw new FHIRException("Type mismatch: the type Period was expected, but "+this.occurrence.getClass().getName()+" was encountered");
1026      return (Period) this.occurrence;
1027    }
1028
1029    public boolean hasOccurrencePeriod() { 
1030      return this != null && this.occurrence instanceof Period;
1031    }
1032
1033    /**
1034     * @return {@link #occurrence} (When the request should be fulfilled.)
1035     */
1036    public Timing getOccurrenceTiming() throws FHIRException { 
1037      if (this.occurrence == null)
1038        this.occurrence = new Timing();
1039      if (!(this.occurrence instanceof Timing))
1040        throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.occurrence.getClass().getName()+" was encountered");
1041      return (Timing) this.occurrence;
1042    }
1043
1044    public boolean hasOccurrenceTiming() { 
1045      return this != null && this.occurrence instanceof Timing;
1046    }
1047
1048    public boolean hasOccurrence() { 
1049      return this.occurrence != null && !this.occurrence.isEmpty();
1050    }
1051
1052    /**
1053     * @param value {@link #occurrence} (When the request should be fulfilled.)
1054     */
1055    public SupplyRequest setOccurrence(DataType value) { 
1056      if (value != null && !(value instanceof DateTimeType || value instanceof Period || value instanceof Timing))
1057        throw new FHIRException("Not the right type for SupplyRequest.occurrence[x]: "+value.fhirType());
1058      this.occurrence = value;
1059      return this;
1060    }
1061
1062    /**
1063     * @return {@link #authoredOn} (When the request was made.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value
1064     */
1065    public DateTimeType getAuthoredOnElement() { 
1066      if (this.authoredOn == null)
1067        if (Configuration.errorOnAutoCreate())
1068          throw new Error("Attempt to auto-create SupplyRequest.authoredOn");
1069        else if (Configuration.doAutoCreate())
1070          this.authoredOn = new DateTimeType(); // bb
1071      return this.authoredOn;
1072    }
1073
1074    public boolean hasAuthoredOnElement() { 
1075      return this.authoredOn != null && !this.authoredOn.isEmpty();
1076    }
1077
1078    public boolean hasAuthoredOn() { 
1079      return this.authoredOn != null && !this.authoredOn.isEmpty();
1080    }
1081
1082    /**
1083     * @param value {@link #authoredOn} (When the request was made.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value
1084     */
1085    public SupplyRequest setAuthoredOnElement(DateTimeType value) { 
1086      this.authoredOn = value;
1087      return this;
1088    }
1089
1090    /**
1091     * @return When the request was made.
1092     */
1093    public Date getAuthoredOn() { 
1094      return this.authoredOn == null ? null : this.authoredOn.getValue();
1095    }
1096
1097    /**
1098     * @param value When the request was made.
1099     */
1100    public SupplyRequest setAuthoredOn(Date value) { 
1101      if (value == null)
1102        this.authoredOn = null;
1103      else {
1104        if (this.authoredOn == null)
1105          this.authoredOn = new DateTimeType();
1106        this.authoredOn.setValue(value);
1107      }
1108      return this;
1109    }
1110
1111    /**
1112     * @return {@link #requester} (The device, practitioner, etc. who initiated the request.)
1113     */
1114    public Reference getRequester() { 
1115      if (this.requester == null)
1116        if (Configuration.errorOnAutoCreate())
1117          throw new Error("Attempt to auto-create SupplyRequest.requester");
1118        else if (Configuration.doAutoCreate())
1119          this.requester = new Reference(); // cc
1120      return this.requester;
1121    }
1122
1123    public boolean hasRequester() { 
1124      return this.requester != null && !this.requester.isEmpty();
1125    }
1126
1127    /**
1128     * @param value {@link #requester} (The device, practitioner, etc. who initiated the request.)
1129     */
1130    public SupplyRequest setRequester(Reference value) { 
1131      this.requester = value;
1132      return this;
1133    }
1134
1135    /**
1136     * @return {@link #supplier} (Who is intended to fulfill the request.)
1137     */
1138    public List<Reference> getSupplier() { 
1139      if (this.supplier == null)
1140        this.supplier = new ArrayList<Reference>();
1141      return this.supplier;
1142    }
1143
1144    /**
1145     * @return Returns a reference to <code>this</code> for easy method chaining
1146     */
1147    public SupplyRequest setSupplier(List<Reference> theSupplier) { 
1148      this.supplier = theSupplier;
1149      return this;
1150    }
1151
1152    public boolean hasSupplier() { 
1153      if (this.supplier == null)
1154        return false;
1155      for (Reference item : this.supplier)
1156        if (!item.isEmpty())
1157          return true;
1158      return false;
1159    }
1160
1161    public Reference addSupplier() { //3
1162      Reference t = new Reference();
1163      if (this.supplier == null)
1164        this.supplier = new ArrayList<Reference>();
1165      this.supplier.add(t);
1166      return t;
1167    }
1168
1169    public SupplyRequest addSupplier(Reference t) { //3
1170      if (t == null)
1171        return this;
1172      if (this.supplier == null)
1173        this.supplier = new ArrayList<Reference>();
1174      this.supplier.add(t);
1175      return this;
1176    }
1177
1178    /**
1179     * @return The first repetition of repeating field {@link #supplier}, creating it if it does not already exist {3}
1180     */
1181    public Reference getSupplierFirstRep() { 
1182      if (getSupplier().isEmpty()) {
1183        addSupplier();
1184      }
1185      return getSupplier().get(0);
1186    }
1187
1188    /**
1189     * @return {@link #reason} (The reason why the supply item was requested.)
1190     */
1191    public List<CodeableReference> getReason() { 
1192      if (this.reason == null)
1193        this.reason = new ArrayList<CodeableReference>();
1194      return this.reason;
1195    }
1196
1197    /**
1198     * @return Returns a reference to <code>this</code> for easy method chaining
1199     */
1200    public SupplyRequest setReason(List<CodeableReference> theReason) { 
1201      this.reason = theReason;
1202      return this;
1203    }
1204
1205    public boolean hasReason() { 
1206      if (this.reason == null)
1207        return false;
1208      for (CodeableReference item : this.reason)
1209        if (!item.isEmpty())
1210          return true;
1211      return false;
1212    }
1213
1214    public CodeableReference addReason() { //3
1215      CodeableReference t = new CodeableReference();
1216      if (this.reason == null)
1217        this.reason = new ArrayList<CodeableReference>();
1218      this.reason.add(t);
1219      return t;
1220    }
1221
1222    public SupplyRequest addReason(CodeableReference t) { //3
1223      if (t == null)
1224        return this;
1225      if (this.reason == null)
1226        this.reason = new ArrayList<CodeableReference>();
1227      this.reason.add(t);
1228      return this;
1229    }
1230
1231    /**
1232     * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist {3}
1233     */
1234    public CodeableReference getReasonFirstRep() { 
1235      if (getReason().isEmpty()) {
1236        addReason();
1237      }
1238      return getReason().get(0);
1239    }
1240
1241    /**
1242     * @return {@link #deliverFrom} (Where the supply is expected to come from.)
1243     */
1244    public Reference getDeliverFrom() { 
1245      if (this.deliverFrom == null)
1246        if (Configuration.errorOnAutoCreate())
1247          throw new Error("Attempt to auto-create SupplyRequest.deliverFrom");
1248        else if (Configuration.doAutoCreate())
1249          this.deliverFrom = new Reference(); // cc
1250      return this.deliverFrom;
1251    }
1252
1253    public boolean hasDeliverFrom() { 
1254      return this.deliverFrom != null && !this.deliverFrom.isEmpty();
1255    }
1256
1257    /**
1258     * @param value {@link #deliverFrom} (Where the supply is expected to come from.)
1259     */
1260    public SupplyRequest setDeliverFrom(Reference value) { 
1261      this.deliverFrom = value;
1262      return this;
1263    }
1264
1265    /**
1266     * @return {@link #deliverTo} (Where the supply is destined to go.)
1267     */
1268    public Reference getDeliverTo() { 
1269      if (this.deliverTo == null)
1270        if (Configuration.errorOnAutoCreate())
1271          throw new Error("Attempt to auto-create SupplyRequest.deliverTo");
1272        else if (Configuration.doAutoCreate())
1273          this.deliverTo = new Reference(); // cc
1274      return this.deliverTo;
1275    }
1276
1277    public boolean hasDeliverTo() { 
1278      return this.deliverTo != null && !this.deliverTo.isEmpty();
1279    }
1280
1281    /**
1282     * @param value {@link #deliverTo} (Where the supply is destined to go.)
1283     */
1284    public SupplyRequest setDeliverTo(Reference value) { 
1285      this.deliverTo = value;
1286      return this;
1287    }
1288
1289      protected void listChildren(List<Property> children) {
1290        super.listChildren(children);
1291        children.add(new Property("identifier", "Identifier", "Business identifiers assigned to this SupplyRequest by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier));
1292        children.add(new Property("status", "code", "Status of the supply request.", 0, 1, status));
1293        children.add(new Property("basedOn", "Reference(Any)", "Plan/proposal/order fulfilled by this request.", 0, java.lang.Integer.MAX_VALUE, basedOn));
1294        children.add(new Property("category", "CodeableConcept", "Category of supply, e.g.  central, non-stock, etc. This is used to support work flows associated with the supply process.", 0, 1, category));
1295        children.add(new Property("priority", "code", "Indicates how quickly this SupplyRequest should be addressed with respect to other requests.", 0, 1, priority));
1296        children.add(new Property("deliverFor", "Reference(Patient)", "The patient to whom the supply will be given or for whom they will be used.", 0, 1, deliverFor));
1297        children.add(new Property("item", "CodeableReference(Medication|Substance|Device|DeviceDefinition|BiologicallyDerivedProduct|NutritionProduct|InventoryItem)", "The item that is requested to be supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.", 0, 1, item));
1298        children.add(new Property("quantity", "Quantity", "The amount that is being ordered of the indicated item.", 0, 1, quantity));
1299        children.add(new Property("parameter", "", "Specific parameters for the ordered item.  For example, the size of the indicated item.", 0, java.lang.Integer.MAX_VALUE, parameter));
1300        children.add(new Property("occurrence[x]", "dateTime|Period|Timing", "When the request should be fulfilled.", 0, 1, occurrence));
1301        children.add(new Property("authoredOn", "dateTime", "When the request was made.", 0, 1, authoredOn));
1302        children.add(new Property("requester", "Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device|CareTeam)", "The device, practitioner, etc. who initiated the request.", 0, 1, requester));
1303        children.add(new Property("supplier", "Reference(Organization|HealthcareService)", "Who is intended to fulfill the request.", 0, java.lang.Integer.MAX_VALUE, supplier));
1304        children.add(new Property("reason", "CodeableReference(Condition|Observation|DiagnosticReport|DocumentReference)", "The reason why the supply item was requested.", 0, java.lang.Integer.MAX_VALUE, reason));
1305        children.add(new Property("deliverFrom", "Reference(Organization|Location)", "Where the supply is expected to come from.", 0, 1, deliverFrom));
1306        children.add(new Property("deliverTo", "Reference(Organization|Location|Patient|RelatedPerson)", "Where the supply is destined to go.", 0, 1, deliverTo));
1307      }
1308
1309      @Override
1310      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1311        switch (_hash) {
1312        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Business identifiers assigned to this SupplyRequest by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier);
1313        case -892481550: /*status*/  return new Property("status", "code", "Status of the supply request.", 0, 1, status);
1314        case -332612366: /*basedOn*/  return new Property("basedOn", "Reference(Any)", "Plan/proposal/order fulfilled by this request.", 0, java.lang.Integer.MAX_VALUE, basedOn);
1315        case 50511102: /*category*/  return new Property("category", "CodeableConcept", "Category of supply, e.g.  central, non-stock, etc. This is used to support work flows associated with the supply process.", 0, 1, category);
1316        case -1165461084: /*priority*/  return new Property("priority", "code", "Indicates how quickly this SupplyRequest should be addressed with respect to other requests.", 0, 1, priority);
1317        case 1077755236: /*deliverFor*/  return new Property("deliverFor", "Reference(Patient)", "The patient to whom the supply will be given or for whom they will be used.", 0, 1, deliverFor);
1318        case 3242771: /*item*/  return new Property("item", "CodeableReference(Medication|Substance|Device|DeviceDefinition|BiologicallyDerivedProduct|NutritionProduct|InventoryItem)", "The item that is requested to be supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list.", 0, 1, item);
1319        case -1285004149: /*quantity*/  return new Property("quantity", "Quantity", "The amount that is being ordered of the indicated item.", 0, 1, quantity);
1320        case 1954460585: /*parameter*/  return new Property("parameter", "", "Specific parameters for the ordered item.  For example, the size of the indicated item.", 0, java.lang.Integer.MAX_VALUE, parameter);
1321        case -2022646513: /*occurrence[x]*/  return new Property("occurrence[x]", "dateTime|Period|Timing", "When the request should be fulfilled.", 0, 1, occurrence);
1322        case 1687874001: /*occurrence*/  return new Property("occurrence[x]", "dateTime|Period|Timing", "When the request should be fulfilled.", 0, 1, occurrence);
1323        case -298443636: /*occurrenceDateTime*/  return new Property("occurrence[x]", "dateTime", "When the request should be fulfilled.", 0, 1, occurrence);
1324        case 1397156594: /*occurrencePeriod*/  return new Property("occurrence[x]", "Period", "When the request should be fulfilled.", 0, 1, occurrence);
1325        case 1515218299: /*occurrenceTiming*/  return new Property("occurrence[x]", "Timing", "When the request should be fulfilled.", 0, 1, occurrence);
1326        case -1500852503: /*authoredOn*/  return new Property("authoredOn", "dateTime", "When the request was made.", 0, 1, authoredOn);
1327        case 693933948: /*requester*/  return new Property("requester", "Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device|CareTeam)", "The device, practitioner, etc. who initiated the request.", 0, 1, requester);
1328        case -1663305268: /*supplier*/  return new Property("supplier", "Reference(Organization|HealthcareService)", "Who is intended to fulfill the request.", 0, java.lang.Integer.MAX_VALUE, supplier);
1329        case -934964668: /*reason*/  return new Property("reason", "CodeableReference(Condition|Observation|DiagnosticReport|DocumentReference)", "The reason why the supply item was requested.", 0, java.lang.Integer.MAX_VALUE, reason);
1330        case -949323153: /*deliverFrom*/  return new Property("deliverFrom", "Reference(Organization|Location)", "Where the supply is expected to come from.", 0, 1, deliverFrom);
1331        case -242327936: /*deliverTo*/  return new Property("deliverTo", "Reference(Organization|Location|Patient|RelatedPerson)", "Where the supply is destined to go.", 0, 1, deliverTo);
1332        default: return super.getNamedProperty(_hash, _name, _checkValid);
1333        }
1334
1335      }
1336
1337      @Override
1338      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1339        switch (hash) {
1340        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1341        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<SupplyRequestStatus>
1342        case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference
1343        case 50511102: /*category*/ return this.category == null ? new Base[0] : new Base[] {this.category}; // CodeableConcept
1344        case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // Enumeration<RequestPriority>
1345        case 1077755236: /*deliverFor*/ return this.deliverFor == null ? new Base[0] : new Base[] {this.deliverFor}; // Reference
1346        case 3242771: /*item*/ return this.item == null ? new Base[0] : new Base[] {this.item}; // CodeableReference
1347        case -1285004149: /*quantity*/ return this.quantity == null ? new Base[0] : new Base[] {this.quantity}; // Quantity
1348        case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // SupplyRequestParameterComponent
1349        case 1687874001: /*occurrence*/ return this.occurrence == null ? new Base[0] : new Base[] {this.occurrence}; // DataType
1350        case -1500852503: /*authoredOn*/ return this.authoredOn == null ? new Base[0] : new Base[] {this.authoredOn}; // DateTimeType
1351        case 693933948: /*requester*/ return this.requester == null ? new Base[0] : new Base[] {this.requester}; // Reference
1352        case -1663305268: /*supplier*/ return this.supplier == null ? new Base[0] : this.supplier.toArray(new Base[this.supplier.size()]); // Reference
1353        case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // CodeableReference
1354        case -949323153: /*deliverFrom*/ return this.deliverFrom == null ? new Base[0] : new Base[] {this.deliverFrom}; // Reference
1355        case -242327936: /*deliverTo*/ return this.deliverTo == null ? new Base[0] : new Base[] {this.deliverTo}; // Reference
1356        default: return super.getProperty(hash, name, checkValid);
1357        }
1358
1359      }
1360
1361      @Override
1362      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1363        switch (hash) {
1364        case -1618432855: // identifier
1365          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1366          return value;
1367        case -892481550: // status
1368          value = new SupplyRequestStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1369          this.status = (Enumeration) value; // Enumeration<SupplyRequestStatus>
1370          return value;
1371        case -332612366: // basedOn
1372          this.getBasedOn().add(TypeConvertor.castToReference(value)); // Reference
1373          return value;
1374        case 50511102: // category
1375          this.category = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1376          return value;
1377        case -1165461084: // priority
1378          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
1379          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
1380          return value;
1381        case 1077755236: // deliverFor
1382          this.deliverFor = TypeConvertor.castToReference(value); // Reference
1383          return value;
1384        case 3242771: // item
1385          this.item = TypeConvertor.castToCodeableReference(value); // CodeableReference
1386          return value;
1387        case -1285004149: // quantity
1388          this.quantity = TypeConvertor.castToQuantity(value); // Quantity
1389          return value;
1390        case 1954460585: // parameter
1391          this.getParameter().add((SupplyRequestParameterComponent) value); // SupplyRequestParameterComponent
1392          return value;
1393        case 1687874001: // occurrence
1394          this.occurrence = TypeConvertor.castToType(value); // DataType
1395          return value;
1396        case -1500852503: // authoredOn
1397          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
1398          return value;
1399        case 693933948: // requester
1400          this.requester = TypeConvertor.castToReference(value); // Reference
1401          return value;
1402        case -1663305268: // supplier
1403          this.getSupplier().add(TypeConvertor.castToReference(value)); // Reference
1404          return value;
1405        case -934964668: // reason
1406          this.getReason().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference
1407          return value;
1408        case -949323153: // deliverFrom
1409          this.deliverFrom = TypeConvertor.castToReference(value); // Reference
1410          return value;
1411        case -242327936: // deliverTo
1412          this.deliverTo = TypeConvertor.castToReference(value); // Reference
1413          return value;
1414        default: return super.setProperty(hash, name, value);
1415        }
1416
1417      }
1418
1419      @Override
1420      public Base setProperty(String name, Base value) throws FHIRException {
1421        if (name.equals("identifier")) {
1422          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1423        } else if (name.equals("status")) {
1424          value = new SupplyRequestStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1425          this.status = (Enumeration) value; // Enumeration<SupplyRequestStatus>
1426        } else if (name.equals("basedOn")) {
1427          this.getBasedOn().add(TypeConvertor.castToReference(value));
1428        } else if (name.equals("category")) {
1429          this.category = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1430        } else if (name.equals("priority")) {
1431          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
1432          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
1433        } else if (name.equals("deliverFor")) {
1434          this.deliverFor = TypeConvertor.castToReference(value); // Reference
1435        } else if (name.equals("item")) {
1436          this.item = TypeConvertor.castToCodeableReference(value); // CodeableReference
1437        } else if (name.equals("quantity")) {
1438          this.quantity = TypeConvertor.castToQuantity(value); // Quantity
1439        } else if (name.equals("parameter")) {
1440          this.getParameter().add((SupplyRequestParameterComponent) value);
1441        } else if (name.equals("occurrence[x]")) {
1442          this.occurrence = TypeConvertor.castToType(value); // DataType
1443        } else if (name.equals("authoredOn")) {
1444          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
1445        } else if (name.equals("requester")) {
1446          this.requester = TypeConvertor.castToReference(value); // Reference
1447        } else if (name.equals("supplier")) {
1448          this.getSupplier().add(TypeConvertor.castToReference(value));
1449        } else if (name.equals("reason")) {
1450          this.getReason().add(TypeConvertor.castToCodeableReference(value));
1451        } else if (name.equals("deliverFrom")) {
1452          this.deliverFrom = TypeConvertor.castToReference(value); // Reference
1453        } else if (name.equals("deliverTo")) {
1454          this.deliverTo = TypeConvertor.castToReference(value); // Reference
1455        } else
1456          return super.setProperty(name, value);
1457        return value;
1458      }
1459
1460      @Override
1461      public Base makeProperty(int hash, String name) throws FHIRException {
1462        switch (hash) {
1463        case -1618432855:  return addIdentifier(); 
1464        case -892481550:  return getStatusElement();
1465        case -332612366:  return addBasedOn(); 
1466        case 50511102:  return getCategory();
1467        case -1165461084:  return getPriorityElement();
1468        case 1077755236:  return getDeliverFor();
1469        case 3242771:  return getItem();
1470        case -1285004149:  return getQuantity();
1471        case 1954460585:  return addParameter(); 
1472        case -2022646513:  return getOccurrence();
1473        case 1687874001:  return getOccurrence();
1474        case -1500852503:  return getAuthoredOnElement();
1475        case 693933948:  return getRequester();
1476        case -1663305268:  return addSupplier(); 
1477        case -934964668:  return addReason(); 
1478        case -949323153:  return getDeliverFrom();
1479        case -242327936:  return getDeliverTo();
1480        default: return super.makeProperty(hash, name);
1481        }
1482
1483      }
1484
1485      @Override
1486      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1487        switch (hash) {
1488        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1489        case -892481550: /*status*/ return new String[] {"code"};
1490        case -332612366: /*basedOn*/ return new String[] {"Reference"};
1491        case 50511102: /*category*/ return new String[] {"CodeableConcept"};
1492        case -1165461084: /*priority*/ return new String[] {"code"};
1493        case 1077755236: /*deliverFor*/ return new String[] {"Reference"};
1494        case 3242771: /*item*/ return new String[] {"CodeableReference"};
1495        case -1285004149: /*quantity*/ return new String[] {"Quantity"};
1496        case 1954460585: /*parameter*/ return new String[] {};
1497        case 1687874001: /*occurrence*/ return new String[] {"dateTime", "Period", "Timing"};
1498        case -1500852503: /*authoredOn*/ return new String[] {"dateTime"};
1499        case 693933948: /*requester*/ return new String[] {"Reference"};
1500        case -1663305268: /*supplier*/ return new String[] {"Reference"};
1501        case -934964668: /*reason*/ return new String[] {"CodeableReference"};
1502        case -949323153: /*deliverFrom*/ return new String[] {"Reference"};
1503        case -242327936: /*deliverTo*/ return new String[] {"Reference"};
1504        default: return super.getTypesForProperty(hash, name);
1505        }
1506
1507      }
1508
1509      @Override
1510      public Base addChild(String name) throws FHIRException {
1511        if (name.equals("identifier")) {
1512          return addIdentifier();
1513        }
1514        else if (name.equals("status")) {
1515          throw new FHIRException("Cannot call addChild on a singleton property SupplyRequest.status");
1516        }
1517        else if (name.equals("basedOn")) {
1518          return addBasedOn();
1519        }
1520        else if (name.equals("category")) {
1521          this.category = new CodeableConcept();
1522          return this.category;
1523        }
1524        else if (name.equals("priority")) {
1525          throw new FHIRException("Cannot call addChild on a singleton property SupplyRequest.priority");
1526        }
1527        else if (name.equals("deliverFor")) {
1528          this.deliverFor = new Reference();
1529          return this.deliverFor;
1530        }
1531        else if (name.equals("item")) {
1532          this.item = new CodeableReference();
1533          return this.item;
1534        }
1535        else if (name.equals("quantity")) {
1536          this.quantity = new Quantity();
1537          return this.quantity;
1538        }
1539        else if (name.equals("parameter")) {
1540          return addParameter();
1541        }
1542        else if (name.equals("occurrenceDateTime")) {
1543          this.occurrence = new DateTimeType();
1544          return this.occurrence;
1545        }
1546        else if (name.equals("occurrencePeriod")) {
1547          this.occurrence = new Period();
1548          return this.occurrence;
1549        }
1550        else if (name.equals("occurrenceTiming")) {
1551          this.occurrence = new Timing();
1552          return this.occurrence;
1553        }
1554        else if (name.equals("authoredOn")) {
1555          throw new FHIRException("Cannot call addChild on a singleton property SupplyRequest.authoredOn");
1556        }
1557        else if (name.equals("requester")) {
1558          this.requester = new Reference();
1559          return this.requester;
1560        }
1561        else if (name.equals("supplier")) {
1562          return addSupplier();
1563        }
1564        else if (name.equals("reason")) {
1565          return addReason();
1566        }
1567        else if (name.equals("deliverFrom")) {
1568          this.deliverFrom = new Reference();
1569          return this.deliverFrom;
1570        }
1571        else if (name.equals("deliverTo")) {
1572          this.deliverTo = new Reference();
1573          return this.deliverTo;
1574        }
1575        else
1576          return super.addChild(name);
1577      }
1578
1579  public String fhirType() {
1580    return "SupplyRequest";
1581
1582  }
1583
1584      public SupplyRequest copy() {
1585        SupplyRequest dst = new SupplyRequest();
1586        copyValues(dst);
1587        return dst;
1588      }
1589
1590      public void copyValues(SupplyRequest dst) {
1591        super.copyValues(dst);
1592        if (identifier != null) {
1593          dst.identifier = new ArrayList<Identifier>();
1594          for (Identifier i : identifier)
1595            dst.identifier.add(i.copy());
1596        };
1597        dst.status = status == null ? null : status.copy();
1598        if (basedOn != null) {
1599          dst.basedOn = new ArrayList<Reference>();
1600          for (Reference i : basedOn)
1601            dst.basedOn.add(i.copy());
1602        };
1603        dst.category = category == null ? null : category.copy();
1604        dst.priority = priority == null ? null : priority.copy();
1605        dst.deliverFor = deliverFor == null ? null : deliverFor.copy();
1606        dst.item = item == null ? null : item.copy();
1607        dst.quantity = quantity == null ? null : quantity.copy();
1608        if (parameter != null) {
1609          dst.parameter = new ArrayList<SupplyRequestParameterComponent>();
1610          for (SupplyRequestParameterComponent i : parameter)
1611            dst.parameter.add(i.copy());
1612        };
1613        dst.occurrence = occurrence == null ? null : occurrence.copy();
1614        dst.authoredOn = authoredOn == null ? null : authoredOn.copy();
1615        dst.requester = requester == null ? null : requester.copy();
1616        if (supplier != null) {
1617          dst.supplier = new ArrayList<Reference>();
1618          for (Reference i : supplier)
1619            dst.supplier.add(i.copy());
1620        };
1621        if (reason != null) {
1622          dst.reason = new ArrayList<CodeableReference>();
1623          for (CodeableReference i : reason)
1624            dst.reason.add(i.copy());
1625        };
1626        dst.deliverFrom = deliverFrom == null ? null : deliverFrom.copy();
1627        dst.deliverTo = deliverTo == null ? null : deliverTo.copy();
1628      }
1629
1630      protected SupplyRequest typedCopy() {
1631        return copy();
1632      }
1633
1634      @Override
1635      public boolean equalsDeep(Base other_) {
1636        if (!super.equalsDeep(other_))
1637          return false;
1638        if (!(other_ instanceof SupplyRequest))
1639          return false;
1640        SupplyRequest o = (SupplyRequest) other_;
1641        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(basedOn, o.basedOn, true)
1642           && compareDeep(category, o.category, true) && compareDeep(priority, o.priority, true) && compareDeep(deliverFor, o.deliverFor, true)
1643           && compareDeep(item, o.item, true) && compareDeep(quantity, o.quantity, true) && compareDeep(parameter, o.parameter, true)
1644           && compareDeep(occurrence, o.occurrence, true) && compareDeep(authoredOn, o.authoredOn, true) && compareDeep(requester, o.requester, true)
1645           && compareDeep(supplier, o.supplier, true) && compareDeep(reason, o.reason, true) && compareDeep(deliverFrom, o.deliverFrom, true)
1646           && compareDeep(deliverTo, o.deliverTo, true);
1647      }
1648
1649      @Override
1650      public boolean equalsShallow(Base other_) {
1651        if (!super.equalsShallow(other_))
1652          return false;
1653        if (!(other_ instanceof SupplyRequest))
1654          return false;
1655        SupplyRequest o = (SupplyRequest) other_;
1656        return compareValues(status, o.status, true) && compareValues(priority, o.priority, true) && compareValues(authoredOn, o.authoredOn, true)
1657          ;
1658      }
1659
1660      public boolean isEmpty() {
1661        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, basedOn
1662          , category, priority, deliverFor, item, quantity, parameter, occurrence, authoredOn
1663          , requester, supplier, reason, deliverFrom, deliverTo);
1664      }
1665
1666  @Override
1667  public ResourceType getResourceType() {
1668    return ResourceType.SupplyRequest;
1669   }
1670
1671 /**
1672   * Search parameter: <b>category</b>
1673   * <p>
1674   * Description: <b>The kind of supply (central, non-stock, etc.)</b><br>
1675   * Type: <b>token</b><br>
1676   * Path: <b>SupplyRequest.category</b><br>
1677   * </p>
1678   */
1679  @SearchParamDefinition(name="category", path="SupplyRequest.category", description="The kind of supply (central, non-stock, etc.)", type="token" )
1680  public static final String SP_CATEGORY = "category";
1681 /**
1682   * <b>Fluent Client</b> search parameter constant for <b>category</b>
1683   * <p>
1684   * Description: <b>The kind of supply (central, non-stock, etc.)</b><br>
1685   * Type: <b>token</b><br>
1686   * Path: <b>SupplyRequest.category</b><br>
1687   * </p>
1688   */
1689  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY);
1690
1691 /**
1692   * Search parameter: <b>requester</b>
1693   * <p>
1694   * Description: <b>Individual making the request</b><br>
1695   * Type: <b>reference</b><br>
1696   * Path: <b>SupplyRequest.requester</b><br>
1697   * </p>
1698   */
1699  @SearchParamDefinition(name="requester", path="SupplyRequest.requester", description="Individual making the request", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson") }, target={CareTeam.class, Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
1700  public static final String SP_REQUESTER = "requester";
1701 /**
1702   * <b>Fluent Client</b> search parameter constant for <b>requester</b>
1703   * <p>
1704   * Description: <b>Individual making the request</b><br>
1705   * Type: <b>reference</b><br>
1706   * Path: <b>SupplyRequest.requester</b><br>
1707   * </p>
1708   */
1709  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUESTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUESTER);
1710
1711/**
1712   * Constant for fluent queries to be used to add include statements. Specifies
1713   * the path value of "<b>SupplyRequest:requester</b>".
1714   */
1715  public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUESTER = new ca.uhn.fhir.model.api.Include("SupplyRequest:requester").toLocked();
1716
1717 /**
1718   * Search parameter: <b>status</b>
1719   * <p>
1720   * Description: <b>draft | active | suspended +</b><br>
1721   * Type: <b>token</b><br>
1722   * Path: <b>SupplyRequest.status</b><br>
1723   * </p>
1724   */
1725  @SearchParamDefinition(name="status", path="SupplyRequest.status", description="draft | active | suspended +", type="token" )
1726  public static final String SP_STATUS = "status";
1727 /**
1728   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1729   * <p>
1730   * Description: <b>draft | active | suspended +</b><br>
1731   * Type: <b>token</b><br>
1732   * Path: <b>SupplyRequest.status</b><br>
1733   * </p>
1734   */
1735  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1736
1737 /**
1738   * Search parameter: <b>subject</b>
1739   * <p>
1740   * Description: <b>The destination of the supply</b><br>
1741   * Type: <b>reference</b><br>
1742   * Path: <b>SupplyRequest.deliverTo</b><br>
1743   * </p>
1744   */
1745  @SearchParamDefinition(name="subject", path="SupplyRequest.deliverTo", description="The destination of the supply", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Location.class, Organization.class, Patient.class, RelatedPerson.class } )
1746  public static final String SP_SUBJECT = "subject";
1747 /**
1748   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
1749   * <p>
1750   * Description: <b>The destination of the supply</b><br>
1751   * Type: <b>reference</b><br>
1752   * Path: <b>SupplyRequest.deliverTo</b><br>
1753   * </p>
1754   */
1755  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
1756
1757/**
1758   * Constant for fluent queries to be used to add include statements. Specifies
1759   * the path value of "<b>SupplyRequest:subject</b>".
1760   */
1761  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("SupplyRequest:subject").toLocked();
1762
1763 /**
1764   * Search parameter: <b>supplier</b>
1765   * <p>
1766   * Description: <b>Who is intended to fulfill the request</b><br>
1767   * Type: <b>reference</b><br>
1768   * Path: <b>SupplyRequest.supplier</b><br>
1769   * </p>
1770   */
1771  @SearchParamDefinition(name="supplier", path="SupplyRequest.supplier", description="Who is intended to fulfill the request", type="reference", target={HealthcareService.class, Organization.class } )
1772  public static final String SP_SUPPLIER = "supplier";
1773 /**
1774   * <b>Fluent Client</b> search parameter constant for <b>supplier</b>
1775   * <p>
1776   * Description: <b>Who is intended to fulfill the request</b><br>
1777   * Type: <b>reference</b><br>
1778   * Path: <b>SupplyRequest.supplier</b><br>
1779   * </p>
1780   */
1781  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUPPLIER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUPPLIER);
1782
1783/**
1784   * Constant for fluent queries to be used to add include statements. Specifies
1785   * the path value of "<b>SupplyRequest:supplier</b>".
1786   */
1787  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUPPLIER = new ca.uhn.fhir.model.api.Include("SupplyRequest:supplier").toLocked();
1788
1789 /**
1790   * Search parameter: <b>date</b>
1791   * <p>
1792   * Description: <b>Multiple Resources: 
1793
1794* [AdverseEvent](adverseevent.html): When the event occurred
1795* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
1796* [Appointment](appointment.html): Appointment date/time.
1797* [AuditEvent](auditevent.html): Time when the event was recorded
1798* [CarePlan](careplan.html): Time period plan covers
1799* [CareTeam](careteam.html): A date within the coverage time period.
1800* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
1801* [Composition](composition.html): Composition editing time
1802* [Consent](consent.html): When consent was agreed to
1803* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
1804* [DocumentReference](documentreference.html): When this document reference was created
1805* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
1806* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
1807* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
1808* [Flag](flag.html): Time period when flag is active
1809* [Immunization](immunization.html): Vaccination  (non)-Administration Date
1810* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated
1811* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created
1812* [Invoice](invoice.html): Invoice date / posting date
1813* [List](list.html): When the list was prepared
1814* [MeasureReport](measurereport.html): The date of the measure report
1815* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication
1816* [Observation](observation.html): Clinically relevant time/time-period for observation
1817* [Procedure](procedure.html): When the procedure occurred or is occurring
1818* [ResearchSubject](researchsubject.html): Start and end of participation
1819* [RiskAssessment](riskassessment.html): When was assessment made?
1820* [SupplyRequest](supplyrequest.html): When the request was made
1821</b><br>
1822   * Type: <b>date</b><br>
1823   * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br>
1824   * </p>
1825   */
1826  @SearchParamDefinition(name="date", path="AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): When the event occurred\r\n* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded\r\n* [Appointment](appointment.html): Appointment date/time.\r\n* [AuditEvent](auditevent.html): Time when the event was recorded\r\n* [CarePlan](careplan.html): Time period plan covers\r\n* [CareTeam](careteam.html): A date within the coverage time period.\r\n* [ClinicalImpression](clinicalimpression.html): When the assessment was documented\r\n* [Composition](composition.html): Composition editing time\r\n* [Consent](consent.html): When consent was agreed to\r\n* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report\r\n* [DocumentReference](documentreference.html): When this document reference was created\r\n* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted\r\n* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period\r\n* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated\r\n* [Flag](flag.html): Time period when flag is active\r\n* [Immunization](immunization.html): Vaccination  (non)-Administration Date\r\n* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created\r\n* [Invoice](invoice.html): Invoice date / posting date\r\n* [List](list.html): When the list was prepared\r\n* [MeasureReport](measurereport.html): The date of the measure report\r\n* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication\r\n* [Observation](observation.html): Clinically relevant time/time-period for observation\r\n* [Procedure](procedure.html): When the procedure occurred or is occurring\r\n* [ResearchSubject](researchsubject.html): Start and end of participation\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" )
1827  public static final String SP_DATE = "date";
1828 /**
1829   * <b>Fluent Client</b> search parameter constant for <b>date</b>
1830   * <p>
1831   * Description: <b>Multiple Resources: 
1832
1833* [AdverseEvent](adverseevent.html): When the event occurred
1834* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
1835* [Appointment](appointment.html): Appointment date/time.
1836* [AuditEvent](auditevent.html): Time when the event was recorded
1837* [CarePlan](careplan.html): Time period plan covers
1838* [CareTeam](careteam.html): A date within the coverage time period.
1839* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
1840* [Composition](composition.html): Composition editing time
1841* [Consent](consent.html): When consent was agreed to
1842* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
1843* [DocumentReference](documentreference.html): When this document reference was created
1844* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
1845* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
1846* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
1847* [Flag](flag.html): Time period when flag is active
1848* [Immunization](immunization.html): Vaccination  (non)-Administration Date
1849* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated
1850* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created
1851* [Invoice](invoice.html): Invoice date / posting date
1852* [List](list.html): When the list was prepared
1853* [MeasureReport](measurereport.html): The date of the measure report
1854* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication
1855* [Observation](observation.html): Clinically relevant time/time-period for observation
1856* [Procedure](procedure.html): When the procedure occurred or is occurring
1857* [ResearchSubject](researchsubject.html): Start and end of participation
1858* [RiskAssessment](riskassessment.html): When was assessment made?
1859* [SupplyRequest](supplyrequest.html): When the request was made
1860</b><br>
1861   * Type: <b>date</b><br>
1862   * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br>
1863   * </p>
1864   */
1865  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
1866
1867 /**
1868   * Search parameter: <b>identifier</b>
1869   * <p>
1870   * Description: <b>Multiple Resources: 
1871
1872* [Account](account.html): Account number
1873* [AdverseEvent](adverseevent.html): Business identifier for the event
1874* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1875* [Appointment](appointment.html): An Identifier of the Appointment
1876* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1877* [Basic](basic.html): Business identifier
1878* [BodyStructure](bodystructure.html): Bodystructure identifier
1879* [CarePlan](careplan.html): External Ids for this plan
1880* [CareTeam](careteam.html): External Ids for this team
1881* [ChargeItem](chargeitem.html): Business Identifier for item
1882* [Claim](claim.html): The primary identifier of the financial resource
1883* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1884* [ClinicalImpression](clinicalimpression.html): Business identifier
1885* [Communication](communication.html): Unique identifier
1886* [CommunicationRequest](communicationrequest.html): Unique identifier
1887* [Composition](composition.html): Version-independent identifier for the Composition
1888* [Condition](condition.html): A unique identifier of the condition record
1889* [Consent](consent.html): Identifier for this record (external references)
1890* [Contract](contract.html): The identity of the contract
1891* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1892* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1893* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1894* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1895* [DeviceRequest](devicerequest.html): Business identifier for request/order
1896* [DeviceUsage](deviceusage.html): Search by identifier
1897* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1898* [DocumentReference](documentreference.html): Identifier of the attachment binary
1899* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1900* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1901* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1902* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1903* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1904* [Flag](flag.html): Business identifier
1905* [Goal](goal.html): External Ids for this goal
1906* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1907* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1908* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1909* [Immunization](immunization.html): Business identifier
1910* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1911* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1912* [Invoice](invoice.html): Business Identifier for item
1913* [List](list.html): Business identifier
1914* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1915* [Medication](medication.html): Returns medications with this external identifier
1916* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1917* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1918* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1919* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1920* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1921* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1922* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1923* [Observation](observation.html): The unique id for a particular observation
1924* [Person](person.html): A person Identifier
1925* [Procedure](procedure.html): A unique identifier for a procedure
1926* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1927* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1928* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1929* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1930* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1931* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1932* [Specimen](specimen.html): The unique identifier associated with the specimen
1933* [SupplyDelivery](supplydelivery.html): External identifier
1934* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1935* [Task](task.html): Search for a task instance by its business identifier
1936* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1937</b><br>
1938   * Type: <b>token</b><br>
1939   * 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>
1940   * </p>
1941   */
1942  @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" )
1943  public static final String SP_IDENTIFIER = "identifier";
1944 /**
1945   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1946   * <p>
1947   * Description: <b>Multiple Resources: 
1948
1949* [Account](account.html): Account number
1950* [AdverseEvent](adverseevent.html): Business identifier for the event
1951* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1952* [Appointment](appointment.html): An Identifier of the Appointment
1953* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1954* [Basic](basic.html): Business identifier
1955* [BodyStructure](bodystructure.html): Bodystructure identifier
1956* [CarePlan](careplan.html): External Ids for this plan
1957* [CareTeam](careteam.html): External Ids for this team
1958* [ChargeItem](chargeitem.html): Business Identifier for item
1959* [Claim](claim.html): The primary identifier of the financial resource
1960* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1961* [ClinicalImpression](clinicalimpression.html): Business identifier
1962* [Communication](communication.html): Unique identifier
1963* [CommunicationRequest](communicationrequest.html): Unique identifier
1964* [Composition](composition.html): Version-independent identifier for the Composition
1965* [Condition](condition.html): A unique identifier of the condition record
1966* [Consent](consent.html): Identifier for this record (external references)
1967* [Contract](contract.html): The identity of the contract
1968* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1969* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1970* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1971* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1972* [DeviceRequest](devicerequest.html): Business identifier for request/order
1973* [DeviceUsage](deviceusage.html): Search by identifier
1974* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1975* [DocumentReference](documentreference.html): Identifier of the attachment binary
1976* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1977* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1978* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1979* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1980* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1981* [Flag](flag.html): Business identifier
1982* [Goal](goal.html): External Ids for this goal
1983* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1984* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1985* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1986* [Immunization](immunization.html): Business identifier
1987* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1988* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1989* [Invoice](invoice.html): Business Identifier for item
1990* [List](list.html): Business identifier
1991* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1992* [Medication](medication.html): Returns medications with this external identifier
1993* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1994* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1995* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1996* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1997* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1998* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1999* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2000* [Observation](observation.html): The unique id for a particular observation
2001* [Person](person.html): A person Identifier
2002* [Procedure](procedure.html): A unique identifier for a procedure
2003* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2004* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2005* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2006* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2007* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2008* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2009* [Specimen](specimen.html): The unique identifier associated with the specimen
2010* [SupplyDelivery](supplydelivery.html): External identifier
2011* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2012* [Task](task.html): Search for a task instance by its business identifier
2013* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2014</b><br>
2015   * Type: <b>token</b><br>
2016   * 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>
2017   * </p>
2018   */
2019  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
2020
2021 /**
2022   * Search parameter: <b>patient</b>
2023   * <p>
2024   * Description: <b>Multiple Resources: 
2025
2026* [Account](account.html): The entity that caused the expenses
2027* [AdverseEvent](adverseevent.html): Subject impacted by event
2028* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2029* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2030* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2031* [AuditEvent](auditevent.html): Where the activity involved patient data
2032* [Basic](basic.html): Identifies the focus of this resource
2033* [BodyStructure](bodystructure.html): Who this is about
2034* [CarePlan](careplan.html): Who the care plan is for
2035* [CareTeam](careteam.html): Who care team is for
2036* [ChargeItem](chargeitem.html): Individual service was done for/to
2037* [Claim](claim.html): Patient receiving the products or services
2038* [ClaimResponse](claimresponse.html): The subject of care
2039* [ClinicalImpression](clinicalimpression.html): Patient assessed
2040* [Communication](communication.html): Focus of message
2041* [CommunicationRequest](communicationrequest.html): Focus of message
2042* [Composition](composition.html): Who and/or what the composition is about
2043* [Condition](condition.html): Who has the condition?
2044* [Consent](consent.html): Who the consent applies to
2045* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2046* [Coverage](coverage.html): Retrieve coverages for a patient
2047* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2048* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2049* [DetectedIssue](detectedissue.html): Associated patient
2050* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2051* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2052* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2053* [DocumentReference](documentreference.html): Who/what is the subject of the document
2054* [Encounter](encounter.html): The patient present at the encounter
2055* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2056* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2057* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2058* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2059* [Flag](flag.html): The identity of a subject to list flags for
2060* [Goal](goal.html): Who this goal is intended for
2061* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2062* [ImagingSelection](imagingselection.html): Who the study is about
2063* [ImagingStudy](imagingstudy.html): Who the study is about
2064* [Immunization](immunization.html): The patient for the vaccination record
2065* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2066* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2067* [Invoice](invoice.html): Recipient(s) of goods and services
2068* [List](list.html): If all resources have the same subject
2069* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2070* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2071* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2072* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2073* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2074* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2075* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2076* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2077* [Observation](observation.html): The subject that the observation is about (if patient)
2078* [Person](person.html): The Person links to this Patient
2079* [Procedure](procedure.html): Search by subject - a patient
2080* [Provenance](provenance.html): Where the activity involved patient data
2081* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2082* [RelatedPerson](relatedperson.html): The patient this related person is related to
2083* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2084* [ResearchSubject](researchsubject.html): Who or what is part of study
2085* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2086* [ServiceRequest](servicerequest.html): Search by subject - a patient
2087* [Specimen](specimen.html): The patient the specimen comes from
2088* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2089* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2090* [Task](task.html): Search by patient
2091* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2092</b><br>
2093   * Type: <b>reference</b><br>
2094   * 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>
2095   * </p>
2096   */
2097  @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", target={Patient.class } )
2098  public static final String SP_PATIENT = "patient";
2099 /**
2100   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
2101   * <p>
2102   * Description: <b>Multiple Resources: 
2103
2104* [Account](account.html): The entity that caused the expenses
2105* [AdverseEvent](adverseevent.html): Subject impacted by event
2106* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2107* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2108* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2109* [AuditEvent](auditevent.html): Where the activity involved patient data
2110* [Basic](basic.html): Identifies the focus of this resource
2111* [BodyStructure](bodystructure.html): Who this is about
2112* [CarePlan](careplan.html): Who the care plan is for
2113* [CareTeam](careteam.html): Who care team is for
2114* [ChargeItem](chargeitem.html): Individual service was done for/to
2115* [Claim](claim.html): Patient receiving the products or services
2116* [ClaimResponse](claimresponse.html): The subject of care
2117* [ClinicalImpression](clinicalimpression.html): Patient assessed
2118* [Communication](communication.html): Focus of message
2119* [CommunicationRequest](communicationrequest.html): Focus of message
2120* [Composition](composition.html): Who and/or what the composition is about
2121* [Condition](condition.html): Who has the condition?
2122* [Consent](consent.html): Who the consent applies to
2123* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2124* [Coverage](coverage.html): Retrieve coverages for a patient
2125* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2126* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2127* [DetectedIssue](detectedissue.html): Associated patient
2128* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2129* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2130* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2131* [DocumentReference](documentreference.html): Who/what is the subject of the document
2132* [Encounter](encounter.html): The patient present at the encounter
2133* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2134* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2135* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2136* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2137* [Flag](flag.html): The identity of a subject to list flags for
2138* [Goal](goal.html): Who this goal is intended for
2139* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2140* [ImagingSelection](imagingselection.html): Who the study is about
2141* [ImagingStudy](imagingstudy.html): Who the study is about
2142* [Immunization](immunization.html): The patient for the vaccination record
2143* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2144* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2145* [Invoice](invoice.html): Recipient(s) of goods and services
2146* [List](list.html): If all resources have the same subject
2147* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2148* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2149* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2150* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2151* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2152* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2153* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2154* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2155* [Observation](observation.html): The subject that the observation is about (if patient)
2156* [Person](person.html): The Person links to this Patient
2157* [Procedure](procedure.html): Search by subject - a patient
2158* [Provenance](provenance.html): Where the activity involved patient data
2159* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2160* [RelatedPerson](relatedperson.html): The patient this related person is related to
2161* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2162* [ResearchSubject](researchsubject.html): Who or what is part of study
2163* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2164* [ServiceRequest](servicerequest.html): Search by subject - a patient
2165* [Specimen](specimen.html): The patient the specimen comes from
2166* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2167* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2168* [Task](task.html): Search by patient
2169* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2170</b><br>
2171   * Type: <b>reference</b><br>
2172   * 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>
2173   * </p>
2174   */
2175  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
2176
2177/**
2178   * Constant for fluent queries to be used to add include statements. Specifies
2179   * the path value of "<b>SupplyRequest:patient</b>".
2180   */
2181  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("SupplyRequest:patient").toLocked();
2182
2183
2184}
2185