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 * Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, gaps in care, etc.
052 */
053@ResourceDef(name="DetectedIssue", profile="http://hl7.org/fhir/StructureDefinition/DetectedIssue")
054public class DetectedIssue extends DomainResource {
055
056    public enum DetectedIssueSeverity {
057        /**
058         * Indicates the issue may be life-threatening or has the potential to cause permanent injury.
059         */
060        HIGH, 
061        /**
062         * Indicates the issue may result in noticeable adverse consequences but is unlikely to be life-threatening or cause permanent injury.
063         */
064        MODERATE, 
065        /**
066         * Indicates the issue may result in some adverse consequences but is unlikely to substantially affect the situation of the subject.
067         */
068        LOW, 
069        /**
070         * added to help the parsers with the generic types
071         */
072        NULL;
073        public static DetectedIssueSeverity fromCode(String codeString) throws FHIRException {
074            if (codeString == null || "".equals(codeString))
075                return null;
076        if ("high".equals(codeString))
077          return HIGH;
078        if ("moderate".equals(codeString))
079          return MODERATE;
080        if ("low".equals(codeString))
081          return LOW;
082        if (Configuration.isAcceptInvalidEnums())
083          return null;
084        else
085          throw new FHIRException("Unknown DetectedIssueSeverity code '"+codeString+"'");
086        }
087        public String toCode() {
088          switch (this) {
089            case HIGH: return "high";
090            case MODERATE: return "moderate";
091            case LOW: return "low";
092            case NULL: return null;
093            default: return "?";
094          }
095        }
096        public String getSystem() {
097          switch (this) {
098            case HIGH: return "http://hl7.org/fhir/detectedissue-severity";
099            case MODERATE: return "http://hl7.org/fhir/detectedissue-severity";
100            case LOW: return "http://hl7.org/fhir/detectedissue-severity";
101            case NULL: return null;
102            default: return "?";
103          }
104        }
105        public String getDefinition() {
106          switch (this) {
107            case HIGH: return "Indicates the issue may be life-threatening or has the potential to cause permanent injury.";
108            case MODERATE: return "Indicates the issue may result in noticeable adverse consequences but is unlikely to be life-threatening or cause permanent injury.";
109            case LOW: return "Indicates the issue may result in some adverse consequences but is unlikely to substantially affect the situation of the subject.";
110            case NULL: return null;
111            default: return "?";
112          }
113        }
114        public String getDisplay() {
115          switch (this) {
116            case HIGH: return "High";
117            case MODERATE: return "Moderate";
118            case LOW: return "Low";
119            case NULL: return null;
120            default: return "?";
121          }
122        }
123    }
124
125  public static class DetectedIssueSeverityEnumFactory implements EnumFactory<DetectedIssueSeverity> {
126    public DetectedIssueSeverity fromCode(String codeString) throws IllegalArgumentException {
127      if (codeString == null || "".equals(codeString))
128            if (codeString == null || "".equals(codeString))
129                return null;
130        if ("high".equals(codeString))
131          return DetectedIssueSeverity.HIGH;
132        if ("moderate".equals(codeString))
133          return DetectedIssueSeverity.MODERATE;
134        if ("low".equals(codeString))
135          return DetectedIssueSeverity.LOW;
136        throw new IllegalArgumentException("Unknown DetectedIssueSeverity code '"+codeString+"'");
137        }
138        public Enumeration<DetectedIssueSeverity> fromType(PrimitiveType<?> code) throws FHIRException {
139          if (code == null)
140            return null;
141          if (code.isEmpty())
142            return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.NULL, code);
143          String codeString = ((PrimitiveType) code).asStringValue();
144          if (codeString == null || "".equals(codeString))
145            return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.NULL, code);
146        if ("high".equals(codeString))
147          return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.HIGH, code);
148        if ("moderate".equals(codeString))
149          return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.MODERATE, code);
150        if ("low".equals(codeString))
151          return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.LOW, code);
152        throw new FHIRException("Unknown DetectedIssueSeverity code '"+codeString+"'");
153        }
154    public String toCode(DetectedIssueSeverity code) {
155      if (code == DetectedIssueSeverity.HIGH)
156        return "high";
157      if (code == DetectedIssueSeverity.MODERATE)
158        return "moderate";
159      if (code == DetectedIssueSeverity.LOW)
160        return "low";
161      return "?";
162      }
163    public String toSystem(DetectedIssueSeverity code) {
164      return code.getSystem();
165      }
166    }
167
168    public enum DetectedIssueStatus {
169        /**
170         * This is an initial or interim observation: data may be incomplete or unverified.
171         */
172        PRELIMINARY, 
173        /**
174         * The observation is complete and there are no further actions needed. Additional information such \"released\", \"signed\", etc. would be represented using [Provenance](provenance.html) which provides not only the act but also the actors and dates and other related data. These act states would be associated with an observation status of `preliminary` until they are all completed and then a status of `final` would be applied.
175         */
176        FINAL, 
177        /**
178         * The observation has been withdrawn following 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\".).
179         */
180        ENTEREDINERROR, 
181        /**
182         * Indicates the detected issue has been mitigated
183         */
184        MITIGATED, 
185        /**
186         * added to help the parsers with the generic types
187         */
188        NULL;
189        public static DetectedIssueStatus fromCode(String codeString) throws FHIRException {
190            if (codeString == null || "".equals(codeString))
191                return null;
192        if ("preliminary".equals(codeString))
193          return PRELIMINARY;
194        if ("final".equals(codeString))
195          return FINAL;
196        if ("entered-in-error".equals(codeString))
197          return ENTEREDINERROR;
198        if ("mitigated".equals(codeString))
199          return MITIGATED;
200        if (Configuration.isAcceptInvalidEnums())
201          return null;
202        else
203          throw new FHIRException("Unknown DetectedIssueStatus code '"+codeString+"'");
204        }
205        public String toCode() {
206          switch (this) {
207            case PRELIMINARY: return "preliminary";
208            case FINAL: return "final";
209            case ENTEREDINERROR: return "entered-in-error";
210            case MITIGATED: return "mitigated";
211            case NULL: return null;
212            default: return "?";
213          }
214        }
215        public String getSystem() {
216          switch (this) {
217            case PRELIMINARY: return "http://hl7.org/fhir/observation-status";
218            case FINAL: return "http://hl7.org/fhir/observation-status";
219            case ENTEREDINERROR: return "http://hl7.org/fhir/observation-status";
220            case MITIGATED: return "http://hl7.org/fhir/detectedissue-status";
221            case NULL: return null;
222            default: return "?";
223          }
224        }
225        public String getDefinition() {
226          switch (this) {
227            case PRELIMINARY: return "This is an initial or interim observation: data may be incomplete or unverified.";
228            case FINAL: return "The observation is complete and there are no further actions needed. Additional information such \"released\", \"signed\", etc. would be represented using [Provenance](provenance.html) which provides not only the act but also the actors and dates and other related data. These act states would be associated with an observation status of `preliminary` until they are all completed and then a status of `final` would be applied.";
229            case ENTEREDINERROR: return "The observation has been withdrawn following 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\".).";
230            case MITIGATED: return "Indicates the detected issue has been mitigated";
231            case NULL: return null;
232            default: return "?";
233          }
234        }
235        public String getDisplay() {
236          switch (this) {
237            case PRELIMINARY: return "Preliminary";
238            case FINAL: return "Final";
239            case ENTEREDINERROR: return "Entered in Error";
240            case MITIGATED: return "Mitigated";
241            case NULL: return null;
242            default: return "?";
243          }
244        }
245    }
246
247  public static class DetectedIssueStatusEnumFactory implements EnumFactory<DetectedIssueStatus> {
248    public DetectedIssueStatus fromCode(String codeString) throws IllegalArgumentException {
249      if (codeString == null || "".equals(codeString))
250            if (codeString == null || "".equals(codeString))
251                return null;
252        if ("preliminary".equals(codeString))
253          return DetectedIssueStatus.PRELIMINARY;
254        if ("final".equals(codeString))
255          return DetectedIssueStatus.FINAL;
256        if ("entered-in-error".equals(codeString))
257          return DetectedIssueStatus.ENTEREDINERROR;
258        if ("mitigated".equals(codeString))
259          return DetectedIssueStatus.MITIGATED;
260        throw new IllegalArgumentException("Unknown DetectedIssueStatus code '"+codeString+"'");
261        }
262        public Enumeration<DetectedIssueStatus> fromType(PrimitiveType<?> code) throws FHIRException {
263          if (code == null)
264            return null;
265          if (code.isEmpty())
266            return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.NULL, code);
267          String codeString = ((PrimitiveType) code).asStringValue();
268          if (codeString == null || "".equals(codeString))
269            return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.NULL, code);
270        if ("preliminary".equals(codeString))
271          return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.PRELIMINARY, code);
272        if ("final".equals(codeString))
273          return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.FINAL, code);
274        if ("entered-in-error".equals(codeString))
275          return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.ENTEREDINERROR, code);
276        if ("mitigated".equals(codeString))
277          return new Enumeration<DetectedIssueStatus>(this, DetectedIssueStatus.MITIGATED, code);
278        throw new FHIRException("Unknown DetectedIssueStatus code '"+codeString+"'");
279        }
280    public String toCode(DetectedIssueStatus code) {
281      if (code == DetectedIssueStatus.PRELIMINARY)
282        return "preliminary";
283      if (code == DetectedIssueStatus.FINAL)
284        return "final";
285      if (code == DetectedIssueStatus.ENTEREDINERROR)
286        return "entered-in-error";
287      if (code == DetectedIssueStatus.MITIGATED)
288        return "mitigated";
289      return "?";
290      }
291    public String toSystem(DetectedIssueStatus code) {
292      return code.getSystem();
293      }
294    }
295
296    @Block()
297    public static class DetectedIssueEvidenceComponent extends BackboneElement implements IBaseBackboneElement {
298        /**
299         * A manifestation that led to the recording of this detected issue.
300         */
301        @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
302        @Description(shortDefinition="Manifestation", formalDefinition="A manifestation that led to the recording of this detected issue." )
303        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/manifestation-or-symptom")
304        protected List<CodeableConcept> code;
305
306        /**
307         * Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.
308         */
309        @Child(name = "detail", type = {Reference.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
310        @Description(shortDefinition="Supporting information", formalDefinition="Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport." )
311        protected List<Reference> detail;
312
313        private static final long serialVersionUID = -672691342L;
314
315    /**
316     * Constructor
317     */
318      public DetectedIssueEvidenceComponent() {
319        super();
320      }
321
322        /**
323         * @return {@link #code} (A manifestation that led to the recording of this detected issue.)
324         */
325        public List<CodeableConcept> getCode() { 
326          if (this.code == null)
327            this.code = new ArrayList<CodeableConcept>();
328          return this.code;
329        }
330
331        /**
332         * @return Returns a reference to <code>this</code> for easy method chaining
333         */
334        public DetectedIssueEvidenceComponent setCode(List<CodeableConcept> theCode) { 
335          this.code = theCode;
336          return this;
337        }
338
339        public boolean hasCode() { 
340          if (this.code == null)
341            return false;
342          for (CodeableConcept item : this.code)
343            if (!item.isEmpty())
344              return true;
345          return false;
346        }
347
348        public CodeableConcept addCode() { //3
349          CodeableConcept t = new CodeableConcept();
350          if (this.code == null)
351            this.code = new ArrayList<CodeableConcept>();
352          this.code.add(t);
353          return t;
354        }
355
356        public DetectedIssueEvidenceComponent addCode(CodeableConcept t) { //3
357          if (t == null)
358            return this;
359          if (this.code == null)
360            this.code = new ArrayList<CodeableConcept>();
361          this.code.add(t);
362          return this;
363        }
364
365        /**
366         * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3}
367         */
368        public CodeableConcept getCodeFirstRep() { 
369          if (getCode().isEmpty()) {
370            addCode();
371          }
372          return getCode().get(0);
373        }
374
375        /**
376         * @return {@link #detail} (Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.)
377         */
378        public List<Reference> getDetail() { 
379          if (this.detail == null)
380            this.detail = new ArrayList<Reference>();
381          return this.detail;
382        }
383
384        /**
385         * @return Returns a reference to <code>this</code> for easy method chaining
386         */
387        public DetectedIssueEvidenceComponent setDetail(List<Reference> theDetail) { 
388          this.detail = theDetail;
389          return this;
390        }
391
392        public boolean hasDetail() { 
393          if (this.detail == null)
394            return false;
395          for (Reference item : this.detail)
396            if (!item.isEmpty())
397              return true;
398          return false;
399        }
400
401        public Reference addDetail() { //3
402          Reference t = new Reference();
403          if (this.detail == null)
404            this.detail = new ArrayList<Reference>();
405          this.detail.add(t);
406          return t;
407        }
408
409        public DetectedIssueEvidenceComponent addDetail(Reference t) { //3
410          if (t == null)
411            return this;
412          if (this.detail == null)
413            this.detail = new ArrayList<Reference>();
414          this.detail.add(t);
415          return this;
416        }
417
418        /**
419         * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist {3}
420         */
421        public Reference getDetailFirstRep() { 
422          if (getDetail().isEmpty()) {
423            addDetail();
424          }
425          return getDetail().get(0);
426        }
427
428        protected void listChildren(List<Property> children) {
429          super.listChildren(children);
430          children.add(new Property("code", "CodeableConcept", "A manifestation that led to the recording of this detected issue.", 0, java.lang.Integer.MAX_VALUE, code));
431          children.add(new Property("detail", "Reference(Any)", "Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.", 0, java.lang.Integer.MAX_VALUE, detail));
432        }
433
434        @Override
435        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
436          switch (_hash) {
437          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "A manifestation that led to the recording of this detected issue.", 0, java.lang.Integer.MAX_VALUE, code);
438          case -1335224239: /*detail*/  return new Property("detail", "Reference(Any)", "Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.", 0, java.lang.Integer.MAX_VALUE, detail);
439          default: return super.getNamedProperty(_hash, _name, _checkValid);
440          }
441
442        }
443
444      @Override
445      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
446        switch (hash) {
447        case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept
448        case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // Reference
449        default: return super.getProperty(hash, name, checkValid);
450        }
451
452      }
453
454      @Override
455      public Base setProperty(int hash, String name, Base value) throws FHIRException {
456        switch (hash) {
457        case 3059181: // code
458          this.getCode().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
459          return value;
460        case -1335224239: // detail
461          this.getDetail().add(TypeConvertor.castToReference(value)); // Reference
462          return value;
463        default: return super.setProperty(hash, name, value);
464        }
465
466      }
467
468      @Override
469      public Base setProperty(String name, Base value) throws FHIRException {
470        if (name.equals("code")) {
471          this.getCode().add(TypeConvertor.castToCodeableConcept(value));
472        } else if (name.equals("detail")) {
473          this.getDetail().add(TypeConvertor.castToReference(value));
474        } else
475          return super.setProperty(name, value);
476        return value;
477      }
478
479  @Override
480  public void removeChild(String name, Base value) throws FHIRException {
481        if (name.equals("code")) {
482          this.getCode().remove(value);
483        } else if (name.equals("detail")) {
484          this.getDetail().remove(value);
485        } else
486          super.removeChild(name, value);
487        
488      }
489
490      @Override
491      public Base makeProperty(int hash, String name) throws FHIRException {
492        switch (hash) {
493        case 3059181:  return addCode(); 
494        case -1335224239:  return addDetail(); 
495        default: return super.makeProperty(hash, name);
496        }
497
498      }
499
500      @Override
501      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
502        switch (hash) {
503        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
504        case -1335224239: /*detail*/ return new String[] {"Reference"};
505        default: return super.getTypesForProperty(hash, name);
506        }
507
508      }
509
510      @Override
511      public Base addChild(String name) throws FHIRException {
512        if (name.equals("code")) {
513          return addCode();
514        }
515        else if (name.equals("detail")) {
516          return addDetail();
517        }
518        else
519          return super.addChild(name);
520      }
521
522      public DetectedIssueEvidenceComponent copy() {
523        DetectedIssueEvidenceComponent dst = new DetectedIssueEvidenceComponent();
524        copyValues(dst);
525        return dst;
526      }
527
528      public void copyValues(DetectedIssueEvidenceComponent dst) {
529        super.copyValues(dst);
530        if (code != null) {
531          dst.code = new ArrayList<CodeableConcept>();
532          for (CodeableConcept i : code)
533            dst.code.add(i.copy());
534        };
535        if (detail != null) {
536          dst.detail = new ArrayList<Reference>();
537          for (Reference i : detail)
538            dst.detail.add(i.copy());
539        };
540      }
541
542      @Override
543      public boolean equalsDeep(Base other_) {
544        if (!super.equalsDeep(other_))
545          return false;
546        if (!(other_ instanceof DetectedIssueEvidenceComponent))
547          return false;
548        DetectedIssueEvidenceComponent o = (DetectedIssueEvidenceComponent) other_;
549        return compareDeep(code, o.code, true) && compareDeep(detail, o.detail, true);
550      }
551
552      @Override
553      public boolean equalsShallow(Base other_) {
554        if (!super.equalsShallow(other_))
555          return false;
556        if (!(other_ instanceof DetectedIssueEvidenceComponent))
557          return false;
558        DetectedIssueEvidenceComponent o = (DetectedIssueEvidenceComponent) other_;
559        return true;
560      }
561
562      public boolean isEmpty() {
563        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, detail);
564      }
565
566  public String fhirType() {
567    return "DetectedIssue.evidence";
568
569  }
570
571  }
572
573    @Block()
574    public static class DetectedIssueMitigationComponent extends BackboneElement implements IBaseBackboneElement {
575        /**
576         * Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.
577         */
578        @Child(name = "action", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false)
579        @Description(shortDefinition="What mitigation?", formalDefinition="Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue." )
580        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-mitigation-action")
581        protected CodeableConcept action;
582
583        /**
584         * Indicates when the mitigating action was documented.
585         */
586        @Child(name = "date", type = {DateTimeType.class}, order=2, min=0, max=1, modifier=false, summary=false)
587        @Description(shortDefinition="Date committed", formalDefinition="Indicates when the mitigating action was documented." )
588        protected DateTimeType date;
589
590        /**
591         * Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.
592         */
593        @Child(name = "author", type = {Practitioner.class, PractitionerRole.class}, order=3, min=0, max=1, modifier=false, summary=false)
594        @Description(shortDefinition="Who is committing?", formalDefinition="Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring." )
595        protected Reference author;
596
597        /**
598         * Clinicians may add additional notes or justifications about the mitigation action. For example, patient can have this drug because they have had it before without any issues. Multiple justifications may be provided.
599         */
600        @Child(name = "note", type = {Annotation.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
601        @Description(shortDefinition="Additional notes about the mitigation", formalDefinition="Clinicians may add additional notes or justifications about the mitigation action. For example, patient can have this drug because they have had it before without any issues. Multiple justifications may be provided." )
602        protected List<Annotation> note;
603
604        private static final long serialVersionUID = 1504361133L;
605
606    /**
607     * Constructor
608     */
609      public DetectedIssueMitigationComponent() {
610        super();
611      }
612
613    /**
614     * Constructor
615     */
616      public DetectedIssueMitigationComponent(CodeableConcept action) {
617        super();
618        this.setAction(action);
619      }
620
621        /**
622         * @return {@link #action} (Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.)
623         */
624        public CodeableConcept getAction() { 
625          if (this.action == null)
626            if (Configuration.errorOnAutoCreate())
627              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.action");
628            else if (Configuration.doAutoCreate())
629              this.action = new CodeableConcept(); // cc
630          return this.action;
631        }
632
633        public boolean hasAction() { 
634          return this.action != null && !this.action.isEmpty();
635        }
636
637        /**
638         * @param value {@link #action} (Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.)
639         */
640        public DetectedIssueMitigationComponent setAction(CodeableConcept value) { 
641          this.action = value;
642          return this;
643        }
644
645        /**
646         * @return {@link #date} (Indicates when the mitigating action was documented.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
647         */
648        public DateTimeType getDateElement() { 
649          if (this.date == null)
650            if (Configuration.errorOnAutoCreate())
651              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.date");
652            else if (Configuration.doAutoCreate())
653              this.date = new DateTimeType(); // bb
654          return this.date;
655        }
656
657        public boolean hasDateElement() { 
658          return this.date != null && !this.date.isEmpty();
659        }
660
661        public boolean hasDate() { 
662          return this.date != null && !this.date.isEmpty();
663        }
664
665        /**
666         * @param value {@link #date} (Indicates when the mitigating action was documented.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
667         */
668        public DetectedIssueMitigationComponent setDateElement(DateTimeType value) { 
669          this.date = value;
670          return this;
671        }
672
673        /**
674         * @return Indicates when the mitigating action was documented.
675         */
676        public Date getDate() { 
677          return this.date == null ? null : this.date.getValue();
678        }
679
680        /**
681         * @param value Indicates when the mitigating action was documented.
682         */
683        public DetectedIssueMitigationComponent setDate(Date value) { 
684          if (value == null)
685            this.date = null;
686          else {
687            if (this.date == null)
688              this.date = new DateTimeType();
689            this.date.setValue(value);
690          }
691          return this;
692        }
693
694        /**
695         * @return {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.)
696         */
697        public Reference getAuthor() { 
698          if (this.author == null)
699            if (Configuration.errorOnAutoCreate())
700              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.author");
701            else if (Configuration.doAutoCreate())
702              this.author = new Reference(); // cc
703          return this.author;
704        }
705
706        public boolean hasAuthor() { 
707          return this.author != null && !this.author.isEmpty();
708        }
709
710        /**
711         * @param value {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.)
712         */
713        public DetectedIssueMitigationComponent setAuthor(Reference value) { 
714          this.author = value;
715          return this;
716        }
717
718        /**
719         * @return {@link #note} (Clinicians may add additional notes or justifications about the mitigation action. For example, patient can have this drug because they have had it before without any issues. Multiple justifications may be provided.)
720         */
721        public List<Annotation> getNote() { 
722          if (this.note == null)
723            this.note = new ArrayList<Annotation>();
724          return this.note;
725        }
726
727        /**
728         * @return Returns a reference to <code>this</code> for easy method chaining
729         */
730        public DetectedIssueMitigationComponent setNote(List<Annotation> theNote) { 
731          this.note = theNote;
732          return this;
733        }
734
735        public boolean hasNote() { 
736          if (this.note == null)
737            return false;
738          for (Annotation item : this.note)
739            if (!item.isEmpty())
740              return true;
741          return false;
742        }
743
744        public Annotation addNote() { //3
745          Annotation t = new Annotation();
746          if (this.note == null)
747            this.note = new ArrayList<Annotation>();
748          this.note.add(t);
749          return t;
750        }
751
752        public DetectedIssueMitigationComponent addNote(Annotation t) { //3
753          if (t == null)
754            return this;
755          if (this.note == null)
756            this.note = new ArrayList<Annotation>();
757          this.note.add(t);
758          return this;
759        }
760
761        /**
762         * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
763         */
764        public Annotation getNoteFirstRep() { 
765          if (getNote().isEmpty()) {
766            addNote();
767          }
768          return getNote().get(0);
769        }
770
771        protected void listChildren(List<Property> children) {
772          super.listChildren(children);
773          children.add(new Property("action", "CodeableConcept", "Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.", 0, 1, action));
774          children.add(new Property("date", "dateTime", "Indicates when the mitigating action was documented.", 0, 1, date));
775          children.add(new Property("author", "Reference(Practitioner|PractitionerRole)", "Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.", 0, 1, author));
776          children.add(new Property("note", "Annotation", "Clinicians may add additional notes or justifications about the mitigation action. For example, patient can have this drug because they have had it before without any issues. Multiple justifications may be provided.", 0, java.lang.Integer.MAX_VALUE, note));
777        }
778
779        @Override
780        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
781          switch (_hash) {
782          case -1422950858: /*action*/  return new Property("action", "CodeableConcept", "Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.", 0, 1, action);
783          case 3076014: /*date*/  return new Property("date", "dateTime", "Indicates when the mitigating action was documented.", 0, 1, date);
784          case -1406328437: /*author*/  return new Property("author", "Reference(Practitioner|PractitionerRole)", "Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.", 0, 1, author);
785          case 3387378: /*note*/  return new Property("note", "Annotation", "Clinicians may add additional notes or justifications about the mitigation action. For example, patient can have this drug because they have had it before without any issues. Multiple justifications may be provided.", 0, java.lang.Integer.MAX_VALUE, note);
786          default: return super.getNamedProperty(_hash, _name, _checkValid);
787          }
788
789        }
790
791      @Override
792      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
793        switch (hash) {
794        case -1422950858: /*action*/ return this.action == null ? new Base[0] : new Base[] {this.action}; // CodeableConcept
795        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
796        case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference
797        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
798        default: return super.getProperty(hash, name, checkValid);
799        }
800
801      }
802
803      @Override
804      public Base setProperty(int hash, String name, Base value) throws FHIRException {
805        switch (hash) {
806        case -1422950858: // action
807          this.action = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
808          return value;
809        case 3076014: // date
810          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
811          return value;
812        case -1406328437: // author
813          this.author = TypeConvertor.castToReference(value); // Reference
814          return value;
815        case 3387378: // note
816          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
817          return value;
818        default: return super.setProperty(hash, name, value);
819        }
820
821      }
822
823      @Override
824      public Base setProperty(String name, Base value) throws FHIRException {
825        if (name.equals("action")) {
826          this.action = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
827        } else if (name.equals("date")) {
828          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
829        } else if (name.equals("author")) {
830          this.author = TypeConvertor.castToReference(value); // Reference
831        } else if (name.equals("note")) {
832          this.getNote().add(TypeConvertor.castToAnnotation(value));
833        } else
834          return super.setProperty(name, value);
835        return value;
836      }
837
838  @Override
839  public void removeChild(String name, Base value) throws FHIRException {
840        if (name.equals("action")) {
841          this.action = null;
842        } else if (name.equals("date")) {
843          this.date = null;
844        } else if (name.equals("author")) {
845          this.author = null;
846        } else if (name.equals("note")) {
847          this.getNote().remove(value);
848        } else
849          super.removeChild(name, value);
850        
851      }
852
853      @Override
854      public Base makeProperty(int hash, String name) throws FHIRException {
855        switch (hash) {
856        case -1422950858:  return getAction();
857        case 3076014:  return getDateElement();
858        case -1406328437:  return getAuthor();
859        case 3387378:  return addNote(); 
860        default: return super.makeProperty(hash, name);
861        }
862
863      }
864
865      @Override
866      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
867        switch (hash) {
868        case -1422950858: /*action*/ return new String[] {"CodeableConcept"};
869        case 3076014: /*date*/ return new String[] {"dateTime"};
870        case -1406328437: /*author*/ return new String[] {"Reference"};
871        case 3387378: /*note*/ return new String[] {"Annotation"};
872        default: return super.getTypesForProperty(hash, name);
873        }
874
875      }
876
877      @Override
878      public Base addChild(String name) throws FHIRException {
879        if (name.equals("action")) {
880          this.action = new CodeableConcept();
881          return this.action;
882        }
883        else if (name.equals("date")) {
884          throw new FHIRException("Cannot call addChild on a singleton property DetectedIssue.mitigation.date");
885        }
886        else if (name.equals("author")) {
887          this.author = new Reference();
888          return this.author;
889        }
890        else if (name.equals("note")) {
891          return addNote();
892        }
893        else
894          return super.addChild(name);
895      }
896
897      public DetectedIssueMitigationComponent copy() {
898        DetectedIssueMitigationComponent dst = new DetectedIssueMitigationComponent();
899        copyValues(dst);
900        return dst;
901      }
902
903      public void copyValues(DetectedIssueMitigationComponent dst) {
904        super.copyValues(dst);
905        dst.action = action == null ? null : action.copy();
906        dst.date = date == null ? null : date.copy();
907        dst.author = author == null ? null : author.copy();
908        if (note != null) {
909          dst.note = new ArrayList<Annotation>();
910          for (Annotation i : note)
911            dst.note.add(i.copy());
912        };
913      }
914
915      @Override
916      public boolean equalsDeep(Base other_) {
917        if (!super.equalsDeep(other_))
918          return false;
919        if (!(other_ instanceof DetectedIssueMitigationComponent))
920          return false;
921        DetectedIssueMitigationComponent o = (DetectedIssueMitigationComponent) other_;
922        return compareDeep(action, o.action, true) && compareDeep(date, o.date, true) && compareDeep(author, o.author, true)
923           && compareDeep(note, o.note, true);
924      }
925
926      @Override
927      public boolean equalsShallow(Base other_) {
928        if (!super.equalsShallow(other_))
929          return false;
930        if (!(other_ instanceof DetectedIssueMitigationComponent))
931          return false;
932        DetectedIssueMitigationComponent o = (DetectedIssueMitigationComponent) other_;
933        return compareValues(date, o.date, true);
934      }
935
936      public boolean isEmpty() {
937        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(action, date, author, note
938          );
939      }
940
941  public String fhirType() {
942    return "DetectedIssue.mitigation";
943
944  }
945
946  }
947
948    /**
949     * Business identifier associated with the detected issue record.
950     */
951    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
952    @Description(shortDefinition="Unique id for the detected issue", formalDefinition="Business identifier associated with the detected issue record." )
953    protected List<Identifier> identifier;
954
955    /**
956     * Indicates the status of the detected issue.
957     */
958    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
959    @Description(shortDefinition="preliminary | final | entered-in-error | mitigated", formalDefinition="Indicates the status of the detected issue." )
960    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-status")
961    protected Enumeration<DetectedIssueStatus> status;
962
963    /**
964     * A code that classifies the general type of detected issue.
965     */
966    @Child(name = "category", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
967    @Description(shortDefinition="Type of detected issue, e.g. drug-drug, duplicate therapy, etc", formalDefinition="A code that classifies the general type of detected issue." )
968    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-category")
969    protected List<CodeableConcept> category;
970
971    /**
972     * Identifies the specific type of issue identified.
973     */
974    @Child(name = "code", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true)
975    @Description(shortDefinition="Specific type of detected issue, e.g. drug-drug, duplicate therapy, etc", formalDefinition="Identifies the specific type of issue identified." )
976    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-category")
977    protected CodeableConcept code;
978
979    /**
980     * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.
981     */
982    @Child(name = "severity", type = {CodeType.class}, order=4, min=0, max=1, modifier=false, summary=true)
983    @Description(shortDefinition="high | moderate | low", formalDefinition="Indicates the degree of importance associated with the identified issue based on the potential impact on the patient." )
984    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-severity")
985    protected Enumeration<DetectedIssueSeverity> severity;
986
987    /**
988     * Indicates the subject whose record the detected issue is associated with.
989     */
990    @Child(name = "subject", type = {Patient.class, Group.class, Device.class, Location.class, Organization.class, Procedure.class, Practitioner.class, Medication.class, Substance.class, BiologicallyDerivedProduct.class, NutritionProduct.class}, order=5, min=0, max=1, modifier=false, summary=true)
991    @Description(shortDefinition="Associated subject", formalDefinition="Indicates the subject whose record the detected issue is associated with." )
992    protected Reference subject;
993
994    /**
995     * The encounter during which this issue was detected.
996     */
997    @Child(name = "encounter", type = {Encounter.class}, order=6, min=0, max=1, modifier=false, summary=true)
998    @Description(shortDefinition="Encounter detected issue is part of", formalDefinition="The encounter during which this issue was detected." )
999    protected Reference encounter;
1000
1001    /**
1002     * The date or period when the detected issue was initially identified.
1003     */
1004    @Child(name = "identified", type = {DateTimeType.class, Period.class}, order=7, min=0, max=1, modifier=false, summary=true)
1005    @Description(shortDefinition="When identified", formalDefinition="The date or period when the detected issue was initially identified." )
1006    protected DataType identified;
1007
1008    /**
1009     * Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.
1010     */
1011    @Child(name = "author", type = {Patient.class, RelatedPerson.class, Practitioner.class, PractitionerRole.class, Device.class}, order=8, min=0, max=1, modifier=false, summary=true)
1012    @Description(shortDefinition="The provider or device that identified the issue", formalDefinition="Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review." )
1013    protected Reference author;
1014
1015    /**
1016     * Indicates the resource representing the current activity or proposed activity that is potentially problematic.
1017     */
1018    @Child(name = "implicated", type = {Reference.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1019    @Description(shortDefinition="Problem resource", formalDefinition="Indicates the resource representing the current activity or proposed activity that is potentially problematic." )
1020    protected List<Reference> implicated;
1021
1022    /**
1023     * Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.
1024     */
1025    @Child(name = "evidence", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1026    @Description(shortDefinition="Supporting evidence", formalDefinition="Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport." )
1027    protected List<DetectedIssueEvidenceComponent> evidence;
1028
1029    /**
1030     * A textual explanation of the detected issue.
1031     */
1032    @Child(name = "detail", type = {MarkdownType.class}, order=11, min=0, max=1, modifier=false, summary=false)
1033    @Description(shortDefinition="Description and context", formalDefinition="A textual explanation of the detected issue." )
1034    protected MarkdownType detail;
1035
1036    /**
1037     * The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.
1038     */
1039    @Child(name = "reference", type = {UriType.class}, order=12, min=0, max=1, modifier=false, summary=false)
1040    @Description(shortDefinition="Authority for issue", formalDefinition="The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified." )
1041    protected UriType reference;
1042
1043    /**
1044     * Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.
1045     */
1046    @Child(name = "mitigation", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1047    @Description(shortDefinition="Step taken to address", formalDefinition="Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action." )
1048    protected List<DetectedIssueMitigationComponent> mitigation;
1049
1050    private static final long serialVersionUID = 1031242519L;
1051
1052  /**
1053   * Constructor
1054   */
1055    public DetectedIssue() {
1056      super();
1057    }
1058
1059  /**
1060   * Constructor
1061   */
1062    public DetectedIssue(DetectedIssueStatus status) {
1063      super();
1064      this.setStatus(status);
1065    }
1066
1067    /**
1068     * @return {@link #identifier} (Business identifier associated with the detected issue record.)
1069     */
1070    public List<Identifier> getIdentifier() { 
1071      if (this.identifier == null)
1072        this.identifier = new ArrayList<Identifier>();
1073      return this.identifier;
1074    }
1075
1076    /**
1077     * @return Returns a reference to <code>this</code> for easy method chaining
1078     */
1079    public DetectedIssue setIdentifier(List<Identifier> theIdentifier) { 
1080      this.identifier = theIdentifier;
1081      return this;
1082    }
1083
1084    public boolean hasIdentifier() { 
1085      if (this.identifier == null)
1086        return false;
1087      for (Identifier item : this.identifier)
1088        if (!item.isEmpty())
1089          return true;
1090      return false;
1091    }
1092
1093    public Identifier addIdentifier() { //3
1094      Identifier t = new Identifier();
1095      if (this.identifier == null)
1096        this.identifier = new ArrayList<Identifier>();
1097      this.identifier.add(t);
1098      return t;
1099    }
1100
1101    public DetectedIssue addIdentifier(Identifier t) { //3
1102      if (t == null)
1103        return this;
1104      if (this.identifier == null)
1105        this.identifier = new ArrayList<Identifier>();
1106      this.identifier.add(t);
1107      return this;
1108    }
1109
1110    /**
1111     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
1112     */
1113    public Identifier getIdentifierFirstRep() { 
1114      if (getIdentifier().isEmpty()) {
1115        addIdentifier();
1116      }
1117      return getIdentifier().get(0);
1118    }
1119
1120    /**
1121     * @return {@link #status} (Indicates the status of the detected issue.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
1122     */
1123    public Enumeration<DetectedIssueStatus> getStatusElement() { 
1124      if (this.status == null)
1125        if (Configuration.errorOnAutoCreate())
1126          throw new Error("Attempt to auto-create DetectedIssue.status");
1127        else if (Configuration.doAutoCreate())
1128          this.status = new Enumeration<DetectedIssueStatus>(new DetectedIssueStatusEnumFactory()); // bb
1129      return this.status;
1130    }
1131
1132    public boolean hasStatusElement() { 
1133      return this.status != null && !this.status.isEmpty();
1134    }
1135
1136    public boolean hasStatus() { 
1137      return this.status != null && !this.status.isEmpty();
1138    }
1139
1140    /**
1141     * @param value {@link #status} (Indicates the status of the detected issue.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
1142     */
1143    public DetectedIssue setStatusElement(Enumeration<DetectedIssueStatus> value) { 
1144      this.status = value;
1145      return this;
1146    }
1147
1148    /**
1149     * @return Indicates the status of the detected issue.
1150     */
1151    public DetectedIssueStatus getStatus() { 
1152      return this.status == null ? null : this.status.getValue();
1153    }
1154
1155    /**
1156     * @param value Indicates the status of the detected issue.
1157     */
1158    public DetectedIssue setStatus(DetectedIssueStatus value) { 
1159        if (this.status == null)
1160          this.status = new Enumeration<DetectedIssueStatus>(new DetectedIssueStatusEnumFactory());
1161        this.status.setValue(value);
1162      return this;
1163    }
1164
1165    /**
1166     * @return {@link #category} (A code that classifies the general type of detected issue.)
1167     */
1168    public List<CodeableConcept> getCategory() { 
1169      if (this.category == null)
1170        this.category = new ArrayList<CodeableConcept>();
1171      return this.category;
1172    }
1173
1174    /**
1175     * @return Returns a reference to <code>this</code> for easy method chaining
1176     */
1177    public DetectedIssue setCategory(List<CodeableConcept> theCategory) { 
1178      this.category = theCategory;
1179      return this;
1180    }
1181
1182    public boolean hasCategory() { 
1183      if (this.category == null)
1184        return false;
1185      for (CodeableConcept item : this.category)
1186        if (!item.isEmpty())
1187          return true;
1188      return false;
1189    }
1190
1191    public CodeableConcept addCategory() { //3
1192      CodeableConcept t = new CodeableConcept();
1193      if (this.category == null)
1194        this.category = new ArrayList<CodeableConcept>();
1195      this.category.add(t);
1196      return t;
1197    }
1198
1199    public DetectedIssue addCategory(CodeableConcept t) { //3
1200      if (t == null)
1201        return this;
1202      if (this.category == null)
1203        this.category = new ArrayList<CodeableConcept>();
1204      this.category.add(t);
1205      return this;
1206    }
1207
1208    /**
1209     * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3}
1210     */
1211    public CodeableConcept getCategoryFirstRep() { 
1212      if (getCategory().isEmpty()) {
1213        addCategory();
1214      }
1215      return getCategory().get(0);
1216    }
1217
1218    /**
1219     * @return {@link #code} (Identifies the specific type of issue identified.)
1220     */
1221    public CodeableConcept getCode() { 
1222      if (this.code == null)
1223        if (Configuration.errorOnAutoCreate())
1224          throw new Error("Attempt to auto-create DetectedIssue.code");
1225        else if (Configuration.doAutoCreate())
1226          this.code = new CodeableConcept(); // cc
1227      return this.code;
1228    }
1229
1230    public boolean hasCode() { 
1231      return this.code != null && !this.code.isEmpty();
1232    }
1233
1234    /**
1235     * @param value {@link #code} (Identifies the specific type of issue identified.)
1236     */
1237    public DetectedIssue setCode(CodeableConcept value) { 
1238      this.code = value;
1239      return this;
1240    }
1241
1242    /**
1243     * @return {@link #severity} (Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value
1244     */
1245    public Enumeration<DetectedIssueSeverity> getSeverityElement() { 
1246      if (this.severity == null)
1247        if (Configuration.errorOnAutoCreate())
1248          throw new Error("Attempt to auto-create DetectedIssue.severity");
1249        else if (Configuration.doAutoCreate())
1250          this.severity = new Enumeration<DetectedIssueSeverity>(new DetectedIssueSeverityEnumFactory()); // bb
1251      return this.severity;
1252    }
1253
1254    public boolean hasSeverityElement() { 
1255      return this.severity != null && !this.severity.isEmpty();
1256    }
1257
1258    public boolean hasSeverity() { 
1259      return this.severity != null && !this.severity.isEmpty();
1260    }
1261
1262    /**
1263     * @param value {@link #severity} (Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value
1264     */
1265    public DetectedIssue setSeverityElement(Enumeration<DetectedIssueSeverity> value) { 
1266      this.severity = value;
1267      return this;
1268    }
1269
1270    /**
1271     * @return Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.
1272     */
1273    public DetectedIssueSeverity getSeverity() { 
1274      return this.severity == null ? null : this.severity.getValue();
1275    }
1276
1277    /**
1278     * @param value Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.
1279     */
1280    public DetectedIssue setSeverity(DetectedIssueSeverity value) { 
1281      if (value == null)
1282        this.severity = null;
1283      else {
1284        if (this.severity == null)
1285          this.severity = new Enumeration<DetectedIssueSeverity>(new DetectedIssueSeverityEnumFactory());
1286        this.severity.setValue(value);
1287      }
1288      return this;
1289    }
1290
1291    /**
1292     * @return {@link #subject} (Indicates the subject whose record the detected issue is associated with.)
1293     */
1294    public Reference getSubject() { 
1295      if (this.subject == null)
1296        if (Configuration.errorOnAutoCreate())
1297          throw new Error("Attempt to auto-create DetectedIssue.subject");
1298        else if (Configuration.doAutoCreate())
1299          this.subject = new Reference(); // cc
1300      return this.subject;
1301    }
1302
1303    public boolean hasSubject() { 
1304      return this.subject != null && !this.subject.isEmpty();
1305    }
1306
1307    /**
1308     * @param value {@link #subject} (Indicates the subject whose record the detected issue is associated with.)
1309     */
1310    public DetectedIssue setSubject(Reference value) { 
1311      this.subject = value;
1312      return this;
1313    }
1314
1315    /**
1316     * @return {@link #encounter} (The encounter during which this issue was detected.)
1317     */
1318    public Reference getEncounter() { 
1319      if (this.encounter == null)
1320        if (Configuration.errorOnAutoCreate())
1321          throw new Error("Attempt to auto-create DetectedIssue.encounter");
1322        else if (Configuration.doAutoCreate())
1323          this.encounter = new Reference(); // cc
1324      return this.encounter;
1325    }
1326
1327    public boolean hasEncounter() { 
1328      return this.encounter != null && !this.encounter.isEmpty();
1329    }
1330
1331    /**
1332     * @param value {@link #encounter} (The encounter during which this issue was detected.)
1333     */
1334    public DetectedIssue setEncounter(Reference value) { 
1335      this.encounter = value;
1336      return this;
1337    }
1338
1339    /**
1340     * @return {@link #identified} (The date or period when the detected issue was initially identified.)
1341     */
1342    public DataType getIdentified() { 
1343      return this.identified;
1344    }
1345
1346    /**
1347     * @return {@link #identified} (The date or period when the detected issue was initially identified.)
1348     */
1349    public DateTimeType getIdentifiedDateTimeType() throws FHIRException { 
1350      if (this.identified == null)
1351        this.identified = new DateTimeType();
1352      if (!(this.identified instanceof DateTimeType))
1353        throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.identified.getClass().getName()+" was encountered");
1354      return (DateTimeType) this.identified;
1355    }
1356
1357    public boolean hasIdentifiedDateTimeType() { 
1358      return this != null && this.identified instanceof DateTimeType;
1359    }
1360
1361    /**
1362     * @return {@link #identified} (The date or period when the detected issue was initially identified.)
1363     */
1364    public Period getIdentifiedPeriod() throws FHIRException { 
1365      if (this.identified == null)
1366        this.identified = new Period();
1367      if (!(this.identified instanceof Period))
1368        throw new FHIRException("Type mismatch: the type Period was expected, but "+this.identified.getClass().getName()+" was encountered");
1369      return (Period) this.identified;
1370    }
1371
1372    public boolean hasIdentifiedPeriod() { 
1373      return this != null && this.identified instanceof Period;
1374    }
1375
1376    public boolean hasIdentified() { 
1377      return this.identified != null && !this.identified.isEmpty();
1378    }
1379
1380    /**
1381     * @param value {@link #identified} (The date or period when the detected issue was initially identified.)
1382     */
1383    public DetectedIssue setIdentified(DataType value) { 
1384      if (value != null && !(value instanceof DateTimeType || value instanceof Period))
1385        throw new FHIRException("Not the right type for DetectedIssue.identified[x]: "+value.fhirType());
1386      this.identified = value;
1387      return this;
1388    }
1389
1390    /**
1391     * @return {@link #author} (Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.)
1392     */
1393    public Reference getAuthor() { 
1394      if (this.author == null)
1395        if (Configuration.errorOnAutoCreate())
1396          throw new Error("Attempt to auto-create DetectedIssue.author");
1397        else if (Configuration.doAutoCreate())
1398          this.author = new Reference(); // cc
1399      return this.author;
1400    }
1401
1402    public boolean hasAuthor() { 
1403      return this.author != null && !this.author.isEmpty();
1404    }
1405
1406    /**
1407     * @param value {@link #author} (Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.)
1408     */
1409    public DetectedIssue setAuthor(Reference value) { 
1410      this.author = value;
1411      return this;
1412    }
1413
1414    /**
1415     * @return {@link #implicated} (Indicates the resource representing the current activity or proposed activity that is potentially problematic.)
1416     */
1417    public List<Reference> getImplicated() { 
1418      if (this.implicated == null)
1419        this.implicated = new ArrayList<Reference>();
1420      return this.implicated;
1421    }
1422
1423    /**
1424     * @return Returns a reference to <code>this</code> for easy method chaining
1425     */
1426    public DetectedIssue setImplicated(List<Reference> theImplicated) { 
1427      this.implicated = theImplicated;
1428      return this;
1429    }
1430
1431    public boolean hasImplicated() { 
1432      if (this.implicated == null)
1433        return false;
1434      for (Reference item : this.implicated)
1435        if (!item.isEmpty())
1436          return true;
1437      return false;
1438    }
1439
1440    public Reference addImplicated() { //3
1441      Reference t = new Reference();
1442      if (this.implicated == null)
1443        this.implicated = new ArrayList<Reference>();
1444      this.implicated.add(t);
1445      return t;
1446    }
1447
1448    public DetectedIssue addImplicated(Reference t) { //3
1449      if (t == null)
1450        return this;
1451      if (this.implicated == null)
1452        this.implicated = new ArrayList<Reference>();
1453      this.implicated.add(t);
1454      return this;
1455    }
1456
1457    /**
1458     * @return The first repetition of repeating field {@link #implicated}, creating it if it does not already exist {3}
1459     */
1460    public Reference getImplicatedFirstRep() { 
1461      if (getImplicated().isEmpty()) {
1462        addImplicated();
1463      }
1464      return getImplicated().get(0);
1465    }
1466
1467    /**
1468     * @return {@link #evidence} (Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.)
1469     */
1470    public List<DetectedIssueEvidenceComponent> getEvidence() { 
1471      if (this.evidence == null)
1472        this.evidence = new ArrayList<DetectedIssueEvidenceComponent>();
1473      return this.evidence;
1474    }
1475
1476    /**
1477     * @return Returns a reference to <code>this</code> for easy method chaining
1478     */
1479    public DetectedIssue setEvidence(List<DetectedIssueEvidenceComponent> theEvidence) { 
1480      this.evidence = theEvidence;
1481      return this;
1482    }
1483
1484    public boolean hasEvidence() { 
1485      if (this.evidence == null)
1486        return false;
1487      for (DetectedIssueEvidenceComponent item : this.evidence)
1488        if (!item.isEmpty())
1489          return true;
1490      return false;
1491    }
1492
1493    public DetectedIssueEvidenceComponent addEvidence() { //3
1494      DetectedIssueEvidenceComponent t = new DetectedIssueEvidenceComponent();
1495      if (this.evidence == null)
1496        this.evidence = new ArrayList<DetectedIssueEvidenceComponent>();
1497      this.evidence.add(t);
1498      return t;
1499    }
1500
1501    public DetectedIssue addEvidence(DetectedIssueEvidenceComponent t) { //3
1502      if (t == null)
1503        return this;
1504      if (this.evidence == null)
1505        this.evidence = new ArrayList<DetectedIssueEvidenceComponent>();
1506      this.evidence.add(t);
1507      return this;
1508    }
1509
1510    /**
1511     * @return The first repetition of repeating field {@link #evidence}, creating it if it does not already exist {3}
1512     */
1513    public DetectedIssueEvidenceComponent getEvidenceFirstRep() { 
1514      if (getEvidence().isEmpty()) {
1515        addEvidence();
1516      }
1517      return getEvidence().get(0);
1518    }
1519
1520    /**
1521     * @return {@link #detail} (A textual explanation of the detected issue.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value
1522     */
1523    public MarkdownType getDetailElement() { 
1524      if (this.detail == null)
1525        if (Configuration.errorOnAutoCreate())
1526          throw new Error("Attempt to auto-create DetectedIssue.detail");
1527        else if (Configuration.doAutoCreate())
1528          this.detail = new MarkdownType(); // bb
1529      return this.detail;
1530    }
1531
1532    public boolean hasDetailElement() { 
1533      return this.detail != null && !this.detail.isEmpty();
1534    }
1535
1536    public boolean hasDetail() { 
1537      return this.detail != null && !this.detail.isEmpty();
1538    }
1539
1540    /**
1541     * @param value {@link #detail} (A textual explanation of the detected issue.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value
1542     */
1543    public DetectedIssue setDetailElement(MarkdownType value) { 
1544      this.detail = value;
1545      return this;
1546    }
1547
1548    /**
1549     * @return A textual explanation of the detected issue.
1550     */
1551    public String getDetail() { 
1552      return this.detail == null ? null : this.detail.getValue();
1553    }
1554
1555    /**
1556     * @param value A textual explanation of the detected issue.
1557     */
1558    public DetectedIssue setDetail(String value) { 
1559      if (Utilities.noString(value))
1560        this.detail = null;
1561      else {
1562        if (this.detail == null)
1563          this.detail = new MarkdownType();
1564        this.detail.setValue(value);
1565      }
1566      return this;
1567    }
1568
1569    /**
1570     * @return {@link #reference} (The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value
1571     */
1572    public UriType getReferenceElement() { 
1573      if (this.reference == null)
1574        if (Configuration.errorOnAutoCreate())
1575          throw new Error("Attempt to auto-create DetectedIssue.reference");
1576        else if (Configuration.doAutoCreate())
1577          this.reference = new UriType(); // bb
1578      return this.reference;
1579    }
1580
1581    public boolean hasReferenceElement() { 
1582      return this.reference != null && !this.reference.isEmpty();
1583    }
1584
1585    public boolean hasReference() { 
1586      return this.reference != null && !this.reference.isEmpty();
1587    }
1588
1589    /**
1590     * @param value {@link #reference} (The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value
1591     */
1592    public DetectedIssue setReferenceElement(UriType value) { 
1593      this.reference = value;
1594      return this;
1595    }
1596
1597    /**
1598     * @return The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.
1599     */
1600    public String getReference() { 
1601      return this.reference == null ? null : this.reference.getValue();
1602    }
1603
1604    /**
1605     * @param value The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.
1606     */
1607    public DetectedIssue setReference(String value) { 
1608      if (Utilities.noString(value))
1609        this.reference = null;
1610      else {
1611        if (this.reference == null)
1612          this.reference = new UriType();
1613        this.reference.setValue(value);
1614      }
1615      return this;
1616    }
1617
1618    /**
1619     * @return {@link #mitigation} (Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.)
1620     */
1621    public List<DetectedIssueMitigationComponent> getMitigation() { 
1622      if (this.mitigation == null)
1623        this.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
1624      return this.mitigation;
1625    }
1626
1627    /**
1628     * @return Returns a reference to <code>this</code> for easy method chaining
1629     */
1630    public DetectedIssue setMitigation(List<DetectedIssueMitigationComponent> theMitigation) { 
1631      this.mitigation = theMitigation;
1632      return this;
1633    }
1634
1635    public boolean hasMitigation() { 
1636      if (this.mitigation == null)
1637        return false;
1638      for (DetectedIssueMitigationComponent item : this.mitigation)
1639        if (!item.isEmpty())
1640          return true;
1641      return false;
1642    }
1643
1644    public DetectedIssueMitigationComponent addMitigation() { //3
1645      DetectedIssueMitigationComponent t = new DetectedIssueMitigationComponent();
1646      if (this.mitigation == null)
1647        this.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
1648      this.mitigation.add(t);
1649      return t;
1650    }
1651
1652    public DetectedIssue addMitigation(DetectedIssueMitigationComponent t) { //3
1653      if (t == null)
1654        return this;
1655      if (this.mitigation == null)
1656        this.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
1657      this.mitigation.add(t);
1658      return this;
1659    }
1660
1661    /**
1662     * @return The first repetition of repeating field {@link #mitigation}, creating it if it does not already exist {3}
1663     */
1664    public DetectedIssueMitigationComponent getMitigationFirstRep() { 
1665      if (getMitigation().isEmpty()) {
1666        addMitigation();
1667      }
1668      return getMitigation().get(0);
1669    }
1670
1671      protected void listChildren(List<Property> children) {
1672        super.listChildren(children);
1673        children.add(new Property("identifier", "Identifier", "Business identifier associated with the detected issue record.", 0, java.lang.Integer.MAX_VALUE, identifier));
1674        children.add(new Property("status", "code", "Indicates the status of the detected issue.", 0, 1, status));
1675        children.add(new Property("category", "CodeableConcept", "A code that classifies the general type of detected issue.", 0, java.lang.Integer.MAX_VALUE, category));
1676        children.add(new Property("code", "CodeableConcept", "Identifies the specific type of issue identified.", 0, 1, code));
1677        children.add(new Property("severity", "code", "Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.", 0, 1, severity));
1678        children.add(new Property("subject", "Reference(Patient|Group|Device|Location|Organization|Procedure|Practitioner|Medication|Substance|BiologicallyDerivedProduct|NutritionProduct)", "Indicates the subject whose record the detected issue is associated with.", 0, 1, subject));
1679        children.add(new Property("encounter", "Reference(Encounter)", "The encounter during which this issue was detected.", 0, 1, encounter));
1680        children.add(new Property("identified[x]", "dateTime|Period", "The date or period when the detected issue was initially identified.", 0, 1, identified));
1681        children.add(new Property("author", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Device)", "Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.", 0, 1, author));
1682        children.add(new Property("implicated", "Reference(Any)", "Indicates the resource representing the current activity or proposed activity that is potentially problematic.", 0, java.lang.Integer.MAX_VALUE, implicated));
1683        children.add(new Property("evidence", "", "Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.", 0, java.lang.Integer.MAX_VALUE, evidence));
1684        children.add(new Property("detail", "markdown", "A textual explanation of the detected issue.", 0, 1, detail));
1685        children.add(new Property("reference", "uri", "The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.", 0, 1, reference));
1686        children.add(new Property("mitigation", "", "Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.", 0, java.lang.Integer.MAX_VALUE, mitigation));
1687      }
1688
1689      @Override
1690      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1691        switch (_hash) {
1692        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Business identifier associated with the detected issue record.", 0, java.lang.Integer.MAX_VALUE, identifier);
1693        case -892481550: /*status*/  return new Property("status", "code", "Indicates the status of the detected issue.", 0, 1, status);
1694        case 50511102: /*category*/  return new Property("category", "CodeableConcept", "A code that classifies the general type of detected issue.", 0, java.lang.Integer.MAX_VALUE, category);
1695        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Identifies the specific type of issue identified.", 0, 1, code);
1696        case 1478300413: /*severity*/  return new Property("severity", "code", "Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.", 0, 1, severity);
1697        case -1867885268: /*subject*/  return new Property("subject", "Reference(Patient|Group|Device|Location|Organization|Procedure|Practitioner|Medication|Substance|BiologicallyDerivedProduct|NutritionProduct)", "Indicates the subject whose record the detected issue is associated with.", 0, 1, subject);
1698        case 1524132147: /*encounter*/  return new Property("encounter", "Reference(Encounter)", "The encounter during which this issue was detected.", 0, 1, encounter);
1699        case 569355781: /*identified[x]*/  return new Property("identified[x]", "dateTime|Period", "The date or period when the detected issue was initially identified.", 0, 1, identified);
1700        case -1618432869: /*identified*/  return new Property("identified[x]", "dateTime|Period", "The date or period when the detected issue was initially identified.", 0, 1, identified);
1701        case -968788650: /*identifiedDateTime*/  return new Property("identified[x]", "dateTime", "The date or period when the detected issue was initially identified.", 0, 1, identified);
1702        case 520482364: /*identifiedPeriod*/  return new Property("identified[x]", "Period", "The date or period when the detected issue was initially identified.", 0, 1, identified);
1703        case -1406328437: /*author*/  return new Property("author", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Device)", "Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.", 0, 1, author);
1704        case -810216884: /*implicated*/  return new Property("implicated", "Reference(Any)", "Indicates the resource representing the current activity or proposed activity that is potentially problematic.", 0, java.lang.Integer.MAX_VALUE, implicated);
1705        case 382967383: /*evidence*/  return new Property("evidence", "", "Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.", 0, java.lang.Integer.MAX_VALUE, evidence);
1706        case -1335224239: /*detail*/  return new Property("detail", "markdown", "A textual explanation of the detected issue.", 0, 1, detail);
1707        case -925155509: /*reference*/  return new Property("reference", "uri", "The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.", 0, 1, reference);
1708        case 1293793087: /*mitigation*/  return new Property("mitigation", "", "Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.", 0, java.lang.Integer.MAX_VALUE, mitigation);
1709        default: return super.getNamedProperty(_hash, _name, _checkValid);
1710        }
1711
1712      }
1713
1714      @Override
1715      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1716        switch (hash) {
1717        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1718        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<DetectedIssueStatus>
1719        case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept
1720        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
1721        case 1478300413: /*severity*/ return this.severity == null ? new Base[0] : new Base[] {this.severity}; // Enumeration<DetectedIssueSeverity>
1722        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
1723        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
1724        case -1618432869: /*identified*/ return this.identified == null ? new Base[0] : new Base[] {this.identified}; // DataType
1725        case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference
1726        case -810216884: /*implicated*/ return this.implicated == null ? new Base[0] : this.implicated.toArray(new Base[this.implicated.size()]); // Reference
1727        case 382967383: /*evidence*/ return this.evidence == null ? new Base[0] : this.evidence.toArray(new Base[this.evidence.size()]); // DetectedIssueEvidenceComponent
1728        case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : new Base[] {this.detail}; // MarkdownType
1729        case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // UriType
1730        case 1293793087: /*mitigation*/ return this.mitigation == null ? new Base[0] : this.mitigation.toArray(new Base[this.mitigation.size()]); // DetectedIssueMitigationComponent
1731        default: return super.getProperty(hash, name, checkValid);
1732        }
1733
1734      }
1735
1736      @Override
1737      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1738        switch (hash) {
1739        case -1618432855: // identifier
1740          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1741          return value;
1742        case -892481550: // status
1743          value = new DetectedIssueStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1744          this.status = (Enumeration) value; // Enumeration<DetectedIssueStatus>
1745          return value;
1746        case 50511102: // category
1747          this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1748          return value;
1749        case 3059181: // code
1750          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1751          return value;
1752        case 1478300413: // severity
1753          value = new DetectedIssueSeverityEnumFactory().fromType(TypeConvertor.castToCode(value));
1754          this.severity = (Enumeration) value; // Enumeration<DetectedIssueSeverity>
1755          return value;
1756        case -1867885268: // subject
1757          this.subject = TypeConvertor.castToReference(value); // Reference
1758          return value;
1759        case 1524132147: // encounter
1760          this.encounter = TypeConvertor.castToReference(value); // Reference
1761          return value;
1762        case -1618432869: // identified
1763          this.identified = TypeConvertor.castToType(value); // DataType
1764          return value;
1765        case -1406328437: // author
1766          this.author = TypeConvertor.castToReference(value); // Reference
1767          return value;
1768        case -810216884: // implicated
1769          this.getImplicated().add(TypeConvertor.castToReference(value)); // Reference
1770          return value;
1771        case 382967383: // evidence
1772          this.getEvidence().add((DetectedIssueEvidenceComponent) value); // DetectedIssueEvidenceComponent
1773          return value;
1774        case -1335224239: // detail
1775          this.detail = TypeConvertor.castToMarkdown(value); // MarkdownType
1776          return value;
1777        case -925155509: // reference
1778          this.reference = TypeConvertor.castToUri(value); // UriType
1779          return value;
1780        case 1293793087: // mitigation
1781          this.getMitigation().add((DetectedIssueMitigationComponent) value); // DetectedIssueMitigationComponent
1782          return value;
1783        default: return super.setProperty(hash, name, value);
1784        }
1785
1786      }
1787
1788      @Override
1789      public Base setProperty(String name, Base value) throws FHIRException {
1790        if (name.equals("identifier")) {
1791          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1792        } else if (name.equals("status")) {
1793          value = new DetectedIssueStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1794          this.status = (Enumeration) value; // Enumeration<DetectedIssueStatus>
1795        } else if (name.equals("category")) {
1796          this.getCategory().add(TypeConvertor.castToCodeableConcept(value));
1797        } else if (name.equals("code")) {
1798          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1799        } else if (name.equals("severity")) {
1800          value = new DetectedIssueSeverityEnumFactory().fromType(TypeConvertor.castToCode(value));
1801          this.severity = (Enumeration) value; // Enumeration<DetectedIssueSeverity>
1802        } else if (name.equals("subject")) {
1803          this.subject = TypeConvertor.castToReference(value); // Reference
1804        } else if (name.equals("encounter")) {
1805          this.encounter = TypeConvertor.castToReference(value); // Reference
1806        } else if (name.equals("identified[x]")) {
1807          this.identified = TypeConvertor.castToType(value); // DataType
1808        } else if (name.equals("author")) {
1809          this.author = TypeConvertor.castToReference(value); // Reference
1810        } else if (name.equals("implicated")) {
1811          this.getImplicated().add(TypeConvertor.castToReference(value));
1812        } else if (name.equals("evidence")) {
1813          this.getEvidence().add((DetectedIssueEvidenceComponent) value);
1814        } else if (name.equals("detail")) {
1815          this.detail = TypeConvertor.castToMarkdown(value); // MarkdownType
1816        } else if (name.equals("reference")) {
1817          this.reference = TypeConvertor.castToUri(value); // UriType
1818        } else if (name.equals("mitigation")) {
1819          this.getMitigation().add((DetectedIssueMitigationComponent) value);
1820        } else
1821          return super.setProperty(name, value);
1822        return value;
1823      }
1824
1825  @Override
1826  public void removeChild(String name, Base value) throws FHIRException {
1827        if (name.equals("identifier")) {
1828          this.getIdentifier().remove(value);
1829        } else if (name.equals("status")) {
1830          value = new DetectedIssueStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1831          this.status = (Enumeration) value; // Enumeration<DetectedIssueStatus>
1832        } else if (name.equals("category")) {
1833          this.getCategory().remove(value);
1834        } else if (name.equals("code")) {
1835          this.code = null;
1836        } else if (name.equals("severity")) {
1837          value = new DetectedIssueSeverityEnumFactory().fromType(TypeConvertor.castToCode(value));
1838          this.severity = (Enumeration) value; // Enumeration<DetectedIssueSeverity>
1839        } else if (name.equals("subject")) {
1840          this.subject = null;
1841        } else if (name.equals("encounter")) {
1842          this.encounter = null;
1843        } else if (name.equals("identified[x]")) {
1844          this.identified = null;
1845        } else if (name.equals("author")) {
1846          this.author = null;
1847        } else if (name.equals("implicated")) {
1848          this.getImplicated().remove(value);
1849        } else if (name.equals("evidence")) {
1850          this.getEvidence().remove((DetectedIssueEvidenceComponent) value);
1851        } else if (name.equals("detail")) {
1852          this.detail = null;
1853        } else if (name.equals("reference")) {
1854          this.reference = null;
1855        } else if (name.equals("mitigation")) {
1856          this.getMitigation().remove((DetectedIssueMitigationComponent) value);
1857        } else
1858          super.removeChild(name, value);
1859        
1860      }
1861
1862      @Override
1863      public Base makeProperty(int hash, String name) throws FHIRException {
1864        switch (hash) {
1865        case -1618432855:  return addIdentifier(); 
1866        case -892481550:  return getStatusElement();
1867        case 50511102:  return addCategory(); 
1868        case 3059181:  return getCode();
1869        case 1478300413:  return getSeverityElement();
1870        case -1867885268:  return getSubject();
1871        case 1524132147:  return getEncounter();
1872        case 569355781:  return getIdentified();
1873        case -1618432869:  return getIdentified();
1874        case -1406328437:  return getAuthor();
1875        case -810216884:  return addImplicated(); 
1876        case 382967383:  return addEvidence(); 
1877        case -1335224239:  return getDetailElement();
1878        case -925155509:  return getReferenceElement();
1879        case 1293793087:  return addMitigation(); 
1880        default: return super.makeProperty(hash, name);
1881        }
1882
1883      }
1884
1885      @Override
1886      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1887        switch (hash) {
1888        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1889        case -892481550: /*status*/ return new String[] {"code"};
1890        case 50511102: /*category*/ return new String[] {"CodeableConcept"};
1891        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
1892        case 1478300413: /*severity*/ return new String[] {"code"};
1893        case -1867885268: /*subject*/ return new String[] {"Reference"};
1894        case 1524132147: /*encounter*/ return new String[] {"Reference"};
1895        case -1618432869: /*identified*/ return new String[] {"dateTime", "Period"};
1896        case -1406328437: /*author*/ return new String[] {"Reference"};
1897        case -810216884: /*implicated*/ return new String[] {"Reference"};
1898        case 382967383: /*evidence*/ return new String[] {};
1899        case -1335224239: /*detail*/ return new String[] {"markdown"};
1900        case -925155509: /*reference*/ return new String[] {"uri"};
1901        case 1293793087: /*mitigation*/ return new String[] {};
1902        default: return super.getTypesForProperty(hash, name);
1903        }
1904
1905      }
1906
1907      @Override
1908      public Base addChild(String name) throws FHIRException {
1909        if (name.equals("identifier")) {
1910          return addIdentifier();
1911        }
1912        else if (name.equals("status")) {
1913          throw new FHIRException("Cannot call addChild on a singleton property DetectedIssue.status");
1914        }
1915        else if (name.equals("category")) {
1916          return addCategory();
1917        }
1918        else if (name.equals("code")) {
1919          this.code = new CodeableConcept();
1920          return this.code;
1921        }
1922        else if (name.equals("severity")) {
1923          throw new FHIRException("Cannot call addChild on a singleton property DetectedIssue.severity");
1924        }
1925        else if (name.equals("subject")) {
1926          this.subject = new Reference();
1927          return this.subject;
1928        }
1929        else if (name.equals("encounter")) {
1930          this.encounter = new Reference();
1931          return this.encounter;
1932        }
1933        else if (name.equals("identifiedDateTime")) {
1934          this.identified = new DateTimeType();
1935          return this.identified;
1936        }
1937        else if (name.equals("identifiedPeriod")) {
1938          this.identified = new Period();
1939          return this.identified;
1940        }
1941        else if (name.equals("author")) {
1942          this.author = new Reference();
1943          return this.author;
1944        }
1945        else if (name.equals("implicated")) {
1946          return addImplicated();
1947        }
1948        else if (name.equals("evidence")) {
1949          return addEvidence();
1950        }
1951        else if (name.equals("detail")) {
1952          throw new FHIRException("Cannot call addChild on a singleton property DetectedIssue.detail");
1953        }
1954        else if (name.equals("reference")) {
1955          throw new FHIRException("Cannot call addChild on a singleton property DetectedIssue.reference");
1956        }
1957        else if (name.equals("mitigation")) {
1958          return addMitigation();
1959        }
1960        else
1961          return super.addChild(name);
1962      }
1963
1964  public String fhirType() {
1965    return "DetectedIssue";
1966
1967  }
1968
1969      public DetectedIssue copy() {
1970        DetectedIssue dst = new DetectedIssue();
1971        copyValues(dst);
1972        return dst;
1973      }
1974
1975      public void copyValues(DetectedIssue dst) {
1976        super.copyValues(dst);
1977        if (identifier != null) {
1978          dst.identifier = new ArrayList<Identifier>();
1979          for (Identifier i : identifier)
1980            dst.identifier.add(i.copy());
1981        };
1982        dst.status = status == null ? null : status.copy();
1983        if (category != null) {
1984          dst.category = new ArrayList<CodeableConcept>();
1985          for (CodeableConcept i : category)
1986            dst.category.add(i.copy());
1987        };
1988        dst.code = code == null ? null : code.copy();
1989        dst.severity = severity == null ? null : severity.copy();
1990        dst.subject = subject == null ? null : subject.copy();
1991        dst.encounter = encounter == null ? null : encounter.copy();
1992        dst.identified = identified == null ? null : identified.copy();
1993        dst.author = author == null ? null : author.copy();
1994        if (implicated != null) {
1995          dst.implicated = new ArrayList<Reference>();
1996          for (Reference i : implicated)
1997            dst.implicated.add(i.copy());
1998        };
1999        if (evidence != null) {
2000          dst.evidence = new ArrayList<DetectedIssueEvidenceComponent>();
2001          for (DetectedIssueEvidenceComponent i : evidence)
2002            dst.evidence.add(i.copy());
2003        };
2004        dst.detail = detail == null ? null : detail.copy();
2005        dst.reference = reference == null ? null : reference.copy();
2006        if (mitigation != null) {
2007          dst.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
2008          for (DetectedIssueMitigationComponent i : mitigation)
2009            dst.mitigation.add(i.copy());
2010        };
2011      }
2012
2013      protected DetectedIssue typedCopy() {
2014        return copy();
2015      }
2016
2017      @Override
2018      public boolean equalsDeep(Base other_) {
2019        if (!super.equalsDeep(other_))
2020          return false;
2021        if (!(other_ instanceof DetectedIssue))
2022          return false;
2023        DetectedIssue o = (DetectedIssue) other_;
2024        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(category, o.category, true)
2025           && compareDeep(code, o.code, true) && compareDeep(severity, o.severity, true) && compareDeep(subject, o.subject, true)
2026           && compareDeep(encounter, o.encounter, true) && compareDeep(identified, o.identified, true) && compareDeep(author, o.author, true)
2027           && compareDeep(implicated, o.implicated, true) && compareDeep(evidence, o.evidence, true) && compareDeep(detail, o.detail, true)
2028           && compareDeep(reference, o.reference, true) && compareDeep(mitigation, o.mitigation, true);
2029      }
2030
2031      @Override
2032      public boolean equalsShallow(Base other_) {
2033        if (!super.equalsShallow(other_))
2034          return false;
2035        if (!(other_ instanceof DetectedIssue))
2036          return false;
2037        DetectedIssue o = (DetectedIssue) other_;
2038        return compareValues(status, o.status, true) && compareValues(severity, o.severity, true) && compareValues(detail, o.detail, true)
2039           && compareValues(reference, o.reference, true);
2040      }
2041
2042      public boolean isEmpty() {
2043        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, category
2044          , code, severity, subject, encounter, identified, author, implicated, evidence
2045          , detail, reference, mitigation);
2046      }
2047
2048  @Override
2049  public ResourceType getResourceType() {
2050    return ResourceType.DetectedIssue;
2051   }
2052
2053 /**
2054   * Search parameter: <b>author</b>
2055   * <p>
2056   * Description: <b>The provider or device that identified the issue</b><br>
2057   * Type: <b>reference</b><br>
2058   * Path: <b>DetectedIssue.author</b><br>
2059   * </p>
2060   */
2061  @SearchParamDefinition(name="author", path="DetectedIssue.author", description="The provider or device that identified the issue", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Device.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
2062  public static final String SP_AUTHOR = "author";
2063 /**
2064   * <b>Fluent Client</b> search parameter constant for <b>author</b>
2065   * <p>
2066   * Description: <b>The provider or device that identified the issue</b><br>
2067   * Type: <b>reference</b><br>
2068   * Path: <b>DetectedIssue.author</b><br>
2069   * </p>
2070   */
2071  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AUTHOR);
2072
2073/**
2074   * Constant for fluent queries to be used to add include statements. Specifies
2075   * the path value of "<b>DetectedIssue:author</b>".
2076   */
2077  public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include("DetectedIssue:author").toLocked();
2078
2079 /**
2080   * Search parameter: <b>category</b>
2081   * <p>
2082   * Description: <b>Issue Category, e.g. drug-drug, duplicate therapy, etc.</b><br>
2083   * Type: <b>token</b><br>
2084   * Path: <b>DetectedIssue.category</b><br>
2085   * </p>
2086   */
2087  @SearchParamDefinition(name="category", path="DetectedIssue.category", description="Issue Category, e.g. drug-drug, duplicate therapy, etc.", type="token" )
2088  public static final String SP_CATEGORY = "category";
2089 /**
2090   * <b>Fluent Client</b> search parameter constant for <b>category</b>
2091   * <p>
2092   * Description: <b>Issue Category, e.g. drug-drug, duplicate therapy, etc.</b><br>
2093   * Type: <b>token</b><br>
2094   * Path: <b>DetectedIssue.category</b><br>
2095   * </p>
2096   */
2097  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY);
2098
2099 /**
2100   * Search parameter: <b>identified</b>
2101   * <p>
2102   * Description: <b>When identified</b><br>
2103   * Type: <b>date</b><br>
2104   * Path: <b>DetectedIssue.identified.ofType(dateTime) | DetectedIssue.identified.ofType(Period)</b><br>
2105   * </p>
2106   */
2107  @SearchParamDefinition(name="identified", path="DetectedIssue.identified.ofType(dateTime) | DetectedIssue.identified.ofType(Period)", description="When identified", type="date" )
2108  public static final String SP_IDENTIFIED = "identified";
2109 /**
2110   * <b>Fluent Client</b> search parameter constant for <b>identified</b>
2111   * <p>
2112   * Description: <b>When identified</b><br>
2113   * Type: <b>date</b><br>
2114   * Path: <b>DetectedIssue.identified.ofType(dateTime) | DetectedIssue.identified.ofType(Period)</b><br>
2115   * </p>
2116   */
2117  public static final ca.uhn.fhir.rest.gclient.DateClientParam IDENTIFIED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_IDENTIFIED);
2118
2119 /**
2120   * Search parameter: <b>implicated</b>
2121   * <p>
2122   * Description: <b>Problem resource</b><br>
2123   * Type: <b>reference</b><br>
2124   * Path: <b>DetectedIssue.implicated</b><br>
2125   * </p>
2126   */
2127  @SearchParamDefinition(name="implicated", path="DetectedIssue.implicated", description="Problem resource", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
2128  public static final String SP_IMPLICATED = "implicated";
2129 /**
2130   * <b>Fluent Client</b> search parameter constant for <b>implicated</b>
2131   * <p>
2132   * Description: <b>Problem resource</b><br>
2133   * Type: <b>reference</b><br>
2134   * Path: <b>DetectedIssue.implicated</b><br>
2135   * </p>
2136   */
2137  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam IMPLICATED = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_IMPLICATED);
2138
2139/**
2140   * Constant for fluent queries to be used to add include statements. Specifies
2141   * the path value of "<b>DetectedIssue:implicated</b>".
2142   */
2143  public static final ca.uhn.fhir.model.api.Include INCLUDE_IMPLICATED = new ca.uhn.fhir.model.api.Include("DetectedIssue:implicated").toLocked();
2144
2145 /**
2146   * Search parameter: <b>status</b>
2147   * <p>
2148   * Description: <b>The status of the issue</b><br>
2149   * Type: <b>token</b><br>
2150   * Path: <b>DetectedIssue.status</b><br>
2151   * </p>
2152   */
2153  @SearchParamDefinition(name="status", path="DetectedIssue.status", description="The status of the issue", type="token" )
2154  public static final String SP_STATUS = "status";
2155 /**
2156   * <b>Fluent Client</b> search parameter constant for <b>status</b>
2157   * <p>
2158   * Description: <b>The status of the issue</b><br>
2159   * Type: <b>token</b><br>
2160   * Path: <b>DetectedIssue.status</b><br>
2161   * </p>
2162   */
2163  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
2164
2165 /**
2166   * Search parameter: <b>subject</b>
2167   * <p>
2168   * Description: <b>Associated subject</b><br>
2169   * Type: <b>reference</b><br>
2170   * Path: <b>DetectedIssue.subject</b><br>
2171   * </p>
2172   */
2173  @SearchParamDefinition(name="subject", path="DetectedIssue.subject", description="Associated subject", type="reference", target={BiologicallyDerivedProduct.class, Device.class, Group.class, Location.class, Medication.class, NutritionProduct.class, Organization.class, Patient.class, Practitioner.class, Procedure.class, Substance.class } )
2174  public static final String SP_SUBJECT = "subject";
2175 /**
2176   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
2177   * <p>
2178   * Description: <b>Associated subject</b><br>
2179   * Type: <b>reference</b><br>
2180   * Path: <b>DetectedIssue.subject</b><br>
2181   * </p>
2182   */
2183  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
2184
2185/**
2186   * Constant for fluent queries to be used to add include statements. Specifies
2187   * the path value of "<b>DetectedIssue:subject</b>".
2188   */
2189  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("DetectedIssue:subject").toLocked();
2190
2191 /**
2192   * Search parameter: <b>code</b>
2193   * <p>
2194   * Description: <b>Multiple Resources: 
2195
2196* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted
2197* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
2198* [AuditEvent](auditevent.html): More specific code for the event
2199* [Basic](basic.html): Kind of Resource
2200* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code
2201* [Condition](condition.html): Code for the condition
2202* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.
2203* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
2204* [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
2205* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
2206* [ImagingSelection](imagingselection.html): The imaging selection status
2207* [List](list.html): What the purpose of this list is
2208* [Medication](medication.html): Returns medications for a specific code
2209* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
2210* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
2211* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
2212* [MedicationStatement](medicationstatement.html): Return statements of this medication code
2213* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake
2214* [Observation](observation.html): The code of the observation type
2215* [Procedure](procedure.html): A code to identify a  procedure
2216* [RequestOrchestration](requestorchestration.html): The code of the request orchestration
2217* [Task](task.html): Search by task code
2218</b><br>
2219   * Type: <b>token</b><br>
2220   * 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>
2221   * </p>
2222   */
2223  @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" )
2224  public static final String SP_CODE = "code";
2225 /**
2226   * <b>Fluent Client</b> search parameter constant for <b>code</b>
2227   * <p>
2228   * Description: <b>Multiple Resources: 
2229
2230* [AdverseEvent](adverseevent.html): Event or incident that occurred or was averted
2231* [AllergyIntolerance](allergyintolerance.html): Code that identifies the allergy or intolerance
2232* [AuditEvent](auditevent.html): More specific code for the event
2233* [Basic](basic.html): Kind of Resource
2234* [ChargeItem](chargeitem.html): A code that identifies the charge, like a billing code
2235* [Condition](condition.html): Code for the condition
2236* [DetectedIssue](detectedissue.html): Issue Type, e.g. drug-drug, duplicate therapy, etc.
2237* [DeviceRequest](devicerequest.html): Code for what is being requested/ordered
2238* [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
2239* [FamilyMemberHistory](familymemberhistory.html): A search by a condition code
2240* [ImagingSelection](imagingselection.html): The imaging selection status
2241* [List](list.html): What the purpose of this list is
2242* [Medication](medication.html): Returns medications for a specific code
2243* [MedicationAdministration](medicationadministration.html): Return administrations of this medication code
2244* [MedicationDispense](medicationdispense.html): Returns dispenses of this medicine code
2245* [MedicationRequest](medicationrequest.html): Return prescriptions of this medication code
2246* [MedicationStatement](medicationstatement.html): Return statements of this medication code
2247* [NutritionIntake](nutritionintake.html): Returns statements of this code of NutritionIntake
2248* [Observation](observation.html): The code of the observation type
2249* [Procedure](procedure.html): A code to identify a  procedure
2250* [RequestOrchestration](requestorchestration.html): The code of the request orchestration
2251* [Task](task.html): Search by task code
2252</b><br>
2253   * Type: <b>token</b><br>
2254   * 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>
2255   * </p>
2256   */
2257  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
2258
2259 /**
2260   * Search parameter: <b>identifier</b>
2261   * <p>
2262   * Description: <b>Multiple Resources: 
2263
2264* [Account](account.html): Account number
2265* [AdverseEvent](adverseevent.html): Business identifier for the event
2266* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2267* [Appointment](appointment.html): An Identifier of the Appointment
2268* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2269* [Basic](basic.html): Business identifier
2270* [BodyStructure](bodystructure.html): Bodystructure identifier
2271* [CarePlan](careplan.html): External Ids for this plan
2272* [CareTeam](careteam.html): External Ids for this team
2273* [ChargeItem](chargeitem.html): Business Identifier for item
2274* [Claim](claim.html): The primary identifier of the financial resource
2275* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2276* [ClinicalImpression](clinicalimpression.html): Business identifier
2277* [Communication](communication.html): Unique identifier
2278* [CommunicationRequest](communicationrequest.html): Unique identifier
2279* [Composition](composition.html): Version-independent identifier for the Composition
2280* [Condition](condition.html): A unique identifier of the condition record
2281* [Consent](consent.html): Identifier for this record (external references)
2282* [Contract](contract.html): The identity of the contract
2283* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2284* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2285* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2286* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2287* [DeviceRequest](devicerequest.html): Business identifier for request/order
2288* [DeviceUsage](deviceusage.html): Search by identifier
2289* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2290* [DocumentReference](documentreference.html): Identifier of the attachment binary
2291* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2292* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2293* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2294* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2295* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2296* [Flag](flag.html): Business identifier
2297* [Goal](goal.html): External Ids for this goal
2298* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2299* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2300* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2301* [Immunization](immunization.html): Business identifier
2302* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2303* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2304* [Invoice](invoice.html): Business Identifier for item
2305* [List](list.html): Business identifier
2306* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2307* [Medication](medication.html): Returns medications with this external identifier
2308* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2309* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2310* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2311* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2312* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2313* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2314* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2315* [Observation](observation.html): The unique id for a particular observation
2316* [Person](person.html): A person Identifier
2317* [Procedure](procedure.html): A unique identifier for a procedure
2318* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2319* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2320* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2321* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2322* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2323* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2324* [Specimen](specimen.html): The unique identifier associated with the specimen
2325* [SupplyDelivery](supplydelivery.html): External identifier
2326* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2327* [Task](task.html): Search for a task instance by its business identifier
2328* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2329</b><br>
2330   * Type: <b>token</b><br>
2331   * 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>
2332   * </p>
2333   */
2334  @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" )
2335  public static final String SP_IDENTIFIER = "identifier";
2336 /**
2337   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
2338   * <p>
2339   * Description: <b>Multiple Resources: 
2340
2341* [Account](account.html): Account number
2342* [AdverseEvent](adverseevent.html): Business identifier for the event
2343* [AllergyIntolerance](allergyintolerance.html): External ids for this item
2344* [Appointment](appointment.html): An Identifier of the Appointment
2345* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
2346* [Basic](basic.html): Business identifier
2347* [BodyStructure](bodystructure.html): Bodystructure identifier
2348* [CarePlan](careplan.html): External Ids for this plan
2349* [CareTeam](careteam.html): External Ids for this team
2350* [ChargeItem](chargeitem.html): Business Identifier for item
2351* [Claim](claim.html): The primary identifier of the financial resource
2352* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
2353* [ClinicalImpression](clinicalimpression.html): Business identifier
2354* [Communication](communication.html): Unique identifier
2355* [CommunicationRequest](communicationrequest.html): Unique identifier
2356* [Composition](composition.html): Version-independent identifier for the Composition
2357* [Condition](condition.html): A unique identifier of the condition record
2358* [Consent](consent.html): Identifier for this record (external references)
2359* [Contract](contract.html): The identity of the contract
2360* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2361* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2362* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2363* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2364* [DeviceRequest](devicerequest.html): Business identifier for request/order
2365* [DeviceUsage](deviceusage.html): Search by identifier
2366* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2367* [DocumentReference](documentreference.html): Identifier of the attachment binary
2368* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2369* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2370* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2371* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2372* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2373* [Flag](flag.html): Business identifier
2374* [Goal](goal.html): External Ids for this goal
2375* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2376* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2377* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2378* [Immunization](immunization.html): Business identifier
2379* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2380* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2381* [Invoice](invoice.html): Business Identifier for item
2382* [List](list.html): Business identifier
2383* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2384* [Medication](medication.html): Returns medications with this external identifier
2385* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2386* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2387* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2388* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2389* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2390* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2391* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2392* [Observation](observation.html): The unique id for a particular observation
2393* [Person](person.html): A person Identifier
2394* [Procedure](procedure.html): A unique identifier for a procedure
2395* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2396* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2397* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2398* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2399* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2400* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2401* [Specimen](specimen.html): The unique identifier associated with the specimen
2402* [SupplyDelivery](supplydelivery.html): External identifier
2403* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2404* [Task](task.html): Search for a task instance by its business identifier
2405* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2406</b><br>
2407   * Type: <b>token</b><br>
2408   * 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>
2409   * </p>
2410   */
2411  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
2412
2413 /**
2414   * Search parameter: <b>patient</b>
2415   * <p>
2416   * Description: <b>Multiple Resources: 
2417
2418* [Account](account.html): The entity that caused the expenses
2419* [AdverseEvent](adverseevent.html): Subject impacted by event
2420* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2421* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2422* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2423* [AuditEvent](auditevent.html): Where the activity involved patient data
2424* [Basic](basic.html): Identifies the focus of this resource
2425* [BodyStructure](bodystructure.html): Who this is about
2426* [CarePlan](careplan.html): Who the care plan is for
2427* [CareTeam](careteam.html): Who care team is for
2428* [ChargeItem](chargeitem.html): Individual service was done for/to
2429* [Claim](claim.html): Patient receiving the products or services
2430* [ClaimResponse](claimresponse.html): The subject of care
2431* [ClinicalImpression](clinicalimpression.html): Patient assessed
2432* [Communication](communication.html): Focus of message
2433* [CommunicationRequest](communicationrequest.html): Focus of message
2434* [Composition](composition.html): Who and/or what the composition is about
2435* [Condition](condition.html): Who has the condition?
2436* [Consent](consent.html): Who the consent applies to
2437* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2438* [Coverage](coverage.html): Retrieve coverages for a patient
2439* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2440* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2441* [DetectedIssue](detectedissue.html): Associated patient
2442* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2443* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2444* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2445* [DocumentReference](documentreference.html): Who/what is the subject of the document
2446* [Encounter](encounter.html): The patient present at the encounter
2447* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2448* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2449* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2450* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2451* [Flag](flag.html): The identity of a subject to list flags for
2452* [Goal](goal.html): Who this goal is intended for
2453* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2454* [ImagingSelection](imagingselection.html): Who the study is about
2455* [ImagingStudy](imagingstudy.html): Who the study is about
2456* [Immunization](immunization.html): The patient for the vaccination record
2457* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2458* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2459* [Invoice](invoice.html): Recipient(s) of goods and services
2460* [List](list.html): If all resources have the same subject
2461* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2462* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2463* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2464* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2465* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2466* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2467* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2468* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2469* [Observation](observation.html): The subject that the observation is about (if patient)
2470* [Person](person.html): The Person links to this Patient
2471* [Procedure](procedure.html): Search by subject - a patient
2472* [Provenance](provenance.html): Where the activity involved patient data
2473* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2474* [RelatedPerson](relatedperson.html): The patient this related person is related to
2475* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2476* [ResearchSubject](researchsubject.html): Who or what is part of study
2477* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2478* [ServiceRequest](servicerequest.html): Search by subject - a patient
2479* [Specimen](specimen.html): The patient the specimen comes from
2480* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2481* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2482* [Task](task.html): Search by patient
2483* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2484</b><br>
2485   * Type: <b>reference</b><br>
2486   * 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>
2487   * </p>
2488   */
2489  @SearchParamDefinition(name="patient", path="Account.subject.where(resolve() is Patient) | AdverseEvent.subject.where(resolve() is Patient) | AllergyIntolerance.patient | Appointment.participant.actor.where(resolve() is Patient) | Appointment.subject.where(resolve() is Patient) | AppointmentResponse.actor.where(resolve() is Patient) | AuditEvent.patient | Basic.subject.where(resolve() is Patient) | BodyStructure.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ChargeItem.subject.where(resolve() is Patient) | Claim.patient | ClaimResponse.patient | ClinicalImpression.subject.where(resolve() is Patient) | Communication.subject.where(resolve() is Patient) | CommunicationRequest.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | Contract.subject.where(resolve() is Patient) | Coverage.beneficiary | CoverageEligibilityRequest.patient | CoverageEligibilityResponse.patient | DetectedIssue.subject.where(resolve() is Patient) | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EnrollmentRequest.candidate | EpisodeOfCare.patient | ExplanationOfBenefit.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | GuidanceResponse.subject.where(resolve() is Patient) | ImagingSelection.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | ImmunizationEvaluation.patient | ImmunizationRecommendation.patient | Invoice.subject.where(resolve() is Patient) | List.subject.where(resolve() is Patient) | MeasureReport.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationStatement.subject.where(resolve() is Patient) | MolecularSequence.subject.where(resolve() is Patient) | NutritionIntake.subject.where(resolve() is Patient) | NutritionOrder.subject.where(resolve() is Patient) | Observation.subject.where(resolve() is Patient) | Person.link.target.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | Provenance.patient | QuestionnaireResponse.subject.where(resolve() is Patient) | RelatedPerson.patient | RequestOrchestration.subject.where(resolve() is Patient) | ResearchSubject.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | Specimen.subject.where(resolve() is Patient) | SupplyDelivery.patient | SupplyRequest.deliverFor | Task.for.where(resolve() is Patient) | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [Account](account.html): The entity that caused the expenses\r\n* [AdverseEvent](adverseevent.html): Subject impacted by event\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [Appointment](appointment.html): One of the individuals of the appointment is this patient\r\n* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient\r\n* [AuditEvent](auditevent.html): Where the activity involved patient data\r\n* [Basic](basic.html): Identifies the focus of this resource\r\n* [BodyStructure](bodystructure.html): Who this is about\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ChargeItem](chargeitem.html): Individual service was done for/to\r\n* [Claim](claim.html): Patient receiving the products or services\r\n* [ClaimResponse](claimresponse.html): The subject of care\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Communication](communication.html): Focus of message\r\n* [CommunicationRequest](communicationrequest.html): Focus of message\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [Contract](contract.html): The identity of the subject of the contract (if a patient)\r\n* [Coverage](coverage.html): Retrieve coverages for a patient\r\n* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient\r\n* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results\r\n* [ImagingSelection](imagingselection.html): Who the study is about\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for\r\n* [Invoice](invoice.html): Recipient(s) of goods and services\r\n* [List](list.html): If all resources have the same subject\r\n* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.\r\n* [MolecularSequence](molecularsequence.html): The subject that the sequence is about\r\n* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Person](person.html): The Person links to this Patient\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [Provenance](provenance.html): Where the activity involved patient data\r\n* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response\r\n* [RelatedPerson](relatedperson.html): The patient this related person is related to\r\n* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations\r\n* [ResearchSubject](researchsubject.html): Who or what is part of study\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [Specimen](specimen.html): The patient the specimen comes from\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined\r\n* [Task](task.html): Search by patient\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Patient.class } )
2490  public static final String SP_PATIENT = "patient";
2491 /**
2492   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
2493   * <p>
2494   * Description: <b>Multiple Resources: 
2495
2496* [Account](account.html): The entity that caused the expenses
2497* [AdverseEvent](adverseevent.html): Subject impacted by event
2498* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2499* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2500* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2501* [AuditEvent](auditevent.html): Where the activity involved patient data
2502* [Basic](basic.html): Identifies the focus of this resource
2503* [BodyStructure](bodystructure.html): Who this is about
2504* [CarePlan](careplan.html): Who the care plan is for
2505* [CareTeam](careteam.html): Who care team is for
2506* [ChargeItem](chargeitem.html): Individual service was done for/to
2507* [Claim](claim.html): Patient receiving the products or services
2508* [ClaimResponse](claimresponse.html): The subject of care
2509* [ClinicalImpression](clinicalimpression.html): Patient assessed
2510* [Communication](communication.html): Focus of message
2511* [CommunicationRequest](communicationrequest.html): Focus of message
2512* [Composition](composition.html): Who and/or what the composition is about
2513* [Condition](condition.html): Who has the condition?
2514* [Consent](consent.html): Who the consent applies to
2515* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2516* [Coverage](coverage.html): Retrieve coverages for a patient
2517* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2518* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2519* [DetectedIssue](detectedissue.html): Associated patient
2520* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2521* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2522* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2523* [DocumentReference](documentreference.html): Who/what is the subject of the document
2524* [Encounter](encounter.html): The patient present at the encounter
2525* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2526* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2527* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2528* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2529* [Flag](flag.html): The identity of a subject to list flags for
2530* [Goal](goal.html): Who this goal is intended for
2531* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2532* [ImagingSelection](imagingselection.html): Who the study is about
2533* [ImagingStudy](imagingstudy.html): Who the study is about
2534* [Immunization](immunization.html): The patient for the vaccination record
2535* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2536* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2537* [Invoice](invoice.html): Recipient(s) of goods and services
2538* [List](list.html): If all resources have the same subject
2539* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2540* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2541* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2542* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2543* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2544* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2545* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2546* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2547* [Observation](observation.html): The subject that the observation is about (if patient)
2548* [Person](person.html): The Person links to this Patient
2549* [Procedure](procedure.html): Search by subject - a patient
2550* [Provenance](provenance.html): Where the activity involved patient data
2551* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2552* [RelatedPerson](relatedperson.html): The patient this related person is related to
2553* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2554* [ResearchSubject](researchsubject.html): Who or what is part of study
2555* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2556* [ServiceRequest](servicerequest.html): Search by subject - a patient
2557* [Specimen](specimen.html): The patient the specimen comes from
2558* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2559* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2560* [Task](task.html): Search by patient
2561* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2562</b><br>
2563   * Type: <b>reference</b><br>
2564   * 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>
2565   * </p>
2566   */
2567  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
2568
2569/**
2570   * Constant for fluent queries to be used to add include statements. Specifies
2571   * the path value of "<b>DetectedIssue:patient</b>".
2572   */
2573  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("DetectedIssue:patient").toLocked();
2574
2575
2576}
2577