001package org.hl7.fhir.r4.model;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006  
007  Redistribution and use in source and binary forms, with or without modification, 
008  are permitted provided that the following conditions are met:
009  
010   * Redistributions of source code must retain the above copyright notice, this 
011     list of conditions and the following disclaimer.
012   * Redistributions in binary form must reproduce the above copyright notice, 
013     this list of conditions and the following disclaimer in the documentation 
014     and/or other materials provided with the distribution.
015   * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018  
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
028  POSSIBILITY OF SUCH DAMAGE.
029  
030*/
031
032// Generated on Thu, Sep 13, 2018 09:04-0400 for FHIR v3.5.0
033
034import java.util.*;
035
036import org.hl7.fhir.utilities.Utilities;
037import ca.uhn.fhir.model.api.annotation.ResourceDef;
038import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
039import ca.uhn.fhir.model.api.annotation.Child;
040import ca.uhn.fhir.model.api.annotation.ChildOrder;
041import ca.uhn.fhir.model.api.annotation.Description;
042import ca.uhn.fhir.model.api.annotation.Block;
043import org.hl7.fhir.instance.model.api.*;
044import org.hl7.fhir.exceptions.FHIRException;
045/**
046 * 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.
047 */
048@ResourceDef(name="GuidanceResponse", profile="http://hl7.org/fhir/StructureDefinition/GuidanceResponse")
049public class GuidanceResponse extends DomainResource {
050
051    public enum GuidanceResponseStatus {
052        /**
053         * The request was processed successfully.
054         */
055        SUCCESS, 
056        /**
057         * The request was processed successfully, but more data may result in a more complete evaluation.
058         */
059        DATAREQUESTED, 
060        /**
061         * The request was processed, but more data is required to complete the evaluation.
062         */
063        DATAREQUIRED, 
064        /**
065         * The request is currently being processed.
066         */
067        INPROGRESS, 
068        /**
069         * The request was not processed successfully.
070         */
071        FAILURE, 
072        /**
073         * The response was entered in error.
074         */
075        ENTEREDINERROR, 
076        /**
077         * added to help the parsers with the generic types
078         */
079        NULL;
080        public static GuidanceResponseStatus fromCode(String codeString) throws FHIRException {
081            if (codeString == null || "".equals(codeString))
082                return null;
083        if ("success".equals(codeString))
084          return SUCCESS;
085        if ("data-requested".equals(codeString))
086          return DATAREQUESTED;
087        if ("data-required".equals(codeString))
088          return DATAREQUIRED;
089        if ("in-progress".equals(codeString))
090          return INPROGRESS;
091        if ("failure".equals(codeString))
092          return FAILURE;
093        if ("entered-in-error".equals(codeString))
094          return ENTEREDINERROR;
095        if (Configuration.isAcceptInvalidEnums())
096          return null;
097        else
098          throw new FHIRException("Unknown GuidanceResponseStatus code '"+codeString+"'");
099        }
100        public String toCode() {
101          switch (this) {
102            case SUCCESS: return "success";
103            case DATAREQUESTED: return "data-requested";
104            case DATAREQUIRED: return "data-required";
105            case INPROGRESS: return "in-progress";
106            case FAILURE: return "failure";
107            case ENTEREDINERROR: return "entered-in-error";
108            default: return "?";
109          }
110        }
111        public String getSystem() {
112          switch (this) {
113            case SUCCESS: return "http://hl7.org/fhir/guidance-response-status";
114            case DATAREQUESTED: return "http://hl7.org/fhir/guidance-response-status";
115            case DATAREQUIRED: return "http://hl7.org/fhir/guidance-response-status";
116            case INPROGRESS: return "http://hl7.org/fhir/guidance-response-status";
117            case FAILURE: return "http://hl7.org/fhir/guidance-response-status";
118            case ENTEREDINERROR: return "http://hl7.org/fhir/guidance-response-status";
119            default: return "?";
120          }
121        }
122        public String getDefinition() {
123          switch (this) {
124            case SUCCESS: return "The request was processed successfully.";
125            case DATAREQUESTED: return "The request was processed successfully, but more data may result in a more complete evaluation.";
126            case DATAREQUIRED: return "The request was processed, but more data is required to complete the evaluation.";
127            case INPROGRESS: return "The request is currently being processed.";
128            case FAILURE: return "The request was not processed successfully.";
129            case ENTEREDINERROR: return "The response was entered in error.";
130            default: return "?";
131          }
132        }
133        public String getDisplay() {
134          switch (this) {
135            case SUCCESS: return "Success";
136            case DATAREQUESTED: return "Data Requested";
137            case DATAREQUIRED: return "Data Required";
138            case INPROGRESS: return "In Progress";
139            case FAILURE: return "Failure";
140            case ENTEREDINERROR: return "Entered In Error";
141            default: return "?";
142          }
143        }
144    }
145
146  public static class GuidanceResponseStatusEnumFactory implements EnumFactory<GuidanceResponseStatus> {
147    public GuidanceResponseStatus fromCode(String codeString) throws IllegalArgumentException {
148      if (codeString == null || "".equals(codeString))
149            if (codeString == null || "".equals(codeString))
150                return null;
151        if ("success".equals(codeString))
152          return GuidanceResponseStatus.SUCCESS;
153        if ("data-requested".equals(codeString))
154          return GuidanceResponseStatus.DATAREQUESTED;
155        if ("data-required".equals(codeString))
156          return GuidanceResponseStatus.DATAREQUIRED;
157        if ("in-progress".equals(codeString))
158          return GuidanceResponseStatus.INPROGRESS;
159        if ("failure".equals(codeString))
160          return GuidanceResponseStatus.FAILURE;
161        if ("entered-in-error".equals(codeString))
162          return GuidanceResponseStatus.ENTEREDINERROR;
163        throw new IllegalArgumentException("Unknown GuidanceResponseStatus code '"+codeString+"'");
164        }
165        public Enumeration<GuidanceResponseStatus> fromType(Base code) throws FHIRException {
166          if (code == null)
167            return null;
168          if (code.isEmpty())
169            return new Enumeration<GuidanceResponseStatus>(this);
170          String codeString = ((PrimitiveType) code).asStringValue();
171          if (codeString == null || "".equals(codeString))
172            return null;
173        if ("success".equals(codeString))
174          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.SUCCESS);
175        if ("data-requested".equals(codeString))
176          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.DATAREQUESTED);
177        if ("data-required".equals(codeString))
178          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.DATAREQUIRED);
179        if ("in-progress".equals(codeString))
180          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.INPROGRESS);
181        if ("failure".equals(codeString))
182          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.FAILURE);
183        if ("entered-in-error".equals(codeString))
184          return new Enumeration<GuidanceResponseStatus>(this, GuidanceResponseStatus.ENTEREDINERROR);
185        throw new FHIRException("Unknown GuidanceResponseStatus code '"+codeString+"'");
186        }
187    public String toCode(GuidanceResponseStatus code) {
188      if (code == GuidanceResponseStatus.SUCCESS)
189        return "success";
190      if (code == GuidanceResponseStatus.DATAREQUESTED)
191        return "data-requested";
192      if (code == GuidanceResponseStatus.DATAREQUIRED)
193        return "data-required";
194      if (code == GuidanceResponseStatus.INPROGRESS)
195        return "in-progress";
196      if (code == GuidanceResponseStatus.FAILURE)
197        return "failure";
198      if (code == GuidanceResponseStatus.ENTEREDINERROR)
199        return "entered-in-error";
200      return "?";
201      }
202    public String toSystem(GuidanceResponseStatus code) {
203      return code.getSystem();
204      }
205    }
206
207    /**
208     * 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.
209     */
210    @Child(name = "requestIdentifier", type = {Identifier.class}, order=0, min=0, max=1, modifier=false, summary=true)
211    @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." )
212    protected Identifier requestIdentifier;
213
214    /**
215     * Allows a service to provide  unique, business identifiers for the response.
216     */
217    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
218    @Description(shortDefinition="Business identifier", formalDefinition="Allows a service to provide  unique, business identifiers for the response." )
219    protected List<Identifier> identifier;
220
221    /**
222     * An identifier, CodeableConcept or canonical reference to the guidance that was requested.
223     */
224    @Child(name = "module", type = {UriType.class, CanonicalType.class, CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=true)
225    @Description(shortDefinition="What guidance was requested", formalDefinition="An identifier, CodeableConcept or canonical reference to the guidance that was requested." )
226    protected Type module;
227
228    /**
229     * 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.
230     */
231    @Child(name = "status", type = {CodeType.class}, order=3, min=1, max=1, modifier=true, summary=true)
232    @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." )
233    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guidance-response-status")
234    protected Enumeration<GuidanceResponseStatus> status;
235
236    /**
237     * The patient for which the request was processed.
238     */
239    @Child(name = "subject", type = {Patient.class, Group.class}, order=4, min=0, max=1, modifier=false, summary=false)
240    @Description(shortDefinition="Patient the request was performed for", formalDefinition="The patient for which the request was processed." )
241    protected Reference subject;
242
243    /**
244     * The actual object that is the target of the reference (The patient for which the request was processed.)
245     */
246    protected Resource subjectTarget;
247
248    /**
249     * Allows the context of the guidance response to be provided if available. In a service context, this would likely be unavailable.
250     */
251    @Child(name = "context", type = {Encounter.class, EpisodeOfCare.class}, order=5, min=0, max=1, modifier=false, summary=false)
252    @Description(shortDefinition="Encounter or Episode during which the response was returned", formalDefinition="Allows the context of the guidance response to be provided if available. In a service context, this would likely be unavailable." )
253    protected Reference context;
254
255    /**
256     * The actual object that is the target of the reference (Allows the context of the guidance response to be provided if available. In a service context, this would likely be unavailable.)
257     */
258    protected Resource contextTarget;
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     * The actual object that is the target of the reference (Provides a reference to the device that performed the guidance.)
276     */
277    protected Device performerTarget;
278
279    /**
280     * Describes the reason for the guidance response in coded or textual form.
281     */
282    @Child(name = "reasonCode", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
283    @Description(shortDefinition="Why guidance is needed", formalDefinition="Describes the reason for the guidance response in coded or textual form." )
284    protected List<CodeableConcept> reasonCode;
285
286    /**
287     * 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.
288     */
289    @Child(name = "reasonReference", type = {Condition.class, Observation.class, DiagnosticReport.class, DocumentReference.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
290    @Description(shortDefinition="Why guidance is needed", formalDefinition="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." )
291    protected List<Reference> reasonReference;
292    /**
293     * The actual objects that are the target of the reference (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.)
294     */
295    protected List<Resource> reasonReferenceTarget;
296
297
298    /**
299     * Provides a mechanism to communicate additional information about the response.
300     */
301    @Child(name = "note", type = {Annotation.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
302    @Description(shortDefinition="Additional notes about the response", formalDefinition="Provides a mechanism to communicate additional information about the response." )
303    protected List<Annotation> note;
304
305    /**
306     * 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.
307     */
308    @Child(name = "evaluationMessage", type = {OperationOutcome.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
309    @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." )
310    protected List<Reference> evaluationMessage;
311    /**
312     * The actual objects that are the target of the reference (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.)
313     */
314    protected List<OperationOutcome> evaluationMessageTarget;
315
316
317    /**
318     * 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.
319     */
320    @Child(name = "outputParameters", type = {Parameters.class}, order=12, min=0, max=1, modifier=false, summary=false)
321    @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." )
322    protected Reference outputParameters;
323
324    /**
325     * The actual object that is the target of the reference (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.)
326     */
327    protected Parameters outputParametersTarget;
328
329    /**
330     * The actions, if any, produced by the evaluation of the artifact.
331     */
332    @Child(name = "result", type = {CarePlan.class, RequestGroup.class}, order=13, min=0, max=1, modifier=false, summary=false)
333    @Description(shortDefinition="Proposed actions, if any", formalDefinition="The actions, if any, produced by the evaluation of the artifact." )
334    protected Reference result;
335
336    /**
337     * The actual object that is the target of the reference (The actions, if any, produced by the evaluation of the artifact.)
338     */
339    protected Resource resultTarget;
340
341    /**
342     * 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.
343     */
344    @Child(name = "dataRequirement", type = {DataRequirement.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
345    @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." )
346    protected List<DataRequirement> dataRequirement;
347
348    private static final long serialVersionUID = 879877474L;
349
350  /**
351   * Constructor
352   */
353    public GuidanceResponse() {
354      super();
355    }
356
357  /**
358   * Constructor
359   */
360    public GuidanceResponse(Type module, Enumeration<GuidanceResponseStatus> status) {
361      super();
362      this.module = module;
363      this.status = status;
364    }
365
366    /**
367     * @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.)
368     */
369    public Identifier getRequestIdentifier() { 
370      if (this.requestIdentifier == null)
371        if (Configuration.errorOnAutoCreate())
372          throw new Error("Attempt to auto-create GuidanceResponse.requestIdentifier");
373        else if (Configuration.doAutoCreate())
374          this.requestIdentifier = new Identifier(); // cc
375      return this.requestIdentifier;
376    }
377
378    public boolean hasRequestIdentifier() { 
379      return this.requestIdentifier != null && !this.requestIdentifier.isEmpty();
380    }
381
382    /**
383     * @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.)
384     */
385    public GuidanceResponse setRequestIdentifier(Identifier value) { 
386      this.requestIdentifier = value;
387      return this;
388    }
389
390    /**
391     * @return {@link #identifier} (Allows a service to provide  unique, business identifiers for the response.)
392     */
393    public List<Identifier> getIdentifier() { 
394      if (this.identifier == null)
395        this.identifier = new ArrayList<Identifier>();
396      return this.identifier;
397    }
398
399    /**
400     * @return Returns a reference to <code>this</code> for easy method chaining
401     */
402    public GuidanceResponse setIdentifier(List<Identifier> theIdentifier) { 
403      this.identifier = theIdentifier;
404      return this;
405    }
406
407    public boolean hasIdentifier() { 
408      if (this.identifier == null)
409        return false;
410      for (Identifier item : this.identifier)
411        if (!item.isEmpty())
412          return true;
413      return false;
414    }
415
416    public Identifier addIdentifier() { //3
417      Identifier t = new Identifier();
418      if (this.identifier == null)
419        this.identifier = new ArrayList<Identifier>();
420      this.identifier.add(t);
421      return t;
422    }
423
424    public GuidanceResponse addIdentifier(Identifier t) { //3
425      if (t == null)
426        return this;
427      if (this.identifier == null)
428        this.identifier = new ArrayList<Identifier>();
429      this.identifier.add(t);
430      return this;
431    }
432
433    /**
434     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
435     */
436    public Identifier getIdentifierFirstRep() { 
437      if (getIdentifier().isEmpty()) {
438        addIdentifier();
439      }
440      return getIdentifier().get(0);
441    }
442
443    /**
444     * @return {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
445     */
446    public Type getModule() { 
447      return this.module;
448    }
449
450    /**
451     * @return {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
452     */
453    public UriType getModuleUriType() throws FHIRException { 
454      if (this.module == null)
455        return null;
456      if (!(this.module instanceof UriType))
457        throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.module.getClass().getName()+" was encountered");
458      return (UriType) this.module;
459    }
460
461    public boolean hasModuleUriType() { 
462      return this != null && this.module instanceof UriType;
463    }
464
465    /**
466     * @return {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
467     */
468    public CanonicalType getModuleCanonicalType() throws FHIRException { 
469      if (this.module == null)
470        return null;
471      if (!(this.module instanceof CanonicalType))
472        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.module.getClass().getName()+" was encountered");
473      return (CanonicalType) this.module;
474    }
475
476    public boolean hasModuleCanonicalType() { 
477      return this != null && this.module instanceof CanonicalType;
478    }
479
480    /**
481     * @return {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
482     */
483    public CodeableConcept getModuleCodeableConcept() throws FHIRException { 
484      if (this.module == null)
485        return null;
486      if (!(this.module instanceof CodeableConcept))
487        throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.module.getClass().getName()+" was encountered");
488      return (CodeableConcept) this.module;
489    }
490
491    public boolean hasModuleCodeableConcept() { 
492      return this != null && this.module instanceof CodeableConcept;
493    }
494
495    public boolean hasModule() { 
496      return this.module != null && !this.module.isEmpty();
497    }
498
499    /**
500     * @param value {@link #module} (An identifier, CodeableConcept or canonical reference to the guidance that was requested.)
501     */
502    public GuidanceResponse setModule(Type value) { 
503      if (value != null && !(value instanceof UriType || value instanceof CanonicalType || value instanceof CodeableConcept))
504        throw new Error("Not the right type for GuidanceResponse.module[x]: "+value.fhirType());
505      this.module = value;
506      return this;
507    }
508
509    /**
510     * @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
511     */
512    public Enumeration<GuidanceResponseStatus> getStatusElement() { 
513      if (this.status == null)
514        if (Configuration.errorOnAutoCreate())
515          throw new Error("Attempt to auto-create GuidanceResponse.status");
516        else if (Configuration.doAutoCreate())
517          this.status = new Enumeration<GuidanceResponseStatus>(new GuidanceResponseStatusEnumFactory()); // bb
518      return this.status;
519    }
520
521    public boolean hasStatusElement() { 
522      return this.status != null && !this.status.isEmpty();
523    }
524
525    public boolean hasStatus() { 
526      return this.status != null && !this.status.isEmpty();
527    }
528
529    /**
530     * @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
531     */
532    public GuidanceResponse setStatusElement(Enumeration<GuidanceResponseStatus> value) { 
533      this.status = value;
534      return this;
535    }
536
537    /**
538     * @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.
539     */
540    public GuidanceResponseStatus getStatus() { 
541      return this.status == null ? null : this.status.getValue();
542    }
543
544    /**
545     * @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.
546     */
547    public GuidanceResponse setStatus(GuidanceResponseStatus value) { 
548        if (this.status == null)
549          this.status = new Enumeration<GuidanceResponseStatus>(new GuidanceResponseStatusEnumFactory());
550        this.status.setValue(value);
551      return this;
552    }
553
554    /**
555     * @return {@link #subject} (The patient for which the request was processed.)
556     */
557    public Reference getSubject() { 
558      if (this.subject == null)
559        if (Configuration.errorOnAutoCreate())
560          throw new Error("Attempt to auto-create GuidanceResponse.subject");
561        else if (Configuration.doAutoCreate())
562          this.subject = new Reference(); // cc
563      return this.subject;
564    }
565
566    public boolean hasSubject() { 
567      return this.subject != null && !this.subject.isEmpty();
568    }
569
570    /**
571     * @param value {@link #subject} (The patient for which the request was processed.)
572     */
573    public GuidanceResponse setSubject(Reference value) { 
574      this.subject = value;
575      return this;
576    }
577
578    /**
579     * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient for which the request was processed.)
580     */
581    public Resource getSubjectTarget() { 
582      return this.subjectTarget;
583    }
584
585    /**
586     * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient for which the request was processed.)
587     */
588    public GuidanceResponse setSubjectTarget(Resource value) { 
589      this.subjectTarget = value;
590      return this;
591    }
592
593    /**
594     * @return {@link #context} (Allows the context of the guidance response to be provided if available. In a service context, this would likely be unavailable.)
595     */
596    public Reference getContext() { 
597      if (this.context == null)
598        if (Configuration.errorOnAutoCreate())
599          throw new Error("Attempt to auto-create GuidanceResponse.context");
600        else if (Configuration.doAutoCreate())
601          this.context = new Reference(); // cc
602      return this.context;
603    }
604
605    public boolean hasContext() { 
606      return this.context != null && !this.context.isEmpty();
607    }
608
609    /**
610     * @param value {@link #context} (Allows the context of the guidance response to be provided if available. In a service context, this would likely be unavailable.)
611     */
612    public GuidanceResponse setContext(Reference value) { 
613      this.context = value;
614      return this;
615    }
616
617    /**
618     * @return {@link #context} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Allows the context of the guidance response to be provided if available. In a service context, this would likely be unavailable.)
619     */
620    public Resource getContextTarget() { 
621      return this.contextTarget;
622    }
623
624    /**
625     * @param value {@link #context} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Allows the context of the guidance response to be provided if available. In a service context, this would likely be unavailable.)
626     */
627    public GuidanceResponse setContextTarget(Resource value) { 
628      this.contextTarget = value;
629      return this;
630    }
631
632    /**
633     * @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
634     */
635    public DateTimeType getOccurrenceDateTimeElement() { 
636      if (this.occurrenceDateTime == null)
637        if (Configuration.errorOnAutoCreate())
638          throw new Error("Attempt to auto-create GuidanceResponse.occurrenceDateTime");
639        else if (Configuration.doAutoCreate())
640          this.occurrenceDateTime = new DateTimeType(); // bb
641      return this.occurrenceDateTime;
642    }
643
644    public boolean hasOccurrenceDateTimeElement() { 
645      return this.occurrenceDateTime != null && !this.occurrenceDateTime.isEmpty();
646    }
647
648    public boolean hasOccurrenceDateTime() { 
649      return this.occurrenceDateTime != null && !this.occurrenceDateTime.isEmpty();
650    }
651
652    /**
653     * @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
654     */
655    public GuidanceResponse setOccurrenceDateTimeElement(DateTimeType value) { 
656      this.occurrenceDateTime = value;
657      return this;
658    }
659
660    /**
661     * @return Indicates when the guidance response was processed.
662     */
663    public Date getOccurrenceDateTime() { 
664      return this.occurrenceDateTime == null ? null : this.occurrenceDateTime.getValue();
665    }
666
667    /**
668     * @param value Indicates when the guidance response was processed.
669     */
670    public GuidanceResponse setOccurrenceDateTime(Date value) { 
671      if (value == null)
672        this.occurrenceDateTime = null;
673      else {
674        if (this.occurrenceDateTime == null)
675          this.occurrenceDateTime = new DateTimeType();
676        this.occurrenceDateTime.setValue(value);
677      }
678      return this;
679    }
680
681    /**
682     * @return {@link #performer} (Provides a reference to the device that performed the guidance.)
683     */
684    public Reference getPerformer() { 
685      if (this.performer == null)
686        if (Configuration.errorOnAutoCreate())
687          throw new Error("Attempt to auto-create GuidanceResponse.performer");
688        else if (Configuration.doAutoCreate())
689          this.performer = new Reference(); // cc
690      return this.performer;
691    }
692
693    public boolean hasPerformer() { 
694      return this.performer != null && !this.performer.isEmpty();
695    }
696
697    /**
698     * @param value {@link #performer} (Provides a reference to the device that performed the guidance.)
699     */
700    public GuidanceResponse setPerformer(Reference value) { 
701      this.performer = value;
702      return this;
703    }
704
705    /**
706     * @return {@link #performer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Provides a reference to the device that performed the guidance.)
707     */
708    public Device getPerformerTarget() { 
709      if (this.performerTarget == null)
710        if (Configuration.errorOnAutoCreate())
711          throw new Error("Attempt to auto-create GuidanceResponse.performer");
712        else if (Configuration.doAutoCreate())
713          this.performerTarget = new Device(); // aa
714      return this.performerTarget;
715    }
716
717    /**
718     * @param value {@link #performer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Provides a reference to the device that performed the guidance.)
719     */
720    public GuidanceResponse setPerformerTarget(Device value) { 
721      this.performerTarget = value;
722      return this;
723    }
724
725    /**
726     * @return {@link #reasonCode} (Describes the reason for the guidance response in coded or textual form.)
727     */
728    public List<CodeableConcept> getReasonCode() { 
729      if (this.reasonCode == null)
730        this.reasonCode = new ArrayList<CodeableConcept>();
731      return this.reasonCode;
732    }
733
734    /**
735     * @return Returns a reference to <code>this</code> for easy method chaining
736     */
737    public GuidanceResponse setReasonCode(List<CodeableConcept> theReasonCode) { 
738      this.reasonCode = theReasonCode;
739      return this;
740    }
741
742    public boolean hasReasonCode() { 
743      if (this.reasonCode == null)
744        return false;
745      for (CodeableConcept item : this.reasonCode)
746        if (!item.isEmpty())
747          return true;
748      return false;
749    }
750
751    public CodeableConcept addReasonCode() { //3
752      CodeableConcept t = new CodeableConcept();
753      if (this.reasonCode == null)
754        this.reasonCode = new ArrayList<CodeableConcept>();
755      this.reasonCode.add(t);
756      return t;
757    }
758
759    public GuidanceResponse addReasonCode(CodeableConcept t) { //3
760      if (t == null)
761        return this;
762      if (this.reasonCode == null)
763        this.reasonCode = new ArrayList<CodeableConcept>();
764      this.reasonCode.add(t);
765      return this;
766    }
767
768    /**
769     * @return The first repetition of repeating field {@link #reasonCode}, creating it if it does not already exist
770     */
771    public CodeableConcept getReasonCodeFirstRep() { 
772      if (getReasonCode().isEmpty()) {
773        addReasonCode();
774      }
775      return getReasonCode().get(0);
776    }
777
778    /**
779     * @return {@link #reasonReference} (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.)
780     */
781    public List<Reference> getReasonReference() { 
782      if (this.reasonReference == null)
783        this.reasonReference = new ArrayList<Reference>();
784      return this.reasonReference;
785    }
786
787    /**
788     * @return Returns a reference to <code>this</code> for easy method chaining
789     */
790    public GuidanceResponse setReasonReference(List<Reference> theReasonReference) { 
791      this.reasonReference = theReasonReference;
792      return this;
793    }
794
795    public boolean hasReasonReference() { 
796      if (this.reasonReference == null)
797        return false;
798      for (Reference item : this.reasonReference)
799        if (!item.isEmpty())
800          return true;
801      return false;
802    }
803
804    public Reference addReasonReference() { //3
805      Reference t = new Reference();
806      if (this.reasonReference == null)
807        this.reasonReference = new ArrayList<Reference>();
808      this.reasonReference.add(t);
809      return t;
810    }
811
812    public GuidanceResponse addReasonReference(Reference t) { //3
813      if (t == null)
814        return this;
815      if (this.reasonReference == null)
816        this.reasonReference = new ArrayList<Reference>();
817      this.reasonReference.add(t);
818      return this;
819    }
820
821    /**
822     * @return The first repetition of repeating field {@link #reasonReference}, creating it if it does not already exist
823     */
824    public Reference getReasonReferenceFirstRep() { 
825      if (getReasonReference().isEmpty()) {
826        addReasonReference();
827      }
828      return getReasonReference().get(0);
829    }
830
831    /**
832     * @deprecated Use Reference#setResource(IBaseResource) instead
833     */
834    @Deprecated
835    public List<Resource> getReasonReferenceTarget() { 
836      if (this.reasonReferenceTarget == null)
837        this.reasonReferenceTarget = new ArrayList<Resource>();
838      return this.reasonReferenceTarget;
839    }
840
841    /**
842     * @return {@link #note} (Provides a mechanism to communicate additional information about the response.)
843     */
844    public List<Annotation> getNote() { 
845      if (this.note == null)
846        this.note = new ArrayList<Annotation>();
847      return this.note;
848    }
849
850    /**
851     * @return Returns a reference to <code>this</code> for easy method chaining
852     */
853    public GuidanceResponse setNote(List<Annotation> theNote) { 
854      this.note = theNote;
855      return this;
856    }
857
858    public boolean hasNote() { 
859      if (this.note == null)
860        return false;
861      for (Annotation item : this.note)
862        if (!item.isEmpty())
863          return true;
864      return false;
865    }
866
867    public Annotation addNote() { //3
868      Annotation t = new Annotation();
869      if (this.note == null)
870        this.note = new ArrayList<Annotation>();
871      this.note.add(t);
872      return t;
873    }
874
875    public GuidanceResponse addNote(Annotation t) { //3
876      if (t == null)
877        return this;
878      if (this.note == null)
879        this.note = new ArrayList<Annotation>();
880      this.note.add(t);
881      return this;
882    }
883
884    /**
885     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist
886     */
887    public Annotation getNoteFirstRep() { 
888      if (getNote().isEmpty()) {
889        addNote();
890      }
891      return getNote().get(0);
892    }
893
894    /**
895     * @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.)
896     */
897    public List<Reference> getEvaluationMessage() { 
898      if (this.evaluationMessage == null)
899        this.evaluationMessage = new ArrayList<Reference>();
900      return this.evaluationMessage;
901    }
902
903    /**
904     * @return Returns a reference to <code>this</code> for easy method chaining
905     */
906    public GuidanceResponse setEvaluationMessage(List<Reference> theEvaluationMessage) { 
907      this.evaluationMessage = theEvaluationMessage;
908      return this;
909    }
910
911    public boolean hasEvaluationMessage() { 
912      if (this.evaluationMessage == null)
913        return false;
914      for (Reference item : this.evaluationMessage)
915        if (!item.isEmpty())
916          return true;
917      return false;
918    }
919
920    public Reference addEvaluationMessage() { //3
921      Reference t = new Reference();
922      if (this.evaluationMessage == null)
923        this.evaluationMessage = new ArrayList<Reference>();
924      this.evaluationMessage.add(t);
925      return t;
926    }
927
928    public GuidanceResponse addEvaluationMessage(Reference t) { //3
929      if (t == null)
930        return this;
931      if (this.evaluationMessage == null)
932        this.evaluationMessage = new ArrayList<Reference>();
933      this.evaluationMessage.add(t);
934      return this;
935    }
936
937    /**
938     * @return The first repetition of repeating field {@link #evaluationMessage}, creating it if it does not already exist
939     */
940    public Reference getEvaluationMessageFirstRep() { 
941      if (getEvaluationMessage().isEmpty()) {
942        addEvaluationMessage();
943      }
944      return getEvaluationMessage().get(0);
945    }
946
947    /**
948     * @deprecated Use Reference#setResource(IBaseResource) instead
949     */
950    @Deprecated
951    public List<OperationOutcome> getEvaluationMessageTarget() { 
952      if (this.evaluationMessageTarget == null)
953        this.evaluationMessageTarget = new ArrayList<OperationOutcome>();
954      return this.evaluationMessageTarget;
955    }
956
957    /**
958     * @deprecated Use Reference#setResource(IBaseResource) instead
959     */
960    @Deprecated
961    public OperationOutcome addEvaluationMessageTarget() { 
962      OperationOutcome r = new OperationOutcome();
963      if (this.evaluationMessageTarget == null)
964        this.evaluationMessageTarget = new ArrayList<OperationOutcome>();
965      this.evaluationMessageTarget.add(r);
966      return r;
967    }
968
969    /**
970     * @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.)
971     */
972    public Reference getOutputParameters() { 
973      if (this.outputParameters == null)
974        if (Configuration.errorOnAutoCreate())
975          throw new Error("Attempt to auto-create GuidanceResponse.outputParameters");
976        else if (Configuration.doAutoCreate())
977          this.outputParameters = new Reference(); // cc
978      return this.outputParameters;
979    }
980
981    public boolean hasOutputParameters() { 
982      return this.outputParameters != null && !this.outputParameters.isEmpty();
983    }
984
985    /**
986     * @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.)
987     */
988    public GuidanceResponse setOutputParameters(Reference value) { 
989      this.outputParameters = value;
990      return this;
991    }
992
993    /**
994     * @return {@link #outputParameters} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The 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.)
995     */
996    public Parameters getOutputParametersTarget() { 
997      if (this.outputParametersTarget == null)
998        if (Configuration.errorOnAutoCreate())
999          throw new Error("Attempt to auto-create GuidanceResponse.outputParameters");
1000        else if (Configuration.doAutoCreate())
1001          this.outputParametersTarget = new Parameters(); // aa
1002      return this.outputParametersTarget;
1003    }
1004
1005    /**
1006     * @param value {@link #outputParameters} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The 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.)
1007     */
1008    public GuidanceResponse setOutputParametersTarget(Parameters value) { 
1009      this.outputParametersTarget = value;
1010      return this;
1011    }
1012
1013    /**
1014     * @return {@link #result} (The actions, if any, produced by the evaluation of the artifact.)
1015     */
1016    public Reference getResult() { 
1017      if (this.result == null)
1018        if (Configuration.errorOnAutoCreate())
1019          throw new Error("Attempt to auto-create GuidanceResponse.result");
1020        else if (Configuration.doAutoCreate())
1021          this.result = new Reference(); // cc
1022      return this.result;
1023    }
1024
1025    public boolean hasResult() { 
1026      return this.result != null && !this.result.isEmpty();
1027    }
1028
1029    /**
1030     * @param value {@link #result} (The actions, if any, produced by the evaluation of the artifact.)
1031     */
1032    public GuidanceResponse setResult(Reference value) { 
1033      this.result = value;
1034      return this;
1035    }
1036
1037    /**
1038     * @return {@link #result} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The actions, if any, produced by the evaluation of the artifact.)
1039     */
1040    public Resource getResultTarget() { 
1041      return this.resultTarget;
1042    }
1043
1044    /**
1045     * @param value {@link #result} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The actions, if any, produced by the evaluation of the artifact.)
1046     */
1047    public GuidanceResponse setResultTarget(Resource value) { 
1048      this.resultTarget = value;
1049      return this;
1050    }
1051
1052    /**
1053     * @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.)
1054     */
1055    public List<DataRequirement> getDataRequirement() { 
1056      if (this.dataRequirement == null)
1057        this.dataRequirement = new ArrayList<DataRequirement>();
1058      return this.dataRequirement;
1059    }
1060
1061    /**
1062     * @return Returns a reference to <code>this</code> for easy method chaining
1063     */
1064    public GuidanceResponse setDataRequirement(List<DataRequirement> theDataRequirement) { 
1065      this.dataRequirement = theDataRequirement;
1066      return this;
1067    }
1068
1069    public boolean hasDataRequirement() { 
1070      if (this.dataRequirement == null)
1071        return false;
1072      for (DataRequirement item : this.dataRequirement)
1073        if (!item.isEmpty())
1074          return true;
1075      return false;
1076    }
1077
1078    public DataRequirement addDataRequirement() { //3
1079      DataRequirement t = new DataRequirement();
1080      if (this.dataRequirement == null)
1081        this.dataRequirement = new ArrayList<DataRequirement>();
1082      this.dataRequirement.add(t);
1083      return t;
1084    }
1085
1086    public GuidanceResponse addDataRequirement(DataRequirement t) { //3
1087      if (t == null)
1088        return this;
1089      if (this.dataRequirement == null)
1090        this.dataRequirement = new ArrayList<DataRequirement>();
1091      this.dataRequirement.add(t);
1092      return this;
1093    }
1094
1095    /**
1096     * @return The first repetition of repeating field {@link #dataRequirement}, creating it if it does not already exist
1097     */
1098    public DataRequirement getDataRequirementFirstRep() { 
1099      if (getDataRequirement().isEmpty()) {
1100        addDataRequirement();
1101      }
1102      return getDataRequirement().get(0);
1103    }
1104
1105      protected void listChildren(List<Property> children) {
1106        super.listChildren(children);
1107        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));
1108        children.add(new Property("identifier", "Identifier", "Allows a service to provide  unique, business identifiers for the response.", 0, java.lang.Integer.MAX_VALUE, identifier));
1109        children.add(new Property("module[x]", "uri|canonical|CodeableConcept", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module));
1110        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));
1111        children.add(new Property("subject", "Reference(Patient|Group)", "The patient for which the request was processed.", 0, 1, subject));
1112        children.add(new Property("context", "Reference(Encounter|EpisodeOfCare)", "Allows the context of the guidance response to be provided if available. In a service context, this would likely be unavailable.", 0, 1, context));
1113        children.add(new Property("occurrenceDateTime", "dateTime", "Indicates when the guidance response was processed.", 0, 1, occurrenceDateTime));
1114        children.add(new Property("performer", "Reference(Device)", "Provides a reference to the device that performed the guidance.", 0, 1, performer));
1115        children.add(new Property("reasonCode", "CodeableConcept", "Describes the reason for the guidance response in coded or textual form.", 0, java.lang.Integer.MAX_VALUE, reasonCode));
1116        children.add(new Property("reasonReference", "Reference(Condition|Observation|DiagnosticReport|DocumentReference)", "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, reasonReference));
1117        children.add(new Property("note", "Annotation", "Provides a mechanism to communicate additional information about the response.", 0, java.lang.Integer.MAX_VALUE, note));
1118        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, java.lang.Integer.MAX_VALUE, evaluationMessage));
1119        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));
1120        children.add(new Property("result", "Reference(CarePlan|RequestGroup)", "The actions, if any, produced by the evaluation of the artifact.", 0, 1, result));
1121        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));
1122      }
1123
1124      @Override
1125      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1126        switch (_hash) {
1127        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);
1128        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);
1129        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);
1130        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);
1131        case -1552089248: /*moduleUri*/  return new Property("module[x]", "uri|canonical|CodeableConcept", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module);
1132        case -1153656856: /*moduleCanonical*/  return new Property("module[x]", "uri|canonical|CodeableConcept", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module);
1133        case -1157899371: /*moduleCodeableConcept*/  return new Property("module[x]", "uri|canonical|CodeableConcept", "An identifier, CodeableConcept or canonical reference to the guidance that was requested.", 0, 1, module);
1134        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);
1135        case -1867885268: /*subject*/  return new Property("subject", "Reference(Patient|Group)", "The patient for which the request was processed.", 0, 1, subject);
1136        case 951530927: /*context*/  return new Property("context", "Reference(Encounter|EpisodeOfCare)", "Allows the context of the guidance response to be provided if available. In a service context, this would likely be unavailable.", 0, 1, context);
1137        case -298443636: /*occurrenceDateTime*/  return new Property("occurrenceDateTime", "dateTime", "Indicates when the guidance response was processed.", 0, 1, occurrenceDateTime);
1138        case 481140686: /*performer*/  return new Property("performer", "Reference(Device)", "Provides a reference to the device that performed the guidance.", 0, 1, performer);
1139        case 722137681: /*reasonCode*/  return new Property("reasonCode", "CodeableConcept", "Describes the reason for the guidance response in coded or textual form.", 0, java.lang.Integer.MAX_VALUE, reasonCode);
1140        case -1146218137: /*reasonReference*/  return new Property("reasonReference", "Reference(Condition|Observation|DiagnosticReport|DocumentReference)", "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, reasonReference);
1141        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);
1142        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, java.lang.Integer.MAX_VALUE, evaluationMessage);
1143        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);
1144        case -934426595: /*result*/  return new Property("result", "Reference(CarePlan|RequestGroup)", "The actions, if any, produced by the evaluation of the artifact.", 0, 1, result);
1145        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);
1146        default: return super.getNamedProperty(_hash, _name, _checkValid);
1147        }
1148
1149      }
1150
1151      @Override
1152      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1153        switch (hash) {
1154        case -354233192: /*requestIdentifier*/ return this.requestIdentifier == null ? new Base[0] : new Base[] {this.requestIdentifier}; // Identifier
1155        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1156        case -1068784020: /*module*/ return this.module == null ? new Base[0] : new Base[] {this.module}; // Type
1157        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<GuidanceResponseStatus>
1158        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
1159        case 951530927: /*context*/ return this.context == null ? new Base[0] : new Base[] {this.context}; // Reference
1160        case -298443636: /*occurrenceDateTime*/ return this.occurrenceDateTime == null ? new Base[0] : new Base[] {this.occurrenceDateTime}; // DateTimeType
1161        case 481140686: /*performer*/ return this.performer == null ? new Base[0] : new Base[] {this.performer}; // Reference
1162        case 722137681: /*reasonCode*/ return this.reasonCode == null ? new Base[0] : this.reasonCode.toArray(new Base[this.reasonCode.size()]); // CodeableConcept
1163        case -1146218137: /*reasonReference*/ return this.reasonReference == null ? new Base[0] : this.reasonReference.toArray(new Base[this.reasonReference.size()]); // Reference
1164        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
1165        case 1081619755: /*evaluationMessage*/ return this.evaluationMessage == null ? new Base[0] : this.evaluationMessage.toArray(new Base[this.evaluationMessage.size()]); // Reference
1166        case 525609419: /*outputParameters*/ return this.outputParameters == null ? new Base[0] : new Base[] {this.outputParameters}; // Reference
1167        case -934426595: /*result*/ return this.result == null ? new Base[0] : new Base[] {this.result}; // Reference
1168        case 629147193: /*dataRequirement*/ return this.dataRequirement == null ? new Base[0] : this.dataRequirement.toArray(new Base[this.dataRequirement.size()]); // DataRequirement
1169        default: return super.getProperty(hash, name, checkValid);
1170        }
1171
1172      }
1173
1174      @Override
1175      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1176        switch (hash) {
1177        case -354233192: // requestIdentifier
1178          this.requestIdentifier = castToIdentifier(value); // Identifier
1179          return value;
1180        case -1618432855: // identifier
1181          this.getIdentifier().add(castToIdentifier(value)); // Identifier
1182          return value;
1183        case -1068784020: // module
1184          this.module = castToType(value); // Type
1185          return value;
1186        case -892481550: // status
1187          value = new GuidanceResponseStatusEnumFactory().fromType(castToCode(value));
1188          this.status = (Enumeration) value; // Enumeration<GuidanceResponseStatus>
1189          return value;
1190        case -1867885268: // subject
1191          this.subject = castToReference(value); // Reference
1192          return value;
1193        case 951530927: // context
1194          this.context = castToReference(value); // Reference
1195          return value;
1196        case -298443636: // occurrenceDateTime
1197          this.occurrenceDateTime = castToDateTime(value); // DateTimeType
1198          return value;
1199        case 481140686: // performer
1200          this.performer = castToReference(value); // Reference
1201          return value;
1202        case 722137681: // reasonCode
1203          this.getReasonCode().add(castToCodeableConcept(value)); // CodeableConcept
1204          return value;
1205        case -1146218137: // reasonReference
1206          this.getReasonReference().add(castToReference(value)); // Reference
1207          return value;
1208        case 3387378: // note
1209          this.getNote().add(castToAnnotation(value)); // Annotation
1210          return value;
1211        case 1081619755: // evaluationMessage
1212          this.getEvaluationMessage().add(castToReference(value)); // Reference
1213          return value;
1214        case 525609419: // outputParameters
1215          this.outputParameters = castToReference(value); // Reference
1216          return value;
1217        case -934426595: // result
1218          this.result = castToReference(value); // Reference
1219          return value;
1220        case 629147193: // dataRequirement
1221          this.getDataRequirement().add(castToDataRequirement(value)); // DataRequirement
1222          return value;
1223        default: return super.setProperty(hash, name, value);
1224        }
1225
1226      }
1227
1228      @Override
1229      public Base setProperty(String name, Base value) throws FHIRException {
1230        if (name.equals("requestIdentifier")) {
1231          this.requestIdentifier = castToIdentifier(value); // Identifier
1232        } else if (name.equals("identifier")) {
1233          this.getIdentifier().add(castToIdentifier(value));
1234        } else if (name.equals("module[x]")) {
1235          this.module = castToType(value); // Type
1236        } else if (name.equals("status")) {
1237          value = new GuidanceResponseStatusEnumFactory().fromType(castToCode(value));
1238          this.status = (Enumeration) value; // Enumeration<GuidanceResponseStatus>
1239        } else if (name.equals("subject")) {
1240          this.subject = castToReference(value); // Reference
1241        } else if (name.equals("context")) {
1242          this.context = castToReference(value); // Reference
1243        } else if (name.equals("occurrenceDateTime")) {
1244          this.occurrenceDateTime = castToDateTime(value); // DateTimeType
1245        } else if (name.equals("performer")) {
1246          this.performer = castToReference(value); // Reference
1247        } else if (name.equals("reasonCode")) {
1248          this.getReasonCode().add(castToCodeableConcept(value));
1249        } else if (name.equals("reasonReference")) {
1250          this.getReasonReference().add(castToReference(value));
1251        } else if (name.equals("note")) {
1252          this.getNote().add(castToAnnotation(value));
1253        } else if (name.equals("evaluationMessage")) {
1254          this.getEvaluationMessage().add(castToReference(value));
1255        } else if (name.equals("outputParameters")) {
1256          this.outputParameters = castToReference(value); // Reference
1257        } else if (name.equals("result")) {
1258          this.result = castToReference(value); // Reference
1259        } else if (name.equals("dataRequirement")) {
1260          this.getDataRequirement().add(castToDataRequirement(value));
1261        } else
1262          return super.setProperty(name, value);
1263        return value;
1264      }
1265
1266      @Override
1267      public Base makeProperty(int hash, String name) throws FHIRException {
1268        switch (hash) {
1269        case -354233192:  return getRequestIdentifier(); 
1270        case -1618432855:  return addIdentifier(); 
1271        case -1552083308:  return getModule(); 
1272        case -1068784020:  return getModule(); 
1273        case -892481550:  return getStatusElement();
1274        case -1867885268:  return getSubject(); 
1275        case 951530927:  return getContext(); 
1276        case -298443636:  return getOccurrenceDateTimeElement();
1277        case 481140686:  return getPerformer(); 
1278        case 722137681:  return addReasonCode(); 
1279        case -1146218137:  return addReasonReference(); 
1280        case 3387378:  return addNote(); 
1281        case 1081619755:  return addEvaluationMessage(); 
1282        case 525609419:  return getOutputParameters(); 
1283        case -934426595:  return getResult(); 
1284        case 629147193:  return addDataRequirement(); 
1285        default: return super.makeProperty(hash, name);
1286        }
1287
1288      }
1289
1290      @Override
1291      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1292        switch (hash) {
1293        case -354233192: /*requestIdentifier*/ return new String[] {"Identifier"};
1294        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1295        case -1068784020: /*module*/ return new String[] {"uri", "canonical", "CodeableConcept"};
1296        case -892481550: /*status*/ return new String[] {"code"};
1297        case -1867885268: /*subject*/ return new String[] {"Reference"};
1298        case 951530927: /*context*/ return new String[] {"Reference"};
1299        case -298443636: /*occurrenceDateTime*/ return new String[] {"dateTime"};
1300        case 481140686: /*performer*/ return new String[] {"Reference"};
1301        case 722137681: /*reasonCode*/ return new String[] {"CodeableConcept"};
1302        case -1146218137: /*reasonReference*/ return new String[] {"Reference"};
1303        case 3387378: /*note*/ return new String[] {"Annotation"};
1304        case 1081619755: /*evaluationMessage*/ return new String[] {"Reference"};
1305        case 525609419: /*outputParameters*/ return new String[] {"Reference"};
1306        case -934426595: /*result*/ return new String[] {"Reference"};
1307        case 629147193: /*dataRequirement*/ return new String[] {"DataRequirement"};
1308        default: return super.getTypesForProperty(hash, name);
1309        }
1310
1311      }
1312
1313      @Override
1314      public Base addChild(String name) throws FHIRException {
1315        if (name.equals("requestIdentifier")) {
1316          this.requestIdentifier = new Identifier();
1317          return this.requestIdentifier;
1318        }
1319        else if (name.equals("identifier")) {
1320          return addIdentifier();
1321        }
1322        else if (name.equals("moduleUri")) {
1323          this.module = new UriType();
1324          return this.module;
1325        }
1326        else if (name.equals("moduleCanonical")) {
1327          this.module = new CanonicalType();
1328          return this.module;
1329        }
1330        else if (name.equals("moduleCodeableConcept")) {
1331          this.module = new CodeableConcept();
1332          return this.module;
1333        }
1334        else if (name.equals("status")) {
1335          throw new FHIRException("Cannot call addChild on a primitive type GuidanceResponse.status");
1336        }
1337        else if (name.equals("subject")) {
1338          this.subject = new Reference();
1339          return this.subject;
1340        }
1341        else if (name.equals("context")) {
1342          this.context = new Reference();
1343          return this.context;
1344        }
1345        else if (name.equals("occurrenceDateTime")) {
1346          throw new FHIRException("Cannot call addChild on a primitive type GuidanceResponse.occurrenceDateTime");
1347        }
1348        else if (name.equals("performer")) {
1349          this.performer = new Reference();
1350          return this.performer;
1351        }
1352        else if (name.equals("reasonCode")) {
1353          return addReasonCode();
1354        }
1355        else if (name.equals("reasonReference")) {
1356          return addReasonReference();
1357        }
1358        else if (name.equals("note")) {
1359          return addNote();
1360        }
1361        else if (name.equals("evaluationMessage")) {
1362          return addEvaluationMessage();
1363        }
1364        else if (name.equals("outputParameters")) {
1365          this.outputParameters = new Reference();
1366          return this.outputParameters;
1367        }
1368        else if (name.equals("result")) {
1369          this.result = new Reference();
1370          return this.result;
1371        }
1372        else if (name.equals("dataRequirement")) {
1373          return addDataRequirement();
1374        }
1375        else
1376          return super.addChild(name);
1377      }
1378
1379  public String fhirType() {
1380    return "GuidanceResponse";
1381
1382  }
1383
1384      public GuidanceResponse copy() {
1385        GuidanceResponse dst = new GuidanceResponse();
1386        copyValues(dst);
1387        dst.requestIdentifier = requestIdentifier == null ? null : requestIdentifier.copy();
1388        if (identifier != null) {
1389          dst.identifier = new ArrayList<Identifier>();
1390          for (Identifier i : identifier)
1391            dst.identifier.add(i.copy());
1392        };
1393        dst.module = module == null ? null : module.copy();
1394        dst.status = status == null ? null : status.copy();
1395        dst.subject = subject == null ? null : subject.copy();
1396        dst.context = context == null ? null : context.copy();
1397        dst.occurrenceDateTime = occurrenceDateTime == null ? null : occurrenceDateTime.copy();
1398        dst.performer = performer == null ? null : performer.copy();
1399        if (reasonCode != null) {
1400          dst.reasonCode = new ArrayList<CodeableConcept>();
1401          for (CodeableConcept i : reasonCode)
1402            dst.reasonCode.add(i.copy());
1403        };
1404        if (reasonReference != null) {
1405          dst.reasonReference = new ArrayList<Reference>();
1406          for (Reference i : reasonReference)
1407            dst.reasonReference.add(i.copy());
1408        };
1409        if (note != null) {
1410          dst.note = new ArrayList<Annotation>();
1411          for (Annotation i : note)
1412            dst.note.add(i.copy());
1413        };
1414        if (evaluationMessage != null) {
1415          dst.evaluationMessage = new ArrayList<Reference>();
1416          for (Reference i : evaluationMessage)
1417            dst.evaluationMessage.add(i.copy());
1418        };
1419        dst.outputParameters = outputParameters == null ? null : outputParameters.copy();
1420        dst.result = result == null ? null : result.copy();
1421        if (dataRequirement != null) {
1422          dst.dataRequirement = new ArrayList<DataRequirement>();
1423          for (DataRequirement i : dataRequirement)
1424            dst.dataRequirement.add(i.copy());
1425        };
1426        return dst;
1427      }
1428
1429      protected GuidanceResponse typedCopy() {
1430        return copy();
1431      }
1432
1433      @Override
1434      public boolean equalsDeep(Base other_) {
1435        if (!super.equalsDeep(other_))
1436          return false;
1437        if (!(other_ instanceof GuidanceResponse))
1438          return false;
1439        GuidanceResponse o = (GuidanceResponse) other_;
1440        return compareDeep(requestIdentifier, o.requestIdentifier, true) && compareDeep(identifier, o.identifier, true)
1441           && compareDeep(module, o.module, true) && compareDeep(status, o.status, true) && compareDeep(subject, o.subject, true)
1442           && compareDeep(context, o.context, true) && compareDeep(occurrenceDateTime, o.occurrenceDateTime, true)
1443           && compareDeep(performer, o.performer, true) && compareDeep(reasonCode, o.reasonCode, true) && compareDeep(reasonReference, o.reasonReference, true)
1444           && compareDeep(note, o.note, true) && compareDeep(evaluationMessage, o.evaluationMessage, true)
1445           && compareDeep(outputParameters, o.outputParameters, true) && compareDeep(result, o.result, true)
1446           && compareDeep(dataRequirement, o.dataRequirement, true);
1447      }
1448
1449      @Override
1450      public boolean equalsShallow(Base other_) {
1451        if (!super.equalsShallow(other_))
1452          return false;
1453        if (!(other_ instanceof GuidanceResponse))
1454          return false;
1455        GuidanceResponse o = (GuidanceResponse) other_;
1456        return compareValues(status, o.status, true) && compareValues(occurrenceDateTime, o.occurrenceDateTime, true)
1457          ;
1458      }
1459
1460      public boolean isEmpty() {
1461        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(requestIdentifier, identifier
1462          , module, status, subject, context, occurrenceDateTime, performer, reasonCode
1463          , reasonReference, note, evaluationMessage, outputParameters, result, dataRequirement
1464          );
1465      }
1466
1467  @Override
1468  public ResourceType getResourceType() {
1469    return ResourceType.GuidanceResponse;
1470   }
1471
1472 /**
1473   * Search parameter: <b>request</b>
1474   * <p>
1475   * Description: <b>The identifier of the request associated with the response</b><br>
1476   * Type: <b>token</b><br>
1477   * Path: <b></b><br>
1478   * </p>
1479   */
1480  @SearchParamDefinition(name="request", path="", description="The identifier of the request associated with the response", type="token" )
1481  public static final String SP_REQUEST = "request";
1482 /**
1483   * <b>Fluent Client</b> search parameter constant for <b>request</b>
1484   * <p>
1485   * Description: <b>The identifier of the request associated with the response</b><br>
1486   * Type: <b>token</b><br>
1487   * Path: <b></b><br>
1488   * </p>
1489   */
1490  public static final ca.uhn.fhir.rest.gclient.TokenClientParam REQUEST = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REQUEST);
1491
1492 /**
1493   * Search parameter: <b>identifier</b>
1494   * <p>
1495   * Description: <b>The identifier of the guidance response</b><br>
1496   * Type: <b>token</b><br>
1497   * Path: <b>GuidanceResponse.identifier</b><br>
1498   * </p>
1499   */
1500  @SearchParamDefinition(name="identifier", path="GuidanceResponse.identifier", description="The identifier of the guidance response", type="token" )
1501  public static final String SP_IDENTIFIER = "identifier";
1502 /**
1503   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1504   * <p>
1505   * Description: <b>The identifier of the guidance response</b><br>
1506   * Type: <b>token</b><br>
1507   * Path: <b>GuidanceResponse.identifier</b><br>
1508   * </p>
1509   */
1510  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1511
1512 /**
1513   * Search parameter: <b>patient</b>
1514   * <p>
1515   * Description: <b>The identity of a patient to search for guidance response results</b><br>
1516   * Type: <b>reference</b><br>
1517   * Path: <b>GuidanceResponse.subject</b><br>
1518   * </p>
1519   */
1520  @SearchParamDefinition(name="patient", path="GuidanceResponse.subject.where(resolve() is Patient)", description="The identity of a patient to search for guidance response results", type="reference", target={Patient.class } )
1521  public static final String SP_PATIENT = "patient";
1522 /**
1523   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1524   * <p>
1525   * Description: <b>The identity of a patient to search for guidance response results</b><br>
1526   * Type: <b>reference</b><br>
1527   * Path: <b>GuidanceResponse.subject</b><br>
1528   * </p>
1529   */
1530  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1531
1532/**
1533   * Constant for fluent queries to be used to add include statements. Specifies
1534   * the path value of "<b>GuidanceResponse:patient</b>".
1535   */
1536  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("GuidanceResponse:patient").toLocked();
1537
1538 /**
1539   * Search parameter: <b>subject</b>
1540   * <p>
1541   * Description: <b>The subject that the guidance response is about</b><br>
1542   * Type: <b>reference</b><br>
1543   * Path: <b>GuidanceResponse.subject</b><br>
1544   * </p>
1545   */
1546  @SearchParamDefinition(name="subject", path="GuidanceResponse.subject", description="The subject that the guidance response is about", type="reference", target={Group.class, Patient.class } )
1547  public static final String SP_SUBJECT = "subject";
1548 /**
1549   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
1550   * <p>
1551   * Description: <b>The subject that the guidance response is about</b><br>
1552   * Type: <b>reference</b><br>
1553   * Path: <b>GuidanceResponse.subject</b><br>
1554   * </p>
1555   */
1556  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
1557
1558/**
1559   * Constant for fluent queries to be used to add include statements. Specifies
1560   * the path value of "<b>GuidanceResponse:subject</b>".
1561   */
1562  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("GuidanceResponse:subject").toLocked();
1563
1564
1565}
1566