001package org.hl7.fhir.r4.model;
002
003
004
005/*
006  Copyright (c) 2011+, HL7, Inc.
007  All rights reserved.
008  
009  Redistribution and use in source and binary forms, with or without modification, 
010  are permitted provided that the following conditions are met:
011  
012   * Redistributions of source code must retain the above copyright notice, this 
013     list of conditions and the following disclaimer.
014   * Redistributions in binary form must reproduce the above copyright notice, 
015     this list of conditions and the following disclaimer in the documentation 
016     and/or other materials provided with the distribution.
017   * Neither the name of HL7 nor the names of its contributors may be used to 
018     endorse or promote products derived from this software without specific 
019     prior written permission.
020  
021  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
022  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
023  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
024  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
025  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
026  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
027  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
028  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
029  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
030  POSSIBILITY OF SUCH DAMAGE.
031  
032*/
033
034
035// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1
036
037import java.util.*;
038
039import org.hl7.fhir.utilities.Utilities;
040import ca.uhn.fhir.model.api.annotation.ResourceDef;
041import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
042import ca.uhn.fhir.model.api.annotation.Child;
043import ca.uhn.fhir.model.api.annotation.ChildOrder;
044import ca.uhn.fhir.model.api.annotation.Description;
045import ca.uhn.fhir.model.api.annotation.Block;
046import org.hl7.fhir.instance.model.api.*;
047import org.hl7.fhir.exceptions.FHIRException;
048/**
049 * A physical entity which is the primary unit of operational and/or administrative interest in a study.
050 */
051@ResourceDef(name="ResearchSubject", profile="http://hl7.org/fhir/StructureDefinition/ResearchSubject")
052public class ResearchSubject extends DomainResource {
053
054    public enum ResearchSubjectStatus {
055        /**
056         * An identified person that can be considered for inclusion in a study.
057         */
058        CANDIDATE, 
059        /**
060         * A person that has met the eligibility criteria for inclusion in a study.
061         */
062        ELIGIBLE, 
063        /**
064         * A person is no longer receiving study intervention and/or being evaluated with tests and procedures according to the protocol, but they are being monitored on a protocol-prescribed schedule.
065         */
066        FOLLOWUP, 
067        /**
068         * A person who did not meet one or more criteria required for participation in a study is considered to have failed screening or
069is ineligible for the study.
070         */
071        INELIGIBLE, 
072        /**
073         * A person for whom registration was not completed.
074         */
075        NOTREGISTERED, 
076        /**
077         * A person that has ended their participation on a study either because their treatment/observation is complete or through not
078responding, withdrawal, non-compliance and/or adverse event.
079         */
080        OFFSTUDY, 
081        /**
082         * A person that is enrolled or registered on a study.
083         */
084        ONSTUDY, 
085        /**
086         * The person is receiving the treatment or participating in an activity (e.g. yoga, diet, etc.) that the study is evaluating.
087         */
088        ONSTUDYINTERVENTION, 
089        /**
090         * The subject is being evaluated via tests and assessments according to the study calendar, but is not receiving any intervention. Note that this state is study-dependent and might not exist in all studies.  A synonym for this is "short-term follow-up".
091         */
092        ONSTUDYOBSERVATION, 
093        /**
094         * A person is pre-registered for a study.
095         */
096        PENDINGONSTUDY, 
097        /**
098         * A person that is potentially eligible for participation in the study.
099         */
100        POTENTIALCANDIDATE, 
101        /**
102         * A person who is being evaluated for eligibility for a study.
103         */
104        SCREENING, 
105        /**
106         * The person has withdrawn their participation in the study before registration.
107         */
108        WITHDRAWN, 
109        /**
110         * added to help the parsers with the generic types
111         */
112        NULL;
113        public static ResearchSubjectStatus fromCode(String codeString) throws FHIRException {
114            if (codeString == null || "".equals(codeString))
115                return null;
116        if ("candidate".equals(codeString))
117          return CANDIDATE;
118        if ("eligible".equals(codeString))
119          return ELIGIBLE;
120        if ("follow-up".equals(codeString))
121          return FOLLOWUP;
122        if ("ineligible".equals(codeString))
123          return INELIGIBLE;
124        if ("not-registered".equals(codeString))
125          return NOTREGISTERED;
126        if ("off-study".equals(codeString))
127          return OFFSTUDY;
128        if ("on-study".equals(codeString))
129          return ONSTUDY;
130        if ("on-study-intervention".equals(codeString))
131          return ONSTUDYINTERVENTION;
132        if ("on-study-observation".equals(codeString))
133          return ONSTUDYOBSERVATION;
134        if ("pending-on-study".equals(codeString))
135          return PENDINGONSTUDY;
136        if ("potential-candidate".equals(codeString))
137          return POTENTIALCANDIDATE;
138        if ("screening".equals(codeString))
139          return SCREENING;
140        if ("withdrawn".equals(codeString))
141          return WITHDRAWN;
142        if (Configuration.isAcceptInvalidEnums())
143          return null;
144        else
145          throw new FHIRException("Unknown ResearchSubjectStatus code '"+codeString+"'");
146        }
147        public String toCode() {
148          switch (this) {
149            case CANDIDATE: return "candidate";
150            case ELIGIBLE: return "eligible";
151            case FOLLOWUP: return "follow-up";
152            case INELIGIBLE: return "ineligible";
153            case NOTREGISTERED: return "not-registered";
154            case OFFSTUDY: return "off-study";
155            case ONSTUDY: return "on-study";
156            case ONSTUDYINTERVENTION: return "on-study-intervention";
157            case ONSTUDYOBSERVATION: return "on-study-observation";
158            case PENDINGONSTUDY: return "pending-on-study";
159            case POTENTIALCANDIDATE: return "potential-candidate";
160            case SCREENING: return "screening";
161            case WITHDRAWN: return "withdrawn";
162            case NULL: return null;
163            default: return "?";
164          }
165        }
166        public String getSystem() {
167          switch (this) {
168            case CANDIDATE: return "http://hl7.org/fhir/research-subject-status";
169            case ELIGIBLE: return "http://hl7.org/fhir/research-subject-status";
170            case FOLLOWUP: return "http://hl7.org/fhir/research-subject-status";
171            case INELIGIBLE: return "http://hl7.org/fhir/research-subject-status";
172            case NOTREGISTERED: return "http://hl7.org/fhir/research-subject-status";
173            case OFFSTUDY: return "http://hl7.org/fhir/research-subject-status";
174            case ONSTUDY: return "http://hl7.org/fhir/research-subject-status";
175            case ONSTUDYINTERVENTION: return "http://hl7.org/fhir/research-subject-status";
176            case ONSTUDYOBSERVATION: return "http://hl7.org/fhir/research-subject-status";
177            case PENDINGONSTUDY: return "http://hl7.org/fhir/research-subject-status";
178            case POTENTIALCANDIDATE: return "http://hl7.org/fhir/research-subject-status";
179            case SCREENING: return "http://hl7.org/fhir/research-subject-status";
180            case WITHDRAWN: return "http://hl7.org/fhir/research-subject-status";
181            case NULL: return null;
182            default: return "?";
183          }
184        }
185        public String getDefinition() {
186          switch (this) {
187            case CANDIDATE: return "An identified person that can be considered for inclusion in a study.";
188            case ELIGIBLE: return "A person that has met the eligibility criteria for inclusion in a study.";
189            case FOLLOWUP: return "A person is no longer receiving study intervention and/or being evaluated with tests and procedures according to the protocol, but they are being monitored on a protocol-prescribed schedule.";
190            case INELIGIBLE: return "A person who did not meet one or more criteria required for participation in a study is considered to have failed screening or\nis ineligible for the study.";
191            case NOTREGISTERED: return "A person for whom registration was not completed.";
192            case OFFSTUDY: return "A person that has ended their participation on a study either because their treatment/observation is complete or through not\nresponding, withdrawal, non-compliance and/or adverse event.";
193            case ONSTUDY: return "A person that is enrolled or registered on a study.";
194            case ONSTUDYINTERVENTION: return "The person is receiving the treatment or participating in an activity (e.g. yoga, diet, etc.) that the study is evaluating.";
195            case ONSTUDYOBSERVATION: return "The subject is being evaluated via tests and assessments according to the study calendar, but is not receiving any intervention. Note that this state is study-dependent and might not exist in all studies.  A synonym for this is \"short-term follow-up\".";
196            case PENDINGONSTUDY: return "A person is pre-registered for a study.";
197            case POTENTIALCANDIDATE: return "A person that is potentially eligible for participation in the study.";
198            case SCREENING: return "A person who is being evaluated for eligibility for a study.";
199            case WITHDRAWN: return "The person has withdrawn their participation in the study before registration.";
200            case NULL: return null;
201            default: return "?";
202          }
203        }
204        public String getDisplay() {
205          switch (this) {
206            case CANDIDATE: return "Candidate";
207            case ELIGIBLE: return "Eligible";
208            case FOLLOWUP: return "Follow-up";
209            case INELIGIBLE: return "Ineligible";
210            case NOTREGISTERED: return "Not Registered";
211            case OFFSTUDY: return "Off-study";
212            case ONSTUDY: return "On-study";
213            case ONSTUDYINTERVENTION: return "On-study-intervention";
214            case ONSTUDYOBSERVATION: return "On-study-observation";
215            case PENDINGONSTUDY: return "Pending on-study";
216            case POTENTIALCANDIDATE: return "Potential Candidate";
217            case SCREENING: return "Screening";
218            case WITHDRAWN: return "Withdrawn";
219            case NULL: return null;
220            default: return "?";
221          }
222        }
223    }
224
225  public static class ResearchSubjectStatusEnumFactory implements EnumFactory<ResearchSubjectStatus> {
226    public ResearchSubjectStatus fromCode(String codeString) throws IllegalArgumentException {
227      if (codeString == null || "".equals(codeString))
228            if (codeString == null || "".equals(codeString))
229                return null;
230        if ("candidate".equals(codeString))
231          return ResearchSubjectStatus.CANDIDATE;
232        if ("eligible".equals(codeString))
233          return ResearchSubjectStatus.ELIGIBLE;
234        if ("follow-up".equals(codeString))
235          return ResearchSubjectStatus.FOLLOWUP;
236        if ("ineligible".equals(codeString))
237          return ResearchSubjectStatus.INELIGIBLE;
238        if ("not-registered".equals(codeString))
239          return ResearchSubjectStatus.NOTREGISTERED;
240        if ("off-study".equals(codeString))
241          return ResearchSubjectStatus.OFFSTUDY;
242        if ("on-study".equals(codeString))
243          return ResearchSubjectStatus.ONSTUDY;
244        if ("on-study-intervention".equals(codeString))
245          return ResearchSubjectStatus.ONSTUDYINTERVENTION;
246        if ("on-study-observation".equals(codeString))
247          return ResearchSubjectStatus.ONSTUDYOBSERVATION;
248        if ("pending-on-study".equals(codeString))
249          return ResearchSubjectStatus.PENDINGONSTUDY;
250        if ("potential-candidate".equals(codeString))
251          return ResearchSubjectStatus.POTENTIALCANDIDATE;
252        if ("screening".equals(codeString))
253          return ResearchSubjectStatus.SCREENING;
254        if ("withdrawn".equals(codeString))
255          return ResearchSubjectStatus.WITHDRAWN;
256        throw new IllegalArgumentException("Unknown ResearchSubjectStatus code '"+codeString+"'");
257        }
258        public Enumeration<ResearchSubjectStatus> fromType(Base code) throws FHIRException {
259          if (code == null)
260            return null;
261          if (code.isEmpty())
262            return new Enumeration<ResearchSubjectStatus>(this);
263          String codeString = ((PrimitiveType) code).asStringValue();
264          if (codeString == null || "".equals(codeString))
265            return null;
266        if ("candidate".equals(codeString))
267          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.CANDIDATE);
268        if ("eligible".equals(codeString))
269          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.ELIGIBLE);
270        if ("follow-up".equals(codeString))
271          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.FOLLOWUP);
272        if ("ineligible".equals(codeString))
273          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.INELIGIBLE);
274        if ("not-registered".equals(codeString))
275          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.NOTREGISTERED);
276        if ("off-study".equals(codeString))
277          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.OFFSTUDY);
278        if ("on-study".equals(codeString))
279          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.ONSTUDY);
280        if ("on-study-intervention".equals(codeString))
281          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.ONSTUDYINTERVENTION);
282        if ("on-study-observation".equals(codeString))
283          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.ONSTUDYOBSERVATION);
284        if ("pending-on-study".equals(codeString))
285          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.PENDINGONSTUDY);
286        if ("potential-candidate".equals(codeString))
287          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.POTENTIALCANDIDATE);
288        if ("screening".equals(codeString))
289          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.SCREENING);
290        if ("withdrawn".equals(codeString))
291          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.WITHDRAWN);
292        throw new FHIRException("Unknown ResearchSubjectStatus code '"+codeString+"'");
293        }
294    public String toCode(ResearchSubjectStatus code) {
295      if (code == ResearchSubjectStatus.CANDIDATE)
296        return "candidate";
297      if (code == ResearchSubjectStatus.ELIGIBLE)
298        return "eligible";
299      if (code == ResearchSubjectStatus.FOLLOWUP)
300        return "follow-up";
301      if (code == ResearchSubjectStatus.INELIGIBLE)
302        return "ineligible";
303      if (code == ResearchSubjectStatus.NOTREGISTERED)
304        return "not-registered";
305      if (code == ResearchSubjectStatus.OFFSTUDY)
306        return "off-study";
307      if (code == ResearchSubjectStatus.ONSTUDY)
308        return "on-study";
309      if (code == ResearchSubjectStatus.ONSTUDYINTERVENTION)
310        return "on-study-intervention";
311      if (code == ResearchSubjectStatus.ONSTUDYOBSERVATION)
312        return "on-study-observation";
313      if (code == ResearchSubjectStatus.PENDINGONSTUDY)
314        return "pending-on-study";
315      if (code == ResearchSubjectStatus.POTENTIALCANDIDATE)
316        return "potential-candidate";
317      if (code == ResearchSubjectStatus.SCREENING)
318        return "screening";
319      if (code == ResearchSubjectStatus.WITHDRAWN)
320        return "withdrawn";
321      return "?";
322      }
323    public String toSystem(ResearchSubjectStatus code) {
324      return code.getSystem();
325      }
326    }
327
328    /**
329     * Identifiers assigned to this research subject for a study.
330     */
331    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
332    @Description(shortDefinition="Business Identifier for research subject in a study", formalDefinition="Identifiers assigned to this research subject for a study." )
333    protected List<Identifier> identifier;
334
335    /**
336     * The current state of the subject.
337     */
338    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
339    @Description(shortDefinition="candidate | eligible | follow-up | ineligible | not-registered | off-study | on-study | on-study-intervention | on-study-observation | pending-on-study | potential-candidate | screening | withdrawn", formalDefinition="The current state of the subject." )
340    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-subject-status")
341    protected Enumeration<ResearchSubjectStatus> status;
342
343    /**
344     * The dates the subject began and ended their participation in the study.
345     */
346    @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=true)
347    @Description(shortDefinition="Start and end of participation", formalDefinition="The dates the subject began and ended their participation in the study." )
348    protected Period period;
349
350    /**
351     * Reference to the study the subject is participating in.
352     */
353    @Child(name = "study", type = {ResearchStudy.class}, order=3, min=1, max=1, modifier=false, summary=true)
354    @Description(shortDefinition="Study subject is part of", formalDefinition="Reference to the study the subject is participating in." )
355    protected Reference study;
356
357    /**
358     * The actual object that is the target of the reference (Reference to the study the subject is participating in.)
359     */
360    protected ResearchStudy studyTarget;
361
362    /**
363     * The record of the person or animal who is involved in the study.
364     */
365    @Child(name = "individual", type = {Patient.class}, order=4, min=1, max=1, modifier=false, summary=true)
366    @Description(shortDefinition="Who is part of study", formalDefinition="The record of the person or animal who is involved in the study." )
367    protected Reference individual;
368
369    /**
370     * The actual object that is the target of the reference (The record of the person or animal who is involved in the study.)
371     */
372    protected Patient individualTarget;
373
374    /**
375     * The name of the arm in the study the subject is expected to follow as part of this study.
376     */
377    @Child(name = "assignedArm", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false)
378    @Description(shortDefinition="What path should be followed", formalDefinition="The name of the arm in the study the subject is expected to follow as part of this study." )
379    protected StringType assignedArm;
380
381    /**
382     * The name of the arm in the study the subject actually followed as part of this study.
383     */
384    @Child(name = "actualArm", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false)
385    @Description(shortDefinition="What path was followed", formalDefinition="The name of the arm in the study the subject actually followed as part of this study." )
386    protected StringType actualArm;
387
388    /**
389     * A record of the patient's informed agreement to participate in the study.
390     */
391    @Child(name = "consent", type = {Consent.class}, order=7, min=0, max=1, modifier=false, summary=false)
392    @Description(shortDefinition="Agreement to participate in study", formalDefinition="A record of the patient's informed agreement to participate in the study." )
393    protected Reference consent;
394
395    /**
396     * The actual object that is the target of the reference (A record of the patient's informed agreement to participate in the study.)
397     */
398    protected Consent consentTarget;
399
400    private static final long serialVersionUID = -884133739L;
401
402  /**
403   * Constructor
404   */
405    public ResearchSubject() {
406      super();
407    }
408
409  /**
410   * Constructor
411   */
412    public ResearchSubject(Enumeration<ResearchSubjectStatus> status, Reference study, Reference individual) {
413      super();
414      this.status = status;
415      this.study = study;
416      this.individual = individual;
417    }
418
419    /**
420     * @return {@link #identifier} (Identifiers assigned to this research subject for a study.)
421     */
422    public List<Identifier> getIdentifier() { 
423      if (this.identifier == null)
424        this.identifier = new ArrayList<Identifier>();
425      return this.identifier;
426    }
427
428    /**
429     * @return Returns a reference to <code>this</code> for easy method chaining
430     */
431    public ResearchSubject setIdentifier(List<Identifier> theIdentifier) { 
432      this.identifier = theIdentifier;
433      return this;
434    }
435
436    public boolean hasIdentifier() { 
437      if (this.identifier == null)
438        return false;
439      for (Identifier item : this.identifier)
440        if (!item.isEmpty())
441          return true;
442      return false;
443    }
444
445    public Identifier addIdentifier() { //3
446      Identifier t = new Identifier();
447      if (this.identifier == null)
448        this.identifier = new ArrayList<Identifier>();
449      this.identifier.add(t);
450      return t;
451    }
452
453    public ResearchSubject addIdentifier(Identifier t) { //3
454      if (t == null)
455        return this;
456      if (this.identifier == null)
457        this.identifier = new ArrayList<Identifier>();
458      this.identifier.add(t);
459      return this;
460    }
461
462    /**
463     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
464     */
465    public Identifier getIdentifierFirstRep() { 
466      if (getIdentifier().isEmpty()) {
467        addIdentifier();
468      }
469      return getIdentifier().get(0);
470    }
471
472    /**
473     * @return {@link #status} (The current state of the subject.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
474     */
475    public Enumeration<ResearchSubjectStatus> getStatusElement() { 
476      if (this.status == null)
477        if (Configuration.errorOnAutoCreate())
478          throw new Error("Attempt to auto-create ResearchSubject.status");
479        else if (Configuration.doAutoCreate())
480          this.status = new Enumeration<ResearchSubjectStatus>(new ResearchSubjectStatusEnumFactory()); // bb
481      return this.status;
482    }
483
484    public boolean hasStatusElement() { 
485      return this.status != null && !this.status.isEmpty();
486    }
487
488    public boolean hasStatus() { 
489      return this.status != null && !this.status.isEmpty();
490    }
491
492    /**
493     * @param value {@link #status} (The current state of the subject.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
494     */
495    public ResearchSubject setStatusElement(Enumeration<ResearchSubjectStatus> value) { 
496      this.status = value;
497      return this;
498    }
499
500    /**
501     * @return The current state of the subject.
502     */
503    public ResearchSubjectStatus getStatus() { 
504      return this.status == null ? null : this.status.getValue();
505    }
506
507    /**
508     * @param value The current state of the subject.
509     */
510    public ResearchSubject setStatus(ResearchSubjectStatus value) { 
511        if (this.status == null)
512          this.status = new Enumeration<ResearchSubjectStatus>(new ResearchSubjectStatusEnumFactory());
513        this.status.setValue(value);
514      return this;
515    }
516
517    /**
518     * @return {@link #period} (The dates the subject began and ended their participation in the study.)
519     */
520    public Period getPeriod() { 
521      if (this.period == null)
522        if (Configuration.errorOnAutoCreate())
523          throw new Error("Attempt to auto-create ResearchSubject.period");
524        else if (Configuration.doAutoCreate())
525          this.period = new Period(); // cc
526      return this.period;
527    }
528
529    public boolean hasPeriod() { 
530      return this.period != null && !this.period.isEmpty();
531    }
532
533    /**
534     * @param value {@link #period} (The dates the subject began and ended their participation in the study.)
535     */
536    public ResearchSubject setPeriod(Period value) { 
537      this.period = value;
538      return this;
539    }
540
541    /**
542     * @return {@link #study} (Reference to the study the subject is participating in.)
543     */
544    public Reference getStudy() { 
545      if (this.study == null)
546        if (Configuration.errorOnAutoCreate())
547          throw new Error("Attempt to auto-create ResearchSubject.study");
548        else if (Configuration.doAutoCreate())
549          this.study = new Reference(); // cc
550      return this.study;
551    }
552
553    public boolean hasStudy() { 
554      return this.study != null && !this.study.isEmpty();
555    }
556
557    /**
558     * @param value {@link #study} (Reference to the study the subject is participating in.)
559     */
560    public ResearchSubject setStudy(Reference value) { 
561      this.study = value;
562      return this;
563    }
564
565    /**
566     * @return {@link #study} 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. (Reference to the study the subject is participating in.)
567     */
568    public ResearchStudy getStudyTarget() { 
569      if (this.studyTarget == null)
570        if (Configuration.errorOnAutoCreate())
571          throw new Error("Attempt to auto-create ResearchSubject.study");
572        else if (Configuration.doAutoCreate())
573          this.studyTarget = new ResearchStudy(); // aa
574      return this.studyTarget;
575    }
576
577    /**
578     * @param value {@link #study} 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. (Reference to the study the subject is participating in.)
579     */
580    public ResearchSubject setStudyTarget(ResearchStudy value) { 
581      this.studyTarget = value;
582      return this;
583    }
584
585    /**
586     * @return {@link #individual} (The record of the person or animal who is involved in the study.)
587     */
588    public Reference getIndividual() { 
589      if (this.individual == null)
590        if (Configuration.errorOnAutoCreate())
591          throw new Error("Attempt to auto-create ResearchSubject.individual");
592        else if (Configuration.doAutoCreate())
593          this.individual = new Reference(); // cc
594      return this.individual;
595    }
596
597    public boolean hasIndividual() { 
598      return this.individual != null && !this.individual.isEmpty();
599    }
600
601    /**
602     * @param value {@link #individual} (The record of the person or animal who is involved in the study.)
603     */
604    public ResearchSubject setIndividual(Reference value) { 
605      this.individual = value;
606      return this;
607    }
608
609    /**
610     * @return {@link #individual} 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. (The record of the person or animal who is involved in the study.)
611     */
612    public Patient getIndividualTarget() { 
613      if (this.individualTarget == null)
614        if (Configuration.errorOnAutoCreate())
615          throw new Error("Attempt to auto-create ResearchSubject.individual");
616        else if (Configuration.doAutoCreate())
617          this.individualTarget = new Patient(); // aa
618      return this.individualTarget;
619    }
620
621    /**
622     * @param value {@link #individual} 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. (The record of the person or animal who is involved in the study.)
623     */
624    public ResearchSubject setIndividualTarget(Patient value) { 
625      this.individualTarget = value;
626      return this;
627    }
628
629    /**
630     * @return {@link #assignedArm} (The name of the arm in the study the subject is expected to follow as part of this study.). This is the underlying object with id, value and extensions. The accessor "getAssignedArm" gives direct access to the value
631     */
632    public StringType getAssignedArmElement() { 
633      if (this.assignedArm == null)
634        if (Configuration.errorOnAutoCreate())
635          throw new Error("Attempt to auto-create ResearchSubject.assignedArm");
636        else if (Configuration.doAutoCreate())
637          this.assignedArm = new StringType(); // bb
638      return this.assignedArm;
639    }
640
641    public boolean hasAssignedArmElement() { 
642      return this.assignedArm != null && !this.assignedArm.isEmpty();
643    }
644
645    public boolean hasAssignedArm() { 
646      return this.assignedArm != null && !this.assignedArm.isEmpty();
647    }
648
649    /**
650     * @param value {@link #assignedArm} (The name of the arm in the study the subject is expected to follow as part of this study.). This is the underlying object with id, value and extensions. The accessor "getAssignedArm" gives direct access to the value
651     */
652    public ResearchSubject setAssignedArmElement(StringType value) { 
653      this.assignedArm = value;
654      return this;
655    }
656
657    /**
658     * @return The name of the arm in the study the subject is expected to follow as part of this study.
659     */
660    public String getAssignedArm() { 
661      return this.assignedArm == null ? null : this.assignedArm.getValue();
662    }
663
664    /**
665     * @param value The name of the arm in the study the subject is expected to follow as part of this study.
666     */
667    public ResearchSubject setAssignedArm(String value) { 
668      if (Utilities.noString(value))
669        this.assignedArm = null;
670      else {
671        if (this.assignedArm == null)
672          this.assignedArm = new StringType();
673        this.assignedArm.setValue(value);
674      }
675      return this;
676    }
677
678    /**
679     * @return {@link #actualArm} (The name of the arm in the study the subject actually followed as part of this study.). This is the underlying object with id, value and extensions. The accessor "getActualArm" gives direct access to the value
680     */
681    public StringType getActualArmElement() { 
682      if (this.actualArm == null)
683        if (Configuration.errorOnAutoCreate())
684          throw new Error("Attempt to auto-create ResearchSubject.actualArm");
685        else if (Configuration.doAutoCreate())
686          this.actualArm = new StringType(); // bb
687      return this.actualArm;
688    }
689
690    public boolean hasActualArmElement() { 
691      return this.actualArm != null && !this.actualArm.isEmpty();
692    }
693
694    public boolean hasActualArm() { 
695      return this.actualArm != null && !this.actualArm.isEmpty();
696    }
697
698    /**
699     * @param value {@link #actualArm} (The name of the arm in the study the subject actually followed as part of this study.). This is the underlying object with id, value and extensions. The accessor "getActualArm" gives direct access to the value
700     */
701    public ResearchSubject setActualArmElement(StringType value) { 
702      this.actualArm = value;
703      return this;
704    }
705
706    /**
707     * @return The name of the arm in the study the subject actually followed as part of this study.
708     */
709    public String getActualArm() { 
710      return this.actualArm == null ? null : this.actualArm.getValue();
711    }
712
713    /**
714     * @param value The name of the arm in the study the subject actually followed as part of this study.
715     */
716    public ResearchSubject setActualArm(String value) { 
717      if (Utilities.noString(value))
718        this.actualArm = null;
719      else {
720        if (this.actualArm == null)
721          this.actualArm = new StringType();
722        this.actualArm.setValue(value);
723      }
724      return this;
725    }
726
727    /**
728     * @return {@link #consent} (A record of the patient's informed agreement to participate in the study.)
729     */
730    public Reference getConsent() { 
731      if (this.consent == null)
732        if (Configuration.errorOnAutoCreate())
733          throw new Error("Attempt to auto-create ResearchSubject.consent");
734        else if (Configuration.doAutoCreate())
735          this.consent = new Reference(); // cc
736      return this.consent;
737    }
738
739    public boolean hasConsent() { 
740      return this.consent != null && !this.consent.isEmpty();
741    }
742
743    /**
744     * @param value {@link #consent} (A record of the patient's informed agreement to participate in the study.)
745     */
746    public ResearchSubject setConsent(Reference value) { 
747      this.consent = value;
748      return this;
749    }
750
751    /**
752     * @return {@link #consent} 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. (A record of the patient's informed agreement to participate in the study.)
753     */
754    public Consent getConsentTarget() { 
755      if (this.consentTarget == null)
756        if (Configuration.errorOnAutoCreate())
757          throw new Error("Attempt to auto-create ResearchSubject.consent");
758        else if (Configuration.doAutoCreate())
759          this.consentTarget = new Consent(); // aa
760      return this.consentTarget;
761    }
762
763    /**
764     * @param value {@link #consent} 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. (A record of the patient's informed agreement to participate in the study.)
765     */
766    public ResearchSubject setConsentTarget(Consent value) { 
767      this.consentTarget = value;
768      return this;
769    }
770
771      protected void listChildren(List<Property> children) {
772        super.listChildren(children);
773        children.add(new Property("identifier", "Identifier", "Identifiers assigned to this research subject for a study.", 0, java.lang.Integer.MAX_VALUE, identifier));
774        children.add(new Property("status", "code", "The current state of the subject.", 0, 1, status));
775        children.add(new Property("period", "Period", "The dates the subject began and ended their participation in the study.", 0, 1, period));
776        children.add(new Property("study", "Reference(ResearchStudy)", "Reference to the study the subject is participating in.", 0, 1, study));
777        children.add(new Property("individual", "Reference(Patient)", "The record of the person or animal who is involved in the study.", 0, 1, individual));
778        children.add(new Property("assignedArm", "string", "The name of the arm in the study the subject is expected to follow as part of this study.", 0, 1, assignedArm));
779        children.add(new Property("actualArm", "string", "The name of the arm in the study the subject actually followed as part of this study.", 0, 1, actualArm));
780        children.add(new Property("consent", "Reference(Consent)", "A record of the patient's informed agreement to participate in the study.", 0, 1, consent));
781      }
782
783      @Override
784      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
785        switch (_hash) {
786        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifiers assigned to this research subject for a study.", 0, java.lang.Integer.MAX_VALUE, identifier);
787        case -892481550: /*status*/  return new Property("status", "code", "The current state of the subject.", 0, 1, status);
788        case -991726143: /*period*/  return new Property("period", "Period", "The dates the subject began and ended their participation in the study.", 0, 1, period);
789        case 109776329: /*study*/  return new Property("study", "Reference(ResearchStudy)", "Reference to the study the subject is participating in.", 0, 1, study);
790        case -46292327: /*individual*/  return new Property("individual", "Reference(Patient)", "The record of the person or animal who is involved in the study.", 0, 1, individual);
791        case 1741912494: /*assignedArm*/  return new Property("assignedArm", "string", "The name of the arm in the study the subject is expected to follow as part of this study.", 0, 1, assignedArm);
792        case 528827886: /*actualArm*/  return new Property("actualArm", "string", "The name of the arm in the study the subject actually followed as part of this study.", 0, 1, actualArm);
793        case 951500826: /*consent*/  return new Property("consent", "Reference(Consent)", "A record of the patient's informed agreement to participate in the study.", 0, 1, consent);
794        default: return super.getNamedProperty(_hash, _name, _checkValid);
795        }
796
797      }
798
799      @Override
800      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
801        switch (hash) {
802        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
803        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ResearchSubjectStatus>
804        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
805        case 109776329: /*study*/ return this.study == null ? new Base[0] : new Base[] {this.study}; // Reference
806        case -46292327: /*individual*/ return this.individual == null ? new Base[0] : new Base[] {this.individual}; // Reference
807        case 1741912494: /*assignedArm*/ return this.assignedArm == null ? new Base[0] : new Base[] {this.assignedArm}; // StringType
808        case 528827886: /*actualArm*/ return this.actualArm == null ? new Base[0] : new Base[] {this.actualArm}; // StringType
809        case 951500826: /*consent*/ return this.consent == null ? new Base[0] : new Base[] {this.consent}; // Reference
810        default: return super.getProperty(hash, name, checkValid);
811        }
812
813      }
814
815      @Override
816      public Base setProperty(int hash, String name, Base value) throws FHIRException {
817        switch (hash) {
818        case -1618432855: // identifier
819          this.getIdentifier().add(castToIdentifier(value)); // Identifier
820          return value;
821        case -892481550: // status
822          value = new ResearchSubjectStatusEnumFactory().fromType(castToCode(value));
823          this.status = (Enumeration) value; // Enumeration<ResearchSubjectStatus>
824          return value;
825        case -991726143: // period
826          this.period = castToPeriod(value); // Period
827          return value;
828        case 109776329: // study
829          this.study = castToReference(value); // Reference
830          return value;
831        case -46292327: // individual
832          this.individual = castToReference(value); // Reference
833          return value;
834        case 1741912494: // assignedArm
835          this.assignedArm = castToString(value); // StringType
836          return value;
837        case 528827886: // actualArm
838          this.actualArm = castToString(value); // StringType
839          return value;
840        case 951500826: // consent
841          this.consent = castToReference(value); // Reference
842          return value;
843        default: return super.setProperty(hash, name, value);
844        }
845
846      }
847
848      @Override
849      public Base setProperty(String name, Base value) throws FHIRException {
850        if (name.equals("identifier")) {
851          this.getIdentifier().add(castToIdentifier(value));
852        } else if (name.equals("status")) {
853          value = new ResearchSubjectStatusEnumFactory().fromType(castToCode(value));
854          this.status = (Enumeration) value; // Enumeration<ResearchSubjectStatus>
855        } else if (name.equals("period")) {
856          this.period = castToPeriod(value); // Period
857        } else if (name.equals("study")) {
858          this.study = castToReference(value); // Reference
859        } else if (name.equals("individual")) {
860          this.individual = castToReference(value); // Reference
861        } else if (name.equals("assignedArm")) {
862          this.assignedArm = castToString(value); // StringType
863        } else if (name.equals("actualArm")) {
864          this.actualArm = castToString(value); // StringType
865        } else if (name.equals("consent")) {
866          this.consent = castToReference(value); // Reference
867        } else
868          return super.setProperty(name, value);
869        return value;
870      }
871
872      @Override
873      public Base makeProperty(int hash, String name) throws FHIRException {
874        switch (hash) {
875        case -1618432855:  return addIdentifier(); 
876        case -892481550:  return getStatusElement();
877        case -991726143:  return getPeriod(); 
878        case 109776329:  return getStudy(); 
879        case -46292327:  return getIndividual(); 
880        case 1741912494:  return getAssignedArmElement();
881        case 528827886:  return getActualArmElement();
882        case 951500826:  return getConsent(); 
883        default: return super.makeProperty(hash, name);
884        }
885
886      }
887
888      @Override
889      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
890        switch (hash) {
891        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
892        case -892481550: /*status*/ return new String[] {"code"};
893        case -991726143: /*period*/ return new String[] {"Period"};
894        case 109776329: /*study*/ return new String[] {"Reference"};
895        case -46292327: /*individual*/ return new String[] {"Reference"};
896        case 1741912494: /*assignedArm*/ return new String[] {"string"};
897        case 528827886: /*actualArm*/ return new String[] {"string"};
898        case 951500826: /*consent*/ return new String[] {"Reference"};
899        default: return super.getTypesForProperty(hash, name);
900        }
901
902      }
903
904      @Override
905      public Base addChild(String name) throws FHIRException {
906        if (name.equals("identifier")) {
907          return addIdentifier();
908        }
909        else if (name.equals("status")) {
910          throw new FHIRException("Cannot call addChild on a primitive type ResearchSubject.status");
911        }
912        else if (name.equals("period")) {
913          this.period = new Period();
914          return this.period;
915        }
916        else if (name.equals("study")) {
917          this.study = new Reference();
918          return this.study;
919        }
920        else if (name.equals("individual")) {
921          this.individual = new Reference();
922          return this.individual;
923        }
924        else if (name.equals("assignedArm")) {
925          throw new FHIRException("Cannot call addChild on a primitive type ResearchSubject.assignedArm");
926        }
927        else if (name.equals("actualArm")) {
928          throw new FHIRException("Cannot call addChild on a primitive type ResearchSubject.actualArm");
929        }
930        else if (name.equals("consent")) {
931          this.consent = new Reference();
932          return this.consent;
933        }
934        else
935          return super.addChild(name);
936      }
937
938  public String fhirType() {
939    return "ResearchSubject";
940
941  }
942
943      public ResearchSubject copy() {
944        ResearchSubject dst = new ResearchSubject();
945        copyValues(dst);
946        return dst;
947      }
948
949      public void copyValues(ResearchSubject dst) {
950        super.copyValues(dst);
951        if (identifier != null) {
952          dst.identifier = new ArrayList<Identifier>();
953          for (Identifier i : identifier)
954            dst.identifier.add(i.copy());
955        };
956        dst.status = status == null ? null : status.copy();
957        dst.period = period == null ? null : period.copy();
958        dst.study = study == null ? null : study.copy();
959        dst.individual = individual == null ? null : individual.copy();
960        dst.assignedArm = assignedArm == null ? null : assignedArm.copy();
961        dst.actualArm = actualArm == null ? null : actualArm.copy();
962        dst.consent = consent == null ? null : consent.copy();
963      }
964
965      protected ResearchSubject typedCopy() {
966        return copy();
967      }
968
969      @Override
970      public boolean equalsDeep(Base other_) {
971        if (!super.equalsDeep(other_))
972          return false;
973        if (!(other_ instanceof ResearchSubject))
974          return false;
975        ResearchSubject o = (ResearchSubject) other_;
976        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(period, o.period, true)
977           && compareDeep(study, o.study, true) && compareDeep(individual, o.individual, true) && compareDeep(assignedArm, o.assignedArm, true)
978           && compareDeep(actualArm, o.actualArm, true) && compareDeep(consent, o.consent, true);
979      }
980
981      @Override
982      public boolean equalsShallow(Base other_) {
983        if (!super.equalsShallow(other_))
984          return false;
985        if (!(other_ instanceof ResearchSubject))
986          return false;
987        ResearchSubject o = (ResearchSubject) other_;
988        return compareValues(status, o.status, true) && compareValues(assignedArm, o.assignedArm, true) && compareValues(actualArm, o.actualArm, true)
989          ;
990      }
991
992      public boolean isEmpty() {
993        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, period
994          , study, individual, assignedArm, actualArm, consent);
995      }
996
997  @Override
998  public ResourceType getResourceType() {
999    return ResourceType.ResearchSubject;
1000   }
1001
1002 /**
1003   * Search parameter: <b>date</b>
1004   * <p>
1005   * Description: <b>Start and end of participation</b><br>
1006   * Type: <b>date</b><br>
1007   * Path: <b>ResearchSubject.period</b><br>
1008   * </p>
1009   */
1010  @SearchParamDefinition(name="date", path="ResearchSubject.period", description="Start and end of participation", type="date" )
1011  public static final String SP_DATE = "date";
1012 /**
1013   * <b>Fluent Client</b> search parameter constant for <b>date</b>
1014   * <p>
1015   * Description: <b>Start and end of participation</b><br>
1016   * Type: <b>date</b><br>
1017   * Path: <b>ResearchSubject.period</b><br>
1018   * </p>
1019   */
1020  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
1021
1022 /**
1023   * Search parameter: <b>identifier</b>
1024   * <p>
1025   * Description: <b>Business Identifier for research subject in a study</b><br>
1026   * Type: <b>token</b><br>
1027   * Path: <b>ResearchSubject.identifier</b><br>
1028   * </p>
1029   */
1030  @SearchParamDefinition(name="identifier", path="ResearchSubject.identifier", description="Business Identifier for research subject in a study", type="token" )
1031  public static final String SP_IDENTIFIER = "identifier";
1032 /**
1033   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1034   * <p>
1035   * Description: <b>Business Identifier for research subject in a study</b><br>
1036   * Type: <b>token</b><br>
1037   * Path: <b>ResearchSubject.identifier</b><br>
1038   * </p>
1039   */
1040  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1041
1042 /**
1043   * Search parameter: <b>study</b>
1044   * <p>
1045   * Description: <b>Study subject is part of</b><br>
1046   * Type: <b>reference</b><br>
1047   * Path: <b>ResearchSubject.study</b><br>
1048   * </p>
1049   */
1050  @SearchParamDefinition(name="study", path="ResearchSubject.study", description="Study subject is part of", type="reference", target={ResearchStudy.class } )
1051  public static final String SP_STUDY = "study";
1052 /**
1053   * <b>Fluent Client</b> search parameter constant for <b>study</b>
1054   * <p>
1055   * Description: <b>Study subject is part of</b><br>
1056   * Type: <b>reference</b><br>
1057   * Path: <b>ResearchSubject.study</b><br>
1058   * </p>
1059   */
1060  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam STUDY = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_STUDY);
1061
1062/**
1063   * Constant for fluent queries to be used to add include statements. Specifies
1064   * the path value of "<b>ResearchSubject:study</b>".
1065   */
1066  public static final ca.uhn.fhir.model.api.Include INCLUDE_STUDY = new ca.uhn.fhir.model.api.Include("ResearchSubject:study").toLocked();
1067
1068 /**
1069   * Search parameter: <b>individual</b>
1070   * <p>
1071   * Description: <b>Who is part of study</b><br>
1072   * Type: <b>reference</b><br>
1073   * Path: <b>ResearchSubject.individual</b><br>
1074   * </p>
1075   */
1076  @SearchParamDefinition(name="individual", path="ResearchSubject.individual", description="Who is part of study", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") }, target={Patient.class } )
1077  public static final String SP_INDIVIDUAL = "individual";
1078 /**
1079   * <b>Fluent Client</b> search parameter constant for <b>individual</b>
1080   * <p>
1081   * Description: <b>Who is part of study</b><br>
1082   * Type: <b>reference</b><br>
1083   * Path: <b>ResearchSubject.individual</b><br>
1084   * </p>
1085   */
1086  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INDIVIDUAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INDIVIDUAL);
1087
1088/**
1089   * Constant for fluent queries to be used to add include statements. Specifies
1090   * the path value of "<b>ResearchSubject:individual</b>".
1091   */
1092  public static final ca.uhn.fhir.model.api.Include INCLUDE_INDIVIDUAL = new ca.uhn.fhir.model.api.Include("ResearchSubject:individual").toLocked();
1093
1094 /**
1095   * Search parameter: <b>patient</b>
1096   * <p>
1097   * Description: <b>Who is part of study</b><br>
1098   * Type: <b>reference</b><br>
1099   * Path: <b>ResearchSubject.individual</b><br>
1100   * </p>
1101   */
1102  @SearchParamDefinition(name="patient", path="ResearchSubject.individual", description="Who is part of study", type="reference", target={Patient.class } )
1103  public static final String SP_PATIENT = "patient";
1104 /**
1105   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1106   * <p>
1107   * Description: <b>Who is part of study</b><br>
1108   * Type: <b>reference</b><br>
1109   * Path: <b>ResearchSubject.individual</b><br>
1110   * </p>
1111   */
1112  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1113
1114/**
1115   * Constant for fluent queries to be used to add include statements. Specifies
1116   * the path value of "<b>ResearchSubject:patient</b>".
1117   */
1118  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("ResearchSubject:patient").toLocked();
1119
1120 /**
1121   * Search parameter: <b>status</b>
1122   * <p>
1123   * Description: <b>candidate | eligible | follow-up | ineligible | not-registered | off-study | on-study | on-study-intervention | on-study-observation | pending-on-study | potential-candidate | screening | withdrawn</b><br>
1124   * Type: <b>token</b><br>
1125   * Path: <b>ResearchSubject.status</b><br>
1126   * </p>
1127   */
1128  @SearchParamDefinition(name="status", path="ResearchSubject.status", description="candidate | eligible | follow-up | ineligible | not-registered | off-study | on-study | on-study-intervention | on-study-observation | pending-on-study | potential-candidate | screening | withdrawn", type="token" )
1129  public static final String SP_STATUS = "status";
1130 /**
1131   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1132   * <p>
1133   * Description: <b>candidate | eligible | follow-up | ineligible | not-registered | off-study | on-study | on-study-intervention | on-study-observation | pending-on-study | potential-candidate | screening | withdrawn</b><br>
1134   * Type: <b>token</b><br>
1135   * Path: <b>ResearchSubject.status</b><br>
1136   * </p>
1137   */
1138  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1139
1140
1141}