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 guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken.
052 */
053@ResourceDef(name="GuidanceResponse", profile="http://hl7.org/fhir/StructureDefinition/GuidanceResponse")
054public class GuidanceResponse extends DomainResource {
055
056    public enum GuidanceResponseStatus {
057        /**
058         * The request was processed successfully.
059         */
060        SUCCESS, 
061        /**
062         * The request was processed successfully, but more data may result in a more complete evaluation.
063         */
064        DATAREQUESTED, 
065        /**
066         * The request was processed, but more data is required to complete the evaluation.
067         */
068        DATAREQUIRED, 
069        /**
070         * The request is currently being processed.
071         */
072        INPROGRESS, 
073        /**
074         * The request was not processed successfully.
075         */
076        FAILURE, 
077        /**
078         * The response was entered in error.
079         */
080        ENTEREDINERROR, 
081        /**
082         * added to help the parsers with the generic types
083         */
084        NULL;
085        public static GuidanceResponseStatus fromCode(String codeString) throws FHIRException {
086            if (codeString == null || "".equals(codeString))
087                return null;
088        if ("success".equals(codeString))
089          return SUCCESS;
090        if ("data-requested".equals(codeString))
091          return DATAREQUESTED;
092        if ("data-required".equals(codeString))
093          return DATAREQUIRED;
094        if ("in-progress".equals(codeString))
095          return INPROGRESS;
096        if ("failure".equals(codeString))
097          return FAILURE;
098        if ("entered-in-error".equals(codeString))
099          return ENTEREDINERROR;
100        if (Configuration.isAcceptInvalidEnums())
101          return null;
102        else
103          throw new FHIRException("Unknown GuidanceResponseStatus code '"+codeString+"'");
104        }
105        public String toCode() {
106          switch (this) {
107            case SUCCESS: return "success";
108            case DATAREQUESTED: return "data-requested";
109            case DATAREQUIRED: return "data-required";
110            case INPROGRESS: return "in-progress";
111            case FAILURE: return "failure";
112            case ENTEREDINERROR: return "entered-in-error";
113            case NULL: return null;
114            default: return "?";
115          }
116        }
117        public String getSystem() {
118          switch (this) {
119            case SUCCESS: return "http://hl7.org/fhir/guidance-response-status";
120            case DATAREQUESTED: return "http://hl7.org/fhir/guidance-response-status";
121            case DATAREQUIRED: return "http://hl7.org/fhir/guidance-response-status";
122            case INPROGRESS: return "http://hl7.org/fhir/guidance-response-status";
123            case FAILURE: return "http://hl7.org/fhir/guidance-response-status";
124            case ENTEREDINERROR: return "http://hl7.org/fhir/guidance-response-status";
125            case NULL: return null;
126            default: return "?";
127          }
128        }
129        public String getDefinition() {
130          switch (this) {
131            case SUCCESS: return "The request was processed successfully.";
132            case DATAREQUESTED: return "The request was processed successfully, but more data may result in a more complete evaluation.";
133            case DATAREQUIRED: return "The request was processed, but more data is required to complete the evaluation.";
134            case INPROGRESS: return "The request is currently being processed.";
135            case FAILURE: return "The request was not processed successfully.";
136            case ENTEREDINERROR: return "The response was entered in error.";
137            case NULL: return null;
138            default: return "?";
139          }
140        }
141        public String getDisplay() {
142          switch (this) {
143            case SUCCESS: return "Success";
144            case DATAREQUESTED: return "Data Requested";
145            case DATAREQUIRED: return "Data Required";
146            case INPROGRESS: return "In Progress";
147            case FAILURE: return "Failure";
148            case ENTEREDINERROR: return "Entered In Error";
149            case NULL: return null;
150            default: return "?";
151          }
152        }
153    }
154
155  public static class GuidanceResponseStatusEnumFactory implements EnumFactory<GuidanceResponseStatus> {
156    public GuidanceResponseStatus fromCode(String codeString) throws IllegalArgumentException {
157      if (codeString == null || "".equals(codeString))
158            if (codeString == null || "".equals(codeString))
159                return null;
160        if ("success".equals(codeString))
161          return GuidanceResponseStatus.SUCCESS;
162        if ("data-requested".equals(codeString))
163          return GuidanceResponseStatus.DATAREQUESTED;
164        if ("data-required".equals(codeString))
165          return GuidanceResponseStatus.DATAREQUIRED;
166        if ("in-progress".equals(codeString))
167          return GuidanceResponseStatus.INPROGRESS;
168        if ("failure".equals(codeString))
169          return GuidanceResponseStatus.FAILURE;
170        if ("entered-in-error".equals(codeString))
171          return GuidanceResponseStatus.ENTEREDINERROR;
172        throw new IllegalArgumentException("Unknown GuidanceResponseStatus code '"+codeString+"'");
173        }
174        public Enumeration<GuidanceResponseStatus> fromType(PrimitiveType<?> code) throws FHIRException {
175          if (code == null)
176            return null;
177          if (code.isEmpty())
178            return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.NULL, code);
179          String codeString = ((PrimitiveType) code).asStringValue();
180          if (codeString == null || "".equals(codeString))
181            return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.NULL, code);
182        if ("success".equals(codeString))
183          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.SUCCESS, code);
184        if ("data-requested".equals(codeString))
185          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.DATAREQUESTED, code);
186        if ("data-required".equals(codeString))
187          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.DATAREQUIRED, code);
188        if ("in-progress".equals(codeString))
189          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.INPROGRESS, code);
190        if ("failure".equals(codeString))
191          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.FAILURE, code);
192        if ("entered-in-error".equals(codeString))
193          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.ENTEREDINERROR, code);
194        throw new FHIRException("Unknown GuidanceResponseStatus code '"+codeString+"'");
195        }
196    public String toCode(GuidanceResponseStatus code) {
197      if (code == GuidanceResponseStatus.SUCCESS)
198        return "success";
199      if (code == GuidanceResponseStatus.DATAREQUESTED)
200        return "data-requested";
201      if (code == GuidanceResponseStatus.DATAREQUIRED)
202        return "data-required";
203      if (code == GuidanceResponseStatus.INPROGRESS)
204        return "in-progress";
205      if (code == GuidanceResponseStatus.FAILURE)
206        return "failure";
207      if (code == GuidanceResponseStatus.ENTEREDINERROR)
208        return "entered-in-error";
209      return "?";
210      }
211    public String toSystem(GuidanceResponseStatus code) {
212      return code.getSystem();
213      }
214    }
215
216    /**
217     * The identifier of the request associated with this response. If an identifier was given as part of the request, it will be reproduced here to enable the requester to more easily identify the response in a multi-request scenario.
218     */
219    @Child(name = "requestIdentifier", type = {Identifier.class}, order=0, min=0, max=1, modifier=false, summary=true)
220    @Description(shortDefinition="The identifier of the request associated with this response, if any", formalDefinition="The identifier of the request associated with this response. If an identifier was given as part of the request, it will be reproduced here to enable the requester to more easily identify the response in a multi-request scenario." )
221    protected Identifier requestIdentifier;
222
223    /**
224     * Allows a service to provide  unique, business identifiers for the response.
225     */
226    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
227    @Description(shortDefinition="Business identifier", formalDefinition="Allows a service to provide  unique, business identifiers for the response." )
228    protected List<Identifier> identifier;
229
230    /**
231     * An identifier, CodeableConcept or canonical reference to the guidance that was requested.
232     */
233    @Child(name = "module", type = {UriType.class, CanonicalType.class, CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=true)
234    @Description(shortDefinition="What guidance was requested", formalDefinition="An identifier, CodeableConcept or canonical reference to the guidance that was requested." )
235    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guidance-module-code")
236    protected DataType module;
237
238    /**
239     * The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information.
240     */
241    @Child(name = "status", type = {CodeType.class}, order=3, min=1, max=1, modifier=true, summary=true)
242    @Description(shortDefinition="success | data-requested | data-required | in-progress | failure | entered-in-error", formalDefinition="The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information." )
243    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guidance-response-status")
244    protected Enumeration<GuidanceResponseStatus> status;
245
246    /**
247     * The patient for which the request was processed.
248     */
249    @Child(name = "subject", type = {Patient.class, Group.class}, order=4, min=0, max=1, modifier=false, summary=false)
250    @Description(shortDefinition="Patient the request was performed for", formalDefinition="The patient for which the request was processed." )
251    protected Reference subject;
252
253    /**
254     * The encounter during which this response was created or to which the creation of this record is tightly associated.
255     */
256    @Child(name = "encounter", type = {Encounter.class}, order=5, min=0, max=1, modifier=false, summary=false)
257    @Description(shortDefinition="Encounter during which the response was returned", formalDefinition="The encounter during which this response was created or to which the creation of this record is tightly associated." )
258    protected Reference encounter;
259
260    /**
261     * Indicates when the guidance response was processed.
262     */
263    @Child(name = "occurrenceDateTime", type = {DateTimeType.class}, order=6, min=0, max=1, modifier=false, summary=false)
264    @Description(shortDefinition="When the guidance response was processed", formalDefinition="Indicates when the guidance response was processed." )
265    protected DateTimeType occurrenceDateTime;
266
267    /**
268     * Provides a reference to the device that performed the guidance.
269     */
270    @Child(name = "performer", type = {Device.class}, order=7, min=0, max=1, modifier=false, summary=false)
271    @Description(shortDefinition="Device returning the guidance", formalDefinition="Provides a reference to the device that performed the guidance." )
272    protected Reference performer;
273
274    /**
275     * Describes the reason for the guidance response in coded or textual form, or Indicates the reason the request was initiated. This is typically provided as a parameter to the evaluation and echoed by the service, although for some use cases, such as subscription- or event-based scenarios, it may provide an indication of the cause for the response.
276     */
277    @Child(name = "reason", type = {CodeableReference.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
278    @Description(shortDefinition="Why guidance is needed", formalDefinition="Describes the reason for the guidance response in coded or textual form, or Indicates the reason the request was initiated. This is typically provided as a parameter to the evaluation and echoed by the service, although for some use cases, such as subscription- or event-based scenarios, it may provide an indication of the cause for the response." )
279    protected List<CodeableReference> reason;
280
281    /**
282     * Provides a mechanism to communicate additional information about the response.
283     */
284    @Child(name = "note", type = {Annotation.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
285    @Description(shortDefinition="Additional notes about the response", formalDefinition="Provides a mechanism to communicate additional information about the response." )
286    protected List<Annotation> note;
287
288    /**
289     * Messages resulting from the evaluation of the artifact or artifacts. As part of evaluating the request, the engine may produce informational or warning messages. These messages will be provided by this element.
290     */
291    @Child(name = "evaluationMessage", type = {OperationOutcome.class}, order=10, min=0, max=1, modifier=false, summary=false)
292    @Description(shortDefinition="Messages resulting from the evaluation of the artifact or artifacts", formalDefinition="Messages resulting from the evaluation of the artifact or artifacts. As part of evaluating the request, the engine may produce informational or warning messages. These messages will be provided by this element." )
293    protected Reference evaluationMessage;
294
295    /**
296     * The output parameters of the evaluation, if any. Many modules will result in the return of specific resources such as procedure or communication requests that are returned as part of the operation result. However, modules may define specific outputs that would be returned as the result of the evaluation, and these would be returned in this element.
297     */
298    @Child(name = "outputParameters", type = {Parameters.class}, order=11, min=0, max=1, modifier=false, summary=false)
299    @Description(shortDefinition="The output parameters of the evaluation, if any", formalDefinition="The output parameters of the evaluation, if any. Many modules will result in the return of specific resources such as procedure or communication requests that are returned as part of the operation result. However, modules may define specific outputs that would be returned as the result of the evaluation, and these would be returned in this element." )
300    protected Reference outputParameters;
301
302    /**
303     * The actions, if any, produced by the evaluation of the artifact.
304     */
305    @Child(name = "result", type = {Appointment.class, AppointmentResponse.class, CarePlan.class, Claim.class, CommunicationRequest.class, Contract.class, CoverageEligibilityRequest.class, DeviceRequest.class, EnrollmentRequest.class, ImmunizationRecommendation.class, MedicationRequest.class, NutritionOrder.class, RequestOrchestration.class, ServiceRequest.class, SupplyRequest.class, Task.class, VisionPrescription.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
306    @Description(shortDefinition="Proposed actions, if any", formalDefinition="The actions, if any, produced by the evaluation of the artifact." )
307    protected List<Reference> result;
308
309    /**
310     * If the evaluation could not be completed due to lack of information, or additional information would potentially result in a more accurate response, this element will a description of the data required in order to proceed with the evaluation. A subsequent request to the service should include this data.
311     */
312    @Child(name = "dataRequirement", type = {DataRequirement.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
313    @Description(shortDefinition="Additional required data", formalDefinition="If the evaluation could not be completed due to lack of information, or additional information would potentially result in a more accurate response, this element will a description of the data required in order to proceed with the evaluation. A subsequent request to the service should include this data." )
314    protected List<DataRequirement> dataRequirement;
315
316    private static final long serialVersionUID = 1439061923L;
317
318  /**
319   * Constructor
320   */
321    public GuidanceResponse() {
322      super();
323    }
324
325  /**
326   * Constructor
327   */
328    public GuidanceResponse(DataType module, GuidanceResponseStatus status) {
329      super();
330      this.setModule(module);
331      this.setStatus(status);
332    }
333
334    /**
335     * @return {@link #requestIdentifier} (The identifier of the request associated with this response. If an identifier was given as part of the request, it will be reproduced here to enable the requester to more easily identify the response in a multi-request scenario.)
336     */
337    public Identifier getRequestIdentifier() { 
338      if (this.requestIdentifier == null)
339        if (Configuration.errorOnAutoCreate())
340          throw new Error("Attempt to auto-create GuidanceResponse.requestIdentifier");
341        else if (Configuration.doAutoCreate())
342          this.requestIdentifier = new Identifier(); // cc
343      return this.requestIdentifier;
344    }
345
346    public boolean hasRequestIdentifier() { 
347      return this.requestIdentifier != null && !this.requestIdentifier.isEmpty();
348    }
349
350    /**
351     * @param value {@link #requestIdentifier} (The identifier of the request associated with this response. If an identifier was given as part of the request, it will be reproduced here to enable the requester to more easily identify the response in a multi-request scenario.)
352     */
353    public GuidanceResponse setRequestIdentifier(Identifier value) { 
354      this.requestIdentifier = value;
355      return this;
356    }
357
358    /**
359     * @return {@link #identifier} (Allows a service to provide  unique, business identifiers for the response.)
360     */
361    public List<Identifier> getIdentifier() { 
362      if (this.identifier == null)
363        this.identifier = new ArrayList<Identifier>();
364      return this.identifier;
365    }
366
367    /**
368     * @return Returns a reference to <code>this</code> for easy method chaining
369     */
370    public GuidanceResponse setIdentifier(List<Identifier> theIdentifier) { 
371      this.identifier = theIdentifier;
372      return this;
373    }
374
375    public boolean hasIdentifier() { 
376      if (this.identifier == null)
377        return false;
378      for (Identifier item : this.identifier)
379        if (!item.isEmpty())
380          return true;
381      return false;
382    }
383
384    public Identifier addIdentifier() { //3
385      Identifier t = new Identifier();
386      if (this.identifier == null)
387        this.identifier = new ArrayList<Identifier>();
388      this.identifier.add(t);
389      return t;
390    }
391
392    public GuidanceResponse addIdentifier(Identifier t) { //3
393      if (t == null)
394        return this;
395      if (this.identifier == null)
396        this.identifier = new ArrayList<Identifier>();
397      this.identifier.add(t);
398      return this;
399    }
400
401    /**
402     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
403     */
404    public Identifier getIdentifierFirstRep() { 
405      if (getIdentifier().isEmpty()) {
406        addIdentifier();
407      }
408      return getIdentifier().get(0);
409    }
410
411    /**
412     * @return {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
413     */
414    public DataType getModule() { 
415      return this.module;
416    }
417
418    /**
419     * @return {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
420     */
421    public UriType getModuleUriType() throws FHIRException { 
422      if (this.module == null)
423        this.module = new UriType();
424      if (!(this.module instanceof UriType))
425        throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.module.getClass().getName()+" was encountered");
426      return (UriType) this.module;
427    }
428
429    public boolean hasModuleUriType() { 
430      return this != null && this.module instanceof UriType;
431    }
432
433    /**
434     * @return {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
435     */
436    public CanonicalType getModuleCanonicalType() throws FHIRException { 
437      if (this.module == null)
438        this.module = new CanonicalType();
439      if (!(this.module instanceof CanonicalType))
440        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.module.getClass().getName()+" was encountered");
441      return (CanonicalType) this.module;
442    }
443
444    public boolean hasModuleCanonicalType() { 
445      return this != null && this.module instanceof CanonicalType;
446    }
447
448    /**
449     * @return {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
450     */
451    public CodeableConcept getModuleCodeableConcept() throws FHIRException { 
452      if (this.module == null)
453        this.module = new CodeableConcept();
454      if (!(this.module instanceof CodeableConcept))
455        throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.module.getClass().getName()+" was encountered");
456      return (CodeableConcept) this.module;
457    }
458
459    public boolean hasModuleCodeableConcept() { 
460      return this != null && this.module instanceof CodeableConcept;
461    }
462
463    public boolean hasModule() { 
464      return this.module != null && !this.module.isEmpty();
465    }
466
467    /**
468     * @param value {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
469     */
470    public GuidanceResponse setModule(DataType value) { 
471      if (value != null && !(value instanceof UriType || value instanceof CanonicalType || value instanceof CodeableConcept))
472        throw new FHIRException("Not the right type for GuidanceResponse.module[x]: "+value.fhirType());
473      this.module = value;
474      return this;
475    }
476
477    /**
478     * @return {@link #status} (The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
479     */
480    public Enumeration<GuidanceResponseStatus> getStatusElement() { 
481      if (this.status == null)
482        if (Configuration.errorOnAutoCreate())
483          throw new Error("Attempt to auto-create GuidanceResponse.status");
484        else if (Configuration.doAutoCreate())
485          this.status = new Enumeration<GuidanceResponseStatus>(new GuidanceResponseStatusEnumFactory()); // bb
486      return this.status;
487    }
488
489    public boolean hasStatusElement() { 
490      return this.status != null && !this.status.isEmpty();
491    }
492
493    public boolean hasStatus() { 
494      return this.status != null && !this.status.isEmpty();
495    }
496
497    /**
498     * @param value {@link #status} (The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
499     */
500    public GuidanceResponse setStatusElement(Enumeration<GuidanceResponseStatus> value) { 
501      this.status = value;
502      return this;
503    }
504
505    /**
506     * @return The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information.
507     */
508    public GuidanceResponseStatus getStatus() { 
509      return this.status == null ? null : this.status.getValue();
510    }
511
512    /**
513     * @param value The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information.
514     */
515    public GuidanceResponse setStatus(GuidanceResponseStatus value) { 
516        if (this.status == null)
517          this.status = new Enumeration<GuidanceResponseStatus>(new GuidanceResponseStatusEnumFactory());
518        this.status.setValue(value);
519      return this;
520    }
521
522    /**
523     * @return {@link #subject} (The patient for which the request was processed.)
524     */
525    public Reference getSubject() { 
526      if (this.subject == null)
527        if (Configuration.errorOnAutoCreate())
528          throw new Error("Attempt to auto-create GuidanceResponse.subject");
529        else if (Configuration.doAutoCreate())
530          this.subject = new Reference(); // cc
531      return this.subject;
532    }
533
534    public boolean hasSubject() { 
535      return this.subject != null && !this.subject.isEmpty();
536    }
537
538    /**
539     * @param value {@link #subject} (The patient for which the request was processed.)
540     */
541    public GuidanceResponse setSubject(Reference value) { 
542      this.subject = value;
543      return this;
544    }
545
546    /**
547     * @return {@link #encounter} (The encounter during which this response was created or to which the creation of this record is tightly associated.)
548     */
549    public Reference getEncounter() { 
550      if (this.encounter == null)
551        if (Configuration.errorOnAutoCreate())
552          throw new Error("Attempt to auto-create GuidanceResponse.encounter");
553        else if (Configuration.doAutoCreate())
554          this.encounter = new Reference(); // cc
555      return this.encounter;
556    }
557
558    public boolean hasEncounter() { 
559      return this.encounter != null && !this.encounter.isEmpty();
560    }
561
562    /**
563     * @param value {@link #encounter} (The encounter during which this response was created or to which the creation of this record is tightly associated.)
564     */
565    public GuidanceResponse setEncounter(Reference value) { 
566      this.encounter = value;
567      return this;
568    }
569
570    /**
571     * @return {@link #occurrenceDateTime} (Indicates when the guidance response was processed.). This is the underlying object with id, value and extensions. The accessor "getOccurrenceDateTime" gives direct access to the value
572     */
573    public DateTimeType getOccurrenceDateTimeElement() { 
574      if (this.occurrenceDateTime == null)
575        if (Configuration.errorOnAutoCreate())
576          throw new Error("Attempt to auto-create GuidanceResponse.occurrenceDateTime");
577        else if (Configuration.doAutoCreate())
578          this.occurrenceDateTime = new DateTimeType(); // bb
579      return this.occurrenceDateTime;
580    }
581
582    public boolean hasOccurrenceDateTimeElement() { 
583      return this.occurrenceDateTime != null && !this.occurrenceDateTime.isEmpty();
584    }
585
586    public boolean hasOccurrenceDateTime() { 
587      return this.occurrenceDateTime != null && !this.occurrenceDateTime.isEmpty();
588    }
589
590    /**
591     * @param value {@link #occurrenceDateTime} (Indicates when the guidance response was processed.). This is the underlying object with id, value and extensions. The accessor "getOccurrenceDateTime" gives direct access to the value
592     */
593    public GuidanceResponse setOccurrenceDateTimeElement(DateTimeType value) { 
594      this.occurrenceDateTime = value;
595      return this;
596    }
597
598    /**
599     * @return Indicates when the guidance response was processed.
600     */
601    public Date getOccurrenceDateTime() { 
602      return this.occurrenceDateTime == null ? null : this.occurrenceDateTime.getValue();
603    }
604
605    /**
606     * @param value Indicates when the guidance response was processed.
607     */
608    public GuidanceResponse setOccurrenceDateTime(Date value) { 
609      if (value == null)
610        this.occurrenceDateTime = null;
611      else {
612        if (this.occurrenceDateTime == null)
613          this.occurrenceDateTime = new DateTimeType();
614        this.occurrenceDateTime.setValue(value);
615      }
616      return this;
617    }
618
619    /**
620     * @return {@link #performer} (Provides a reference to the device that performed the guidance.)
621     */
622    public Reference getPerformer() { 
623      if (this.performer == null)
624        if (Configuration.errorOnAutoCreate())
625          throw new Error("Attempt to auto-create GuidanceResponse.performer");
626        else if (Configuration.doAutoCreate())
627          this.performer = new Reference(); // cc
628      return this.performer;
629    }
630
631    public boolean hasPerformer() { 
632      return this.performer != null && !this.performer.isEmpty();
633    }
634
635    /**
636     * @param value {@link #performer} (Provides a reference to the device that performed the guidance.)
637     */
638    public GuidanceResponse setPerformer(Reference value) { 
639      this.performer = value;
640      return this;
641    }
642
643    /**
644     * @return {@link #reason} (Describes the reason for the guidance response in coded or textual form, or Indicates the reason the request was initiated. This is typically provided as a parameter to the evaluation and echoed by the service, although for some use cases, such as subscription- or event-based scenarios, it may provide an indication of the cause for the response.)
645     */
646    public List<CodeableReference> getReason() { 
647      if (this.reason == null)
648        this.reason = new ArrayList<CodeableReference>();
649      return this.reason;
650    }
651
652    /**
653     * @return Returns a reference to <code>this</code> for easy method chaining
654     */
655    public GuidanceResponse setReason(List<CodeableReference> theReason) { 
656      this.reason = theReason;
657      return this;
658    }
659
660    public boolean hasReason() { 
661      if (this.reason == null)
662        return false;
663      for (CodeableReference item : this.reason)
664        if (!item.isEmpty())
665          return true;
666      return false;
667    }
668
669    public CodeableReference addReason() { //3
670      CodeableReference t = new CodeableReference();
671      if (this.reason == null)
672        this.reason = new ArrayList<CodeableReference>();
673      this.reason.add(t);
674      return t;
675    }
676
677    public GuidanceResponse addReason(CodeableReference t) { //3
678      if (t == null)
679        return this;
680      if (this.reason == null)
681        this.reason = new ArrayList<CodeableReference>();
682      this.reason.add(t);
683      return this;
684    }
685
686    /**
687     * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist {3}
688     */
689    public CodeableReference getReasonFirstRep() { 
690      if (getReason().isEmpty()) {
691        addReason();
692      }
693      return getReason().get(0);
694    }
695
696    /**
697     * @return {@link #note} (Provides a mechanism to communicate additional information about the response.)
698     */
699    public List<Annotation> getNote() { 
700      if (this.note == null)
701        this.note = new ArrayList<Annotation>();
702      return this.note;
703    }
704
705    /**
706     * @return Returns a reference to <code>this</code> for easy method chaining
707     */
708    public GuidanceResponse setNote(List<Annotation> theNote) { 
709      this.note = theNote;
710      return this;
711    }
712
713    public boolean hasNote() { 
714      if (this.note == null)
715        return false;
716      for (Annotation item : this.note)
717        if (!item.isEmpty())
718          return true;
719      return false;
720    }
721
722    public Annotation addNote() { //3
723      Annotation t = new Annotation();
724      if (this.note == null)
725        this.note = new ArrayList<Annotation>();
726      this.note.add(t);
727      return t;
728    }
729
730    public GuidanceResponse addNote(Annotation t) { //3
731      if (t == null)
732        return this;
733      if (this.note == null)
734        this.note = new ArrayList<Annotation>();
735      this.note.add(t);
736      return this;
737    }
738
739    /**
740     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
741     */
742    public Annotation getNoteFirstRep() { 
743      if (getNote().isEmpty()) {
744        addNote();
745      }
746      return getNote().get(0);
747    }
748
749    /**
750     * @return {@link #evaluationMessage} (Messages resulting from the evaluation of the artifact or artifacts. As part of evaluating the request, the engine may produce informational or warning messages. These messages will be provided by this element.)
751     */
752    public Reference getEvaluationMessage() { 
753      if (this.evaluationMessage == null)
754        if (Configuration.errorOnAutoCreate())
755          throw new Error("Attempt to auto-create GuidanceResponse.evaluationMessage");
756        else if (Configuration.doAutoCreate())
757          this.evaluationMessage = new Reference(); // cc
758      return this.evaluationMessage;
759    }
760
761    public boolean hasEvaluationMessage() { 
762      return this.evaluationMessage != null && !this.evaluationMessage.isEmpty();
763    }
764
765    /**
766     * @param value {@link #evaluationMessage} (Messages resulting from the evaluation of the artifact or artifacts. As part of evaluating the request, the engine may produce informational or warning messages. These messages will be provided by this element.)
767     */
768    public GuidanceResponse setEvaluationMessage(Reference value) { 
769      this.evaluationMessage = value;
770      return this;
771    }
772
773    /**
774     * @return {@link #outputParameters} (The output parameters of the evaluation, if any. Many modules will result in the return of specific resources such as procedure or communication requests that are returned as part of the operation result. However, modules may define specific outputs that would be returned as the result of the evaluation, and these would be returned in this element.)
775     */
776    public Reference getOutputParameters() { 
777      if (this.outputParameters == null)
778        if (Configuration.errorOnAutoCreate())
779          throw new Error("Attempt to auto-create GuidanceResponse.outputParameters");
780        else if (Configuration.doAutoCreate())
781          this.outputParameters = new Reference(); // cc
782      return this.outputParameters;
783    }
784
785    public boolean hasOutputParameters() { 
786      return this.outputParameters != null && !this.outputParameters.isEmpty();
787    }
788
789    /**
790     * @param value {@link #outputParameters} (The output parameters of the evaluation, if any. Many modules will result in the return of specific resources such as procedure or communication requests that are returned as part of the operation result. However, modules may define specific outputs that would be returned as the result of the evaluation, and these would be returned in this element.)
791     */
792    public GuidanceResponse setOutputParameters(Reference value) { 
793      this.outputParameters = value;
794      return this;
795    }
796
797    /**
798     * @return {@link #result} (The actions, if any, produced by the evaluation of the artifact.)
799     */
800    public List<Reference> getResult() { 
801      if (this.result == null)
802        this.result = new ArrayList<Reference>();
803      return this.result;
804    }
805
806    /**
807     * @return Returns a reference to <code>this</code> for easy method chaining
808     */
809    public GuidanceResponse setResult(List<Reference> theResult) { 
810      this.result = theResult;
811      return this;
812    }
813
814    public boolean hasResult() { 
815      if (this.result == null)
816        return false;
817      for (Reference item : this.result)
818        if (!item.isEmpty())
819          return true;
820      return false;
821    }
822
823    public Reference addResult() { //3
824      Reference t = new Reference();
825      if (this.result == null)
826        this.result = new ArrayList<Reference>();
827      this.result.add(t);
828      return t;
829    }
830
831    public GuidanceResponse addResult(Reference t) { //3
832      if (t == null)
833        return this;
834      if (this.result == null)
835        this.result = new ArrayList<Reference>();
836      this.result.add(t);
837      return this;
838    }
839
840    /**
841     * @return The first repetition of repeating field {@link #result}, creating it if it does not already exist {3}
842     */
843    public Reference getResultFirstRep() { 
844      if (getResult().isEmpty()) {
845        addResult();
846      }
847      return getResult().get(0);
848    }
849
850    /**
851     * @return {@link #dataRequirement} (If the evaluation could not be completed due to lack of information, or additional information would potentially result in a more accurate response, this element will a description of the data required in order to proceed with the evaluation. A subsequent request to the service should include this data.)
852     */
853    public List<DataRequirement> getDataRequirement() { 
854      if (this.dataRequirement == null)
855        this.dataRequirement = new ArrayList<DataRequirement>();
856      return this.dataRequirement;
857    }
858
859    /**
860     * @return Returns a reference to <code>this</code> for easy method chaining
861     */
862    public GuidanceResponse setDataRequirement(List<DataRequirement> theDataRequirement) { 
863      this.dataRequirement = theDataRequirement;
864      return this;
865    }
866
867    public boolean hasDataRequirement() { 
868      if (this.dataRequirement == null)
869        return false;
870      for (DataRequirement item : this.dataRequirement)
871        if (!item.isEmpty())
872          return true;
873      return false;
874    }
875
876    public DataRequirement addDataRequirement() { //3
877      DataRequirement t = new DataRequirement();
878      if (this.dataRequirement == null)
879        this.dataRequirement = new ArrayList<DataRequirement>();
880      this.dataRequirement.add(t);
881      return t;
882    }
883
884    public GuidanceResponse addDataRequirement(DataRequirement t) { //3
885      if (t == null)
886        return this;
887      if (this.dataRequirement == null)
888        this.dataRequirement = new ArrayList<DataRequirement>();
889      this.dataRequirement.add(t);
890      return this;
891    }
892
893    /**
894     * @return The first repetition of repeating field {@link #dataRequirement}, creating it if it does not already exist {3}
895     */
896    public DataRequirement getDataRequirementFirstRep() { 
897      if (getDataRequirement().isEmpty()) {
898        addDataRequirement();
899      }
900      return getDataRequirement().get(0);
901    }
902
903      protected void listChildren(List<Property> children) {
904        super.listChildren(children);
905        children.add(new Property("requestIdentifier", "Identifier", "The identifier of the request associated with this response. If an identifier was given as part of the request, it will be reproduced here to enable the requester to more easily identify the response in a multi-request scenario.", 0, 1, requestIdentifier));
906        children.add(new Property("identifier", "Identifier", "Allows a service to provide  unique, business identifiers for the response.", 0, java.lang.Integer.MAX_VALUE, identifier));
907        children.add(new Property("module[x]", "uri|canonical|CodeableConcept", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module));
908        children.add(new Property("status", "code", "The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information.", 0, 1, status));
909        children.add(new Property("subject", "Reference(Patient|Group)", "The patient for which the request was processed.", 0, 1, subject));
910        children.add(new Property("encounter", "Reference(Encounter)", "The encounter during which this response was created or to which the creation of this record is tightly associated.", 0, 1, encounter));
911        children.add(new Property("occurrenceDateTime", "dateTime", "Indicates when the guidance response was processed.", 0, 1, occurrenceDateTime));
912        children.add(new Property("performer", "Reference(Device)", "Provides a reference to the device that performed the guidance.", 0, 1, performer));
913        children.add(new Property("reason", "CodeableReference", "Describes the reason for the guidance response in coded or textual form, or Indicates the reason the request was initiated. This is typically provided as a parameter to the evaluation and echoed by the service, although for some use cases, such as subscription- or event-based scenarios, it may provide an indication of the cause for the response.", 0, java.lang.Integer.MAX_VALUE, reason));
914        children.add(new Property("note", "Annotation", "Provides a mechanism to communicate additional information about the response.", 0, java.lang.Integer.MAX_VALUE, note));
915        children.add(new Property("evaluationMessage", "Reference(OperationOutcome)", "Messages resulting from the evaluation of the artifact or artifacts. As part of evaluating the request, the engine may produce informational or warning messages. These messages will be provided by this element.", 0, 1, evaluationMessage));
916        children.add(new Property("outputParameters", "Reference(Parameters)", "The output parameters of the evaluation, if any. Many modules will result in the return of specific resources such as procedure or communication requests that are returned as part of the operation result. However, modules may define specific outputs that would be returned as the result of the evaluation, and these would be returned in this element.", 0, 1, outputParameters));
917        children.add(new Property("result", "Reference(Appointment|AppointmentResponse|CarePlan|Claim|CommunicationRequest|Contract|CoverageEligibilityRequest|DeviceRequest|EnrollmentRequest|ImmunizationRecommendation|MedicationRequest|NutritionOrder|RequestOrchestration|ServiceRequest|SupplyRequest|Task|VisionPrescription)", "The actions, if any, produced by the evaluation of the artifact.", 0, java.lang.Integer.MAX_VALUE, result));
918        children.add(new Property("dataRequirement", "DataRequirement", "If the evaluation could not be completed due to lack of information, or additional information would potentially result in a more accurate response, this element will a description of the data required in order to proceed with the evaluation. A subsequent request to the service should include this data.", 0, java.lang.Integer.MAX_VALUE, dataRequirement));
919      }
920
921      @Override
922      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
923        switch (_hash) {
924        case -354233192: /*requestIdentifier*/  return new Property("requestIdentifier", "Identifier", "The identifier of the request associated with this response. If an identifier was given as part of the request, it will be reproduced here to enable the requester to more easily identify the response in a multi-request scenario.", 0, 1, requestIdentifier);
925        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Allows a service to provide  unique, business identifiers for the response.", 0, java.lang.Integer.MAX_VALUE, identifier);
926        case -1552083308: /*module[x]*/  return new Property("module[x]", "uri|canonical|CodeableConcept", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module);
927        case -1068784020: /*module*/  return new Property("module[x]", "uri|canonical|CodeableConcept", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module);
928        case -1552089248: /*moduleUri*/  return new Property("module[x]", "uri", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module);
929        case -1153656856: /*moduleCanonical*/  return new Property("module[x]", "canonical", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module);
930        case -1157899371: /*moduleCodeableConcept*/  return new Property("module[x]", "CodeableConcept", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module);
931        case -892481550: /*status*/  return new Property("status", "code", "The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information.", 0, 1, status);
932        case -1867885268: /*subject*/  return new Property("subject", "Reference(Patient|Group)", "The patient for which the request was processed.", 0, 1, subject);
933        case 1524132147: /*encounter*/  return new Property("encounter", "Reference(Encounter)", "The encounter during which this response was created or to which the creation of this record is tightly associated.", 0, 1, encounter);
934        case -298443636: /*occurrenceDateTime*/  return new Property("occurrenceDateTime", "dateTime", "Indicates when the guidance response was processed.", 0, 1, occurrenceDateTime);
935        case 481140686: /*performer*/  return new Property("performer", "Reference(Device)", "Provides a reference to the device that performed the guidance.", 0, 1, performer);
936        case -934964668: /*reason*/  return new Property("reason", "CodeableReference", "Describes the reason for the guidance response in coded or textual form, or Indicates the reason the request was initiated. This is typically provided as a parameter to the evaluation and echoed by the service, although for some use cases, such as subscription- or event-based scenarios, it may provide an indication of the cause for the response.", 0, java.lang.Integer.MAX_VALUE, reason);
937        case 3387378: /*note*/  return new Property("note", "Annotation", "Provides a mechanism to communicate additional information about the response.", 0, java.lang.Integer.MAX_VALUE, note);
938        case 1081619755: /*evaluationMessage*/  return new Property("evaluationMessage", "Reference(OperationOutcome)", "Messages resulting from the evaluation of the artifact or artifacts. As part of evaluating the request, the engine may produce informational or warning messages. These messages will be provided by this element.", 0, 1, evaluationMessage);
939        case 525609419: /*outputParameters*/  return new Property("outputParameters", "Reference(Parameters)", "The output parameters of the evaluation, if any. Many modules will result in the return of specific resources such as procedure or communication requests that are returned as part of the operation result. However, modules may define specific outputs that would be returned as the result of the evaluation, and these would be returned in this element.", 0, 1, outputParameters);
940        case -934426595: /*result*/  return new Property("result", "Reference(Appointment|AppointmentResponse|CarePlan|Claim|CommunicationRequest|Contract|CoverageEligibilityRequest|DeviceRequest|EnrollmentRequest|ImmunizationRecommendation|MedicationRequest|NutritionOrder|RequestOrchestration|ServiceRequest|SupplyRequest|Task|VisionPrescription)", "The actions, if any, produced by the evaluation of the artifact.", 0, java.lang.Integer.MAX_VALUE, result);
941        case 629147193: /*dataRequirement*/  return new Property("dataRequirement", "DataRequirement", "If the evaluation could not be completed due to lack of information, or additional information would potentially result in a more accurate response, this element will a description of the data required in order to proceed with the evaluation. A subsequent request to the service should include this data.", 0, java.lang.Integer.MAX_VALUE, dataRequirement);
942        default: return super.getNamedProperty(_hash, _name, _checkValid);
943        }
944
945      }
946
947      @Override
948      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
949        switch (hash) {
950        case -354233192: /*requestIdentifier*/ return this.requestIdentifier == null ? new Base[0] : new Base[] {this.requestIdentifier}; // Identifier
951        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
952        case -1068784020: /*module*/ return this.module == null ? new Base[0] : new Base[] {this.module}; // DataType
953        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<GuidanceResponseStatus>
954        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
955        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
956        case -298443636: /*occurrenceDateTime*/ return this.occurrenceDateTime == null ? new Base[0] : new Base[] {this.occurrenceDateTime}; // DateTimeType
957        case 481140686: /*performer*/ return this.performer == null ? new Base[0] : new Base[] {this.performer}; // Reference
958        case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // CodeableReference
959        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
960        case 1081619755: /*evaluationMessage*/ return this.evaluationMessage == null ? new Base[0] : new Base[] {this.evaluationMessage}; // Reference
961        case 525609419: /*outputParameters*/ return this.outputParameters == null ? new Base[0] : new Base[] {this.outputParameters}; // Reference
962        case -934426595: /*result*/ return this.result == null ? new Base[0] : this.result.toArray(new Base[this.result.size()]); // Reference
963        case 629147193: /*dataRequirement*/ return this.dataRequirement == null ? new Base[0] : this.dataRequirement.toArray(new Base[this.dataRequirement.size()]); // DataRequirement
964        default: return super.getProperty(hash, name, checkValid);
965        }
966
967      }
968
969      @Override
970      public Base setProperty(int hash, String name, Base value) throws FHIRException {
971        switch (hash) {
972        case -354233192: // requestIdentifier
973          this.requestIdentifier = TypeConvertor.castToIdentifier(value); // Identifier
974          return value;
975        case -1618432855: // identifier
976          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
977          return value;
978        case -1068784020: // module
979          this.module = TypeConvertor.castToType(value); // DataType
980          return value;
981        case -892481550: // status
982          value = new GuidanceResponseStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
983          this.status = (Enumeration) value; // Enumeration<GuidanceResponseStatus>
984          return value;
985        case -1867885268: // subject
986          this.subject = TypeConvertor.castToReference(value); // Reference
987          return value;
988        case 1524132147: // encounter
989          this.encounter = TypeConvertor.castToReference(value); // Reference
990          return value;
991        case -298443636: // occurrenceDateTime
992          this.occurrenceDateTime = TypeConvertor.castToDateTime(value); // DateTimeType
993          return value;
994        case 481140686: // performer
995          this.performer = TypeConvertor.castToReference(value); // Reference
996          return value;
997        case -934964668: // reason
998          this.getReason().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference
999          return value;
1000        case 3387378: // note
1001          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
1002          return value;
1003        case 1081619755: // evaluationMessage
1004          this.evaluationMessage = TypeConvertor.castToReference(value); // Reference
1005          return value;
1006        case 525609419: // outputParameters
1007          this.outputParameters = TypeConvertor.castToReference(value); // Reference
1008          return value;
1009        case -934426595: // result
1010          this.getResult().add(TypeConvertor.castToReference(value)); // Reference
1011          return value;
1012        case 629147193: // dataRequirement
1013          this.getDataRequirement().add(TypeConvertor.castToDataRequirement(value)); // DataRequirement
1014          return value;
1015        default: return super.setProperty(hash, name, value);
1016        }
1017
1018      }
1019
1020      @Override
1021      public Base setProperty(String name, Base value) throws FHIRException {
1022        if (name.equals("requestIdentifier")) {
1023          this.requestIdentifier = TypeConvertor.castToIdentifier(value); // Identifier
1024        } else if (name.equals("identifier")) {
1025          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1026        } else if (name.equals("module[x]")) {
1027          this.module = TypeConvertor.castToType(value); // DataType
1028        } else if (name.equals("status")) {
1029          value = new GuidanceResponseStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1030          this.status = (Enumeration) value; // Enumeration<GuidanceResponseStatus>
1031        } else if (name.equals("subject")) {
1032          this.subject = TypeConvertor.castToReference(value); // Reference
1033        } else if (name.equals("encounter")) {
1034          this.encounter = TypeConvertor.castToReference(value); // Reference
1035        } else if (name.equals("occurrenceDateTime")) {
1036          this.occurrenceDateTime = TypeConvertor.castToDateTime(value); // DateTimeType
1037        } else if (name.equals("performer")) {
1038          this.performer = TypeConvertor.castToReference(value); // Reference
1039        } else if (name.equals("reason")) {
1040          this.getReason().add(TypeConvertor.castToCodeableReference(value));
1041        } else if (name.equals("note")) {
1042          this.getNote().add(TypeConvertor.castToAnnotation(value));
1043        } else if (name.equals("evaluationMessage")) {
1044          this.evaluationMessage = TypeConvertor.castToReference(value); // Reference
1045        } else if (name.equals("outputParameters")) {
1046          this.outputParameters = TypeConvertor.castToReference(value); // Reference
1047        } else if (name.equals("result")) {
1048          this.getResult().add(TypeConvertor.castToReference(value));
1049        } else if (name.equals("dataRequirement")) {
1050          this.getDataRequirement().add(TypeConvertor.castToDataRequirement(value));
1051        } else
1052          return super.setProperty(name, value);
1053        return value;
1054      }
1055
1056      @Override
1057      public Base makeProperty(int hash, String name) throws FHIRException {
1058        switch (hash) {
1059        case -354233192:  return getRequestIdentifier();
1060        case -1618432855:  return addIdentifier(); 
1061        case -1552083308:  return getModule();
1062        case -1068784020:  return getModule();
1063        case -892481550:  return getStatusElement();
1064        case -1867885268:  return getSubject();
1065        case 1524132147:  return getEncounter();
1066        case -298443636:  return getOccurrenceDateTimeElement();
1067        case 481140686:  return getPerformer();
1068        case -934964668:  return addReason(); 
1069        case 3387378:  return addNote(); 
1070        case 1081619755:  return getEvaluationMessage();
1071        case 525609419:  return getOutputParameters();
1072        case -934426595:  return addResult(); 
1073        case 629147193:  return addDataRequirement(); 
1074        default: return super.makeProperty(hash, name);
1075        }
1076
1077      }
1078
1079      @Override
1080      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1081        switch (hash) {
1082        case -354233192: /*requestIdentifier*/ return new String[] {"Identifier"};
1083        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1084        case -1068784020: /*module*/ return new String[] {"uri", "canonical", "CodeableConcept"};
1085        case -892481550: /*status*/ return new String[] {"code"};
1086        case -1867885268: /*subject*/ return new String[] {"Reference"};
1087        case 1524132147: /*encounter*/ return new String[] {"Reference"};
1088        case -298443636: /*occurrenceDateTime*/ return new String[] {"dateTime"};
1089        case 481140686: /*performer*/ return new String[] {"Reference"};
1090        case -934964668: /*reason*/ return new String[] {"CodeableReference"};
1091        case 3387378: /*note*/ return new String[] {"Annotation"};
1092        case 1081619755: /*evaluationMessage*/ return new String[] {"Reference"};
1093        case 525609419: /*outputParameters*/ return new String[] {"Reference"};
1094        case -934426595: /*result*/ return new String[] {"Reference"};
1095        case 629147193: /*dataRequirement*/ return new String[] {"DataRequirement"};
1096        default: return super.getTypesForProperty(hash, name);
1097        }
1098
1099      }
1100
1101      @Override
1102      public Base addChild(String name) throws FHIRException {
1103        if (name.equals("requestIdentifier")) {
1104          this.requestIdentifier = new Identifier();
1105          return this.requestIdentifier;
1106        }
1107        else if (name.equals("identifier")) {
1108          return addIdentifier();
1109        }
1110        else if (name.equals("moduleUri")) {
1111          this.module = new UriType();
1112          return this.module;
1113        }
1114        else if (name.equals("moduleCanonical")) {
1115          this.module = new CanonicalType();
1116          return this.module;
1117        }
1118        else if (name.equals("moduleCodeableConcept")) {
1119          this.module = new CodeableConcept();
1120          return this.module;
1121        }
1122        else if (name.equals("status")) {
1123          throw new FHIRException("Cannot call addChild on a singleton property GuidanceResponse.status");
1124        }
1125        else if (name.equals("subject")) {
1126          this.subject = new Reference();
1127          return this.subject;
1128        }
1129        else if (name.equals("encounter")) {
1130          this.encounter = new Reference();
1131          return this.encounter;
1132        }
1133        else if (name.equals("occurrenceDateTime")) {
1134          throw new FHIRException("Cannot call addChild on a singleton property GuidanceResponse.occurrenceDateTime");
1135        }
1136        else if (name.equals("performer")) {
1137          this.performer = new Reference();
1138          return this.performer;
1139        }
1140        else if (name.equals("reason")) {
1141          return addReason();
1142        }
1143        else if (name.equals("note")) {
1144          return addNote();
1145        }
1146        else if (name.equals("evaluationMessage")) {
1147          this.evaluationMessage = new Reference();
1148          return this.evaluationMessage;
1149        }
1150        else if (name.equals("outputParameters")) {
1151          this.outputParameters = new Reference();
1152          return this.outputParameters;
1153        }
1154        else if (name.equals("result")) {
1155          return addResult();
1156        }
1157        else if (name.equals("dataRequirement")) {
1158          return addDataRequirement();
1159        }
1160        else
1161          return super.addChild(name);
1162      }
1163
1164  public String fhirType() {
1165    return "GuidanceResponse";
1166
1167  }
1168
1169      public GuidanceResponse copy() {
1170        GuidanceResponse dst = new GuidanceResponse();
1171        copyValues(dst);
1172        return dst;
1173      }
1174
1175      public void copyValues(GuidanceResponse dst) {
1176        super.copyValues(dst);
1177        dst.requestIdentifier = requestIdentifier == null ? null : requestIdentifier.copy();
1178        if (identifier != null) {
1179          dst.identifier = new ArrayList<Identifier>();
1180          for (Identifier i : identifier)
1181            dst.identifier.add(i.copy());
1182        };
1183        dst.module = module == null ? null : module.copy();
1184        dst.status = status == null ? null : status.copy();
1185        dst.subject = subject == null ? null : subject.copy();
1186        dst.encounter = encounter == null ? null : encounter.copy();
1187        dst.occurrenceDateTime = occurrenceDateTime == null ? null : occurrenceDateTime.copy();
1188        dst.performer = performer == null ? null : performer.copy();
1189        if (reason != null) {
1190          dst.reason = new ArrayList<CodeableReference>();
1191          for (CodeableReference i : reason)
1192            dst.reason.add(i.copy());
1193        };
1194        if (note != null) {
1195          dst.note = new ArrayList<Annotation>();
1196          for (Annotation i : note)
1197            dst.note.add(i.copy());
1198        };
1199        dst.evaluationMessage = evaluationMessage == null ? null : evaluationMessage.copy();
1200        dst.outputParameters = outputParameters == null ? null : outputParameters.copy();
1201        if (result != null) {
1202          dst.result = new ArrayList<Reference>();
1203          for (Reference i : result)
1204            dst.result.add(i.copy());
1205        };
1206        if (dataRequirement != null) {
1207          dst.dataRequirement = new ArrayList<DataRequirement>();
1208          for (DataRequirement i : dataRequirement)
1209            dst.dataRequirement.add(i.copy());
1210        };
1211      }
1212
1213      protected GuidanceResponse typedCopy() {
1214        return copy();
1215      }
1216
1217      @Override
1218      public boolean equalsDeep(Base other_) {
1219        if (!super.equalsDeep(other_))
1220          return false;
1221        if (!(other_ instanceof GuidanceResponse))
1222          return false;
1223        GuidanceResponse o = (GuidanceResponse) other_;
1224        return compareDeep(requestIdentifier, o.requestIdentifier, true) && compareDeep(identifier, o.identifier, true)
1225           && compareDeep(module, o.module, true) && compareDeep(status, o.status, true) && compareDeep(subject, o.subject, true)
1226           && compareDeep(encounter, o.encounter, true) && compareDeep(occurrenceDateTime, o.occurrenceDateTime, true)
1227           && compareDeep(performer, o.performer, true) && compareDeep(reason, o.reason, true) && compareDeep(note, o.note, true)
1228           && compareDeep(evaluationMessage, o.evaluationMessage, true) && compareDeep(outputParameters, o.outputParameters, true)
1229           && compareDeep(result, o.result, true) && compareDeep(dataRequirement, o.dataRequirement, true)
1230          ;
1231      }
1232
1233      @Override
1234      public boolean equalsShallow(Base other_) {
1235        if (!super.equalsShallow(other_))
1236          return false;
1237        if (!(other_ instanceof GuidanceResponse))
1238          return false;
1239        GuidanceResponse o = (GuidanceResponse) other_;
1240        return compareValues(status, o.status, true) && compareValues(occurrenceDateTime, o.occurrenceDateTime, true)
1241          ;
1242      }
1243
1244      public boolean isEmpty() {
1245        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(requestIdentifier, identifier
1246          , module, status, subject, encounter, occurrenceDateTime, performer, reason, note
1247          , evaluationMessage, outputParameters, result, dataRequirement);
1248      }
1249
1250  @Override
1251  public ResourceType getResourceType() {
1252    return ResourceType.GuidanceResponse;
1253   }
1254
1255 /**
1256   * Search parameter: <b>request</b>
1257   * <p>
1258   * Description: <b>The identifier of the request associated with the response</b><br>
1259   * Type: <b>token</b><br>
1260   * Path: <b>GuidanceResponse.requestIdentifier</b><br>
1261   * </p>
1262   */
1263  @SearchParamDefinition(name="request", path="GuidanceResponse.requestIdentifier", description="The identifier of the request associated with the response", type="token" )
1264  public static final String SP_REQUEST = "request";
1265 /**
1266   * <b>Fluent Client</b> search parameter constant for <b>request</b>
1267   * <p>
1268   * Description: <b>The identifier of the request associated with the response</b><br>
1269   * Type: <b>token</b><br>
1270   * Path: <b>GuidanceResponse.requestIdentifier</b><br>
1271   * </p>
1272   */
1273  public static final ca.uhn.fhir.rest.gclient.TokenClientParam REQUEST = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REQUEST);
1274
1275 /**
1276   * Search parameter: <b>status</b>
1277   * <p>
1278   * Description: <b>The status of the guidance response</b><br>
1279   * Type: <b>token</b><br>
1280   * Path: <b>GuidanceResponse.status</b><br>
1281   * </p>
1282   */
1283  @SearchParamDefinition(name="status", path="GuidanceResponse.status", description="The status of the guidance response", type="token" )
1284  public static final String SP_STATUS = "status";
1285 /**
1286   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1287   * <p>
1288   * Description: <b>The status of the guidance response</b><br>
1289   * Type: <b>token</b><br>
1290   * Path: <b>GuidanceResponse.status</b><br>
1291   * </p>
1292   */
1293  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1294
1295 /**
1296   * Search parameter: <b>subject</b>
1297   * <p>
1298   * Description: <b>The subject that the guidance response is about</b><br>
1299   * Type: <b>reference</b><br>
1300   * Path: <b>GuidanceResponse.subject</b><br>
1301   * </p>
1302   */
1303  @SearchParamDefinition(name="subject", path="GuidanceResponse.subject", description="The subject that the guidance response is about", type="reference", target={Group.class, Patient.class } )
1304  public static final String SP_SUBJECT = "subject";
1305 /**
1306   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
1307   * <p>
1308   * Description: <b>The subject that the guidance response is about</b><br>
1309   * Type: <b>reference</b><br>
1310   * Path: <b>GuidanceResponse.subject</b><br>
1311   * </p>
1312   */
1313  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
1314
1315/**
1316   * Constant for fluent queries to be used to add include statements. Specifies
1317   * the path value of "<b>GuidanceResponse:subject</b>".
1318   */
1319  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("GuidanceResponse:subject").toLocked();
1320
1321 /**
1322   * Search parameter: <b>identifier</b>
1323   * <p>
1324   * Description: <b>Multiple Resources: 
1325
1326* [Account](account.html): Account number
1327* [AdverseEvent](adverseevent.html): Business identifier for the event
1328* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1329* [Appointment](appointment.html): An Identifier of the Appointment
1330* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1331* [Basic](basic.html): Business identifier
1332* [BodyStructure](bodystructure.html): Bodystructure identifier
1333* [CarePlan](careplan.html): External Ids for this plan
1334* [CareTeam](careteam.html): External Ids for this team
1335* [ChargeItem](chargeitem.html): Business Identifier for item
1336* [Claim](claim.html): The primary identifier of the financial resource
1337* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1338* [ClinicalImpression](clinicalimpression.html): Business identifier
1339* [Communication](communication.html): Unique identifier
1340* [CommunicationRequest](communicationrequest.html): Unique identifier
1341* [Composition](composition.html): Version-independent identifier for the Composition
1342* [Condition](condition.html): A unique identifier of the condition record
1343* [Consent](consent.html): Identifier for this record (external references)
1344* [Contract](contract.html): The identity of the contract
1345* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1346* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1347* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1348* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1349* [DeviceRequest](devicerequest.html): Business identifier for request/order
1350* [DeviceUsage](deviceusage.html): Search by identifier
1351* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1352* [DocumentReference](documentreference.html): Identifier of the attachment binary
1353* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1354* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1355* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1356* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1357* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1358* [Flag](flag.html): Business identifier
1359* [Goal](goal.html): External Ids for this goal
1360* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1361* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1362* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1363* [Immunization](immunization.html): Business identifier
1364* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1365* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1366* [Invoice](invoice.html): Business Identifier for item
1367* [List](list.html): Business identifier
1368* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1369* [Medication](medication.html): Returns medications with this external identifier
1370* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1371* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1372* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1373* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1374* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1375* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1376* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1377* [Observation](observation.html): The unique id for a particular observation
1378* [Person](person.html): A person Identifier
1379* [Procedure](procedure.html): A unique identifier for a procedure
1380* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1381* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1382* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1383* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1384* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1385* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1386* [Specimen](specimen.html): The unique identifier associated with the specimen
1387* [SupplyDelivery](supplydelivery.html): External identifier
1388* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1389* [Task](task.html): Search for a task instance by its business identifier
1390* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1391</b><br>
1392   * Type: <b>token</b><br>
1393   * 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>
1394   * </p>
1395   */
1396  @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" )
1397  public static final String SP_IDENTIFIER = "identifier";
1398 /**
1399   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1400   * <p>
1401   * Description: <b>Multiple Resources: 
1402
1403* [Account](account.html): Account number
1404* [AdverseEvent](adverseevent.html): Business identifier for the event
1405* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1406* [Appointment](appointment.html): An Identifier of the Appointment
1407* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1408* [Basic](basic.html): Business identifier
1409* [BodyStructure](bodystructure.html): Bodystructure identifier
1410* [CarePlan](careplan.html): External Ids for this plan
1411* [CareTeam](careteam.html): External Ids for this team
1412* [ChargeItem](chargeitem.html): Business Identifier for item
1413* [Claim](claim.html): The primary identifier of the financial resource
1414* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1415* [ClinicalImpression](clinicalimpression.html): Business identifier
1416* [Communication](communication.html): Unique identifier
1417* [CommunicationRequest](communicationrequest.html): Unique identifier
1418* [Composition](composition.html): Version-independent identifier for the Composition
1419* [Condition](condition.html): A unique identifier of the condition record
1420* [Consent](consent.html): Identifier for this record (external references)
1421* [Contract](contract.html): The identity of the contract
1422* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1423* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1424* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1425* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1426* [DeviceRequest](devicerequest.html): Business identifier for request/order
1427* [DeviceUsage](deviceusage.html): Search by identifier
1428* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1429* [DocumentReference](documentreference.html): Identifier of the attachment binary
1430* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1431* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1432* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1433* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1434* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1435* [Flag](flag.html): Business identifier
1436* [Goal](goal.html): External Ids for this goal
1437* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1438* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1439* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1440* [Immunization](immunization.html): Business identifier
1441* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1442* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1443* [Invoice](invoice.html): Business Identifier for item
1444* [List](list.html): Business identifier
1445* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1446* [Medication](medication.html): Returns medications with this external identifier
1447* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1448* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1449* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1450* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1451* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1452* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1453* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1454* [Observation](observation.html): The unique id for a particular observation
1455* [Person](person.html): A person Identifier
1456* [Procedure](procedure.html): A unique identifier for a procedure
1457* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1458* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1459* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1460* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1461* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1462* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1463* [Specimen](specimen.html): The unique identifier associated with the specimen
1464* [SupplyDelivery](supplydelivery.html): External identifier
1465* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1466* [Task](task.html): Search for a task instance by its business identifier
1467* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1468</b><br>
1469   * Type: <b>token</b><br>
1470   * 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>
1471   * </p>
1472   */
1473  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1474
1475 /**
1476   * Search parameter: <b>patient</b>
1477   * <p>
1478   * Description: <b>Multiple Resources: 
1479
1480* [Account](account.html): The entity that caused the expenses
1481* [AdverseEvent](adverseevent.html): Subject impacted by event
1482* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1483* [Appointment](appointment.html): One of the individuals of the appointment is this patient
1484* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
1485* [AuditEvent](auditevent.html): Where the activity involved patient data
1486* [Basic](basic.html): Identifies the focus of this resource
1487* [BodyStructure](bodystructure.html): Who this is about
1488* [CarePlan](careplan.html): Who the care plan is for
1489* [CareTeam](careteam.html): Who care team is for
1490* [ChargeItem](chargeitem.html): Individual service was done for/to
1491* [Claim](claim.html): Patient receiving the products or services
1492* [ClaimResponse](claimresponse.html): The subject of care
1493* [ClinicalImpression](clinicalimpression.html): Patient assessed
1494* [Communication](communication.html): Focus of message
1495* [CommunicationRequest](communicationrequest.html): Focus of message
1496* [Composition](composition.html): Who and/or what the composition is about
1497* [Condition](condition.html): Who has the condition?
1498* [Consent](consent.html): Who the consent applies to
1499* [Contract](contract.html): The identity of the subject of the contract (if a patient)
1500* [Coverage](coverage.html): Retrieve coverages for a patient
1501* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
1502* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
1503* [DetectedIssue](detectedissue.html): Associated patient
1504* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1505* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1506* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1507* [DocumentReference](documentreference.html): Who/what is the subject of the document
1508* [Encounter](encounter.html): The patient present at the encounter
1509* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
1510* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1511* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
1512* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1513* [Flag](flag.html): The identity of a subject to list flags for
1514* [Goal](goal.html): Who this goal is intended for
1515* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
1516* [ImagingSelection](imagingselection.html): Who the study is about
1517* [ImagingStudy](imagingstudy.html): Who the study is about
1518* [Immunization](immunization.html): The patient for the vaccination record
1519* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
1520* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
1521* [Invoice](invoice.html): Recipient(s) of goods and services
1522* [List](list.html): If all resources have the same subject
1523* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
1524* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1525* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1526* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1527* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
1528* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
1529* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
1530* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
1531* [Observation](observation.html): The subject that the observation is about (if patient)
1532* [Person](person.html): The Person links to this Patient
1533* [Procedure](procedure.html): Search by subject - a patient
1534* [Provenance](provenance.html): Where the activity involved patient data
1535* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
1536* [RelatedPerson](relatedperson.html): The patient this related person is related to
1537* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
1538* [ResearchSubject](researchsubject.html): Who or what is part of study
1539* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1540* [ServiceRequest](servicerequest.html): Search by subject - a patient
1541* [Specimen](specimen.html): The patient the specimen comes from
1542* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1543* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
1544* [Task](task.html): Search by patient
1545* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1546</b><br>
1547   * Type: <b>reference</b><br>
1548   * 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>
1549   * </p>
1550   */
1551  @SearchParamDefinition(name="patient", path="Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [Account](account.html): The entity that caused the expenses\r\n* [AdverseEvent](adverseevent.html): Subject impacted by event\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [Appointment](appointment.html): One of the individuals of the appointment is this patient\r\n* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient\r\n* [AuditEvent](auditevent.html): Where the activity involved patient data\r\n* [Basic](basic.html): Identifies the focus of this resource\r\n* [BodyStructure](bodystructure.html): Who this is about\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ChargeItem](chargeitem.html): Individual service was done for/to\r\n* [Claim](claim.html): Patient receiving the products or services\r\n* [ClaimResponse](claimresponse.html): The subject of care\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Communication](communication.html): Focus of message\r\n* [CommunicationRequest](communicationrequest.html): Focus of message\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [Contract](contract.html): The identity of the subject of the contract (if a patient)\r\n* [Coverage](coverage.html): Retrieve coverages for a patient\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results\r\n* [ImagingSelection](imagingselection.html): Who the study is about\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for\r\n* [Invoice](invoice.html): Recipient(s) of goods and services\r\n* [List](list.html): If all resources have the same subject\r\n* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.\r\n* [MolecularSequence](molecularsequence.html): The subject that the sequence is about\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Person](person.html): The Person links to this Patient\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [Provenance](provenance.html): Where the activity involved patient data\r\n* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response\r\n* [RelatedPerson](relatedperson.html): The patient this related person is related to\r\n* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations\r\n* [ResearchSubject](researchsubject.html): Who or what is part of study\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [Specimen](specimen.html): The patient the specimen comes from\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined\r\n* [Task](task.html): Search by patient\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Patient.class } )
1552  public static final String SP_PATIENT = "patient";
1553 /**
1554   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1555   * <p>
1556   * Description: <b>Multiple Resources: 
1557
1558* [Account](account.html): The entity that caused the expenses
1559* [AdverseEvent](adverseevent.html): Subject impacted by event
1560* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1561* [Appointment](appointment.html): One of the individuals of the appointment is this patient
1562* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
1563* [AuditEvent](auditevent.html): Where the activity involved patient data
1564* [Basic](basic.html): Identifies the focus of this resource
1565* [BodyStructure](bodystructure.html): Who this is about
1566* [CarePlan](careplan.html): Who the care plan is for
1567* [CareTeam](careteam.html): Who care team is for
1568* [ChargeItem](chargeitem.html): Individual service was done for/to
1569* [Claim](claim.html): Patient receiving the products or services
1570* [ClaimResponse](claimresponse.html): The subject of care
1571* [ClinicalImpression](clinicalimpression.html): Patient assessed
1572* [Communication](communication.html): Focus of message
1573* [CommunicationRequest](communicationrequest.html): Focus of message
1574* [Composition](composition.html): Who and/or what the composition is about
1575* [Condition](condition.html): Who has the condition?
1576* [Consent](consent.html): Who the consent applies to
1577* [Contract](contract.html): The identity of the subject of the contract (if a patient)
1578* [Coverage](coverage.html): Retrieve coverages for a patient
1579* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
1580* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
1581* [DetectedIssue](detectedissue.html): Associated patient
1582* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1583* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1584* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1585* [DocumentReference](documentreference.html): Who/what is the subject of the document
1586* [Encounter](encounter.html): The patient present at the encounter
1587* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
1588* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1589* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
1590* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1591* [Flag](flag.html): The identity of a subject to list flags for
1592* [Goal](goal.html): Who this goal is intended for
1593* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
1594* [ImagingSelection](imagingselection.html): Who the study is about
1595* [ImagingStudy](imagingstudy.html): Who the study is about
1596* [Immunization](immunization.html): The patient for the vaccination record
1597* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
1598* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
1599* [Invoice](invoice.html): Recipient(s) of goods and services
1600* [List](list.html): If all resources have the same subject
1601* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
1602* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1603* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1604* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1605* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
1606* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
1607* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
1608* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
1609* [Observation](observation.html): The subject that the observation is about (if patient)
1610* [Person](person.html): The Person links to this Patient
1611* [Procedure](procedure.html): Search by subject - a patient
1612* [Provenance](provenance.html): Where the activity involved patient data
1613* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
1614* [RelatedPerson](relatedperson.html): The patient this related person is related to
1615* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
1616* [ResearchSubject](researchsubject.html): Who or what is part of study
1617* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1618* [ServiceRequest](servicerequest.html): Search by subject - a patient
1619* [Specimen](specimen.html): The patient the specimen comes from
1620* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1621* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
1622* [Task](task.html): Search by patient
1623* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1624</b><br>
1625   * Type: <b>reference</b><br>
1626   * 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>
1627   * </p>
1628   */
1629  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1630
1631/**
1632   * Constant for fluent queries to be used to add include statements. Specifies
1633   * the path value of "<b>GuidanceResponse:patient</b>".
1634   */
1635  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("GuidanceResponse:patient").toLocked();
1636
1637
1638}
1639