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            default: return "?";
163          }
164        }
165        public String getSystem() {
166          switch (this) {
167            case CANDIDATE: return "http://hl7.org/fhir/research-subject-status";
168            case ELIGIBLE: return "http://hl7.org/fhir/research-subject-status";
169            case FOLLOWUP: return "http://hl7.org/fhir/research-subject-status";
170            case INELIGIBLE: return "http://hl7.org/fhir/research-subject-status";
171            case NOTREGISTERED: return "http://hl7.org/fhir/research-subject-status";
172            case OFFSTUDY: return "http://hl7.org/fhir/research-subject-status";
173            case ONSTUDY: return "http://hl7.org/fhir/research-subject-status";
174            case ONSTUDYINTERVENTION: return "http://hl7.org/fhir/research-subject-status";
175            case ONSTUDYOBSERVATION: return "http://hl7.org/fhir/research-subject-status";
176            case PENDINGONSTUDY: return "http://hl7.org/fhir/research-subject-status";
177            case POTENTIALCANDIDATE: return "http://hl7.org/fhir/research-subject-status";
178            case SCREENING: return "http://hl7.org/fhir/research-subject-status";
179            case WITHDRAWN: return "http://hl7.org/fhir/research-subject-status";
180            default: return "?";
181          }
182        }
183        public String getDefinition() {
184          switch (this) {
185            case CANDIDATE: return "An identified person that can be considered for inclusion in a study.";
186            case ELIGIBLE: return "A person that has met the eligibility criteria for inclusion in a study.";
187            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.";
188            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.";
189            case NOTREGISTERED: return "A person for whom registration was not completed.";
190            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.";
191            case ONSTUDY: return "A person that is enrolled or registered on a study.";
192            case ONSTUDYINTERVENTION: return "The person is receiving the treatment or participating in an activity (e.g. yoga, diet, etc.) that the study is evaluating.";
193            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\".";
194            case PENDINGONSTUDY: return "A person is pre-registered for a study.";
195            case POTENTIALCANDIDATE: return "A person that is potentially eligible for participation in the study.";
196            case SCREENING: return "A person who is being evaluated for eligibility for a study.";
197            case WITHDRAWN: return "The person has withdrawn their participation in the study before registration.";
198            default: return "?";
199          }
200        }
201        public String getDisplay() {
202          switch (this) {
203            case CANDIDATE: return "Candidate";
204            case ELIGIBLE: return "Eligible";
205            case FOLLOWUP: return "Follow-up";
206            case INELIGIBLE: return "Ineligible";
207            case NOTREGISTERED: return "Not Registered";
208            case OFFSTUDY: return "Off-study";
209            case ONSTUDY: return "On-study";
210            case ONSTUDYINTERVENTION: return "On-study-intervention";
211            case ONSTUDYOBSERVATION: return "On-study-observation";
212            case PENDINGONSTUDY: return "Pending on-study";
213            case POTENTIALCANDIDATE: return "Potential Candidate";
214            case SCREENING: return "Screening";
215            case WITHDRAWN: return "Withdrawn";
216            default: return "?";
217          }
218        }
219    }
220
221  public static class ResearchSubjectStatusEnumFactory implements EnumFactory<ResearchSubjectStatus> {
222    public ResearchSubjectStatus fromCode(String codeString) throws IllegalArgumentException {
223      if (codeString == null || "".equals(codeString))
224            if (codeString == null || "".equals(codeString))
225                return null;
226        if ("candidate".equals(codeString))
227          return ResearchSubjectStatus.CANDIDATE;
228        if ("eligible".equals(codeString))
229          return ResearchSubjectStatus.ELIGIBLE;
230        if ("follow-up".equals(codeString))
231          return ResearchSubjectStatus.FOLLOWUP;
232        if ("ineligible".equals(codeString))
233          return ResearchSubjectStatus.INELIGIBLE;
234        if ("not-registered".equals(codeString))
235          return ResearchSubjectStatus.NOTREGISTERED;
236        if ("off-study".equals(codeString))
237          return ResearchSubjectStatus.OFFSTUDY;
238        if ("on-study".equals(codeString))
239          return ResearchSubjectStatus.ONSTUDY;
240        if ("on-study-intervention".equals(codeString))
241          return ResearchSubjectStatus.ONSTUDYINTERVENTION;
242        if ("on-study-observation".equals(codeString))
243          return ResearchSubjectStatus.ONSTUDYOBSERVATION;
244        if ("pending-on-study".equals(codeString))
245          return ResearchSubjectStatus.PENDINGONSTUDY;
246        if ("potential-candidate".equals(codeString))
247          return ResearchSubjectStatus.POTENTIALCANDIDATE;
248        if ("screening".equals(codeString))
249          return ResearchSubjectStatus.SCREENING;
250        if ("withdrawn".equals(codeString))
251          return ResearchSubjectStatus.WITHDRAWN;
252        throw new IllegalArgumentException("Unknown ResearchSubjectStatus code '"+codeString+"'");
253        }
254        public Enumeration<ResearchSubjectStatus> fromType(Base code) throws FHIRException {
255          if (code == null)
256            return null;
257          if (code.isEmpty())
258            return new Enumeration<ResearchSubjectStatus>(this);
259          String codeString = ((PrimitiveType) code).asStringValue();
260          if (codeString == null || "".equals(codeString))
261            return null;
262        if ("candidate".equals(codeString))
263          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.CANDIDATE);
264        if ("eligible".equals(codeString))
265          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.ELIGIBLE);
266        if ("follow-up".equals(codeString))
267          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.FOLLOWUP);
268        if ("ineligible".equals(codeString))
269          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.INELIGIBLE);
270        if ("not-registered".equals(codeString))
271          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.NOTREGISTERED);
272        if ("off-study".equals(codeString))
273          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.OFFSTUDY);
274        if ("on-study".equals(codeString))
275          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.ONSTUDY);
276        if ("on-study-intervention".equals(codeString))
277          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.ONSTUDYINTERVENTION);
278        if ("on-study-observation".equals(codeString))
279          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.ONSTUDYOBSERVATION);
280        if ("pending-on-study".equals(codeString))
281          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.PENDINGONSTUDY);
282        if ("potential-candidate".equals(codeString))
283          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.POTENTIALCANDIDATE);
284        if ("screening".equals(codeString))
285          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.SCREENING);
286        if ("withdrawn".equals(codeString))
287          return new Enumeration<ResearchSubjectStatus>(this, ResearchSubjectStatus.WITHDRAWN);
288        throw new FHIRException("Unknown ResearchSubjectStatus code '"+codeString+"'");
289        }
290    public String toCode(ResearchSubjectStatus code) {
291      if (code == ResearchSubjectStatus.CANDIDATE)
292        return "candidate";
293      if (code == ResearchSubjectStatus.ELIGIBLE)
294        return "eligible";
295      if (code == ResearchSubjectStatus.FOLLOWUP)
296        return "follow-up";
297      if (code == ResearchSubjectStatus.INELIGIBLE)
298        return "ineligible";
299      if (code == ResearchSubjectStatus.NOTREGISTERED)
300        return "not-registered";
301      if (code == ResearchSubjectStatus.OFFSTUDY)
302        return "off-study";
303      if (code == ResearchSubjectStatus.ONSTUDY)
304        return "on-study";
305      if (code == ResearchSubjectStatus.ONSTUDYINTERVENTION)
306        return "on-study-intervention";
307      if (code == ResearchSubjectStatus.ONSTUDYOBSERVATION)
308        return "on-study-observation";
309      if (code == ResearchSubjectStatus.PENDINGONSTUDY)
310        return "pending-on-study";
311      if (code == ResearchSubjectStatus.POTENTIALCANDIDATE)
312        return "potential-candidate";
313      if (code == ResearchSubjectStatus.SCREENING)
314        return "screening";
315      if (code == ResearchSubjectStatus.WITHDRAWN)
316        return "withdrawn";
317      return "?";
318      }
319    public String toSystem(ResearchSubjectStatus code) {
320      return code.getSystem();
321      }
322    }
323
324    /**
325     * Identifiers assigned to this research subject for a study.
326     */
327    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
328    @Description(shortDefinition="Business Identifier for research subject in a study", formalDefinition="Identifiers assigned to this research subject for a study." )
329    protected List<Identifier> identifier;
330
331    /**
332     * The current state of the subject.
333     */
334    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
335    @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." )
336    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/research-subject-status")
337    protected Enumeration<ResearchSubjectStatus> status;
338
339    /**
340     * The dates the subject began and ended their participation in the study.
341     */
342    @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=true)
343    @Description(shortDefinition="Start and end of participation", formalDefinition="The dates the subject began and ended their participation in the study." )
344    protected Period period;
345
346    /**
347     * Reference to the study the subject is participating in.
348     */
349    @Child(name = "study", type = {ResearchStudy.class}, order=3, min=1, max=1, modifier=false, summary=true)
350    @Description(shortDefinition="Study subject is part of", formalDefinition="Reference to the study the subject is participating in." )
351    protected Reference study;
352
353    /**
354     * The actual object that is the target of the reference (Reference to the study the subject is participating in.)
355     */
356    protected ResearchStudy studyTarget;
357
358    /**
359     * The record of the person or animal who is involved in the study.
360     */
361    @Child(name = "individual", type = {Patient.class}, order=4, min=1, max=1, modifier=false, summary=true)
362    @Description(shortDefinition="Who is part of study", formalDefinition="The record of the person or animal who is involved in the study." )
363    protected Reference individual;
364
365    /**
366     * The actual object that is the target of the reference (The record of the person or animal who is involved in the study.)
367     */
368    protected Patient individualTarget;
369
370    /**
371     * The name of the arm in the study the subject is expected to follow as part of this study.
372     */
373    @Child(name = "assignedArm", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false)
374    @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." )
375    protected StringType assignedArm;
376
377    /**
378     * The name of the arm in the study the subject actually followed as part of this study.
379     */
380    @Child(name = "actualArm", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false)
381    @Description(shortDefinition="What path was followed", formalDefinition="The name of the arm in the study the subject actually followed as part of this study." )
382    protected StringType actualArm;
383
384    /**
385     * A record of the patient's informed agreement to participate in the study.
386     */
387    @Child(name = "consent", type = {Consent.class}, order=7, min=0, max=1, modifier=false, summary=false)
388    @Description(shortDefinition="Agreement to participate in study", formalDefinition="A record of the patient's informed agreement to participate in the study." )
389    protected Reference consent;
390
391    /**
392     * The actual object that is the target of the reference (A record of the patient's informed agreement to participate in the study.)
393     */
394    protected Consent consentTarget;
395
396    private static final long serialVersionUID = -884133739L;
397
398  /**
399   * Constructor
400   */
401    public ResearchSubject() {
402      super();
403    }
404
405  /**
406   * Constructor
407   */
408    public ResearchSubject(Enumeration<ResearchSubjectStatus> status, Reference study, Reference individual) {
409      super();
410      this.status = status;
411      this.study = study;
412      this.individual = individual;
413    }
414
415    /**
416     * @return {@link #identifier} (Identifiers assigned to this research subject for a study.)
417     */
418    public List<Identifier> getIdentifier() { 
419      if (this.identifier == null)
420        this.identifier = new ArrayList<Identifier>();
421      return this.identifier;
422    }
423
424    /**
425     * @return Returns a reference to <code>this</code> for easy method chaining
426     */
427    public ResearchSubject setIdentifier(List<Identifier> theIdentifier) { 
428      this.identifier = theIdentifier;
429      return this;
430    }
431
432    public boolean hasIdentifier() { 
433      if (this.identifier == null)
434        return false;
435      for (Identifier item : this.identifier)
436        if (!item.isEmpty())
437          return true;
438      return false;
439    }
440
441    public Identifier addIdentifier() { //3
442      Identifier t = new Identifier();
443      if (this.identifier == null)
444        this.identifier = new ArrayList<Identifier>();
445      this.identifier.add(t);
446      return t;
447    }
448
449    public ResearchSubject addIdentifier(Identifier t) { //3
450      if (t == null)
451        return this;
452      if (this.identifier == null)
453        this.identifier = new ArrayList<Identifier>();
454      this.identifier.add(t);
455      return this;
456    }
457
458    /**
459     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
460     */
461    public Identifier getIdentifierFirstRep() { 
462      if (getIdentifier().isEmpty()) {
463        addIdentifier();
464      }
465      return getIdentifier().get(0);
466    }
467
468    /**
469     * @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
470     */
471    public Enumeration<ResearchSubjectStatus> getStatusElement() { 
472      if (this.status == null)
473        if (Configuration.errorOnAutoCreate())
474          throw new Error("Attempt to auto-create ResearchSubject.status");
475        else if (Configuration.doAutoCreate())
476          this.status = new Enumeration<ResearchSubjectStatus>(new ResearchSubjectStatusEnumFactory()); // bb
477      return this.status;
478    }
479
480    public boolean hasStatusElement() { 
481      return this.status != null && !this.status.isEmpty();
482    }
483
484    public boolean hasStatus() { 
485      return this.status != null && !this.status.isEmpty();
486    }
487
488    /**
489     * @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
490     */
491    public ResearchSubject setStatusElement(Enumeration<ResearchSubjectStatus> value) { 
492      this.status = value;
493      return this;
494    }
495
496    /**
497     * @return The current state of the subject.
498     */
499    public ResearchSubjectStatus getStatus() { 
500      return this.status == null ? null : this.status.getValue();
501    }
502
503    /**
504     * @param value The current state of the subject.
505     */
506    public ResearchSubject setStatus(ResearchSubjectStatus value) { 
507        if (this.status == null)
508          this.status = new Enumeration<ResearchSubjectStatus>(new ResearchSubjectStatusEnumFactory());
509        this.status.setValue(value);
510      return this;
511    }
512
513    /**
514     * @return {@link #period} (The dates the subject began and ended their participation in the study.)
515     */
516    public Period getPeriod() { 
517      if (this.period == null)
518        if (Configuration.errorOnAutoCreate())
519          throw new Error("Attempt to auto-create ResearchSubject.period");
520        else if (Configuration.doAutoCreate())
521          this.period = new Period(); // cc
522      return this.period;
523    }
524
525    public boolean hasPeriod() { 
526      return this.period != null && !this.period.isEmpty();
527    }
528
529    /**
530     * @param value {@link #period} (The dates the subject began and ended their participation in the study.)
531     */
532    public ResearchSubject setPeriod(Period value) { 
533      this.period = value;
534      return this;
535    }
536
537    /**
538     * @return {@link #study} (Reference to the study the subject is participating in.)
539     */
540    public Reference getStudy() { 
541      if (this.study == null)
542        if (Configuration.errorOnAutoCreate())
543          throw new Error("Attempt to auto-create ResearchSubject.study");
544        else if (Configuration.doAutoCreate())
545          this.study = new Reference(); // cc
546      return this.study;
547    }
548
549    public boolean hasStudy() { 
550      return this.study != null && !this.study.isEmpty();
551    }
552
553    /**
554     * @param value {@link #study} (Reference to the study the subject is participating in.)
555     */
556    public ResearchSubject setStudy(Reference value) { 
557      this.study = value;
558      return this;
559    }
560
561    /**
562     * @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.)
563     */
564    public ResearchStudy getStudyTarget() { 
565      if (this.studyTarget == null)
566        if (Configuration.errorOnAutoCreate())
567          throw new Error("Attempt to auto-create ResearchSubject.study");
568        else if (Configuration.doAutoCreate())
569          this.studyTarget = new ResearchStudy(); // aa
570      return this.studyTarget;
571    }
572
573    /**
574     * @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.)
575     */
576    public ResearchSubject setStudyTarget(ResearchStudy value) { 
577      this.studyTarget = value;
578      return this;
579    }
580
581    /**
582     * @return {@link #individual} (The record of the person or animal who is involved in the study.)
583     */
584    public Reference getIndividual() { 
585      if (this.individual == null)
586        if (Configuration.errorOnAutoCreate())
587          throw new Error("Attempt to auto-create ResearchSubject.individual");
588        else if (Configuration.doAutoCreate())
589          this.individual = new Reference(); // cc
590      return this.individual;
591    }
592
593    public boolean hasIndividual() { 
594      return this.individual != null && !this.individual.isEmpty();
595    }
596
597    /**
598     * @param value {@link #individual} (The record of the person or animal who is involved in the study.)
599     */
600    public ResearchSubject setIndividual(Reference value) { 
601      this.individual = value;
602      return this;
603    }
604
605    /**
606     * @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.)
607     */
608    public Patient getIndividualTarget() { 
609      if (this.individualTarget == null)
610        if (Configuration.errorOnAutoCreate())
611          throw new Error("Attempt to auto-create ResearchSubject.individual");
612        else if (Configuration.doAutoCreate())
613          this.individualTarget = new Patient(); // aa
614      return this.individualTarget;
615    }
616
617    /**
618     * @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.)
619     */
620    public ResearchSubject setIndividualTarget(Patient value) { 
621      this.individualTarget = value;
622      return this;
623    }
624
625    /**
626     * @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
627     */
628    public StringType getAssignedArmElement() { 
629      if (this.assignedArm == null)
630        if (Configuration.errorOnAutoCreate())
631          throw new Error("Attempt to auto-create ResearchSubject.assignedArm");
632        else if (Configuration.doAutoCreate())
633          this.assignedArm = new StringType(); // bb
634      return this.assignedArm;
635    }
636
637    public boolean hasAssignedArmElement() { 
638      return this.assignedArm != null && !this.assignedArm.isEmpty();
639    }
640
641    public boolean hasAssignedArm() { 
642      return this.assignedArm != null && !this.assignedArm.isEmpty();
643    }
644
645    /**
646     * @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
647     */
648    public ResearchSubject setAssignedArmElement(StringType value) { 
649      this.assignedArm = value;
650      return this;
651    }
652
653    /**
654     * @return The name of the arm in the study the subject is expected to follow as part of this study.
655     */
656    public String getAssignedArm() { 
657      return this.assignedArm == null ? null : this.assignedArm.getValue();
658    }
659
660    /**
661     * @param value The name of the arm in the study the subject is expected to follow as part of this study.
662     */
663    public ResearchSubject setAssignedArm(String value) { 
664      if (Utilities.noString(value))
665        this.assignedArm = null;
666      else {
667        if (this.assignedArm == null)
668          this.assignedArm = new StringType();
669        this.assignedArm.setValue(value);
670      }
671      return this;
672    }
673
674    /**
675     * @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
676     */
677    public StringType getActualArmElement() { 
678      if (this.actualArm == null)
679        if (Configuration.errorOnAutoCreate())
680          throw new Error("Attempt to auto-create ResearchSubject.actualArm");
681        else if (Configuration.doAutoCreate())
682          this.actualArm = new StringType(); // bb
683      return this.actualArm;
684    }
685
686    public boolean hasActualArmElement() { 
687      return this.actualArm != null && !this.actualArm.isEmpty();
688    }
689
690    public boolean hasActualArm() { 
691      return this.actualArm != null && !this.actualArm.isEmpty();
692    }
693
694    /**
695     * @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
696     */
697    public ResearchSubject setActualArmElement(StringType value) { 
698      this.actualArm = value;
699      return this;
700    }
701
702    /**
703     * @return The name of the arm in the study the subject actually followed as part of this study.
704     */
705    public String getActualArm() { 
706      return this.actualArm == null ? null : this.actualArm.getValue();
707    }
708
709    /**
710     * @param value The name of the arm in the study the subject actually followed as part of this study.
711     */
712    public ResearchSubject setActualArm(String value) { 
713      if (Utilities.noString(value))
714        this.actualArm = null;
715      else {
716        if (this.actualArm == null)
717          this.actualArm = new StringType();
718        this.actualArm.setValue(value);
719      }
720      return this;
721    }
722
723    /**
724     * @return {@link #consent} (A record of the patient's informed agreement to participate in the study.)
725     */
726    public Reference getConsent() { 
727      if (this.consent == null)
728        if (Configuration.errorOnAutoCreate())
729          throw new Error("Attempt to auto-create ResearchSubject.consent");
730        else if (Configuration.doAutoCreate())
731          this.consent = new Reference(); // cc
732      return this.consent;
733    }
734
735    public boolean hasConsent() { 
736      return this.consent != null && !this.consent.isEmpty();
737    }
738
739    /**
740     * @param value {@link #consent} (A record of the patient's informed agreement to participate in the study.)
741     */
742    public ResearchSubject setConsent(Reference value) { 
743      this.consent = value;
744      return this;
745    }
746
747    /**
748     * @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.)
749     */
750    public Consent getConsentTarget() { 
751      if (this.consentTarget == null)
752        if (Configuration.errorOnAutoCreate())
753          throw new Error("Attempt to auto-create ResearchSubject.consent");
754        else if (Configuration.doAutoCreate())
755          this.consentTarget = new Consent(); // aa
756      return this.consentTarget;
757    }
758
759    /**
760     * @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.)
761     */
762    public ResearchSubject setConsentTarget(Consent value) { 
763      this.consentTarget = value;
764      return this;
765    }
766
767      protected void listChildren(List<Property> children) {
768        super.listChildren(children);
769        children.add(new Property("identifier", "Identifier", "Identifiers assigned to this research subject for a study.", 0, java.lang.Integer.MAX_VALUE, identifier));
770        children.add(new Property("status", "code", "The current state of the subject.", 0, 1, status));
771        children.add(new Property("period", "Period", "The dates the subject began and ended their participation in the study.", 0, 1, period));
772        children.add(new Property("study", "Reference(ResearchStudy)", "Reference to the study the subject is participating in.", 0, 1, study));
773        children.add(new Property("individual", "Reference(Patient)", "The record of the person or animal who is involved in the study.", 0, 1, individual));
774        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));
775        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));
776        children.add(new Property("consent", "Reference(Consent)", "A record of the patient's informed agreement to participate in the study.", 0, 1, consent));
777      }
778
779      @Override
780      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
781        switch (_hash) {
782        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifiers assigned to this research subject for a study.", 0, java.lang.Integer.MAX_VALUE, identifier);
783        case -892481550: /*status*/  return new Property("status", "code", "The current state of the subject.", 0, 1, status);
784        case -991726143: /*period*/  return new Property("period", "Period", "The dates the subject began and ended their participation in the study.", 0, 1, period);
785        case 109776329: /*study*/  return new Property("study", "Reference(ResearchStudy)", "Reference to the study the subject is participating in.", 0, 1, study);
786        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);
787        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);
788        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);
789        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);
790        default: return super.getNamedProperty(_hash, _name, _checkValid);
791        }
792
793      }
794
795      @Override
796      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
797        switch (hash) {
798        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
799        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ResearchSubjectStatus>
800        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
801        case 109776329: /*study*/ return this.study == null ? new Base[0] : new Base[] {this.study}; // Reference
802        case -46292327: /*individual*/ return this.individual == null ? new Base[0] : new Base[] {this.individual}; // Reference
803        case 1741912494: /*assignedArm*/ return this.assignedArm == null ? new Base[0] : new Base[] {this.assignedArm}; // StringType
804        case 528827886: /*actualArm*/ return this.actualArm == null ? new Base[0] : new Base[] {this.actualArm}; // StringType
805        case 951500826: /*consent*/ return this.consent == null ? new Base[0] : new Base[] {this.consent}; // Reference
806        default: return super.getProperty(hash, name, checkValid);
807        }
808
809      }
810
811      @Override
812      public Base setProperty(int hash, String name, Base value) throws FHIRException {
813        switch (hash) {
814        case -1618432855: // identifier
815          this.getIdentifier().add(castToIdentifier(value)); // Identifier
816          return value;
817        case -892481550: // status
818          value = new ResearchSubjectStatusEnumFactory().fromType(castToCode(value));
819          this.status = (Enumeration) value; // Enumeration<ResearchSubjectStatus>
820          return value;
821        case -991726143: // period
822          this.period = castToPeriod(value); // Period
823          return value;
824        case 109776329: // study
825          this.study = castToReference(value); // Reference
826          return value;
827        case -46292327: // individual
828          this.individual = castToReference(value); // Reference
829          return value;
830        case 1741912494: // assignedArm
831          this.assignedArm = castToString(value); // StringType
832          return value;
833        case 528827886: // actualArm
834          this.actualArm = castToString(value); // StringType
835          return value;
836        case 951500826: // consent
837          this.consent = castToReference(value); // Reference
838          return value;
839        default: return super.setProperty(hash, name, value);
840        }
841
842      }
843
844      @Override
845      public Base setProperty(String name, Base value) throws FHIRException {
846        if (name.equals("identifier")) {
847          this.getIdentifier().add(castToIdentifier(value));
848        } else if (name.equals("status")) {
849          value = new ResearchSubjectStatusEnumFactory().fromType(castToCode(value));
850          this.status = (Enumeration) value; // Enumeration<ResearchSubjectStatus>
851        } else if (name.equals("period")) {
852          this.period = castToPeriod(value); // Period
853        } else if (name.equals("study")) {
854          this.study = castToReference(value); // Reference
855        } else if (name.equals("individual")) {
856          this.individual = castToReference(value); // Reference
857        } else if (name.equals("assignedArm")) {
858          this.assignedArm = castToString(value); // StringType
859        } else if (name.equals("actualArm")) {
860          this.actualArm = castToString(value); // StringType
861        } else if (name.equals("consent")) {
862          this.consent = castToReference(value); // Reference
863        } else
864          return super.setProperty(name, value);
865        return value;
866      }
867
868      @Override
869      public Base makeProperty(int hash, String name) throws FHIRException {
870        switch (hash) {
871        case -1618432855:  return addIdentifier(); 
872        case -892481550:  return getStatusElement();
873        case -991726143:  return getPeriod(); 
874        case 109776329:  return getStudy(); 
875        case -46292327:  return getIndividual(); 
876        case 1741912494:  return getAssignedArmElement();
877        case 528827886:  return getActualArmElement();
878        case 951500826:  return getConsent(); 
879        default: return super.makeProperty(hash, name);
880        }
881
882      }
883
884      @Override
885      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
886        switch (hash) {
887        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
888        case -892481550: /*status*/ return new String[] {"code"};
889        case -991726143: /*period*/ return new String[] {"Period"};
890        case 109776329: /*study*/ return new String[] {"Reference"};
891        case -46292327: /*individual*/ return new String[] {"Reference"};
892        case 1741912494: /*assignedArm*/ return new String[] {"string"};
893        case 528827886: /*actualArm*/ return new String[] {"string"};
894        case 951500826: /*consent*/ return new String[] {"Reference"};
895        default: return super.getTypesForProperty(hash, name);
896        }
897
898      }
899
900      @Override
901      public Base addChild(String name) throws FHIRException {
902        if (name.equals("identifier")) {
903          return addIdentifier();
904        }
905        else if (name.equals("status")) {
906          throw new FHIRException("Cannot call addChild on a primitive type ResearchSubject.status");
907        }
908        else if (name.equals("period")) {
909          this.period = new Period();
910          return this.period;
911        }
912        else if (name.equals("study")) {
913          this.study = new Reference();
914          return this.study;
915        }
916        else if (name.equals("individual")) {
917          this.individual = new Reference();
918          return this.individual;
919        }
920        else if (name.equals("assignedArm")) {
921          throw new FHIRException("Cannot call addChild on a primitive type ResearchSubject.assignedArm");
922        }
923        else if (name.equals("actualArm")) {
924          throw new FHIRException("Cannot call addChild on a primitive type ResearchSubject.actualArm");
925        }
926        else if (name.equals("consent")) {
927          this.consent = new Reference();
928          return this.consent;
929        }
930        else
931          return super.addChild(name);
932      }
933
934  public String fhirType() {
935    return "ResearchSubject";
936
937  }
938
939      public ResearchSubject copy() {
940        ResearchSubject dst = new ResearchSubject();
941        copyValues(dst);
942        return dst;
943      }
944
945      public void copyValues(ResearchSubject dst) {
946        super.copyValues(dst);
947        if (identifier != null) {
948          dst.identifier = new ArrayList<Identifier>();
949          for (Identifier i : identifier)
950            dst.identifier.add(i.copy());
951        };
952        dst.status = status == null ? null : status.copy();
953        dst.period = period == null ? null : period.copy();
954        dst.study = study == null ? null : study.copy();
955        dst.individual = individual == null ? null : individual.copy();
956        dst.assignedArm = assignedArm == null ? null : assignedArm.copy();
957        dst.actualArm = actualArm == null ? null : actualArm.copy();
958        dst.consent = consent == null ? null : consent.copy();
959      }
960
961      protected ResearchSubject typedCopy() {
962        return copy();
963      }
964
965      @Override
966      public boolean equalsDeep(Base other_) {
967        if (!super.equalsDeep(other_))
968          return false;
969        if (!(other_ instanceof ResearchSubject))
970          return false;
971        ResearchSubject o = (ResearchSubject) other_;
972        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(period, o.period, true)
973           && compareDeep(study, o.study, true) && compareDeep(individual, o.individual, true) && compareDeep(assignedArm, o.assignedArm, true)
974           && compareDeep(actualArm, o.actualArm, true) && compareDeep(consent, o.consent, true);
975      }
976
977      @Override
978      public boolean equalsShallow(Base other_) {
979        if (!super.equalsShallow(other_))
980          return false;
981        if (!(other_ instanceof ResearchSubject))
982          return false;
983        ResearchSubject o = (ResearchSubject) other_;
984        return compareValues(status, o.status, true) && compareValues(assignedArm, o.assignedArm, true) && compareValues(actualArm, o.actualArm, true)
985          ;
986      }
987
988      public boolean isEmpty() {
989        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, period
990          , study, individual, assignedArm, actualArm, consent);
991      }
992
993  @Override
994  public ResourceType getResourceType() {
995    return ResourceType.ResearchSubject;
996   }
997
998 /**
999   * Search parameter: <b>date</b>
1000   * <p>
1001   * Description: <b>Start and end of participation</b><br>
1002   * Type: <b>date</b><br>
1003   * Path: <b>ResearchSubject.period</b><br>
1004   * </p>
1005   */
1006  @SearchParamDefinition(name="date", path="ResearchSubject.period", description="Start and end of participation", type="date" )
1007  public static final String SP_DATE = "date";
1008 /**
1009   * <b>Fluent Client</b> search parameter constant for <b>date</b>
1010   * <p>
1011   * Description: <b>Start and end of participation</b><br>
1012   * Type: <b>date</b><br>
1013   * Path: <b>ResearchSubject.period</b><br>
1014   * </p>
1015   */
1016  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
1017
1018 /**
1019   * Search parameter: <b>identifier</b>
1020   * <p>
1021   * Description: <b>Business Identifier for research subject in a study</b><br>
1022   * Type: <b>token</b><br>
1023   * Path: <b>ResearchSubject.identifier</b><br>
1024   * </p>
1025   */
1026  @SearchParamDefinition(name="identifier", path="ResearchSubject.identifier", description="Business Identifier for research subject in a study", type="token" )
1027  public static final String SP_IDENTIFIER = "identifier";
1028 /**
1029   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1030   * <p>
1031   * Description: <b>Business Identifier for research subject in a study</b><br>
1032   * Type: <b>token</b><br>
1033   * Path: <b>ResearchSubject.identifier</b><br>
1034   * </p>
1035   */
1036  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1037
1038 /**
1039   * Search parameter: <b>study</b>
1040   * <p>
1041   * Description: <b>Study subject is part of</b><br>
1042   * Type: <b>reference</b><br>
1043   * Path: <b>ResearchSubject.study</b><br>
1044   * </p>
1045   */
1046  @SearchParamDefinition(name="study", path="ResearchSubject.study", description="Study subject is part of", type="reference", target={ResearchStudy.class } )
1047  public static final String SP_STUDY = "study";
1048 /**
1049   * <b>Fluent Client</b> search parameter constant for <b>study</b>
1050   * <p>
1051   * Description: <b>Study subject is part of</b><br>
1052   * Type: <b>reference</b><br>
1053   * Path: <b>ResearchSubject.study</b><br>
1054   * </p>
1055   */
1056  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam STUDY = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_STUDY);
1057
1058/**
1059   * Constant for fluent queries to be used to add include statements. Specifies
1060   * the path value of "<b>ResearchSubject:study</b>".
1061   */
1062  public static final ca.uhn.fhir.model.api.Include INCLUDE_STUDY = new ca.uhn.fhir.model.api.Include("ResearchSubject:study").toLocked();
1063
1064 /**
1065   * Search parameter: <b>individual</b>
1066   * <p>
1067   * Description: <b>Who is part of study</b><br>
1068   * Type: <b>reference</b><br>
1069   * Path: <b>ResearchSubject.individual</b><br>
1070   * </p>
1071   */
1072  @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 } )
1073  public static final String SP_INDIVIDUAL = "individual";
1074 /**
1075   * <b>Fluent Client</b> search parameter constant for <b>individual</b>
1076   * <p>
1077   * Description: <b>Who is part of study</b><br>
1078   * Type: <b>reference</b><br>
1079   * Path: <b>ResearchSubject.individual</b><br>
1080   * </p>
1081   */
1082  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INDIVIDUAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INDIVIDUAL);
1083
1084/**
1085   * Constant for fluent queries to be used to add include statements. Specifies
1086   * the path value of "<b>ResearchSubject:individual</b>".
1087   */
1088  public static final ca.uhn.fhir.model.api.Include INCLUDE_INDIVIDUAL = new ca.uhn.fhir.model.api.Include("ResearchSubject:individual").toLocked();
1089
1090 /**
1091   * Search parameter: <b>patient</b>
1092   * <p>
1093   * Description: <b>Who is part of study</b><br>
1094   * Type: <b>reference</b><br>
1095   * Path: <b>ResearchSubject.individual</b><br>
1096   * </p>
1097   */
1098  @SearchParamDefinition(name="patient", path="ResearchSubject.individual", description="Who is part of study", type="reference", target={Patient.class } )
1099  public static final String SP_PATIENT = "patient";
1100 /**
1101   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1102   * <p>
1103   * Description: <b>Who is part of study</b><br>
1104   * Type: <b>reference</b><br>
1105   * Path: <b>ResearchSubject.individual</b><br>
1106   * </p>
1107   */
1108  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1109
1110/**
1111   * Constant for fluent queries to be used to add include statements. Specifies
1112   * the path value of "<b>ResearchSubject:patient</b>".
1113   */
1114  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("ResearchSubject:patient").toLocked();
1115
1116 /**
1117   * Search parameter: <b>status</b>
1118   * <p>
1119   * 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>
1120   * Type: <b>token</b><br>
1121   * Path: <b>ResearchSubject.status</b><br>
1122   * </p>
1123   */
1124  @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" )
1125  public static final String SP_STATUS = "status";
1126 /**
1127   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1128   * <p>
1129   * 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>
1130   * Type: <b>token</b><br>
1131   * Path: <b>ResearchSubject.status</b><br>
1132   * </p>
1133   */
1134  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1135
1136
1137}