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 Tue, Dec 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.
052 */
053@ResourceDef(name="ServiceRequest", profile="http://hl7.org/fhir/StructureDefinition/ServiceRequest")
054public class ServiceRequest extends DomainResource {
055
056    /**
057     * Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller.
058     */
059    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
060    @Description(shortDefinition="Identifiers assigned to this order", formalDefinition="Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller." )
061    protected List<Identifier> identifier;
062
063    /**
064     * The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.
065     */
066    @Child(name = "instantiatesCanonical", type = {CanonicalType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
067    @Description(shortDefinition="Instantiates FHIR protocol or definition", formalDefinition="The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest." )
068    protected List<CanonicalType> instantiatesCanonical;
069
070    /**
071     * The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.
072     */
073    @Child(name = "instantiatesUri", type = {UriType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
074    @Description(shortDefinition="Instantiates external protocol or definition", formalDefinition="The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest." )
075    protected List<UriType> instantiatesUri;
076
077    /**
078     * Plan/proposal/order fulfilled by this request.
079     */
080    @Child(name = "basedOn", type = {CarePlan.class, ServiceRequest.class, MedicationRequest.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
081    @Description(shortDefinition="What request fulfills", formalDefinition="Plan/proposal/order fulfilled by this request." )
082    protected List<Reference> basedOn;
083
084    /**
085     * The request takes the place of the referenced completed or terminated request(s).
086     */
087    @Child(name = "replaces", type = {ServiceRequest.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
088    @Description(shortDefinition="What request replaces", formalDefinition="The request takes the place of the referenced completed or terminated request(s)." )
089    protected List<Reference> replaces;
090
091    /**
092     * A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier.
093     */
094    @Child(name = "requisition", type = {Identifier.class}, order=5, min=0, max=1, modifier=false, summary=true)
095    @Description(shortDefinition="Composite Request ID", formalDefinition="A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier." )
096    protected Identifier requisition;
097
098    /**
099     * The status of the order.
100     */
101    @Child(name = "status", type = {CodeType.class}, order=6, min=1, max=1, modifier=true, summary=true)
102    @Description(shortDefinition="draft | active | on-hold | revoked | completed | entered-in-error | unknown", formalDefinition="The status of the order." )
103    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-status")
104    protected Enumeration<RequestStatus> status;
105
106    /**
107     * Whether the request is a proposal, plan, an original order or a reflex order.
108     */
109    @Child(name = "intent", type = {CodeType.class}, order=7, min=1, max=1, modifier=true, summary=true)
110    @Description(shortDefinition="proposal | plan | directive | order +", formalDefinition="Whether the request is a proposal, plan, an original order or a reflex order." )
111    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-intent")
112    protected Enumeration<RequestIntent> intent;
113
114    /**
115     * A code that classifies the service for searching, sorting and display purposes (e.g. "Surgical Procedure").
116     */
117    @Child(name = "category", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
118    @Description(shortDefinition="Classification of service", formalDefinition="A code that classifies the service for searching, sorting and display purposes (e.g. \"Surgical Procedure\")." )
119    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/servicerequest-category")
120    protected List<CodeableConcept> category;
121
122    /**
123     * Indicates how quickly the ServiceRequest should be addressed with respect to other requests.
124     */
125    @Child(name = "priority", type = {CodeType.class}, order=9, min=0, max=1, modifier=false, summary=true)
126    @Description(shortDefinition="routine | urgent | asap | stat", formalDefinition="Indicates how quickly the ServiceRequest should be addressed with respect to other requests." )
127    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-priority")
128    protected Enumeration<RequestPriority> priority;
129
130    /**
131     * Set this to true if the record is saying that the service/procedure should NOT be performed.
132     */
133    @Child(name = "doNotPerform", type = {BooleanType.class}, order=10, min=0, max=1, modifier=true, summary=true)
134    @Description(shortDefinition="True if service/procedure should not be performed", formalDefinition="Set this to true if the record is saying that the service/procedure should NOT be performed." )
135    protected BooleanType doNotPerform;
136
137    /**
138     * A code that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested.
139     */
140    @Child(name = "code", type = {CodeableConcept.class}, order=11, min=0, max=1, modifier=false, summary=true)
141    @Description(shortDefinition="What is being requested/ordered", formalDefinition="A code that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested." )
142    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-code")
143    protected CodeableConcept code;
144
145    /**
146     * Additional details and instructions about the how the services are to be delivered.   For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied.
147     */
148    @Child(name = "orderDetail", type = {CodeableConcept.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
149    @Description(shortDefinition="Additional order information", formalDefinition="Additional details and instructions about the how the services are to be delivered.   For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied." )
150    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/servicerequest-orderdetail")
151    protected List<CodeableConcept> orderDetail;
152
153    /**
154     * An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).
155     */
156    @Child(name = "quantity", type = {Quantity.class, Ratio.class, Range.class}, order=13, min=0, max=1, modifier=false, summary=true)
157    @Description(shortDefinition="Service amount", formalDefinition="An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction)." )
158    protected DataType quantity;
159
160    /**
161     * On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).
162     */
163    @Child(name = "subject", type = {Patient.class, Group.class, Location.class, Device.class}, order=14, min=1, max=1, modifier=false, summary=true)
164    @Description(shortDefinition="Individual or Entity the service is ordered for", formalDefinition="On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans)." )
165    protected Reference subject;
166
167    /**
168     * An encounter that provides additional information about the healthcare context in which this request is made.
169     */
170    @Child(name = "encounter", type = {Encounter.class}, order=15, min=0, max=1, modifier=false, summary=true)
171    @Description(shortDefinition="Encounter in which the request was created", formalDefinition="An encounter that provides additional information about the healthcare context in which this request is made." )
172    protected Reference encounter;
173
174    /**
175     * The date/time at which the requested service should occur.
176     */
177    @Child(name = "occurrence", type = {DateTimeType.class, Period.class, Timing.class}, order=16, min=0, max=1, modifier=false, summary=true)
178    @Description(shortDefinition="When service should occur", formalDefinition="The date/time at which the requested service should occur." )
179    protected DataType occurrence;
180
181    /**
182     * If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example "pain", "on flare-up", etc.
183     */
184    @Child(name = "asNeeded", type = {BooleanType.class, CodeableConcept.class}, order=17, min=0, max=1, modifier=false, summary=true)
185    @Description(shortDefinition="Preconditions for service", formalDefinition="If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example \"pain\", \"on flare-up\", etc." )
186    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/medication-as-needed-reason")
187    protected DataType asNeeded;
188
189    /**
190     * When the request transitioned to being actionable.
191     */
192    @Child(name = "authoredOn", type = {DateTimeType.class}, order=18, min=0, max=1, modifier=false, summary=true)
193    @Description(shortDefinition="Date request signed", formalDefinition="When the request transitioned to being actionable." )
194    protected DateTimeType authoredOn;
195
196    /**
197     * The individual who initiated the request and has responsibility for its activation.
198     */
199    @Child(name = "requester", type = {Practitioner.class, PractitionerRole.class, Organization.class, Patient.class, RelatedPerson.class, Device.class}, order=19, min=0, max=1, modifier=false, summary=true)
200    @Description(shortDefinition="Who/what is requesting service", formalDefinition="The individual who initiated the request and has responsibility for its activation." )
201    protected Reference requester;
202
203    /**
204     * Desired type of performer for doing the requested service.
205     */
206    @Child(name = "performerType", type = {CodeableConcept.class}, order=20, min=0, max=1, modifier=false, summary=true)
207    @Description(shortDefinition="Performer role", formalDefinition="Desired type of performer for doing the requested service." )
208    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participant-role")
209    protected CodeableConcept performerType;
210
211    /**
212     * The desired performer for doing the requested service.  For example, the surgeon, dermatopathologist, endoscopist, etc.
213     */
214    @Child(name = "performer", type = {Practitioner.class, PractitionerRole.class, Organization.class, CareTeam.class, HealthcareService.class, Patient.class, Device.class, RelatedPerson.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
215    @Description(shortDefinition="Requested performer", formalDefinition="The desired performer for doing the requested service.  For example, the surgeon, dermatopathologist, endoscopist, etc." )
216    protected List<Reference> performer;
217
218    /**
219     * The preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center.
220     */
221    @Child(name = "location", type = {CodeableReference.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
222    @Description(shortDefinition="Requested location", formalDefinition="The preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center." )
223    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-ServiceDeliveryLocationRoleType")
224    protected List<CodeableReference> location;
225
226    /**
227     * An explanation or justification for why this service is being requested in coded or textual form.   This is often for billing purposes.  May relate to the resources referred to in `supportingInfo`.
228     */
229    @Child(name = "reason", type = {CodeableReference.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
230    @Description(shortDefinition="Explanation/Justification for procedure or service", formalDefinition="An explanation or justification for why this service is being requested in coded or textual form.   This is often for billing purposes.  May relate to the resources referred to in `supportingInfo`." )
231    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/procedure-reason")
232    protected List<CodeableReference> reason;
233
234    /**
235     * Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service.
236     */
237    @Child(name = "insurance", type = {Coverage.class, ClaimResponse.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
238    @Description(shortDefinition="Associated insurance coverage", formalDefinition="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service." )
239    protected List<Reference> insurance;
240
241    /**
242     * Additional clinical information about the patient or specimen that may influence the services or their interpretations.     This information includes diagnosis, clinical findings and other observations.  In laboratory ordering these are typically referred to as "ask at order entry questions (AOEs)".  This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example,  reporting the amount of inspired oxygen for blood gas measurements.
243     */
244    @Child(name = "supportingInfo", type = {Reference.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
245    @Description(shortDefinition="Additional clinical information", formalDefinition="Additional clinical information about the patient or specimen that may influence the services or their interpretations.     This information includes diagnosis, clinical findings and other observations.  In laboratory ordering these are typically referred to as \"ask at order entry questions (AOEs)\".  This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example,  reporting the amount of inspired oxygen for blood gas measurements." )
246    protected List<Reference> supportingInfo;
247
248    /**
249     * One or more specimens that the laboratory procedure will use.
250     */
251    @Child(name = "specimen", type = {Specimen.class}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
252    @Description(shortDefinition="Procedure Samples", formalDefinition="One or more specimens that the laboratory procedure will use." )
253    protected List<Reference> specimen;
254
255    /**
256     * Anatomic location where the procedure should be performed. This is the target site.
257     */
258    @Child(name = "bodySite", type = {CodeableConcept.class}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
259    @Description(shortDefinition="Location on Body", formalDefinition="Anatomic location where the procedure should be performed. This is the target site." )
260    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/body-site")
261    protected List<CodeableConcept> bodySite;
262
263    /**
264     * Any other notes and comments made about the service request. For example, internal billing notes.
265     */
266    @Child(name = "note", type = {Annotation.class}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
267    @Description(shortDefinition="Comments", formalDefinition="Any other notes and comments made about the service request. For example, internal billing notes." )
268    protected List<Annotation> note;
269
270    /**
271     * Instructions in terms that are understood by the patient or consumer.
272     */
273    @Child(name = "patientInstruction", type = {StringType.class}, order=29, min=0, max=1, modifier=false, summary=true)
274    @Description(shortDefinition="Patient or consumer-oriented instructions", formalDefinition="Instructions in terms that are understood by the patient or consumer." )
275    protected StringType patientInstruction;
276
277    /**
278     * Key events in the history of the request.
279     */
280    @Child(name = "relevantHistory", type = {Provenance.class}, order=30, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
281    @Description(shortDefinition="Request provenance", formalDefinition="Key events in the history of the request." )
282    protected List<Reference> relevantHistory;
283
284    private static final long serialVersionUID = -578395935L;
285
286  /**
287   * Constructor
288   */
289    public ServiceRequest() {
290      super();
291    }
292
293  /**
294   * Constructor
295   */
296    public ServiceRequest(RequestStatus status, RequestIntent intent, Reference subject) {
297      super();
298      this.setStatus(status);
299      this.setIntent(intent);
300      this.setSubject(subject);
301    }
302
303    /**
304     * @return {@link #identifier} (Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller.)
305     */
306    public List<Identifier> getIdentifier() { 
307      if (this.identifier == null)
308        this.identifier = new ArrayList<Identifier>();
309      return this.identifier;
310    }
311
312    /**
313     * @return Returns a reference to <code>this</code> for easy method chaining
314     */
315    public ServiceRequest setIdentifier(List<Identifier> theIdentifier) { 
316      this.identifier = theIdentifier;
317      return this;
318    }
319
320    public boolean hasIdentifier() { 
321      if (this.identifier == null)
322        return false;
323      for (Identifier item : this.identifier)
324        if (!item.isEmpty())
325          return true;
326      return false;
327    }
328
329    public Identifier addIdentifier() { //3
330      Identifier t = new Identifier();
331      if (this.identifier == null)
332        this.identifier = new ArrayList<Identifier>();
333      this.identifier.add(t);
334      return t;
335    }
336
337    public ServiceRequest addIdentifier(Identifier t) { //3
338      if (t == null)
339        return this;
340      if (this.identifier == null)
341        this.identifier = new ArrayList<Identifier>();
342      this.identifier.add(t);
343      return this;
344    }
345
346    /**
347     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
348     */
349    public Identifier getIdentifierFirstRep() { 
350      if (getIdentifier().isEmpty()) {
351        addIdentifier();
352      }
353      return getIdentifier().get(0);
354    }
355
356    /**
357     * @return {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.)
358     */
359    public List<CanonicalType> getInstantiatesCanonical() { 
360      if (this.instantiatesCanonical == null)
361        this.instantiatesCanonical = new ArrayList<CanonicalType>();
362      return this.instantiatesCanonical;
363    }
364
365    /**
366     * @return Returns a reference to <code>this</code> for easy method chaining
367     */
368    public ServiceRequest setInstantiatesCanonical(List<CanonicalType> theInstantiatesCanonical) { 
369      this.instantiatesCanonical = theInstantiatesCanonical;
370      return this;
371    }
372
373    public boolean hasInstantiatesCanonical() { 
374      if (this.instantiatesCanonical == null)
375        return false;
376      for (CanonicalType item : this.instantiatesCanonical)
377        if (!item.isEmpty())
378          return true;
379      return false;
380    }
381
382    /**
383     * @return {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.)
384     */
385    public CanonicalType addInstantiatesCanonicalElement() {//2 
386      CanonicalType t = new CanonicalType();
387      if (this.instantiatesCanonical == null)
388        this.instantiatesCanonical = new ArrayList<CanonicalType>();
389      this.instantiatesCanonical.add(t);
390      return t;
391    }
392
393    /**
394     * @param value {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.)
395     */
396    public ServiceRequest addInstantiatesCanonical(String value) { //1
397      CanonicalType t = new CanonicalType();
398      t.setValue(value);
399      if (this.instantiatesCanonical == null)
400        this.instantiatesCanonical = new ArrayList<CanonicalType>();
401      this.instantiatesCanonical.add(t);
402      return this;
403    }
404
405    /**
406     * @param value {@link #instantiatesCanonical} (The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.)
407     */
408    public boolean hasInstantiatesCanonical(String value) { 
409      if (this.instantiatesCanonical == null)
410        return false;
411      for (CanonicalType v : this.instantiatesCanonical)
412        if (v.getValue().equals(value)) // canonical
413          return true;
414      return false;
415    }
416
417    /**
418     * @return {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.)
419     */
420    public List<UriType> getInstantiatesUri() { 
421      if (this.instantiatesUri == null)
422        this.instantiatesUri = new ArrayList<UriType>();
423      return this.instantiatesUri;
424    }
425
426    /**
427     * @return Returns a reference to <code>this</code> for easy method chaining
428     */
429    public ServiceRequest setInstantiatesUri(List<UriType> theInstantiatesUri) { 
430      this.instantiatesUri = theInstantiatesUri;
431      return this;
432    }
433
434    public boolean hasInstantiatesUri() { 
435      if (this.instantiatesUri == null)
436        return false;
437      for (UriType item : this.instantiatesUri)
438        if (!item.isEmpty())
439          return true;
440      return false;
441    }
442
443    /**
444     * @return {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.)
445     */
446    public UriType addInstantiatesUriElement() {//2 
447      UriType t = new UriType();
448      if (this.instantiatesUri == null)
449        this.instantiatesUri = new ArrayList<UriType>();
450      this.instantiatesUri.add(t);
451      return t;
452    }
453
454    /**
455     * @param value {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.)
456     */
457    public ServiceRequest addInstantiatesUri(String value) { //1
458      UriType t = new UriType();
459      t.setValue(value);
460      if (this.instantiatesUri == null)
461        this.instantiatesUri = new ArrayList<UriType>();
462      this.instantiatesUri.add(t);
463      return this;
464    }
465
466    /**
467     * @param value {@link #instantiatesUri} (The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.)
468     */
469    public boolean hasInstantiatesUri(String value) { 
470      if (this.instantiatesUri == null)
471        return false;
472      for (UriType v : this.instantiatesUri)
473        if (v.getValue().equals(value)) // uri
474          return true;
475      return false;
476    }
477
478    /**
479     * @return {@link #basedOn} (Plan/proposal/order fulfilled by this request.)
480     */
481    public List<Reference> getBasedOn() { 
482      if (this.basedOn == null)
483        this.basedOn = new ArrayList<Reference>();
484      return this.basedOn;
485    }
486
487    /**
488     * @return Returns a reference to <code>this</code> for easy method chaining
489     */
490    public ServiceRequest setBasedOn(List<Reference> theBasedOn) { 
491      this.basedOn = theBasedOn;
492      return this;
493    }
494
495    public boolean hasBasedOn() { 
496      if (this.basedOn == null)
497        return false;
498      for (Reference item : this.basedOn)
499        if (!item.isEmpty())
500          return true;
501      return false;
502    }
503
504    public Reference addBasedOn() { //3
505      Reference t = new Reference();
506      if (this.basedOn == null)
507        this.basedOn = new ArrayList<Reference>();
508      this.basedOn.add(t);
509      return t;
510    }
511
512    public ServiceRequest addBasedOn(Reference t) { //3
513      if (t == null)
514        return this;
515      if (this.basedOn == null)
516        this.basedOn = new ArrayList<Reference>();
517      this.basedOn.add(t);
518      return this;
519    }
520
521    /**
522     * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist {3}
523     */
524    public Reference getBasedOnFirstRep() { 
525      if (getBasedOn().isEmpty()) {
526        addBasedOn();
527      }
528      return getBasedOn().get(0);
529    }
530
531    /**
532     * @return {@link #replaces} (The request takes the place of the referenced completed or terminated request(s).)
533     */
534    public List<Reference> getReplaces() { 
535      if (this.replaces == null)
536        this.replaces = new ArrayList<Reference>();
537      return this.replaces;
538    }
539
540    /**
541     * @return Returns a reference to <code>this</code> for easy method chaining
542     */
543    public ServiceRequest setReplaces(List<Reference> theReplaces) { 
544      this.replaces = theReplaces;
545      return this;
546    }
547
548    public boolean hasReplaces() { 
549      if (this.replaces == null)
550        return false;
551      for (Reference item : this.replaces)
552        if (!item.isEmpty())
553          return true;
554      return false;
555    }
556
557    public Reference addReplaces() { //3
558      Reference t = new Reference();
559      if (this.replaces == null)
560        this.replaces = new ArrayList<Reference>();
561      this.replaces.add(t);
562      return t;
563    }
564
565    public ServiceRequest addReplaces(Reference t) { //3
566      if (t == null)
567        return this;
568      if (this.replaces == null)
569        this.replaces = new ArrayList<Reference>();
570      this.replaces.add(t);
571      return this;
572    }
573
574    /**
575     * @return The first repetition of repeating field {@link #replaces}, creating it if it does not already exist {3}
576     */
577    public Reference getReplacesFirstRep() { 
578      if (getReplaces().isEmpty()) {
579        addReplaces();
580      }
581      return getReplaces().get(0);
582    }
583
584    /**
585     * @return {@link #requisition} (A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier.)
586     */
587    public Identifier getRequisition() { 
588      if (this.requisition == null)
589        if (Configuration.errorOnAutoCreate())
590          throw new Error("Attempt to auto-create ServiceRequest.requisition");
591        else if (Configuration.doAutoCreate())
592          this.requisition = new Identifier(); // cc
593      return this.requisition;
594    }
595
596    public boolean hasRequisition() { 
597      return this.requisition != null && !this.requisition.isEmpty();
598    }
599
600    /**
601     * @param value {@link #requisition} (A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier.)
602     */
603    public ServiceRequest setRequisition(Identifier value) { 
604      this.requisition = value;
605      return this;
606    }
607
608    /**
609     * @return {@link #status} (The status of the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
610     */
611    public Enumeration<RequestStatus> getStatusElement() { 
612      if (this.status == null)
613        if (Configuration.errorOnAutoCreate())
614          throw new Error("Attempt to auto-create ServiceRequest.status");
615        else if (Configuration.doAutoCreate())
616          this.status = new Enumeration<RequestStatus>(new RequestStatusEnumFactory()); // bb
617      return this.status;
618    }
619
620    public boolean hasStatusElement() { 
621      return this.status != null && !this.status.isEmpty();
622    }
623
624    public boolean hasStatus() { 
625      return this.status != null && !this.status.isEmpty();
626    }
627
628    /**
629     * @param value {@link #status} (The status of the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
630     */
631    public ServiceRequest setStatusElement(Enumeration<RequestStatus> value) { 
632      this.status = value;
633      return this;
634    }
635
636    /**
637     * @return The status of the order.
638     */
639    public RequestStatus getStatus() { 
640      return this.status == null ? null : this.status.getValue();
641    }
642
643    /**
644     * @param value The status of the order.
645     */
646    public ServiceRequest setStatus(RequestStatus value) { 
647        if (this.status == null)
648          this.status = new Enumeration<RequestStatus>(new RequestStatusEnumFactory());
649        this.status.setValue(value);
650      return this;
651    }
652
653    /**
654     * @return {@link #intent} (Whether the request is a proposal, plan, an original order or a reflex order.). This is the underlying object with id, value and extensions. The accessor "getIntent" gives direct access to the value
655     */
656    public Enumeration<RequestIntent> getIntentElement() { 
657      if (this.intent == null)
658        if (Configuration.errorOnAutoCreate())
659          throw new Error("Attempt to auto-create ServiceRequest.intent");
660        else if (Configuration.doAutoCreate())
661          this.intent = new Enumeration<RequestIntent>(new RequestIntentEnumFactory()); // bb
662      return this.intent;
663    }
664
665    public boolean hasIntentElement() { 
666      return this.intent != null && !this.intent.isEmpty();
667    }
668
669    public boolean hasIntent() { 
670      return this.intent != null && !this.intent.isEmpty();
671    }
672
673    /**
674     * @param value {@link #intent} (Whether the request is a proposal, plan, an original order or a reflex order.). This is the underlying object with id, value and extensions. The accessor "getIntent" gives direct access to the value
675     */
676    public ServiceRequest setIntentElement(Enumeration<RequestIntent> value) { 
677      this.intent = value;
678      return this;
679    }
680
681    /**
682     * @return Whether the request is a proposal, plan, an original order or a reflex order.
683     */
684    public RequestIntent getIntent() { 
685      return this.intent == null ? null : this.intent.getValue();
686    }
687
688    /**
689     * @param value Whether the request is a proposal, plan, an original order or a reflex order.
690     */
691    public ServiceRequest setIntent(RequestIntent value) { 
692        if (this.intent == null)
693          this.intent = new Enumeration<RequestIntent>(new RequestIntentEnumFactory());
694        this.intent.setValue(value);
695      return this;
696    }
697
698    /**
699     * @return {@link #category} (A code that classifies the service for searching, sorting and display purposes (e.g. "Surgical Procedure").)
700     */
701    public List<CodeableConcept> getCategory() { 
702      if (this.category == null)
703        this.category = new ArrayList<CodeableConcept>();
704      return this.category;
705    }
706
707    /**
708     * @return Returns a reference to <code>this</code> for easy method chaining
709     */
710    public ServiceRequest setCategory(List<CodeableConcept> theCategory) { 
711      this.category = theCategory;
712      return this;
713    }
714
715    public boolean hasCategory() { 
716      if (this.category == null)
717        return false;
718      for (CodeableConcept item : this.category)
719        if (!item.isEmpty())
720          return true;
721      return false;
722    }
723
724    public CodeableConcept addCategory() { //3
725      CodeableConcept t = new CodeableConcept();
726      if (this.category == null)
727        this.category = new ArrayList<CodeableConcept>();
728      this.category.add(t);
729      return t;
730    }
731
732    public ServiceRequest addCategory(CodeableConcept t) { //3
733      if (t == null)
734        return this;
735      if (this.category == null)
736        this.category = new ArrayList<CodeableConcept>();
737      this.category.add(t);
738      return this;
739    }
740
741    /**
742     * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3}
743     */
744    public CodeableConcept getCategoryFirstRep() { 
745      if (getCategory().isEmpty()) {
746        addCategory();
747      }
748      return getCategory().get(0);
749    }
750
751    /**
752     * @return {@link #priority} (Indicates how quickly the ServiceRequest should be addressed with respect to other requests.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value
753     */
754    public Enumeration<RequestPriority> getPriorityElement() { 
755      if (this.priority == null)
756        if (Configuration.errorOnAutoCreate())
757          throw new Error("Attempt to auto-create ServiceRequest.priority");
758        else if (Configuration.doAutoCreate())
759          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory()); // bb
760      return this.priority;
761    }
762
763    public boolean hasPriorityElement() { 
764      return this.priority != null && !this.priority.isEmpty();
765    }
766
767    public boolean hasPriority() { 
768      return this.priority != null && !this.priority.isEmpty();
769    }
770
771    /**
772     * @param value {@link #priority} (Indicates how quickly the ServiceRequest should be addressed with respect to other requests.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value
773     */
774    public ServiceRequest setPriorityElement(Enumeration<RequestPriority> value) { 
775      this.priority = value;
776      return this;
777    }
778
779    /**
780     * @return Indicates how quickly the ServiceRequest should be addressed with respect to other requests.
781     */
782    public RequestPriority getPriority() { 
783      return this.priority == null ? null : this.priority.getValue();
784    }
785
786    /**
787     * @param value Indicates how quickly the ServiceRequest should be addressed with respect to other requests.
788     */
789    public ServiceRequest setPriority(RequestPriority value) { 
790      if (value == null)
791        this.priority = null;
792      else {
793        if (this.priority == null)
794          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory());
795        this.priority.setValue(value);
796      }
797      return this;
798    }
799
800    /**
801     * @return {@link #doNotPerform} (Set this to true if the record is saying that the service/procedure should NOT be performed.). This is the underlying object with id, value and extensions. The accessor "getDoNotPerform" gives direct access to the value
802     */
803    public BooleanType getDoNotPerformElement() { 
804      if (this.doNotPerform == null)
805        if (Configuration.errorOnAutoCreate())
806          throw new Error("Attempt to auto-create ServiceRequest.doNotPerform");
807        else if (Configuration.doAutoCreate())
808          this.doNotPerform = new BooleanType(); // bb
809      return this.doNotPerform;
810    }
811
812    public boolean hasDoNotPerformElement() { 
813      return this.doNotPerform != null && !this.doNotPerform.isEmpty();
814    }
815
816    public boolean hasDoNotPerform() { 
817      return this.doNotPerform != null && !this.doNotPerform.isEmpty();
818    }
819
820    /**
821     * @param value {@link #doNotPerform} (Set this to true if the record is saying that the service/procedure should NOT be performed.). This is the underlying object with id, value and extensions. The accessor "getDoNotPerform" gives direct access to the value
822     */
823    public ServiceRequest setDoNotPerformElement(BooleanType value) { 
824      this.doNotPerform = value;
825      return this;
826    }
827
828    /**
829     * @return Set this to true if the record is saying that the service/procedure should NOT be performed.
830     */
831    public boolean getDoNotPerform() { 
832      return this.doNotPerform == null || this.doNotPerform.isEmpty() ? false : this.doNotPerform.getValue();
833    }
834
835    /**
836     * @param value Set this to true if the record is saying that the service/procedure should NOT be performed.
837     */
838    public ServiceRequest setDoNotPerform(boolean value) { 
839        if (this.doNotPerform == null)
840          this.doNotPerform = new BooleanType();
841        this.doNotPerform.setValue(value);
842      return this;
843    }
844
845    /**
846     * @return {@link #code} (A code that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested.)
847     */
848    public CodeableConcept getCode() { 
849      if (this.code == null)
850        if (Configuration.errorOnAutoCreate())
851          throw new Error("Attempt to auto-create ServiceRequest.code");
852        else if (Configuration.doAutoCreate())
853          this.code = new CodeableConcept(); // cc
854      return this.code;
855    }
856
857    public boolean hasCode() { 
858      return this.code != null && !this.code.isEmpty();
859    }
860
861    /**
862     * @param value {@link #code} (A code that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested.)
863     */
864    public ServiceRequest setCode(CodeableConcept value) { 
865      this.code = value;
866      return this;
867    }
868
869    /**
870     * @return {@link #orderDetail} (Additional details and instructions about the how the services are to be delivered.   For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied.)
871     */
872    public List<CodeableConcept> getOrderDetail() { 
873      if (this.orderDetail == null)
874        this.orderDetail = new ArrayList<CodeableConcept>();
875      return this.orderDetail;
876    }
877
878    /**
879     * @return Returns a reference to <code>this</code> for easy method chaining
880     */
881    public ServiceRequest setOrderDetail(List<CodeableConcept> theOrderDetail) { 
882      this.orderDetail = theOrderDetail;
883      return this;
884    }
885
886    public boolean hasOrderDetail() { 
887      if (this.orderDetail == null)
888        return false;
889      for (CodeableConcept item : this.orderDetail)
890        if (!item.isEmpty())
891          return true;
892      return false;
893    }
894
895    public CodeableConcept addOrderDetail() { //3
896      CodeableConcept t = new CodeableConcept();
897      if (this.orderDetail == null)
898        this.orderDetail = new ArrayList<CodeableConcept>();
899      this.orderDetail.add(t);
900      return t;
901    }
902
903    public ServiceRequest addOrderDetail(CodeableConcept t) { //3
904      if (t == null)
905        return this;
906      if (this.orderDetail == null)
907        this.orderDetail = new ArrayList<CodeableConcept>();
908      this.orderDetail.add(t);
909      return this;
910    }
911
912    /**
913     * @return The first repetition of repeating field {@link #orderDetail}, creating it if it does not already exist {3}
914     */
915    public CodeableConcept getOrderDetailFirstRep() { 
916      if (getOrderDetail().isEmpty()) {
917        addOrderDetail();
918      }
919      return getOrderDetail().get(0);
920    }
921
922    /**
923     * @return {@link #quantity} (An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).)
924     */
925    public DataType getQuantity() { 
926      return this.quantity;
927    }
928
929    /**
930     * @return {@link #quantity} (An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).)
931     */
932    public Quantity getQuantityQuantity() throws FHIRException { 
933      if (this.quantity == null)
934        this.quantity = new Quantity();
935      if (!(this.quantity instanceof Quantity))
936        throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.quantity.getClass().getName()+" was encountered");
937      return (Quantity) this.quantity;
938    }
939
940    public boolean hasQuantityQuantity() { 
941      return this != null && this.quantity instanceof Quantity;
942    }
943
944    /**
945     * @return {@link #quantity} (An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).)
946     */
947    public Ratio getQuantityRatio() throws FHIRException { 
948      if (this.quantity == null)
949        this.quantity = new Ratio();
950      if (!(this.quantity instanceof Ratio))
951        throw new FHIRException("Type mismatch: the type Ratio was expected, but "+this.quantity.getClass().getName()+" was encountered");
952      return (Ratio) this.quantity;
953    }
954
955    public boolean hasQuantityRatio() { 
956      return this != null && this.quantity instanceof Ratio;
957    }
958
959    /**
960     * @return {@link #quantity} (An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).)
961     */
962    public Range getQuantityRange() throws FHIRException { 
963      if (this.quantity == null)
964        this.quantity = new Range();
965      if (!(this.quantity instanceof Range))
966        throw new FHIRException("Type mismatch: the type Range was expected, but "+this.quantity.getClass().getName()+" was encountered");
967      return (Range) this.quantity;
968    }
969
970    public boolean hasQuantityRange() { 
971      return this != null && this.quantity instanceof Range;
972    }
973
974    public boolean hasQuantity() { 
975      return this.quantity != null && !this.quantity.isEmpty();
976    }
977
978    /**
979     * @param value {@link #quantity} (An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).)
980     */
981    public ServiceRequest setQuantity(DataType value) { 
982      if (value != null && !(value instanceof Quantity || value instanceof Ratio || value instanceof Range))
983        throw new Error("Not the right type for ServiceRequest.quantity[x]: "+value.fhirType());
984      this.quantity = value;
985      return this;
986    }
987
988    /**
989     * @return {@link #subject} (On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).)
990     */
991    public Reference getSubject() { 
992      if (this.subject == null)
993        if (Configuration.errorOnAutoCreate())
994          throw new Error("Attempt to auto-create ServiceRequest.subject");
995        else if (Configuration.doAutoCreate())
996          this.subject = new Reference(); // cc
997      return this.subject;
998    }
999
1000    public boolean hasSubject() { 
1001      return this.subject != null && !this.subject.isEmpty();
1002    }
1003
1004    /**
1005     * @param value {@link #subject} (On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).)
1006     */
1007    public ServiceRequest setSubject(Reference value) { 
1008      this.subject = value;
1009      return this;
1010    }
1011
1012    /**
1013     * @return {@link #encounter} (An encounter that provides additional information about the healthcare context in which this request is made.)
1014     */
1015    public Reference getEncounter() { 
1016      if (this.encounter == null)
1017        if (Configuration.errorOnAutoCreate())
1018          throw new Error("Attempt to auto-create ServiceRequest.encounter");
1019        else if (Configuration.doAutoCreate())
1020          this.encounter = new Reference(); // cc
1021      return this.encounter;
1022    }
1023
1024    public boolean hasEncounter() { 
1025      return this.encounter != null && !this.encounter.isEmpty();
1026    }
1027
1028    /**
1029     * @param value {@link #encounter} (An encounter that provides additional information about the healthcare context in which this request is made.)
1030     */
1031    public ServiceRequest setEncounter(Reference value) { 
1032      this.encounter = value;
1033      return this;
1034    }
1035
1036    /**
1037     * @return {@link #occurrence} (The date/time at which the requested service should occur.)
1038     */
1039    public DataType getOccurrence() { 
1040      return this.occurrence;
1041    }
1042
1043    /**
1044     * @return {@link #occurrence} (The date/time at which the requested service should occur.)
1045     */
1046    public DateTimeType getOccurrenceDateTimeType() throws FHIRException { 
1047      if (this.occurrence == null)
1048        this.occurrence = new DateTimeType();
1049      if (!(this.occurrence instanceof DateTimeType))
1050        throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.occurrence.getClass().getName()+" was encountered");
1051      return (DateTimeType) this.occurrence;
1052    }
1053
1054    public boolean hasOccurrenceDateTimeType() { 
1055      return this != null && this.occurrence instanceof DateTimeType;
1056    }
1057
1058    /**
1059     * @return {@link #occurrence} (The date/time at which the requested service should occur.)
1060     */
1061    public Period getOccurrencePeriod() throws FHIRException { 
1062      if (this.occurrence == null)
1063        this.occurrence = new Period();
1064      if (!(this.occurrence instanceof Period))
1065        throw new FHIRException("Type mismatch: the type Period was expected, but "+this.occurrence.getClass().getName()+" was encountered");
1066      return (Period) this.occurrence;
1067    }
1068
1069    public boolean hasOccurrencePeriod() { 
1070      return this != null && this.occurrence instanceof Period;
1071    }
1072
1073    /**
1074     * @return {@link #occurrence} (The date/time at which the requested service should occur.)
1075     */
1076    public Timing getOccurrenceTiming() throws FHIRException { 
1077      if (this.occurrence == null)
1078        this.occurrence = new Timing();
1079      if (!(this.occurrence instanceof Timing))
1080        throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.occurrence.getClass().getName()+" was encountered");
1081      return (Timing) this.occurrence;
1082    }
1083
1084    public boolean hasOccurrenceTiming() { 
1085      return this != null && this.occurrence instanceof Timing;
1086    }
1087
1088    public boolean hasOccurrence() { 
1089      return this.occurrence != null && !this.occurrence.isEmpty();
1090    }
1091
1092    /**
1093     * @param value {@link #occurrence} (The date/time at which the requested service should occur.)
1094     */
1095    public ServiceRequest setOccurrence(DataType value) { 
1096      if (value != null && !(value instanceof DateTimeType || value instanceof Period || value instanceof Timing))
1097        throw new Error("Not the right type for ServiceRequest.occurrence[x]: "+value.fhirType());
1098      this.occurrence = value;
1099      return this;
1100    }
1101
1102    /**
1103     * @return {@link #asNeeded} (If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example "pain", "on flare-up", etc.)
1104     */
1105    public DataType getAsNeeded() { 
1106      return this.asNeeded;
1107    }
1108
1109    /**
1110     * @return {@link #asNeeded} (If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example "pain", "on flare-up", etc.)
1111     */
1112    public BooleanType getAsNeededBooleanType() throws FHIRException { 
1113      if (this.asNeeded == null)
1114        this.asNeeded = new BooleanType();
1115      if (!(this.asNeeded instanceof BooleanType))
1116        throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.asNeeded.getClass().getName()+" was encountered");
1117      return (BooleanType) this.asNeeded;
1118    }
1119
1120    public boolean hasAsNeededBooleanType() { 
1121      return this != null && this.asNeeded instanceof BooleanType;
1122    }
1123
1124    /**
1125     * @return {@link #asNeeded} (If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example "pain", "on flare-up", etc.)
1126     */
1127    public CodeableConcept getAsNeededCodeableConcept() throws FHIRException { 
1128      if (this.asNeeded == null)
1129        this.asNeeded = new CodeableConcept();
1130      if (!(this.asNeeded instanceof CodeableConcept))
1131        throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.asNeeded.getClass().getName()+" was encountered");
1132      return (CodeableConcept) this.asNeeded;
1133    }
1134
1135    public boolean hasAsNeededCodeableConcept() { 
1136      return this != null && this.asNeeded instanceof CodeableConcept;
1137    }
1138
1139    public boolean hasAsNeeded() { 
1140      return this.asNeeded != null && !this.asNeeded.isEmpty();
1141    }
1142
1143    /**
1144     * @param value {@link #asNeeded} (If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example "pain", "on flare-up", etc.)
1145     */
1146    public ServiceRequest setAsNeeded(DataType value) { 
1147      if (value != null && !(value instanceof BooleanType || value instanceof CodeableConcept))
1148        throw new Error("Not the right type for ServiceRequest.asNeeded[x]: "+value.fhirType());
1149      this.asNeeded = value;
1150      return this;
1151    }
1152
1153    /**
1154     * @return {@link #authoredOn} (When the request transitioned to being actionable.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value
1155     */
1156    public DateTimeType getAuthoredOnElement() { 
1157      if (this.authoredOn == null)
1158        if (Configuration.errorOnAutoCreate())
1159          throw new Error("Attempt to auto-create ServiceRequest.authoredOn");
1160        else if (Configuration.doAutoCreate())
1161          this.authoredOn = new DateTimeType(); // bb
1162      return this.authoredOn;
1163    }
1164
1165    public boolean hasAuthoredOnElement() { 
1166      return this.authoredOn != null && !this.authoredOn.isEmpty();
1167    }
1168
1169    public boolean hasAuthoredOn() { 
1170      return this.authoredOn != null && !this.authoredOn.isEmpty();
1171    }
1172
1173    /**
1174     * @param value {@link #authoredOn} (When the request transitioned to being actionable.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value
1175     */
1176    public ServiceRequest setAuthoredOnElement(DateTimeType value) { 
1177      this.authoredOn = value;
1178      return this;
1179    }
1180
1181    /**
1182     * @return When the request transitioned to being actionable.
1183     */
1184    public Date getAuthoredOn() { 
1185      return this.authoredOn == null ? null : this.authoredOn.getValue();
1186    }
1187
1188    /**
1189     * @param value When the request transitioned to being actionable.
1190     */
1191    public ServiceRequest setAuthoredOn(Date value) { 
1192      if (value == null)
1193        this.authoredOn = null;
1194      else {
1195        if (this.authoredOn == null)
1196          this.authoredOn = new DateTimeType();
1197        this.authoredOn.setValue(value);
1198      }
1199      return this;
1200    }
1201
1202    /**
1203     * @return {@link #requester} (The individual who initiated the request and has responsibility for its activation.)
1204     */
1205    public Reference getRequester() { 
1206      if (this.requester == null)
1207        if (Configuration.errorOnAutoCreate())
1208          throw new Error("Attempt to auto-create ServiceRequest.requester");
1209        else if (Configuration.doAutoCreate())
1210          this.requester = new Reference(); // cc
1211      return this.requester;
1212    }
1213
1214    public boolean hasRequester() { 
1215      return this.requester != null && !this.requester.isEmpty();
1216    }
1217
1218    /**
1219     * @param value {@link #requester} (The individual who initiated the request and has responsibility for its activation.)
1220     */
1221    public ServiceRequest setRequester(Reference value) { 
1222      this.requester = value;
1223      return this;
1224    }
1225
1226    /**
1227     * @return {@link #performerType} (Desired type of performer for doing the requested service.)
1228     */
1229    public CodeableConcept getPerformerType() { 
1230      if (this.performerType == null)
1231        if (Configuration.errorOnAutoCreate())
1232          throw new Error("Attempt to auto-create ServiceRequest.performerType");
1233        else if (Configuration.doAutoCreate())
1234          this.performerType = new CodeableConcept(); // cc
1235      return this.performerType;
1236    }
1237
1238    public boolean hasPerformerType() { 
1239      return this.performerType != null && !this.performerType.isEmpty();
1240    }
1241
1242    /**
1243     * @param value {@link #performerType} (Desired type of performer for doing the requested service.)
1244     */
1245    public ServiceRequest setPerformerType(CodeableConcept value) { 
1246      this.performerType = value;
1247      return this;
1248    }
1249
1250    /**
1251     * @return {@link #performer} (The desired performer for doing the requested service.  For example, the surgeon, dermatopathologist, endoscopist, etc.)
1252     */
1253    public List<Reference> getPerformer() { 
1254      if (this.performer == null)
1255        this.performer = new ArrayList<Reference>();
1256      return this.performer;
1257    }
1258
1259    /**
1260     * @return Returns a reference to <code>this</code> for easy method chaining
1261     */
1262    public ServiceRequest setPerformer(List<Reference> thePerformer) { 
1263      this.performer = thePerformer;
1264      return this;
1265    }
1266
1267    public boolean hasPerformer() { 
1268      if (this.performer == null)
1269        return false;
1270      for (Reference item : this.performer)
1271        if (!item.isEmpty())
1272          return true;
1273      return false;
1274    }
1275
1276    public Reference addPerformer() { //3
1277      Reference t = new Reference();
1278      if (this.performer == null)
1279        this.performer = new ArrayList<Reference>();
1280      this.performer.add(t);
1281      return t;
1282    }
1283
1284    public ServiceRequest addPerformer(Reference t) { //3
1285      if (t == null)
1286        return this;
1287      if (this.performer == null)
1288        this.performer = new ArrayList<Reference>();
1289      this.performer.add(t);
1290      return this;
1291    }
1292
1293    /**
1294     * @return The first repetition of repeating field {@link #performer}, creating it if it does not already exist {3}
1295     */
1296    public Reference getPerformerFirstRep() { 
1297      if (getPerformer().isEmpty()) {
1298        addPerformer();
1299      }
1300      return getPerformer().get(0);
1301    }
1302
1303    /**
1304     * @return {@link #location} (The preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center.)
1305     */
1306    public List<CodeableReference> getLocation() { 
1307      if (this.location == null)
1308        this.location = new ArrayList<CodeableReference>();
1309      return this.location;
1310    }
1311
1312    /**
1313     * @return Returns a reference to <code>this</code> for easy method chaining
1314     */
1315    public ServiceRequest setLocation(List<CodeableReference> theLocation) { 
1316      this.location = theLocation;
1317      return this;
1318    }
1319
1320    public boolean hasLocation() { 
1321      if (this.location == null)
1322        return false;
1323      for (CodeableReference item : this.location)
1324        if (!item.isEmpty())
1325          return true;
1326      return false;
1327    }
1328
1329    public CodeableReference addLocation() { //3
1330      CodeableReference t = new CodeableReference();
1331      if (this.location == null)
1332        this.location = new ArrayList<CodeableReference>();
1333      this.location.add(t);
1334      return t;
1335    }
1336
1337    public ServiceRequest addLocation(CodeableReference t) { //3
1338      if (t == null)
1339        return this;
1340      if (this.location == null)
1341        this.location = new ArrayList<CodeableReference>();
1342      this.location.add(t);
1343      return this;
1344    }
1345
1346    /**
1347     * @return The first repetition of repeating field {@link #location}, creating it if it does not already exist {3}
1348     */
1349    public CodeableReference getLocationFirstRep() { 
1350      if (getLocation().isEmpty()) {
1351        addLocation();
1352      }
1353      return getLocation().get(0);
1354    }
1355
1356    /**
1357     * @return {@link #reason} (An explanation or justification for why this service is being requested in coded or textual form.   This is often for billing purposes.  May relate to the resources referred to in `supportingInfo`.)
1358     */
1359    public List<CodeableReference> getReason() { 
1360      if (this.reason == null)
1361        this.reason = new ArrayList<CodeableReference>();
1362      return this.reason;
1363    }
1364
1365    /**
1366     * @return Returns a reference to <code>this</code> for easy method chaining
1367     */
1368    public ServiceRequest setReason(List<CodeableReference> theReason) { 
1369      this.reason = theReason;
1370      return this;
1371    }
1372
1373    public boolean hasReason() { 
1374      if (this.reason == null)
1375        return false;
1376      for (CodeableReference item : this.reason)
1377        if (!item.isEmpty())
1378          return true;
1379      return false;
1380    }
1381
1382    public CodeableReference addReason() { //3
1383      CodeableReference t = new CodeableReference();
1384      if (this.reason == null)
1385        this.reason = new ArrayList<CodeableReference>();
1386      this.reason.add(t);
1387      return t;
1388    }
1389
1390    public ServiceRequest addReason(CodeableReference t) { //3
1391      if (t == null)
1392        return this;
1393      if (this.reason == null)
1394        this.reason = new ArrayList<CodeableReference>();
1395      this.reason.add(t);
1396      return this;
1397    }
1398
1399    /**
1400     * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist {3}
1401     */
1402    public CodeableReference getReasonFirstRep() { 
1403      if (getReason().isEmpty()) {
1404        addReason();
1405      }
1406      return getReason().get(0);
1407    }
1408
1409    /**
1410     * @return {@link #insurance} (Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service.)
1411     */
1412    public List<Reference> getInsurance() { 
1413      if (this.insurance == null)
1414        this.insurance = new ArrayList<Reference>();
1415      return this.insurance;
1416    }
1417
1418    /**
1419     * @return Returns a reference to <code>this</code> for easy method chaining
1420     */
1421    public ServiceRequest setInsurance(List<Reference> theInsurance) { 
1422      this.insurance = theInsurance;
1423      return this;
1424    }
1425
1426    public boolean hasInsurance() { 
1427      if (this.insurance == null)
1428        return false;
1429      for (Reference item : this.insurance)
1430        if (!item.isEmpty())
1431          return true;
1432      return false;
1433    }
1434
1435    public Reference addInsurance() { //3
1436      Reference t = new Reference();
1437      if (this.insurance == null)
1438        this.insurance = new ArrayList<Reference>();
1439      this.insurance.add(t);
1440      return t;
1441    }
1442
1443    public ServiceRequest addInsurance(Reference t) { //3
1444      if (t == null)
1445        return this;
1446      if (this.insurance == null)
1447        this.insurance = new ArrayList<Reference>();
1448      this.insurance.add(t);
1449      return this;
1450    }
1451
1452    /**
1453     * @return The first repetition of repeating field {@link #insurance}, creating it if it does not already exist {3}
1454     */
1455    public Reference getInsuranceFirstRep() { 
1456      if (getInsurance().isEmpty()) {
1457        addInsurance();
1458      }
1459      return getInsurance().get(0);
1460    }
1461
1462    /**
1463     * @return {@link #supportingInfo} (Additional clinical information about the patient or specimen that may influence the services or their interpretations.     This information includes diagnosis, clinical findings and other observations.  In laboratory ordering these are typically referred to as "ask at order entry questions (AOEs)".  This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example,  reporting the amount of inspired oxygen for blood gas measurements.)
1464     */
1465    public List<Reference> getSupportingInfo() { 
1466      if (this.supportingInfo == null)
1467        this.supportingInfo = new ArrayList<Reference>();
1468      return this.supportingInfo;
1469    }
1470
1471    /**
1472     * @return Returns a reference to <code>this</code> for easy method chaining
1473     */
1474    public ServiceRequest setSupportingInfo(List<Reference> theSupportingInfo) { 
1475      this.supportingInfo = theSupportingInfo;
1476      return this;
1477    }
1478
1479    public boolean hasSupportingInfo() { 
1480      if (this.supportingInfo == null)
1481        return false;
1482      for (Reference item : this.supportingInfo)
1483        if (!item.isEmpty())
1484          return true;
1485      return false;
1486    }
1487
1488    public Reference addSupportingInfo() { //3
1489      Reference t = new Reference();
1490      if (this.supportingInfo == null)
1491        this.supportingInfo = new ArrayList<Reference>();
1492      this.supportingInfo.add(t);
1493      return t;
1494    }
1495
1496    public ServiceRequest addSupportingInfo(Reference t) { //3
1497      if (t == null)
1498        return this;
1499      if (this.supportingInfo == null)
1500        this.supportingInfo = new ArrayList<Reference>();
1501      this.supportingInfo.add(t);
1502      return this;
1503    }
1504
1505    /**
1506     * @return The first repetition of repeating field {@link #supportingInfo}, creating it if it does not already exist {3}
1507     */
1508    public Reference getSupportingInfoFirstRep() { 
1509      if (getSupportingInfo().isEmpty()) {
1510        addSupportingInfo();
1511      }
1512      return getSupportingInfo().get(0);
1513    }
1514
1515    /**
1516     * @return {@link #specimen} (One or more specimens that the laboratory procedure will use.)
1517     */
1518    public List<Reference> getSpecimen() { 
1519      if (this.specimen == null)
1520        this.specimen = new ArrayList<Reference>();
1521      return this.specimen;
1522    }
1523
1524    /**
1525     * @return Returns a reference to <code>this</code> for easy method chaining
1526     */
1527    public ServiceRequest setSpecimen(List<Reference> theSpecimen) { 
1528      this.specimen = theSpecimen;
1529      return this;
1530    }
1531
1532    public boolean hasSpecimen() { 
1533      if (this.specimen == null)
1534        return false;
1535      for (Reference item : this.specimen)
1536        if (!item.isEmpty())
1537          return true;
1538      return false;
1539    }
1540
1541    public Reference addSpecimen() { //3
1542      Reference t = new Reference();
1543      if (this.specimen == null)
1544        this.specimen = new ArrayList<Reference>();
1545      this.specimen.add(t);
1546      return t;
1547    }
1548
1549    public ServiceRequest addSpecimen(Reference t) { //3
1550      if (t == null)
1551        return this;
1552      if (this.specimen == null)
1553        this.specimen = new ArrayList<Reference>();
1554      this.specimen.add(t);
1555      return this;
1556    }
1557
1558    /**
1559     * @return The first repetition of repeating field {@link #specimen}, creating it if it does not already exist {3}
1560     */
1561    public Reference getSpecimenFirstRep() { 
1562      if (getSpecimen().isEmpty()) {
1563        addSpecimen();
1564      }
1565      return getSpecimen().get(0);
1566    }
1567
1568    /**
1569     * @return {@link #bodySite} (Anatomic location where the procedure should be performed. This is the target site.)
1570     */
1571    public List<CodeableConcept> getBodySite() { 
1572      if (this.bodySite == null)
1573        this.bodySite = new ArrayList<CodeableConcept>();
1574      return this.bodySite;
1575    }
1576
1577    /**
1578     * @return Returns a reference to <code>this</code> for easy method chaining
1579     */
1580    public ServiceRequest setBodySite(List<CodeableConcept> theBodySite) { 
1581      this.bodySite = theBodySite;
1582      return this;
1583    }
1584
1585    public boolean hasBodySite() { 
1586      if (this.bodySite == null)
1587        return false;
1588      for (CodeableConcept item : this.bodySite)
1589        if (!item.isEmpty())
1590          return true;
1591      return false;
1592    }
1593
1594    public CodeableConcept addBodySite() { //3
1595      CodeableConcept t = new CodeableConcept();
1596      if (this.bodySite == null)
1597        this.bodySite = new ArrayList<CodeableConcept>();
1598      this.bodySite.add(t);
1599      return t;
1600    }
1601
1602    public ServiceRequest addBodySite(CodeableConcept t) { //3
1603      if (t == null)
1604        return this;
1605      if (this.bodySite == null)
1606        this.bodySite = new ArrayList<CodeableConcept>();
1607      this.bodySite.add(t);
1608      return this;
1609    }
1610
1611    /**
1612     * @return The first repetition of repeating field {@link #bodySite}, creating it if it does not already exist {3}
1613     */
1614    public CodeableConcept getBodySiteFirstRep() { 
1615      if (getBodySite().isEmpty()) {
1616        addBodySite();
1617      }
1618      return getBodySite().get(0);
1619    }
1620
1621    /**
1622     * @return {@link #note} (Any other notes and comments made about the service request. For example, internal billing notes.)
1623     */
1624    public List<Annotation> getNote() { 
1625      if (this.note == null)
1626        this.note = new ArrayList<Annotation>();
1627      return this.note;
1628    }
1629
1630    /**
1631     * @return Returns a reference to <code>this</code> for easy method chaining
1632     */
1633    public ServiceRequest setNote(List<Annotation> theNote) { 
1634      this.note = theNote;
1635      return this;
1636    }
1637
1638    public boolean hasNote() { 
1639      if (this.note == null)
1640        return false;
1641      for (Annotation item : this.note)
1642        if (!item.isEmpty())
1643          return true;
1644      return false;
1645    }
1646
1647    public Annotation addNote() { //3
1648      Annotation t = new Annotation();
1649      if (this.note == null)
1650        this.note = new ArrayList<Annotation>();
1651      this.note.add(t);
1652      return t;
1653    }
1654
1655    public ServiceRequest addNote(Annotation t) { //3
1656      if (t == null)
1657        return this;
1658      if (this.note == null)
1659        this.note = new ArrayList<Annotation>();
1660      this.note.add(t);
1661      return this;
1662    }
1663
1664    /**
1665     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
1666     */
1667    public Annotation getNoteFirstRep() { 
1668      if (getNote().isEmpty()) {
1669        addNote();
1670      }
1671      return getNote().get(0);
1672    }
1673
1674    /**
1675     * @return {@link #patientInstruction} (Instructions in terms that are understood by the patient or consumer.). This is the underlying object with id, value and extensions. The accessor "getPatientInstruction" gives direct access to the value
1676     */
1677    public StringType getPatientInstructionElement() { 
1678      if (this.patientInstruction == null)
1679        if (Configuration.errorOnAutoCreate())
1680          throw new Error("Attempt to auto-create ServiceRequest.patientInstruction");
1681        else if (Configuration.doAutoCreate())
1682          this.patientInstruction = new StringType(); // bb
1683      return this.patientInstruction;
1684    }
1685
1686    public boolean hasPatientInstructionElement() { 
1687      return this.patientInstruction != null && !this.patientInstruction.isEmpty();
1688    }
1689
1690    public boolean hasPatientInstruction() { 
1691      return this.patientInstruction != null && !this.patientInstruction.isEmpty();
1692    }
1693
1694    /**
1695     * @param value {@link #patientInstruction} (Instructions in terms that are understood by the patient or consumer.). This is the underlying object with id, value and extensions. The accessor "getPatientInstruction" gives direct access to the value
1696     */
1697    public ServiceRequest setPatientInstructionElement(StringType value) { 
1698      this.patientInstruction = value;
1699      return this;
1700    }
1701
1702    /**
1703     * @return Instructions in terms that are understood by the patient or consumer.
1704     */
1705    public String getPatientInstruction() { 
1706      return this.patientInstruction == null ? null : this.patientInstruction.getValue();
1707    }
1708
1709    /**
1710     * @param value Instructions in terms that are understood by the patient or consumer.
1711     */
1712    public ServiceRequest setPatientInstruction(String value) { 
1713      if (Utilities.noString(value))
1714        this.patientInstruction = null;
1715      else {
1716        if (this.patientInstruction == null)
1717          this.patientInstruction = new StringType();
1718        this.patientInstruction.setValue(value);
1719      }
1720      return this;
1721    }
1722
1723    /**
1724     * @return {@link #relevantHistory} (Key events in the history of the request.)
1725     */
1726    public List<Reference> getRelevantHistory() { 
1727      if (this.relevantHistory == null)
1728        this.relevantHistory = new ArrayList<Reference>();
1729      return this.relevantHistory;
1730    }
1731
1732    /**
1733     * @return Returns a reference to <code>this</code> for easy method chaining
1734     */
1735    public ServiceRequest setRelevantHistory(List<Reference> theRelevantHistory) { 
1736      this.relevantHistory = theRelevantHistory;
1737      return this;
1738    }
1739
1740    public boolean hasRelevantHistory() { 
1741      if (this.relevantHistory == null)
1742        return false;
1743      for (Reference item : this.relevantHistory)
1744        if (!item.isEmpty())
1745          return true;
1746      return false;
1747    }
1748
1749    public Reference addRelevantHistory() { //3
1750      Reference t = new Reference();
1751      if (this.relevantHistory == null)
1752        this.relevantHistory = new ArrayList<Reference>();
1753      this.relevantHistory.add(t);
1754      return t;
1755    }
1756
1757    public ServiceRequest addRelevantHistory(Reference t) { //3
1758      if (t == null)
1759        return this;
1760      if (this.relevantHistory == null)
1761        this.relevantHistory = new ArrayList<Reference>();
1762      this.relevantHistory.add(t);
1763      return this;
1764    }
1765
1766    /**
1767     * @return The first repetition of repeating field {@link #relevantHistory}, creating it if it does not already exist {3}
1768     */
1769    public Reference getRelevantHistoryFirstRep() { 
1770      if (getRelevantHistory().isEmpty()) {
1771        addRelevantHistory();
1772      }
1773      return getRelevantHistory().get(0);
1774    }
1775
1776      protected void listChildren(List<Property> children) {
1777        super.listChildren(children);
1778        children.add(new Property("identifier", "Identifier", "Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller.", 0, java.lang.Integer.MAX_VALUE, identifier));
1779        children.add(new Property("instantiatesCanonical", "canonical(ActivityDefinition|PlanDefinition)", "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.", 0, java.lang.Integer.MAX_VALUE, instantiatesCanonical));
1780        children.add(new Property("instantiatesUri", "uri", "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.", 0, java.lang.Integer.MAX_VALUE, instantiatesUri));
1781        children.add(new Property("basedOn", "Reference(CarePlan|ServiceRequest|MedicationRequest)", "Plan/proposal/order fulfilled by this request.", 0, java.lang.Integer.MAX_VALUE, basedOn));
1782        children.add(new Property("replaces", "Reference(ServiceRequest)", "The request takes the place of the referenced completed or terminated request(s).", 0, java.lang.Integer.MAX_VALUE, replaces));
1783        children.add(new Property("requisition", "Identifier", "A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier.", 0, 1, requisition));
1784        children.add(new Property("status", "code", "The status of the order.", 0, 1, status));
1785        children.add(new Property("intent", "code", "Whether the request is a proposal, plan, an original order or a reflex order.", 0, 1, intent));
1786        children.add(new Property("category", "CodeableConcept", "A code that classifies the service for searching, sorting and display purposes (e.g. \"Surgical Procedure\").", 0, java.lang.Integer.MAX_VALUE, category));
1787        children.add(new Property("priority", "code", "Indicates how quickly the ServiceRequest should be addressed with respect to other requests.", 0, 1, priority));
1788        children.add(new Property("doNotPerform", "boolean", "Set this to true if the record is saying that the service/procedure should NOT be performed.", 0, 1, doNotPerform));
1789        children.add(new Property("code", "CodeableConcept", "A code that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested.", 0, 1, code));
1790        children.add(new Property("orderDetail", "CodeableConcept", "Additional details and instructions about the how the services are to be delivered.   For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied.", 0, java.lang.Integer.MAX_VALUE, orderDetail));
1791        children.add(new Property("quantity[x]", "Quantity|Ratio|Range", "An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).", 0, 1, quantity));
1792        children.add(new Property("subject", "Reference(Patient|Group|Location|Device)", "On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).", 0, 1, subject));
1793        children.add(new Property("encounter", "Reference(Encounter)", "An encounter that provides additional information about the healthcare context in which this request is made.", 0, 1, encounter));
1794        children.add(new Property("occurrence[x]", "dateTime|Period|Timing", "The date/time at which the requested service should occur.", 0, 1, occurrence));
1795        children.add(new Property("asNeeded[x]", "boolean|CodeableConcept", "If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example \"pain\", \"on flare-up\", etc.", 0, 1, asNeeded));
1796        children.add(new Property("authoredOn", "dateTime", "When the request transitioned to being actionable.", 0, 1, authoredOn));
1797        children.add(new Property("requester", "Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device)", "The individual who initiated the request and has responsibility for its activation.", 0, 1, requester));
1798        children.add(new Property("performerType", "CodeableConcept", "Desired type of performer for doing the requested service.", 0, 1, performerType));
1799        children.add(new Property("performer", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|HealthcareService|Patient|Device|RelatedPerson)", "The desired performer for doing the requested service.  For example, the surgeon, dermatopathologist, endoscopist, etc.", 0, java.lang.Integer.MAX_VALUE, performer));
1800        children.add(new Property("location", "CodeableReference(Location)", "The preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center.", 0, java.lang.Integer.MAX_VALUE, location));
1801        children.add(new Property("reason", "CodeableReference(Condition|Observation|DiagnosticReport|DocumentReference|DetectedIssue)", "An explanation or justification for why this service is being requested in coded or textual form.   This is often for billing purposes.  May relate to the resources referred to in `supportingInfo`.", 0, java.lang.Integer.MAX_VALUE, reason));
1802        children.add(new Property("insurance", "Reference(Coverage|ClaimResponse)", "Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service.", 0, java.lang.Integer.MAX_VALUE, insurance));
1803        children.add(new Property("supportingInfo", "Reference(Any)", "Additional clinical information about the patient or specimen that may influence the services or their interpretations.     This information includes diagnosis, clinical findings and other observations.  In laboratory ordering these are typically referred to as \"ask at order entry questions (AOEs)\".  This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example,  reporting the amount of inspired oxygen for blood gas measurements.", 0, java.lang.Integer.MAX_VALUE, supportingInfo));
1804        children.add(new Property("specimen", "Reference(Specimen)", "One or more specimens that the laboratory procedure will use.", 0, java.lang.Integer.MAX_VALUE, specimen));
1805        children.add(new Property("bodySite", "CodeableConcept", "Anatomic location where the procedure should be performed. This is the target site.", 0, java.lang.Integer.MAX_VALUE, bodySite));
1806        children.add(new Property("note", "Annotation", "Any other notes and comments made about the service request. For example, internal billing notes.", 0, java.lang.Integer.MAX_VALUE, note));
1807        children.add(new Property("patientInstruction", "string", "Instructions in terms that are understood by the patient or consumer.", 0, 1, patientInstruction));
1808        children.add(new Property("relevantHistory", "Reference(Provenance)", "Key events in the history of the request.", 0, java.lang.Integer.MAX_VALUE, relevantHistory));
1809      }
1810
1811      @Override
1812      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1813        switch (_hash) {
1814        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller.", 0, java.lang.Integer.MAX_VALUE, identifier);
1815        case 8911915: /*instantiatesCanonical*/  return new Property("instantiatesCanonical", "canonical(ActivityDefinition|PlanDefinition)", "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.", 0, java.lang.Integer.MAX_VALUE, instantiatesCanonical);
1816        case -1926393373: /*instantiatesUri*/  return new Property("instantiatesUri", "uri", "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest.", 0, java.lang.Integer.MAX_VALUE, instantiatesUri);
1817        case -332612366: /*basedOn*/  return new Property("basedOn", "Reference(CarePlan|ServiceRequest|MedicationRequest)", "Plan/proposal/order fulfilled by this request.", 0, java.lang.Integer.MAX_VALUE, basedOn);
1818        case -430332865: /*replaces*/  return new Property("replaces", "Reference(ServiceRequest)", "The request takes the place of the referenced completed or terminated request(s).", 0, java.lang.Integer.MAX_VALUE, replaces);
1819        case 395923612: /*requisition*/  return new Property("requisition", "Identifier", "A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier.", 0, 1, requisition);
1820        case -892481550: /*status*/  return new Property("status", "code", "The status of the order.", 0, 1, status);
1821        case -1183762788: /*intent*/  return new Property("intent", "code", "Whether the request is a proposal, plan, an original order or a reflex order.", 0, 1, intent);
1822        case 50511102: /*category*/  return new Property("category", "CodeableConcept", "A code that classifies the service for searching, sorting and display purposes (e.g. \"Surgical Procedure\").", 0, java.lang.Integer.MAX_VALUE, category);
1823        case -1165461084: /*priority*/  return new Property("priority", "code", "Indicates how quickly the ServiceRequest should be addressed with respect to other requests.", 0, 1, priority);
1824        case -1788508167: /*doNotPerform*/  return new Property("doNotPerform", "boolean", "Set this to true if the record is saying that the service/procedure should NOT be performed.", 0, 1, doNotPerform);
1825        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "A code that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested.", 0, 1, code);
1826        case 1187338559: /*orderDetail*/  return new Property("orderDetail", "CodeableConcept", "Additional details and instructions about the how the services are to be delivered.   For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied.", 0, java.lang.Integer.MAX_VALUE, orderDetail);
1827        case -515002347: /*quantity[x]*/  return new Property("quantity[x]", "Quantity|Ratio|Range", "An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).", 0, 1, quantity);
1828        case -1285004149: /*quantity*/  return new Property("quantity[x]", "Quantity|Ratio|Range", "An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).", 0, 1, quantity);
1829        case -1087409610: /*quantityQuantity*/  return new Property("quantity[x]", "Quantity", "An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).", 0, 1, quantity);
1830        case -1004987840: /*quantityRatio*/  return new Property("quantity[x]", "Ratio", "An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).", 0, 1, quantity);
1831        case -1004993678: /*quantityRange*/  return new Property("quantity[x]", "Range", "An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction).", 0, 1, quantity);
1832        case -1867885268: /*subject*/  return new Property("subject", "Reference(Patient|Group|Location|Device)", "On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).", 0, 1, subject);
1833        case 1524132147: /*encounter*/  return new Property("encounter", "Reference(Encounter)", "An encounter that provides additional information about the healthcare context in which this request is made.", 0, 1, encounter);
1834        case -2022646513: /*occurrence[x]*/  return new Property("occurrence[x]", "dateTime|Period|Timing", "The date/time at which the requested service should occur.", 0, 1, occurrence);
1835        case 1687874001: /*occurrence*/  return new Property("occurrence[x]", "dateTime|Period|Timing", "The date/time at which the requested service should occur.", 0, 1, occurrence);
1836        case -298443636: /*occurrenceDateTime*/  return new Property("occurrence[x]", "dateTime", "The date/time at which the requested service should occur.", 0, 1, occurrence);
1837        case 1397156594: /*occurrencePeriod*/  return new Property("occurrence[x]", "Period", "The date/time at which the requested service should occur.", 0, 1, occurrence);
1838        case 1515218299: /*occurrenceTiming*/  return new Property("occurrence[x]", "Timing", "The date/time at which the requested service should occur.", 0, 1, occurrence);
1839        case -544329575: /*asNeeded[x]*/  return new Property("asNeeded[x]", "boolean|CodeableConcept", "If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example \"pain\", \"on flare-up\", etc.", 0, 1, asNeeded);
1840        case -1432923513: /*asNeeded*/  return new Property("asNeeded[x]", "boolean|CodeableConcept", "If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example \"pain\", \"on flare-up\", etc.", 0, 1, asNeeded);
1841        case -591717471: /*asNeededBoolean*/  return new Property("asNeeded[x]", "boolean", "If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example \"pain\", \"on flare-up\", etc.", 0, 1, asNeeded);
1842        case 1556420122: /*asNeededCodeableConcept*/  return new Property("asNeeded[x]", "CodeableConcept", "If a CodeableConcept is present, it indicates the pre-condition for performing the service.  For example \"pain\", \"on flare-up\", etc.", 0, 1, asNeeded);
1843        case -1500852503: /*authoredOn*/  return new Property("authoredOn", "dateTime", "When the request transitioned to being actionable.", 0, 1, authoredOn);
1844        case 693933948: /*requester*/  return new Property("requester", "Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device)", "The individual who initiated the request and has responsibility for its activation.", 0, 1, requester);
1845        case -901444568: /*performerType*/  return new Property("performerType", "CodeableConcept", "Desired type of performer for doing the requested service.", 0, 1, performerType);
1846        case 481140686: /*performer*/  return new Property("performer", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|HealthcareService|Patient|Device|RelatedPerson)", "The desired performer for doing the requested service.  For example, the surgeon, dermatopathologist, endoscopist, etc.", 0, java.lang.Integer.MAX_VALUE, performer);
1847        case 1901043637: /*location*/  return new Property("location", "CodeableReference(Location)", "The preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center.", 0, java.lang.Integer.MAX_VALUE, location);
1848        case -934964668: /*reason*/  return new Property("reason", "CodeableReference(Condition|Observation|DiagnosticReport|DocumentReference|DetectedIssue)", "An explanation or justification for why this service is being requested in coded or textual form.   This is often for billing purposes.  May relate to the resources referred to in `supportingInfo`.", 0, java.lang.Integer.MAX_VALUE, reason);
1849        case 73049818: /*insurance*/  return new Property("insurance", "Reference(Coverage|ClaimResponse)", "Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service.", 0, java.lang.Integer.MAX_VALUE, insurance);
1850        case 1922406657: /*supportingInfo*/  return new Property("supportingInfo", "Reference(Any)", "Additional clinical information about the patient or specimen that may influence the services or their interpretations.     This information includes diagnosis, clinical findings and other observations.  In laboratory ordering these are typically referred to as \"ask at order entry questions (AOEs)\".  This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example,  reporting the amount of inspired oxygen for blood gas measurements.", 0, java.lang.Integer.MAX_VALUE, supportingInfo);
1851        case -2132868344: /*specimen*/  return new Property("specimen", "Reference(Specimen)", "One or more specimens that the laboratory procedure will use.", 0, java.lang.Integer.MAX_VALUE, specimen);
1852        case 1702620169: /*bodySite*/  return new Property("bodySite", "CodeableConcept", "Anatomic location where the procedure should be performed. This is the target site.", 0, java.lang.Integer.MAX_VALUE, bodySite);
1853        case 3387378: /*note*/  return new Property("note", "Annotation", "Any other notes and comments made about the service request. For example, internal billing notes.", 0, java.lang.Integer.MAX_VALUE, note);
1854        case 737543241: /*patientInstruction*/  return new Property("patientInstruction", "string", "Instructions in terms that are understood by the patient or consumer.", 0, 1, patientInstruction);
1855        case 1538891575: /*relevantHistory*/  return new Property("relevantHistory", "Reference(Provenance)", "Key events in the history of the request.", 0, java.lang.Integer.MAX_VALUE, relevantHistory);
1856        default: return super.getNamedProperty(_hash, _name, _checkValid);
1857        }
1858
1859      }
1860
1861      @Override
1862      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1863        switch (hash) {
1864        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1865        case 8911915: /*instantiatesCanonical*/ return this.instantiatesCanonical == null ? new Base[0] : this.instantiatesCanonical.toArray(new Base[this.instantiatesCanonical.size()]); // CanonicalType
1866        case -1926393373: /*instantiatesUri*/ return this.instantiatesUri == null ? new Base[0] : this.instantiatesUri.toArray(new Base[this.instantiatesUri.size()]); // UriType
1867        case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference
1868        case -430332865: /*replaces*/ return this.replaces == null ? new Base[0] : this.replaces.toArray(new Base[this.replaces.size()]); // Reference
1869        case 395923612: /*requisition*/ return this.requisition == null ? new Base[0] : new Base[] {this.requisition}; // Identifier
1870        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<RequestStatus>
1871        case -1183762788: /*intent*/ return this.intent == null ? new Base[0] : new Base[] {this.intent}; // Enumeration<RequestIntent>
1872        case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept
1873        case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // Enumeration<RequestPriority>
1874        case -1788508167: /*doNotPerform*/ return this.doNotPerform == null ? new Base[0] : new Base[] {this.doNotPerform}; // BooleanType
1875        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
1876        case 1187338559: /*orderDetail*/ return this.orderDetail == null ? new Base[0] : this.orderDetail.toArray(new Base[this.orderDetail.size()]); // CodeableConcept
1877        case -1285004149: /*quantity*/ return this.quantity == null ? new Base[0] : new Base[] {this.quantity}; // DataType
1878        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
1879        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
1880        case 1687874001: /*occurrence*/ return this.occurrence == null ? new Base[0] : new Base[] {this.occurrence}; // DataType
1881        case -1432923513: /*asNeeded*/ return this.asNeeded == null ? new Base[0] : new Base[] {this.asNeeded}; // DataType
1882        case -1500852503: /*authoredOn*/ return this.authoredOn == null ? new Base[0] : new Base[] {this.authoredOn}; // DateTimeType
1883        case 693933948: /*requester*/ return this.requester == null ? new Base[0] : new Base[] {this.requester}; // Reference
1884        case -901444568: /*performerType*/ return this.performerType == null ? new Base[0] : new Base[] {this.performerType}; // CodeableConcept
1885        case 481140686: /*performer*/ return this.performer == null ? new Base[0] : this.performer.toArray(new Base[this.performer.size()]); // Reference
1886        case 1901043637: /*location*/ return this.location == null ? new Base[0] : this.location.toArray(new Base[this.location.size()]); // CodeableReference
1887        case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // CodeableReference
1888        case 73049818: /*insurance*/ return this.insurance == null ? new Base[0] : this.insurance.toArray(new Base[this.insurance.size()]); // Reference
1889        case 1922406657: /*supportingInfo*/ return this.supportingInfo == null ? new Base[0] : this.supportingInfo.toArray(new Base[this.supportingInfo.size()]); // Reference
1890        case -2132868344: /*specimen*/ return this.specimen == null ? new Base[0] : this.specimen.toArray(new Base[this.specimen.size()]); // Reference
1891        case 1702620169: /*bodySite*/ return this.bodySite == null ? new Base[0] : this.bodySite.toArray(new Base[this.bodySite.size()]); // CodeableConcept
1892        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
1893        case 737543241: /*patientInstruction*/ return this.patientInstruction == null ? new Base[0] : new Base[] {this.patientInstruction}; // StringType
1894        case 1538891575: /*relevantHistory*/ return this.relevantHistory == null ? new Base[0] : this.relevantHistory.toArray(new Base[this.relevantHistory.size()]); // Reference
1895        default: return super.getProperty(hash, name, checkValid);
1896        }
1897
1898      }
1899
1900      @Override
1901      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1902        switch (hash) {
1903        case -1618432855: // identifier
1904          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1905          return value;
1906        case 8911915: // instantiatesCanonical
1907          this.getInstantiatesCanonical().add(TypeConvertor.castToCanonical(value)); // CanonicalType
1908          return value;
1909        case -1926393373: // instantiatesUri
1910          this.getInstantiatesUri().add(TypeConvertor.castToUri(value)); // UriType
1911          return value;
1912        case -332612366: // basedOn
1913          this.getBasedOn().add(TypeConvertor.castToReference(value)); // Reference
1914          return value;
1915        case -430332865: // replaces
1916          this.getReplaces().add(TypeConvertor.castToReference(value)); // Reference
1917          return value;
1918        case 395923612: // requisition
1919          this.requisition = TypeConvertor.castToIdentifier(value); // Identifier
1920          return value;
1921        case -892481550: // status
1922          value = new RequestStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1923          this.status = (Enumeration) value; // Enumeration<RequestStatus>
1924          return value;
1925        case -1183762788: // intent
1926          value = new RequestIntentEnumFactory().fromType(TypeConvertor.castToCode(value));
1927          this.intent = (Enumeration) value; // Enumeration<RequestIntent>
1928          return value;
1929        case 50511102: // category
1930          this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1931          return value;
1932        case -1165461084: // priority
1933          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
1934          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
1935          return value;
1936        case -1788508167: // doNotPerform
1937          this.doNotPerform = TypeConvertor.castToBoolean(value); // BooleanType
1938          return value;
1939        case 3059181: // code
1940          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1941          return value;
1942        case 1187338559: // orderDetail
1943          this.getOrderDetail().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1944          return value;
1945        case -1285004149: // quantity
1946          this.quantity = TypeConvertor.castToType(value); // DataType
1947          return value;
1948        case -1867885268: // subject
1949          this.subject = TypeConvertor.castToReference(value); // Reference
1950          return value;
1951        case 1524132147: // encounter
1952          this.encounter = TypeConvertor.castToReference(value); // Reference
1953          return value;
1954        case 1687874001: // occurrence
1955          this.occurrence = TypeConvertor.castToType(value); // DataType
1956          return value;
1957        case -1432923513: // asNeeded
1958          this.asNeeded = TypeConvertor.castToType(value); // DataType
1959          return value;
1960        case -1500852503: // authoredOn
1961          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
1962          return value;
1963        case 693933948: // requester
1964          this.requester = TypeConvertor.castToReference(value); // Reference
1965          return value;
1966        case -901444568: // performerType
1967          this.performerType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1968          return value;
1969        case 481140686: // performer
1970          this.getPerformer().add(TypeConvertor.castToReference(value)); // Reference
1971          return value;
1972        case 1901043637: // location
1973          this.getLocation().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference
1974          return value;
1975        case -934964668: // reason
1976          this.getReason().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference
1977          return value;
1978        case 73049818: // insurance
1979          this.getInsurance().add(TypeConvertor.castToReference(value)); // Reference
1980          return value;
1981        case 1922406657: // supportingInfo
1982          this.getSupportingInfo().add(TypeConvertor.castToReference(value)); // Reference
1983          return value;
1984        case -2132868344: // specimen
1985          this.getSpecimen().add(TypeConvertor.castToReference(value)); // Reference
1986          return value;
1987        case 1702620169: // bodySite
1988          this.getBodySite().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1989          return value;
1990        case 3387378: // note
1991          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
1992          return value;
1993        case 737543241: // patientInstruction
1994          this.patientInstruction = TypeConvertor.castToString(value); // StringType
1995          return value;
1996        case 1538891575: // relevantHistory
1997          this.getRelevantHistory().add(TypeConvertor.castToReference(value)); // Reference
1998          return value;
1999        default: return super.setProperty(hash, name, value);
2000        }
2001
2002      }
2003
2004      @Override
2005      public Base setProperty(String name, Base value) throws FHIRException {
2006        if (name.equals("identifier")) {
2007          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
2008        } else if (name.equals("instantiatesCanonical")) {
2009          this.getInstantiatesCanonical().add(TypeConvertor.castToCanonical(value));
2010        } else if (name.equals("instantiatesUri")) {
2011          this.getInstantiatesUri().add(TypeConvertor.castToUri(value));
2012        } else if (name.equals("basedOn")) {
2013          this.getBasedOn().add(TypeConvertor.castToReference(value));
2014        } else if (name.equals("replaces")) {
2015          this.getReplaces().add(TypeConvertor.castToReference(value));
2016        } else if (name.equals("requisition")) {
2017          this.requisition = TypeConvertor.castToIdentifier(value); // Identifier
2018        } else if (name.equals("status")) {
2019          value = new RequestStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
2020          this.status = (Enumeration) value; // Enumeration<RequestStatus>
2021        } else if (name.equals("intent")) {
2022          value = new RequestIntentEnumFactory().fromType(TypeConvertor.castToCode(value));
2023          this.intent = (Enumeration) value; // Enumeration<RequestIntent>
2024        } else if (name.equals("category")) {
2025          this.getCategory().add(TypeConvertor.castToCodeableConcept(value));
2026        } else if (name.equals("priority")) {
2027          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
2028          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
2029        } else if (name.equals("doNotPerform")) {
2030          this.doNotPerform = TypeConvertor.castToBoolean(value); // BooleanType
2031        } else if (name.equals("code")) {
2032          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2033        } else if (name.equals("orderDetail")) {
2034          this.getOrderDetail().add(TypeConvertor.castToCodeableConcept(value));
2035        } else if (name.equals("quantity[x]")) {
2036          this.quantity = TypeConvertor.castToType(value); // DataType
2037        } else if (name.equals("subject")) {
2038          this.subject = TypeConvertor.castToReference(value); // Reference
2039        } else if (name.equals("encounter")) {
2040          this.encounter = TypeConvertor.castToReference(value); // Reference
2041        } else if (name.equals("occurrence[x]")) {
2042          this.occurrence = TypeConvertor.castToType(value); // DataType
2043        } else if (name.equals("asNeeded[x]")) {
2044          this.asNeeded = TypeConvertor.castToType(value); // DataType
2045        } else if (name.equals("authoredOn")) {
2046          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
2047        } else if (name.equals("requester")) {
2048          this.requester = TypeConvertor.castToReference(value); // Reference
2049        } else if (name.equals("performerType")) {
2050          this.performerType = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2051        } else if (name.equals("performer")) {
2052          this.getPerformer().add(TypeConvertor.castToReference(value));
2053        } else if (name.equals("location")) {
2054          this.getLocation().add(TypeConvertor.castToCodeableReference(value));
2055        } else if (name.equals("reason")) {
2056          this.getReason().add(TypeConvertor.castToCodeableReference(value));
2057        } else if (name.equals("insurance")) {
2058          this.getInsurance().add(TypeConvertor.castToReference(value));
2059        } else if (name.equals("supportingInfo")) {
2060          this.getSupportingInfo().add(TypeConvertor.castToReference(value));
2061        } else if (name.equals("specimen")) {
2062          this.getSpecimen().add(TypeConvertor.castToReference(value));
2063        } else if (name.equals("bodySite")) {
2064          this.getBodySite().add(TypeConvertor.castToCodeableConcept(value));
2065        } else if (name.equals("note")) {
2066          this.getNote().add(TypeConvertor.castToAnnotation(value));
2067        } else if (name.equals("patientInstruction")) {
2068          this.patientInstruction = TypeConvertor.castToString(value); // StringType
2069        } else if (name.equals("relevantHistory")) {
2070          this.getRelevantHistory().add(TypeConvertor.castToReference(value));
2071        } else
2072          return super.setProperty(name, value);
2073        return value;
2074      }
2075
2076      @Override
2077      public Base makeProperty(int hash, String name) throws FHIRException {
2078        switch (hash) {
2079        case -1618432855:  return addIdentifier(); 
2080        case 8911915:  return addInstantiatesCanonicalElement();
2081        case -1926393373:  return addInstantiatesUriElement();
2082        case -332612366:  return addBasedOn(); 
2083        case -430332865:  return addReplaces(); 
2084        case 395923612:  return getRequisition();
2085        case -892481550:  return getStatusElement();
2086        case -1183762788:  return getIntentElement();
2087        case 50511102:  return addCategory(); 
2088        case -1165461084:  return getPriorityElement();
2089        case -1788508167:  return getDoNotPerformElement();
2090        case 3059181:  return getCode();
2091        case 1187338559:  return addOrderDetail(); 
2092        case -515002347:  return getQuantity();
2093        case -1285004149:  return getQuantity();
2094        case -1867885268:  return getSubject();
2095        case 1524132147:  return getEncounter();
2096        case -2022646513:  return getOccurrence();
2097        case 1687874001:  return getOccurrence();
2098        case -544329575:  return getAsNeeded();
2099        case -1432923513:  return getAsNeeded();
2100        case -1500852503:  return getAuthoredOnElement();
2101        case 693933948:  return getRequester();
2102        case -901444568:  return getPerformerType();
2103        case 481140686:  return addPerformer(); 
2104        case 1901043637:  return addLocation(); 
2105        case -934964668:  return addReason(); 
2106        case 73049818:  return addInsurance(); 
2107        case 1922406657:  return addSupportingInfo(); 
2108        case -2132868344:  return addSpecimen(); 
2109        case 1702620169:  return addBodySite(); 
2110        case 3387378:  return addNote(); 
2111        case 737543241:  return getPatientInstructionElement();
2112        case 1538891575:  return addRelevantHistory(); 
2113        default: return super.makeProperty(hash, name);
2114        }
2115
2116      }
2117
2118      @Override
2119      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2120        switch (hash) {
2121        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
2122        case 8911915: /*instantiatesCanonical*/ return new String[] {"canonical"};
2123        case -1926393373: /*instantiatesUri*/ return new String[] {"uri"};
2124        case -332612366: /*basedOn*/ return new String[] {"Reference"};
2125        case -430332865: /*replaces*/ return new String[] {"Reference"};
2126        case 395923612: /*requisition*/ return new String[] {"Identifier"};
2127        case -892481550: /*status*/ return new String[] {"code"};
2128        case -1183762788: /*intent*/ return new String[] {"code"};
2129        case 50511102: /*category*/ return new String[] {"CodeableConcept"};
2130        case -1165461084: /*priority*/ return new String[] {"code"};
2131        case -1788508167: /*doNotPerform*/ return new String[] {"boolean"};
2132        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
2133        case 1187338559: /*orderDetail*/ return new String[] {"CodeableConcept"};
2134        case -1285004149: /*quantity*/ return new String[] {"Quantity", "Ratio", "Range"};
2135        case -1867885268: /*subject*/ return new String[] {"Reference"};
2136        case 1524132147: /*encounter*/ return new String[] {"Reference"};
2137        case 1687874001: /*occurrence*/ return new String[] {"dateTime", "Period", "Timing"};
2138        case -1432923513: /*asNeeded*/ return new String[] {"boolean", "CodeableConcept"};
2139        case -1500852503: /*authoredOn*/ return new String[] {"dateTime"};
2140        case 693933948: /*requester*/ return new String[] {"Reference"};
2141        case -901444568: /*performerType*/ return new String[] {"CodeableConcept"};
2142        case 481140686: /*performer*/ return new String[] {"Reference"};
2143        case 1901043637: /*location*/ return new String[] {"CodeableReference"};
2144        case -934964668: /*reason*/ return new String[] {"CodeableReference"};
2145        case 73049818: /*insurance*/ return new String[] {"Reference"};
2146        case 1922406657: /*supportingInfo*/ return new String[] {"Reference"};
2147        case -2132868344: /*specimen*/ return new String[] {"Reference"};
2148        case 1702620169: /*bodySite*/ return new String[] {"CodeableConcept"};
2149        case 3387378: /*note*/ return new String[] {"Annotation"};
2150        case 737543241: /*patientInstruction*/ return new String[] {"string"};
2151        case 1538891575: /*relevantHistory*/ return new String[] {"Reference"};
2152        default: return super.getTypesForProperty(hash, name);
2153        }
2154
2155      }
2156
2157      @Override
2158      public Base addChild(String name) throws FHIRException {
2159        if (name.equals("identifier")) {
2160          return addIdentifier();
2161        }
2162        else if (name.equals("instantiatesCanonical")) {
2163          throw new FHIRException("Cannot call addChild on a primitive type ServiceRequest.instantiatesCanonical");
2164        }
2165        else if (name.equals("instantiatesUri")) {
2166          throw new FHIRException("Cannot call addChild on a primitive type ServiceRequest.instantiatesUri");
2167        }
2168        else if (name.equals("basedOn")) {
2169          return addBasedOn();
2170        }
2171        else if (name.equals("replaces")) {
2172          return addReplaces();
2173        }
2174        else if (name.equals("requisition")) {
2175          this.requisition = new Identifier();
2176          return this.requisition;
2177        }
2178        else if (name.equals("status")) {
2179          throw new FHIRException("Cannot call addChild on a primitive type ServiceRequest.status");
2180        }
2181        else if (name.equals("intent")) {
2182          throw new FHIRException("Cannot call addChild on a primitive type ServiceRequest.intent");
2183        }
2184        else if (name.equals("category")) {
2185          return addCategory();
2186        }
2187        else if (name.equals("priority")) {
2188          throw new FHIRException("Cannot call addChild on a primitive type ServiceRequest.priority");
2189        }
2190        else if (name.equals("doNotPerform")) {
2191          throw new FHIRException("Cannot call addChild on a primitive type ServiceRequest.doNotPerform");
2192        }
2193        else if (name.equals("code")) {
2194          this.code = new CodeableConcept();
2195          return this.code;
2196        }
2197        else if (name.equals("orderDetail")) {
2198          return addOrderDetail();
2199        }
2200        else if (name.equals("quantityQuantity")) {
2201          this.quantity = new Quantity();
2202          return this.quantity;
2203        }
2204        else if (name.equals("quantityRatio")) {
2205          this.quantity = new Ratio();
2206          return this.quantity;
2207        }
2208        else if (name.equals("quantityRange")) {
2209          this.quantity = new Range();
2210          return this.quantity;
2211        }
2212        else if (name.equals("subject")) {
2213          this.subject = new Reference();
2214          return this.subject;
2215        }
2216        else if (name.equals("encounter")) {
2217          this.encounter = new Reference();
2218          return this.encounter;
2219        }
2220        else if (name.equals("occurrenceDateTime")) {
2221          this.occurrence = new DateTimeType();
2222          return this.occurrence;
2223        }
2224        else if (name.equals("occurrencePeriod")) {
2225          this.occurrence = new Period();
2226          return this.occurrence;
2227        }
2228        else if (name.equals("occurrenceTiming")) {
2229          this.occurrence = new Timing();
2230          return this.occurrence;
2231        }
2232        else if (name.equals("asNeededBoolean")) {
2233          this.asNeeded = new BooleanType();
2234          return this.asNeeded;
2235        }
2236        else if (name.equals("asNeededCodeableConcept")) {
2237          this.asNeeded = new CodeableConcept();
2238          return this.asNeeded;
2239        }
2240        else if (name.equals("authoredOn")) {
2241          throw new FHIRException("Cannot call addChild on a primitive type ServiceRequest.authoredOn");
2242        }
2243        else if (name.equals("requester")) {
2244          this.requester = new Reference();
2245          return this.requester;
2246        }
2247        else if (name.equals("performerType")) {
2248          this.performerType = new CodeableConcept();
2249          return this.performerType;
2250        }
2251        else if (name.equals("performer")) {
2252          return addPerformer();
2253        }
2254        else if (name.equals("location")) {
2255          return addLocation();
2256        }
2257        else if (name.equals("reason")) {
2258          return addReason();
2259        }
2260        else if (name.equals("insurance")) {
2261          return addInsurance();
2262        }
2263        else if (name.equals("supportingInfo")) {
2264          return addSupportingInfo();
2265        }
2266        else if (name.equals("specimen")) {
2267          return addSpecimen();
2268        }
2269        else if (name.equals("bodySite")) {
2270          return addBodySite();
2271        }
2272        else if (name.equals("note")) {
2273          return addNote();
2274        }
2275        else if (name.equals("patientInstruction")) {
2276          throw new FHIRException("Cannot call addChild on a primitive type ServiceRequest.patientInstruction");
2277        }
2278        else if (name.equals("relevantHistory")) {
2279          return addRelevantHistory();
2280        }
2281        else
2282          return super.addChild(name);
2283      }
2284
2285  public String fhirType() {
2286    return "ServiceRequest";
2287
2288  }
2289
2290      public ServiceRequest copy() {
2291        ServiceRequest dst = new ServiceRequest();
2292        copyValues(dst);
2293        return dst;
2294      }
2295
2296      public void copyValues(ServiceRequest dst) {
2297        super.copyValues(dst);
2298        if (identifier != null) {
2299          dst.identifier = new ArrayList<Identifier>();
2300          for (Identifier i : identifier)
2301            dst.identifier.add(i.copy());
2302        };
2303        if (instantiatesCanonical != null) {
2304          dst.instantiatesCanonical = new ArrayList<CanonicalType>();
2305          for (CanonicalType i : instantiatesCanonical)
2306            dst.instantiatesCanonical.add(i.copy());
2307        };
2308        if (instantiatesUri != null) {
2309          dst.instantiatesUri = new ArrayList<UriType>();
2310          for (UriType i : instantiatesUri)
2311            dst.instantiatesUri.add(i.copy());
2312        };
2313        if (basedOn != null) {
2314          dst.basedOn = new ArrayList<Reference>();
2315          for (Reference i : basedOn)
2316            dst.basedOn.add(i.copy());
2317        };
2318        if (replaces != null) {
2319          dst.replaces = new ArrayList<Reference>();
2320          for (Reference i : replaces)
2321            dst.replaces.add(i.copy());
2322        };
2323        dst.requisition = requisition == null ? null : requisition.copy();
2324        dst.status = status == null ? null : status.copy();
2325        dst.intent = intent == null ? null : intent.copy();
2326        if (category != null) {
2327          dst.category = new ArrayList<CodeableConcept>();
2328          for (CodeableConcept i : category)
2329            dst.category.add(i.copy());
2330        };
2331        dst.priority = priority == null ? null : priority.copy();
2332        dst.doNotPerform = doNotPerform == null ? null : doNotPerform.copy();
2333        dst.code = code == null ? null : code.copy();
2334        if (orderDetail != null) {
2335          dst.orderDetail = new ArrayList<CodeableConcept>();
2336          for (CodeableConcept i : orderDetail)
2337            dst.orderDetail.add(i.copy());
2338        };
2339        dst.quantity = quantity == null ? null : quantity.copy();
2340        dst.subject = subject == null ? null : subject.copy();
2341        dst.encounter = encounter == null ? null : encounter.copy();
2342        dst.occurrence = occurrence == null ? null : occurrence.copy();
2343        dst.asNeeded = asNeeded == null ? null : asNeeded.copy();
2344        dst.authoredOn = authoredOn == null ? null : authoredOn.copy();
2345        dst.requester = requester == null ? null : requester.copy();
2346        dst.performerType = performerType == null ? null : performerType.copy();
2347        if (performer != null) {
2348          dst.performer = new ArrayList<Reference>();
2349          for (Reference i : performer)
2350            dst.performer.add(i.copy());
2351        };
2352        if (location != null) {
2353          dst.location = new ArrayList<CodeableReference>();
2354          for (CodeableReference i : location)
2355            dst.location.add(i.copy());
2356        };
2357        if (reason != null) {
2358          dst.reason = new ArrayList<CodeableReference>();
2359          for (CodeableReference i : reason)
2360            dst.reason.add(i.copy());
2361        };
2362        if (insurance != null) {
2363          dst.insurance = new ArrayList<Reference>();
2364          for (Reference i : insurance)
2365            dst.insurance.add(i.copy());
2366        };
2367        if (supportingInfo != null) {
2368          dst.supportingInfo = new ArrayList<Reference>();
2369          for (Reference i : supportingInfo)
2370            dst.supportingInfo.add(i.copy());
2371        };
2372        if (specimen != null) {
2373          dst.specimen = new ArrayList<Reference>();
2374          for (Reference i : specimen)
2375            dst.specimen.add(i.copy());
2376        };
2377        if (bodySite != null) {
2378          dst.bodySite = new ArrayList<CodeableConcept>();
2379          for (CodeableConcept i : bodySite)
2380            dst.bodySite.add(i.copy());
2381        };
2382        if (note != null) {
2383          dst.note = new ArrayList<Annotation>();
2384          for (Annotation i : note)
2385            dst.note.add(i.copy());
2386        };
2387        dst.patientInstruction = patientInstruction == null ? null : patientInstruction.copy();
2388        if (relevantHistory != null) {
2389          dst.relevantHistory = new ArrayList<Reference>();
2390          for (Reference i : relevantHistory)
2391            dst.relevantHistory.add(i.copy());
2392        };
2393      }
2394
2395      protected ServiceRequest typedCopy() {
2396        return copy();
2397      }
2398
2399      @Override
2400      public boolean equalsDeep(Base other_) {
2401        if (!super.equalsDeep(other_))
2402          return false;
2403        if (!(other_ instanceof ServiceRequest))
2404          return false;
2405        ServiceRequest o = (ServiceRequest) other_;
2406        return compareDeep(identifier, o.identifier, true) && compareDeep(instantiatesCanonical, o.instantiatesCanonical, true)
2407           && compareDeep(instantiatesUri, o.instantiatesUri, true) && compareDeep(basedOn, o.basedOn, true)
2408           && compareDeep(replaces, o.replaces, true) && compareDeep(requisition, o.requisition, true) && compareDeep(status, o.status, true)
2409           && compareDeep(intent, o.intent, true) && compareDeep(category, o.category, true) && compareDeep(priority, o.priority, true)
2410           && compareDeep(doNotPerform, o.doNotPerform, true) && compareDeep(code, o.code, true) && compareDeep(orderDetail, o.orderDetail, true)
2411           && compareDeep(quantity, o.quantity, true) && compareDeep(subject, o.subject, true) && compareDeep(encounter, o.encounter, true)
2412           && compareDeep(occurrence, o.occurrence, true) && compareDeep(asNeeded, o.asNeeded, true) && compareDeep(authoredOn, o.authoredOn, true)
2413           && compareDeep(requester, o.requester, true) && compareDeep(performerType, o.performerType, true)
2414           && compareDeep(performer, o.performer, true) && compareDeep(location, o.location, true) && compareDeep(reason, o.reason, true)
2415           && compareDeep(insurance, o.insurance, true) && compareDeep(supportingInfo, o.supportingInfo, true)
2416           && compareDeep(specimen, o.specimen, true) && compareDeep(bodySite, o.bodySite, true) && compareDeep(note, o.note, true)
2417           && compareDeep(patientInstruction, o.patientInstruction, true) && compareDeep(relevantHistory, o.relevantHistory, true)
2418          ;
2419      }
2420
2421      @Override
2422      public boolean equalsShallow(Base other_) {
2423        if (!super.equalsShallow(other_))
2424          return false;
2425        if (!(other_ instanceof ServiceRequest))
2426          return false;
2427        ServiceRequest o = (ServiceRequest) other_;
2428        return compareValues(instantiatesCanonical, o.instantiatesCanonical, true) && compareValues(instantiatesUri, o.instantiatesUri, true)
2429           && compareValues(status, o.status, true) && compareValues(intent, o.intent, true) && compareValues(priority, o.priority, true)
2430           && compareValues(doNotPerform, o.doNotPerform, true) && compareValues(authoredOn, o.authoredOn, true)
2431           && compareValues(patientInstruction, o.patientInstruction, true);
2432      }
2433
2434      public boolean isEmpty() {
2435        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, instantiatesCanonical
2436          , instantiatesUri, basedOn, replaces, requisition, status, intent, category, priority
2437          , doNotPerform, code, orderDetail, quantity, subject, encounter, occurrence, asNeeded
2438          , authoredOn, requester, performerType, performer, location, reason, insurance
2439          , supportingInfo, specimen, bodySite, note, patientInstruction, relevantHistory
2440          );
2441      }
2442
2443  @Override
2444  public ResourceType getResourceType() {
2445    return ResourceType.ServiceRequest;
2446   }
2447
2448 /**
2449   * Search parameter: <b>authored</b>
2450   * <p>
2451   * Description: <b>Date request signed</b><br>
2452   * Type: <b>date</b><br>
2453   * Path: <b>ServiceRequest.authoredOn</b><br>
2454   * </p>
2455   */
2456  @SearchParamDefinition(name="authored", path="ServiceRequest.authoredOn", description="Date request signed", type="date" )
2457  public static final String SP_AUTHORED = "authored";
2458 /**
2459   * <b>Fluent Client</b> search parameter constant for <b>authored</b>
2460   * <p>
2461   * Description: <b>Date request signed</b><br>
2462   * Type: <b>date</b><br>
2463   * Path: <b>ServiceRequest.authoredOn</b><br>
2464   * </p>
2465   */
2466  public static final ca.uhn.fhir.rest.gclient.DateClientParam AUTHORED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_AUTHORED);
2467
2468 /**
2469   * Search parameter: <b>based-on</b>
2470   * <p>
2471   * Description: <b>What request fulfills</b><br>
2472   * Type: <b>reference</b><br>
2473   * Path: <b>ServiceRequest.basedOn</b><br>
2474   * </p>
2475   */
2476  @SearchParamDefinition(name="based-on", path="ServiceRequest.basedOn", description="What request fulfills", type="reference", target={CarePlan.class, MedicationRequest.class, ServiceRequest.class } )
2477  public static final String SP_BASED_ON = "based-on";
2478 /**
2479   * <b>Fluent Client</b> search parameter constant for <b>based-on</b>
2480   * <p>
2481   * Description: <b>What request fulfills</b><br>
2482   * Type: <b>reference</b><br>
2483   * Path: <b>ServiceRequest.basedOn</b><br>
2484   * </p>
2485   */
2486  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASED_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASED_ON);
2487
2488/**
2489   * Constant for fluent queries to be used to add include statements. Specifies
2490   * the path value of "<b>ServiceRequest:based-on</b>".
2491   */
2492  public static final ca.uhn.fhir.model.api.Include INCLUDE_BASED_ON = new ca.uhn.fhir.model.api.Include("ServiceRequest:based-on").toLocked();
2493
2494 /**
2495   * Search parameter: <b>body-site</b>
2496   * <p>
2497   * Description: <b>Where procedure is going to be done</b><br>
2498   * Type: <b>token</b><br>
2499   * Path: <b>ServiceRequest.bodySite</b><br>
2500   * </p>
2501   */
2502  @SearchParamDefinition(name="body-site", path="ServiceRequest.bodySite", description="Where procedure is going to be done", type="token" )
2503  public static final String SP_BODY_SITE = "body-site";
2504 /**
2505   * <b>Fluent Client</b> search parameter constant for <b>body-site</b>
2506   * <p>
2507   * Description: <b>Where procedure is going to be done</b><br>
2508   * Type: <b>token</b><br>
2509   * Path: <b>ServiceRequest.bodySite</b><br>
2510   * </p>
2511   */
2512  public static final ca.uhn.fhir.rest.gclient.TokenClientParam BODY_SITE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_BODY_SITE);
2513
2514 /**
2515   * Search parameter: <b>category</b>
2516   * <p>
2517   * Description: <b>Classification of service</b><br>
2518   * Type: <b>token</b><br>
2519   * Path: <b>ServiceRequest.category</b><br>
2520   * </p>
2521   */
2522  @SearchParamDefinition(name="category", path="ServiceRequest.category", description="Classification of service", type="token" )
2523  public static final String SP_CATEGORY = "category";
2524 /**
2525   * <b>Fluent Client</b> search parameter constant for <b>category</b>
2526   * <p>
2527   * Description: <b>Classification of service</b><br>
2528   * Type: <b>token</b><br>
2529   * Path: <b>ServiceRequest.category</b><br>
2530   * </p>
2531   */
2532  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY);
2533
2534 /**
2535   * Search parameter: <b>instantiates-canonical</b>
2536   * <p>
2537   * Description: <b>Instantiates FHIR protocol or definition</b><br>
2538   * Type: <b>reference</b><br>
2539   * Path: <b>ServiceRequest.instantiatesCanonical</b><br>
2540   * </p>
2541   */
2542  @SearchParamDefinition(name="instantiates-canonical", path="ServiceRequest.instantiatesCanonical", description="Instantiates FHIR protocol or definition", type="reference", target={ActivityDefinition.class, PlanDefinition.class } )
2543  public static final String SP_INSTANTIATES_CANONICAL = "instantiates-canonical";
2544 /**
2545   * <b>Fluent Client</b> search parameter constant for <b>instantiates-canonical</b>
2546   * <p>
2547   * Description: <b>Instantiates FHIR protocol or definition</b><br>
2548   * Type: <b>reference</b><br>
2549   * Path: <b>ServiceRequest.instantiatesCanonical</b><br>
2550   * </p>
2551   */
2552  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INSTANTIATES_CANONICAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INSTANTIATES_CANONICAL);
2553
2554/**
2555   * Constant for fluent queries to be used to add include statements. Specifies
2556   * the path value of "<b>ServiceRequest:instantiates-canonical</b>".
2557   */
2558  public static final ca.uhn.fhir.model.api.Include INCLUDE_INSTANTIATES_CANONICAL = new ca.uhn.fhir.model.api.Include("ServiceRequest:instantiates-canonical").toLocked();
2559
2560 /**
2561   * Search parameter: <b>instantiates-uri</b>
2562   * <p>
2563   * Description: <b>Instantiates external protocol or definition</b><br>
2564   * Type: <b>uri</b><br>
2565   * Path: <b>ServiceRequest.instantiatesUri</b><br>
2566   * </p>
2567   */
2568  @SearchParamDefinition(name="instantiates-uri", path="ServiceRequest.instantiatesUri", description="Instantiates external protocol or definition", type="uri" )
2569  public static final String SP_INSTANTIATES_URI = "instantiates-uri";
2570 /**
2571   * <b>Fluent Client</b> search parameter constant for <b>instantiates-uri</b>
2572   * <p>
2573   * Description: <b>Instantiates external protocol or definition</b><br>
2574   * Type: <b>uri</b><br>
2575   * Path: <b>ServiceRequest.instantiatesUri</b><br>
2576   * </p>
2577   */
2578  public static final ca.uhn.fhir.rest.gclient.UriClientParam INSTANTIATES_URI = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_INSTANTIATES_URI);
2579
2580 /**
2581   * Search parameter: <b>intent</b>
2582   * <p>
2583   * Description: <b>proposal | plan | directive | order +</b><br>
2584   * Type: <b>token</b><br>
2585   * Path: <b>ServiceRequest.intent</b><br>
2586   * </p>
2587   */
2588  @SearchParamDefinition(name="intent", path="ServiceRequest.intent", description="proposal | plan | directive | order +", type="token" )
2589  public static final String SP_INTENT = "intent";
2590 /**
2591   * <b>Fluent Client</b> search parameter constant for <b>intent</b>
2592   * <p>
2593   * Description: <b>proposal | plan | directive | order +</b><br>
2594   * Type: <b>token</b><br>
2595   * Path: <b>ServiceRequest.intent</b><br>
2596   * </p>
2597   */
2598  public static final ca.uhn.fhir.rest.gclient.TokenClientParam INTENT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_INTENT);
2599
2600 /**
2601   * Search parameter: <b>occurrence</b>
2602   * <p>
2603   * Description: <b>When service should occur</b><br>
2604   * Type: <b>date</b><br>
2605   * Path: <b>ServiceRequest.occurrence</b><br>
2606   * </p>
2607   */
2608  @SearchParamDefinition(name="occurrence", path="ServiceRequest.occurrence", description="When service should occur", type="date" )
2609  public static final String SP_OCCURRENCE = "occurrence";
2610 /**
2611   * <b>Fluent Client</b> search parameter constant for <b>occurrence</b>
2612   * <p>
2613   * Description: <b>When service should occur</b><br>
2614   * Type: <b>date</b><br>
2615   * Path: <b>ServiceRequest.occurrence</b><br>
2616   * </p>
2617   */
2618  public static final ca.uhn.fhir.rest.gclient.DateClientParam OCCURRENCE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_OCCURRENCE);
2619
2620 /**
2621   * Search parameter: <b>performer-type</b>
2622   * <p>
2623   * Description: <b>Performer role</b><br>
2624   * Type: <b>token</b><br>
2625   * Path: <b>ServiceRequest.performerType</b><br>
2626   * </p>
2627   */
2628  @SearchParamDefinition(name="performer-type", path="ServiceRequest.performerType", description="Performer role", type="token" )
2629  public static final String SP_PERFORMER_TYPE = "performer-type";
2630 /**
2631   * <b>Fluent Client</b> search parameter constant for <b>performer-type</b>
2632   * <p>
2633   * Description: <b>Performer role</b><br>
2634   * Type: <b>token</b><br>
2635   * Path: <b>ServiceRequest.performerType</b><br>
2636   * </p>
2637   */
2638  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PERFORMER_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PERFORMER_TYPE);
2639
2640 /**
2641   * Search parameter: <b>performer</b>
2642   * <p>
2643   * Description: <b>Requested performer</b><br>
2644   * Type: <b>reference</b><br>
2645   * Path: <b>ServiceRequest.performer</b><br>
2646   * </p>
2647   */
2648  @SearchParamDefinition(name="performer", path="ServiceRequest.performer", description="Requested performer", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson") }, target={CareTeam.class, Device.class, HealthcareService.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
2649  public static final String SP_PERFORMER = "performer";
2650 /**
2651   * <b>Fluent Client</b> search parameter constant for <b>performer</b>
2652   * <p>
2653   * Description: <b>Requested performer</b><br>
2654   * Type: <b>reference</b><br>
2655   * Path: <b>ServiceRequest.performer</b><br>
2656   * </p>
2657   */
2658  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PERFORMER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PERFORMER);
2659
2660/**
2661   * Constant for fluent queries to be used to add include statements. Specifies
2662   * the path value of "<b>ServiceRequest:performer</b>".
2663   */
2664  public static final ca.uhn.fhir.model.api.Include INCLUDE_PERFORMER = new ca.uhn.fhir.model.api.Include("ServiceRequest:performer").toLocked();
2665
2666 /**
2667   * Search parameter: <b>priority</b>
2668   * <p>
2669   * Description: <b>routine | urgent | asap | stat</b><br>
2670   * Type: <b>token</b><br>
2671   * Path: <b>ServiceRequest.priority</b><br>
2672   * </p>
2673   */
2674  @SearchParamDefinition(name="priority", path="ServiceRequest.priority", description="routine | urgent | asap | stat", type="token" )
2675  public static final String SP_PRIORITY = "priority";
2676 /**
2677   * <b>Fluent Client</b> search parameter constant for <b>priority</b>
2678   * <p>
2679   * Description: <b>routine | urgent | asap | stat</b><br>
2680   * Type: <b>token</b><br>
2681   * Path: <b>ServiceRequest.priority</b><br>
2682   * </p>
2683   */
2684  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PRIORITY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PRIORITY);
2685
2686 /**
2687   * Search parameter: <b>replaces</b>
2688   * <p>
2689   * Description: <b>What request replaces</b><br>
2690   * Type: <b>reference</b><br>
2691   * Path: <b>ServiceRequest.replaces</b><br>
2692   * </p>
2693   */
2694  @SearchParamDefinition(name="replaces", path="ServiceRequest.replaces", description="What request replaces", type="reference", target={ServiceRequest.class } )
2695  public static final String SP_REPLACES = "replaces";
2696 /**
2697   * <b>Fluent Client</b> search parameter constant for <b>replaces</b>
2698   * <p>
2699   * Description: <b>What request replaces</b><br>
2700   * Type: <b>reference</b><br>
2701   * Path: <b>ServiceRequest.replaces</b><br>
2702   * </p>
2703   */
2704  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REPLACES = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REPLACES);
2705
2706/**
2707   * Constant for fluent queries to be used to add include statements. Specifies
2708   * the path value of "<b>ServiceRequest:replaces</b>".
2709   */
2710  public static final ca.uhn.fhir.model.api.Include INCLUDE_REPLACES = new ca.uhn.fhir.model.api.Include("ServiceRequest:replaces").toLocked();
2711
2712 /**
2713   * Search parameter: <b>requester</b>
2714   * <p>
2715   * Description: <b>Who/what is requesting service</b><br>
2716   * Type: <b>reference</b><br>
2717   * Path: <b>ServiceRequest.requester</b><br>
2718   * </p>
2719   */
2720  @SearchParamDefinition(name="requester", path="ServiceRequest.requester", description="Who/what is requesting service", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
2721  public static final String SP_REQUESTER = "requester";
2722 /**
2723   * <b>Fluent Client</b> search parameter constant for <b>requester</b>
2724   * <p>
2725   * Description: <b>Who/what is requesting service</b><br>
2726   * Type: <b>reference</b><br>
2727   * Path: <b>ServiceRequest.requester</b><br>
2728   * </p>
2729   */
2730  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUESTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUESTER);
2731
2732/**
2733   * Constant for fluent queries to be used to add include statements. Specifies
2734   * the path value of "<b>ServiceRequest:requester</b>".
2735   */
2736  public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUESTER = new ca.uhn.fhir.model.api.Include("ServiceRequest:requester").toLocked();
2737
2738 /**
2739   * Search parameter: <b>requisition</b>
2740   * <p>
2741   * Description: <b>Composite Request ID</b><br>
2742   * Type: <b>token</b><br>
2743   * Path: <b>ServiceRequest.requisition</b><br>
2744   * </p>
2745   */
2746  @SearchParamDefinition(name="requisition", path="ServiceRequest.requisition", description="Composite Request ID", type="token" )
2747  public static final String SP_REQUISITION = "requisition";
2748 /**
2749   * <b>Fluent Client</b> search parameter constant for <b>requisition</b>
2750   * <p>
2751   * Description: <b>Composite Request ID</b><br>
2752   * Type: <b>token</b><br>
2753   * Path: <b>ServiceRequest.requisition</b><br>
2754   * </p>
2755   */
2756  public static final ca.uhn.fhir.rest.gclient.TokenClientParam REQUISITION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_REQUISITION);
2757
2758 /**
2759   * Search parameter: <b>specimen</b>
2760   * <p>
2761   * Description: <b>Specimen to be tested</b><br>
2762   * Type: <b>reference</b><br>
2763   * Path: <b>ServiceRequest.specimen</b><br>
2764   * </p>
2765   */
2766  @SearchParamDefinition(name="specimen", path="ServiceRequest.specimen", description="Specimen to be tested", type="reference", target={Specimen.class } )
2767  public static final String SP_SPECIMEN = "specimen";
2768 /**
2769   * <b>Fluent Client</b> search parameter constant for <b>specimen</b>
2770   * <p>
2771   * Description: <b>Specimen to be tested</b><br>
2772   * Type: <b>reference</b><br>
2773   * Path: <b>ServiceRequest.specimen</b><br>
2774   * </p>
2775   */
2776  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SPECIMEN = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SPECIMEN);
2777
2778/**
2779   * Constant for fluent queries to be used to add include statements. Specifies
2780   * the path value of "<b>ServiceRequest:specimen</b>".
2781   */
2782  public static final ca.uhn.fhir.model.api.Include INCLUDE_SPECIMEN = new ca.uhn.fhir.model.api.Include("ServiceRequest:specimen").toLocked();
2783
2784 /**
2785   * Search parameter: <b>status</b>
2786   * <p>
2787   * Description: <b>draft | active | on-hold | revoked | completed | entered-in-error | unknown</b><br>
2788   * Type: <b>token</b><br>
2789   * Path: <b>ServiceRequest.status</b><br>
2790   * </p>
2791   */
2792  @SearchParamDefinition(name="status", path="ServiceRequest.status", description="draft | active | on-hold | revoked | completed | entered-in-error | unknown", type="token" )
2793  public static final String SP_STATUS = "status";
2794 /**
2795   * <b>Fluent Client</b> search parameter constant for <b>status</b>
2796   * <p>
2797   * Description: <b>draft | active | on-hold | revoked | completed | entered-in-error | unknown</b><br>
2798   * Type: <b>token</b><br>
2799   * Path: <b>ServiceRequest.status</b><br>
2800   * </p>
2801   */
2802  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
2803
2804 /**
2805   * Search parameter: <b>subject</b>
2806   * <p>
2807   * Description: <b>Search by subject</b><br>
2808   * Type: <b>reference</b><br>
2809   * Path: <b>ServiceRequest.subject</b><br>
2810   * </p>
2811   */
2812  @SearchParamDefinition(name="subject", path="ServiceRequest.subject", description="Search by subject", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Device.class, Group.class, Location.class, Patient.class } )
2813  public static final String SP_SUBJECT = "subject";
2814 /**
2815   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
2816   * <p>
2817   * Description: <b>Search by subject</b><br>
2818   * Type: <b>reference</b><br>
2819   * Path: <b>ServiceRequest.subject</b><br>
2820   * </p>
2821   */
2822  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
2823
2824/**
2825   * Constant for fluent queries to be used to add include statements. Specifies
2826   * the path value of "<b>ServiceRequest:subject</b>".
2827   */
2828  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("ServiceRequest:subject").toLocked();
2829
2830 /**
2831   * Search parameter: <b>code</b>
2832   * <p>
2833   * Description: <b>Multiple Resources: 
2834
2835* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
2836* [Condition](condition.html): Code for the condition
2837* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
2838* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result
2839* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
2840* [List](list.html): What the purpose of this list is
2841* [Medication](medication.html): Returns medications for a specific code
2842* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
2843* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
2844* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
2845* [MedicationUsage](medicationusage.html): Return statements of this medication code
2846* [Observation](observation.html): The code of the observation type
2847* [Procedure](procedure.html): A code to identify a  procedure
2848* [ServiceRequest](servicerequest.html): What is being requested/ordered
2849</b><br>
2850   * Type: <b>token</b><br>
2851   * Path: <b>AllergyIntolerance.code | AllergyIntolerance.reaction.substance | Condition.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationUsage.medication.concept | Observation.code | Procedure.code | ServiceRequest.code</b><br>
2852   * </p>
2853   */
2854  @SearchParamDefinition(name="code", path="AllergyIntolerance.code | AllergyIntolerance.reaction.substance | Condition.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationUsage.medication.concept | Observation.code | Procedure.code | ServiceRequest.code", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance\r\n* [Condition](condition.html): Code for the condition\r\n* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered\r\n* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code\r\n* [List](list.html): What the purpose of this list is\r\n* [Medication](medication.html): Returns medications for a specific code\r\n* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code\r\n* [MedicationUsage](medicationusage.html): Return statements of this medication code\r\n* [Observation](observation.html): The code of the observation type\r\n* [Procedure](procedure.html): A code to identify a  procedure\r\n* [ServiceRequest](servicerequest.html): What is being requested/ordered\r\n", type="token" )
2855  public static final String SP_CODE = "code";
2856 /**
2857   * <b>Fluent Client</b> search parameter constant for <b>code</b>
2858   * <p>
2859   * Description: <b>Multiple Resources: 
2860
2861* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
2862* [Condition](condition.html): Code for the condition
2863* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
2864* [DiagnosticReport](diagnosticreport.html): The code for the report, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result
2865* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
2866* [List](list.html): What the purpose of this list is
2867* [Medication](medication.html): Returns medications for a specific code
2868* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
2869* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
2870* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
2871* [MedicationUsage](medicationusage.html): Return statements of this medication code
2872* [Observation](observation.html): The code of the observation type
2873* [Procedure](procedure.html): A code to identify a  procedure
2874* [ServiceRequest](servicerequest.html): What is being requested/ordered
2875</b><br>
2876   * Type: <b>token</b><br>
2877   * Path: <b>AllergyIntolerance.code | AllergyIntolerance.reaction.substance | Condition.code | DeviceRequest.code.concept | DiagnosticReport.code | FamilyMemberHistory.condition.code | List.code | Medication.code | MedicationAdministration.medication.concept | MedicationDispense.medication.concept | MedicationRequest.medication.concept | MedicationUsage.medication.concept | Observation.code | Procedure.code | ServiceRequest.code</b><br>
2878   * </p>
2879   */
2880  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
2881
2882 /**
2883   * Search parameter: <b>encounter</b>
2884   * <p>
2885   * Description: <b>Multiple Resources: 
2886
2887* [Composition](composition.html): Context of the Composition
2888* [DeviceRequest](devicerequest.html): Encounter during which request was created
2889* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
2890* [DocumentReference](documentreference.html): Context of the document  content
2891* [Flag](flag.html): Alert relevant during encounter
2892* [List](list.html): Context in which list created
2893* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
2894* [Observation](observation.html): Encounter related to the observation
2895* [Procedure](procedure.html): The Encounter during which this Procedure was created
2896* [RiskAssessment](riskassessment.html): Where was assessment performed?
2897* [ServiceRequest](servicerequest.html): An encounter in which this request is made
2898* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
2899</b><br>
2900   * Type: <b>reference</b><br>
2901   * Path: <b>Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | DocumentReference.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter</b><br>
2902   * </p>
2903   */
2904  @SearchParamDefinition(name="encounter", path="Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | DocumentReference.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter", description="Multiple Resources: \r\n\r\n* [Composition](composition.html): Context of the Composition\r\n* [DeviceRequest](devicerequest.html): Encounter during which request was created\r\n* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made\r\n* [DocumentReference](documentreference.html): Context of the document  content\r\n* [Flag](flag.html): Alert relevant during encounter\r\n* [List](list.html): Context in which list created\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier\r\n* [Observation](observation.html): Encounter related to the observation\r\n* [Procedure](procedure.html): The Encounter during which this Procedure was created\r\n* [RiskAssessment](riskassessment.html): Where was assessment performed?\r\n* [ServiceRequest](servicerequest.html): An encounter in which this request is made\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Encounter") }, target={Encounter.class } )
2905  public static final String SP_ENCOUNTER = "encounter";
2906 /**
2907   * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
2908   * <p>
2909   * Description: <b>Multiple Resources: 
2910
2911* [Composition](composition.html): Context of the Composition
2912* [DeviceRequest](devicerequest.html): Encounter during which request was created
2913* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
2914* [DocumentReference](documentreference.html): Context of the document  content
2915* [Flag](flag.html): Alert relevant during encounter
2916* [List](list.html): Context in which list created
2917* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
2918* [Observation](observation.html): Encounter related to the observation
2919* [Procedure](procedure.html): The Encounter during which this Procedure was created
2920* [RiskAssessment](riskassessment.html): Where was assessment performed?
2921* [ServiceRequest](servicerequest.html): An encounter in which this request is made
2922* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
2923</b><br>
2924   * Type: <b>reference</b><br>
2925   * Path: <b>Composition.encounter | DeviceRequest.encounter | DiagnosticReport.encounter | DocumentReference.encounter | Flag.encounter | List.encounter | NutritionOrder.encounter | Observation.encounter | Procedure.encounter | RiskAssessment.encounter | ServiceRequest.encounter | VisionPrescription.encounter</b><br>
2926   * </p>
2927   */
2928  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER);
2929
2930/**
2931   * Constant for fluent queries to be used to add include statements. Specifies
2932   * the path value of "<b>ServiceRequest:encounter</b>".
2933   */
2934  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("ServiceRequest:encounter").toLocked();
2935
2936 /**
2937   * Search parameter: <b>identifier</b>
2938   * <p>
2939   * Description: <b>Multiple Resources: 
2940
2941* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2942* [CarePlan](careplan.html): External Ids for this plan
2943* [CareTeam](careteam.html): External Ids for this team
2944* [Composition](composition.html): Version-independent identifier for the Composition
2945* [Condition](condition.html): A unique identifier of the condition record
2946* [Consent](consent.html): Identifier for this record (external references)
2947* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2948* [DeviceRequest](devicerequest.html): Business identifier for request/order
2949* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2950* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents
2951* [DocumentReference](documentreference.html): Identifier of the attachment binary
2952* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2953* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2954* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2955* [Goal](goal.html): External Ids for this goal
2956* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2957* [Immunization](immunization.html): Business identifier
2958* [List](list.html): Business identifier
2959* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2960* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2961* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2962* [MedicationUsage](medicationusage.html): Return statements with this external identifier
2963* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2964* [Observation](observation.html): The unique id for a particular observation
2965* [Procedure](procedure.html): A unique identifier for a procedure
2966* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2967* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2968* [SupplyDelivery](supplydelivery.html): External identifier
2969* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2970* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2971</b><br>
2972   * Type: <b>token</b><br>
2973   * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.content.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br>
2974   * </p>
2975   */
2976  @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.content.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\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* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents\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* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [List](list.html): Business 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* [MedicationUsage](medicationusage.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* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" )
2977  public static final String SP_IDENTIFIER = "identifier";
2978 /**
2979   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
2980   * <p>
2981   * Description: <b>Multiple Resources: 
2982
2983* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2984* [CarePlan](careplan.html): External Ids for this plan
2985* [CareTeam](careteam.html): External Ids for this team
2986* [Composition](composition.html): Version-independent identifier for the Composition
2987* [Condition](condition.html): A unique identifier of the condition record
2988* [Consent](consent.html): Identifier for this record (external references)
2989* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2990* [DeviceRequest](devicerequest.html): Business identifier for request/order
2991* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2992* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents
2993* [DocumentReference](documentreference.html): Identifier of the attachment binary
2994* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2995* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2996* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2997* [Goal](goal.html): External Ids for this goal
2998* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2999* [Immunization](immunization.html): Business identifier
3000* [List](list.html): Business identifier
3001* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
3002* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
3003* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
3004* [MedicationUsage](medicationusage.html): Return statements with this external identifier
3005* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
3006* [Observation](observation.html): The unique id for a particular observation
3007* [Procedure](procedure.html): A unique identifier for a procedure
3008* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
3009* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
3010* [SupplyDelivery](supplydelivery.html): External identifier
3011* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
3012* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
3013</b><br>
3014   * Type: <b>token</b><br>
3015   * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.content.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br>
3016   * </p>
3017   */
3018  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
3019
3020 /**
3021   * Search parameter: <b>patient</b>
3022   * <p>
3023   * Description: <b>Multiple Resources: 
3024
3025* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
3026* [CarePlan](careplan.html): Who the care plan is for
3027* [CareTeam](careteam.html): Who care team is for
3028* [ClinicalImpression](clinicalimpression.html): Patient assessed
3029* [Composition](composition.html): Who and/or what the composition is about
3030* [Condition](condition.html): Who has the condition?
3031* [Consent](consent.html): Who the consent applies to
3032* [DetectedIssue](detectedissue.html): Associated patient
3033* [DeviceRequest](devicerequest.html): Individual the service is ordered for
3034* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
3035* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
3036* [DocumentManifest](documentmanifest.html): The subject of the set of documents
3037* [DocumentReference](documentreference.html): Who/what is the subject of the document
3038* [Encounter](encounter.html): The patient present at the encounter
3039* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
3040* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
3041* [Flag](flag.html): The identity of a subject to list flags for
3042* [Goal](goal.html): Who this goal is intended for
3043* [ImagingStudy](imagingstudy.html): Who the study is about
3044* [Immunization](immunization.html): The patient for the vaccination record
3045* [List](list.html): If all resources have the same subject
3046* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
3047* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
3048* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
3049* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.
3050* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement
3051* [Observation](observation.html): The subject that the observation is about (if patient)
3052* [Procedure](procedure.html): Search by subject - a patient
3053* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
3054* [ServiceRequest](servicerequest.html): Search by subject - a patient
3055* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
3056* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
3057</b><br>
3058   * Type: <b>reference</b><br>
3059   * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br>
3060   * </p>
3061   */
3062  @SearchParamDefinition(name="patient", path="AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\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* [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* [DocumentManifest](documentmanifest.html): The subject of the set of documents\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* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\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* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [List](list.html): If all resources have the same subject\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* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CapabilityStatement2.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, ClinicalUseIssue.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, ConceptMap2.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
3063  public static final String SP_PATIENT = "patient";
3064 /**
3065   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
3066   * <p>
3067   * Description: <b>Multiple Resources: 
3068
3069* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
3070* [CarePlan](careplan.html): Who the care plan is for
3071* [CareTeam](careteam.html): Who care team is for
3072* [ClinicalImpression](clinicalimpression.html): Patient assessed
3073* [Composition](composition.html): Who and/or what the composition is about
3074* [Condition](condition.html): Who has the condition?
3075* [Consent](consent.html): Who the consent applies to
3076* [DetectedIssue](detectedissue.html): Associated patient
3077* [DeviceRequest](devicerequest.html): Individual the service is ordered for
3078* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
3079* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
3080* [DocumentManifest](documentmanifest.html): The subject of the set of documents
3081* [DocumentReference](documentreference.html): Who/what is the subject of the document
3082* [Encounter](encounter.html): The patient present at the encounter
3083* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
3084* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
3085* [Flag](flag.html): The identity of a subject to list flags for
3086* [Goal](goal.html): Who this goal is intended for
3087* [ImagingStudy](imagingstudy.html): Who the study is about
3088* [Immunization](immunization.html): The patient for the vaccination record
3089* [List](list.html): If all resources have the same subject
3090* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
3091* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
3092* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
3093* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.
3094* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement
3095* [Observation](observation.html): The subject that the observation is about (if patient)
3096* [Procedure](procedure.html): Search by subject - a patient
3097* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
3098* [ServiceRequest](servicerequest.html): Search by subject - a patient
3099* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
3100* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
3101</b><br>
3102   * Type: <b>reference</b><br>
3103   * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br>
3104   * </p>
3105   */
3106  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
3107
3108/**
3109   * Constant for fluent queries to be used to add include statements. Specifies
3110   * the path value of "<b>ServiceRequest:patient</b>".
3111   */
3112  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("ServiceRequest:patient").toLocked();
3113
3114
3115}
3116