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