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