001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Tue, Dec 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * 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, 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            default: return "?";
093          }
094        }
095        public String getSystem() {
096          switch (this) {
097            case HIGH: return "http://hl7.org/fhir/detectedissue-severity";
098            case MODERATE: return "http://hl7.org/fhir/detectedissue-severity";
099            case LOW: return "http://hl7.org/fhir/detectedissue-severity";
100            default: return "?";
101          }
102        }
103        public String getDefinition() {
104          switch (this) {
105            case HIGH: return "Indicates the issue may be life-threatening or has the potential to cause permanent injury.";
106            case MODERATE: return "Indicates the issue may result in noticeable adverse consequences but is unlikely to be life-threatening or cause permanent injury.";
107            case LOW: return "Indicates the issue may result in some adverse consequences but is unlikely to substantially affect the situation of the subject.";
108            default: return "?";
109          }
110        }
111        public String getDisplay() {
112          switch (this) {
113            case HIGH: return "High";
114            case MODERATE: return "Moderate";
115            case LOW: return "Low";
116            default: return "?";
117          }
118        }
119    }
120
121  public static class DetectedIssueSeverityEnumFactory implements EnumFactory<DetectedIssueSeverity> {
122    public DetectedIssueSeverity fromCode(String codeString) throws IllegalArgumentException {
123      if (codeString == null || "".equals(codeString))
124            if (codeString == null || "".equals(codeString))
125                return null;
126        if ("high".equals(codeString))
127          return DetectedIssueSeverity.HIGH;
128        if ("moderate".equals(codeString))
129          return DetectedIssueSeverity.MODERATE;
130        if ("low".equals(codeString))
131          return DetectedIssueSeverity.LOW;
132        throw new IllegalArgumentException("Unknown DetectedIssueSeverity code '"+codeString+"'");
133        }
134        public Enumeration<DetectedIssueSeverity> fromType(Base code) throws FHIRException {
135          if (code == null)
136            return null;
137          if (code.isEmpty())
138            return new Enumeration<DetectedIssueSeverity>(this);
139          String codeString = ((PrimitiveType) code).asStringValue();
140          if (codeString == null || "".equals(codeString))
141            return null;
142        if ("high".equals(codeString))
143          return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.HIGH);
144        if ("moderate".equals(codeString))
145          return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.MODERATE);
146        if ("low".equals(codeString))
147          return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.LOW);
148        throw new FHIRException("Unknown DetectedIssueSeverity code '"+codeString+"'");
149        }
150    public String toCode(DetectedIssueSeverity code) {
151      if (code == DetectedIssueSeverity.HIGH)
152        return "high";
153      if (code == DetectedIssueSeverity.MODERATE)
154        return "moderate";
155      if (code == DetectedIssueSeverity.LOW)
156        return "low";
157      return "?";
158      }
159    public String toSystem(DetectedIssueSeverity code) {
160      return code.getSystem();
161      }
162    }
163
164    @Block()
165    public static class DetectedIssueEvidenceComponent extends BackboneElement implements IBaseBackboneElement {
166        /**
167         * A manifestation that led to the recording of this detected issue.
168         */
169        @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
170        @Description(shortDefinition="Manifestation", formalDefinition="A manifestation that led to the recording of this detected issue." )
171        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/manifestation-or-symptom")
172        protected List<CodeableConcept> code;
173
174        /**
175         * Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.
176         */
177        @Child(name = "detail", type = {Reference.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
178        @Description(shortDefinition="Supporting information", formalDefinition="Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport." )
179        protected List<Reference> detail;
180
181        private static final long serialVersionUID = -672691342L;
182
183    /**
184     * Constructor
185     */
186      public DetectedIssueEvidenceComponent() {
187        super();
188      }
189
190        /**
191         * @return {@link #code} (A manifestation that led to the recording of this detected issue.)
192         */
193        public List<CodeableConcept> getCode() { 
194          if (this.code == null)
195            this.code = new ArrayList<CodeableConcept>();
196          return this.code;
197        }
198
199        /**
200         * @return Returns a reference to <code>this</code> for easy method chaining
201         */
202        public DetectedIssueEvidenceComponent setCode(List<CodeableConcept> theCode) { 
203          this.code = theCode;
204          return this;
205        }
206
207        public boolean hasCode() { 
208          if (this.code == null)
209            return false;
210          for (CodeableConcept item : this.code)
211            if (!item.isEmpty())
212              return true;
213          return false;
214        }
215
216        public CodeableConcept addCode() { //3
217          CodeableConcept t = new CodeableConcept();
218          if (this.code == null)
219            this.code = new ArrayList<CodeableConcept>();
220          this.code.add(t);
221          return t;
222        }
223
224        public DetectedIssueEvidenceComponent addCode(CodeableConcept t) { //3
225          if (t == null)
226            return this;
227          if (this.code == null)
228            this.code = new ArrayList<CodeableConcept>();
229          this.code.add(t);
230          return this;
231        }
232
233        /**
234         * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist {3}
235         */
236        public CodeableConcept getCodeFirstRep() { 
237          if (getCode().isEmpty()) {
238            addCode();
239          }
240          return getCode().get(0);
241        }
242
243        /**
244         * @return {@link #detail} (Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport.)
245         */
246        public List<Reference> getDetail() { 
247          if (this.detail == null)
248            this.detail = new ArrayList<Reference>();
249          return this.detail;
250        }
251
252        /**
253         * @return Returns a reference to <code>this</code> for easy method chaining
254         */
255        public DetectedIssueEvidenceComponent setDetail(List<Reference> theDetail) { 
256          this.detail = theDetail;
257          return this;
258        }
259
260        public boolean hasDetail() { 
261          if (this.detail == null)
262            return false;
263          for (Reference item : this.detail)
264            if (!item.isEmpty())
265              return true;
266          return false;
267        }
268
269        public Reference addDetail() { //3
270          Reference t = new Reference();
271          if (this.detail == null)
272            this.detail = new ArrayList<Reference>();
273          this.detail.add(t);
274          return t;
275        }
276
277        public DetectedIssueEvidenceComponent addDetail(Reference t) { //3
278          if (t == null)
279            return this;
280          if (this.detail == null)
281            this.detail = new ArrayList<Reference>();
282          this.detail.add(t);
283          return this;
284        }
285
286        /**
287         * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist {3}
288         */
289        public Reference getDetailFirstRep() { 
290          if (getDetail().isEmpty()) {
291            addDetail();
292          }
293          return getDetail().get(0);
294        }
295
296        protected void listChildren(List<Property> children) {
297          super.listChildren(children);
298          children.add(new Property("code", "CodeableConcept", "A manifestation that led to the recording of this detected issue.", 0, java.lang.Integer.MAX_VALUE, code));
299          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));
300        }
301
302        @Override
303        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
304          switch (_hash) {
305          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);
306          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);
307          default: return super.getNamedProperty(_hash, _name, _checkValid);
308          }
309
310        }
311
312      @Override
313      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
314        switch (hash) {
315        case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept
316        case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // Reference
317        default: return super.getProperty(hash, name, checkValid);
318        }
319
320      }
321
322      @Override
323      public Base setProperty(int hash, String name, Base value) throws FHIRException {
324        switch (hash) {
325        case 3059181: // code
326          this.getCode().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
327          return value;
328        case -1335224239: // detail
329          this.getDetail().add(TypeConvertor.castToReference(value)); // Reference
330          return value;
331        default: return super.setProperty(hash, name, value);
332        }
333
334      }
335
336      @Override
337      public Base setProperty(String name, Base value) throws FHIRException {
338        if (name.equals("code")) {
339          this.getCode().add(TypeConvertor.castToCodeableConcept(value));
340        } else if (name.equals("detail")) {
341          this.getDetail().add(TypeConvertor.castToReference(value));
342        } else
343          return super.setProperty(name, value);
344        return value;
345      }
346
347      @Override
348      public Base makeProperty(int hash, String name) throws FHIRException {
349        switch (hash) {
350        case 3059181:  return addCode(); 
351        case -1335224239:  return addDetail(); 
352        default: return super.makeProperty(hash, name);
353        }
354
355      }
356
357      @Override
358      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
359        switch (hash) {
360        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
361        case -1335224239: /*detail*/ return new String[] {"Reference"};
362        default: return super.getTypesForProperty(hash, name);
363        }
364
365      }
366
367      @Override
368      public Base addChild(String name) throws FHIRException {
369        if (name.equals("code")) {
370          return addCode();
371        }
372        else if (name.equals("detail")) {
373          return addDetail();
374        }
375        else
376          return super.addChild(name);
377      }
378
379      public DetectedIssueEvidenceComponent copy() {
380        DetectedIssueEvidenceComponent dst = new DetectedIssueEvidenceComponent();
381        copyValues(dst);
382        return dst;
383      }
384
385      public void copyValues(DetectedIssueEvidenceComponent dst) {
386        super.copyValues(dst);
387        if (code != null) {
388          dst.code = new ArrayList<CodeableConcept>();
389          for (CodeableConcept i : code)
390            dst.code.add(i.copy());
391        };
392        if (detail != null) {
393          dst.detail = new ArrayList<Reference>();
394          for (Reference i : detail)
395            dst.detail.add(i.copy());
396        };
397      }
398
399      @Override
400      public boolean equalsDeep(Base other_) {
401        if (!super.equalsDeep(other_))
402          return false;
403        if (!(other_ instanceof DetectedIssueEvidenceComponent))
404          return false;
405        DetectedIssueEvidenceComponent o = (DetectedIssueEvidenceComponent) other_;
406        return compareDeep(code, o.code, true) && compareDeep(detail, o.detail, true);
407      }
408
409      @Override
410      public boolean equalsShallow(Base other_) {
411        if (!super.equalsShallow(other_))
412          return false;
413        if (!(other_ instanceof DetectedIssueEvidenceComponent))
414          return false;
415        DetectedIssueEvidenceComponent o = (DetectedIssueEvidenceComponent) other_;
416        return true;
417      }
418
419      public boolean isEmpty() {
420        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, detail);
421      }
422
423  public String fhirType() {
424    return "DetectedIssue.evidence";
425
426  }
427
428  }
429
430    @Block()
431    public static class DetectedIssueMitigationComponent extends BackboneElement implements IBaseBackboneElement {
432        /**
433         * Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.
434         */
435        @Child(name = "action", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false)
436        @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." )
437        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-mitigation-action")
438        protected CodeableConcept action;
439
440        /**
441         * Indicates when the mitigating action was documented.
442         */
443        @Child(name = "date", type = {DateTimeType.class}, order=2, min=0, max=1, modifier=false, summary=false)
444        @Description(shortDefinition="Date committed", formalDefinition="Indicates when the mitigating action was documented." )
445        protected DateTimeType date;
446
447        /**
448         * Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.
449         */
450        @Child(name = "author", type = {Practitioner.class, PractitionerRole.class}, order=3, min=0, max=1, modifier=false, summary=false)
451        @Description(shortDefinition="Who is committing?", formalDefinition="Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring." )
452        protected Reference author;
453
454        private static final long serialVersionUID = -1797436956L;
455
456    /**
457     * Constructor
458     */
459      public DetectedIssueMitigationComponent() {
460        super();
461      }
462
463    /**
464     * Constructor
465     */
466      public DetectedIssueMitigationComponent(CodeableConcept action) {
467        super();
468        this.setAction(action);
469      }
470
471        /**
472         * @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.)
473         */
474        public CodeableConcept getAction() { 
475          if (this.action == null)
476            if (Configuration.errorOnAutoCreate())
477              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.action");
478            else if (Configuration.doAutoCreate())
479              this.action = new CodeableConcept(); // cc
480          return this.action;
481        }
482
483        public boolean hasAction() { 
484          return this.action != null && !this.action.isEmpty();
485        }
486
487        /**
488         * @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.)
489         */
490        public DetectedIssueMitigationComponent setAction(CodeableConcept value) { 
491          this.action = value;
492          return this;
493        }
494
495        /**
496         * @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
497         */
498        public DateTimeType getDateElement() { 
499          if (this.date == null)
500            if (Configuration.errorOnAutoCreate())
501              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.date");
502            else if (Configuration.doAutoCreate())
503              this.date = new DateTimeType(); // bb
504          return this.date;
505        }
506
507        public boolean hasDateElement() { 
508          return this.date != null && !this.date.isEmpty();
509        }
510
511        public boolean hasDate() { 
512          return this.date != null && !this.date.isEmpty();
513        }
514
515        /**
516         * @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
517         */
518        public DetectedIssueMitigationComponent setDateElement(DateTimeType value) { 
519          this.date = value;
520          return this;
521        }
522
523        /**
524         * @return Indicates when the mitigating action was documented.
525         */
526        public Date getDate() { 
527          return this.date == null ? null : this.date.getValue();
528        }
529
530        /**
531         * @param value Indicates when the mitigating action was documented.
532         */
533        public DetectedIssueMitigationComponent setDate(Date value) { 
534          if (value == null)
535            this.date = null;
536          else {
537            if (this.date == null)
538              this.date = new DateTimeType();
539            this.date.setValue(value);
540          }
541          return this;
542        }
543
544        /**
545         * @return {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.)
546         */
547        public Reference getAuthor() { 
548          if (this.author == null)
549            if (Configuration.errorOnAutoCreate())
550              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.author");
551            else if (Configuration.doAutoCreate())
552              this.author = new Reference(); // cc
553          return this.author;
554        }
555
556        public boolean hasAuthor() { 
557          return this.author != null && !this.author.isEmpty();
558        }
559
560        /**
561         * @param value {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.)
562         */
563        public DetectedIssueMitigationComponent setAuthor(Reference value) { 
564          this.author = value;
565          return this;
566        }
567
568        protected void listChildren(List<Property> children) {
569          super.listChildren(children);
570          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));
571          children.add(new Property("date", "dateTime", "Indicates when the mitigating action was documented.", 0, 1, date));
572          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));
573        }
574
575        @Override
576        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
577          switch (_hash) {
578          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);
579          case 3076014: /*date*/  return new Property("date", "dateTime", "Indicates when the mitigating action was documented.", 0, 1, date);
580          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);
581          default: return super.getNamedProperty(_hash, _name, _checkValid);
582          }
583
584        }
585
586      @Override
587      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
588        switch (hash) {
589        case -1422950858: /*action*/ return this.action == null ? new Base[0] : new Base[] {this.action}; // CodeableConcept
590        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
591        case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference
592        default: return super.getProperty(hash, name, checkValid);
593        }
594
595      }
596
597      @Override
598      public Base setProperty(int hash, String name, Base value) throws FHIRException {
599        switch (hash) {
600        case -1422950858: // action
601          this.action = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
602          return value;
603        case 3076014: // date
604          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
605          return value;
606        case -1406328437: // author
607          this.author = TypeConvertor.castToReference(value); // Reference
608          return value;
609        default: return super.setProperty(hash, name, value);
610        }
611
612      }
613
614      @Override
615      public Base setProperty(String name, Base value) throws FHIRException {
616        if (name.equals("action")) {
617          this.action = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
618        } else if (name.equals("date")) {
619          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
620        } else if (name.equals("author")) {
621          this.author = TypeConvertor.castToReference(value); // Reference
622        } else
623          return super.setProperty(name, value);
624        return value;
625      }
626
627      @Override
628      public Base makeProperty(int hash, String name) throws FHIRException {
629        switch (hash) {
630        case -1422950858:  return getAction();
631        case 3076014:  return getDateElement();
632        case -1406328437:  return getAuthor();
633        default: return super.makeProperty(hash, name);
634        }
635
636      }
637
638      @Override
639      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
640        switch (hash) {
641        case -1422950858: /*action*/ return new String[] {"CodeableConcept"};
642        case 3076014: /*date*/ return new String[] {"dateTime"};
643        case -1406328437: /*author*/ return new String[] {"Reference"};
644        default: return super.getTypesForProperty(hash, name);
645        }
646
647      }
648
649      @Override
650      public Base addChild(String name) throws FHIRException {
651        if (name.equals("action")) {
652          this.action = new CodeableConcept();
653          return this.action;
654        }
655        else if (name.equals("date")) {
656          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.mitigation.date");
657        }
658        else if (name.equals("author")) {
659          this.author = new Reference();
660          return this.author;
661        }
662        else
663          return super.addChild(name);
664      }
665
666      public DetectedIssueMitigationComponent copy() {
667        DetectedIssueMitigationComponent dst = new DetectedIssueMitigationComponent();
668        copyValues(dst);
669        return dst;
670      }
671
672      public void copyValues(DetectedIssueMitigationComponent dst) {
673        super.copyValues(dst);
674        dst.action = action == null ? null : action.copy();
675        dst.date = date == null ? null : date.copy();
676        dst.author = author == null ? null : author.copy();
677      }
678
679      @Override
680      public boolean equalsDeep(Base other_) {
681        if (!super.equalsDeep(other_))
682          return false;
683        if (!(other_ instanceof DetectedIssueMitigationComponent))
684          return false;
685        DetectedIssueMitigationComponent o = (DetectedIssueMitigationComponent) other_;
686        return compareDeep(action, o.action, true) && compareDeep(date, o.date, true) && compareDeep(author, o.author, true)
687          ;
688      }
689
690      @Override
691      public boolean equalsShallow(Base other_) {
692        if (!super.equalsShallow(other_))
693          return false;
694        if (!(other_ instanceof DetectedIssueMitigationComponent))
695          return false;
696        DetectedIssueMitigationComponent o = (DetectedIssueMitigationComponent) other_;
697        return compareValues(date, o.date, true);
698      }
699
700      public boolean isEmpty() {
701        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(action, date, author);
702      }
703
704  public String fhirType() {
705    return "DetectedIssue.mitigation";
706
707  }
708
709  }
710
711    /**
712     * Business identifier associated with the detected issue record.
713     */
714    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
715    @Description(shortDefinition="Unique id for the detected issue", formalDefinition="Business identifier associated with the detected issue record." )
716    protected List<Identifier> identifier;
717
718    /**
719     * Indicates the status of the detected issue.
720     */
721    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
722    @Description(shortDefinition="registered | preliminary | final | amended +", formalDefinition="Indicates the status of the detected issue." )
723    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/observation-status")
724    protected Enumeration<ObservationStatus> status;
725
726    /**
727     * Identifies the general type of issue identified.
728     */
729    @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true)
730    @Description(shortDefinition="Issue Category, e.g. drug-drug, duplicate therapy, etc.", formalDefinition="Identifies the general type of issue identified." )
731    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-category")
732    protected CodeableConcept code;
733
734    /**
735     * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.
736     */
737    @Child(name = "severity", type = {CodeType.class}, order=3, min=0, max=1, modifier=false, summary=true)
738    @Description(shortDefinition="high | moderate | low", formalDefinition="Indicates the degree of importance associated with the identified issue based on the potential impact on the patient." )
739    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/detectedissue-severity")
740    protected Enumeration<DetectedIssueSeverity> severity;
741
742    /**
743     * Indicates the patient whose record the detected issue is associated with.
744     */
745    @Child(name = "patient", type = {Patient.class}, order=4, min=0, max=1, modifier=false, summary=true)
746    @Description(shortDefinition="Associated patient", formalDefinition="Indicates the patient whose record the detected issue is associated with." )
747    protected Reference patient;
748
749    /**
750     * The date or period when the detected issue was initially identified.
751     */
752    @Child(name = "identified", type = {DateTimeType.class, Period.class}, order=5, min=0, max=1, modifier=false, summary=true)
753    @Description(shortDefinition="When identified", formalDefinition="The date or period when the detected issue was initially identified." )
754    protected DataType identified;
755
756    /**
757     * Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.
758     */
759    @Child(name = "author", type = {Practitioner.class, PractitionerRole.class, Device.class}, order=6, min=0, max=1, modifier=false, summary=true)
760    @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." )
761    protected Reference author;
762
763    /**
764     * Indicates the resource representing the current activity or proposed activity that is potentially problematic.
765     */
766    @Child(name = "implicated", type = {Reference.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
767    @Description(shortDefinition="Problem resource", formalDefinition="Indicates the resource representing the current activity or proposed activity that is potentially problematic." )
768    protected List<Reference> implicated;
769
770    /**
771     * Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.
772     */
773    @Child(name = "evidence", type = {}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
774    @Description(shortDefinition="Supporting evidence", formalDefinition="Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport." )
775    protected List<DetectedIssueEvidenceComponent> evidence;
776
777    /**
778     * A textual explanation of the detected issue.
779     */
780    @Child(name = "detail", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=false)
781    @Description(shortDefinition="Description and context", formalDefinition="A textual explanation of the detected issue." )
782    protected StringType detail;
783
784    /**
785     * The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.
786     */
787    @Child(name = "reference", type = {UriType.class}, order=10, min=0, max=1, modifier=false, summary=false)
788    @Description(shortDefinition="Authority for issue", formalDefinition="The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified." )
789    protected UriType reference;
790
791    /**
792     * 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.
793     */
794    @Child(name = "mitigation", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
795    @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." )
796    protected List<DetectedIssueMitigationComponent> mitigation;
797
798    private static final long serialVersionUID = -781032584L;
799
800  /**
801   * Constructor
802   */
803    public DetectedIssue() {
804      super();
805    }
806
807  /**
808   * Constructor
809   */
810    public DetectedIssue(ObservationStatus status) {
811      super();
812      this.setStatus(status);
813    }
814
815    /**
816     * @return {@link #identifier} (Business identifier associated with the detected issue record.)
817     */
818    public List<Identifier> getIdentifier() { 
819      if (this.identifier == null)
820        this.identifier = new ArrayList<Identifier>();
821      return this.identifier;
822    }
823
824    /**
825     * @return Returns a reference to <code>this</code> for easy method chaining
826     */
827    public DetectedIssue setIdentifier(List<Identifier> theIdentifier) { 
828      this.identifier = theIdentifier;
829      return this;
830    }
831
832    public boolean hasIdentifier() { 
833      if (this.identifier == null)
834        return false;
835      for (Identifier item : this.identifier)
836        if (!item.isEmpty())
837          return true;
838      return false;
839    }
840
841    public Identifier addIdentifier() { //3
842      Identifier t = new Identifier();
843      if (this.identifier == null)
844        this.identifier = new ArrayList<Identifier>();
845      this.identifier.add(t);
846      return t;
847    }
848
849    public DetectedIssue addIdentifier(Identifier t) { //3
850      if (t == null)
851        return this;
852      if (this.identifier == null)
853        this.identifier = new ArrayList<Identifier>();
854      this.identifier.add(t);
855      return this;
856    }
857
858    /**
859     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
860     */
861    public Identifier getIdentifierFirstRep() { 
862      if (getIdentifier().isEmpty()) {
863        addIdentifier();
864      }
865      return getIdentifier().get(0);
866    }
867
868    /**
869     * @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
870     */
871    public Enumeration<ObservationStatus> getStatusElement() { 
872      if (this.status == null)
873        if (Configuration.errorOnAutoCreate())
874          throw new Error("Attempt to auto-create DetectedIssue.status");
875        else if (Configuration.doAutoCreate())
876          this.status = new Enumeration<ObservationStatus>(new ObservationStatusEnumFactory()); // bb
877      return this.status;
878    }
879
880    public boolean hasStatusElement() { 
881      return this.status != null && !this.status.isEmpty();
882    }
883
884    public boolean hasStatus() { 
885      return this.status != null && !this.status.isEmpty();
886    }
887
888    /**
889     * @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
890     */
891    public DetectedIssue setStatusElement(Enumeration<ObservationStatus> value) { 
892      this.status = value;
893      return this;
894    }
895
896    /**
897     * @return Indicates the status of the detected issue.
898     */
899    public ObservationStatus getStatus() { 
900      return this.status == null ? null : this.status.getValue();
901    }
902
903    /**
904     * @param value Indicates the status of the detected issue.
905     */
906    public DetectedIssue setStatus(ObservationStatus value) { 
907        if (this.status == null)
908          this.status = new Enumeration<ObservationStatus>(new ObservationStatusEnumFactory());
909        this.status.setValue(value);
910      return this;
911    }
912
913    /**
914     * @return {@link #code} (Identifies the general type of issue identified.)
915     */
916    public CodeableConcept getCode() { 
917      if (this.code == null)
918        if (Configuration.errorOnAutoCreate())
919          throw new Error("Attempt to auto-create DetectedIssue.code");
920        else if (Configuration.doAutoCreate())
921          this.code = new CodeableConcept(); // cc
922      return this.code;
923    }
924
925    public boolean hasCode() { 
926      return this.code != null && !this.code.isEmpty();
927    }
928
929    /**
930     * @param value {@link #code} (Identifies the general type of issue identified.)
931     */
932    public DetectedIssue setCode(CodeableConcept value) { 
933      this.code = value;
934      return this;
935    }
936
937    /**
938     * @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
939     */
940    public Enumeration<DetectedIssueSeverity> getSeverityElement() { 
941      if (this.severity == null)
942        if (Configuration.errorOnAutoCreate())
943          throw new Error("Attempt to auto-create DetectedIssue.severity");
944        else if (Configuration.doAutoCreate())
945          this.severity = new Enumeration<DetectedIssueSeverity>(new DetectedIssueSeverityEnumFactory()); // bb
946      return this.severity;
947    }
948
949    public boolean hasSeverityElement() { 
950      return this.severity != null && !this.severity.isEmpty();
951    }
952
953    public boolean hasSeverity() { 
954      return this.severity != null && !this.severity.isEmpty();
955    }
956
957    /**
958     * @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
959     */
960    public DetectedIssue setSeverityElement(Enumeration<DetectedIssueSeverity> value) { 
961      this.severity = value;
962      return this;
963    }
964
965    /**
966     * @return Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.
967     */
968    public DetectedIssueSeverity getSeverity() { 
969      return this.severity == null ? null : this.severity.getValue();
970    }
971
972    /**
973     * @param value Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.
974     */
975    public DetectedIssue setSeverity(DetectedIssueSeverity value) { 
976      if (value == null)
977        this.severity = null;
978      else {
979        if (this.severity == null)
980          this.severity = new Enumeration<DetectedIssueSeverity>(new DetectedIssueSeverityEnumFactory());
981        this.severity.setValue(value);
982      }
983      return this;
984    }
985
986    /**
987     * @return {@link #patient} (Indicates the patient whose record the detected issue is associated with.)
988     */
989    public Reference getPatient() { 
990      if (this.patient == null)
991        if (Configuration.errorOnAutoCreate())
992          throw new Error("Attempt to auto-create DetectedIssue.patient");
993        else if (Configuration.doAutoCreate())
994          this.patient = new Reference(); // cc
995      return this.patient;
996    }
997
998    public boolean hasPatient() { 
999      return this.patient != null && !this.patient.isEmpty();
1000    }
1001
1002    /**
1003     * @param value {@link #patient} (Indicates the patient whose record the detected issue is associated with.)
1004     */
1005    public DetectedIssue setPatient(Reference value) { 
1006      this.patient = value;
1007      return this;
1008    }
1009
1010    /**
1011     * @return {@link #identified} (The date or period when the detected issue was initially identified.)
1012     */
1013    public DataType getIdentified() { 
1014      return this.identified;
1015    }
1016
1017    /**
1018     * @return {@link #identified} (The date or period when the detected issue was initially identified.)
1019     */
1020    public DateTimeType getIdentifiedDateTimeType() throws FHIRException { 
1021      if (this.identified == null)
1022        this.identified = new DateTimeType();
1023      if (!(this.identified instanceof DateTimeType))
1024        throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.identified.getClass().getName()+" was encountered");
1025      return (DateTimeType) this.identified;
1026    }
1027
1028    public boolean hasIdentifiedDateTimeType() { 
1029      return this != null && this.identified instanceof DateTimeType;
1030    }
1031
1032    /**
1033     * @return {@link #identified} (The date or period when the detected issue was initially identified.)
1034     */
1035    public Period getIdentifiedPeriod() throws FHIRException { 
1036      if (this.identified == null)
1037        this.identified = new Period();
1038      if (!(this.identified instanceof Period))
1039        throw new FHIRException("Type mismatch: the type Period was expected, but "+this.identified.getClass().getName()+" was encountered");
1040      return (Period) this.identified;
1041    }
1042
1043    public boolean hasIdentifiedPeriod() { 
1044      return this != null && this.identified instanceof Period;
1045    }
1046
1047    public boolean hasIdentified() { 
1048      return this.identified != null && !this.identified.isEmpty();
1049    }
1050
1051    /**
1052     * @param value {@link #identified} (The date or period when the detected issue was initially identified.)
1053     */
1054    public DetectedIssue setIdentified(DataType value) { 
1055      if (value != null && !(value instanceof DateTimeType || value instanceof Period))
1056        throw new Error("Not the right type for DetectedIssue.identified[x]: "+value.fhirType());
1057      this.identified = value;
1058      return this;
1059    }
1060
1061    /**
1062     * @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.)
1063     */
1064    public Reference getAuthor() { 
1065      if (this.author == null)
1066        if (Configuration.errorOnAutoCreate())
1067          throw new Error("Attempt to auto-create DetectedIssue.author");
1068        else if (Configuration.doAutoCreate())
1069          this.author = new Reference(); // cc
1070      return this.author;
1071    }
1072
1073    public boolean hasAuthor() { 
1074      return this.author != null && !this.author.isEmpty();
1075    }
1076
1077    /**
1078     * @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.)
1079     */
1080    public DetectedIssue setAuthor(Reference value) { 
1081      this.author = value;
1082      return this;
1083    }
1084
1085    /**
1086     * @return {@link #implicated} (Indicates the resource representing the current activity or proposed activity that is potentially problematic.)
1087     */
1088    public List<Reference> getImplicated() { 
1089      if (this.implicated == null)
1090        this.implicated = new ArrayList<Reference>();
1091      return this.implicated;
1092    }
1093
1094    /**
1095     * @return Returns a reference to <code>this</code> for easy method chaining
1096     */
1097    public DetectedIssue setImplicated(List<Reference> theImplicated) { 
1098      this.implicated = theImplicated;
1099      return this;
1100    }
1101
1102    public boolean hasImplicated() { 
1103      if (this.implicated == null)
1104        return false;
1105      for (Reference item : this.implicated)
1106        if (!item.isEmpty())
1107          return true;
1108      return false;
1109    }
1110
1111    public Reference addImplicated() { //3
1112      Reference t = new Reference();
1113      if (this.implicated == null)
1114        this.implicated = new ArrayList<Reference>();
1115      this.implicated.add(t);
1116      return t;
1117    }
1118
1119    public DetectedIssue addImplicated(Reference t) { //3
1120      if (t == null)
1121        return this;
1122      if (this.implicated == null)
1123        this.implicated = new ArrayList<Reference>();
1124      this.implicated.add(t);
1125      return this;
1126    }
1127
1128    /**
1129     * @return The first repetition of repeating field {@link #implicated}, creating it if it does not already exist {3}
1130     */
1131    public Reference getImplicatedFirstRep() { 
1132      if (getImplicated().isEmpty()) {
1133        addImplicated();
1134      }
1135      return getImplicated().get(0);
1136    }
1137
1138    /**
1139     * @return {@link #evidence} (Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport.)
1140     */
1141    public List<DetectedIssueEvidenceComponent> getEvidence() { 
1142      if (this.evidence == null)
1143        this.evidence = new ArrayList<DetectedIssueEvidenceComponent>();
1144      return this.evidence;
1145    }
1146
1147    /**
1148     * @return Returns a reference to <code>this</code> for easy method chaining
1149     */
1150    public DetectedIssue setEvidence(List<DetectedIssueEvidenceComponent> theEvidence) { 
1151      this.evidence = theEvidence;
1152      return this;
1153    }
1154
1155    public boolean hasEvidence() { 
1156      if (this.evidence == null)
1157        return false;
1158      for (DetectedIssueEvidenceComponent item : this.evidence)
1159        if (!item.isEmpty())
1160          return true;
1161      return false;
1162    }
1163
1164    public DetectedIssueEvidenceComponent addEvidence() { //3
1165      DetectedIssueEvidenceComponent t = new DetectedIssueEvidenceComponent();
1166      if (this.evidence == null)
1167        this.evidence = new ArrayList<DetectedIssueEvidenceComponent>();
1168      this.evidence.add(t);
1169      return t;
1170    }
1171
1172    public DetectedIssue addEvidence(DetectedIssueEvidenceComponent t) { //3
1173      if (t == null)
1174        return this;
1175      if (this.evidence == null)
1176        this.evidence = new ArrayList<DetectedIssueEvidenceComponent>();
1177      this.evidence.add(t);
1178      return this;
1179    }
1180
1181    /**
1182     * @return The first repetition of repeating field {@link #evidence}, creating it if it does not already exist {3}
1183     */
1184    public DetectedIssueEvidenceComponent getEvidenceFirstRep() { 
1185      if (getEvidence().isEmpty()) {
1186        addEvidence();
1187      }
1188      return getEvidence().get(0);
1189    }
1190
1191    /**
1192     * @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
1193     */
1194    public StringType getDetailElement() { 
1195      if (this.detail == null)
1196        if (Configuration.errorOnAutoCreate())
1197          throw new Error("Attempt to auto-create DetectedIssue.detail");
1198        else if (Configuration.doAutoCreate())
1199          this.detail = new StringType(); // bb
1200      return this.detail;
1201    }
1202
1203    public boolean hasDetailElement() { 
1204      return this.detail != null && !this.detail.isEmpty();
1205    }
1206
1207    public boolean hasDetail() { 
1208      return this.detail != null && !this.detail.isEmpty();
1209    }
1210
1211    /**
1212     * @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
1213     */
1214    public DetectedIssue setDetailElement(StringType value) { 
1215      this.detail = value;
1216      return this;
1217    }
1218
1219    /**
1220     * @return A textual explanation of the detected issue.
1221     */
1222    public String getDetail() { 
1223      return this.detail == null ? null : this.detail.getValue();
1224    }
1225
1226    /**
1227     * @param value A textual explanation of the detected issue.
1228     */
1229    public DetectedIssue setDetail(String value) { 
1230      if (Utilities.noString(value))
1231        this.detail = null;
1232      else {
1233        if (this.detail == null)
1234          this.detail = new StringType();
1235        this.detail.setValue(value);
1236      }
1237      return this;
1238    }
1239
1240    /**
1241     * @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
1242     */
1243    public UriType getReferenceElement() { 
1244      if (this.reference == null)
1245        if (Configuration.errorOnAutoCreate())
1246          throw new Error("Attempt to auto-create DetectedIssue.reference");
1247        else if (Configuration.doAutoCreate())
1248          this.reference = new UriType(); // bb
1249      return this.reference;
1250    }
1251
1252    public boolean hasReferenceElement() { 
1253      return this.reference != null && !this.reference.isEmpty();
1254    }
1255
1256    public boolean hasReference() { 
1257      return this.reference != null && !this.reference.isEmpty();
1258    }
1259
1260    /**
1261     * @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
1262     */
1263    public DetectedIssue setReferenceElement(UriType value) { 
1264      this.reference = value;
1265      return this;
1266    }
1267
1268    /**
1269     * @return The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.
1270     */
1271    public String getReference() { 
1272      return this.reference == null ? null : this.reference.getValue();
1273    }
1274
1275    /**
1276     * @param value The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.
1277     */
1278    public DetectedIssue setReference(String value) { 
1279      if (Utilities.noString(value))
1280        this.reference = null;
1281      else {
1282        if (this.reference == null)
1283          this.reference = new UriType();
1284        this.reference.setValue(value);
1285      }
1286      return this;
1287    }
1288
1289    /**
1290     * @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.)
1291     */
1292    public List<DetectedIssueMitigationComponent> getMitigation() { 
1293      if (this.mitigation == null)
1294        this.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
1295      return this.mitigation;
1296    }
1297
1298    /**
1299     * @return Returns a reference to <code>this</code> for easy method chaining
1300     */
1301    public DetectedIssue setMitigation(List<DetectedIssueMitigationComponent> theMitigation) { 
1302      this.mitigation = theMitigation;
1303      return this;
1304    }
1305
1306    public boolean hasMitigation() { 
1307      if (this.mitigation == null)
1308        return false;
1309      for (DetectedIssueMitigationComponent item : this.mitigation)
1310        if (!item.isEmpty())
1311          return true;
1312      return false;
1313    }
1314
1315    public DetectedIssueMitigationComponent addMitigation() { //3
1316      DetectedIssueMitigationComponent t = new DetectedIssueMitigationComponent();
1317      if (this.mitigation == null)
1318        this.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
1319      this.mitigation.add(t);
1320      return t;
1321    }
1322
1323    public DetectedIssue addMitigation(DetectedIssueMitigationComponent t) { //3
1324      if (t == null)
1325        return this;
1326      if (this.mitigation == null)
1327        this.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
1328      this.mitigation.add(t);
1329      return this;
1330    }
1331
1332    /**
1333     * @return The first repetition of repeating field {@link #mitigation}, creating it if it does not already exist {3}
1334     */
1335    public DetectedIssueMitigationComponent getMitigationFirstRep() { 
1336      if (getMitigation().isEmpty()) {
1337        addMitigation();
1338      }
1339      return getMitigation().get(0);
1340    }
1341
1342      protected void listChildren(List<Property> children) {
1343        super.listChildren(children);
1344        children.add(new Property("identifier", "Identifier", "Business identifier associated with the detected issue record.", 0, java.lang.Integer.MAX_VALUE, identifier));
1345        children.add(new Property("status", "code", "Indicates the status of the detected issue.", 0, 1, status));
1346        children.add(new Property("code", "CodeableConcept", "Identifies the general type of issue identified.", 0, 1, code));
1347        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));
1348        children.add(new Property("patient", "Reference(Patient)", "Indicates the patient whose record the detected issue is associated with.", 0, 1, patient));
1349        children.add(new Property("identified[x]", "dateTime|Period", "The date or period when the detected issue was initially identified.", 0, 1, identified));
1350        children.add(new Property("author", "Reference(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));
1351        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));
1352        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));
1353        children.add(new Property("detail", "string", "A textual explanation of the detected issue.", 0, 1, detail));
1354        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));
1355        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));
1356      }
1357
1358      @Override
1359      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1360        switch (_hash) {
1361        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Business identifier associated with the detected issue record.", 0, java.lang.Integer.MAX_VALUE, identifier);
1362        case -892481550: /*status*/  return new Property("status", "code", "Indicates the status of the detected issue.", 0, 1, status);
1363        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Identifies the general type of issue identified.", 0, 1, code);
1364        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);
1365        case -791418107: /*patient*/  return new Property("patient", "Reference(Patient)", "Indicates the patient whose record the detected issue is associated with.", 0, 1, patient);
1366        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);
1367        case -1618432869: /*identified*/  return new Property("identified[x]", "dateTime|Period", "The date or period when the detected issue was initially identified.", 0, 1, identified);
1368        case -968788650: /*identifiedDateTime*/  return new Property("identified[x]", "dateTime", "The date or period when the detected issue was initially identified.", 0, 1, identified);
1369        case 520482364: /*identifiedPeriod*/  return new Property("identified[x]", "Period", "The date or period when the detected issue was initially identified.", 0, 1, identified);
1370        case -1406328437: /*author*/  return new Property("author", "Reference(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);
1371        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);
1372        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);
1373        case -1335224239: /*detail*/  return new Property("detail", "string", "A textual explanation of the detected issue.", 0, 1, detail);
1374        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);
1375        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);
1376        default: return super.getNamedProperty(_hash, _name, _checkValid);
1377        }
1378
1379      }
1380
1381      @Override
1382      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1383        switch (hash) {
1384        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1385        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ObservationStatus>
1386        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
1387        case 1478300413: /*severity*/ return this.severity == null ? new Base[0] : new Base[] {this.severity}; // Enumeration<DetectedIssueSeverity>
1388        case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference
1389        case -1618432869: /*identified*/ return this.identified == null ? new Base[0] : new Base[] {this.identified}; // DataType
1390        case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference
1391        case -810216884: /*implicated*/ return this.implicated == null ? new Base[0] : this.implicated.toArray(new Base[this.implicated.size()]); // Reference
1392        case 382967383: /*evidence*/ return this.evidence == null ? new Base[0] : this.evidence.toArray(new Base[this.evidence.size()]); // DetectedIssueEvidenceComponent
1393        case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : new Base[] {this.detail}; // StringType
1394        case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // UriType
1395        case 1293793087: /*mitigation*/ return this.mitigation == null ? new Base[0] : this.mitigation.toArray(new Base[this.mitigation.size()]); // DetectedIssueMitigationComponent
1396        default: return super.getProperty(hash, name, checkValid);
1397        }
1398
1399      }
1400
1401      @Override
1402      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1403        switch (hash) {
1404        case -1618432855: // identifier
1405          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1406          return value;
1407        case -892481550: // status
1408          value = new ObservationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1409          this.status = (Enumeration) value; // Enumeration<ObservationStatus>
1410          return value;
1411        case 3059181: // code
1412          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1413          return value;
1414        case 1478300413: // severity
1415          value = new DetectedIssueSeverityEnumFactory().fromType(TypeConvertor.castToCode(value));
1416          this.severity = (Enumeration) value; // Enumeration<DetectedIssueSeverity>
1417          return value;
1418        case -791418107: // patient
1419          this.patient = TypeConvertor.castToReference(value); // Reference
1420          return value;
1421        case -1618432869: // identified
1422          this.identified = TypeConvertor.castToType(value); // DataType
1423          return value;
1424        case -1406328437: // author
1425          this.author = TypeConvertor.castToReference(value); // Reference
1426          return value;
1427        case -810216884: // implicated
1428          this.getImplicated().add(TypeConvertor.castToReference(value)); // Reference
1429          return value;
1430        case 382967383: // evidence
1431          this.getEvidence().add((DetectedIssueEvidenceComponent) value); // DetectedIssueEvidenceComponent
1432          return value;
1433        case -1335224239: // detail
1434          this.detail = TypeConvertor.castToString(value); // StringType
1435          return value;
1436        case -925155509: // reference
1437          this.reference = TypeConvertor.castToUri(value); // UriType
1438          return value;
1439        case 1293793087: // mitigation
1440          this.getMitigation().add((DetectedIssueMitigationComponent) value); // DetectedIssueMitigationComponent
1441          return value;
1442        default: return super.setProperty(hash, name, value);
1443        }
1444
1445      }
1446
1447      @Override
1448      public Base setProperty(String name, Base value) throws FHIRException {
1449        if (name.equals("identifier")) {
1450          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1451        } else if (name.equals("status")) {
1452          value = new ObservationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1453          this.status = (Enumeration) value; // Enumeration<ObservationStatus>
1454        } else if (name.equals("code")) {
1455          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1456        } else if (name.equals("severity")) {
1457          value = new DetectedIssueSeverityEnumFactory().fromType(TypeConvertor.castToCode(value));
1458          this.severity = (Enumeration) value; // Enumeration<DetectedIssueSeverity>
1459        } else if (name.equals("patient")) {
1460          this.patient = TypeConvertor.castToReference(value); // Reference
1461        } else if (name.equals("identified[x]")) {
1462          this.identified = TypeConvertor.castToType(value); // DataType
1463        } else if (name.equals("author")) {
1464          this.author = TypeConvertor.castToReference(value); // Reference
1465        } else if (name.equals("implicated")) {
1466          this.getImplicated().add(TypeConvertor.castToReference(value));
1467        } else if (name.equals("evidence")) {
1468          this.getEvidence().add((DetectedIssueEvidenceComponent) value);
1469        } else if (name.equals("detail")) {
1470          this.detail = TypeConvertor.castToString(value); // StringType
1471        } else if (name.equals("reference")) {
1472          this.reference = TypeConvertor.castToUri(value); // UriType
1473        } else if (name.equals("mitigation")) {
1474          this.getMitigation().add((DetectedIssueMitigationComponent) value);
1475        } else
1476          return super.setProperty(name, value);
1477        return value;
1478      }
1479
1480      @Override
1481      public Base makeProperty(int hash, String name) throws FHIRException {
1482        switch (hash) {
1483        case -1618432855:  return addIdentifier(); 
1484        case -892481550:  return getStatusElement();
1485        case 3059181:  return getCode();
1486        case 1478300413:  return getSeverityElement();
1487        case -791418107:  return getPatient();
1488        case 569355781:  return getIdentified();
1489        case -1618432869:  return getIdentified();
1490        case -1406328437:  return getAuthor();
1491        case -810216884:  return addImplicated(); 
1492        case 382967383:  return addEvidence(); 
1493        case -1335224239:  return getDetailElement();
1494        case -925155509:  return getReferenceElement();
1495        case 1293793087:  return addMitigation(); 
1496        default: return super.makeProperty(hash, name);
1497        }
1498
1499      }
1500
1501      @Override
1502      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1503        switch (hash) {
1504        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1505        case -892481550: /*status*/ return new String[] {"code"};
1506        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
1507        case 1478300413: /*severity*/ return new String[] {"code"};
1508        case -791418107: /*patient*/ return new String[] {"Reference"};
1509        case -1618432869: /*identified*/ return new String[] {"dateTime", "Period"};
1510        case -1406328437: /*author*/ return new String[] {"Reference"};
1511        case -810216884: /*implicated*/ return new String[] {"Reference"};
1512        case 382967383: /*evidence*/ return new String[] {};
1513        case -1335224239: /*detail*/ return new String[] {"string"};
1514        case -925155509: /*reference*/ return new String[] {"uri"};
1515        case 1293793087: /*mitigation*/ return new String[] {};
1516        default: return super.getTypesForProperty(hash, name);
1517        }
1518
1519      }
1520
1521      @Override
1522      public Base addChild(String name) throws FHIRException {
1523        if (name.equals("identifier")) {
1524          return addIdentifier();
1525        }
1526        else if (name.equals("status")) {
1527          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.status");
1528        }
1529        else if (name.equals("code")) {
1530          this.code = new CodeableConcept();
1531          return this.code;
1532        }
1533        else if (name.equals("severity")) {
1534          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.severity");
1535        }
1536        else if (name.equals("patient")) {
1537          this.patient = new Reference();
1538          return this.patient;
1539        }
1540        else if (name.equals("identifiedDateTime")) {
1541          this.identified = new DateTimeType();
1542          return this.identified;
1543        }
1544        else if (name.equals("identifiedPeriod")) {
1545          this.identified = new Period();
1546          return this.identified;
1547        }
1548        else if (name.equals("author")) {
1549          this.author = new Reference();
1550          return this.author;
1551        }
1552        else if (name.equals("implicated")) {
1553          return addImplicated();
1554        }
1555        else if (name.equals("evidence")) {
1556          return addEvidence();
1557        }
1558        else if (name.equals("detail")) {
1559          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.detail");
1560        }
1561        else if (name.equals("reference")) {
1562          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.reference");
1563        }
1564        else if (name.equals("mitigation")) {
1565          return addMitigation();
1566        }
1567        else
1568          return super.addChild(name);
1569      }
1570
1571  public String fhirType() {
1572    return "DetectedIssue";
1573
1574  }
1575
1576      public DetectedIssue copy() {
1577        DetectedIssue dst = new DetectedIssue();
1578        copyValues(dst);
1579        return dst;
1580      }
1581
1582      public void copyValues(DetectedIssue dst) {
1583        super.copyValues(dst);
1584        if (identifier != null) {
1585          dst.identifier = new ArrayList<Identifier>();
1586          for (Identifier i : identifier)
1587            dst.identifier.add(i.copy());
1588        };
1589        dst.status = status == null ? null : status.copy();
1590        dst.code = code == null ? null : code.copy();
1591        dst.severity = severity == null ? null : severity.copy();
1592        dst.patient = patient == null ? null : patient.copy();
1593        dst.identified = identified == null ? null : identified.copy();
1594        dst.author = author == null ? null : author.copy();
1595        if (implicated != null) {
1596          dst.implicated = new ArrayList<Reference>();
1597          for (Reference i : implicated)
1598            dst.implicated.add(i.copy());
1599        };
1600        if (evidence != null) {
1601          dst.evidence = new ArrayList<DetectedIssueEvidenceComponent>();
1602          for (DetectedIssueEvidenceComponent i : evidence)
1603            dst.evidence.add(i.copy());
1604        };
1605        dst.detail = detail == null ? null : detail.copy();
1606        dst.reference = reference == null ? null : reference.copy();
1607        if (mitigation != null) {
1608          dst.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
1609          for (DetectedIssueMitigationComponent i : mitigation)
1610            dst.mitigation.add(i.copy());
1611        };
1612      }
1613
1614      protected DetectedIssue typedCopy() {
1615        return copy();
1616      }
1617
1618      @Override
1619      public boolean equalsDeep(Base other_) {
1620        if (!super.equalsDeep(other_))
1621          return false;
1622        if (!(other_ instanceof DetectedIssue))
1623          return false;
1624        DetectedIssue o = (DetectedIssue) other_;
1625        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(code, o.code, true)
1626           && compareDeep(severity, o.severity, true) && compareDeep(patient, o.patient, true) && compareDeep(identified, o.identified, true)
1627           && compareDeep(author, o.author, true) && compareDeep(implicated, o.implicated, true) && compareDeep(evidence, o.evidence, true)
1628           && compareDeep(detail, o.detail, true) && compareDeep(reference, o.reference, true) && compareDeep(mitigation, o.mitigation, true)
1629          ;
1630      }
1631
1632      @Override
1633      public boolean equalsShallow(Base other_) {
1634        if (!super.equalsShallow(other_))
1635          return false;
1636        if (!(other_ instanceof DetectedIssue))
1637          return false;
1638        DetectedIssue o = (DetectedIssue) other_;
1639        return compareValues(status, o.status, true) && compareValues(severity, o.severity, true) && compareValues(detail, o.detail, true)
1640           && compareValues(reference, o.reference, true);
1641      }
1642
1643      public boolean isEmpty() {
1644        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, code
1645          , severity, patient, identified, author, implicated, evidence, detail, reference
1646          , mitigation);
1647      }
1648
1649  @Override
1650  public ResourceType getResourceType() {
1651    return ResourceType.DetectedIssue;
1652   }
1653
1654 /**
1655   * Search parameter: <b>author</b>
1656   * <p>
1657   * Description: <b>The provider or device that identified the issue</b><br>
1658   * Type: <b>reference</b><br>
1659   * Path: <b>DetectedIssue.author</b><br>
1660   * </p>
1661   */
1662  @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, Practitioner.class, PractitionerRole.class } )
1663  public static final String SP_AUTHOR = "author";
1664 /**
1665   * <b>Fluent Client</b> search parameter constant for <b>author</b>
1666   * <p>
1667   * Description: <b>The provider or device that identified the issue</b><br>
1668   * Type: <b>reference</b><br>
1669   * Path: <b>DetectedIssue.author</b><br>
1670   * </p>
1671   */
1672  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AUTHOR);
1673
1674/**
1675   * Constant for fluent queries to be used to add include statements. Specifies
1676   * the path value of "<b>DetectedIssue:author</b>".
1677   */
1678  public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include("DetectedIssue:author").toLocked();
1679
1680 /**
1681   * Search parameter: <b>code</b>
1682   * <p>
1683   * Description: <b>Issue Category, e.g. drug-drug, duplicate therapy, etc.</b><br>
1684   * Type: <b>token</b><br>
1685   * Path: <b>DetectedIssue.code</b><br>
1686   * </p>
1687   */
1688  @SearchParamDefinition(name="code", path="DetectedIssue.code", description="Issue Category, e.g. drug-drug, duplicate therapy, etc.", type="token" )
1689  public static final String SP_CODE = "code";
1690 /**
1691   * <b>Fluent Client</b> search parameter constant for <b>code</b>
1692   * <p>
1693   * Description: <b>Issue Category, e.g. drug-drug, duplicate therapy, etc.</b><br>
1694   * Type: <b>token</b><br>
1695   * Path: <b>DetectedIssue.code</b><br>
1696   * </p>
1697   */
1698  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
1699
1700 /**
1701   * Search parameter: <b>identified</b>
1702   * <p>
1703   * Description: <b>When identified</b><br>
1704   * Type: <b>date</b><br>
1705   * Path: <b>DetectedIssue.identified</b><br>
1706   * </p>
1707   */
1708  @SearchParamDefinition(name="identified", path="DetectedIssue.identified", description="When identified", type="date" )
1709  public static final String SP_IDENTIFIED = "identified";
1710 /**
1711   * <b>Fluent Client</b> search parameter constant for <b>identified</b>
1712   * <p>
1713   * Description: <b>When identified</b><br>
1714   * Type: <b>date</b><br>
1715   * Path: <b>DetectedIssue.identified</b><br>
1716   * </p>
1717   */
1718  public static final ca.uhn.fhir.rest.gclient.DateClientParam IDENTIFIED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_IDENTIFIED);
1719
1720 /**
1721   * Search parameter: <b>implicated</b>
1722   * <p>
1723   * Description: <b>Problem resource</b><br>
1724   * Type: <b>reference</b><br>
1725   * Path: <b>DetectedIssue.implicated</b><br>
1726   * </p>
1727   */
1728  @SearchParamDefinition(name="implicated", path="DetectedIssue.implicated", description="Problem resource", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CapabilityStatement2.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, ClinicalUseIssue.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, ConceptMap2.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
1729  public static final String SP_IMPLICATED = "implicated";
1730 /**
1731   * <b>Fluent Client</b> search parameter constant for <b>implicated</b>
1732   * <p>
1733   * Description: <b>Problem resource</b><br>
1734   * Type: <b>reference</b><br>
1735   * Path: <b>DetectedIssue.implicated</b><br>
1736   * </p>
1737   */
1738  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam IMPLICATED = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_IMPLICATED);
1739
1740/**
1741   * Constant for fluent queries to be used to add include statements. Specifies
1742   * the path value of "<b>DetectedIssue:implicated</b>".
1743   */
1744  public static final ca.uhn.fhir.model.api.Include INCLUDE_IMPLICATED = new ca.uhn.fhir.model.api.Include("DetectedIssue:implicated").toLocked();
1745
1746 /**
1747   * Search parameter: <b>status</b>
1748   * <p>
1749   * Description: <b>The status of the issue</b><br>
1750   * Type: <b>token</b><br>
1751   * Path: <b>DetectedIssue.status</b><br>
1752   * </p>
1753   */
1754  @SearchParamDefinition(name="status", path="DetectedIssue.status", description="The status of the issue", type="token" )
1755  public static final String SP_STATUS = "status";
1756 /**
1757   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1758   * <p>
1759   * Description: <b>The status of the issue</b><br>
1760   * Type: <b>token</b><br>
1761   * Path: <b>DetectedIssue.status</b><br>
1762   * </p>
1763   */
1764  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1765
1766 /**
1767   * Search parameter: <b>identifier</b>
1768   * <p>
1769   * Description: <b>Multiple Resources: 
1770
1771* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1772* [CarePlan](careplan.html): External Ids for this plan
1773* [CareTeam](careteam.html): External Ids for this team
1774* [Composition](composition.html): Version-independent identifier for the Composition
1775* [Condition](condition.html): A unique identifier of the condition record
1776* [Consent](consent.html): Identifier for this record (external references)
1777* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1778* [DeviceRequest](devicerequest.html): Business identifier for request/order
1779* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1780* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents
1781* [DocumentReference](documentreference.html): Identifier of the attachment binary
1782* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1783* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1784* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1785* [Goal](goal.html): External Ids for this goal
1786* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1787* [Immunization](immunization.html): Business identifier
1788* [List](list.html): Business identifier
1789* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1790* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1791* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1792* [MedicationUsage](medicationusage.html): Return statements with this external identifier
1793* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1794* [Observation](observation.html): The unique id for a particular observation
1795* [Procedure](procedure.html): A unique identifier for a procedure
1796* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1797* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1798* [SupplyDelivery](supplydelivery.html): External identifier
1799* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1800* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1801</b><br>
1802   * Type: <b>token</b><br>
1803   * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.content.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br>
1804   * </p>
1805   */
1806  @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.content.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): External ids for this item\r\n* [CarePlan](careplan.html): External Ids for this plan\r\n* [CareTeam](careteam.html): External Ids for this team\r\n* [Composition](composition.html): Version-independent identifier for the Composition\r\n* [Condition](condition.html): A unique identifier of the condition record\r\n* [Consent](consent.html): Identifier for this record (external references)\r\n* [DetectedIssue](detectedissue.html): Unique id for the detected issue\r\n* [DeviceRequest](devicerequest.html): Business identifier for request/order\r\n* [DiagnosticReport](diagnosticreport.html): An identifier for the report\r\n* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents\r\n* [DocumentReference](documentreference.html): Identifier of the attachment binary\r\n* [Encounter](encounter.html): Identifier(s) by which this encounter is known\r\n* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare\r\n* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier\r\n* [Goal](goal.html): External Ids for this goal\r\n* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID\r\n* [Immunization](immunization.html): Business identifier\r\n* [List](list.html): Business identifier\r\n* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier\r\n* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier\r\n* [MedicationUsage](medicationusage.html): Return statements with this external identifier\r\n* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier\r\n* [Observation](observation.html): The unique id for a particular observation\r\n* [Procedure](procedure.html): A unique identifier for a procedure\r\n* [RiskAssessment](riskassessment.html): Unique identifier for the assessment\r\n* [ServiceRequest](servicerequest.html): Identifiers assigned to this order\r\n* [SupplyDelivery](supplydelivery.html): External identifier\r\n* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest\r\n* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier\r\n", type="token" )
1807  public static final String SP_IDENTIFIER = "identifier";
1808 /**
1809   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1810   * <p>
1811   * Description: <b>Multiple Resources: 
1812
1813* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1814* [CarePlan](careplan.html): External Ids for this plan
1815* [CareTeam](careteam.html): External Ids for this team
1816* [Composition](composition.html): Version-independent identifier for the Composition
1817* [Condition](condition.html): A unique identifier of the condition record
1818* [Consent](consent.html): Identifier for this record (external references)
1819* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1820* [DeviceRequest](devicerequest.html): Business identifier for request/order
1821* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1822* [DocumentManifest](documentmanifest.html): Unique Identifier for the set of documents
1823* [DocumentReference](documentreference.html): Identifier of the attachment binary
1824* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1825* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1826* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1827* [Goal](goal.html): External Ids for this goal
1828* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1829* [Immunization](immunization.html): Business identifier
1830* [List](list.html): Business identifier
1831* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1832* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1833* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1834* [MedicationUsage](medicationusage.html): Return statements with this external identifier
1835* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1836* [Observation](observation.html): The unique id for a particular observation
1837* [Procedure](procedure.html): A unique identifier for a procedure
1838* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1839* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1840* [SupplyDelivery](supplydelivery.html): External identifier
1841* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1842* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1843</b><br>
1844   * Type: <b>token</b><br>
1845   * Path: <b>AllergyIntolerance.identifier | CarePlan.identifier | CareTeam.identifier | Composition.identifier | Condition.identifier | Consent.identifier | DetectedIssue.identifier | DeviceRequest.identifier | DiagnosticReport.identifier | DocumentManifest.masterIdentifier | DocumentManifest.identifier | DocumentReference.content.identifier | DocumentReference.identifier | Encounter.identifier | EpisodeOfCare.identifier | FamilyMemberHistory.identifier | Goal.identifier | ImagingStudy.identifier | Immunization.identifier | List.identifier | MedicationAdministration.identifier | MedicationDispense.identifier | MedicationRequest.identifier | MedicationUsage.identifier | NutritionOrder.identifier | Observation.identifier | Procedure.identifier | RiskAssessment.identifier | ServiceRequest.identifier | SupplyDelivery.identifier | SupplyRequest.identifier | VisionPrescription.identifier</b><br>
1846   * </p>
1847   */
1848  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1849
1850 /**
1851   * Search parameter: <b>patient</b>
1852   * <p>
1853   * Description: <b>Multiple Resources: 
1854
1855* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1856* [CarePlan](careplan.html): Who the care plan is for
1857* [CareTeam](careteam.html): Who care team is for
1858* [ClinicalImpression](clinicalimpression.html): Patient assessed
1859* [Composition](composition.html): Who and/or what the composition is about
1860* [Condition](condition.html): Who has the condition?
1861* [Consent](consent.html): Who the consent applies to
1862* [DetectedIssue](detectedissue.html): Associated patient
1863* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1864* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1865* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1866* [DocumentManifest](documentmanifest.html): The subject of the set of documents
1867* [DocumentReference](documentreference.html): Who/what is the subject of the document
1868* [Encounter](encounter.html): The patient present at the encounter
1869* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1870* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1871* [Flag](flag.html): The identity of a subject to list flags for
1872* [Goal](goal.html): Who this goal is intended for
1873* [ImagingStudy](imagingstudy.html): Who the study is about
1874* [Immunization](immunization.html): The patient for the vaccination record
1875* [List](list.html): If all resources have the same subject
1876* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1877* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1878* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1879* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.
1880* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement
1881* [Observation](observation.html): The subject that the observation is about (if patient)
1882* [Procedure](procedure.html): Search by subject - a patient
1883* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1884* [ServiceRequest](servicerequest.html): Search by subject - a patient
1885* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1886* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1887</b><br>
1888   * Type: <b>reference</b><br>
1889   * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br>
1890   * </p>
1891   */
1892  @SearchParamDefinition(name="patient", path="AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient", description="Multiple Resources: \r\n\r\n* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for\r\n* [CarePlan](careplan.html): Who the care plan is for\r\n* [CareTeam](careteam.html): Who care team is for\r\n* [ClinicalImpression](clinicalimpression.html): Patient assessed\r\n* [Composition](composition.html): Who and/or what the composition is about\r\n* [Condition](condition.html): Who has the condition?\r\n* [Consent](consent.html): Who the consent applies to\r\n* [DetectedIssue](detectedissue.html): Associated patient\r\n* [DeviceRequest](devicerequest.html): Individual the service is ordered for\r\n* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device\r\n* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient\r\n* [DocumentManifest](documentmanifest.html): The subject of the set of documents\r\n* [DocumentReference](documentreference.html): Who/what is the subject of the document\r\n* [Encounter](encounter.html): The patient present at the encounter\r\n* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care\r\n* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for\r\n* [Flag](flag.html): The identity of a subject to list flags for\r\n* [Goal](goal.html): Who this goal is intended for\r\n* [ImagingStudy](imagingstudy.html): Who the study is about\r\n* [Immunization](immunization.html): The patient for the vaccination record\r\n* [List](list.html): If all resources have the same subject\r\n* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for\r\n* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for\r\n* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient\r\n* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.\r\n* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement\r\n* [Observation](observation.html): The subject that the observation is about (if patient)\r\n* [Procedure](procedure.html): Search by subject - a patient\r\n* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?\r\n* [ServiceRequest](servicerequest.html): Search by subject - a patient\r\n* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied\r\n* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for\r\n", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CapabilityStatement2.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, ClinicalUseIssue.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, ConceptMap2.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
1893  public static final String SP_PATIENT = "patient";
1894 /**
1895   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1896   * <p>
1897   * Description: <b>Multiple Resources: 
1898
1899* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1900* [CarePlan](careplan.html): Who the care plan is for
1901* [CareTeam](careteam.html): Who care team is for
1902* [ClinicalImpression](clinicalimpression.html): Patient assessed
1903* [Composition](composition.html): Who and/or what the composition is about
1904* [Condition](condition.html): Who has the condition?
1905* [Consent](consent.html): Who the consent applies to
1906* [DetectedIssue](detectedissue.html): Associated patient
1907* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1908* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1909* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1910* [DocumentManifest](documentmanifest.html): The subject of the set of documents
1911* [DocumentReference](documentreference.html): Who/what is the subject of the document
1912* [Encounter](encounter.html): The patient present at the encounter
1913* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1914* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1915* [Flag](flag.html): The identity of a subject to list flags for
1916* [Goal](goal.html): Who this goal is intended for
1917* [ImagingStudy](imagingstudy.html): Who the study is about
1918* [Immunization](immunization.html): The patient for the vaccination record
1919* [List](list.html): If all resources have the same subject
1920* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1921* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1922* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1923* [MedicationUsage](medicationusage.html): Returns statements for a specific patient.
1924* [NutritionOrder](nutritionorder.html): The identity of the person who requires the diet, formula or nutritional supplement
1925* [Observation](observation.html): The subject that the observation is about (if patient)
1926* [Procedure](procedure.html): Search by subject - a patient
1927* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1928* [ServiceRequest](servicerequest.html): Search by subject - a patient
1929* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1930* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1931</b><br>
1932   * Type: <b>reference</b><br>
1933   * Path: <b>AllergyIntolerance.patient | CarePlan.subject.where(resolve() is Patient) | CareTeam.subject.where(resolve() is Patient) | ClinicalImpression.subject.where(resolve() is Patient) | Composition.subject.where(resolve() is Patient) | Condition.subject.where(resolve() is Patient) | Consent.subject.where(resolve() is Patient) | DetectedIssue.patient | DeviceRequest.subject.where(resolve() is Patient) | DeviceUsage.patient | DiagnosticReport.subject.where(resolve() is Patient) | DocumentManifest.subject.where(resolve() is Patient) | DocumentReference.subject.where(resolve() is Patient) | Encounter.subject.where(resolve() is Patient) | EpisodeOfCare.patient | FamilyMemberHistory.patient | Flag.subject.where(resolve() is Patient) | Goal.subject.where(resolve() is Patient) | ImagingStudy.subject.where(resolve() is Patient) | Immunization.patient | List.subject.where(resolve() is Patient) | MedicationAdministration.subject.where(resolve() is Patient) | MedicationDispense.subject.where(resolve() is Patient) | MedicationRequest.subject.where(resolve() is Patient) | MedicationUsage.subject.where(resolve() is Patient) | NutritionOrder.patient | Observation.subject.where(resolve() is Patient) | Procedure.subject.where(resolve() is Patient) | RiskAssessment.subject.where(resolve() is Patient) | ServiceRequest.subject.where(resolve() is Patient) | SupplyDelivery.patient | VisionPrescription.patient</b><br>
1934   * </p>
1935   */
1936  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1937
1938/**
1939   * Constant for fluent queries to be used to add include statements. Specifies
1940   * the path value of "<b>DetectedIssue:patient</b>".
1941   */
1942  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("DetectedIssue:patient").toLocked();
1943
1944
1945}
1946