001package org.hl7.fhir.dstu2016may.model;
002
003
004
005
006/*
007  Copyright (c) 2011+, HL7, Inc.
008  All rights reserved.
009  
010  Redistribution and use in source and binary forms, with or without modification, 
011  are permitted provided that the following conditions are met:
012  
013   * Redistributions of source code must retain the above copyright notice, this 
014     list of conditions and the following disclaimer.
015   * Redistributions in binary form must reproduce the above copyright notice, 
016     this list of conditions and the following disclaimer in the documentation 
017     and/or other materials provided with the distribution.
018   * Neither the name of HL7 nor the names of its contributors may be used to 
019     endorse or promote products derived from this software without specific 
020     prior written permission.
021  
022  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
023  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
024  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
025  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
026  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
027  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
028  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
029  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
030  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
031  POSSIBILITY OF SUCH DAMAGE.
032  
033*/
034
035// Generated on Sun, May 8, 2016 03:05+1000 for FHIR v1.4.0
036import java.util.ArrayList;
037import java.util.Date;
038import java.util.List;
039
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
042import org.hl7.fhir.utilities.Utilities;
043
044import ca.uhn.fhir.model.api.annotation.Block;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.Description;
047import ca.uhn.fhir.model.api.annotation.ResourceDef;
048import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
049/**
050 * 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.
051 */
052@ResourceDef(name="DetectedIssue", profile="http://hl7.org/fhir/Profile/DetectedIssue")
053public class DetectedIssue extends DomainResource {
054
055    public enum DetectedIssueSeverity {
056        /**
057         * Indicates the issue may be life-threatening or has the potential to cause permanent injury.
058         */
059        HIGH, 
060        /**
061         * Indicates the issue may result in noticeable adverse consequences but is unlikely to be life-threatening or cause permanent injury.
062         */
063        MODERATE, 
064        /**
065         * Indicates the issue may result in some adverse consequences but is unlikely to substantially affect the situation of the subject.
066         */
067        LOW, 
068        /**
069         * added to help the parsers
070         */
071        NULL;
072        public static DetectedIssueSeverity fromCode(String codeString) throws FHIRException {
073            if (codeString == null || "".equals(codeString))
074                return null;
075        if ("high".equals(codeString))
076          return HIGH;
077        if ("moderate".equals(codeString))
078          return MODERATE;
079        if ("low".equals(codeString))
080          return LOW;
081        throw new FHIRException("Unknown DetectedIssueSeverity code '"+codeString+"'");
082        }
083        public String toCode() {
084          switch (this) {
085            case HIGH: return "high";
086            case MODERATE: return "moderate";
087            case LOW: return "low";
088            case NULL: return null;
089            default: return "?";
090          }
091        }
092        public String getSystem() {
093          switch (this) {
094            case HIGH: return "http://hl7.org/fhir/detectedissue-severity";
095            case MODERATE: return "http://hl7.org/fhir/detectedissue-severity";
096            case LOW: return "http://hl7.org/fhir/detectedissue-severity";
097            case NULL: return null;
098            default: return "?";
099          }
100        }
101        public String getDefinition() {
102          switch (this) {
103            case HIGH: return "Indicates the issue may be life-threatening or has the potential to cause permanent injury.";
104            case MODERATE: return "Indicates the issue may result in noticeable adverse consequences but is unlikely to be life-threatening or cause permanent injury.";
105            case LOW: return "Indicates the issue may result in some adverse consequences but is unlikely to substantially affect the situation of the subject.";
106            case NULL: return null;
107            default: return "?";
108          }
109        }
110        public String getDisplay() {
111          switch (this) {
112            case HIGH: return "High";
113            case MODERATE: return "Moderate";
114            case LOW: return "Low";
115            case NULL: return null;
116            default: return "?";
117          }
118        }
119    }
120
121  public static class DetectedIssueSeverityEnumFactory implements EnumFactory<DetectedIssueSeverity> {
122    public DetectedIssueSeverity fromCode(String codeString) throws IllegalArgumentException {
123      if (codeString == null || "".equals(codeString))
124            if (codeString == null || "".equals(codeString))
125                return null;
126        if ("high".equals(codeString))
127          return DetectedIssueSeverity.HIGH;
128        if ("moderate".equals(codeString))
129          return DetectedIssueSeverity.MODERATE;
130        if ("low".equals(codeString))
131          return DetectedIssueSeverity.LOW;
132        throw new IllegalArgumentException("Unknown DetectedIssueSeverity code '"+codeString+"'");
133        }
134        public Enumeration<DetectedIssueSeverity> fromType(Base code) throws FHIRException {
135          if (code == null || code.isEmpty())
136            return null;
137          String codeString = ((PrimitiveType) code).asStringValue();
138          if (codeString == null || "".equals(codeString))
139            return null;
140        if ("high".equals(codeString))
141          return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.HIGH);
142        if ("moderate".equals(codeString))
143          return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.MODERATE);
144        if ("low".equals(codeString))
145          return new Enumeration<DetectedIssueSeverity>(this, DetectedIssueSeverity.LOW);
146        throw new FHIRException("Unknown DetectedIssueSeverity code '"+codeString+"'");
147        }
148    public String toCode(DetectedIssueSeverity code) {
149      if (code == DetectedIssueSeverity.HIGH)
150        return "high";
151      if (code == DetectedIssueSeverity.MODERATE)
152        return "moderate";
153      if (code == DetectedIssueSeverity.LOW)
154        return "low";
155      return "?";
156      }
157    public String toSystem(DetectedIssueSeverity code) {
158      return code.getSystem();
159      }
160    }
161
162    @Block()
163    public static class DetectedIssueMitigationComponent extends BackboneElement implements IBaseBackboneElement {
164        /**
165         * Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue.
166         */
167        @Child(name = "action", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false)
168        @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." )
169        protected CodeableConcept action;
170
171        /**
172         * Indicates when the mitigating action was documented.
173         */
174        @Child(name = "date", type = {DateTimeType.class}, order=2, min=0, max=1, modifier=false, summary=false)
175        @Description(shortDefinition="Date committed", formalDefinition="Indicates when the mitigating action was documented." )
176        protected DateTimeType date;
177
178        /**
179         * Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.
180         */
181        @Child(name = "author", type = {Practitioner.class}, order=3, min=0, max=1, modifier=false, summary=false)
182        @Description(shortDefinition="Who is committing?", formalDefinition="Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring." )
183        protected Reference author;
184
185        /**
186         * The actual object that is the target of the reference (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.)
187         */
188        protected Practitioner authorTarget;
189
190        private static final long serialVersionUID = -1994768436L;
191
192    /**
193     * Constructor
194     */
195      public DetectedIssueMitigationComponent() {
196        super();
197      }
198
199    /**
200     * Constructor
201     */
202      public DetectedIssueMitigationComponent(CodeableConcept action) {
203        super();
204        this.action = action;
205      }
206
207        /**
208         * @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.)
209         */
210        public CodeableConcept getAction() { 
211          if (this.action == null)
212            if (Configuration.errorOnAutoCreate())
213              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.action");
214            else if (Configuration.doAutoCreate())
215              this.action = new CodeableConcept(); // cc
216          return this.action;
217        }
218
219        public boolean hasAction() { 
220          return this.action != null && !this.action.isEmpty();
221        }
222
223        /**
224         * @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.)
225         */
226        public DetectedIssueMitigationComponent setAction(CodeableConcept value) { 
227          this.action = value;
228          return this;
229        }
230
231        /**
232         * @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
233         */
234        public DateTimeType getDateElement() { 
235          if (this.date == null)
236            if (Configuration.errorOnAutoCreate())
237              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.date");
238            else if (Configuration.doAutoCreate())
239              this.date = new DateTimeType(); // bb
240          return this.date;
241        }
242
243        public boolean hasDateElement() { 
244          return this.date != null && !this.date.isEmpty();
245        }
246
247        public boolean hasDate() { 
248          return this.date != null && !this.date.isEmpty();
249        }
250
251        /**
252         * @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
253         */
254        public DetectedIssueMitigationComponent setDateElement(DateTimeType value) { 
255          this.date = value;
256          return this;
257        }
258
259        /**
260         * @return Indicates when the mitigating action was documented.
261         */
262        public Date getDate() { 
263          return this.date == null ? null : this.date.getValue();
264        }
265
266        /**
267         * @param value Indicates when the mitigating action was documented.
268         */
269        public DetectedIssueMitigationComponent setDate(Date value) { 
270          if (value == null)
271            this.date = null;
272          else {
273            if (this.date == null)
274              this.date = new DateTimeType();
275            this.date.setValue(value);
276          }
277          return this;
278        }
279
280        /**
281         * @return {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.)
282         */
283        public Reference getAuthor() { 
284          if (this.author == null)
285            if (Configuration.errorOnAutoCreate())
286              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.author");
287            else if (Configuration.doAutoCreate())
288              this.author = new Reference(); // cc
289          return this.author;
290        }
291
292        public boolean hasAuthor() { 
293          return this.author != null && !this.author.isEmpty();
294        }
295
296        /**
297         * @param value {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.)
298         */
299        public DetectedIssueMitigationComponent setAuthor(Reference value) { 
300          this.author = value;
301          return this;
302        }
303
304        /**
305         * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.)
306         */
307        public Practitioner getAuthorTarget() { 
308          if (this.authorTarget == null)
309            if (Configuration.errorOnAutoCreate())
310              throw new Error("Attempt to auto-create DetectedIssueMitigationComponent.author");
311            else if (Configuration.doAutoCreate())
312              this.authorTarget = new Practitioner(); // aa
313          return this.authorTarget;
314        }
315
316        /**
317         * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.)
318         */
319        public DetectedIssueMitigationComponent setAuthorTarget(Practitioner value) { 
320          this.authorTarget = value;
321          return this;
322        }
323
324        protected void listChildren(List<Property> childrenList) {
325          super.listChildren(childrenList);
326          childrenList.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, java.lang.Integer.MAX_VALUE, action));
327          childrenList.add(new Property("date", "dateTime", "Indicates when the mitigating action was documented.", 0, java.lang.Integer.MAX_VALUE, date));
328          childrenList.add(new Property("author", "Reference(Practitioner)", "Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.", 0, java.lang.Integer.MAX_VALUE, author));
329        }
330
331      @Override
332      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
333        switch (hash) {
334        case -1422950858: /*action*/ return this.action == null ? new Base[0] : new Base[] {this.action}; // CodeableConcept
335        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
336        case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference
337        default: return super.getProperty(hash, name, checkValid);
338        }
339
340      }
341
342      @Override
343      public void setProperty(int hash, String name, Base value) throws FHIRException {
344        switch (hash) {
345        case -1422950858: // action
346          this.action = castToCodeableConcept(value); // CodeableConcept
347          break;
348        case 3076014: // date
349          this.date = castToDateTime(value); // DateTimeType
350          break;
351        case -1406328437: // author
352          this.author = castToReference(value); // Reference
353          break;
354        default: super.setProperty(hash, name, value);
355        }
356
357      }
358
359      @Override
360      public void setProperty(String name, Base value) throws FHIRException {
361        if (name.equals("action"))
362          this.action = castToCodeableConcept(value); // CodeableConcept
363        else if (name.equals("date"))
364          this.date = castToDateTime(value); // DateTimeType
365        else if (name.equals("author"))
366          this.author = castToReference(value); // Reference
367        else
368          super.setProperty(name, value);
369      }
370
371      @Override
372      public Base makeProperty(int hash, String name) throws FHIRException {
373        switch (hash) {
374        case -1422950858:  return getAction(); // CodeableConcept
375        case 3076014: throw new FHIRException("Cannot make property date as it is not a complex type"); // DateTimeType
376        case -1406328437:  return getAuthor(); // Reference
377        default: return super.makeProperty(hash, name);
378        }
379
380      }
381
382      @Override
383      public Base addChild(String name) throws FHIRException {
384        if (name.equals("action")) {
385          this.action = new CodeableConcept();
386          return this.action;
387        }
388        else if (name.equals("date")) {
389          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.date");
390        }
391        else if (name.equals("author")) {
392          this.author = new Reference();
393          return this.author;
394        }
395        else
396          return super.addChild(name);
397      }
398
399      public DetectedIssueMitigationComponent copy() {
400        DetectedIssueMitigationComponent dst = new DetectedIssueMitigationComponent();
401        copyValues(dst);
402        dst.action = action == null ? null : action.copy();
403        dst.date = date == null ? null : date.copy();
404        dst.author = author == null ? null : author.copy();
405        return dst;
406      }
407
408      @Override
409      public boolean equalsDeep(Base other) {
410        if (!super.equalsDeep(other))
411          return false;
412        if (!(other instanceof DetectedIssueMitigationComponent))
413          return false;
414        DetectedIssueMitigationComponent o = (DetectedIssueMitigationComponent) other;
415        return compareDeep(action, o.action, true) && compareDeep(date, o.date, true) && compareDeep(author, o.author, true)
416          ;
417      }
418
419      @Override
420      public boolean equalsShallow(Base other) {
421        if (!super.equalsShallow(other))
422          return false;
423        if (!(other instanceof DetectedIssueMitigationComponent))
424          return false;
425        DetectedIssueMitigationComponent o = (DetectedIssueMitigationComponent) other;
426        return compareValues(date, o.date, true);
427      }
428
429      public boolean isEmpty() {
430        return super.isEmpty() && (action == null || action.isEmpty()) && (date == null || date.isEmpty())
431           && (author == null || author.isEmpty());
432      }
433
434  public String fhirType() {
435    return "DetectedIssue.mitigation";
436
437  }
438
439  }
440
441    /**
442     * Indicates the patient whose record the detected issue is associated with.
443     */
444    @Child(name = "patient", type = {Patient.class}, order=0, min=0, max=1, modifier=false, summary=true)
445    @Description(shortDefinition="Associated patient", formalDefinition="Indicates the patient whose record the detected issue is associated with." )
446    protected Reference patient;
447
448    /**
449     * The actual object that is the target of the reference (Indicates the patient whose record the detected issue is associated with.)
450     */
451    protected Patient patientTarget;
452
453    /**
454     * Identifies the general type of issue identified.
455     */
456    @Child(name = "category", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true)
457    @Description(shortDefinition="Issue Category, e.g. drug-drug, duplicate therapy, etc.", formalDefinition="Identifies the general type of issue identified." )
458    protected CodeableConcept category;
459
460    /**
461     * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.
462     */
463    @Child(name = "severity", type = {CodeType.class}, order=2, min=0, max=1, modifier=false, summary=true)
464    @Description(shortDefinition="high | moderate | low", formalDefinition="Indicates the degree of importance associated with the identified issue based on the potential impact on the patient." )
465    protected Enumeration<DetectedIssueSeverity> severity;
466
467    /**
468     * Indicates the resource representing the current activity or proposed activity that is potentially problematic.
469     */
470    @Child(name = "implicated", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
471    @Description(shortDefinition="Problem resource", formalDefinition="Indicates the resource representing the current activity or proposed activity that is potentially problematic." )
472    protected List<Reference> implicated;
473    /**
474     * The actual objects that are the target of the reference (Indicates the resource representing the current activity or proposed activity that is potentially problematic.)
475     */
476    protected List<Resource> implicatedTarget;
477
478
479    /**
480     * A textual explanation of the detected issue.
481     */
482    @Child(name = "detail", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false)
483    @Description(shortDefinition="Description and context", formalDefinition="A textual explanation of the detected issue." )
484    protected StringType detail;
485
486    /**
487     * The date or date-time when the detected issue was initially identified.
488     */
489    @Child(name = "date", type = {DateTimeType.class}, order=5, min=0, max=1, modifier=false, summary=true)
490    @Description(shortDefinition="When identified", formalDefinition="The date or date-time when the detected issue was initially identified." )
491    protected DateTimeType date;
492
493    /**
494     * Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.
495     */
496    @Child(name = "author", type = {Practitioner.class, Device.class}, order=6, min=0, max=1, modifier=false, summary=true)
497    @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." )
498    protected Reference author;
499
500    /**
501     * The actual object that is the target of the reference (Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.)
502     */
503    protected Resource authorTarget;
504
505    /**
506     * Business identifier associated with the detected issue record.
507     */
508    @Child(name = "identifier", type = {Identifier.class}, order=7, min=0, max=1, modifier=false, summary=true)
509    @Description(shortDefinition="Unique id for the detected issue", formalDefinition="Business identifier associated with the detected issue record." )
510    protected Identifier identifier;
511
512    /**
513     * The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.
514     */
515    @Child(name = "reference", type = {UriType.class}, order=8, min=0, max=1, modifier=false, summary=false)
516    @Description(shortDefinition="Authority for issue", formalDefinition="The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified." )
517    protected UriType reference;
518
519    /**
520     * Indicates an action that has been taken or is committed to 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.
521     */
522    @Child(name = "mitigation", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
523    @Description(shortDefinition="Step taken to address", formalDefinition="Indicates an action that has been taken or is committed to 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." )
524    protected List<DetectedIssueMitigationComponent> mitigation;
525
526    private static final long serialVersionUID = -403732234L;
527
528  /**
529   * Constructor
530   */
531    public DetectedIssue() {
532      super();
533    }
534
535    /**
536     * @return {@link #patient} (Indicates the patient whose record the detected issue is associated with.)
537     */
538    public Reference getPatient() { 
539      if (this.patient == null)
540        if (Configuration.errorOnAutoCreate())
541          throw new Error("Attempt to auto-create DetectedIssue.patient");
542        else if (Configuration.doAutoCreate())
543          this.patient = new Reference(); // cc
544      return this.patient;
545    }
546
547    public boolean hasPatient() { 
548      return this.patient != null && !this.patient.isEmpty();
549    }
550
551    /**
552     * @param value {@link #patient} (Indicates the patient whose record the detected issue is associated with.)
553     */
554    public DetectedIssue setPatient(Reference value) { 
555      this.patient = value;
556      return this;
557    }
558
559    /**
560     * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates the patient whose record the detected issue is associated with.)
561     */
562    public Patient getPatientTarget() { 
563      if (this.patientTarget == null)
564        if (Configuration.errorOnAutoCreate())
565          throw new Error("Attempt to auto-create DetectedIssue.patient");
566        else if (Configuration.doAutoCreate())
567          this.patientTarget = new Patient(); // aa
568      return this.patientTarget;
569    }
570
571    /**
572     * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates the patient whose record the detected issue is associated with.)
573     */
574    public DetectedIssue setPatientTarget(Patient value) { 
575      this.patientTarget = value;
576      return this;
577    }
578
579    /**
580     * @return {@link #category} (Identifies the general type of issue identified.)
581     */
582    public CodeableConcept getCategory() { 
583      if (this.category == null)
584        if (Configuration.errorOnAutoCreate())
585          throw new Error("Attempt to auto-create DetectedIssue.category");
586        else if (Configuration.doAutoCreate())
587          this.category = new CodeableConcept(); // cc
588      return this.category;
589    }
590
591    public boolean hasCategory() { 
592      return this.category != null && !this.category.isEmpty();
593    }
594
595    /**
596     * @param value {@link #category} (Identifies the general type of issue identified.)
597     */
598    public DetectedIssue setCategory(CodeableConcept value) { 
599      this.category = value;
600      return this;
601    }
602
603    /**
604     * @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
605     */
606    public Enumeration<DetectedIssueSeverity> getSeverityElement() { 
607      if (this.severity == null)
608        if (Configuration.errorOnAutoCreate())
609          throw new Error("Attempt to auto-create DetectedIssue.severity");
610        else if (Configuration.doAutoCreate())
611          this.severity = new Enumeration<DetectedIssueSeverity>(new DetectedIssueSeverityEnumFactory()); // bb
612      return this.severity;
613    }
614
615    public boolean hasSeverityElement() { 
616      return this.severity != null && !this.severity.isEmpty();
617    }
618
619    public boolean hasSeverity() { 
620      return this.severity != null && !this.severity.isEmpty();
621    }
622
623    /**
624     * @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
625     */
626    public DetectedIssue setSeverityElement(Enumeration<DetectedIssueSeverity> value) { 
627      this.severity = value;
628      return this;
629    }
630
631    /**
632     * @return Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.
633     */
634    public DetectedIssueSeverity getSeverity() { 
635      return this.severity == null ? null : this.severity.getValue();
636    }
637
638    /**
639     * @param value Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.
640     */
641    public DetectedIssue setSeverity(DetectedIssueSeverity value) { 
642      if (value == null)
643        this.severity = null;
644      else {
645        if (this.severity == null)
646          this.severity = new Enumeration<DetectedIssueSeverity>(new DetectedIssueSeverityEnumFactory());
647        this.severity.setValue(value);
648      }
649      return this;
650    }
651
652    /**
653     * @return {@link #implicated} (Indicates the resource representing the current activity or proposed activity that is potentially problematic.)
654     */
655    public List<Reference> getImplicated() { 
656      if (this.implicated == null)
657        this.implicated = new ArrayList<Reference>();
658      return this.implicated;
659    }
660
661    public boolean hasImplicated() { 
662      if (this.implicated == null)
663        return false;
664      for (Reference item : this.implicated)
665        if (!item.isEmpty())
666          return true;
667      return false;
668    }
669
670    /**
671     * @return {@link #implicated} (Indicates the resource representing the current activity or proposed activity that is potentially problematic.)
672     */
673    // syntactic sugar
674    public Reference addImplicated() { //3
675      Reference t = new Reference();
676      if (this.implicated == null)
677        this.implicated = new ArrayList<Reference>();
678      this.implicated.add(t);
679      return t;
680    }
681
682    // syntactic sugar
683    public DetectedIssue addImplicated(Reference t) { //3
684      if (t == null)
685        return this;
686      if (this.implicated == null)
687        this.implicated = new ArrayList<Reference>();
688      this.implicated.add(t);
689      return this;
690    }
691
692    /**
693     * @return {@link #implicated} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Indicates the resource representing the current activity or proposed activity that is potentially problematic.)
694     */
695    public List<Resource> getImplicatedTarget() { 
696      if (this.implicatedTarget == null)
697        this.implicatedTarget = new ArrayList<Resource>();
698      return this.implicatedTarget;
699    }
700
701    /**
702     * @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
703     */
704    public StringType getDetailElement() { 
705      if (this.detail == null)
706        if (Configuration.errorOnAutoCreate())
707          throw new Error("Attempt to auto-create DetectedIssue.detail");
708        else if (Configuration.doAutoCreate())
709          this.detail = new StringType(); // bb
710      return this.detail;
711    }
712
713    public boolean hasDetailElement() { 
714      return this.detail != null && !this.detail.isEmpty();
715    }
716
717    public boolean hasDetail() { 
718      return this.detail != null && !this.detail.isEmpty();
719    }
720
721    /**
722     * @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
723     */
724    public DetectedIssue setDetailElement(StringType value) { 
725      this.detail = value;
726      return this;
727    }
728
729    /**
730     * @return A textual explanation of the detected issue.
731     */
732    public String getDetail() { 
733      return this.detail == null ? null : this.detail.getValue();
734    }
735
736    /**
737     * @param value A textual explanation of the detected issue.
738     */
739    public DetectedIssue setDetail(String value) { 
740      if (Utilities.noString(value))
741        this.detail = null;
742      else {
743        if (this.detail == null)
744          this.detail = new StringType();
745        this.detail.setValue(value);
746      }
747      return this;
748    }
749
750    /**
751     * @return {@link #date} (The date or date-time when the detected issue was initially identified.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
752     */
753    public DateTimeType getDateElement() { 
754      if (this.date == null)
755        if (Configuration.errorOnAutoCreate())
756          throw new Error("Attempt to auto-create DetectedIssue.date");
757        else if (Configuration.doAutoCreate())
758          this.date = new DateTimeType(); // bb
759      return this.date;
760    }
761
762    public boolean hasDateElement() { 
763      return this.date != null && !this.date.isEmpty();
764    }
765
766    public boolean hasDate() { 
767      return this.date != null && !this.date.isEmpty();
768    }
769
770    /**
771     * @param value {@link #date} (The date or date-time when the detected issue was initially identified.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
772     */
773    public DetectedIssue setDateElement(DateTimeType value) { 
774      this.date = value;
775      return this;
776    }
777
778    /**
779     * @return The date or date-time when the detected issue was initially identified.
780     */
781    public Date getDate() { 
782      return this.date == null ? null : this.date.getValue();
783    }
784
785    /**
786     * @param value The date or date-time when the detected issue was initially identified.
787     */
788    public DetectedIssue setDate(Date value) { 
789      if (value == null)
790        this.date = null;
791      else {
792        if (this.date == null)
793          this.date = new DateTimeType();
794        this.date.setValue(value);
795      }
796      return this;
797    }
798
799    /**
800     * @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.)
801     */
802    public Reference getAuthor() { 
803      if (this.author == null)
804        if (Configuration.errorOnAutoCreate())
805          throw new Error("Attempt to auto-create DetectedIssue.author");
806        else if (Configuration.doAutoCreate())
807          this.author = new Reference(); // cc
808      return this.author;
809    }
810
811    public boolean hasAuthor() { 
812      return this.author != null && !this.author.isEmpty();
813    }
814
815    /**
816     * @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.)
817     */
818    public DetectedIssue setAuthor(Reference value) { 
819      this.author = value;
820      return this;
821    }
822
823    /**
824     * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.)
825     */
826    public Resource getAuthorTarget() { 
827      return this.authorTarget;
828    }
829
830    /**
831     * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.)
832     */
833    public DetectedIssue setAuthorTarget(Resource value) { 
834      this.authorTarget = value;
835      return this;
836    }
837
838    /**
839     * @return {@link #identifier} (Business identifier associated with the detected issue record.)
840     */
841    public Identifier getIdentifier() { 
842      if (this.identifier == null)
843        if (Configuration.errorOnAutoCreate())
844          throw new Error("Attempt to auto-create DetectedIssue.identifier");
845        else if (Configuration.doAutoCreate())
846          this.identifier = new Identifier(); // cc
847      return this.identifier;
848    }
849
850    public boolean hasIdentifier() { 
851      return this.identifier != null && !this.identifier.isEmpty();
852    }
853
854    /**
855     * @param value {@link #identifier} (Business identifier associated with the detected issue record.)
856     */
857    public DetectedIssue setIdentifier(Identifier value) { 
858      this.identifier = value;
859      return this;
860    }
861
862    /**
863     * @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
864     */
865    public UriType getReferenceElement() { 
866      if (this.reference == null)
867        if (Configuration.errorOnAutoCreate())
868          throw new Error("Attempt to auto-create DetectedIssue.reference");
869        else if (Configuration.doAutoCreate())
870          this.reference = new UriType(); // bb
871      return this.reference;
872    }
873
874    public boolean hasReferenceElement() { 
875      return this.reference != null && !this.reference.isEmpty();
876    }
877
878    public boolean hasReference() { 
879      return this.reference != null && !this.reference.isEmpty();
880    }
881
882    /**
883     * @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
884     */
885    public DetectedIssue setReferenceElement(UriType value) { 
886      this.reference = value;
887      return this;
888    }
889
890    /**
891     * @return The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.
892     */
893    public String getReference() { 
894      return this.reference == null ? null : this.reference.getValue();
895    }
896
897    /**
898     * @param value The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.
899     */
900    public DetectedIssue setReference(String value) { 
901      if (Utilities.noString(value))
902        this.reference = null;
903      else {
904        if (this.reference == null)
905          this.reference = new UriType();
906        this.reference.setValue(value);
907      }
908      return this;
909    }
910
911    /**
912     * @return {@link #mitigation} (Indicates an action that has been taken or is committed to 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.)
913     */
914    public List<DetectedIssueMitigationComponent> getMitigation() { 
915      if (this.mitigation == null)
916        this.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
917      return this.mitigation;
918    }
919
920    public boolean hasMitigation() { 
921      if (this.mitigation == null)
922        return false;
923      for (DetectedIssueMitigationComponent item : this.mitigation)
924        if (!item.isEmpty())
925          return true;
926      return false;
927    }
928
929    /**
930     * @return {@link #mitigation} (Indicates an action that has been taken or is committed to 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.)
931     */
932    // syntactic sugar
933    public DetectedIssueMitigationComponent addMitigation() { //3
934      DetectedIssueMitigationComponent t = new DetectedIssueMitigationComponent();
935      if (this.mitigation == null)
936        this.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
937      this.mitigation.add(t);
938      return t;
939    }
940
941    // syntactic sugar
942    public DetectedIssue addMitigation(DetectedIssueMitigationComponent t) { //3
943      if (t == null)
944        return this;
945      if (this.mitigation == null)
946        this.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
947      this.mitigation.add(t);
948      return this;
949    }
950
951      protected void listChildren(List<Property> childrenList) {
952        super.listChildren(childrenList);
953        childrenList.add(new Property("patient", "Reference(Patient)", "Indicates the patient whose record the detected issue is associated with.", 0, java.lang.Integer.MAX_VALUE, patient));
954        childrenList.add(new Property("category", "CodeableConcept", "Identifies the general type of issue identified.", 0, java.lang.Integer.MAX_VALUE, category));
955        childrenList.add(new Property("severity", "code", "Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.", 0, java.lang.Integer.MAX_VALUE, severity));
956        childrenList.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));
957        childrenList.add(new Property("detail", "string", "A textual explanation of the detected issue.", 0, java.lang.Integer.MAX_VALUE, detail));
958        childrenList.add(new Property("date", "dateTime", "The date or date-time when the detected issue was initially identified.", 0, java.lang.Integer.MAX_VALUE, date));
959        childrenList.add(new Property("author", "Reference(Practitioner|Device)", "Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review.", 0, java.lang.Integer.MAX_VALUE, author));
960        childrenList.add(new Property("identifier", "Identifier", "Business identifier associated with the detected issue record.", 0, java.lang.Integer.MAX_VALUE, identifier));
961        childrenList.add(new Property("reference", "uri", "The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified.", 0, java.lang.Integer.MAX_VALUE, reference));
962        childrenList.add(new Property("mitigation", "", "Indicates an action that has been taken or is committed to 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));
963      }
964
965      @Override
966      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
967        switch (hash) {
968        case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference
969        case 50511102: /*category*/ return this.category == null ? new Base[0] : new Base[] {this.category}; // CodeableConcept
970        case 1478300413: /*severity*/ return this.severity == null ? new Base[0] : new Base[] {this.severity}; // Enumeration<DetectedIssueSeverity>
971        case -810216884: /*implicated*/ return this.implicated == null ? new Base[0] : this.implicated.toArray(new Base[this.implicated.size()]); // Reference
972        case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : new Base[] {this.detail}; // StringType
973        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
974        case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference
975        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // Identifier
976        case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // UriType
977        case 1293793087: /*mitigation*/ return this.mitigation == null ? new Base[0] : this.mitigation.toArray(new Base[this.mitigation.size()]); // DetectedIssueMitigationComponent
978        default: return super.getProperty(hash, name, checkValid);
979        }
980
981      }
982
983      @Override
984      public void setProperty(int hash, String name, Base value) throws FHIRException {
985        switch (hash) {
986        case -791418107: // patient
987          this.patient = castToReference(value); // Reference
988          break;
989        case 50511102: // category
990          this.category = castToCodeableConcept(value); // CodeableConcept
991          break;
992        case 1478300413: // severity
993          this.severity = new DetectedIssueSeverityEnumFactory().fromType(value); // Enumeration<DetectedIssueSeverity>
994          break;
995        case -810216884: // implicated
996          this.getImplicated().add(castToReference(value)); // Reference
997          break;
998        case -1335224239: // detail
999          this.detail = castToString(value); // StringType
1000          break;
1001        case 3076014: // date
1002          this.date = castToDateTime(value); // DateTimeType
1003          break;
1004        case -1406328437: // author
1005          this.author = castToReference(value); // Reference
1006          break;
1007        case -1618432855: // identifier
1008          this.identifier = castToIdentifier(value); // Identifier
1009          break;
1010        case -925155509: // reference
1011          this.reference = castToUri(value); // UriType
1012          break;
1013        case 1293793087: // mitigation
1014          this.getMitigation().add((DetectedIssueMitigationComponent) value); // DetectedIssueMitigationComponent
1015          break;
1016        default: super.setProperty(hash, name, value);
1017        }
1018
1019      }
1020
1021      @Override
1022      public void setProperty(String name, Base value) throws FHIRException {
1023        if (name.equals("patient"))
1024          this.patient = castToReference(value); // Reference
1025        else if (name.equals("category"))
1026          this.category = castToCodeableConcept(value); // CodeableConcept
1027        else if (name.equals("severity"))
1028          this.severity = new DetectedIssueSeverityEnumFactory().fromType(value); // Enumeration<DetectedIssueSeverity>
1029        else if (name.equals("implicated"))
1030          this.getImplicated().add(castToReference(value));
1031        else if (name.equals("detail"))
1032          this.detail = castToString(value); // StringType
1033        else if (name.equals("date"))
1034          this.date = castToDateTime(value); // DateTimeType
1035        else if (name.equals("author"))
1036          this.author = castToReference(value); // Reference
1037        else if (name.equals("identifier"))
1038          this.identifier = castToIdentifier(value); // Identifier
1039        else if (name.equals("reference"))
1040          this.reference = castToUri(value); // UriType
1041        else if (name.equals("mitigation"))
1042          this.getMitigation().add((DetectedIssueMitigationComponent) value);
1043        else
1044          super.setProperty(name, value);
1045      }
1046
1047      @Override
1048      public Base makeProperty(int hash, String name) throws FHIRException {
1049        switch (hash) {
1050        case -791418107:  return getPatient(); // Reference
1051        case 50511102:  return getCategory(); // CodeableConcept
1052        case 1478300413: throw new FHIRException("Cannot make property severity as it is not a complex type"); // Enumeration<DetectedIssueSeverity>
1053        case -810216884:  return addImplicated(); // Reference
1054        case -1335224239: throw new FHIRException("Cannot make property detail as it is not a complex type"); // StringType
1055        case 3076014: throw new FHIRException("Cannot make property date as it is not a complex type"); // DateTimeType
1056        case -1406328437:  return getAuthor(); // Reference
1057        case -1618432855:  return getIdentifier(); // Identifier
1058        case -925155509: throw new FHIRException("Cannot make property reference as it is not a complex type"); // UriType
1059        case 1293793087:  return addMitigation(); // DetectedIssueMitigationComponent
1060        default: return super.makeProperty(hash, name);
1061        }
1062
1063      }
1064
1065      @Override
1066      public Base addChild(String name) throws FHIRException {
1067        if (name.equals("patient")) {
1068          this.patient = new Reference();
1069          return this.patient;
1070        }
1071        else if (name.equals("category")) {
1072          this.category = new CodeableConcept();
1073          return this.category;
1074        }
1075        else if (name.equals("severity")) {
1076          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.severity");
1077        }
1078        else if (name.equals("implicated")) {
1079          return addImplicated();
1080        }
1081        else if (name.equals("detail")) {
1082          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.detail");
1083        }
1084        else if (name.equals("date")) {
1085          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.date");
1086        }
1087        else if (name.equals("author")) {
1088          this.author = new Reference();
1089          return this.author;
1090        }
1091        else if (name.equals("identifier")) {
1092          this.identifier = new Identifier();
1093          return this.identifier;
1094        }
1095        else if (name.equals("reference")) {
1096          throw new FHIRException("Cannot call addChild on a primitive type DetectedIssue.reference");
1097        }
1098        else if (name.equals("mitigation")) {
1099          return addMitigation();
1100        }
1101        else
1102          return super.addChild(name);
1103      }
1104
1105  public String fhirType() {
1106    return "DetectedIssue";
1107
1108  }
1109
1110      public DetectedIssue copy() {
1111        DetectedIssue dst = new DetectedIssue();
1112        copyValues(dst);
1113        dst.patient = patient == null ? null : patient.copy();
1114        dst.category = category == null ? null : category.copy();
1115        dst.severity = severity == null ? null : severity.copy();
1116        if (implicated != null) {
1117          dst.implicated = new ArrayList<Reference>();
1118          for (Reference i : implicated)
1119            dst.implicated.add(i.copy());
1120        };
1121        dst.detail = detail == null ? null : detail.copy();
1122        dst.date = date == null ? null : date.copy();
1123        dst.author = author == null ? null : author.copy();
1124        dst.identifier = identifier == null ? null : identifier.copy();
1125        dst.reference = reference == null ? null : reference.copy();
1126        if (mitigation != null) {
1127          dst.mitigation = new ArrayList<DetectedIssueMitigationComponent>();
1128          for (DetectedIssueMitigationComponent i : mitigation)
1129            dst.mitigation.add(i.copy());
1130        };
1131        return dst;
1132      }
1133
1134      protected DetectedIssue typedCopy() {
1135        return copy();
1136      }
1137
1138      @Override
1139      public boolean equalsDeep(Base other) {
1140        if (!super.equalsDeep(other))
1141          return false;
1142        if (!(other instanceof DetectedIssue))
1143          return false;
1144        DetectedIssue o = (DetectedIssue) other;
1145        return compareDeep(patient, o.patient, true) && compareDeep(category, o.category, true) && compareDeep(severity, o.severity, true)
1146           && compareDeep(implicated, o.implicated, true) && compareDeep(detail, o.detail, true) && compareDeep(date, o.date, true)
1147           && compareDeep(author, o.author, true) && compareDeep(identifier, o.identifier, true) && compareDeep(reference, o.reference, true)
1148           && compareDeep(mitigation, o.mitigation, true);
1149      }
1150
1151      @Override
1152      public boolean equalsShallow(Base other) {
1153        if (!super.equalsShallow(other))
1154          return false;
1155        if (!(other instanceof DetectedIssue))
1156          return false;
1157        DetectedIssue o = (DetectedIssue) other;
1158        return compareValues(severity, o.severity, true) && compareValues(detail, o.detail, true) && compareValues(date, o.date, true)
1159           && compareValues(reference, o.reference, true);
1160      }
1161
1162      public boolean isEmpty() {
1163        return super.isEmpty() && (patient == null || patient.isEmpty()) && (category == null || category.isEmpty())
1164           && (severity == null || severity.isEmpty()) && (implicated == null || implicated.isEmpty())
1165           && (detail == null || detail.isEmpty()) && (date == null || date.isEmpty()) && (author == null || author.isEmpty())
1166           && (identifier == null || identifier.isEmpty()) && (reference == null || reference.isEmpty())
1167           && (mitigation == null || mitigation.isEmpty());
1168      }
1169
1170  @Override
1171  public ResourceType getResourceType() {
1172    return ResourceType.DetectedIssue;
1173   }
1174
1175 /**
1176   * Search parameter: <b>author</b>
1177   * <p>
1178   * Description: <b>The provider or device that identified the issue</b><br>
1179   * Type: <b>reference</b><br>
1180   * Path: <b>DetectedIssue.author</b><br>
1181   * </p>
1182   */
1183  @SearchParamDefinition(name="author", path="DetectedIssue.author", description="The provider or device that identified the issue", type="reference" )
1184  public static final String SP_AUTHOR = "author";
1185 /**
1186   * <b>Fluent Client</b> search parameter constant for <b>author</b>
1187   * <p>
1188   * Description: <b>The provider or device that identified the issue</b><br>
1189   * Type: <b>reference</b><br>
1190   * Path: <b>DetectedIssue.author</b><br>
1191   * </p>
1192   */
1193  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AUTHOR);
1194
1195/**
1196   * Constant for fluent queries to be used to add include statements. Specifies
1197   * the path value of "<b>DetectedIssue:author</b>".
1198   */
1199  public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include("DetectedIssue:author").toLocked();
1200
1201 /**
1202   * Search parameter: <b>category</b>
1203   * <p>
1204   * Description: <b>Issue Category, e.g. drug-drug, duplicate therapy, etc.</b><br>
1205   * Type: <b>token</b><br>
1206   * Path: <b>DetectedIssue.category</b><br>
1207   * </p>
1208   */
1209  @SearchParamDefinition(name="category", path="DetectedIssue.category", description="Issue Category, e.g. drug-drug, duplicate therapy, etc.", type="token" )
1210  public static final String SP_CATEGORY = "category";
1211 /**
1212   * <b>Fluent Client</b> search parameter constant for <b>category</b>
1213   * <p>
1214   * Description: <b>Issue Category, e.g. drug-drug, duplicate therapy, etc.</b><br>
1215   * Type: <b>token</b><br>
1216   * Path: <b>DetectedIssue.category</b><br>
1217   * </p>
1218   */
1219  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY);
1220
1221 /**
1222   * Search parameter: <b>implicated</b>
1223   * <p>
1224   * Description: <b>Problem resource</b><br>
1225   * Type: <b>reference</b><br>
1226   * Path: <b>DetectedIssue.implicated</b><br>
1227   * </p>
1228   */
1229  @SearchParamDefinition(name="implicated", path="DetectedIssue.implicated", description="Problem resource", type="reference" )
1230  public static final String SP_IMPLICATED = "implicated";
1231 /**
1232   * <b>Fluent Client</b> search parameter constant for <b>implicated</b>
1233   * <p>
1234   * Description: <b>Problem resource</b><br>
1235   * Type: <b>reference</b><br>
1236   * Path: <b>DetectedIssue.implicated</b><br>
1237   * </p>
1238   */
1239  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam IMPLICATED = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_IMPLICATED);
1240
1241/**
1242   * Constant for fluent queries to be used to add include statements. Specifies
1243   * the path value of "<b>DetectedIssue:implicated</b>".
1244   */
1245  public static final ca.uhn.fhir.model.api.Include INCLUDE_IMPLICATED = new ca.uhn.fhir.model.api.Include("DetectedIssue:implicated").toLocked();
1246
1247 /**
1248   * Search parameter: <b>patient</b>
1249   * <p>
1250   * Description: <b>Associated patient</b><br>
1251   * Type: <b>reference</b><br>
1252   * Path: <b>DetectedIssue.patient</b><br>
1253   * </p>
1254   */
1255  @SearchParamDefinition(name="patient", path="DetectedIssue.patient", description="Associated patient", type="reference" )
1256  public static final String SP_PATIENT = "patient";
1257 /**
1258   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1259   * <p>
1260   * Description: <b>Associated patient</b><br>
1261   * Type: <b>reference</b><br>
1262   * Path: <b>DetectedIssue.patient</b><br>
1263   * </p>
1264   */
1265  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1266
1267/**
1268   * Constant for fluent queries to be used to add include statements. Specifies
1269   * the path value of "<b>DetectedIssue:patient</b>".
1270   */
1271  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("DetectedIssue:patient").toLocked();
1272
1273 /**
1274   * Search parameter: <b>date</b>
1275   * <p>
1276   * Description: <b>When identified</b><br>
1277   * Type: <b>date</b><br>
1278   * Path: <b>DetectedIssue.date</b><br>
1279   * </p>
1280   */
1281  @SearchParamDefinition(name="date", path="DetectedIssue.date", description="When identified", type="date" )
1282  public static final String SP_DATE = "date";
1283 /**
1284   * <b>Fluent Client</b> search parameter constant for <b>date</b>
1285   * <p>
1286   * Description: <b>When identified</b><br>
1287   * Type: <b>date</b><br>
1288   * Path: <b>DetectedIssue.date</b><br>
1289   * </p>
1290   */
1291  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
1292
1293 /**
1294   * Search parameter: <b>identifier</b>
1295   * <p>
1296   * Description: <b>Unique id for the detected issue</b><br>
1297   * Type: <b>token</b><br>
1298   * Path: <b>DetectedIssue.identifier</b><br>
1299   * </p>
1300   */
1301  @SearchParamDefinition(name="identifier", path="DetectedIssue.identifier", description="Unique id for the detected issue", type="token" )
1302  public static final String SP_IDENTIFIER = "identifier";
1303 /**
1304   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1305   * <p>
1306   * Description: <b>Unique id for the detected issue</b><br>
1307   * Type: <b>token</b><br>
1308   * Path: <b>DetectedIssue.identifier</b><br>
1309   * </p>
1310   */
1311  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1312
1313
1314}